<?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>109411</bug_id>
          
          <creation_ts>2013-02-11 02:11:04 -0800</creation_ts>
          <short_desc>Make WebVTTTokenizer stop inheriting from MarkupTokenizerBase</short_desc>
          <delta_ts>2013-02-11 12:43:33 -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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>107522</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgorbik</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>829515</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 02:11:04 -0800</bug_when>
    <thetext>Make WebVTTTokenizer stop inheriting from MarkupTokenizerBase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829516</commentid>
    <comment_count>1</comment_count>
      <attachid>187529</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 02:13:00 -0800</bug_when>
    <thetext>Created attachment 187529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829836</commentid>
    <comment_count>2</comment_count>
      <attachid>187609</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 10:15:35 -0800</bug_when>
    <thetext>Created attachment 187609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829840</commentid>
    <comment_count>3</comment_count>
      <attachid>187612</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 10:16:58 -0800</bug_when>
    <thetext>Created attachment 187612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829844</commentid>
    <comment_count>4</comment_count>
      <attachid>187612</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-02-11 10:22:14 -0800</bug_when>
    <thetext>Comment on attachment 187612
Patch

Attachment 187612 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/16493297</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829845</commentid>
    <comment_count>5</comment_count>
      <attachid>187612</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 10:24:32 -0800</bug_when>
    <thetext>Comment on attachment 187612
Patch

Attachment 187612 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16491307</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829846</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 10:24:55 -0800</bug_when>
    <thetext>Sigh.  I was too tricky for some compilers.  Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829847</commentid>
    <comment_count>7</comment_count>
      <attachid>187612</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-11 10:27:30 -0800</bug_when>
    <thetext>Comment on attachment 187612
Patch

Need to fix compilation. Else looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829881</commentid>
    <comment_count>8</comment_count>
      <attachid>187612</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-11 10:52:14 -0800</bug_when>
    <thetext>Comment on attachment 187612
Patch

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

&gt; Source/WebCore/html/parser/InputStreamPreprocessor.h:84
&gt; +                if (m_tokenizer-&gt;shouldSkipNullCharacters()) {

Another option is to pass this bit in to peek rather than keeping a pointer to the tokenizer.  That would let your remove the template parameter.  Maybe in a followup patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829884</commentid>
    <comment_count>9</comment_count>
      <attachid>187612</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 10:54:02 -0800</bug_when>
    <thetext>Comment on attachment 187612
Patch

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

&gt;&gt; Source/WebCore/html/parser/InputStreamPreprocessor.h:84
&gt;&gt; +                if (m_tokenizer-&gt;shouldSkipNullCharacters()) {
&gt; 
&gt; Another option is to pass this bit in to peek rather than keeping a pointer to the tokenizer.  That would let your remove the template parameter.  Maybe in a followup patch?

Yup.  This function is ridiculously hot, so I didn&apos;t want to add that overhead to every callsite in the chnace that it changed perf.  We can try it in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829930</commentid>
    <comment_count>10</comment_count>
      <attachid>187623</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 11:26:14 -0800</bug_when>
    <thetext>Created attachment 187623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829932</commentid>
    <comment_count>11</comment_count>
      <attachid>187623</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 11:27:43 -0800</bug_when>
    <thetext>Comment on attachment 187623
Patch

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

&gt; Source/WebCore/html/parser/HTMLInputStream.h:40
&gt; +// The current segmented string is stored in InputStream. Each of afterInsertionPoint

Sublime got me.  Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829933</commentid>
    <comment_count>12</comment_count>
      <attachid>187625</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 11:28:45 -0800</bug_when>
    <thetext>Created attachment 187625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829952</commentid>
    <comment_count>13</comment_count>
      <attachid>187625</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 11:40:28 -0800</bug_when>
    <thetext>Comment on attachment 187625
Patch

Attachment 187625 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16448060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829974</commentid>
    <comment_count>14</comment_count>
      <attachid>187637</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-11 12:18:47 -0800</bug_when>
    <thetext>Created attachment 187637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829995</commentid>
    <comment_count>15</comment_count>
      <attachid>187637</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 12:43:28 -0800</bug_when>
    <thetext>Comment on attachment 187637
Patch

Clearing flags on attachment: 187637

Committed r142497: &lt;http://trac.webkit.org/changeset/142497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829996</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 12:43:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187529</attachid>
            <date>2013-02-11 02:13:00 -0800</date>
            <delta_ts>2013-02-11 10:15:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109411-20130211020950.patch</filename>
            <type>text/plain</type>
            <size>13491</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI4MDk0MjRiZjAyYzI1
MDUzZmFjYjRhZmIzYmYzODM5NmEyZTNiZC4uOWJmZDBiNTdiZWVjNzc0MmVkOTgzNjEzODBhM2Yw
MWU0MmM3ZjE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDEzLTAyLTExICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAorICAgICAgICBNYWtlIFdlYlZUVFRva2VuaXpl
ciBzdG9wIGluaGVyaXRpbmcgZnJvbSBNYXJrdXBUb2tlbml6ZXJCYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHByb2JhYmx5IGlzbid0IHRo
ZSBmaW5hbCBwYXRjaCwgc2luY2UgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3Igc2hvdWxkIHJlYWxs
eQorICAgICAgICBiZSBpbiBpdHMgb3duIGhlYWRlci4KKworICAgICAgICBBZ2Fpbiwgc2VwYXJh
dGluZyBXZWJWVFQgY29kZSBmcm9tIE1hcmt1cCogYmFzZSBjbGFzc2VzIG1hZGUgaXQgc2ltcGxl
cgorICAgICAgICBhdCB0aGUgY29zdCBvZiBhIGxpdHRsZSBjb3B5L3Bhc3RlIGNvZGUuICBXZWJW
VFQgdG9rZW5pemF0aW9uIGlzIHJlbWFya2FibHkKKyAgICAgICAgc2ltcGxlIGNvbXBhcmVkIHRv
IEhUTUwuCisKKyAgICAgICAgVGhpcyB3aWxsIG1ha2UgaXQgaW1tZWRpYXRlbHkgcG9zc2libGUg
dG8gcHVsbCBNYXJrdXBUb2tlbml6ZXJCYXNlIHVwIGludG8KKyAgICAgICAgSFRNTFRva2VuaXpl
ciBhbmQgZnVydGhlciBzaW1wbGlmeSB0aGUgY29kZS4KKworICAgICAgICAqIGh0bWwvdHJhY2sv
V2ViVlRUVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2VuaXplcjo6
V2ViVlRUVG9rZW5pemVyKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5o
OgorICAgICAgICAoV2ViVlRUVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRv
a2VuaXplcjo6aGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViVlRUVG9rZW5pemVyOjpidWZmZXJDaGFyYWN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
VlRUVG9rZW5pemVyOjplbWl0QW5kUmVzdW1lSW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRU
VG9rZW5pemVyOjplbWl0RW5kT2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2Vu
aXplcjo6c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL01h
cmt1cFRva2VuaXplckJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOjpuZXh0SW5wdXRDaGFyYWN0ZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OnBlZWspOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3I6OmFkdmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I6OnNraXBOZXh0TmV3TGluZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I6OnNob3VsZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKToKKyAg
ICAgICAgKE1hcmt1cFRva2VuaXplckJhc2UpOgorCisyMDEzLTAyLTExICBFcmljIFNlaWRlbCAg
PGVyaWNAd2Via2l0Lm9yZz4KKwogICAgICAgICBNb3ZlIFdlYlZUVFRva2VuIG9mZiBvZiBNYXJr
dXBUb2tlbkJhc2UKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwOTQxMAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZU
VFRva2VuaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXpl
ci5jcHAKaW5kZXggM2IzZjM4YWNlM2VlYjQ0YTg2NDFiMmQ0ZGRjZjI1ODNkODMyOGIzZS4uMjY1
NDNkNzNkMTk3OWFiZmEyYTlmZTVlMDBmMmFjY2FjOWQ4MTZmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcApAQCAtNDIsMTYgKzQyLDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICNkZWZpbmUgV0VCVlRUX0FEVkFOQ0VfVE8oc3RhdGVOYW1lKSBB
RFZBTkNFX1RPKFdlYlZUVFRva2VuaXplclN0YXRlLCBzdGF0ZU5hbWUpCiAKIFdlYlZUVFRva2Vu
aXplcjo6V2ViVlRUVG9rZW5pemVyKCkKKyAgICA6IG1faW5wdXRTdHJlYW1QcmVwcm9jZXNzb3Io
dGhpcykKIHsKICAgICByZXNldCgpOwogfQogCi10ZW1wbGF0ZTw+Ci1pbmxpbmUgYm9vbCBNYXJr
dXBUb2tlbml6ZXJCYXNlPFdlYlZUVFRva2VuLCBXZWJWVFRUb2tlbml6ZXJTdGF0ZT46OnNob3Vs
ZFNraXBOdWxsQ2hhcmFjdGVycygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHRl
bXBsYXRlIDx0eXBlbmFtZSBDaGFyYWN0ZXJUeXBlPgogaW5saW5lIGJvb2wgdmVjdG9yRXF1YWxz
U3RyaW5nKGNvbnN0IFZlY3RvcjxDaGFyYWN0ZXJUeXBlLCAzMj4mIHZlY3RvciwgY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVFRva2VuaXplci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6
ZXIuaAppbmRleCAwZjQ1YmZkMGVmNjNlNTFhYWQ3Y2VjYzNkNWRmNWYzM2E4MWZmMDhjLi4yMWFi
MWYxODc5ZDk4MjAzOGM5Njg1Nzk1OGQ3ZDA4MzVjY2NjMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
ICJNYXJrdXBUb2tlbml6ZXJCYXNlLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAj
aW5jbHVkZSAiV2ViVlRUVG9rZW4uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDIwICs1NSw2MyBAQCBwdWJsaWM6CiAgICAgfTsK
IH07CiAKLWNsYXNzIFdlYlZUVFRva2VuaXplciA6IE1hcmt1cFRva2VuaXplckJhc2U8V2ViVlRU
VG9rZW4sIFdlYlZUVFRva2VuaXplclN0YXRlPiB7CitjbGFzcyBXZWJWVFRUb2tlbml6ZXIgewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZUVFRva2VuaXplcik7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViVlRUVG9r
ZW5pemVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgV2ViVlRUVG9rZW5pemVyKTsg
fQogCisgICAgdHlwZWRlZiBXZWJWVFRUb2tlbml6ZXJTdGF0ZSBTdGF0ZTsKKwogICAgIHZvaWQg
cmVzZXQoKTsKICAgICAKICAgICBib29sIG5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmLCBXZWJW
VFRUb2tlbiYpOwogCisgICAgaW5saW5lIGJvb2wgaGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4o
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdG9rZW4tPnR5cGUoKSA9PSBXZWJWVFRUb2tlbjo6
VHlwZTo6Q2hhcmFjdGVyOworICAgIH0KKworICAgIGlubGluZSB2b2lkIGJ1ZmZlckNoYXJhY3Rl
cihVQ2hhciBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQoY2hhcmFjdGVyICE9IElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpOworICAgICAgICBtX3Rva2Vu
LT5lbnN1cmVJc0NoYXJhY3RlclRva2VuKCk7CisgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ2hh
cmFjdGVyKGNoYXJhY3Rlcik7CisgICAgfQorCisgICAgaW5saW5lIGJvb2wgZW1pdEFuZFJlc3Vt
ZUluKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCB0eXBlbmFtZSBTdGF0ZTo6U3RhdGUgc3RhdGUp
CisgICAgeworICAgICAgICBtX3N0YXRlID0gc3RhdGU7CisgICAgICAgIHNvdXJjZS5hZHZhbmNl
QW5kVXBkYXRlTGluZU51bWJlcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICBpbmxpbmUgYm9vbCBlbWl0RW5kT2ZGaWxlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQorICAg
IHsKKyAgICAgICAgaWYgKGhhdmVCdWZmZXJlZENoYXJhY3RlclRva2VuKCkpCisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpEYXRhU3RhdGU7CisgICAg
ICAgIHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOworICAgICAgICBtX3Rva2Vu
LT5jbGVhcigpOworICAgICAgICBtX3Rva2VuLT5tYWtlRW5kT2ZGaWxlKCk7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgc2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIFdlYlZUVFRva2VuaXplcigp
OwotICAgIAorCisgICAgLy8gbV90b2tlbiBpcyBvd25lZCBieSB0aGUgY2FsbGVyLiBJZiBuZXh0
VG9rZW4gaXMgbm90IG9uIHRoZSBzdGFjaywKKyAgICAvLyB0aGlzIG1lbWJlciBtaWdodCBiZSBw
b2ludGluZyB0byB1bmFsbG9jYXRlZCBtZW1vcnkuCisgICAgV2ViVlRUVG9rZW4qIG1fdG9rZW47
CisgICAgV2ViVlRUVG9rZW5pemVyU3RhdGU6OlN0YXRlIG1fc3RhdGU7CisKICAgICBWZWN0b3I8
TENoYXIsIDMyPiBtX2J1ZmZlcjsKKworICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbQor
ICAgIHR5cGVkZWYgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I8V2ViVlRUVG9rZW5pemVyPiBJbnB1
dFN0cmVhbVByZXByb2Nlc3NvcjsKKyAgICBJbnB1dFN0cmVhbVByZXByb2Nlc3NvciBtX2lucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
eG1sL3BhcnNlci9NYXJrdXBUb2tlbml6ZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL01hcmt1cFRva2VuaXplckJhc2UuaAppbmRleCAwZmM5YzU2OTBiZjM2Mjc2ZjYxZjdjMmNl
MmMzY2E3NWU1OWJlNGE3Li44OTE5MTk1Y2QwYmY1NmExOTE1YzAzZjEwZTRkNTQ1NTc4YzY0MDM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJhc2Uu
aApAQCAtMzcsNiArMzcsOTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBodHRwOi8v
d3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNwcmVwcm9jZXNzaW5n
LXRoZS1pbnB1dC1zdHJlYW0KK3RlbXBsYXRlIDx0eXBlbmFtZSBUb2tlbml6ZXI+CitjbGFzcyBJ
bnB1dFN0cmVhbVByZXByb2Nlc3NvciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3IpOworcHVibGljOgorICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29y
KFRva2VuaXplciogdG9rZW5pemVyKQorICAgICAgICA6IG1fdG9rZW5pemVyKHRva2VuaXplcikK
KyAgICB7CisgICAgICAgIHJlc2V0KCk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSBVQ2hh
ciBuZXh0SW5wdXRDaGFyYWN0ZXIoKSBjb25zdCB7IHJldHVybiBtX25leHRJbnB1dENoYXJhY3Rl
cjsgfQorCisgICAgLy8gUmV0dXJucyB3aGV0aGVyIHdlIHN1Y2NlZWRlZCBpbiBwZWVraW5nIGF0
IHRoZSBuZXh0IGNoYXJhY3Rlci4KKyAgICAvLyBUaGUgb25seSB3YXkgd2UgY2FuIGZhaWwgdG8g
cGVlayBpcyBpZiB0aGVyZSBhcmUgbm8gbW9yZQorICAgIC8vIGNoYXJhY3RlcnMgaW4gfHNvdXJj
ZXwgKGFmdGVyIGNvbGxhcHNpbmcgXHJcbiwgZXRjKS4KKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wg
cGVlayhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKKyAgICB7CisgICAgUGVla0FnYWluOgorICAg
ICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9IHNvdXJjZS5jdXJyZW50Q2hhcigpOworCisgICAg
ICAgIC8vIEV2ZXJ5IGJyYW5jaCBpbiB0aGlzIGZ1bmN0aW9uIGlzIGV4cGVuc2l2ZSwgc28gd2Ug
aGF2ZSBhCisgICAgICAgIC8vIGZhc3QtcmVqZWN0IGJyYW5jaCBmb3IgY2hhcmFjdGVycyB0aGF0
IGRvbid0IHJlcXVpcmUgc3BlY2lhbAorICAgICAgICAvLyBoYW5kbGluZy4gUGxlYXNlIHJ1biB0
aGUgcGFyc2VyIGJlbmNobWFyayB3aGVuZXZlciB5b3UgdG91Y2gKKyAgICAgICAgLy8gdGhpcyBm
dW5jdGlvbi4gSXQncyB2ZXJ5IGhvdC4KKyAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIHNwZWNp
YWxDaGFyYWN0ZXJNYXNrID0gJ1xuJyB8ICdccicgfCAnXDAnOworICAgICAgICBpZiAobV9uZXh0
SW5wdXRDaGFyYWN0ZXIgJiB+c3BlY2lhbENoYXJhY3Rlck1hc2spIHsKKyAgICAgICAgICAgIG1f
c2tpcE5leHROZXdMaW5lID0gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3RlciA9PSAnXG4nICYmIG1fc2tp
cE5leHROZXdMaW5lKSB7CisgICAgICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOwor
ICAgICAgICAgICAgc291cmNlLmFkdmFuY2VQYXN0TmV3bGluZUFuZFVwZGF0ZUxpbmVOdW1iZXIo
KTsKKyAgICAgICAgICAgIGlmIChzb3VyY2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1
cnJlbnRDaGFyKCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVy
ID09ICdccicpIHsKKyAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gJ1xuJzsKKyAg
ICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7CisgICAgICAgICAgICAvLyBGSVhN
RTogVGhlIHNwZWMgaW5kaWNhdGVzIHRoYXQgdGhlIHN1cnJvZ2F0ZSBwYWlyIHJhbmdlIGFzIHdl
bGwgYXMKKyAgICAgICAgICAgIC8vIGEgbnVtYmVyIG9mIHNwZWNpZmljIGNoYXJhY3RlciB2YWx1
ZXMgYXJlIHBhcnNlIGVycm9ycyBhbmQgc2hvdWxkIGJlIHJlcGxhY2VkCisgICAgICAgICAgICAv
LyBieSB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLiBXZSBzdXNwZWN0IHRoaXMgaXMgYSBwcm9i
bGVtIHdpdGggdGhlIHNwZWMgYXMgZG9pbmcKKyAgICAgICAgICAgIC8vIHRoYXQgZmlsdGVyaW5n
IGJyZWFrcyBzdXJyb2dhdGUgcGFpciBoYW5kbGluZyBhbmQgY2F1c2VzIHVzIG5vdCB0byBtYXRj
aCBNaW5lZmllbGQuCisgICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1ww
JyAmJiAhc2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIoc291cmNlKSkgeworICAgICAg
ICAgICAgICAgIGlmIChtX3Rva2VuaXplci0+c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAg
ICAgICAgICAgICAgICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICAgICAgZ290byBQZWVrQWdhaW47
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVy
ID0gMHhGRkZEOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIC8vIFJldHVybnMgd2hldGhlciB0aGVyZSBhcmUgbW9yZSBjaGFyYWN0
ZXJzIGluIHxzb3VyY2V8IGFmdGVyIGFkdmFuY2luZy4KKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wg
YWR2YW5jZShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKKyAgICB7CisgICAgICAgIHNvdXJjZS5h
ZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOworICAgICAgICBpZiAoc291cmNlLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIHBlZWsoc291cmNl
KTsKKyAgICB9CisKKyAgICBib29sIHNraXBOZXh0TmV3TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2tpcE5leHROZXdMaW5lOyB9CisKKyAgICB2b2lkIHJlc2V0KGJvb2wgc2tpcE5leHROZXdMaW5l
ID0gZmFsc2UpCisgICAgeworICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9ICdcMCc7Cisg
ICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gc2tpcE5leHROZXdMaW5lOworICAgIH0KKworICAg
IHN0YXRpYyBjb25zdCBVQ2hhciBlbmRPZkZpbGVNYXJrZXIgPSAwOworCitwcml2YXRlOgorICAg
IGJvb2wgc2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIoU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc291cmNlLmlzQ2xvc2VkKCkgJiYg
c291cmNlLmxlbmd0aCgpID09IDE7CisgICAgfQorCisgICAgVG9rZW5pemVyKiBtX3Rva2VuaXpl
cjsKKworICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50
LXdvcmsvI25leHQtaW5wdXQtY2hhcmFjdGVyCisgICAgVUNoYXIgbV9uZXh0SW5wdXRDaGFyYWN0
ZXI7CisgICAgYm9vbCBtX3NraXBOZXh0TmV3TGluZTsKK307CisKIC8vIE5ldmVyIHVzZSB0aGlz
IHR5cGUgZm9yIGEgdmFyaWFibGUsIGFzIGl0IGNvbnRhaW5zIHNldmVyYWwgbm9uLXZpcnR1YWwg
ZnVuY3Rpb25zLgogdGVtcGxhdGU8dHlwZW5hbWUgVG9rZW4sIHR5cGVuYW1lIFN0YXRlPgogY2xh
c3MgTWFya3VwVG9rZW5pemVyQmFzZSB7CkBAIC01NSw5NyArMTQ3LDYgQEAgcHVibGljOgogICAg
IGlubGluZSBib29sIHNob3VsZFNraXBOdWxsQ2hhcmFjdGVycygpIGNvbnN0OwogCiBwcm90ZWN0
ZWQ6Ci0gICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQt
d29yay8jcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtCi0gICAgY2xhc3MgSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3IgewotICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnB1dFN0cmVh
bVByZXByb2Nlc3Nvcik7Ci0gICAgcHVibGljOgotICAgICAgICBJbnB1dFN0cmVhbVByZXByb2Nl
c3NvcihNYXJrdXBUb2tlbml6ZXJCYXNlPFRva2VuLCBTdGF0ZT4qIHRva2VuaXplcikKLSAgICAg
ICAgICAgIDogbV90b2tlbml6ZXIodG9rZW5pemVyKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXNldCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgQUxXQVlTX0lOTElORSBVQ2hhciBuZXh0SW5w
dXRDaGFyYWN0ZXIoKSBjb25zdCB7IHJldHVybiBtX25leHRJbnB1dENoYXJhY3RlcjsgfQotCi0g
ICAgICAgIC8vIFJldHVybnMgd2hldGhlciB3ZSBzdWNjZWVkZWQgaW4gcGVla2luZyBhdCB0aGUg
bmV4dCBjaGFyYWN0ZXIuCi0gICAgICAgIC8vIFRoZSBvbmx5IHdheSB3ZSBjYW4gZmFpbCB0byBw
ZWVrIGlzIGlmIHRoZXJlIGFyZSBubyBtb3JlCi0gICAgICAgIC8vIGNoYXJhY3RlcnMgaW4gfHNv
dXJjZXwgKGFmdGVyIGNvbGxhcHNpbmcgXHJcbiwgZXRjKS4KLSAgICAgICAgQUxXQVlTX0lOTElO
RSBib29sIHBlZWsoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCi0gICAgICAgIHsKLSAgICAgICAg
UGVla0FnYWluOgotICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSBzb3VyY2UuY3Vy
cmVudENoYXIoKTsKLQotICAgICAgICAgICAgLy8gRXZlcnkgYnJhbmNoIGluIHRoaXMgZnVuY3Rp
b24gaXMgZXhwZW5zaXZlLCBzbyB3ZSBoYXZlIGEKLSAgICAgICAgICAgIC8vIGZhc3QtcmVqZWN0
IGJyYW5jaCBmb3IgY2hhcmFjdGVycyB0aGF0IGRvbid0IHJlcXVpcmUgc3BlY2lhbAotICAgICAg
ICAgICAgLy8gaGFuZGxpbmcuIFBsZWFzZSBydW4gdGhlIHBhcnNlciBiZW5jaG1hcmsgd2hlbmV2
ZXIgeW91IHRvdWNoCi0gICAgICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uLiBJdCdzIHZlcnkgaG90
LgotICAgICAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIHNwZWNpYWxDaGFyYWN0ZXJNYXNrID0g
J1xuJyB8ICdccicgfCAnXDAnOwotICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVy
ICYgfnNwZWNpYWxDaGFyYWN0ZXJNYXNrKSB7Ci0gICAgICAgICAgICAgICAgbV9za2lwTmV4dE5l
d0xpbmUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcbicgJiYgbV9z
a2lwTmV4dE5ld0xpbmUpIHsKLSAgICAgICAgICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IGZh
bHNlOwotICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlUGFzdE5ld2xpbmVBbmRVcGRhdGVM
aW5lTnVtYmVyKCk7Ci0gICAgICAgICAgICAgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICBtX25leHRJbnB1
dENoYXJhY3RlciA9IHNvdXJjZS5jdXJyZW50Q2hhcigpOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdccicpIHsKLSAgICAgICAgICAgICAg
ICBtX25leHRJbnB1dENoYXJhY3RlciA9ICdcbic7Ci0gICAgICAgICAgICAgICAgbV9za2lwTmV4
dE5ld0xpbmUgPSB0cnVlOwotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBt
X3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUg
c3BlYyBpbmRpY2F0ZXMgdGhhdCB0aGUgc3Vycm9nYXRlIHBhaXIgcmFuZ2UgYXMgd2VsbCBhcwot
ICAgICAgICAgICAgICAgIC8vIGEgbnVtYmVyIG9mIHNwZWNpZmljIGNoYXJhY3RlciB2YWx1ZXMg
YXJlIHBhcnNlIGVycm9ycyBhbmQgc2hvdWxkIGJlIHJlcGxhY2VkCi0gICAgICAgICAgICAgICAg
Ly8gYnkgdGhlIHJlcGxhY2VtZW50IGNoYXJhY3Rlci4gV2Ugc3VzcGVjdCB0aGlzIGlzIGEgcHJv
YmxlbSB3aXRoIHRoZSBzcGVjIGFzIGRvaW5nCi0gICAgICAgICAgICAgICAgLy8gdGhhdCBmaWx0
ZXJpbmcgYnJlYWtzIHN1cnJvZ2F0ZSBwYWlyIGhhbmRsaW5nIGFuZCBjYXVzZXMgdXMgbm90IHRv
IG1hdGNoIE1pbmVmaWVsZC4KLSAgICAgICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0
ZXIgPT0gJ1wwJyAmJiAhc2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIoc291cmNlKSkg
ewotICAgICAgICAgICAgICAgICAgICBpZiAobV90b2tlbml6ZXItPnNob3VsZFNraXBOdWxsQ2hh
cmFjdGVycygpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3RO
b25OZXdsaW5lKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc291cmNlLmlzRW1wdHko
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBnb3RvIFBlZWtBZ2FpbjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9IDB4RkZGRDsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgfQotCi0gICAgICAgIC8vIFJldHVybnMgd2hldGhlciB0aGVyZSBhcmUgbW9yZSBjaGFyYWN0
ZXJzIGluIHxzb3VyY2V8IGFmdGVyIGFkdmFuY2luZy4KLSAgICAgICAgQUxXQVlTX0lOTElORSBi
b29sIGFkdmFuY2UoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOwotICAgICAgICAgICAgaWYg
KHNvdXJjZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAgcmV0dXJuIHBlZWsoc291cmNlKTsKLSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgc2tp
cE5leHROZXdMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9za2lwTmV4dE5ld0xpbmU7IH0KLQotICAg
ICAgICB2b2lkIHJlc2V0KGJvb2wgc2tpcE5leHROZXdMaW5lID0gZmFsc2UpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gJ1wwJzsKLSAgICAgICAgICAgIG1f
c2tpcE5leHROZXdMaW5lID0gc2tpcE5leHROZXdMaW5lOwotICAgICAgICB9Ci0KLSAgICAgICAg
c3RhdGljIGNvbnN0IFVDaGFyIGVuZE9mRmlsZU1hcmtlciA9IDA7Ci0KLSAgICBwcml2YXRlOgot
ICAgICAgICBib29sIHNob3VsZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gc291cmNl
LmlzQ2xvc2VkKCkgJiYgc291cmNlLmxlbmd0aCgpID09IDE7Ci0gICAgICAgIH0KLQotICAgICAg
ICBNYXJrdXBUb2tlbml6ZXJCYXNlPFRva2VuLCBTdGF0ZT4qIG1fdG9rZW5pemVyOwotCi0gICAg
ICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
I25leHQtaW5wdXQtY2hhcmFjdGVyCi0gICAgICAgIFVDaGFyIG1fbmV4dElucHV0Q2hhcmFjdGVy
OwotICAgICAgICBib29sIG1fc2tpcE5leHROZXdMaW5lOwotICAgIH07Ci0KICAgICBNYXJrdXBU
b2tlbml6ZXJCYXNlKCkgOiBtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yKHRoaXMpIHsgcmVzZXQo
KTsgfQogCiAgICAgaW5saW5lIHZvaWQgYnVmZmVyQ2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlcikK
QEAgLTIwNiw2ICsyMDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgVUNoYXIgbV9hZGRpdGlvbmFsQWxs
b3dlZENoYXJhY3RlcjsKIAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWIt
YXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbQorICAgIHR5
cGVkZWYgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I8TWFya3VwVG9rZW5pemVyQmFzZTxUb2tlbiwg
U3RhdGU+ID4gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I7CiAgICAgSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3IgbV9pbnB1dFN0cmVhbVByZXByb2Nlc3NvcjsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187609</attachid>
            <date>2013-02-11 10:15:35 -0800</date>
            <delta_ts>2013-02-11 10:16:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109411-20130211101219.patch</filename>
            <type>text/plain</type>
            <size>35738</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBiMTdhMGM2YThiZjEx
NDkyODQzMTBlODcyZjQ4NmY1ODRlYTM4Zi4uMGVlYTEzNTljNzk3MzA1ZDI4MzNjZGE2YWI1NzZh
YjFlMTM1YTRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDEzLTAyLTExICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAorICAgICAgICBNYWtlIFdlYlZUVFRva2VuaXpl
ciBzdG9wIGluaGVyaXRpbmcgZnJvbSBNYXJrdXBUb2tlbml6ZXJCYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHByb2JhYmx5IGlzbid0IHRo
ZSBmaW5hbCBwYXRjaCwgc2luY2UgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3Igc2hvdWxkIHJlYWxs
eQorICAgICAgICBiZSBpbiBpdHMgb3duIGhlYWRlci4KKworICAgICAgICBBZ2Fpbiwgc2VwYXJh
dGluZyBXZWJWVFQgY29kZSBmcm9tIE1hcmt1cCogYmFzZSBjbGFzc2VzIG1hZGUgaXQgc2ltcGxl
cgorICAgICAgICBhdCB0aGUgY29zdCBvZiBhIGxpdHRsZSBjb3B5L3Bhc3RlIGNvZGUuICBXZWJW
VFQgdG9rZW5pemF0aW9uIGlzIHJlbWFya2FibHkKKyAgICAgICAgc2ltcGxlIGNvbXBhcmVkIHRv
IEhUTUwuCisKKyAgICAgICAgVGhpcyB3aWxsIG1ha2UgaXQgaW1tZWRpYXRlbHkgcG9zc2libGUg
dG8gcHVsbCBNYXJrdXBUb2tlbml6ZXJCYXNlIHVwIGludG8KKyAgICAgICAgSFRNTFRva2VuaXpl
ciBhbmQgZnVydGhlciBzaW1wbGlmeSB0aGUgY29kZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxl
Lmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0lucHV0U3RyZWFtUHJlcHJvY2Vz
c29yLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRTdHJlYW1Q
cmVwcm9jZXNzb3I6Om5leHRJbnB1dENoYXJhY3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvcjo6cGVlayk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVh
bVByZXByb2Nlc3Nvcjo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcjo6c2tpcE5leHROZXdMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcjo6c2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIpOgorICAgICAgICAq
IGh0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZU
VFRva2VuaXplcjo6V2ViVlRUVG9rZW5pemVyKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZU
VFRva2VuaXplci5oOgorICAgICAgICAoV2ViVlRUVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlZUVFRva2VuaXplcjo6aGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4pOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViVlRUVG9rZW5pemVyOjpidWZmZXJDaGFyYWN0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViVlRUVG9rZW5pemVyOjplbWl0QW5kUmVzdW1lSW4pOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViVlRUVG9rZW5pemVyOjplbWl0RW5kT2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlZUVFRva2VuaXplcjo6c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKToKKyAgICAgICAgKiB4
bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJhc2UuaDoKKyAgICAgICAgKE1hcmt1cFRva2VuaXpl
ckJhc2UpOgorCisyMDEzLTAyLTExICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBNb3ZlIFdlYlZUVFRva2VuIG9mZiBvZiBNYXJrdXBUb2tlbkJhc2UKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQxMAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxOTdlODJlNzc5OWM4ZjU5MzkwYmRmYWZhOGMxMjc4
MTNlYzc3NzI5Li5hNzBhNWJiZmJjOGVlMGJjYTVjODU4MTE2MmQ3MWRkMjMzMTlkOTYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM2MTgsNiArMzYxOCw3IEBAIHdlYmNvcmVf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVy
LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCBc
CisJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKaW5kZXggY2VhMzA5NWNjN2Y4NmVjYThhNmM5ZGVmZGM2NWIxNDljMTA1MWI2YS4uNTAxNjMw
OWI4MWE0NTBhMWI5MmNlOTFlM2I0ODQ5MDM2ZWIxZjIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC0xOTM1
LDYgKzE5MzUsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL3BhcnNlci9IVE1MVG9rZW5pemVy
LmggXAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIFwKICAgICBodG1sL3BhcnNl
ci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIFwKKyAgICBodG1sL3BhcnNlci9JbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvci5oIFwKICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmggXAogICAgIGh0bWwv
cGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oIFwKICAgICBodG1sL3NoYWRvdy9Db250ZW50RGlz
dHJpYnV0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMWJjODIwMDI5M2I0ZjdlNmNkMDU1M2Zi
YzU0NTVjZWQ1OTI3MThiZi4uNTNkNDE4ODAwNWIxYzI2ZWMzMWMzMThmOTA5ZDFkOTg4MTk5YTFm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzQyNyw2ICszNDI3LDcgQEAKICAgICAgICAgICAgICdo
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIv
SFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9IVE1M
Vmlld1NvdXJjZVBhcnNlci5oJywKKyAgICAgICAgICAgICdodG1sL3BhcnNlci9JbnB1dFN0cmVh
bVByZXByb2Nlc3Nvci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9OZXN0aW5nTGV2ZWxJ
bmNyZW1lbnRlci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJz
ZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGVh
ZWI5NTFlNzY2MjdiZDcyZDM0YzhmNGEyNWM1ZDhlNzU2NDQ5OTAuLmZmNTkzMmI4NjI0NTkxMzg3
MmU0NmVmOGM4OTA2M2JlNWRkMGRjZjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NTAxMCw2ICs2NTAxMCwxMCBAQAogCQkJCQk+CiAJCQkJ
PC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQog
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxccGFyc2VyXE5lc3RpbmdMZXZlbEluY3JlbWVudGVy
LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhNGIyZmFhMGQyMTU1ZTc1YjU3YmI2Y2MyMjExMDU4
NmYzZTBjM2QwLi5hNjQyYTViM2I1MTBlMTBlZjNmNWEzODE5NzFkMmE5MWQ3NTEwYTFmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTc5
NTMsNiArNzk1Myw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxI
VE1MVG9rZW5UeXBlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJz
ZXJcSFRNTFRyZWVCdWlsZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1s
XHBhcnNlclxIVE1MVmlld1NvdXJjZVBhcnNlci5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caHRtbFxwYXJzZXJcSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxUZXh0RG9jdW1lbnRQ
YXJzZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXFRleHRW
aWV3U291cmNlUGFyc2VyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYzNhZGVkOGYzMjhmNzJmYzc0
MDM0Zjk3MGRiYmI5OWQxZGE3Y2FhZC4uOGJkOTdiM2FjZGIxNGRlMDVlOTZhNmQxNTc3Nzk3NWNk
ZWE0NzgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTI2MTIsNiArMTI2MTIsOSBAQAogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCI+CiAg
ICAgICA8RmlsdGVyPmh0bWxccGFyc2VyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
ci5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVk
ZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXE5lc3RpbmdMZXZlbElu
Y3JlbWVudGVyLmgiPgogICAgICAgPEZpbHRlcj5odG1sXHBhcnNlcjwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDk1MzgwODE3NzYzMGZiYWQwNzdiODU5MzViMjdlMGIyNWFlYTdhZjgu
LmE0YzA2OWFkNTkxMTgxM2I4MWE4MzUxNTM4YmY0Y2FlYmY0MjE5ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1NjEsNiAr
MTU2MSw4IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAq
LzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJh
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0
QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmggKi87IH07CiAJ
CTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMyMTAz
MTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLzsgfTsKKwkJNTEx
MjkzNUYzRDU0QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTI5MzYxM0Q2
REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07CisJ
CTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjIz
RDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggKi87IH07CiAJ
CTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxMzBEQzE2MERBMDA0RjAw
MzIgLyogU3RvcmFnZVRhc2suY3BwICovOyB9OwogCQk1MTFGMjMxODBEQzE2MERBMDA0RjAwMzIg
LyogU3RvcmFnZVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5oICovOyB9Owog
CQk1MTFGMjMxOTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxNTBEQzE2MERBMDA0
RjAwMzIgLyogU3RvcmFnZVRocmVhZC5jcHAgKi87IH07CkBAIC0zODE1LDggKzM4MTcsNiBAQAog
CQk5QkY5QTg4MTE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUJGOUE4
N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaCAqLzsg
fTsKIAkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYwRDZC
MkMxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwICovOyB9Owog
CQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUYwRDZCMkQxMjFC
RkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCAqLzsgfTsKLQkJNTExMjkz
NUYzRDU0QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTI5MzYxM0Q2REI0
QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07Ci0JCTUx
MTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjIzRDg1
QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggKi87IH07CiAJCTlG
M0I5NDdFMTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGM0I5NDdEMTIyNDE3NTgwMDUz
MDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCAqLzsgfTsKIAkJOUY2RkMxOTYxMTIyRTgyQTAw
RTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNkZDMTk0MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3JpcHRE
ZWJ1Z1NlcnZlci5jcHAgKi87IH07CiAJCTlGNkZDMTk3MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3Jp
cHREZWJ1Z1NlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUY2RkMxOTUxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg5NzYsNiAr
ODk3Niw4IEBACiAJCTUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNvY2tldFN0
cmVhbUhhbmRsZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEz
MTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRT
dHJlYW1IYW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
MTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMTI5MzYyM0Q4NUI0
QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGMjMxMzBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFn
ZVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVRh
c2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGMjMxNDBEQzE2MERBMDA0
RjAwMzIgLyogU3RvcmFnZVRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U3RvcmFnZVRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjIzMTUwREMx
NjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3RvcmFnZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMTI4Miw4ICsxMTI4NCw2IEBACiAJCTlCRjlBODdGMTY0OEREMkYwMDFDNkIyMyAv
KiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUYwRDZCMkMxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2Zp
bGVyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVj
dG9yUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGMEQ2
QjJEMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNGIC8qIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9m
aWxlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGM0I5NDdE
MTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0SGVhcFNuYXBzaG90Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTlGNkZDMTk0MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JpcHREZWJ1Z1Nl
cnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGNkZDMTk1MTEyMkU4MkEw
MEU4MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTY3JpcHREZWJ1Z1NlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTE3MTcsNiArMTE3MTcsNyBAQAogCQlBODc0OEJERjEyQ0JGMkRDMDAxRkJBNDEgLyogSGFz
aFRvb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hUb29scy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODc0OEQ2NjEyQ0MzNzYzMDAxRkJBNDEgLyog
SW1hZ2VPcmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZU9yaWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4NzQ4RDc0MTJD
QzNGODkwMDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlT3JpZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBODgwNUFGMTE2Qzk2QUVBMDAwRTlEOTggLyogSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaDsgcGF0
aCA9IHBhcnNlci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBODgyREExRjE1OTM4NDZBMDAwMTE1RUQgLyogQ1NTVG9TdHlsZU1hcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NUb1N0eWxlTWFwLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4MkRBMjIxNTkzODQ4RDAwMDExNUVEIC8q
IENTU1RvU3R5bGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVG9T
dHlsZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODgzREYyNTBGM0QwNDVE
MDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE0ODY0LDkgKzE0ODY1LDkgQEAKIAkJMTRERkIzM0YwQTdERjc2MzAwMThGNzY5
IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCi0JCQkJQ0RBOThEQ0QxNjAxNTE1QzAwRkVBM0IxIC8qIEVuY3J5cHRlZE1lZGlhICov
LAogCQkJCUE4M0I3OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovLAogCQkJCUE4M0I3OTBF
MENDQUZGOTcwMDBCMDgyNSAvKiBDU1MgKi8sCisJCQkJQ0RBOThEQ0QxNjAxNTE1QzAwRkVBM0Ix
IC8qIEVuY3J5cHRlZE1lZGlhICovLAogCQkJCUE4M0I3OTEyMENDQjAwM0YwMDBCMDgyNSAvKiBF
dmVudHMgKi8sCiAJCQkJODk4Nzg1NzYxMjJDQTFEQTAwM0FBQkRBIC8qIEZpbGVBUEkgKi8sCiAJ
CQkJQTgzQjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8qIEhUTUwgKi8sCkBAIC0xNTU2OSwxMCArMTU1
NzAsMTAgQEAKIAkJCQlBN0JGN0VERTE0QzkxNzVBMDAxNDQ4OUQgLyogSW50ZXJuYWxTZXR0aW5n
cy5pZGwgKi8sCiAJCQkJQTdCRTdFREQxNEM5MTc1QTAwMTQ0ODlEIC8qIE1hbGxvY1N0YXRpc3Rp
Y3MuaCAqLywKIAkJCQlBN0JFN0VERTE0QzkxNzVBMDAxNDQ4OUQgLyogTWFsbG9jU3RhdGlzdGlj
cy5pZGwgKi8sCi0JCQkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9u
cy5oICovLAotCQkJCUVCMDgxQ0Q5MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMu
aWRsICovLAogCQkJCUNEQzI2QjNDMTYwQTYyQjAwMDI2NzU3QiAvKiBNb2NrQ0RNLmNwcCAqLywK
IAkJCQlDREMyNkIzRDE2MEE2MkIwMDAyNjc1N0IgLyogTW9ja0NETS5oICovLAorCQkJCUVCMDgx
Q0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMuaCAqLywKKwkJCQlFQjA4MUNE
OTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmlkbCAqLywKIAkJCSk7CiAJCQlw
YXRoID0gdGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xODc0OCw2ICsx
ODc0OSw3IEBACiAJCQkJOTc3QjM3MjIxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxUcmVlQnVpbGRl
ci5oICovLAogCQkJCTk3N0IzODYwMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVmlld1NvdXJjZVBh
cnNlci5jcHAgKi8sCiAJCQkJOTc3QjM4NjExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxWaWV3U291
cmNlUGFyc2VyLmggKi8sCisJCQkJQTg4MDVBRjExNkM5NkFFQTAwMEU5RDk4IC8qIElucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yLmggKi8sCiAJCQkJOEEzMDlDOUUxMjM5NTBCRTAwQ0I5MjA0IC8qIE5l
c3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi8sCiAJCQkJOTdCQzg0ODExMjM2RkQ5MzAwMEM2MTYx
IC8qIFRleHREb2N1bWVudFBhcnNlci5jcHAgKi8sCiAJCQkJOTdCQzg0ODIxMjM2RkQ5MzAwMEM2
MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5oICovLApAQCAtMjE1MzgsMTIgKzIxNTQwLDEyIEBA
CiAJCQkJOTM1QzQ3NjcwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oICov
LAogCQkJCUM1QkFDMTZGMTRFMzBFNDcwMDAwODgzNyAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCAq
LywKIAkJCQlCQ0VDMDFENjBDMjc0RUI0MDA5RjRFQzkgLyogUGxhdGZvcm1TY3JlZW4uaCAqLywK
LQkJCQkyOTdCRTNEOTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ci5jcHAgKi8sCi0JCQkJMjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXIuaCAqLywKLQkJCQkyNTI3Q0M5MzE2QkY5MkVDMDA5RERBQzAgLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8sCi0JCQkJMjUyN0NDOTIxNkJGOTBCNDAwOURE
QUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKIAkJCQkyNTI3Q0M5NTE2
QkY5NUREMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwICov
LAogCQkJCTI1MjdDQzkxMTZCRjhCQTEwMDlEREFDMCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZS5oICovLAorCQkJCTI1MjdDQzkzMTZCRjkyRUMwMDlEREFDMCAvKiBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCAqLywKKwkJCQkyNTI3Q0M5MjE2QkY5MEI0MDA5RERB
QzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5oICovLAorCQkJCTI5N0JFM0Q5MTZD
MDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcCAqLywKKwkJCQky
OUU0RDhERjE2QjA5NDBGMDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oICov
LAogCQkJCTFBRDhGODFBMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
ICovLAogCQkJCTFBRDhGODE5MTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCAqLywKIAkJCQk5MzVDNDc2QTA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50
LmggKi8sCkBAIC0yMTYzMyw2ICsyMTYzNSw4IEBACiAJCUNEQTk4REJEMTYwMTRFMDgwMEZFQTNC
MSAvKiBlbmNyeXB0ZWRtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJQ0RBOThFMDkxNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5jcHAgKi8sCisJCQkJ
Q0RBOThFMEExNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5oICovLAogCQkJCUNEQTk4REQ1MTYwMjVC
RUQwMEZFQTNCMSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgKi8sCiAJCQkJQ0RBOThERDYx
NjAyNUJFRDAwRkVBM0IxIC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmggKi8sCiAJCQkJQ0RBOThE
RDcxNjAyNUJFRTAwRkVBM0IxIC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmlkbCAqLywKQEAgLTIx
NjQ1LDggKzIxNjQ5LDYgQEAKIAkJCQlDREE5OERDNzE2MDE0RjJDMDBGRUEzQjEgLyogTWVkaWFL
ZXlTZXNzaW9uLmNwcCAqLywKIAkJCQlDREE5OERDODE2MDE0RjJDMDBGRUEzQjEgLyogTWVkaWFL
ZXlTZXNzaW9uLmggKi8sCiAJCQkJQ0RBOThEQzkxNjAxNEY0MDAwRkVBM0IxIC8qIE1lZGlhS2V5
U2Vzc2lvbi5pZGwgKi8sCi0JCQkJQ0RBOThFMDkxNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5jcHAg
Ki8sCi0JCQkJQ0RBOThFMEExNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5oICovLAogCQkJCUNEQTk4
RTBDMTYwM0NGM0MwMEZFQTNCMSAvKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETVByaXZhdGUu
aCAqLywKIAkJCSk7CiAJCQluYW1lID0gZW5jcnlwdGVkbWVkaWE7CkBAIC0yMzA4Nyw4ICsyMzA4
OSw4IEBACiAJCQkJNTNFRDNGREYxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5n
c0dlbmVyYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1OTUxNEM5MzVBQjAwQTc3RkE0
IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRUJGNTEyMUQxNjk2
NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTW9ja0NETS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDE4MTVDMUYxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9y
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjgyMiw4ICsyNjgyNCw4IEBACiAJCQkJNTNFRDNGREUx
NjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBNzQwQjU5NzE0QzkzNUFGMDBBNzdGQTQgLyogSlNNYWxsb2NTdGF0aXN0
aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUVCRjUxMjFDMTY5NjQ5NkMwMDU2QkQyNSAvKiBK
U1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0MTgxNUMxRTEzODMxOTgz
MDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
QzI2QjQwMTYwQThDQzYwMDI2NzU3QiAvKiBNb2NrQ0RNLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yNjk4MCw2ICsyNjk4Miw3IEBACiAJCQkJNDk0ODRGQ0QxMDJDRjIzQzAw
MTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OUQwODZDMTYy
RjIxRjkwMERCODY1OCAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjU1MEI2OUQwOTlERjAyNzAwOTBENzgxIC8qIENEQVRBU2VjdGlvbi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDREE5OEUwQjE2MDNDRDYwMDBGRUEzQjEgLyogQ0RNLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTk3QkM2OURDMTUwNUYwNzYwMDFCNzRBQyAvKiBDaGFuZ2VWZXJzaW9u
V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNUZGRTEyQjAyNjc2MDBDMUEzNTkg
LyogQ2hhbm5lbE1lcmdlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwMDExMkIw
MjY3NjAwQzFBMzU5IC8qIENoYW5uZWxTcGxpdHRlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yODI5MSw3ICsyODI5NCwxMiBAQAogCQkJCUNEMjdGNkU1MTQ1NzY4NUEwMDc4MjA3RCAvKiBK
U01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDIzQTEyNTEzRjVGQTU5
MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTQ0NjE0MTgwQ0Q2ODI2OTAwRkFEQTc1IC8qIEpTTWVkaWFFcnJvci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDREE5OERBMzE2MDE0NjQxMDBGRUEzQjEgLyogSlNNZWRpYUtleUVy
cm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQjg1OUZBMTYwRDQ5NDkwMEU1QjA3RiAvKiBK
U01lZGlhS2V5RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThEREYxNjAyNkEzNzAw
RkVBM0IxIC8qIEpTTWVkaWFLZXlNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
Q0RBOThERTAxNjAyNkEzNzAwRkVBM0IxIC8qIEpTTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlDREE5OEUwNDE2MDM5RTFBMDBGRUEzQjEgLyogSlNNZWRpYUtleXMu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThFMDYxNjAzOUUxRjAwRkVBM0IxIC8qIEpTTWVk
aWFLZXlTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDM0MzOUI2MEMwRDNEOEQwMDVG
NEQ3QSAvKiBKU01lZGlhTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDY0RTA2QzEzNUVD
MTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yODcxMCw2ICsyODcxOCwxMCBAQAogCQkJCTRFMTk1OTIxMEEzOURBQkEwMDIy
MEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwN0E2RDFF
QjE0OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDREI4NTlGNzE2MEQ0OEE0MDBFNUIwN0YgLyogTWVkaWFLZXlFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlDREE5OEREODE2MDI1QkVGMDBGRUEzQjEgLyogTWVkaWFLZXlN
ZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QxQjRBNjUxNjA3ODZBRTAwMjgy
REY5IC8qIE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThF
MEQxNjAzRkU0QTAwRkVBM0IxIC8qIE1lZGlhS2V5cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
REE5OEUwRTE2MDNGRTU4MDBGRUEzQjEgLyogTWVkaWFLZXlTZXNzaW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4RUE4MDA5MEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxpc3QuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTQ0NjEzRTMwQ0Q2ODE5RjAwRkFEQTc1IC8qIE1lZGlhUGxheWVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA3MkM4QjExMTMxQzUxODYwMEE0RkNFOSAvKiBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODg1NSwxMCAr
Mjg4NjcsMTAgQEAKIAkJCQk0MUJGNzAwRjBGRTg2RjYxMDA1RThERUMgLyogUGxhdGZvcm1NZXNz
YWdlUG9ydENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU5ODkwMkUxNEU5QjBGODAw
RThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJD
OTREMTA4MEMyNzRGODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNjcmVlbk1hYy5tbSBpbiBTb3VyY2Vz
ICovLAotCQkJCTI5MzQ5NDBBMTZDMDJDMDcwMDkwMTMxOCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5MzQ5NDBCMTZDMDJDMEEwMDkwMTMx
OCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkyOTdCRTNEODE2QzAzQ0NFMDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXpl
ck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTI5MzQ5NDBBMTZDMDJDMDcwMDkwMTMxOCAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5N0JF
M0RBMTZDMDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTI5N0JFM0Q4MTZDMDNDQ0UwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVj
aFN5bnRoZXNpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFEOEY4MUMxMUNBQjlFOTAw
RTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOUM2
RTRGMzBENzQ1RTQ4MDA2NDQyRTkgLyogUGx1Z2luRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5NzIwNUFCQjEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yOTY3MSwxNiArMjk2ODMsNiBAQAogCQkJCTk3N0UyRTBFMTJGMEZDOUMwMEMx
MzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3N0UyRTBFMTJGMEZD
OUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUNEQTk4REEzMTYwMTQ2NDEwMEZFQTNCMSAvKiBKU01lZGlhS2V5RXJyb3IuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJQ0RBOThERDgxNjAyNUJFRjAwRkVBM0IxIC8qIE1lZGlhS2V5TWVzc2Fn
ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RERGMTYwMjZBMzcwMEZFQTNCMSAv
KiBKU01lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4REUw
MTYwMjZBMzcwMEZFQTNCMSAvKiBKU01lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQ0RBOThFMDQxNjAzOUUxQTAwRkVBM0IxIC8qIEpTTWVkaWFLZXlzLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUNEQTk4RTA2MTYwMzlFMUYwMEZFQTNCMSAvKiBKU01lZGlhS2V5U2Vz
c2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREE5OEUwQjE2MDNDRDYwMDBGRUEzQjEgLyog
Q0RNLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RTBEMTYwM0ZFNEEwMEZFQTNCMSAvKiBN
ZWRpYUtleXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThFMEUxNjAzRkU1ODAwRkVBM0Ix
IC8qIE1lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDRDFCNEE2NTE2MDc4
NkFFMDAyODJERjkgLyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0lucHV0U3RyZWFtUHJlcHJvY2Vz
c29yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVkNjhjYzU2YTU0YzIzZmQxNjJmMWZjZTgzMGM4OWVhNGQzM2YwZGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9JbnB1dFN0cmVh
bVByZXByb2Nlc3Nvci5oCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUsIEluYy4gaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSW5wdXRTdHJlYW1Q
cmVwcm9jZXNzb3JfaAorI2RlZmluZSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcl9oCisKKyNpbmNs
dWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2Vi
LWFwcHMvY3VycmVudC13b3JrLyNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0KK3RlbXBs
YXRlIDx0eXBlbmFtZSBUb2tlbml6ZXI+CitjbGFzcyBJbnB1dFN0cmVhbVByZXByb2Nlc3NvciB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IpOworcHVi
bGljOgorICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKFRva2VuaXplciogdG9rZW5pemVyKQor
ICAgICAgICA6IG1fdG9rZW5pemVyKHRva2VuaXplcikKKyAgICB7CisgICAgICAgIHJlc2V0KCk7
CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSBVQ2hhciBuZXh0SW5wdXRDaGFyYWN0ZXIoKSBj
b25zdCB7IHJldHVybiBtX25leHRJbnB1dENoYXJhY3RlcjsgfQorCisgICAgLy8gUmV0dXJucyB3
aGV0aGVyIHdlIHN1Y2NlZWRlZCBpbiBwZWVraW5nIGF0IHRoZSBuZXh0IGNoYXJhY3Rlci4KKyAg
ICAvLyBUaGUgb25seSB3YXkgd2UgY2FuIGZhaWwgdG8gcGVlayBpcyBpZiB0aGVyZSBhcmUgbm8g
bW9yZQorICAgIC8vIGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgKGFmdGVyIGNvbGxhcHNpbmcgXHJc
biwgZXRjKS4KKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGVlayhTZWdtZW50ZWRTdHJpbmcmIHNv
dXJjZSkKKyAgICB7CisgICAgUGVla0FnYWluOgorICAgICAgICBtX25leHRJbnB1dENoYXJhY3Rl
ciA9IHNvdXJjZS5jdXJyZW50Q2hhcigpOworCisgICAgICAgIC8vIEV2ZXJ5IGJyYW5jaCBpbiB0
aGlzIGZ1bmN0aW9uIGlzIGV4cGVuc2l2ZSwgc28gd2UgaGF2ZSBhCisgICAgICAgIC8vIGZhc3Qt
cmVqZWN0IGJyYW5jaCBmb3IgY2hhcmFjdGVycyB0aGF0IGRvbid0IHJlcXVpcmUgc3BlY2lhbAor
ICAgICAgICAvLyBoYW5kbGluZy4gUGxlYXNlIHJ1biB0aGUgcGFyc2VyIGJlbmNobWFyayB3aGVu
ZXZlciB5b3UgdG91Y2gKKyAgICAgICAgLy8gdGhpcyBmdW5jdGlvbi4gSXQncyB2ZXJ5IGhvdC4K
KyAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIHNwZWNpYWxDaGFyYWN0ZXJNYXNrID0gJ1xuJyB8
ICdccicgfCAnXDAnOworICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgJiB+c3BlY2lh
bENoYXJhY3Rlck1hc2spIHsKKyAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChtX25l
eHRJbnB1dENoYXJhY3RlciA9PSAnXG4nICYmIG1fc2tpcE5leHROZXdMaW5lKSB7CisgICAgICAg
ICAgICBtX3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOworICAgICAgICAgICAgc291cmNlLmFkdmFu
Y2VQYXN0TmV3bGluZUFuZFVwZGF0ZUxpbmVOdW1iZXIoKTsKKyAgICAgICAgICAgIGlmIChzb3Vy
Y2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IG1fbmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1cnJlbnRDaGFyKCk7CisgICAgICAgIH0K
KyAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdccicpIHsKKyAgICAgICAgICAg
IG1fbmV4dElucHV0Q2hhcmFjdGVyID0gJ1xuJzsKKyAgICAgICAgICAgIG1fc2tpcE5leHROZXdM
aW5lID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG1fc2tpcE5leHROZXdM
aW5lID0gZmFsc2U7CisgICAgICAgICAgICAvLyBGSVhNRTogVGhlIHNwZWMgaW5kaWNhdGVzIHRo
YXQgdGhlIHN1cnJvZ2F0ZSBwYWlyIHJhbmdlIGFzIHdlbGwgYXMKKyAgICAgICAgICAgIC8vIGEg
bnVtYmVyIG9mIHNwZWNpZmljIGNoYXJhY3RlciB2YWx1ZXMgYXJlIHBhcnNlIGVycm9ycyBhbmQg
c2hvdWxkIGJlIHJlcGxhY2VkCisgICAgICAgICAgICAvLyBieSB0aGUgcmVwbGFjZW1lbnQgY2hh
cmFjdGVyLiBXZSBzdXNwZWN0IHRoaXMgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNwZWMgYXMgZG9p
bmcKKyAgICAgICAgICAgIC8vIHRoYXQgZmlsdGVyaW5nIGJyZWFrcyBzdXJyb2dhdGUgcGFpciBo
YW5kbGluZyBhbmQgY2F1c2VzIHVzIG5vdCB0byBtYXRjaCBNaW5lZmllbGQuCisgICAgICAgICAg
ICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1wwJyAmJiAhc2hvdWxkVHJlYXROdWxsQXNF
bmRPZkZpbGVNYXJrZXIoc291cmNlKSkgeworICAgICAgICAgICAgICAgIGlmIChtX3Rva2VuaXpl
ci0+c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgc291
cmNlLmFkdmFuY2VQYXN0Tm9uTmV3bGluZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAoc291
cmNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgICAgICAgICAgICAgZ290byBQZWVrQWdhaW47CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gMHhGRkZEOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8vIFJldHVy
bnMgd2hldGhlciB0aGVyZSBhcmUgbW9yZSBjaGFyYWN0ZXJzIGluIHxzb3VyY2V8IGFmdGVyIGFk
dmFuY2luZy4KKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgYWR2YW5jZShTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSkKKyAgICB7CisgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJl
cigpOworICAgICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIHBlZWsoc291cmNlKTsKKyAgICB9CisKKyAgICBib29sIHNr
aXBOZXh0TmV3TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2tpcE5leHROZXdMaW5lOyB9CisKKyAg
ICB2b2lkIHJlc2V0KGJvb2wgc2tpcE5leHROZXdMaW5lID0gZmFsc2UpCisgICAgeworICAgICAg
ICBtX25leHRJbnB1dENoYXJhY3RlciA9ICdcMCc7CisgICAgICAgIG1fc2tpcE5leHROZXdMaW5l
ID0gc2tpcE5leHROZXdMaW5lOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBVQ2hhciBlbmRP
ZkZpbGVNYXJrZXIgPSAwOworCitwcml2YXRlOgorICAgIGJvb2wgc2hvdWxkVHJlYXROdWxsQXNF
bmRPZkZpbGVNYXJrZXIoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gc291cmNlLmlzQ2xvc2VkKCkgJiYgc291cmNlLmxlbmd0aCgpID09IDE7Cisg
ICAgfQorCisgICAgVG9rZW5pemVyKiBtX3Rva2VuaXplcjsKKworICAgIC8vIGh0dHA6Ly93d3cu
d2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI25leHQtaW5wdXQtY2hhcmFj
dGVyCisgICAgVUNoYXIgbV9uZXh0SW5wdXRDaGFyYWN0ZXI7CisgICAgYm9vbCBtX3NraXBOZXh0
TmV3TGluZTsKK307CisKK30KKworI2VuZGlmIC8vIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yX2gK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCmluZGV4
IDNiM2YzOGFjZTNlZWI0NGE4NjQxYjJkNGRkY2YyNTgzZDgzMjhiM2UuLjI2NTQzZDczZDE5Nzlh
YmZhMmE5ZmU1ZTAwZjJhY2NhYzlkODE2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1dlYlZUVFRva2VuaXplci5jcHAKQEAgLTQyLDE2ICs0MiwxMSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAjZGVmaW5lIFdFQlZUVF9BRFZBTkNFX1RPKHN0YXRlTmFtZSkgQURWQU5DRV9UTyhX
ZWJWVFRUb2tlbml6ZXJTdGF0ZSwgc3RhdGVOYW1lKQogCiBXZWJWVFRUb2tlbml6ZXI6OldlYlZU
VFRva2VuaXplcigpCisgICAgOiBtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yKHRoaXMpCiB7CiAg
ICAgcmVzZXQoKTsKIH0KIAotdGVtcGxhdGU8PgotaW5saW5lIGJvb2wgTWFya3VwVG9rZW5pemVy
QmFzZTxXZWJWVFRUb2tlbiwgV2ViVlRUVG9rZW5pemVyU3RhdGU+OjpzaG91bGRTa2lwTnVsbENo
YXJhY3RlcnMoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB0ZW1wbGF0ZSA8dHlw
ZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGlubGluZSBib29sIHZlY3RvckVxdWFsc1N0cmluZyhjb25z
dCBWZWN0b3I8Q2hhcmFjdGVyVHlwZSwgMzI+JiB2ZWN0b3IsIGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmgKaW5kZXgg
MGY0NWJmZDBlZjYzZTUxYWFkN2NlY2MzZDVkZjVmMzNhODFmZjA4Yy4uNmE2NTZkOTdiMDgzYTA5
NDNiMjZlM2ViZDA1YTY4MGE2NGI2NmJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9XZWJWVFRUb2tlbml6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFRva2VuaXplci5oCkBAIC0zMyw5ICszMyw5IEBACiAKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCiAKLSNpbmNsdWRlICJNYXJrdXBUb2tlbml6ZXJCYXNlLmgiCi0jaW5jbHVkZSAiU2Vn
bWVudGVkU3RyaW5nLmgiCisjaW5jbHVkZSAiSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIKICNp
bmNsdWRlICJXZWJWVFRUb2tlbi5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsMjAgKzU0LDYzIEBAIHB1YmxpYzoKICAgICB9Owog
fTsKIAotY2xhc3MgV2ViVlRUVG9rZW5pemVyIDogTWFya3VwVG9rZW5pemVyQmFzZTxXZWJWVFRU
b2tlbiwgV2ViVlRUVG9rZW5pemVyU3RhdGU+IHsKK2NsYXNzIFdlYlZUVFRva2VuaXplciB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViVlRUVG9rZW5pemVyKTsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxXZWJWVFRUb2tl
bml6ZXI+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJWVFRUb2tlbml6ZXIpOyB9
CiAKKyAgICB0eXBlZGVmIFdlYlZUVFRva2VuaXplclN0YXRlIFN0YXRlOworCiAgICAgdm9pZCBy
ZXNldCgpOwogICAgIAogICAgIGJvb2wgbmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYsIFdlYlZU
VFRva2VuJik7CiAKKyAgICBpbmxpbmUgYm9vbCBoYXZlQnVmZmVyZWRDaGFyYWN0ZXJUb2tlbigp
CisgICAgeworICAgICAgICByZXR1cm4gbV90b2tlbi0+dHlwZSgpID09IFdlYlZUVFRva2VuOjpU
eXBlOjpDaGFyYWN0ZXI7CisgICAgfQorCisgICAgaW5saW5lIHZvaWQgYnVmZmVyQ2hhcmFjdGVy
KFVDaGFyIGNoYXJhY3RlcikKKyAgICB7CisgICAgICAgIEFTU0VSVChjaGFyYWN0ZXIgIT0gSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcik7CisgICAgICAgIG1fdG9rZW4t
PmVuc3VyZUlzQ2hhcmFjdGVyVG9rZW4oKTsKKyAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9DaGFy
YWN0ZXIoY2hhcmFjdGVyKTsKKyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBlbWl0QW5kUmVzdW1l
SW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIHR5cGVuYW1lIFN0YXRlOjpTdGF0ZSBzdGF0ZSkK
KyAgICB7CisgICAgICAgIG1fc3RhdGUgPSBzdGF0ZTsKKyAgICAgICAgc291cmNlLmFkdmFuY2VB
bmRVcGRhdGVMaW5lTnVtYmVyKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg
IGlubGluZSBib29sIGVtaXRFbmRPZkZpbGUoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpCisgICAg
eworICAgICAgICBpZiAoaGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4oKSkKKyAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkRhdGFTdGF0ZTsKKyAgICAg
ICAgc291cmNlLmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyKCk7CisgICAgICAgIG1fdG9rZW4t
PmNsZWFyKCk7CisgICAgICAgIG1fdG9rZW4tPm1ha2VFbmRPZkZpbGUoKTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCBzaG91bGRTa2lwTnVsbENoYXJhY3RlcnMoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKIHByaXZhdGU6CiAgICAgV2ViVlRUVG9rZW5pemVyKCk7
Ci0gICAgCisKKyAgICAvLyBtX3Rva2VuIGlzIG93bmVkIGJ5IHRoZSBjYWxsZXIuIElmIG5leHRU
b2tlbiBpcyBub3Qgb24gdGhlIHN0YWNrLAorICAgIC8vIHRoaXMgbWVtYmVyIG1pZ2h0IGJlIHBv
aW50aW5nIHRvIHVuYWxsb2NhdGVkIG1lbW9yeS4KKyAgICBXZWJWVFRUb2tlbiogbV90b2tlbjsK
KyAgICBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6U3RhdGUgbV9zdGF0ZTsKKwogICAgIFZlY3RvcjxM
Q2hhciwgMzI+IG1fYnVmZmVyOworCisgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNz
L3dlYi1hcHBzL2N1cnJlbnQtd29yay8jcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtCisg
ICAgdHlwZWRlZiBJbnB1dFN0cmVhbVByZXByb2Nlc3NvcjxXZWJWVFRUb2tlbml6ZXI+IElucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOworICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIG1faW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvTWFya3VwVG9rZW5pemVyQmFzZS5oCmluZGV4IDBmYzljNTY5MGJmMzYyNzZmNjFmN2MyY2Uy
YzNjYTc1ZTU5YmU0YTcuLmMyNTEzNTc4Y2JjMDEyOTg4YjYzNjVkODAwMWY3NzY2NTk1ZDQ1OTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFya3VwVG9rZW5pemVyQmFz
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFya3VwVG9rZW5pemVyQmFzZS5o
CkBAIC0yOCw4ICsyOCw3IEBACiAjaWZuZGVmIE1hcmt1cFRva2VuaXplckJhc2VfaAogI2RlZmlu
ZSBNYXJrdXBUb2tlbml6ZXJCYXNlX2gKIAotI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgot
I2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgIklucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC01NSw5NyArNTQs
NiBAQCBwdWJsaWM6CiAgICAgaW5saW5lIGJvb2wgc2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkg
Y29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mv
d2ViLWFwcHMvY3VycmVudC13b3JrLyNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0KLSAg
ICBjbGFzcyBJbnB1dFN0cmVhbVByZXByb2Nlc3NvciB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yKE1hcmt1cFRva2VuaXplckJhc2U8VG9rZW4sIFN0YXRlPiog
dG9rZW5pemVyKQotICAgICAgICAgICAgOiBtX3Rva2VuaXplcih0b2tlbml6ZXIpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHJlc2V0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBBTFdBWVNfSU5M
SU5FIFVDaGFyIG5leHRJbnB1dENoYXJhY3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dElucHV0
Q2hhcmFjdGVyOyB9Ci0KLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVyIHdlIHN1Y2NlZWRlZCBp
biBwZWVraW5nIGF0IHRoZSBuZXh0IGNoYXJhY3Rlci4KLSAgICAgICAgLy8gVGhlIG9ubHkgd2F5
IHdlIGNhbiBmYWlsIHRvIHBlZWsgaXMgaWYgdGhlcmUgYXJlIG5vIG1vcmUKLSAgICAgICAgLy8g
Y2hhcmFjdGVycyBpbiB8c291cmNlfCAoYWZ0ZXIgY29sbGFwc2luZyBcclxuLCBldGMpLgotICAg
ICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGVlayhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKLSAg
ICAgICAgewotICAgICAgICBQZWVrQWdhaW46Ci0gICAgICAgICAgICBtX25leHRJbnB1dENoYXJh
Y3RlciA9IHNvdXJjZS5jdXJyZW50Q2hhcigpOwotCi0gICAgICAgICAgICAvLyBFdmVyeSBicmFu
Y2ggaW4gdGhpcyBmdW5jdGlvbiBpcyBleHBlbnNpdmUsIHNvIHdlIGhhdmUgYQotICAgICAgICAg
ICAgLy8gZmFzdC1yZWplY3QgYnJhbmNoIGZvciBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3QgcmVxdWly
ZSBzcGVjaWFsCi0gICAgICAgICAgICAvLyBoYW5kbGluZy4gUGxlYXNlIHJ1biB0aGUgcGFyc2Vy
IGJlbmNobWFyayB3aGVuZXZlciB5b3UgdG91Y2gKLSAgICAgICAgICAgIC8vIHRoaXMgZnVuY3Rp
b24uIEl0J3MgdmVyeSBob3QuCi0gICAgICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgc3BlY2lh
bENoYXJhY3Rlck1hc2sgPSAnXG4nIHwgJ1xyJyB8ICdcMCc7Ci0gICAgICAgICAgICBpZiAobV9u
ZXh0SW5wdXRDaGFyYWN0ZXIgJiB+c3BlY2lhbENoYXJhY3Rlck1hc2spIHsKLSAgICAgICAgICAg
ICAgICBtX3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0
ZXIgPT0gJ1xuJyAmJiBtX3NraXBOZXh0TmV3TGluZSkgewotICAgICAgICAgICAgICAgIG1fc2tp
cE5leHROZXdMaW5lID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VQYXN0
TmV3bGluZUFuZFVwZGF0ZUxpbmVOdW1iZXIoKTsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNl
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAg
ICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1cnJlbnRDaGFyKCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1xyJykg
ewotICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gJ1xuJzsKLSAgICAgICAg
ICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IHRydWU7Ci0gICAgICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7Ci0gICAgICAgICAgICAg
ICAgLy8gRklYTUU6IFRoZSBzcGVjIGluZGljYXRlcyB0aGF0IHRoZSBzdXJyb2dhdGUgcGFpciBy
YW5nZSBhcyB3ZWxsIGFzCi0gICAgICAgICAgICAgICAgLy8gYSBudW1iZXIgb2Ygc3BlY2lmaWMg
Y2hhcmFjdGVyIHZhbHVlcyBhcmUgcGFyc2UgZXJyb3JzIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQK
LSAgICAgICAgICAgICAgICAvLyBieSB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLiBXZSBzdXNw
ZWN0IHRoaXMgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNwZWMgYXMgZG9pbmcKLSAgICAgICAgICAg
ICAgICAvLyB0aGF0IGZpbHRlcmluZyBicmVha3Mgc3Vycm9nYXRlIHBhaXIgaGFuZGxpbmcgYW5k
IGNhdXNlcyB1cyBub3QgdG8gbWF0Y2ggTWluZWZpZWxkLgotICAgICAgICAgICAgICAgIGlmICht
X25leHRJbnB1dENoYXJhY3RlciA9PSAnXDAnICYmICFzaG91bGRUcmVhdE51bGxBc0VuZE9mRmls
ZU1hcmtlcihzb3VyY2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX3Rva2VuaXplci0+
c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNv
dXJjZS5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChzb3VyY2UuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gUGVla0FnYWluOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0g
MHhGRkZEOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJl
IGFyZSBtb3JlIGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgYWZ0ZXIgYWR2YW5jaW5nLgotICAgICAg
ICBBTFdBWVNfSU5MSU5FIGJvb2wgYWR2YW5jZShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyKCk7
Ci0gICAgICAgICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gcGVlayhzb3VyY2UpOwotICAgICAgICB9Ci0K
LSAgICAgICAgYm9vbCBza2lwTmV4dE5ld0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3NraXBOZXh0
TmV3TGluZTsgfQotCi0gICAgICAgIHZvaWQgcmVzZXQoYm9vbCBza2lwTmV4dE5ld0xpbmUgPSBm
YWxzZSkKLSAgICAgICAgewotICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSAnXDAn
OwotICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBza2lwTmV4dE5ld0xpbmU7Ci0gICAg
ICAgIH0KLQotICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgZW5kT2ZGaWxlTWFya2VyID0gMDsK
LQotICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgc2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVN
YXJrZXIoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAg
ICAgIHJldHVybiBzb3VyY2UuaXNDbG9zZWQoKSAmJiBzb3VyY2UubGVuZ3RoKCkgPT0gMTsKLSAg
ICAgICAgfQotCi0gICAgICAgIE1hcmt1cFRva2VuaXplckJhc2U8VG9rZW4sIFN0YXRlPiogbV90
b2tlbml6ZXI7Ci0KLSAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jbmV4dC1pbnB1dC1jaGFyYWN0ZXIKLSAgICAgICAgVUNoYXIgbV9u
ZXh0SW5wdXRDaGFyYWN0ZXI7Ci0gICAgICAgIGJvb2wgbV9za2lwTmV4dE5ld0xpbmU7Ci0gICAg
fTsKLQogICAgIE1hcmt1cFRva2VuaXplckJhc2UoKSA6IG1faW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3IodGhpcykgeyByZXNldCgpOyB9CiAKICAgICBpbmxpbmUgdm9pZCBidWZmZXJDaGFyYWN0ZXIo
VUNoYXIgY2hhcmFjdGVyKQpAQCAtMjA2LDYgKzExNCw3IEBAIHByb3RlY3RlZDoKICAgICBVQ2hh
ciBtX2FkZGl0aW9uYWxBbGxvd2VkQ2hhcmFjdGVyOwogCiAgICAgLy8gaHR0cDovL3d3dy53aGF0
d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jcHJlcHJvY2Vzc2luZy10aGUtaW5w
dXQtc3RyZWFtCisgICAgdHlwZWRlZiBJbnB1dFN0cmVhbVByZXByb2Nlc3NvcjxNYXJrdXBUb2tl
bml6ZXJCYXNlPFRva2VuLCBTdGF0ZT4gPiBJbnB1dFN0cmVhbVByZXByb2Nlc3NvcjsKICAgICBJ
bnB1dFN0cmVhbVByZXByb2Nlc3NvciBtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yOwogfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187612</attachid>
            <date>2013-02-11 10:16:58 -0800</date>
            <delta_ts>2013-02-11 11:26:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109411-20130211101342.patch</filename>
            <type>text/plain</type>
            <size>35751</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDBiMTdhMGM2YThiZjEx
NDkyODQzMTBlODcyZjQ4NmY1ODRlYTM4Zi4uNjY5Mjg1MjdmYWNiZDFmN2JjMjYxNTU4MTg4M2Mz
ODYxMDcwZGNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDEzLTAyLTExICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAorICAgICAgICBNYWtlIFdlYlZUVFRva2VuaXpl
ciBzdG9wIGluaGVyaXRpbmcgZnJvbSBNYXJrdXBUb2tlbml6ZXJCYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBJbnB1dFN0cmVhbVByZXBy
b2Nlc3NvciBpbnRvIGl0cyBvd24gaGVhZGVyIGZpbGUgc28gaXQgY2FuIGJlCisgICAgICAgIHVz
ZWQgYnkgYm90aCBXZWJWVFRUb2tlbml6ZXIgYW5kIEhUTUxUb2tlbml6ZXIuCisKKyAgICAgICAg
QWdhaW4sIHNlcGFyYXRpbmcgV2ViVlRUIGNvZGUgZnJvbSBNYXJrdXAqIGJhc2UgY2xhc3NlcyBt
YWRlIGl0IHNpbXBsZXIKKyAgICAgICAgYXQgdGhlIGNvc3Qgb2YgYSBsaXR0bGUgY29weS9wYXN0
ZSBjb2RlLiAgV2ViVlRUIHRva2VuaXphdGlvbiBpcyByZW1hcmthYmx5CisgICAgICAgIHNpbXBs
ZSBjb21wYXJlZCB0byBIVE1MLgorCisgICAgICAgIFRoaXMgd2lsbCBtYWtlIGl0IGltbWVkaWF0
ZWx5IHBvc3NpYmxlIHRvIHB1bGwgTWFya3VwVG9rZW5pemVyQmFzZSB1cCBpbnRvCisgICAgICAg
IEhUTUxUb2tlbml6ZXIgYW5kIGZ1cnRoZXIgc2ltcGxpZnkgdGhlIGNvZGUuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICogV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL3BhcnNlci9JbnB1dFN0
cmVhbVByZXByb2Nlc3Nvci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRTdHJlYW1Q
cmVwcm9jZXNzb3I6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpuZXh0SW5wdXRDaGFyYWN0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OnBlZWspOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmFkdmFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OnNraXBOZXh0TmV3TGluZSk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OnNob3VsZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2Vy
KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJWVFRUb2tlbml6ZXI6OldlYlZUVFRva2VuaXplcik6CisgICAgICAgICogaHRt
bC90cmFjay9XZWJWVFRUb2tlbml6ZXIuaDoKKyAgICAgICAgKFdlYlZUVFRva2VuaXplcik6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJWVFRUb2tlbml6ZXI6OmhhdmVCdWZmZXJlZENoYXJhY3RlclRv
a2VuKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2VuaXplcjo6YnVmZmVyQ2hhcmFjdGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2VuaXplcjo6ZW1pdEFuZFJlc3VtZUluKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2VuaXplcjo6ZW1pdEVuZE9mRmlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJWVFRUb2tlbml6ZXI6OnNob3VsZFNraXBOdWxsQ2hhcmFjdGVycyk6
CisgICAgICAgICogeG1sL3BhcnNlci9NYXJrdXBUb2tlbml6ZXJCYXNlLmg6CisgICAgICAgIChN
YXJrdXBUb2tlbml6ZXJCYXNlKToKKworMjAxMy0wMi0xMSAgRXJpYyBTZWlkZWwgIDxlcmljQHdl
YmtpdC5vcmc+CisKICAgICAgICAgTW92ZSBXZWJWVFRUb2tlbiBvZmYgb2YgTWFya3VwVG9rZW5C
YXNlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MTAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMTk3ZTgyZTc3OTljOGY1OTM5
MGJkZmFmYThjMTI3ODEzZWM3NzcyOS4uYTcwYTViYmZiYzhlZTBiY2E1Yzg1ODExNjJkNzFkZDIz
MzE5ZDk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNjE4LDYgKzM2MTgs
NyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUcmVlQnVpbGRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVmlld1Nv
dXJjZVBhcnNlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291
cmNlUGFyc2VyLmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0lucHV0U3RyZWFtUHJl
cHJvY2Vzc29yLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL05lc3RpbmdMZXZlbElu
Y3JlbWVudGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBh
cnNlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNl
ci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IGNlYTMwOTVjYzdmODZlY2E4YTZjOWRlZmRjNjViMTQ5YzEw
NTFiNmEuLjUwMTYzMDliODFhNDUwYTFiOTJjZTkxZTNiNDg0OTAzNmViMWYyMzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaQpAQCAtMTkzNSw2ICsxOTM1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9wYXJzZXIv
SFRNTFRva2VuaXplci5oIFwKICAgICBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBcCiAg
ICAgaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCBcCisgICAgaHRtbC9wYXJzZXIv
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCBcCiAgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5o
IFwKICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yRGVsZWdhdGUuaCBcCiAgICAgaHRtbC9zaGFk
b3cvQ29udGVudERpc3RyaWJ1dG9yLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDFiYzgyMDAyOTNi
NGY3ZTZjZDA1NTNmYmM1NDU1Y2VkNTkyNzE4YmYuLjUzZDQxODgwMDViMWMyNmVjMzFjMzE4Zjkw
OWQxZDk4ODE5OWExZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTM0MjcsNiArMzQyNyw3IEBACiAg
ICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgnLAogICAgICAgICAgICAg
J2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCcsCiAgICAgICAgICAgICAnaHRt
bC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCcsCisgICAgICAgICAgICAnaHRtbC9wYXJz
ZXIvSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIv
TmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvVGV4
dERvY3VtZW50UGFyc2VyLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvVGV4dERvY3Vt
ZW50UGFyc2VyLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCBlYWViOTUxZTc2NjI3YmQ3MmQzNGM4ZjRhMjVjNWQ4ZTc1NjQ0OTkwLi5mZjU5
MzJiODYyNDU5MTM4NzJlNDZlZjhjODkwNjNiZTVkZDBkY2Y4IDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjUwMTAsNiArNjUwMTAsMTAgQEAK
IAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0
bWxccGFyc2VyXElucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+
CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHBhcnNlclxOZXN0aW5nTGV2
ZWxJbmNyZW1lbnRlci5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggYTRiMmZhYTBkMjE1NWU3NWI1
N2JiNmNjMjIxMTA1ODZmM2UwYzNkMC4uYTY0MmE1YjNiNTEwZTEwZWYzZjVhMzgxOTcxZDJhOTFk
NzUxMGExZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCkBAIC03OTUzLDYgKzc5NTMsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aHRtbFxwYXJzZXJcSFRNTFRva2VuVHlwZXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGh0bWxccGFyc2VyXEhUTUxUcmVlQnVpbGRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5caHRtbFxwYXJzZXJcSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXElucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxOZXN0aW5nTGV2ZWxJ
bmNyZW1lbnRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJc
VGV4dERvY3VtZW50UGFyc2VyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1s
XHBhcnNlclxUZXh0Vmlld1NvdXJjZVBhcnNlci5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IGMzYWRl
ZDhmMzI4ZjcyZmM3NDAzNGY5NzBkYmJiOTlkMWRhN2NhYWQuLjhiZDk3YjNhY2RiMTRkZTA1ZTk2
YTZkMTU3Nzc5NzVjZGVhNDc4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTEyNjEyLDYgKzEyNjEyLDkg
QEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXEhUTUxWaWV3U291cmNl
UGFyc2VyLmgiPgogICAgICAgPEZpbHRlcj5odG1sXHBhcnNlcjwvRmlsdGVyPgogICAgIDwvQ2xJ
bmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3IuaCI+CisgICAgICA8RmlsdGVyPmh0bWxccGFyc2VyPC9GaWx0ZXI+Cisg
ICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxO
ZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5NTM4MDgxNzc2MzBmYmFkMDc3Yjg1OTM1YjI3
ZTBiMjVhZWE3YWY4Li5hNGMwNjlhZDU5MTE4MTNiODFhODM1MTUzOGJmNGNhZWJmNDIxOWQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNTYxLDYgKzE1NjEsOCBAQAogCQk1MTBENEEzNjEwMzE2NUVFMDA0OUVBNTQgLyogU29j
a2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFu
ZGxlQmFzZS5jcHAgKi87IH07CiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRT
dHJlYW1IYW5kbGVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFz
ZS5oICovOyB9OwogCQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFu
ZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmgg
Ki87IH07CisJCTUxMTI5MzVGM0Q1NEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTEyOTM2MTNENkRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQu
Y3BwICovOyB9OworCQk1MTEyOTM2MDNENjBCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFBy
b2ZpbGVyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxMTI5MzYyM0Q4NUI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dC5oICovOyB9OwogCQk1MTFGMjMxNzBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjIzMTMw
REMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUYXNrLmNwcCAqLzsgfTsKIAkJNTExRjIzMTgwREMx
NjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxNDBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRh
c2suaCAqLzsgfTsKIAkJNTExRjIzMTkwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUaHJlYWQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjIz
MTUwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUaHJlYWQuY3BwICovOyB9OwpAQCAtMzgxNSw4
ICszODE3LDYgQEAKIAkJOUJGOUE4ODExNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250
cm9sc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlCRjlBODdGMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xs
ZWN0aW9uLmggKi87IH07CiAJCTlGMEQ2QjJFMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQ
cm9maWxlckFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDlGMEQ2QjJDMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50
LmNwcCAqLzsgfTsKIAkJOUYwRDZCMkYxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2Zp
bGVyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDlGMEQ2QjJEMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggKi87
IH07Ci0JCTUxMTI5MzVGM0Q1NEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJB
Z2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTEyOTM2MTNENkRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3Bw
ICovOyB9OwotCQk1MTEyOTM2MDNENjBCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMTI5MzYyM0Q4NUI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5o
ICovOyB9OwogCQk5RjNCOTQ3RTEyMjQxNzU4MDA1MzA0RTcgLyogU2NyaXB0SGVhcFNuYXBzaG90
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjNCOTQ3
RDEyMjQxNzU4MDA1MzA0RTcgLyogU2NyaXB0SGVhcFNuYXBzaG90LmggKi87IH07CiAJCTlGNkZD
MTk2MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjZGQzE5NDExMjJFODJBMDBFODAx
OTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuY3BwICovOyB9OwogCQk5RjZGQzE5NzExMjJFODJBMDBF
ODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlGNkZDMTk1MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3JpcHREZWJ1
Z1NlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC04OTc2LDYgKzg5NzYsOCBAQAogCQk1MTBENEEzMDEwMzE2NUVFMDA0OUVBNTQgLyogU29j
a2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQmFz
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEEzMjEwMzE2NUVFMDA0OUVB
NTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTEyOTM2MTNENkRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MTEyOTM2MjNEODVCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjIzMTMwREMxNjBEQTAwNEYw
MDMyIC8qIFN0b3JhZ2VUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFN0b3JhZ2VUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExRjIz
MTQwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFN0b3JhZ2VUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGhyZWFkLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b3JhZ2VUaHJlYWQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTEyODIsOCArMTEyODQsNiBAQAogCQk5QkY5QTg3RjE2NDhE
RDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGMEQ2QjJDMTIxQkZFQkEwMDZDMDI4OCAvKiBJ
bnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5RjBENkIyRDEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2Vu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JQcm9maWxlckFn
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMTI5MzYxM0Q2REI0QjUyRkFG
OTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxMTI5MzYyM0Q4NUI0QjUyRkFGOTczRiAvKiBJbnNw
ZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5RjNCOTQ3RDEyMjQxNzU4MDA1MzA0RTcgLyogU2NyaXB0SGVhcFNuYXBzaG90LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEhlYXBTbmFwc2hvdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjZGQzE5NDExMjJFODJBMDBFODAxOTYgLyogU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2NyaXB0RGVidWdTZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjZG
QzE5NTExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0RGVidWdTZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTExNzE3LDYgKzExNzE3LDcgQEAKIAkJQTg3NDhCREYxMkNCRjJEQzAw
MUZCQTQxIC8qIEhhc2hUb29scy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBI
YXNoVG9vbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3NDhENjYxMkNDMzc2
MzAwMUZCQTQxIC8qIEltYWdlT3JpZW50YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW1hZ2VPcmllbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBODc0OEQ3NDEyQ0MzRjg5MDAxRkJBNDEgLyogSW1hZ2VPcmllbnRhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZU9yaWVudGF0aW9uLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTg4MDVBRjExNkM5NkFFQTAwMEU5RDk4IC8qIElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yLmg7IHBhdGggPSBwYXJzZXIvSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4MkRBMUYxNTkzODQ2QTAwMDExNUVEIC8qIENTU1Rv
U3R5bGVNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTVG9T
dHlsZU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4ODJEQTIyMTU5Mzg0
OEQwMDAxMTVFRCAvKiBDU1NUb1N0eWxlTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENTU1RvU3R5bGVNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4
M0RGMjUwRjNEMDQ1RDAwRjE5QkY2IC8qIFZpc2libGVTZWxlY3Rpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlzaWJsZVNlbGVjdGlvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDg2NCw5ICsxNDg2NSw5IEBACiAJCTE0REZCMzNGMEE3
REY3NjMwMDE4Rjc2OSAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUNEQTk4RENEMTYwMTUxNUMwMEZFQTNCMSAvKiBFbmNy
eXB0ZWRNZWRpYSAqLywKIAkJCQlBODNCNzkxMDBDQ0IwMDFCMDAwQjA4MjUgLyogQ29yZSAqLywK
IAkJCQlBODNCNzkwRTBDQ0FGRjk3MDAwQjA4MjUgLyogQ1NTICovLAorCQkJCUNEQTk4RENEMTYw
MTUxNUMwMEZFQTNCMSAvKiBFbmNyeXB0ZWRNZWRpYSAqLywKIAkJCQlBODNCNzkxMjBDQ0IwMDNG
MDAwQjA4MjUgLyogRXZlbnRzICovLAogCQkJCTg5ODc4NTc2MTIyQ0ExREEwMDNBQUJEQSAvKiBG
aWxlQVBJICovLAogCQkJCUE4M0I3OTA4MENDQUZGMkIwMDBCMDgyNSAvKiBIVE1MICovLApAQCAt
MTU1NjksMTAgKzE1NTcwLDEwIEBACiAJCQkJQTdCRjdFREUxNEM5MTc1QTAwMTQ0ODlEIC8qIElu
dGVybmFsU2V0dGluZ3MuaWRsICovLAogCQkJCUE3QkU3RUREMTRDOTE3NUEwMDE0NDg5RCAvKiBN
YWxsb2NTdGF0aXN0aWNzLmggKi8sCiAJCQkJQTdCRTdFREUxNEM5MTc1QTAwMTQ0ODlEIC8qIE1h
bGxvY1N0YXRpc3RpY3MuaWRsICovLAotCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBU
eXBlQ29udmVyc2lvbnMuaCAqLywKLQkJCQlFQjA4MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlw
ZUNvbnZlcnNpb25zLmlkbCAqLywKIAkJCQlDREMyNkIzQzE2MEE2MkIwMDAyNjc1N0IgLyogTW9j
a0NETS5jcHAgKi8sCiAJCQkJQ0RDMjZCM0QxNjBBNjJCMDAwMjY3NTdCIC8qIE1vY2tDRE0uaCAq
LywKKwkJCQlFQjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8s
CisJCQkJRUIwODFDRDkxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9ucy5pZGwgKi8s
CiAJCQkpOwogCQkJcGF0aCA9IHRlc3Rpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTg3NDgsNiArMTg3NDksNyBAQAogCQkJCTk3N0IzNzIyMTIyODcyMTcwMEI4MUZGOCAvKiBI
VE1MVHJlZUJ1aWxkZXIuaCAqLywKIAkJCQk5NzdCMzg2MDEyMjg4M0U5MDBCODFGRjggLyogSFRN
TFZpZXdTb3VyY2VQYXJzZXIuY3BwICovLAogCQkJCTk3N0IzODYxMTIyODgzRTkwMEI4MUZGOCAv
KiBIVE1MVmlld1NvdXJjZVBhcnNlci5oICovLAorCQkJCUE4ODA1QUYxMTZDOTZBRUEwMDBFOUQ5
OCAvKiBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oICovLAogCQkJCThBMzA5QzlFMTIzOTUwQkUw
MENCOTIwNCAvKiBOZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oICovLAogCQkJCTk3QkM4NDgxMTIz
NkZEOTMwMDBDNjE2MSAvKiBUZXh0RG9jdW1lbnRQYXJzZXIuY3BwICovLAogCQkJCTk3QkM4NDgy
MTIzNkZEOTMwMDBDNjE2MSAvKiBUZXh0RG9jdW1lbnRQYXJzZXIuaCAqLywKQEAgLTIxNTM4LDEy
ICsyMTU0MCwxMiBAQAogCQkJCTkzNUM0NzY3MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1v
dXNlRXZlbnQuaCAqLywKIAkJCQlDNUJBQzE2RjE0RTMwRTQ3MDAwMDg4MzcgLyogUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggKi8sCiAJCQkJQkNFQzAxRDYwQzI3NEVCNDAwOUY0RUM5IC8qIFBsYXRmb3Jt
U2NyZWVuLmggKi8sCi0JCQkJMjk3QkUzRDkxNkMwNDNEODAwMzMxNkJEIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXIuY3BwICovLAotCQkJCTI5RTREOERGMTZCMDk0MEYwMEM4NDcwNCAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmggKi8sCi0JCQkJMjUyN0NDOTMxNkJGOTJFQzAwOURE
QUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwICovLAotCQkJCTI1MjdDQzky
MTZCRjkwQjQwMDlEREFDMCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmggKi8sCiAJ
CQkJMjUyN0NDOTUxNkJGOTVERDAwOUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0
ZXJhbmNlLmNwcCAqLywKIAkJCQkyNTI3Q0M5MTE2QkY4QkExMDA5RERBQzAgLyogUGxhdGZvcm1T
cGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuaCAqLywKKwkJCQkyNTI3Q0M5MzE2QkY5MkVDMDA5RERB
QzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8sCisJCQkJMjUyN0NDOTIx
NkJGOTBCNDAwOUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKKwkJ
CQkyOTdCRTNEOTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5j
cHAgKi8sCisJCQkJMjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBsYXRmb3JtU3BlZWNoU3lu
dGhlc2l6ZXIuaCAqLywKIAkJCQkxQUQ4RjgxQTExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcCAqLywKIAkJCQkxQUQ4RjgxOTExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZv
cm1TdHJhdGVnaWVzLmggKi8sCiAJCQkJOTM1QzQ3NkEwOUFDNEQ0RjAwQTZBQUI0IC8qIFBsYXRm
b3JtV2hlZWxFdmVudC5oICovLApAQCAtMjE2MzMsNiArMjE2MzUsOCBAQAogCQlDREE5OERCRDE2
MDE0RTA4MDBGRUEzQjEgLyogZW5jcnlwdGVkbWVkaWEgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUNEQTk4RTA5MTYwM0NENTkwMEZFQTNCMSAvKiBDRE0u
Y3BwICovLAorCQkJCUNEQTk4RTBBMTYwM0NENTkwMEZFQTNCMSAvKiBDRE0uaCAqLywKIAkJCQlD
REE5OERENTE2MDI1QkVEMDBGRUEzQjEgLyogTWVkaWFLZXlNZXNzYWdlRXZlbnQuY3BwICovLAog
CQkJCUNEQTk4REQ2MTYwMjVCRUQwMEZFQTNCMSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5oICov
LAogCQkJCUNEQTk4REQ3MTYwMjVCRUUwMEZFQTNCMSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5p
ZGwgKi8sCkBAIC0yMTY0NSw4ICsyMTY0OSw2IEBACiAJCQkJQ0RBOThEQzcxNjAxNEYyQzAwRkVB
M0IxIC8qIE1lZGlhS2V5U2Vzc2lvbi5jcHAgKi8sCiAJCQkJQ0RBOThEQzgxNjAxNEYyQzAwRkVB
M0IxIC8qIE1lZGlhS2V5U2Vzc2lvbi5oICovLAogCQkJCUNEQTk4REM5MTYwMTRGNDAwMEZFQTNC
MSAvKiBNZWRpYUtleVNlc3Npb24uaWRsICovLAotCQkJCUNEQTk4RTA5MTYwM0NENTkwMEZFQTNC
MSAvKiBDRE0uY3BwICovLAotCQkJCUNEQTk4RTBBMTYwM0NENTkwMEZFQTNCMSAvKiBDRE0uaCAq
LywKIAkJCQlDREE5OEUwQzE2MDNDRjNDMDBGRUEzQjEgLyogTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcml2YXRlLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGVuY3J5cHRlZG1lZGlhOwpAQCAt
MjMwODcsOCArMjMwODksOCBAQAogCQkJCTUzRUQzRkRGMTY3QTg4RTcwMDY3NjJFNiAvKiBKU0lu
dGVybmFsU2V0dGluZ3NHZW5lcmF0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDBCNTk1MTRD
OTM1QUIwMEE3N0ZBNCAvKiBKU01hbGxvY1N0YXRpc3RpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUVCRjUxMjFEMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJNDE4MTVDMUYxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9y
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDMjZCNDExNjBBOENDRTAwMjY3NTdCIC8qIE1vY2tD
RE0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJD
b3JlVGVzdFN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjY4MjIsOCArMjY4MjQsOCBAQAog
CQkJCTUzRUQzRkRFMTY3QTg4RTcwMDY3NjJFNiAvKiBKU0ludGVybmFsU2V0dGluZ3NHZW5lcmF0
ZWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc0MEI1OTcxNEM5MzVBRjAwQTc3RkE0IC8qIEpT
TWFsbG9jU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFQkY1MTIxQzE2OTY0OTZD
MDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDE4
MTVDMUUxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDREMyNkI0MDE2MEE4Q0M2MDAyNjc1N0IgLyogTW9ja0NETS5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk0MTgxNUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBw
b3J0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjY5ODAsNiArMjY5ODIsNyBAQAogCQkJCTQ5NDg0
RkNEMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNTdHlsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzlEMDg2QzE2MkYyMUY5MDBEQjg2NTggLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTY1NTBCNjlEMDk5REYwMjcwMDkwRDc4MSAvKiBDREFUQVNl
Y3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThFMEIxNjAzQ0Q2MDAwRkVBM0IxIC8q
IENETS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0JDNjlEQzE1MDVGMDc2MDAxQjc0QUMgLyog
Q2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQzMTVGRkUxMkIw
MjY3NjAwQzFBMzU5IC8qIENoYW5uZWxNZXJnZXJOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZEMzE2MDAxMTJCMDI2NzYwMEMxQTM1OSAvKiBDaGFubmVsU3BsaXR0ZXJOb2RlLmNwcCBpbiBT
b3VyY2VzICovLApAQCAtMjgyOTEsNyArMjgyOTQsMTIgQEAKIAkJCQlDRDI3RjZFNTE0NTc2ODVB
MDA3ODIwN0QgLyogSlNNZWRpYUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkQy
M0ExMjUxM0Y1RkE1OTAwRjY3MDAxIC8qIEpTTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxNDE4MENENjgyNjkwMEZBREE3NSAvKiBKU01lZGlh
RXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThEQTMxNjAxNDY0MTAwRkVBM0IxIC8q
IEpTTWVkaWFLZXlFcnJvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREI4NTlGQTE2MEQ0OTQ5
MDBFNUIwN0YgLyogSlNNZWRpYUtleUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQTk4
RERGMTYwMjZBMzcwMEZFQTNCMSAvKiBKU01lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUNEQTk4REUwMTYwMjZBMzcwMEZFQTNCMSAvKiBKU01lZGlhS2V5TmVlZGVk
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThFMDQxNjAzOUUxQTAwRkVBM0IxIC8q
IEpTTWVkaWFLZXlzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQTk4RTA2MTYwMzlFMUYwMEZF
QTNCMSAvKiBKU01lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzNDMzlC
NjBDMEQzRDhEMDA1RjREN0EgLyogSlNNZWRpYUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTQ2NEUwNkMxMzVFQzEwNjAwRkRCMDBBIC8qIEpTTWVkaWFMaXN0Q3VzdG9tLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUQzQTk0QTQ2MTIyREM0MEYwMEEzN0JCQyAvKiBKU01lZGlhUXVlcnlMaXN0
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjg3MTAsNiArMjg3MTgsMTAgQEAKIAkJCQk0RTE5NTky
MTBBMzlEQUJBMDAyMjBGRTUgLyogTWVkaWFGZWF0dXJlTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMDdBNkQxRUIxNDkxMTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJhZ21lbnRVUklQYXJzZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RCODU5RjcxNjBENDhBNDAwRTVCMDdGIC8qIE1lZGlh
S2V5RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThERDgxNjAyNUJFRjAwRkVBM0Ix
IC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMUI0QTY1
MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUNEQTk4RTBEMTYwM0ZFNEEwMEZFQTNCMSAvKiBNZWRpYUtleXMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RBOThFMEUxNjAzRkU1ODAwRkVBM0IxIC8qIE1lZGlhS2V5U2Vzc2lvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEVBODAwOTBBMTk1MTZFMDBBOEVGNUYgLyogTWVkaWFM
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0NDYxM0UzMENENjgxOUYwMEZBREE3NSAvKiBN
ZWRpYVBsYXllci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzJDOEIxMTEzMUM1MTg2MDBBNEZD
RTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMjg4NTUsMTAgKzI4ODY3LDEwIEBACiAJCQkJNDFCRjcwMEYwRkU4NkY2MTAwNUU4REVDIC8q
IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1OTg5
MDJFMTRFOUIwRjgwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0gaW4gU291cmNl
cyAqLywKIAkJCQlCQzk0RDEwODBDMjc0Rjg4MDA2QkM2MTcgLyogUGxhdGZvcm1TY3JlZW5NYWMu
bW0gaW4gU291cmNlcyAqLywKLQkJCQkyOTM0OTQwQTE2QzAyQzA3MDA5MDEzMTggLyogUGxhdGZv
cm1TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyOTM0OTQwQjE2
QzAyQzBBMDA5MDEzMTggLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMjk3QkUzRDgxNkMwM0NDRTAwMzMxNkJEIC8qIFBsYXRmb3JtU3Bl
ZWNoU3ludGhlc2l6ZXJNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkyOTM0OTQwQTE2QzAyQzA3
MDA5MDEzMTggLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyOTdCRTNEQTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVz
aXplci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyOTdCRTNEODE2QzAzQ0NFMDAzMzE2QkQgLyog
UGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBRDhG
ODFDMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTlDNkU0RjMwRDc0NUU0ODAwNjQ0MkU5IC8qIFBsdWdpbkRhdGEuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTcyMDVBQkIxMjM5MjkyNzAwQjE3MzgwIC8qIFBsdWdpbkRvY3VtZW50
LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjk2NzEsMTYgKzI5NjgzLDYgQEAKIAkJCQk5NzdFMkUw
RTEyRjBGQzlDMDBDMTMzNzkgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5
NzdFMkUwRTEyRjBGQzlDMDBDMTMzODAgLyogWFNTQXVkaXRvckRlbGVnYXRlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZENTM3MzUyMTM3QjY1MTgwMDAwOERDRSAvKiBaZXJvUG9sZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlDREE5OERBMzE2MDE0NjQxMDBGRUEzQjEgLyogSlNNZWRpYUtleUVy
cm9yLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4REQ4MTYwMjVCRUYwMEZFQTNCMSAvKiBN
ZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREE5OERERjE2MDI2
QTM3MDBGRUEzQjEgLyogSlNNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlDREE5OERFMDE2MDI2QTM3MDBGRUEzQjEgLyogSlNNZWRpYUtleU5lZWRlZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RTA0MTYwMzlFMUEwMEZFQTNCMSAvKiBKU01lZGlh
S2V5cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREE5OEUwNjE2MDM5RTFGMDBGRUEzQjEgLyog
SlNNZWRpYUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThFMEIxNjAzQ0Q2
MDAwRkVBM0IxIC8qIENETS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREE5OEUwRDE2MDNGRTRB
MDBGRUEzQjEgLyogTWVkaWFLZXlzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RTBFMTYw
M0ZFNTgwMEZFQTNCMSAvKiBNZWRpYUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJ
Q0QxQjRBNjUxNjA3ODZBRTAwMjgyREY5IC8qIE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9JbnB1dFN0
cmVhbVByZXByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDY4Y2M1NmE1NGMyM2ZkMTYyZjFmY2U4MzBj
ODllYTRkMzNmMGRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuIGh0dHA6Ly93d3cudG9yY2htb2JpbGUu
Y29tLworICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yX2gKKyNkZWZpbmUgSW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3JfaAorCisjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQt
c3RyZWFtCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVG9rZW5pemVyPgorY2xhc3MgSW5wdXRTdHJlYW1Q
cmVwcm9jZXNzb3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yKTsKK3B1YmxpYzoKKyAgICBJbnB1dFN0cmVhbVByZXByb2Nlc3NvcihUb2tlbml6ZXIq
IHRva2VuaXplcikKKyAgICAgICAgOiBtX3Rva2VuaXplcih0b2tlbml6ZXIpCisgICAgeworICAg
ICAgICByZXNldCgpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgVUNoYXIgbmV4dElucHV0
Q2hhcmFjdGVyKCkgY29uc3QgeyByZXR1cm4gbV9uZXh0SW5wdXRDaGFyYWN0ZXI7IH0KKworICAg
IC8vIFJldHVybnMgd2hldGhlciB3ZSBzdWNjZWVkZWQgaW4gcGVla2luZyBhdCB0aGUgbmV4dCBj
aGFyYWN0ZXIuCisgICAgLy8gVGhlIG9ubHkgd2F5IHdlIGNhbiBmYWlsIHRvIHBlZWsgaXMgaWYg
dGhlcmUgYXJlIG5vIG1vcmUKKyAgICAvLyBjaGFyYWN0ZXJzIGluIHxzb3VyY2V8IChhZnRlciBj
b2xsYXBzaW5nIFxyXG4sIGV0YykuCisgICAgQUxXQVlTX0lOTElORSBib29sIHBlZWsoU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UpCisgICAgeworICAgIFBlZWtBZ2FpbjoKKyAgICAgICAgbV9uZXh0
SW5wdXRDaGFyYWN0ZXIgPSBzb3VyY2UuY3VycmVudENoYXIoKTsKKworICAgICAgICAvLyBFdmVy
eSBicmFuY2ggaW4gdGhpcyBmdW5jdGlvbiBpcyBleHBlbnNpdmUsIHNvIHdlIGhhdmUgYQorICAg
ICAgICAvLyBmYXN0LXJlamVjdCBicmFuY2ggZm9yIGNoYXJhY3RlcnMgdGhhdCBkb24ndCByZXF1
aXJlIHNwZWNpYWwKKyAgICAgICAgLy8gaGFuZGxpbmcuIFBsZWFzZSBydW4gdGhlIHBhcnNlciBi
ZW5jaG1hcmsgd2hlbmV2ZXIgeW91IHRvdWNoCisgICAgICAgIC8vIHRoaXMgZnVuY3Rpb24uIEl0
J3MgdmVyeSBob3QuCisgICAgICAgIHN0YXRpYyBjb25zdCBVQ2hhciBzcGVjaWFsQ2hhcmFjdGVy
TWFzayA9ICdcbicgfCAnXHInIHwgJ1wwJzsKKyAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFj
dGVyICYgfnNwZWNpYWxDaGFyYWN0ZXJNYXNrKSB7CisgICAgICAgICAgICBtX3NraXBOZXh0TmV3
TGluZSA9IGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAg
ICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1xuJyAmJiBtX3NraXBOZXh0TmV3TGlu
ZSkgeworICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKKyAgICAgICAgICAg
IHNvdXJjZS5hZHZhbmNlUGFzdE5ld2xpbmVBbmRVcGRhdGVMaW5lTnVtYmVyKCk7CisgICAgICAg
ICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9IHNvdXJjZS5jdXJyZW50Q2hhcigp
OworICAgICAgICB9CisgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3RlciA9PSAnXHInKSB7
CisgICAgICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9ICdcbic7CisgICAgICAgICAgICBt
X3NraXBOZXh0TmV3TGluZSA9IHRydWU7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBt
X3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOworICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBzcGVj
IGluZGljYXRlcyB0aGF0IHRoZSBzdXJyb2dhdGUgcGFpciByYW5nZSBhcyB3ZWxsIGFzCisgICAg
ICAgICAgICAvLyBhIG51bWJlciBvZiBzcGVjaWZpYyBjaGFyYWN0ZXIgdmFsdWVzIGFyZSBwYXJz
ZSBlcnJvcnMgYW5kIHNob3VsZCBiZSByZXBsYWNlZAorICAgICAgICAgICAgLy8gYnkgdGhlIHJl
cGxhY2VtZW50IGNoYXJhY3Rlci4gV2Ugc3VzcGVjdCB0aGlzIGlzIGEgcHJvYmxlbSB3aXRoIHRo
ZSBzcGVjIGFzIGRvaW5nCisgICAgICAgICAgICAvLyB0aGF0IGZpbHRlcmluZyBicmVha3Mgc3Vy
cm9nYXRlIHBhaXIgaGFuZGxpbmcgYW5kIGNhdXNlcyB1cyBub3QgdG8gbWF0Y2ggTWluZWZpZWxk
LgorICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcMCcgJiYgIXNob3Vs
ZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKHNvdXJjZSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAobV90b2tlbml6ZXItPnNob3VsZFNraXBOdWxsQ2hhcmFjdGVycygpKSB7CisgICAgICAgICAg
ICAgICAgICAgIHNvdXJjZS5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgICAgICAgICAgICAgIGdvdG8gUGVla0FnYWluOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9IDB4RkZGRDsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgYXJlIG1vcmUgY2hhcmFjdGVycyBpbiB8c291
cmNlfCBhZnRlciBhZHZhbmNpbmcuCisgICAgQUxXQVlTX0lOTElORSBib29sIGFkdmFuY2UoU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UpCisgICAgeworICAgICAgICBzb3VyY2UuYWR2YW5jZUFuZFVw
ZGF0ZUxpbmVOdW1iZXIoKTsKKyAgICAgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBwZWVrKHNvdXJjZSk7CisgICAgfQor
CisgICAgYm9vbCBza2lwTmV4dE5ld0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3NraXBOZXh0TmV3
TGluZTsgfQorCisgICAgdm9pZCByZXNldChib29sIHNraXBOZXh0TmV3TGluZSA9IGZhbHNlKQor
ICAgIHsKKyAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSAnXDAnOworICAgICAgICBtX3Nr
aXBOZXh0TmV3TGluZSA9IHNraXBOZXh0TmV3TGluZTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29u
c3QgVUNoYXIgZW5kT2ZGaWxlTWFya2VyID0gMDsKKworcHJpdmF0ZToKKyAgICBib29sIHNob3Vs
ZFRyZWF0TnVsbEFzRW5kT2ZGaWxlTWFya2VyKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIHNvdXJjZS5pc0Nsb3NlZCgpICYmIHNvdXJjZS5sZW5n
dGgoKSA9PSAxOworICAgIH0KKworICAgIFRva2VuaXplciogbV90b2tlbml6ZXI7CisKKyAgICAv
LyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNuZXh0
LWlucHV0LWNoYXJhY3RlcgorICAgIFVDaGFyIG1fbmV4dElucHV0Q2hhcmFjdGVyOworICAgIGJv
b2wgbV9za2lwTmV4dE5ld0xpbmU7Cit9OworCit9CisKKyNlbmRpZiAvLyBJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcl9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5p
emVyLmNwcAppbmRleCAzYjNmMzhhY2UzZWViNDRhODY0MWIyZDRkZGNmMjU4M2Q4MzI4YjNlLi4y
NjU0M2Q3M2QxOTc5YWJmYTJhOWZlNWUwMGYyYWNjYWM5ZDgxNmZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCkBAIC00MiwxNiArNDIsMTEgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2RlZmluZSBXRUJWVFRfQURWQU5DRV9UTyhzdGF0ZU5hbWUp
IEFEVkFOQ0VfVE8oV2ViVlRUVG9rZW5pemVyU3RhdGUsIHN0YXRlTmFtZSkKIAogV2ViVlRUVG9r
ZW5pemVyOjpXZWJWVFRUb2tlbml6ZXIoKQorICAgIDogbV9pbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cih0aGlzKQogewogICAgIHJlc2V0KCk7CiB9CiAKLXRlbXBsYXRlPD4KLWlubGluZSBib29sIE1h
cmt1cFRva2VuaXplckJhc2U8V2ViVlRUVG9rZW4sIFdlYlZUVFRva2VuaXplclN0YXRlPjo6c2hv
dWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQog
dGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGU+CiBpbmxpbmUgYm9vbCB2ZWN0b3JFcXVh
bHNTdHJpbmcoY29uc3QgVmVjdG9yPENoYXJhY3RlclR5cGUsIDMyPiYgdmVjdG9yLCBjb25zdCBT
dHJpbmcmIHN0cmluZykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRUVG9rZW5pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2Vu
aXplci5oCmluZGV4IDBmNDViZmQwZWY2M2U1MWFhZDdjZWNjM2Q1ZGY1ZjMzYTgxZmYwOGMuLjZh
NjU2ZDk3YjA4M2EwOTQzYjI2ZTNlYmQwNWE2ODBhNjRiNjZiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuaApAQCAtMzMsOSArMzMsOSBAQAogCiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiTWFya3VwVG9rZW5pemVyQmFzZS5oIgot
I2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgorI2luY2x1ZGUgIklucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yLmgiCiAjaW5jbHVkZSAiV2ViVlRUVG9rZW4uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDIwICs1NCw2MyBAQCBwdWJs
aWM6CiAgICAgfTsKIH07CiAKLWNsYXNzIFdlYlZUVFRva2VuaXplciA6IE1hcmt1cFRva2VuaXpl
ckJhc2U8V2ViVlRUVG9rZW4sIFdlYlZUVFRva2VuaXplclN0YXRlPiB7CitjbGFzcyBXZWJWVFRU
b2tlbml6ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZUVFRva2VuaXplcik7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25Q
dHI8V2ViVlRUVG9rZW5pemVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgV2ViVlRU
VG9rZW5pemVyKTsgfQogCisgICAgdHlwZWRlZiBXZWJWVFRUb2tlbml6ZXJTdGF0ZSBTdGF0ZTsK
KwogICAgIHZvaWQgcmVzZXQoKTsKICAgICAKICAgICBib29sIG5leHRUb2tlbihTZWdtZW50ZWRT
dHJpbmcmLCBXZWJWVFRUb2tlbiYpOwogCisgICAgaW5saW5lIGJvb2wgaGF2ZUJ1ZmZlcmVkQ2hh
cmFjdGVyVG9rZW4oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdG9rZW4tPnR5cGUoKSA9PSBX
ZWJWVFRUb2tlbjo6VHlwZTo6Q2hhcmFjdGVyOworICAgIH0KKworICAgIGlubGluZSB2b2lkIGJ1
ZmZlckNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQoY2hh
cmFjdGVyICE9IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpOworICAg
ICAgICBtX3Rva2VuLT5lbnN1cmVJc0NoYXJhY3RlclRva2VuKCk7CisgICAgICAgIG1fdG9rZW4t
PmFwcGVuZFRvQ2hhcmFjdGVyKGNoYXJhY3Rlcik7CisgICAgfQorCisgICAgaW5saW5lIGJvb2wg
ZW1pdEFuZFJlc3VtZUluKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCB0eXBlbmFtZSBTdGF0ZTo6
U3RhdGUgc3RhdGUpCisgICAgeworICAgICAgICBtX3N0YXRlID0gc3RhdGU7CisgICAgICAgIHNv
dXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBlbWl0RW5kT2ZGaWxlKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlKQorICAgIHsKKyAgICAgICAgaWYgKGhhdmVCdWZmZXJlZENoYXJhY3RlclRva2VuKCkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpEYXRh
U3RhdGU7CisgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOworICAg
ICAgICBtX3Rva2VuLT5jbGVhcigpOworICAgICAgICBtX3Rva2VuLT5tYWtlRW5kT2ZGaWxlKCk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgc2hvdWxkU2tpcE51bGxD
aGFyYWN0ZXJzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIFdlYlZU
VFRva2VuaXplcigpOwotICAgIAorCisgICAgLy8gbV90b2tlbiBpcyBvd25lZCBieSB0aGUgY2Fs
bGVyLiBJZiBuZXh0VG9rZW4gaXMgbm90IG9uIHRoZSBzdGFjaywKKyAgICAvLyB0aGlzIG1lbWJl
ciBtaWdodCBiZSBwb2ludGluZyB0byB1bmFsbG9jYXRlZCBtZW1vcnkuCisgICAgV2ViVlRUVG9r
ZW4qIG1fdG9rZW47CisgICAgV2ViVlRUVG9rZW5pemVyU3RhdGU6OlN0YXRlIG1fc3RhdGU7CisK
ICAgICBWZWN0b3I8TENoYXIsIDMyPiBtX2J1ZmZlcjsKKworICAgIC8vIGh0dHA6Ly93d3cud2hh
dHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nlc3NpbmctdGhlLWlu
cHV0LXN0cmVhbQorICAgIHR5cGVkZWYgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I8V2ViVlRUVG9r
ZW5pemVyPiBJbnB1dFN0cmVhbVByZXByb2Nlc3NvcjsKKyAgICBJbnB1dFN0cmVhbVByZXByb2Nl
c3NvciBtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9NYXJrdXBUb2tlbml6ZXJCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJhc2UuaAppbmRleCAwZmM5YzU2OTBiZjM2
Mjc2ZjYxZjdjMmNlMmMzY2E3NWU1OWJlNGE3Li5jMjUxMzU3OGNiYzAxMjk4OGI2MzY1ZDgwMDFm
Nzc2NjU5NWQ0NTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1
cFRva2VuaXplckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRv
a2VuaXplckJhc2UuaApAQCAtMjgsOCArMjgsNyBAQAogI2lmbmRlZiBNYXJrdXBUb2tlbml6ZXJC
YXNlX2gKICNkZWZpbmUgTWFya3VwVG9rZW5pemVyQmFzZV9oCiAKLSNpbmNsdWRlICJTZWdtZW50
ZWRTdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlICJJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpA
QCAtNTUsOTcgKzU0LDYgQEAgcHVibGljOgogICAgIGlubGluZSBib29sIHNob3VsZFNraXBOdWxs
Q2hhcmFjdGVycygpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgLy8gaHR0cDovL3d3dy53aGF0
d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jcHJlcHJvY2Vzc2luZy10aGUtaW5w
dXQtc3RyZWFtCi0gICAgY2xhc3MgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IgewotICAgICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcik7Ci0gICAgcHVibGlj
OgotICAgICAgICBJbnB1dFN0cmVhbVByZXByb2Nlc3NvcihNYXJrdXBUb2tlbml6ZXJCYXNlPFRv
a2VuLCBTdGF0ZT4qIHRva2VuaXplcikKLSAgICAgICAgICAgIDogbV90b2tlbml6ZXIodG9rZW5p
emVyKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXNldCgpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgQUxXQVlTX0lOTElORSBVQ2hhciBuZXh0SW5wdXRDaGFyYWN0ZXIoKSBjb25zdCB7IHJldHVy
biBtX25leHRJbnB1dENoYXJhY3RlcjsgfQotCi0gICAgICAgIC8vIFJldHVybnMgd2hldGhlciB3
ZSBzdWNjZWVkZWQgaW4gcGVla2luZyBhdCB0aGUgbmV4dCBjaGFyYWN0ZXIuCi0gICAgICAgIC8v
IFRoZSBvbmx5IHdheSB3ZSBjYW4gZmFpbCB0byBwZWVrIGlzIGlmIHRoZXJlIGFyZSBubyBtb3Jl
Ci0gICAgICAgIC8vIGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgKGFmdGVyIGNvbGxhcHNpbmcgXHJc
biwgZXRjKS4KLSAgICAgICAgQUxXQVlTX0lOTElORSBib29sIHBlZWsoU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UpCi0gICAgICAgIHsKLSAgICAgICAgUGVla0FnYWluOgotICAgICAgICAgICAgbV9u
ZXh0SW5wdXRDaGFyYWN0ZXIgPSBzb3VyY2UuY3VycmVudENoYXIoKTsKLQotICAgICAgICAgICAg
Ly8gRXZlcnkgYnJhbmNoIGluIHRoaXMgZnVuY3Rpb24gaXMgZXhwZW5zaXZlLCBzbyB3ZSBoYXZl
IGEKLSAgICAgICAgICAgIC8vIGZhc3QtcmVqZWN0IGJyYW5jaCBmb3IgY2hhcmFjdGVycyB0aGF0
IGRvbid0IHJlcXVpcmUgc3BlY2lhbAotICAgICAgICAgICAgLy8gaGFuZGxpbmcuIFBsZWFzZSBy
dW4gdGhlIHBhcnNlciBiZW5jaG1hcmsgd2hlbmV2ZXIgeW91IHRvdWNoCi0gICAgICAgICAgICAv
LyB0aGlzIGZ1bmN0aW9uLiBJdCdzIHZlcnkgaG90LgotICAgICAgICAgICAgc3RhdGljIGNvbnN0
IFVDaGFyIHNwZWNpYWxDaGFyYWN0ZXJNYXNrID0gJ1xuJyB8ICdccicgfCAnXDAnOwotICAgICAg
ICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyICYgfnNwZWNpYWxDaGFyYWN0ZXJNYXNrKSB7
Ci0gICAgICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKG1fbmV4
dElucHV0Q2hhcmFjdGVyID09ICdcbicgJiYgbV9za2lwTmV4dE5ld0xpbmUpIHsKLSAgICAgICAg
ICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHNvdXJj
ZS5hZHZhbmNlUGFzdE5ld2xpbmVBbmRVcGRhdGVMaW5lTnVtYmVyKCk7Ci0gICAgICAgICAgICAg
ICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9IHNvdXJjZS5jdXJyZW50
Q2hhcigpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFj
dGVyID09ICdccicpIHsKLSAgICAgICAgICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9ICdc
bic7Ci0gICAgICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSB0cnVlOwotICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgc3BlYyBpbmRpY2F0ZXMgdGhhdCB0aGUgc3Vy
cm9nYXRlIHBhaXIgcmFuZ2UgYXMgd2VsbCBhcwotICAgICAgICAgICAgICAgIC8vIGEgbnVtYmVy
IG9mIHNwZWNpZmljIGNoYXJhY3RlciB2YWx1ZXMgYXJlIHBhcnNlIGVycm9ycyBhbmQgc2hvdWxk
IGJlIHJlcGxhY2VkCi0gICAgICAgICAgICAgICAgLy8gYnkgdGhlIHJlcGxhY2VtZW50IGNoYXJh
Y3Rlci4gV2Ugc3VzcGVjdCB0aGlzIGlzIGEgcHJvYmxlbSB3aXRoIHRoZSBzcGVjIGFzIGRvaW5n
Ci0gICAgICAgICAgICAgICAgLy8gdGhhdCBmaWx0ZXJpbmcgYnJlYWtzIHN1cnJvZ2F0ZSBwYWly
IGhhbmRsaW5nIGFuZCBjYXVzZXMgdXMgbm90IHRvIG1hdGNoIE1pbmVmaWVsZC4KLSAgICAgICAg
ICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1wwJyAmJiAhc2hvdWxkVHJlYXRO
dWxsQXNFbmRPZkZpbGVNYXJrZXIoc291cmNlKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAo
bV90b2tlbml6ZXItPnNob3VsZFNraXBOdWxsQ2hhcmFjdGVycygpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIFBlZWtBZ2Fp
bjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBtX25leHRJbnB1
dENoYXJhY3RlciA9IDB4RkZGRDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFJldHVybnMg
d2hldGhlciB0aGVyZSBhcmUgbW9yZSBjaGFyYWN0ZXJzIGluIHxzb3VyY2V8IGFmdGVyIGFkdmFu
Y2luZy4KLSAgICAgICAgQUxXQVlTX0lOTElORSBib29sIGFkdmFuY2UoU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRl
TGluZU51bWJlcigpOwotICAgICAgICAgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgcmV0dXJuIHBlZWsoc291cmNlKTsK
LSAgICAgICAgfQotCi0gICAgICAgIGJvb2wgc2tpcE5leHROZXdMaW5lKCkgY29uc3QgeyByZXR1
cm4gbV9za2lwTmV4dE5ld0xpbmU7IH0KLQotICAgICAgICB2b2lkIHJlc2V0KGJvb2wgc2tpcE5l
eHROZXdMaW5lID0gZmFsc2UpCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1fbmV4dElucHV0Q2hh
cmFjdGVyID0gJ1wwJzsKLSAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gc2tpcE5leHRO
ZXdMaW5lOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIGNvbnN0IFVDaGFyIGVuZE9mRmls
ZU1hcmtlciA9IDA7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBib29sIHNob3VsZFRyZWF0TnVs
bEFzRW5kT2ZGaWxlTWFya2VyKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKSBjb25zdAotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gc291cmNlLmlzQ2xvc2VkKCkgJiYgc291cmNlLmxlbmd0
aCgpID09IDE7Ci0gICAgICAgIH0KLQotICAgICAgICBNYXJrdXBUb2tlbml6ZXJCYXNlPFRva2Vu
LCBTdGF0ZT4qIG1fdG9rZW5pemVyOwotCi0gICAgICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9y
Zy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI25leHQtaW5wdXQtY2hhcmFjdGVyCi0gICAg
ICAgIFVDaGFyIG1fbmV4dElucHV0Q2hhcmFjdGVyOwotICAgICAgICBib29sIG1fc2tpcE5leHRO
ZXdMaW5lOwotICAgIH07Ci0KICAgICBNYXJrdXBUb2tlbml6ZXJCYXNlKCkgOiBtX2lucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yKHRoaXMpIHsgcmVzZXQoKTsgfQogCiAgICAgaW5saW5lIHZvaWQgYnVm
ZmVyQ2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlcikKQEAgLTIwNiw2ICsxMTQsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgVUNoYXIgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcjsKIAogICAgIC8vIGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nl
c3NpbmctdGhlLWlucHV0LXN0cmVhbQorICAgIHR5cGVkZWYgSW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3I8TWFya3VwVG9rZW5pemVyQmFzZTxUb2tlbiwgU3RhdGU+ID4gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I7CiAgICAgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IgbV9pbnB1dFN0cmVhbVByZXByb2Nl
c3NvcjsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187623</attachid>
            <date>2013-02-11 11:26:14 -0800</date>
            <delta_ts>2013-02-11 11:28:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109411-20130211112250.patch</filename>
            <type>text/plain</type>
            <size>64908</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0OTM2MGNlYzM4MTNm
OGNkNmVmYzI3Njg3Y2RmYWI0NzlhNzkyZC4uMTg4YWVjZjJkNDBhMWQzMWQ5ZWIxNjJkZDNlYTg4
YzMyMjQwMzI2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDEzLTAyLTExICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdlYlZUVFRva2VuaXpl
ciBzdG9wIGluaGVyaXRpbmcgZnJvbSBNYXJrdXBUb2tlbml6ZXJCYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBJbnB1dFN0cmVhbVByZXBy
b2Nlc3NvciBpbnRvIGl0cyBvd24gaGVhZGVyIGZpbGUgc28gaXQgY2FuIGJlCisgICAgICAgIHVz
ZWQgYnkgYm90aCBXZWJWVFRUb2tlbml6ZXIgYW5kIEhUTUxUb2tlbml6ZXIuCisKKyAgICAgICAg
QWxzbyBzcGxpdCBvdXQga0VuZE9mRmlsZU1hcmtlciBmcm9tIElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yPFQ+IHNvIHRoYXQKKyAgICAgICAgaXQgY2FuIGJlIHVzZWQgdy9vIGEgc3BlY2lmaWMgaW5z
dGFudGlhdGlvbiBvZiB0aGUgdGVtcGxhdGUgY2xhc3MuCisgICAgICAgIFRoaXMgYWxzbyBtYWRl
IGl0IHBvc3NpYmxlIHRvIGZpeCB0aHJlZSBvbGQgZml4bWVzIGFib3V0IHdhbnRpbmcgdG8gc2hh
cmUKKyAgICAgICAgdGhhdCBjb25zdGFudC4KKworICAgICAgICBBZ2Fpbiwgc2VwYXJhdGluZyBX
ZWJWVFQgY29kZSBmcm9tIE1hcmt1cCogYmFzZSBjbGFzc2VzIG1hZGUgaXQgc2ltcGxlcgorICAg
ICAgICBhdCB0aGUgY29zdCBvZiBhIGxpdHRsZSBjb3B5L3Bhc3RlIGNvZGUuICBXZWJWVFQgdG9r
ZW5pemF0aW9uIGlzIHJlbWFya2FibHkKKyAgICAgICAgc2ltcGxlIGNvbXBhcmVkIHRvIEhUTUwu
CisKKyAgICAgICAgVGhpcyB3aWxsIG1ha2UgaXQgaW1tZWRpYXRlbHkgcG9zc2libGUgdG8gcHVs
bCBNYXJrdXBUb2tlbml6ZXJCYXNlIHVwIGludG8KKyAgICAgICAgSFRNTFRva2VuaXplciBhbmQg
ZnVydGhlciBzaW1wbGlmeSB0aGUgY29kZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjptYXJrRW5kT2ZGaWxlKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0U3RyZWFtOjptYXJrRW5kT2ZGaWxlKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbik6CisgICAgICAgICogaHRtbC9wYXJzZXIvSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yOjpJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcik6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6bmV4dElucHV0Q2hhcmFjdGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpwZWVrKToKKyAgICAgICAgKFdl
YkNvcmU6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpza2lwTmV4dE5ld0xpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OnJlc2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpzaG91bGRUcmVhdE51bGxBc0VuZE9mRmlsZU1h
cmtlcik6CisgICAgICAgICogaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViVlRUVG9rZW5pemVyOjpXZWJWVFRUb2tlbml6ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4pOgorICAgICAgICAqIGh0bWwvdHJh
Y2svV2ViVlRUVG9rZW5pemVyLmg6CisgICAgICAgIChXZWJWVFRUb2tlbml6ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViVlRUVG9rZW5pemVyOjpoYXZlQnVmZmVyZWRDaGFyYWN0ZXJUb2tlbik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJWVFRUb2tlbml6ZXI6OmJ1ZmZlckNoYXJhY3Rlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJWVFRUb2tlbml6ZXI6OmVtaXRBbmRSZXN1bWVJbik6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJWVFRUb2tlbml6ZXI6OmVtaXRFbmRPZkZpbGUpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViVlRUVG9rZW5pemVyOjpzaG91bGRTa2lwTnVsbENoYXJhY3RlcnMpOgorICAg
ICAgICAqIHhtbC9wYXJzZXIvTWFya3VwVG9rZW5pemVyQmFzZS5oOgorICAgICAgICAoTWFya3Vw
VG9rZW5pemVyQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpNYXJrdXBUb2tlbml6ZXJCYXNlOjpi
dWZmZXJDaGFyYWN0ZXIpOgorCiAyMDEzLTAyLTExICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogVGltZWxpbmU6IGludmFsaWRh
dGUgYW5kIGZvcmNlIGxvY2F0aW9ucyBhcmUgc2FtZSBmb3IgTGF5b3V0IHJlY29yZHMgY2F1c2Vk
IGJ5IHN0eWxlIHJlY2FsY3VsYWl0b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IDE5N2U4MmU3Nzk5YzhmNTkzOTBiZGZhZmE4YzEyNzgxM2VjNzc3MjkuLmE3MGE1YmJmYmM4ZWUw
YmNhNWM4NTgxMTYyZDcxZGQyMzMxOWQ5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtMzYxOCw2ICszNjE4LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9OZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9UZXh0RG9jdW1lbnRQYXJzZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBjZWEzMDk1Y2M3Zjg2ZWNh
OGE2YzlkZWZkYzY1YjE0OWMxMDUxYjZhLi41MDE2MzA5YjgxYTQ1MGExYjkyY2U5MWUzYjQ4NDkw
MzZlYjFmMjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTE5MzUsNiArMTkzNSw3IEBAIEhFQURFUlMgKz0g
XAogICAgIGh0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuaCBcCiAgICAgaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmggXAogICAgIGh0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmgg
XAorICAgIGh0bWwvcGFyc2VyL0lucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmggXAogICAgIGh0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuaCBcCiAgICAgaHRtbC9wYXJzZXIvWFNTQXVkaXRvckRlbGVnYXRl
LmggXAogICAgIGh0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCAxYmM4MjAwMjkzYjRmN2U2Y2QwNTUzZmJjNTQ1NWNlZDU5MjcxOGJmLi41M2Q0MTg4
MDA1YjFjMjZlYzMxYzMxOGY5MDlkMWQ5ODgxOTlhMWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0z
NDI3LDYgKzM0MjcsNyBAQAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRl
ci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAn
LAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmgnLAorICAg
ICAgICAgICAgJ2h0bWwvcGFyc2VyL0lucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmgnLAogICAgICAg
ICAgICAgJ2h0bWwvcGFyc2VyL05lc3RpbmdMZXZlbEluY3JlbWVudGVyLmgnLAogICAgICAgICAg
ICAgJ2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAnLAogICAgICAgICAgICAgJ2h0
bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZWFlYjk1MWU3NjYyN2JkNzJkMzRjOGY0YTI1
YzVkOGU3NTY0NDk5MC4uZmY1OTMyYjg2MjQ1OTEzODcyZTQ2ZWY4Yzg5MDYzYmU1ZGQwZGNmOCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY1
MDEwLDYgKzY1MDEwLDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxodG1sXHBhcnNlclxJbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oIgor
CQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxwYXJzZXJcTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4
IGE0YjJmYWEwZDIxNTVlNzViNTdiYjZjYzIyMTEwNTg2ZjNlMGMzZDAuLmE2NDJhNWIzYjUxMGUx
MGVmM2Y1YTM4MTk3MWQyYTkxZDc1MTBhMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtNzk1Myw2ICs3OTUzLDcgQEAKICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXEhUTUxUb2tlblR5cGVzLmgiIC8+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxIVE1MVHJlZUJ1aWxkZXIuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXEhUTUxWaWV3U291cmNlUGFy
c2VyLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxJbnB1dFN0
cmVhbVByZXByb2Nlc3Nvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxw
YXJzZXJcTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXGh0bWxccGFyc2VyXFRleHREb2N1bWVudFBhcnNlci5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcVGV4dFZpZXdTb3VyY2VQYXJzZXIuaCIgLz4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ou
ZmlsdGVycwppbmRleCBjM2FkZWQ4ZjMyOGY3MmZjNzQwMzRmOTcwZGJiYjk5ZDFkYTdjYWFkLi44
YmQ5N2IzYWNkYjE0ZGUwNWU5NmE2ZDE1Nzc3OTc1Y2RlYTQ3ODFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBA
IC0xMjYxMiw2ICsxMjYxMiw5IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBh
cnNlclxIVE1MVmlld1NvdXJjZVBhcnNlci5oIj4KICAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0
bWxccGFyc2VyXElucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmgiPgorICAgICAgPEZpbHRlcj5odG1s
XHBhcnNlcjwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caHRtbFxwYXJzZXJcTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCI+CiAgICAgICA8Rmls
dGVyPmh0bWxccGFyc2VyPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTUzODA4MTc3
NjMwZmJhZDA3N2I4NTkzNWIyN2UwYjI1YWVhN2FmOC4uYTRjMDY5YWQ1OTExODEzYjgxYTgzNTE1
MzhiZjRjYWViZjQyMTlkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU2MSw2ICsxNTYxLDggQEAKIAkJNTEwRDRBMzYxMDMx
NjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzAxMDMxNjVFRTAwNDlFQTU0
IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwICovOyB9OwogCQk1MTBENEEzNzEwMzE2NUVF
MDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzExMDMxNjVFRTAwNDlFQTU0IC8qIFNv
Y2tldFN0cmVhbUhhbmRsZUJhc2UuaCAqLzsgfTsKIAkJNTEwRDRBMzgxMDMxNjVFRTAwNDlFQTU0
IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBMzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0
cmVhbUhhbmRsZUNsaWVudC5oICovOyB9OworCQk1MTEyOTM1RjNENTRCNEI1MkZBRjk3M0YgLyog
SW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNGIC8qIEluc3BlY3Rv
ckhlYXBQcm9maWxlckFnZW50LmNwcCAqLzsgfTsKKwkJNTExMjkzNjAzRDYwQjRCNTJGQUY5NzNG
IC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEyOTM2MjNEODVCNEI1MkZBRjk3M0YgLyogSW5zcGVj
dG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLzsgfTsKIAkJNTExRjIzMTcwREMxNjBEQTAwNEYwMDMy
IC8qIFN0b3JhZ2VUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxMUYyMzEzMERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5jcHAgKi87
IH07CiAJCTUxMUYyMzE4MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRjIzMTQwREMxNjBEQTAw
NEYwMDMyIC8qIFN0b3JhZ2VUYXNrLmggKi87IH07CiAJCTUxMUYyMzE5MERDMTYwREEwMDRGMDAz
MiAvKiBTdG9yYWdlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMUYyMzE1MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGhyZWFkLmNw
cCAqLzsgfTsKQEAgLTM4MTUsOCArMzgxNyw2IEBACiAJCTlCRjlBODgxMTY0OEREMkYwMDFDNkIy
MyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkY5QTg3RjE2NDhERDJGMDAxQzZCMjMgLyogSlNI
VE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5RjBENkIyRTEyMUJGRUJBMDA2
QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIyQzEyMUJGRUJBMDA2QzAyODggLyogSW5z
cGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07CiAJCTlGMEQ2QjJGMTIxQkZFQkEwMDZDMDI4
OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIyRDEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudC5oICovOyB9OwotCQk1MTEyOTM1RjNENTRCNEI1MkZBRjk3M0YgLyogSW5z
cGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNGIC8qIEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50LmNwcCAqLzsgfTsKLQkJNTExMjkzNjAzRDYwQjRCNTJGQUY5NzNGIC8q
IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEyOTM2MjNEODVCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9y
SGVhcFByb2ZpbGVyQWdlbnQuaCAqLzsgfTsKIAkJOUYzQjk0N0UxMjI0MTc1ODAwNTMwNEU3IC8q
IFNjcmlwdEhlYXBTbmFwc2hvdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOUYzQjk0N0QxMjI0MTc1ODAwNTMwNEU3IC8qIFNjcmlwdEhlYXBTbmFwc2hv
dC5oICovOyB9OwogCQk5RjZGQzE5NjExMjJFODJBMDBFODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUY2
RkMxOTQxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCAqLzsgfTsKIAkJ
OUY2RkMxOTcxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjZGQzE5NTExMjJFODJBMDBF
ODAxOTYgLyogU2NyaXB0RGVidWdTZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODk3Niw2ICs4OTc2LDggQEAKIAkJNTEwRDRBMzAxMDMx
NjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNv
Y2tldFN0cmVhbUhhbmRsZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEw
RDRBMzIxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTExMjkzNjEzRDZEQjRCNTJGQUY5NzNGIC8q
IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3Rvckhl
YXBQcm9maWxlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
MUYyMzEzMERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlVGFzay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTFGMjMxNTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRo
cmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlVGhy
ZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMjgyLDggKzExMjg0LDYg
QEAKIAkJOUJGOUE4N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRm9ybUNvbnRy
b2xzQ29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5RjBENkIyQzEy
MUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYwRDZCMkQxMjFCRkVCQTAwNkMwMjg4IC8qIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MTEyOTM2MTNENkRCNEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySGVhcFByb2Zp
bGVyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTEyOTM2MjNEODVC
NEI1MkZBRjk3M0YgLyogSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9ySGVhcFByb2ZpbGVyQWdlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYzQjk0N0QxMjI0MTc1ODAwNTMwNEU3IC8qIFNjcmlw
dEhlYXBTbmFwc2hvdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRI
ZWFwU25hcHNob3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUY2RkMxOTQxMTIy
RTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdERlYnVnU2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOUY2RkMxOTUxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2Vy
dmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdERlYnVnU2VydmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTcxNyw2ICsxMTcxNyw3IEBACiAJ
CUE4NzQ4QkRGMTJDQkYyREMwMDFGQkE0MSAvKiBIYXNoVG9vbHMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSGFzaFRvb2xzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4NzQ4RDY2MTJDQzM3NjMwMDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlT3JpZW50YXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg3NDhENzQxMkNDM0Y4OTAwMUZCQTQxIC8qIEltYWdlT3Jp
ZW50YXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VP
cmllbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4ODA1QUYxMTZD
OTZBRUEwMDBFOUQ5OCAvKiBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oOyBwYXRoID0gcGFyc2VyL0lucHV0U3RyZWFtUHJl
cHJvY2Vzc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4ODJEQTFGMTU5Mzg0
NkEwMDAxMTVFRCAvKiBDU1NUb1N0eWxlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENTU1RvU3R5bGVNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBODgyREEyMjE1OTM4NDhEMDAwMTE1RUQgLyogQ1NTVG9TdHlsZU1hcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NUb1N0eWxlTWFwLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4ODNERjI1MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0
aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpc2libGVTZWxl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ4NjQsOSArMTQ4NjUs
OSBAQAogCQkxNERGQjMzRjBBN0RGNzYzMDAxOEY3NjkgLyogRGVyaXZlZCBTb3VyY2VzICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlDREE5OERDRDE2MDE1
MTVDMDBGRUEzQjEgLyogRW5jcnlwdGVkTWVkaWEgKi8sCiAJCQkJQTgzQjc5MTAwQ0NCMDAxQjAw
MEIwODI1IC8qIENvcmUgKi8sCiAJCQkJQTgzQjc5MEUwQ0NBRkY5NzAwMEIwODI1IC8qIENTUyAq
LywKKwkJCQlDREE5OERDRDE2MDE1MTVDMDBGRUEzQjEgLyogRW5jcnlwdGVkTWVkaWEgKi8sCiAJ
CQkJQTgzQjc5MTIwQ0NCMDAzRjAwMEIwODI1IC8qIEV2ZW50cyAqLywKIAkJCQk4OTg3ODU3NjEy
MkNBMURBMDAzQUFCREEgLyogRmlsZUFQSSAqLywKIAkJCQlBODNCNzkwODBDQ0FGRjJCMDAwQjA4
MjUgLyogSFRNTCAqLywKQEAgLTE1NTY5LDEwICsxNTU3MCwxMCBAQAogCQkJCUE3QkY3RURFMTRD
OTE3NUEwMDE0NDg5RCAvKiBJbnRlcm5hbFNldHRpbmdzLmlkbCAqLywKIAkJCQlBN0JFN0VERDE0
QzkxNzVBMDAxNDQ4OUQgLyogTWFsbG9jU3RhdGlzdGljcy5oICovLAogCQkJCUE3QkU3RURFMTRD
OTE3NUEwMDE0NDg5RCAvKiBNYWxsb2NTdGF0aXN0aWNzLmlkbCAqLywKLQkJCQlFQjA4MUNEODE2
OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8sCi0JCQkJRUIwODFDRDkxNjk2
MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9ucy5pZGwgKi8sCiAJCQkJQ0RDMjZCM0MxNjBB
NjJCMDAwMjY3NTdCIC8qIE1vY2tDRE0uY3BwICovLAogCQkJCUNEQzI2QjNEMTYwQTYyQjAwMDI2
NzU3QiAvKiBNb2NrQ0RNLmggKi8sCisJCQkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5
cGVDb252ZXJzaW9ucy5oICovLAorCQkJCUVCMDgxQ0Q5MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBl
Q29udmVyc2lvbnMuaWRsICovLAogCQkJKTsKIAkJCXBhdGggPSB0ZXN0aW5nOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE4NzQ4LDYgKzE4NzQ5LDcgQEAKIAkJCQk5NzdCMzcyMjEy
Mjg3MjE3MDBCODFGRjggLyogSFRNTFRyZWVCdWlsZGVyLmggKi8sCiAJCQkJOTc3QjM4NjAxMjI4
ODNFOTAwQjgxRkY4IC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmNwcCAqLywKIAkJCQk5NzdCMzg2
MTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCAqLywKKwkJCQlBODgw
NUFGMTE2Qzk2QUVBMDAwRTlEOTggLyogSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCAqLywKIAkJ
CQk4QTMwOUM5RTEyMzk1MEJFMDBDQjkyMDQgLyogTmVzdGluZ0xldmVsSW5jcmVtZW50ZXIuaCAq
LywKIAkJCQk5N0JDODQ4MTEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmNw
cCAqLywKIAkJCQk5N0JDODQ4MjEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2Vy
LmggKi8sCkBAIC0yMTUzOCwxMiArMjE1NDAsMTIgQEAKIAkJCQk5MzVDNDc2NzA5QUM0RDQzMDBB
NkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50LmggKi8sCiAJCQkJQzVCQUMxNkYxNEUzMEU0NzAw
MDA4ODM3IC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oICovLAogCQkJCUJDRUMwMUQ2MEMyNzRFQjQw
MDlGNEVDOSAvKiBQbGF0Zm9ybVNjcmVlbi5oICovLAotCQkJCTI5N0JFM0Q5MTZDMDQzRDgwMDMz
MTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNwcCAqLywKLQkJCQkyOUU0RDhERjE2
QjA5NDBGMDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplci5oICovLAotCQkJCTI1
MjdDQzkzMTZCRjkyRUMwMDlEREFDMCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNw
cCAqLywKLQkJCQkyNTI3Q0M5MjE2QkY5MEI0MDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXNWb2ljZS5oICovLAogCQkJCTI1MjdDQzk1MTZCRjk1REQwMDlEREFDMCAvKiBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgKi8sCiAJCQkJMjUyN0NDOTExNkJGOEJBMTAw
OUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmggKi8sCisJCQkJMjUy
N0NDOTMxNkJGOTJFQzAwOUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuY3Bw
ICovLAorCQkJCTI1MjdDQzkyMTZCRjkwQjQwMDlEREFDMCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRo
ZXNpc1ZvaWNlLmggKi8sCisJCQkJMjk3QkUzRDkxNkMwNDNEODAwMzMxNkJEIC8qIFBsYXRmb3Jt
U3BlZWNoU3ludGhlc2l6ZXIuY3BwICovLAorCQkJCTI5RTREOERGMTZCMDk0MEYwMEM4NDcwNCAv
KiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmggKi8sCiAJCQkJMUFEOEY4MUExMUNBQjlFOTAw
RTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8sCiAJCQkJMUFEOEY4MTkxMUNBQjlF
OTAwRTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5oICovLAogCQkJCTkzNUM0NzZBMDlBQzRE
NEYwMEE2QUFCNCAvKiBQbGF0Zm9ybVdoZWVsRXZlbnQuaCAqLywKQEAgLTIxNjMzLDYgKzIxNjM1
LDggQEAKIAkJQ0RBOThEQkQxNjAxNEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1lZGlhICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDREE5OEUwOTE2MDND
RDU5MDBGRUEzQjEgLyogQ0RNLmNwcCAqLywKKwkJCQlDREE5OEUwQTE2MDNDRDU5MDBGRUEzQjEg
LyogQ0RNLmggKi8sCiAJCQkJQ0RBOThERDUxNjAyNUJFRDAwRkVBM0IxIC8qIE1lZGlhS2V5TWVz
c2FnZUV2ZW50LmNwcCAqLywKIAkJCQlDREE5OERENjE2MDI1QkVEMDBGRUEzQjEgLyogTWVkaWFL
ZXlNZXNzYWdlRXZlbnQuaCAqLywKIAkJCQlDREE5OERENzE2MDI1QkVFMDBGRUEzQjEgLyogTWVk
aWFLZXlNZXNzYWdlRXZlbnQuaWRsICovLApAQCAtMjE2NDUsOCArMjE2NDksNiBAQAogCQkJCUNE
QTk4REM3MTYwMTRGMkMwMEZFQTNCMSAvKiBNZWRpYUtleVNlc3Npb24uY3BwICovLAogCQkJCUNE
QTk4REM4MTYwMTRGMkMwMEZFQTNCMSAvKiBNZWRpYUtleVNlc3Npb24uaCAqLywKIAkJCQlDREE5
OERDOTE2MDE0RjQwMDBGRUEzQjEgLyogTWVkaWFLZXlTZXNzaW9uLmlkbCAqLywKLQkJCQlDREE5
OEUwOTE2MDNDRDU5MDBGRUEzQjEgLyogQ0RNLmNwcCAqLywKLQkJCQlDREE5OEUwQTE2MDNDRDU5
MDBGRUEzQjEgLyogQ0RNLmggKi8sCiAJCQkJQ0RBOThFMEMxNjAzQ0YzQzAwRkVBM0IxIC8qIE1v
ZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNUHJpdmF0ZS5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBl
bmNyeXB0ZWRtZWRpYTsKQEAgLTIzMDg3LDggKzIzMDg5LDggQEAKIAkJCQk1M0VEM0ZERjE2N0E4
OEU3MDA2NzYyRTYgLyogSlNJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBNzQwQjU5NTE0QzkzNUFCMDBBNzdGQTQgLyogSlNNYWxsb2NTdGF0aXN0aWNzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFQkY1MTIxRDE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29u
dmVyc2lvbnMuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAv
KiBXZWJDb3JlVGVzdFN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzI2QjQxMTYwQThD
Q0UwMDI2NzU3QiAvKiBNb2NrQ0RNLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTgxNUMxRjEzODMx
OTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2
ODIyLDggKzI2ODI0LDggQEAKIAkJCQk1M0VEM0ZERTE2N0E4OEU3MDA2NzYyRTYgLyogSlNJbnRl
cm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NDBCNTk3MTRD
OTM1QUYwMEE3N0ZBNCAvKiBKU01hbGxvY1N0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRUJGNTEyMUMxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1
cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDMjZCNDAxNjBBOENDNjAwMjY3NTdCIC8q
IE1vY2tDRE0uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDE4MTVDMUUxMzgzMTk4MzAwNTdBQUE0
IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI2OTgwLDYgKzI2
OTgyLDcgQEAKIAkJCQk0OTQ4NEZDRDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzU3R5bGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5RDA4NkMxNjJGMjFGOTAwREI4NjU4IC8qIENhcHRpb25V
c2VyUHJlZmVyZW5jZXNNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk2NTUwQjY5RDA5OURGMDI3
MDA5MEQ3ODEgLyogQ0RBVEFTZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQTk4RTBC
MTYwM0NENjAwMEZFQTNCMSAvKiBDRE0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTdCQzY5REMx
NTA1RjA3NjAwMUI3NEFDIC8qIENoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUZEMzE1RkZFMTJCMDI2NzYwMEMxQTM1OSAvKiBDaGFubmVsTWVyZ2VyTm9kZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGRDMxNjAwMTEyQjAyNjc2MDBDMUEzNTkgLyogQ2hhbm5lbFNw
bGl0dGVyTm9kZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4MjkxLDcgKzI4Mjk0LDEyIEBACiAJ
CQkJQ0QyN0Y2RTUxNDU3Njg1QTAwNzgyMDdEIC8qIEpTTWVkaWFDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUZEMjNBMTI1MTNGNUZBNTkwMEY2NzAwMSAvKiBKU01lZGlhRWxlbWVu
dEF1ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTQxODBDRDY4MjY5
MDBGQURBNzUgLyogSlNNZWRpYUVycm9yLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQTk4REEz
MTYwMTQ2NDEwMEZFQTNCMSAvKiBKU01lZGlhS2V5RXJyb3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RCODU5RkExNjBENDk0OTAwRTVCMDdGIC8qIEpTTWVkaWFLZXlFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQlDREE5OERERjE2MDI2QTM3MDBGRUEzQjEgLyogSlNNZWRpYUtleU1lc3Nh
Z2VFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OERFMDE2MDI2QTM3MDBGRUEzQjEg
LyogSlNNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQTk4RTA0
MTYwMzlFMUEwMEZFQTNCMSAvKiBKU01lZGlhS2V5cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlD
REE5OEUwNjE2MDM5RTFGMDBGRUEzQjEgLyogSlNNZWRpYUtleVNlc3Npb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkMzQzM5QjYwQzBEM0Q4RDAwNUY0RDdBIC8qIEpTTWVkaWFMaXN0LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTE0NjRFMDZDMTM1RUMxMDYwMEZEQjAwQSAvKiBKU01lZGlhTGlz
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlEM0E5NEE0NjEyMkRDNDBGMDBBMzdCQkMg
LyogSlNNZWRpYVF1ZXJ5TGlzdC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI4NzEwLDYgKzI4NzE4
LDEwIEBACiAJCQkJNEUxOTU5MjEwQTM5REFCQTAwMjIwRkU1IC8qIE1lZGlhRmVhdHVyZU5hbWVz
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3QTZEMUVCMTQ5MTEzNzcwMDA1MUQwQyAvKiBNZWRp
YUZyYWdtZW50VVJJUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQjg1OUY3MTYwRDQ4
QTQwMEU1QjA3RiAvKiBNZWRpYUtleUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQTk4
REQ4MTYwMjVCRUYwMEZFQTNCMSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDRDFCNEE2NTE2MDc4NkFFMDAyODJERjkgLyogTWVkaWFLZXlOZWVkZWRFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OEUwRDE2MDNGRTRBMDBGRUEzQjEgLyogTWVk
aWFLZXlzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEQTk4RTBFMTYwM0ZFNTgwMEZFQTNCMSAv
KiBNZWRpYUtleVNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThFQTgwMDkwQTE5NTE2
RTAwQThFRjVGIC8qIE1lZGlhTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQ2MTNFMzBD
RDY4MTlGMDBGQURBNzUgLyogTWVkaWFQbGF5ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDcy
QzhCMTExMzFDNTE4NjAwQTRGQ0U5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKQEAgLTI4ODU1LDEwICsyODg2NywxMCBAQAogCQkJCTQxQkY3MDBG
MEZFODZGNjEwMDVFOERFQyAvKiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDNTk4OTAyRTE0RTlCMEY4MDBFOEQxOEIgLyogUGxhdGZvcm1QYXN0ZWJv
YXJkTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NEQxMDgwQzI3NEY4ODAwNkJDNjE3IC8q
IFBsYXRmb3JtU2NyZWVuTWFjLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJMjkzNDk0MEExNkMwMkMw
NzAwOTAxMzE4IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMjkzNDk0MEIxNkMwMkMwQTAwOTAxMzE4IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhl
c2lzVXR0ZXJhbmNlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTI5N0JFM0Q4MTZDMDNDQ0UwMDMz
MTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMjkzNDk0MEExNkMwMkMwNzAwOTAxMzE4IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9p
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjk3QkUzREExNkMwNDNEODAwMzMxNkJEIC8qIFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjk3QkUzRDgx
NkMwM0NDRTAwMzMxNkJEIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXJNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQUQ4RjgxQzExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE5QzZFNEYzMEQ3NDVFNDgwMDY0NDJFOSAvKiBQ
bHVnaW5EYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3MjA1QUJCMTIzOTI5MjcwMEIxNzM4
MCAvKiBQbHVnaW5Eb2N1bWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI5NjcxLDE2ICsyOTY4
Myw2IEBACiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzc5IC8qIFhTU0F1ZGl0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTc3RTJFMEUxMkYwRkM5QzAwQzEzMzgwIC8qIFhTU0F1ZGl0b3JE
ZWxlZ2F0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDUzNzM1MjEzN0I2NTE4MDAwMDhEQ0Ug
LyogWmVyb1BvbGUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThEQTMxNjAxNDY0MTAwRkVB
M0IxIC8qIEpTTWVkaWFLZXlFcnJvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREE5OEREODE2
MDI1QkVGMDBGRUEzQjEgLyogTWVkaWFLZXlNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJQ0RBOThEREYxNjAyNkEzNzAwRkVBM0IxIC8qIEpTTWVkaWFLZXlNZXNzYWdlRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThERTAxNjAyNkEzNzAwRkVBM0IxIC8qIEpTTWVk
aWFLZXlOZWVkZWRFdmVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREE5OEUwNDE2MDM5RTFB
MDBGRUEzQjEgLyogSlNNZWRpYUtleXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThFMDYx
NjAzOUUxRjAwRkVBM0IxIC8qIEpTTWVkaWFLZXlTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUNEQTk4RTBCMTYwM0NENjAwMEZFQTNCMSAvKiBDRE0uY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJQ0RBOThFMEQxNjAzRkU0QTAwRkVBM0IxIC8qIE1lZGlhS2V5cy5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQlDREE5OEUwRTE2MDNGRTU4MDBGRUEzQjEgLyogTWVkaWFLZXlTZXNzaW9uLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUNEMUI0QTY1MTYwNzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5l
ZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCmluZGV4IGRhZWJkYjg3ZTliNDQyODA0
YWE2ZTE0N2UwZjBiMzQzM2ViMjBkYTguLjliYTFkMDUyNDdjODI2YWM4YWM5ZmFlNDdhOTRmMGQ0
NGFjMDQzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91
bmRIVE1MUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3Jv
dW5kSFRNTFBhcnNlci5jcHAKQEAgLTEwNiwxMiArMTA2LDggQEAgdm9pZCBCYWNrZ3JvdW5kSFRN
TFBhcnNlcjo6Zm9yY2VQbGFpbnRleHRGb3JUZXh0RG9jdW1lbnQoKQogCiB2b2lkIEJhY2tncm91
bmRIVE1MUGFyc2VyOjptYXJrRW5kT2ZGaWxlKCkKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgdXNlIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIKLSAgICAvLyBv
bmNlIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIGlzIHNwbGl0IG9mZiBpbnRvIGl0cyBvd24gaGVh
ZGVyLgotICAgIGNvbnN0IExDaGFyIGVuZE9mRmlsZU1hcmtlciA9IDA7Ci0KICAgICBBU1NFUlQo
IW1faW5wdXQuY3VycmVudCgpLmlzQ2xvc2VkKCkpOwotICAgIG1faW5wdXQuYXBwZW5kKFN0cmlu
ZygmZW5kT2ZGaWxlTWFya2VyLCAxKSk7CisgICAgbV9pbnB1dC5hcHBlbmQoU3RyaW5nKCZrRW5k
T2ZGaWxlTWFya2VyLCAxKSk7CiAgICAgbV9pbnB1dC5jbG9zZSgpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxJbnB1dFN0cmVhbS5oCmluZGV4IDU5MzI5MGJjZjU4ZWEx
NjBmZTZmYmM1ZmYwZWNjOTUyZjBiOTRiMzUuLjBkZDY5YzY1MzIwMTRjZTljNTYzZTJkOWMzMTRi
Y2RiODAxOTBjMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxJ
bnB1dFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxJbnB1dFN0
cmVhbS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEhUTUxJbnB1dFN0cmVhbV9oCiAjZGVm
aW5lIEhUTUxJbnB1dFN0cmVhbV9oCiAKKyNpbmNsdWRlICJJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
ci5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zNiw4ICszNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIC8vICAgICAgICAgICAgL1wg
ICAgICAgICAgICAgICAgICAgICAgICAgKGFsc28gY2FsbGVkIG1fbGFzdCkKIC8vICAgICAgICAg
ICAgTF8gY3VycmVudCBpbnNlcnRpb24gcG9pbnQKIC8vCi0vLyBUaGUgY3VycmVudCBzZWdtZW50
ZWQgc3RyaW5nIGlzIHN0b3JlZCBpbiBJbnB1dFN0cmVhbS4gIEVhY2ggb2YgdGhlCi0vLyBhZnRl
ckluc2VydGlvblBvaW50IGJ1ZmZlcnMgYXJlIHN0b3JlZCBpbiBJbnNlcnRpb25Qb2ludFJlY29y
ZHMgb24gdGhlCisvLyBUaGUgY3VycmVudCBzZWdtZW50ZWQgc3RyaW5nIGlzIHN0b3JlZCBpbiBJ
bnB1dFN0cmVhbS4gRWFjaCBvZiBhZnRlckluc2VydGlvblBvaW50CisvLyB0aGUgYnVmZmVycyBh
cmUgc3RvcmVkIGluIEluc2VydGlvblBvaW50UmVjb3JkcyBvbiB0aGUKIC8vIHN0YWNrLgogLy8K
IC8vIFdlIHJlbW92ZSBjaGFyYWN0ZXJzIGZyb20gdGhlICJjdXJyZW50IiBzdHJpbmcgaW4gdGhl
IElucHV0U3RyZWFtLgpAQCAtNzIsMTAgKzczLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBtYXJr
RW5kT2ZGaWxlKCkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB1c2UgSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcgotICAgICAgICAvLyBvbmNlIElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yIGlzIHNwbGl0IG9mZiBpbnRvIGl0cyBvd24gaGVhZGVyLgot
ICAgICAgICBzdGF0aWMgY29uc3QgTENoYXIgZW5kT2ZGaWxlTWFya2VyID0gMDsKLSAgICAgICAg
bV9sYXN0LT5hcHBlbmQoU2VnbWVudGVkU3RyaW5nKFN0cmluZygmZW5kT2ZGaWxlTWFya2VyLCAx
KSkpOworICAgICAgICBtX2xhc3QtPmFwcGVuZChTZWdtZW50ZWRTdHJpbmcoU3RyaW5nKCZrRW5k
T2ZGaWxlTWFya2VyLCAxKSkpOwogICAgICAgICBtX2xhc3QtPmNsb3NlKCk7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCmluZGV4IDM5YTQx
NjNhN2UyMzRmOWU5ODE4MzliOWVkOGY0MzRhM2NlNTQxY2IuLjNjNmM0NGNiNjkxYTAzNjk5ZDNh
OGFjNDU0Y2U3NzFkYjczODAwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxUb2tlbml6ZXIuY3BwCkBAIC0yNTMsNyArMjUzLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBIVE1M
X0FEVkFOQ0VfVE8oVGFnT3BlblN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKQorICAgICAgICB9IGVsc2UgaWYg
KGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAgICAgICByZXR1cm4gZW1pdEVuZE9mRmls
ZShzb3VyY2UpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3Rlcihj
Yyk7CkBAIC0yNzQsNyArMjc0LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBIVE1M
X0FEVkFOQ0VfVE8oQ2hhcmFjdGVyUmVmZXJlbmNlSW5SQ0RBVEFTdGF0ZSk7CiAgICAgICAgIGVs
c2UgaWYgKGNjID09ICc8JykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhSQ0RBVEFMZXNz
VGhhblNpZ25TdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGVsc2UgaWYgKGNjID09IGtFbmRPZkZp
bGVNYXJrZXIpCiAgICAgICAgICAgICByZXR1cm4gZW1pdEVuZE9mRmlsZShzb3VyY2UpOwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CkBAIC0yOTMsNyAr
MjkzLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShSQVdURVhUU3Rh
dGUpIHsKICAgICAgICAgaWYgKGNjID09ICc8JykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9U
TyhSQVdURVhUTGVzc1RoYW5TaWduU3RhdGUpOwotICAgICAgICBlbHNlIGlmIChjYyA9PSBJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKQorICAgICAgICBlbHNlIGlmIChj
YyA9PSBrRW5kT2ZGaWxlTWFya2VyKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUo
c291cmNlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2Mp
OwpAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgIEhUTUxfQkVHSU5fU1RB
VEUoU2NyaXB0RGF0YVN0YXRlKSB7CiAgICAgICAgIGlmIChjYyA9PSAnPCcpCiAgICAgICAgICAg
ICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0YUxlc3NUaGFuU2lnblN0YXRlKTsKLSAgICAgICAg
ZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikK
KyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKICAgICAgICAgICAgIHJl
dHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
YnVmZmVyQ2hhcmFjdGVyKGNjKTsKQEAgLTMxNSwxMCArMzE1LDkgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4p
CiAgICAgRU5EX1NUQVRFKCkKIAogICAgIEhUTUxfQkVHSU5fU1RBVEUoUExBSU5URVhUU3RhdGUp
IHsKLSAgICAgICAgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVN
YXJrZXIpCisgICAgICAgIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQogICAgICAgICAgICAg
cmV0dXJuIGVtaXRFbmRPZkZpbGUoc291cmNlKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
YnVmZmVyQ2hhcmFjdGVyKGNjKTsKKyAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAg
ICAgSFRNTF9BRFZBTkNFX1RPKFBMQUlOVEVYVFN0YXRlKTsKICAgICB9CiAgICAgRU5EX1NUQVRF
KCkKQEAgLTM2MCw3ICszNTksNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhU
TUxfQURWQU5DRV9UTyhEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJh
Y3RlcignLycpOwpAQCAtMzg0LDcgKzM4Myw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBl
bHNlIGlmIChpc0FTQ0lJVXBwZXIoY2MpKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRU
b05hbWUodG9Mb3dlckNhc2UoY2MpKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhUYWdO
YW1lU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZG
aWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1M
X1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtNjE3LDcgKzYx
Niw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291
cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKFNjcmlw
dERhdGFFc2NhcGVkRGFzaFN0YXRlKTsKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPCcpCiAg
ICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0YUVzY2FwZWRMZXNzVGhhblNpZ25T
dGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtl
cikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNV
TUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTYzMyw3ICs2MzIsNyBAQCBi
b29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRN
TFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhTY3JpcHREYXRhRXNj
YXBlZERhc2hEYXNoU3RhdGUpOwogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc8JykKICAgICAg
ICAgICAgIEhUTUxfQURWQU5DRV9UTyhTY3JpcHREYXRhRXNjYXBlZExlc3NUaGFuU2lnblN0YXRl
KTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9m
RmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7
CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9J
TihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtNjUyLDcgKzY1MSw3IEBAIGJvb2wg
SFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9r
ZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIGJ1
ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0
YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgSFRNTF9S
RUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTc2Niw3ICs3NjUs
NyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPCcpIHsKICAg
ICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0Vf
VE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhhblNpZ25TdGF0ZSk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikg
eworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAg
ICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfUkVDT05TVU1FX0lOKERhdGFTdGF0
ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC03ODMsNyArNzgyLDcgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4p
CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJzwnKSB7CiAgICAgICAgICAgICBidWZmZXJDaGFy
YWN0ZXIoY2MpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKFNjcmlwdERhdGFEb3VibGVF
c2NhcGVkTGVzc1RoYW5TaWduU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2Ug
ewpAQCAtODAzLDcgKzgwMiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9IGVsc2UgaWYg
KGNjID09ICc+JykgewogICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAg
ICAgIEhUTUxfQURWQU5DRV9UTyhTY3JpcHREYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYg
KGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAg
ICAgICB9IGVsc2UgewpAQCAtODU3LDcgKzg1Niw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICAgICAgbV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVOYW1lKHNvdXJjZS5udW1iZXJPZkNoYXJhY3Rl
cnNDb25zdW1lZCgpKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFt
ZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKEF0dHJpYnV0
ZU5hbWVTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhU
TUxfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC04OTAsNyAr
ODg5LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoaXNBU0NJSVVwcGVy
KGNjKSkgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9BdHRyaWJ1dGVOYW1lKHRvTG93
ZXJDYXNlKGNjKSk7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0
YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6
ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1h
cmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+
ZW5kQXR0cmlidXRlTmFtZShzb3VyY2UubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7CiAg
ICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwpAQCAtOTE5LDcgKzkxOCw3
IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVO
YW1lKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKICAgICAgICAgICAgIG1f
dG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAg
ICAgSFRNTF9BRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAg
ICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBh
cnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAg
ICAgICAgIH0gZWxzZSB7CkBAIC05NDgsNyArOTQ3LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAg
ICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0
YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJl
cHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBr
RW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAg
ICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtOTY4
LDcgKzk2Nyw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICcm
JykgewogICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciA9ICciJzsKICAg
ICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDaGFyYWN0ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZh
bHVlU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZG
aWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rv
a2VuLT5lbmRBdHRyaWJ1dGVWYWx1ZShzb3VyY2UubnVtYmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQo
KSk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwpAQCAtOTg2LDcg
Kzk4NSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICcmJykg
ewogICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlciA9ICdcJyc7CiAgICAg
ICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ2hhcmFjdGVyUmVmZXJlbmNlSW5BdHRyaWJ1dGVWYWx1
ZVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tl
bi0+ZW5kQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkp
OwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKQEAgLTEwMDcsNyAr
MTAwNiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+Jykg
ewogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJlck9m
Q2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJ
bihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgfSBlbHNl
IGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Cisg
ICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAg
cGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmlidXRlVmFsdWUoc291
cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAgICAgSFRNTF9SRUNP
TlNVTUVfSU4oRGF0YVN0YXRlKTsKQEAgLTEwNTcsNyArMTA1Niw3IEBAIGJvb2wgSFRNTFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2Vu
KQogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6
ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAobV9vcHRpb25zLnVzZVByZUhU
TUw1UGFyc2VyUXVpcmtzICYmIGNjID09ICc8JykKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5k
UmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAg
ICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAg
ICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0
YXRlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTEwNzEsNyArMTA3MCw3IEBAIGJvb2wgSFRNTFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRv
a2VuKQogICAgICAgICBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRT
ZWxmQ2xvc2luZygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2Us
IEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9
PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJv
cigpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAg
fSBlbHNlIHsKQEAgLTEwOTAsNyArMTA4OSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgIEhUTUxf
QkVHSU5fU1RBVEUoQ29udGludWVCb2d1c0NvbW1lbnRTdGF0ZSkgewogICAgICAgICBpZiAoY2Mg
PT0gJz4nKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxU
b2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKKyAgICAgICAgZWxzZSBpZiAoY2Mg
PT0ga0VuZE9mRmlsZU1hcmtlcikKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1l
SW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9Db21tZW50KGNjKTsKQEAgLTExMzgsNyAr
MTEzNyw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicpIHsK
ICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVz
dW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikg
eworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAg
ICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4o
c291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7
CkBAIC0xMTU0LDcgKzExNTMsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gJz4nKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUp
OwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRP
ZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2Vy
KSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFu
ZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAg
ICAgICB9IGVsc2UgewpAQCAtMTE2OCw3ICsxMTY3LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAg
SFRNTF9CRUdJTl9TVEFURShDb21tZW50U3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICctJykK
ICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDb21tZW50RW5kRGFzaFN0YXRlKTsKLSAgICAg
ICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtl
cikgeworICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAg
ICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUlu
KHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2Ug
ewpAQCAtMTE4MSw3ICsxMTgwLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRNTF9CRUdJTl9T
VEFURShDb21tZW50RW5kRGFzaFN0YXRlKSB7CiAgICAgICAgIGlmIChjYyA9PSAnLScpCiAgICAg
ICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ29tbWVudEVuZFN0YXRlKTsKLSAgICAgICAgZWxzZSBp
ZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAg
ICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwg
SFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTIw
Miw3ICsxMjAxLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3Ry
aW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7
CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NvbW1lbnQoJy0nKTsKICAgICAgICAgICAg
IEhUTUxfQURWQU5DRV9UTyhDb21tZW50RW5kU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRN
TFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTIyMyw3
ICsxMjIyLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8o
Q29tbWVudEVuZERhc2hTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKQogICAg
ICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0
ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZG
aWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1
cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3Rh
dGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTIzOSw3ICsxMjM4LDcgQEAgYm9vbCBIVE1MVG9r
ZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9r
ZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShET0NUWVBFU3RhdGUpIHsKICAgICAgICAgaWYgKGlz
VG9rZW5pemVyV2hpdGVzcGFjZShjYykpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQmVm
b3JlRE9DVFlQRU5hbWVTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFt
UHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0g
a0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAg
ICAgbV90b2tlbi0+YmVnaW5ET0NUWVBFKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3Jj
ZVF1aXJrcygpOwpAQCAtMTI2Miw3ICsxMjYxLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
ICAgICBtX3Rva2VuLT5iZWdpbkRPQ1RZUEUoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZv
cmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwg
SFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09
IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBl
bHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9y
KCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkRPQ1RZUEUoKTsKICAgICAgICAgICAgIG1f
dG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CkBAIC0xMjgyLDcgKzEyODEsNyBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgZWxzZSBpZiAoaXNBU0NJSVVwcGVyKGNjKSkgewogICAgICAgICAgICAg
bV90b2tlbi0+YXBwZW5kVG9OYW1lKHRvTG93ZXJDYXNlKGNjKSk7CiAgICAgICAgICAgICBIVE1M
X0FEVkFOQ0VfVE8oRE9DVFlQRU5hbWVTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0g
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVs
c2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3Io
KTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRh
U3RhdGUpOwpAQCAtMTI5OCw3ICsxMjk3LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9r
ZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAg
ICBIVE1MX0FEVkFOQ0VfVE8oQWZ0ZXJET0NUWVBFTmFtZVN0YXRlKTsKICAgICAgICAgaWYgKGNj
ID09ICc+JykKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1M
VG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgZWxzZSBpZiAo
Y2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAg
ICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBl
bWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7
CkBAIC0xMzQyLDcgKzEzNDEsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHBhcnNl
RXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAg
ICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpE
YXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZG
aWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rv
a2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1
bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAgLTEzNjcsNyAr
MTM2Niw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAg
ICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBl
bWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmls
ZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsK
ICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNl
UXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwg
SFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpAQCAtMTM4Niw3ICsxMzg1LDcgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rv
a2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJ
bihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgfSBlbHNl
IGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7Cisg
ICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAg
cGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAg
ICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVy
U3RhdGU6OkRhdGFTdGF0ZSk7CkBAIC0xNDA0LDcgKzE0MDMsNyBAQCBib29sIEhUTUxUb2tlbml6
ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikK
ICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNl
UXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRN
TFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNl
IGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7
CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0
dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0
YXRlKTsKQEAgLTE0MjgsNyArMTQyNyw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2Vu
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAg
cGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0U3lzdGVtSWRlbnRpZmllclRv
RW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhET0NUWVBFU3lzdGVt
SWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxz
ZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigp
OwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFT
dGF0ZSk7CkBAIC0xNDUxLDcgKzE0NTAsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tl
bihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfSBl
bHNlIGlmIChjYyA9PSAnXCcnKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRTeXN0ZW1JZGVu
dGlmaWVyVG9FbXB0eVN0cmluZygpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKERPQ1RZ
UEVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYg
KGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAg
ICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0
ZTo6RGF0YVN0YXRlKTsKQEAgLTE0NzgsNyArMTQ3Nyw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAg
ICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWly
a3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9r
ZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYg
KGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAg
ICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4g
ZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUp
OwpAQCAtMTUwMyw3ICsxNTAyLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBwYXJz
ZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAg
ICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6
RGF0YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nl
c3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9m
RmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90
b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25z
dW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CkBAIC0xNTIyLDcg
KzE1MjEsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAg
ICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4g
ZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwot
ICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZp
bGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7
CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3Jj
ZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2Us
IEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAgLTE1NDAsNyArMTUzOSw3IEBAIGJv
b2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90
b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1l
SW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIH0gZWxz
ZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgewor
ICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAg
IHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAg
ICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXpl
clN0YXRlOjpEYXRhU3RhdGUpOwpAQCAtMTU1Niw3ICsxNTU1LDcgQEAgYm9vbCBIVE1MVG9rZW5p
emVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4p
CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQWZ0ZXJET0NUWVBFU3lzdGVtSWRlbnRpZmll
clN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKQogICAgICAgICAgICAgcmV0dXJu
IGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsK
LSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmls
ZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1
aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhU
TUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAgLTE1NzAsNyArMTU2OSw3IEBAIGJvb2wg
SFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9r
ZW4mIHRva2VuKQogICAgIEhUTUxfQkVHSU5fU1RBVEUoQm9ndXNET0NUWVBFU3RhdGUpIHsKICAg
ICAgICAgaWYgKGNjID09ICc+JykKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4o
c291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYg
KGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAg
IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwog
ICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQm9ndXNET0NUWVBFU3RhdGUpOwogICAgIH0KQEAgLTE1
NzksNyArMTU3OCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgIEhUTUxfQkVHSU5fU1RBVEUoQ0RB
VEFTZWN0aW9uU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICddJykKICAgICAgICAgICAgIEhU
TUxfQURWQU5DRV9UTyhDREFUQVNlY3Rpb25SaWdodFNxdWFyZUJyYWNrZXRTdGF0ZSk7Ci0gICAg
ICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpCisgICAgICAgIGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAgICAg
ICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICBlbHNlIHsKICAgICAgICAg
ICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYWE4ZDIyZDAyNzg5
N2JjZGY5OTQzMDA1ZDM3NDA4ZDA0NWUyMGI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaApAQCAtMCwwICsxLDEz
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuIGh0dHA6Ly93
d3cudG9yY2htb2JpbGUuY29tLworICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSwgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yX2gKKyNkZWZpbmUgSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3JfaAorCisjaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3Qg
VUNoYXIga0VuZE9mRmlsZU1hcmtlciA9IDA7CisKKy8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9z
cGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVh
bQordGVtcGxhdGUgPHR5cGVuYW1lIFRva2VuaXplcj4KK2NsYXNzIElucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cik7CitwdWJsaWM6CisgICAgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IoVG9rZW5pemVyKiB0b2tl
bml6ZXIpCisgICAgICAgIDogbV90b2tlbml6ZXIodG9rZW5pemVyKQorICAgIHsKKyAgICAgICAg
cmVzZXQoKTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5MSU5FIFVDaGFyIG5leHRJbnB1dENoYXJh
Y3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dElucHV0Q2hhcmFjdGVyOyB9CisKKyAgICAvLyBS
ZXR1cm5zIHdoZXRoZXIgd2Ugc3VjY2VlZGVkIGluIHBlZWtpbmcgYXQgdGhlIG5leHQgY2hhcmFj
dGVyLgorICAgIC8vIFRoZSBvbmx5IHdheSB3ZSBjYW4gZmFpbCB0byBwZWVrIGlzIGlmIHRoZXJl
IGFyZSBubyBtb3JlCisgICAgLy8gY2hhcmFjdGVycyBpbiB8c291cmNlfCAoYWZ0ZXIgY29sbGFw
c2luZyBcclxuLCBldGMpLgorICAgIEFMV0FZU19JTkxJTkUgYm9vbCBwZWVrKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlKQorICAgIHsKKyAgICBQZWVrQWdhaW46CisgICAgICAgIG1fbmV4dElucHV0
Q2hhcmFjdGVyID0gc291cmNlLmN1cnJlbnRDaGFyKCk7CisKKyAgICAgICAgLy8gRXZlcnkgYnJh
bmNoIGluIHRoaXMgZnVuY3Rpb24gaXMgZXhwZW5zaXZlLCBzbyB3ZSBoYXZlIGEKKyAgICAgICAg
Ly8gZmFzdC1yZWplY3QgYnJhbmNoIGZvciBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBz
cGVjaWFsCisgICAgICAgIC8vIGhhbmRsaW5nLiBQbGVhc2UgcnVuIHRoZSBwYXJzZXIgYmVuY2ht
YXJrIHdoZW5ldmVyIHlvdSB0b3VjaAorICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uLiBJdCdzIHZl
cnkgaG90LgorICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgc3BlY2lhbENoYXJhY3Rlck1hc2sg
PSAnXG4nIHwgJ1xyJyB8ICdcMCc7CisgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3RlciAm
IH5zcGVjaWFsQ2hhcmFjdGVyTWFzaykgeworICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUg
PSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcbicgJiYgbV9za2lwTmV4dE5ld0xpbmUpIHsK
KyAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7CisgICAgICAgICAgICBzb3Vy
Y2UuYWR2YW5jZVBhc3ROZXdsaW5lQW5kVXBkYXRlTGluZU51bWJlcigpOworICAgICAgICAgICAg
aWYgKHNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSBzb3VyY2UuY3VycmVudENoYXIoKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1xyJykgeworICAg
ICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSAnXG4nOworICAgICAgICAgICAgbV9za2lw
TmV4dE5ld0xpbmUgPSB0cnVlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbV9za2lw
TmV4dE5ld0xpbmUgPSBmYWxzZTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUgc3BlYyBpbmRp
Y2F0ZXMgdGhhdCB0aGUgc3Vycm9nYXRlIHBhaXIgcmFuZ2UgYXMgd2VsbCBhcworICAgICAgICAg
ICAgLy8gYSBudW1iZXIgb2Ygc3BlY2lmaWMgY2hhcmFjdGVyIHZhbHVlcyBhcmUgcGFyc2UgZXJy
b3JzIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQKKyAgICAgICAgICAgIC8vIGJ5IHRoZSByZXBsYWNl
bWVudCBjaGFyYWN0ZXIuIFdlIHN1c3BlY3QgdGhpcyBpcyBhIHByb2JsZW0gd2l0aCB0aGUgc3Bl
YyBhcyBkb2luZworICAgICAgICAgICAgLy8gdGhhdCBmaWx0ZXJpbmcgYnJlYWtzIHN1cnJvZ2F0
ZSBwYWlyIGhhbmRsaW5nIGFuZCBjYXVzZXMgdXMgbm90IHRvIG1hdGNoIE1pbmVmaWVsZC4KKyAg
ICAgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3RlciA9PSAnXDAnICYmICFzaG91bGRUcmVh
dE51bGxBc0VuZE9mRmlsZU1hcmtlcihzb3VyY2UpKSB7CisgICAgICAgICAgICAgICAgaWYgKG1f
dG9rZW5pemVyLT5zaG91bGRTa2lwTnVsbENoYXJhY3RlcnMoKSkgeworICAgICAgICAgICAgICAg
ICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5lKCk7CisgICAgICAgICAgICAgICAgICAg
IGlmIChzb3VyY2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgICAgICAgICBnb3RvIFBlZWtBZ2FpbjsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSAweEZGRkQ7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg
Ly8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGFyZSBtb3JlIGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwg
YWZ0ZXIgYWR2YW5jaW5nLgorICAgIEFMV0FZU19JTkxJTkUgYm9vbCBhZHZhbmNlKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlKQorICAgIHsKKyAgICAgICAgc291cmNlLmFkdmFuY2VBbmRVcGRhdGVM
aW5lTnVtYmVyKCk7CisgICAgICAgIGlmIChzb3VyY2UuaXNFbXB0eSgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gcGVlayhzb3VyY2UpOworICAgIH0KKworICAg
IGJvb2wgc2tpcE5leHROZXdMaW5lKCkgY29uc3QgeyByZXR1cm4gbV9za2lwTmV4dE5ld0xpbmU7
IH0KKworICAgIHZvaWQgcmVzZXQoYm9vbCBza2lwTmV4dE5ld0xpbmUgPSBmYWxzZSkKKyAgICB7
CisgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gJ1wwJzsKKyAgICAgICAgbV9za2lwTmV4
dE5ld0xpbmUgPSBza2lwTmV4dE5ld0xpbmU7CisgICAgfQorCitwcml2YXRlOgorICAgIGJvb2wg
c2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Up
IGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc291cmNlLmlzQ2xvc2VkKCkgJiYgc291cmNl
Lmxlbmd0aCgpID09IDE7CisgICAgfQorCisgICAgVG9rZW5pemVyKiBtX3Rva2VuaXplcjsKKwor
ICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsv
I25leHQtaW5wdXQtY2hhcmFjdGVyCisgICAgVUNoYXIgbV9uZXh0SW5wdXRDaGFyYWN0ZXI7Cisg
ICAgYm9vbCBtX3NraXBOZXh0TmV3TGluZTsKK307CisKK30KKworI2VuZGlmIC8vIElucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFj
ay9XZWJWVFRUb2tlbml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRU
b2tlbml6ZXIuY3BwCmluZGV4IDNiM2YzOGFjZTNlZWI0NGE4NjQxYjJkNGRkY2YyNTgzZDgzMjhi
M2UuLmQ2Nzc1ZTMwNTZkODM3OTc3N2RiNWY5MGNkYTYxODEzMWMxN2JhNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5jcHAKQEAgLTQyLDE2ICs0Miwx
MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZGVmaW5lIFdFQlZUVF9BRFZBTkNFX1RPKHN0YXRl
TmFtZSkgQURWQU5DRV9UTyhXZWJWVFRUb2tlbml6ZXJTdGF0ZSwgc3RhdGVOYW1lKQogCiBXZWJW
VFRUb2tlbml6ZXI6OldlYlZUVFRva2VuaXplcigpCisgICAgOiBtX2lucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yKHRoaXMpCiB7CiAgICAgcmVzZXQoKTsKIH0KIAotdGVtcGxhdGU8PgotaW5saW5lIGJv
b2wgTWFya3VwVG9rZW5pemVyQmFzZTxXZWJWVFRUb2tlbiwgV2ViVlRUVG9rZW5pemVyU3RhdGU+
OjpzaG91bGRTa2lwTnVsbENoYXJhY3RlcnMoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwot
fQotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIGlubGluZSBib29sIHZlY3Rv
ckVxdWFsc1N0cmluZyhjb25zdCBWZWN0b3I8Q2hhcmFjdGVyVHlwZSwgMzI+JiB2ZWN0b3IsIGNv
bnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtOTUsNyArOTAsNyBAQCBib29sIFdlYlZUVFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9r
ZW4pCiAgICAgICAgICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oVGFnU3RhdGUpOwogICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNl
LCBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6VGFnU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKICAgICAgICAgICAgIHJldHVybiBlbWl0
RW5kT2ZGaWxlKHNvdXJjZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgYnVmZmVyQ2hh
cmFjdGVyKGNjKTsKQEAgLTEyMSw3ICsxMTYsNyBAQCBib29sIFdlYlZUVFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAg
ICAgIH0gZWxzZSBpZiAoaXNBU0NJSUFscGhhbnVtZXJpYyhjYykpIHsKICAgICAgICAgICAgIG1f
YnVmZmVyLmFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4oY2MpKTsKICAgICAgICAgICAgIFdFQlZU
VF9BRFZBTkNFX1RPKEVzY2FwZVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBp
ZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5k
VG9DaGFyYWN0ZXIobV9idWZmZXIpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUo
c291cmNlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTE0NSw3ICsxNDAsNyBAQCBib29sIFdlYlZU
VFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBXZWJWVFRUb2tl
biYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoV1RGOjppc0FTQ0lJRGlnaXQoY2MpKSB7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5iZWdpblRpbWVzdGFtcFRhZyhjYyk7CiAgICAgICAgICAgICBX
RUJWVFRfQURWQU5DRV9UTyhUaW1lc3RhbXBUYWdTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
Y2MgPT0gJz4nIHx8IGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicgfHwgY2MgPT0ga0VuZE9mRmlsZU1h
cmtlcikgewogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5FbXB0eVN0YXJ0VGFnKCk7CiAgICAg
ICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgV2ViVlRUVG9rZW5pemVyU3Rh
dGU6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xNjAsNyArMTU1LDcgQEAgYm9v
bCBXZWJWVFRUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgV2Vi
VlRUVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdB
bm5vdGF0aW9uU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChjYyA9PSAnLicpCiAgICAgICAgICAg
ICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0NsYXNzU3RhdGUpOwotICAgICAgICBlbHNlIGlm
IChjYyA9PSAnPicgfHwgY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1h
cmtlcikKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nIHx8IGNjID09IGtFbmRPZkZpbGVNYXJr
ZXIpCiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgV2ViVlRUVG9r
ZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbV90
b2tlbi0+YXBwZW5kVG9OYW1lKGNjKTsKQEAgLTE3Niw3ICsxNzEsNyBAQCBib29sIFdlYlZUVFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBXZWJWVFRUb2tlbiYg
dG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJy4nKSB7CiAgICAgICAgICAgICBtX3Rv
a2VuLT5hZGROZXdDbGFzcygpOwogICAgICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRU
YWdDbGFzc1N0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicgfHwgY2MgPT0gSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2Ug
aWYgKGNjID09ICc+JyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBt
X3Rva2VuLT5hZGROZXdDbGFzcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJ
bihzb3VyY2UsIFdlYlZUVFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVs
c2UgewpAQCAtMTg4LDcgKzE4Myw3IEBAIGJvb2wgV2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4o
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZUVFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RB
VEUoKQogCiAgICAgV0VCVlRUX0JFR0lOX1NUQVRFKFN0YXJ0VGFnQW5ub3RhdGlvblN0YXRlKSB7
Ci0gICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6
OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAoY2MgPT0gJz4nIHx8IGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFkZE5ld0Fubm90YXRpb24oKTsK
ICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBXZWJWVFRUb2tlbml6
ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKICAgICAgICAgfQpAQCAtMTk4LDcgKzE5Myw3IEBAIGJvb2wg
V2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZU
VFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQogICAgIAogICAgIFdFQlZUVF9CRUdJTl9T
VEFURShFbmRUYWdPcGVuU3RhdGUpIHsKLSAgICAgICAgaWYgKGNjID09ICc+JyB8fCBjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIGlmIChj
YyA9PSAnPicgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgbV90b2tl
bi0+YmVnaW5FbmRUYWcoJ1wwJyk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUlu
KHNvdXJjZSwgV2ViVlRUVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0KQEAg
LTIwOCw3ICsyMDMsNyBAQCBib29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgRU5EX1NUQVRFKCkKIAog
ICAgIFdFQlZUVF9CRUdJTl9TVEFURShFbmRUYWdTdGF0ZSkgewotICAgICAgICBpZiAoY2MgPT0g
Jz4nIHx8IGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisg
ICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKICAgICAgICAg
ICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6
RGF0YVN0YXRlKTsKICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9OYW1lKGNjKTsKICAgICAgICAg
V0VCVlRUX0FEVkFOQ0VfVE8oRW5kVGFnU3RhdGUpOwpAQCAtMjE2LDcgKzIxMSw3IEBAIGJvb2wg
V2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZU
VFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQogCiAgICAgV0VCVlRUX0JFR0lOX1NUQVRF
KFRpbWVzdGFtcFRhZ1N0YXRlKSB7Ci0gICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0gSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKKyAgICAgICAgaWYgKGNjID09
ICc+JyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRB
bmRSZXN1bWVJbihzb3VyY2UsIFdlYlZUVFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAg
ICAgICBtX3Rva2VuLT5hcHBlbmRUb1RpbWVzdGFtcChjYyk7CiAgICAgICAgIFdFQlZUVF9BRFZB
TkNFX1RPKFRpbWVzdGFtcFRhZ1N0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVFRva2VuaXplci5oCmluZGV4IDBmNDViZmQwZWY2M2U1MWFhZDdjZWNjM2Q1ZGY1ZjMzYTgx
ZmYwOGMuLjdjNTI5OWNhYWM4ZDVjOGZhZTUwY2JkZTkwMTg0ZDVhMjFiOWMyNzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuaApAQCAtMzMsOSArMzMsOSBA
QAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0jaW5jbHVkZSAiTWFya3VwVG9rZW5pemVy
QmFzZS5oIgotI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgorI2luY2x1ZGUgIklucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yLmgiCiAjaW5jbHVkZSAiV2ViVlRUVG9rZW4uaCIKKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU0LDIwICs1NCw2
MiBAQCBwdWJsaWM6CiAgICAgfTsKIH07CiAKLWNsYXNzIFdlYlZUVFRva2VuaXplciA6IE1hcmt1
cFRva2VuaXplckJhc2U8V2ViVlRUVG9rZW4sIFdlYlZUVFRva2VuaXplclN0YXRlPiB7CitjbGFz
cyBXZWJWVFRUb2tlbml6ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZUVFRva2Vu
aXplcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFBhc3NPd25QdHI8V2ViVlRUVG9rZW5pemVyPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFB0cihu
ZXcgV2ViVlRUVG9rZW5pemVyKTsgfQogCisgICAgdHlwZWRlZiBXZWJWVFRUb2tlbml6ZXJTdGF0
ZSBTdGF0ZTsKKwogICAgIHZvaWQgcmVzZXQoKTsKICAgICAKICAgICBib29sIG5leHRUb2tlbihT
ZWdtZW50ZWRTdHJpbmcmLCBXZWJWVFRUb2tlbiYpOwogCisgICAgaW5saW5lIGJvb2wgaGF2ZUJ1
ZmZlcmVkQ2hhcmFjdGVyVG9rZW4oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fdG9rZW4tPnR5
cGUoKSA9PSBXZWJWVFRUb2tlbjo6VHlwZTo6Q2hhcmFjdGVyOworICAgIH0KKworICAgIGlubGlu
ZSB2b2lkIGJ1ZmZlckNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIpCisgICAgeworICAgICAgICBB
U1NFUlQoY2hhcmFjdGVyICE9IGtFbmRPZkZpbGVNYXJrZXIpOworICAgICAgICBtX3Rva2VuLT5l
bnN1cmVJc0NoYXJhY3RlclRva2VuKCk7CisgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQ2hhcmFj
dGVyKGNoYXJhY3Rlcik7CisgICAgfQorCisgICAgaW5saW5lIGJvb2wgZW1pdEFuZFJlc3VtZUlu
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCB0eXBlbmFtZSBTdGF0ZTo6U3RhdGUgc3RhdGUpCisg
ICAgeworICAgICAgICBtX3N0YXRlID0gc3RhdGU7CisgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5k
VXBkYXRlTGluZU51bWJlcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBp
bmxpbmUgYm9vbCBlbWl0RW5kT2ZGaWxlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQorICAgIHsK
KyAgICAgICAgaWYgKGhhdmVCdWZmZXJlZENoYXJhY3RlclRva2VuKCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpEYXRhU3RhdGU7CisgICAgICAg
IHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOworICAgICAgICBtX3Rva2VuLT5j
bGVhcigpOworICAgICAgICBtX3Rva2VuLT5tYWtlRW5kT2ZGaWxlKCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIGJvb2wgc2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIFdlYlZUVFRva2VuaXplcigpOwot
ICAgIAorCisgICAgLy8gbV90b2tlbiBpcyBvd25lZCBieSB0aGUgY2FsbGVyLiBJZiBuZXh0VG9r
ZW4gaXMgbm90IG9uIHRoZSBzdGFjaywKKyAgICAvLyB0aGlzIG1lbWJlciBtaWdodCBiZSBwb2lu
dGluZyB0byB1bmFsbG9jYXRlZCBtZW1vcnkuCisgICAgV2ViVlRUVG9rZW4qIG1fdG9rZW47Cisg
ICAgV2ViVlRUVG9rZW5pemVyU3RhdGU6OlN0YXRlIG1fc3RhdGU7CisKICAgICBWZWN0b3I8TENo
YXIsIDMyPiBtX2J1ZmZlcjsKKworICAgIC8vIDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1h
cHBzL2N1cnJlbnQtd29yay8jcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQtc3RyZWFtCisgICAgSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3I8V2ViVlRUVG9rZW5pemVyPiBtX2lucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9N
YXJrdXBUb2tlbml6ZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRv
a2VuaXplckJhc2UuaAppbmRleCAwZmM5YzU2OTBiZjM2Mjc2ZjYxZjdjMmNlMmMzY2E3NWU1OWJl
NGE3Li40Nzc3ZDlhM2YzMjUxMTA0OWI2NGM5NGM4ZDU0MTgwNGRlOTcyMWU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJhc2UuaApAQCAtMjgsOCAr
MjgsNyBAQAogI2lmbmRlZiBNYXJrdXBUb2tlbml6ZXJCYXNlX2gKICNkZWZpbmUgTWFya3VwVG9r
ZW5pemVyQmFzZV9oCiAKLSNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKLSNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlICJJbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oIgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtNTUsMTAyICs1NCwxMSBAQCBwdWJs
aWM6CiAgICAgaW5saW5lIGJvb2wgc2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkgY29uc3Q7CiAK
IHByb3RlY3RlZDoKLSAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMv
Y3VycmVudC13b3JrLyNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJlYW0KLSAgICBjbGFzcyBJ
bnB1dFN0cmVhbVByZXByb2Nlc3NvciB7Ci0gICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yKTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIElucHV0U3RyZWFt
UHJlcHJvY2Vzc29yKE1hcmt1cFRva2VuaXplckJhc2U8VG9rZW4sIFN0YXRlPiogdG9rZW5pemVy
KQotICAgICAgICAgICAgOiBtX3Rva2VuaXplcih0b2tlbml6ZXIpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJlc2V0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBBTFdBWVNfSU5MSU5FIFVDaGFy
IG5leHRJbnB1dENoYXJhY3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dElucHV0Q2hhcmFjdGVy
OyB9Ci0KLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVyIHdlIHN1Y2NlZWRlZCBpbiBwZWVraW5n
IGF0IHRoZSBuZXh0IGNoYXJhY3Rlci4KLSAgICAgICAgLy8gVGhlIG9ubHkgd2F5IHdlIGNhbiBm
YWlsIHRvIHBlZWsgaXMgaWYgdGhlcmUgYXJlIG5vIG1vcmUKLSAgICAgICAgLy8gY2hhcmFjdGVy
cyBpbiB8c291cmNlfCAoYWZ0ZXIgY29sbGFwc2luZyBcclxuLCBldGMpLgotICAgICAgICBBTFdB
WVNfSU5MSU5FIGJvb2wgcGVlayhTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKLSAgICAgICAgewot
ICAgICAgICBQZWVrQWdhaW46Ci0gICAgICAgICAgICBtX25leHRJbnB1dENoYXJhY3RlciA9IHNv
dXJjZS5jdXJyZW50Q2hhcigpOwotCi0gICAgICAgICAgICAvLyBFdmVyeSBicmFuY2ggaW4gdGhp
cyBmdW5jdGlvbiBpcyBleHBlbnNpdmUsIHNvIHdlIGhhdmUgYQotICAgICAgICAgICAgLy8gZmFz
dC1yZWplY3QgYnJhbmNoIGZvciBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFs
Ci0gICAgICAgICAgICAvLyBoYW5kbGluZy4gUGxlYXNlIHJ1biB0aGUgcGFyc2VyIGJlbmNobWFy
ayB3aGVuZXZlciB5b3UgdG91Y2gKLSAgICAgICAgICAgIC8vIHRoaXMgZnVuY3Rpb24uIEl0J3Mg
dmVyeSBob3QuCi0gICAgICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgc3BlY2lhbENoYXJhY3Rl
ck1hc2sgPSAnXG4nIHwgJ1xyJyB8ICdcMCc7Ci0gICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRD
aGFyYWN0ZXIgJiB+c3BlY2lhbENoYXJhY3Rlck1hc2spIHsKLSAgICAgICAgICAgICAgICBtX3Nr
aXBOZXh0TmV3TGluZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1xu
JyAmJiBtX3NraXBOZXh0TmV3TGluZSkgewotICAgICAgICAgICAgICAgIG1fc2tpcE5leHROZXdM
aW5lID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc291cmNlLmFkdmFuY2VQYXN0TmV3bGluZUFu
ZFVwZGF0ZUxpbmVOdW1iZXIoKTsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNlLmlzRW1wdHko
KSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIG1f
bmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1cnJlbnRDaGFyKCk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1xyJykgewotICAgICAg
ICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gJ1xuJzsKLSAgICAgICAgICAgICAgICBt
X3NraXBOZXh0TmV3TGluZSA9IHRydWU7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgLy8gRklY
TUU6IFRoZSBzcGVjIGluZGljYXRlcyB0aGF0IHRoZSBzdXJyb2dhdGUgcGFpciByYW5nZSBhcyB3
ZWxsIGFzCi0gICAgICAgICAgICAgICAgLy8gYSBudW1iZXIgb2Ygc3BlY2lmaWMgY2hhcmFjdGVy
IHZhbHVlcyBhcmUgcGFyc2UgZXJyb3JzIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQKLSAgICAgICAg
ICAgICAgICAvLyBieSB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLiBXZSBzdXNwZWN0IHRoaXMg
aXMgYSBwcm9ibGVtIHdpdGggdGhlIHNwZWMgYXMgZG9pbmcKLSAgICAgICAgICAgICAgICAvLyB0
aGF0IGZpbHRlcmluZyBicmVha3Mgc3Vycm9nYXRlIHBhaXIgaGFuZGxpbmcgYW5kIGNhdXNlcyB1
cyBub3QgdG8gbWF0Y2ggTWluZWZpZWxkLgotICAgICAgICAgICAgICAgIGlmIChtX25leHRJbnB1
dENoYXJhY3RlciA9PSAnXDAnICYmICFzaG91bGRUcmVhdE51bGxBc0VuZE9mRmlsZU1hcmtlcihz
b3VyY2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX3Rva2VuaXplci0+c2hvdWxkU2tp
cE51bGxDaGFyYWN0ZXJzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5hZHZh
bmNlUGFzdE5vbk5ld2xpbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2Uu
aXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGdvdG8gUGVla0FnYWluOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gMHhGRkZEOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGFyZSBtb3Jl
IGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgYWZ0ZXIgYWR2YW5jaW5nLgotICAgICAgICBBTFdBWVNf
SU5MSU5FIGJvb2wgYWR2YW5jZShTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSkKLSAgICAgICAgewot
ICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyKCk7Ci0gICAgICAg
ICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICByZXR1cm4gcGVlayhzb3VyY2UpOwotICAgICAgICB9Ci0KLSAgICAgICAg
Ym9vbCBza2lwTmV4dE5ld0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3NraXBOZXh0TmV3TGluZTsg
fQotCi0gICAgICAgIHZvaWQgcmVzZXQoYm9vbCBza2lwTmV4dE5ld0xpbmUgPSBmYWxzZSkKLSAg
ICAgICAgewotICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSAnXDAnOwotICAgICAg
ICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBza2lwTmV4dE5ld0xpbmU7Ci0gICAgICAgIH0KLQot
ICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgZW5kT2ZGaWxlTWFya2VyID0gMDsKLQotICAgIHBy
aXZhdGU6Ci0gICAgICAgIGJvb2wgc2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIoU2Vn
bWVudGVkU3RyaW5nJiBzb3VyY2UpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVy
biBzb3VyY2UuaXNDbG9zZWQoKSAmJiBzb3VyY2UubGVuZ3RoKCkgPT0gMTsKLSAgICAgICAgfQot
Ci0gICAgICAgIE1hcmt1cFRva2VuaXplckJhc2U8VG9rZW4sIFN0YXRlPiogbV90b2tlbml6ZXI7
Ci0KLSAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJl
bnQtd29yay8jbmV4dC1pbnB1dC1jaGFyYWN0ZXIKLSAgICAgICAgVUNoYXIgbV9uZXh0SW5wdXRD
aGFyYWN0ZXI7Ci0gICAgICAgIGJvb2wgbV9za2lwTmV4dE5ld0xpbmU7Ci0gICAgfTsKLQogICAg
IE1hcmt1cFRva2VuaXplckJhc2UoKSA6IG1faW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IodGhpcykg
eyByZXNldCgpOyB9CiAKICAgICBpbmxpbmUgdm9pZCBidWZmZXJDaGFyYWN0ZXIoVUNoYXIgY2hh
cmFjdGVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGNoYXJhY3RlciAhPSBJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKTsKKyAgICAgICAgQVNTRVJUKGNoYXJhY3RlciAh
PSBrRW5kT2ZGaWxlTWFya2VyKTsKICAgICAgICAgbV90b2tlbi0+ZW5zdXJlSXNDaGFyYWN0ZXJU
b2tlbigpOwogICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NoYXJhY3RlcihjaGFyYWN0ZXIpOwog
ICAgIH0KQEAgLTIwNiw3ICsxMTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgVUNoYXIgbV9hZGRpdGlv
bmFsQWxsb3dlZENoYXJhY3RlcjsKIAogICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbQot
ICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIG1faW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I7Cisg
ICAgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I8TWFya3VwVG9rZW5pemVyQmFzZTxUb2tlbiwgU3Rh
dGU+ID4gbV9pbnB1dFN0cmVhbVByZXByb2Nlc3NvcjsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187625</attachid>
            <date>2013-02-11 11:28:45 -0800</date>
            <delta_ts>2013-02-11 12:18:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109411-20130211112516.patch</filename>
            <type>text/plain</type>
            <size>64362</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0OTM2MGNlYzM4MTNm
OGNkNmVmYzI3Njg3Y2RmYWI0NzlhNzkyZC4uOGFiZTVjOTY4ZDFhZjVjNzMxMDU2OTI5MTc1YmQ3
MGY1MmU0ZjdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAyLTExICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdlYlZUVFRva2VuaXpl
ciBzdG9wIGluaGVyaXRpbmcgZnJvbSBNYXJrdXBUb2tlbml6ZXJCYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBJbnB1dFN0cmVhbVByZXBy
b2Nlc3NvciBpbnRvIGl0cyBvd24gaGVhZGVyIGZpbGUgc28gaXQgY2FuIGJlCisgICAgICAgIHVz
ZWQgYnkgYm90aCBXZWJWVFRUb2tlbml6ZXIgYW5kIEhUTUxUb2tlbml6ZXIuCisKKyAgICAgICAg
QWxzbyBzcGxpdCBvdXQga0VuZE9mRmlsZU1hcmtlciBmcm9tIElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yPFQ+IHNvIHRoYXQKKyAgICAgICAgaXQgY2FuIGJlIHVzZWQgdy9vIGEgc3BlY2lmaWMgaW5z
dGFudGlhdGlvbiBvZiB0aGUgdGVtcGxhdGUgY2xhc3MuCisgICAgICAgIFRoaXMgYWxzbyBtYWRl
IGl0IHBvc3NpYmxlIHRvIGZpeCB0aHJlZSBvbGQgZml4bWVzIGFib3V0IHdhbnRpbmcgdG8gc2hh
cmUKKyAgICAgICAgdGhhdCBjb25zdGFudC4KKworICAgICAgICBBZ2Fpbiwgc2VwYXJhdGluZyBX
ZWJWVFQgY29kZSBmcm9tIE1hcmt1cCogYmFzZSBjbGFzc2VzIG1hZGUgaXQgc2ltcGxlcgorICAg
ICAgICBhdCB0aGUgY29zdCBvZiBhIGxpdHRsZSBjb3B5L3Bhc3RlIGNvZGUuICBXZWJWVFQgdG9r
ZW5pemF0aW9uIGlzIHJlbWFya2FibHkKKyAgICAgICAgc2ltcGxlIGNvbXBhcmVkIHRvIEhUTUwu
CisKKyAgICAgICAgVGhpcyB3aWxsIG1ha2UgaXQgaW1tZWRpYXRlbHkgcG9zc2libGUgdG8gcHVs
bCBNYXJrdXBUb2tlbml6ZXJCYXNlIHVwIGludG8KKyAgICAgICAgSFRNTFRva2VuaXplciBhbmQg
ZnVydGhlciBzaW1wbGlmeSB0aGUgY29kZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjptYXJrRW5kT2ZGaWxlKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dFN0cmVhbTo6bWFya0VuZE9mRmlsZSk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpu
ZXh0VG9rZW4pOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0lucHV0U3RyZWFtUHJlcHJvY2Vzc29y
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnB1dFN0cmVhbVByZXBy
b2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6SW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3I6Om5leHRJbnB1dENoYXJhY3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0
cmVhbVByZXByb2Nlc3Nvcjo6cGVlayk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcjo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVByZXBy
b2Nlc3Nvcjo6c2tpcE5leHROZXdMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0U3RyZWFt
UHJlcHJvY2Vzc29yOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVByZXBy
b2Nlc3Nvcjo6c2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIpOgorICAgICAgICAqIGh0
bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRv
a2VuaXplcjo6V2ViVlRUVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2Vu
aXplcjo6bmV4dFRva2VuKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5o
OgorICAgICAgICAoV2ViVlRUVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRv
a2VuaXplcjo6aGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViVlRUVG9rZW5pemVyOjpidWZmZXJDaGFyYWN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
VlRUVG9rZW5pemVyOjplbWl0QW5kUmVzdW1lSW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRU
VG9rZW5pemVyOjplbWl0RW5kT2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2Vu
aXplcjo6c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL01h
cmt1cFRva2VuaXplckJhc2UuaDoKKyAgICAgICAgKE1hcmt1cFRva2VuaXplckJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6TWFya3VwVG9rZW5pemVyQmFzZTo6YnVmZmVyQ2hhcmFjdGVyKToKKwog
MjAxMy0wMi0xMSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lOiBpbnZhbGlkYXRlIGFuZCBmb3JjZSBsb2NhdGlv
bnMgYXJlIHNhbWUgZm9yIExheW91dCByZWNvcmRzIGNhdXNlZCBieSBzdHlsZSByZWNhbGN1bGFp
dG9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxOTdlODJlNzc5OWM4ZjU5Mzkw
YmRmYWZhOGMxMjc4MTNlYzc3NzI5Li5hNzBhNWJiZmJjOGVlMGJjYTVjODU4MTE2MmQ3MWRkMjMz
MTlkOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM2MTgsNiArMzYxOCw3
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291
cmNlUGFyc2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3Vy
Y2VQYXJzZXIuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvTmVzdGluZ0xldmVsSW5j
cmVtZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2Vy
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggY2VhMzA5NWNjN2Y4NmVjYThhNmM5ZGVmZGM2NWIxNDljMTA1
MWI2YS4uNTAxNjMwOWI4MWE0NTBhMWI5MmNlOTFlM2I0ODQ5MDM2ZWIxZjIzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0xOTM1LDYgKzE5MzUsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL3BhcnNlci9I
VE1MVG9rZW5pemVyLmggXAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIFwKICAg
ICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIFwKKyAgICBodG1sL3BhcnNlci9J
bnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oIFwKICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmgg
XAogICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oIFwKICAgICBodG1sL3NoYWRv
dy9Db250ZW50RGlzdHJpYnV0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMWJjODIwMDI5M2I0
ZjdlNmNkMDU1M2ZiYzU0NTVjZWQ1OTI3MThiZi4uNTNkNDE4ODAwNWIxYzI2ZWMzMWMzMThmOTA5
ZDFkOTg4MTk5YTFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzQyNyw2ICszNDI3LDcgQEAKICAg
ICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAn
aHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdodG1s
L3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oJywKKyAgICAgICAgICAgICdodG1sL3BhcnNl
ci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9O
ZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0
RG9jdW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IGVhZWI5NTFlNzY2MjdiZDcyZDM0YzhmNGEyNWM1ZDhlNzU2NDQ5OTAuLmZmNTkz
MmI4NjI0NTkxMzg3MmU0NmVmOGM4OTA2M2JlNWRkMGRjZjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NTAxMCw2ICs2NTAxMCwxMCBAQAog
CQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxwYXJzZXJcSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxccGFyc2VyXE5lc3RpbmdMZXZl
bEluY3JlbWVudGVyLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhNGIyZmFhMGQyMTU1ZTc1YjU3
YmI2Y2MyMjExMDU4NmYzZTBjM2QwLi5hNjQyYTViM2I1MTBlMTBlZjNmNWEzODE5NzFkMmE5MWQ3
NTEwYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTc5NTMsNiArNzk1Myw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxo
dG1sXHBhcnNlclxIVE1MVG9rZW5UeXBlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caHRtbFxwYXJzZXJcSFRNTFRyZWVCdWlsZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxodG1sXHBhcnNlclxIVE1MVmlld1NvdXJjZVBhcnNlci5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXE5lc3RpbmdMZXZlbElu
Y3JlbWVudGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxU
ZXh0RG9jdW1lbnRQYXJzZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxc
cGFyc2VyXFRleHRWaWV3U291cmNlUGFyc2VyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYzNhZGVk
OGYzMjhmNzJmYzc0MDM0Zjk3MGRiYmI5OWQxZGE3Y2FhZC4uOGJkOTdiM2FjZGIxNGRlMDVlOTZh
NmQxNTc3Nzk3NWNkZWE0NzgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTI2MTIsNiArMTI2MTIsOSBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcSFRNTFZpZXdTb3VyY2VQ
YXJzZXIuaCI+CiAgICAgICA8RmlsdGVyPmh0bWxccGFyc2VyPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxJbnB1dFN0cmVh
bVByZXByb2Nlc3Nvci5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8L0ZpbHRlcj4KKyAg
ICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXE5l
c3RpbmdMZXZlbEluY3JlbWVudGVyLmgiPgogICAgICAgPEZpbHRlcj5odG1sXHBhcnNlcjwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk1MzgwODE3NzYzMGZiYWQwNzdiODU5MzViMjdl
MGIyNWFlYTdhZjguLmE0YzA2OWFkNTkxMTgxM2I4MWE4MzUxNTM4YmY0Y2FlYmY0MjE5ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE1NjEsNiArMTU2MSw4IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcCAqLzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0
cmVhbUhhbmRsZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNl
LmggKi87IH07CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAq
LzsgfTsKKwkJNTExMjkzNUYzRDU0QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5j
cHAgKi87IH07CisJCTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
LmggKi87IH07CiAJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxMzBE
QzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suY3BwICovOyB9OwogCQk1MTFGMjMxODBEQzE2
MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFz
ay5oICovOyB9OwogCQk1MTFGMjMxOTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMx
NTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5jcHAgKi87IH07CkBAIC0zODE1LDgg
KzM4MTcsNiBAQAogCQk5QkY5QTg4MTE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRy
b2xzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUJGOUE4N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uaCAqLzsgfTsKIAkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUYwRDZCMkMxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
Y3BwICovOyB9OwogCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUYwRDZCMkQxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCAqLzsg
fTsKLQkJNTExMjkzNUYzRDU0QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAg
Ki87IH07Ci0JCTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Lmgg
Ki87IH07CiAJCTlGM0I5NDdFMTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGM0I5NDdE
MTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCAqLzsgfTsKIAkJOUY2RkMx
OTYxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNkZDMTk0MTEyMkU4MkEwMEU4MDE5
NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5jcHAgKi87IH07CiAJCTlGNkZDMTk3MTEyMkU4MkEwMEU4
MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUY2RkMxOTUxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVn
U2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTg5NzYsNiArODk3Niw4IEBACiAJCTUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1
NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
MTI5MzYyM0Q4NUI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGMjMxMzBEQzE2MERBMDA0RjAw
MzIgLyogU3RvcmFnZVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3RvcmFnZVRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGMjMx
NDBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZVRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTExRjIzMTUwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUaHJlYWQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTI4Miw4ICsxMTI4NCw2IEBACiAJCTlCRjlBODdGMTY0OERE
MkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYwRDZCMkMxMjFCRkVCQTAwNkMwMjg4IC8qIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTlGMEQ2QjJEMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclByb2ZpbGVyQWdl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExMjkzNjEzRDZEQjRCNTJGQUY5
NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlGM0I5NDdEMTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0SGVhcFNuYXBzaG90Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGNkZDMTk0MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3Jp
cHREZWJ1Z1NlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JpcHREZWJ1Z1NlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGNkZD
MTk1MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHREZWJ1Z1NlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTE3MTcsNiArMTE3MTcsNyBAQAogCQlBODc0OEJERjEyQ0JGMkRDMDAx
RkJBNDEgLyogSGFzaFRvb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhh
c2hUb29scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODc0OEQ2NjEyQ0MzNzYz
MDAxRkJBNDEgLyogSW1hZ2VPcmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbWFnZU9yaWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4NzQ4RDc0MTJDQzNGODkwMDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlT3JpZW50YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODgwNUFGMTE2Qzk2QUVBMDAwRTlEOTggLyogSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3IuaDsgcGF0aCA9IHBhcnNlci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODgyREExRjE1OTM4NDZBMDAwMTE1RUQgLyogQ1NTVG9T
dHlsZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NUb1N0
eWxlTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4MkRBMjIxNTkzODQ4
RDAwMDExNUVEIC8qIENTU1RvU3R5bGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTVG9TdHlsZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODgz
REYyNTBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0ODY0LDkgKzE0ODY1LDkgQEAKIAkJMTRERkIzM0YwQTdE
Rjc2MzAwMThGNzY5IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQ0RBOThEQ0QxNjAxNTE1QzAwRkVBM0IxIC8qIEVuY3J5
cHRlZE1lZGlhICovLAogCQkJCUE4M0I3OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovLAog
CQkJCUE4M0I3OTBFMENDQUZGOTcwMDBCMDgyNSAvKiBDU1MgKi8sCisJCQkJQ0RBOThEQ0QxNjAx
NTE1QzAwRkVBM0IxIC8qIEVuY3J5cHRlZE1lZGlhICovLAogCQkJCUE4M0I3OTEyMENDQjAwM0Yw
MDBCMDgyNSAvKiBFdmVudHMgKi8sCiAJCQkJODk4Nzg1NzYxMjJDQTFEQTAwM0FBQkRBIC8qIEZp
bGVBUEkgKi8sCiAJCQkJQTgzQjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8qIEhUTUwgKi8sCkBAIC0x
NTU2OSwxMCArMTU1NzAsMTAgQEAKIAkJCQlBN0JGN0VERTE0QzkxNzVBMDAxNDQ4OUQgLyogSW50
ZXJuYWxTZXR0aW5ncy5pZGwgKi8sCiAJCQkJQTdCRTdFREQxNEM5MTc1QTAwMTQ0ODlEIC8qIE1h
bGxvY1N0YXRpc3RpY3MuaCAqLywKIAkJCQlBN0JFN0VERTE0QzkxNzVBMDAxNDQ4OUQgLyogTWFs
bG9jU3RhdGlzdGljcy5pZGwgKi8sCi0JCQkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5
cGVDb252ZXJzaW9ucy5oICovLAotCQkJCUVCMDgxQ0Q5MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBl
Q29udmVyc2lvbnMuaWRsICovLAogCQkJCUNEQzI2QjNDMTYwQTYyQjAwMDI2NzU3QiAvKiBNb2Nr
Q0RNLmNwcCAqLywKIAkJCQlDREMyNkIzRDE2MEE2MkIwMDAyNjc1N0IgLyogTW9ja0NETS5oICov
LAorCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMuaCAqLywK
KwkJCQlFQjA4MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmlkbCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gdGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xODc0OCw2ICsxODc0OSw3IEBACiAJCQkJOTc3QjM3MjIxMjI4NzIxNzAwQjgxRkY4IC8qIEhU
TUxUcmVlQnVpbGRlci5oICovLAogCQkJCTk3N0IzODYwMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1M
Vmlld1NvdXJjZVBhcnNlci5jcHAgKi8sCiAJCQkJOTc3QjM4NjExMjI4ODNFOTAwQjgxRkY4IC8q
IEhUTUxWaWV3U291cmNlUGFyc2VyLmggKi8sCisJCQkJQTg4MDVBRjExNkM5NkFFQTAwMEU5RDk4
IC8qIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmggKi8sCiAJCQkJOEEzMDlDOUUxMjM5NTBCRTAw
Q0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi8sCiAJCQkJOTdCQzg0ODExMjM2
RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5jcHAgKi8sCiAJCQkJOTdCQzg0ODIx
MjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5oICovLApAQCAtMjE1MzgsMTIg
KzIxNTQwLDEyIEBACiAJCQkJOTM1QzQ3NjcwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91
c2VFdmVudC5oICovLAogCQkJCUM1QkFDMTZGMTRFMzBFNDcwMDAwODgzNyAvKiBQbGF0Zm9ybVBh
c3RlYm9hcmQuaCAqLywKIAkJCQlCQ0VDMDFENjBDMjc0RUI0MDA5RjRFQzkgLyogUGxhdGZvcm1T
Y3JlZW4uaCAqLywKLQkJCQkyOTdCRTNEOTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplci5jcHAgKi8sCi0JCQkJMjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAqLywKLQkJCQkyNTI3Q0M5MzE2QkY5MkVDMDA5RERB
QzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8sCi0JCQkJMjUyN0NDOTIx
NkJGOTBCNDAwOUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKIAkJ
CQkyNTI3Q0M5NTE2QkY5NUREMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2UuY3BwICovLAogCQkJCTI1MjdDQzkxMTZCRjhCQTEwMDlEREFDMCAvKiBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oICovLAorCQkJCTI1MjdDQzkzMTZCRjkyRUMwMDlEREFD
MCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCAqLywKKwkJCQkyNTI3Q0M5MjE2
QkY5MEI0MDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5oICovLAorCQkJ
CTI5N0JFM0Q5MTZDMDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNw
cCAqLywKKwkJCQkyOUU0RDhERjE2QjA5NDBGMDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplci5oICovLAogCQkJCTFBRDhGODFBMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwICovLAogCQkJCTFBRDhGODE5MTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCAqLywKIAkJCQk5MzVDNDc2QTA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZv
cm1XaGVlbEV2ZW50LmggKi8sCkBAIC0yMTYzMyw2ICsyMTYzNSw4IEBACiAJCUNEQTk4REJEMTYw
MTRFMDgwMEZFQTNCMSAvKiBlbmNyeXB0ZWRtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0RBOThFMDkxNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5j
cHAgKi8sCisJCQkJQ0RBOThFMEExNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5oICovLAogCQkJCUNE
QTk4REQ1MTYwMjVCRUQwMEZFQTNCMSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgKi8sCiAJ
CQkJQ0RBOThERDYxNjAyNUJFRDAwRkVBM0IxIC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmggKi8s
CiAJCQkJQ0RBOThERDcxNjAyNUJFRTAwRkVBM0IxIC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50Lmlk
bCAqLywKQEAgLTIxNjQ1LDggKzIxNjQ5LDYgQEAKIAkJCQlDREE5OERDNzE2MDE0RjJDMDBGRUEz
QjEgLyogTWVkaWFLZXlTZXNzaW9uLmNwcCAqLywKIAkJCQlDREE5OERDODE2MDE0RjJDMDBGRUEz
QjEgLyogTWVkaWFLZXlTZXNzaW9uLmggKi8sCiAJCQkJQ0RBOThEQzkxNjAxNEY0MDAwRkVBM0Ix
IC8qIE1lZGlhS2V5U2Vzc2lvbi5pZGwgKi8sCi0JCQkJQ0RBOThFMDkxNjAzQ0Q1OTAwRkVBM0Ix
IC8qIENETS5jcHAgKi8sCi0JCQkJQ0RBOThFMEExNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5oICov
LAogCQkJCUNEQTk4RTBDMTYwM0NGM0MwMEZFQTNCMSAvKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETVByaXZhdGUuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZW5jcnlwdGVkbWVkaWE7CkBAIC0y
MzA4Nyw4ICsyMzA4OSw4IEBACiAJCQkJNTNFRDNGREYxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1OTUxNEM5
MzVBQjAwQTc3RkE0IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RUJGNTEyMUQxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTW9ja0NE
TS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4MTVDMUYxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNv
cmVUZXN0U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjgyMiw4ICsyNjgyNCw4IEBACiAJ
CQkJNTNFRDNGREUxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRl
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzQwQjU5NzE0QzkzNUFGMDBBNzdGQTQgLyogSlNN
YWxsb2NTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUVCRjUxMjFDMTY5NjQ5NkMw
MDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0MTgx
NUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEQzI2QjQwMTYwQThDQzYwMDI2NzU3QiAvKiBNb2NrQ0RNLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBv
cnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjk4MCw2ICsyNjk4Miw3IEBACiAJCQkJNDk0ODRG
Q0QxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3OUQwODZDMTYyRjIxRjkwMERCODY1OCAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjU1MEI2OUQwOTlERjAyNzAwOTBENzgxIC8qIENEQVRBU2Vj
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OEUwQjE2MDNDRDYwMDBGRUEzQjEgLyog
Q0RNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QkM2OURDMTUwNUYwNzYwMDFCNzRBQyAvKiBD
aGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNUZGRTEyQjAy
Njc2MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkQzMTYwMDExMkIwMjY3NjAwQzFBMzU5IC8qIENoYW5uZWxTcGxpdHRlck5vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yODI5MSw3ICsyODI5NCwxMiBAQAogCQkJCUNEMjdGNkU1MTQ1NzY4NUEw
MDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDIz
QTEyNTEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjE0MTgwQ0Q2ODI2OTAwRkFEQTc1IC8qIEpTTWVkaWFF
cnJvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OERBMzE2MDE0NjQxMDBGRUEzQjEgLyog
SlNNZWRpYUtleUVycm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQjg1OUZBMTYwRDQ5NDkw
MEU1QjA3RiAvKiBKU01lZGlhS2V5RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThE
REYxNjAyNkEzNzAwRkVBM0IxIC8qIEpTTWVkaWFLZXlNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RBOThERTAxNjAyNkEzNzAwRkVBM0IxIC8qIEpTTWVkaWFLZXlOZWVkZWRF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OEUwNDE2MDM5RTFBMDBGRUEzQjEgLyog
SlNNZWRpYUtleXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThFMDYxNjAzOUUxRjAwRkVB
M0IxIC8qIEpTTWVkaWFLZXlTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDM0MzOUI2
MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDY0RTA2QzEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODcxMCw2ICsyODcxOCwxMCBAQAogCQkJCTRFMTk1OTIx
MEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwN0E2RDFFQjE0OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDREI4NTlGNzE2MEQ0OEE0MDBFNUIwN0YgLyogTWVkaWFL
ZXlFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OEREODE2MDI1QkVGMDBGRUEzQjEg
LyogTWVkaWFLZXlNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QxQjRBNjUx
NjA3ODZBRTAwMjgyREY5IC8qIE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0RBOThFMEQxNjAzRkU0QTAwRkVBM0IxIC8qIE1lZGlhS2V5cy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDREE5OEUwRTE2MDNGRTU4MDBGRUEzQjEgLyogTWVkaWFLZXlTZXNzaW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE4MDA5MEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjEzRTMwQ0Q2ODE5RjAwRkFEQTc1IC8qIE1l
ZGlhUGxheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MkM4QjExMTMxQzUxODYwMEE0RkNF
OSAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yODg1NSwxMCArMjg4NjcsMTAgQEAKIAkJCQk0MUJGNzAwRjBGRTg2RjYxMDA1RThERUMgLyog
UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU5ODkw
MkUxNEU5QjBGODAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDOTREMTA4MEMyNzRGODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNjcmVlbk1hYy5t
bSBpbiBTb3VyY2VzICovLAotCQkJCTI5MzQ5NDBBMTZDMDJDMDcwMDkwMTMxOCAvKiBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5MzQ5NDBCMTZD
MDJDMEEwMDkwMTMxOCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkyOTdCRTNEODE2QzAzQ0NFMDAzMzE2QkQgLyogUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTI5MzQ5NDBBMTZDMDJDMDcw
MDkwMTMxOCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTI5N0JFM0RBMTZDMDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5N0JFM0Q4MTZDMDNDQ0UwMDMzMTZCRCAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFEOEY4
MUMxMUNBQjlFOTAwRTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOUM2RTRGMzBENzQ1RTQ4MDA2NDQyRTkgLyogUGx1Z2luRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzIwNUFCQjEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY3MSwxNiArMjk2ODMsNiBAQAogCQkJCTk3N0UyRTBF
MTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3
N0UyRTBFMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUNEQTk4REEzMTYwMTQ2NDEwMEZFQTNCMSAvKiBKU01lZGlhS2V5RXJy
b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThERDgxNjAyNUJFRjAwRkVBM0IxIC8qIE1l
ZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RERGMTYwMjZB
MzcwMEZFQTNCMSAvKiBKU01lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUNEQTk4REUwMTYwMjZBMzcwMEZFQTNCMSAvKiBKU01lZGlhS2V5TmVlZGVkRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThFMDQxNjAzOUUxQTAwRkVBM0IxIC8qIEpTTWVkaWFL
ZXlzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RTA2MTYwMzlFMUYwMEZFQTNCMSAvKiBK
U01lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREE5OEUwQjE2MDNDRDYw
MDBGRUEzQjEgLyogQ0RNLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RTBEMTYwM0ZFNEEw
MEZFQTNCMSAvKiBNZWRpYUtleXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThFMEUxNjAz
RkU1ODAwRkVBM0IxIC8qIE1lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlD
RDFCNEE2NTE2MDc4NkFFMDAyODJERjkgLyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91
bmRIVE1MUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRI
VE1MUGFyc2VyLmNwcAppbmRleCBkYWViZGI4N2U5YjQ0MjgwNGFhNmUxNDdlMGYwYjM0MzNlYjIw
ZGE4Li45YmExZDA1MjQ3YzgyNmFjOGFjOWZhZTQ3YTk0ZjBkNDRhYzA0MzA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCkBA
IC0xMDYsMTIgKzEwNiw4IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OmZvcmNlUGxhaW50
ZXh0Rm9yVGV4dERvY3VtZW50KCkKIAogdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6bWFya0Vu
ZE9mRmlsZSgpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyCi0gICAgLy8gb25jZSBJbnB1dFN0cmVhbVByZXBy
b2Nlc3NvciBpcyBzcGxpdCBvZmYgaW50byBpdHMgb3duIGhlYWRlci4KLSAgICBjb25zdCBMQ2hh
ciBlbmRPZkZpbGVNYXJrZXIgPSAwOwotCiAgICAgQVNTRVJUKCFtX2lucHV0LmN1cnJlbnQoKS5p
c0Nsb3NlZCgpKTsKLSAgICBtX2lucHV0LmFwcGVuZChTdHJpbmcoJmVuZE9mRmlsZU1hcmtlciwg
MSkpOworICAgIG1faW5wdXQuYXBwZW5kKFN0cmluZygma0VuZE9mRmlsZU1hcmtlciwgMSkpOwog
ICAgIG1faW5wdXQuY2xvc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTElucHV0U3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MSW5wdXRTdHJlYW0uaAppbmRleCA1OTMyOTBiY2Y1OGVhMTYwZmU2ZmJjNWZmMGVjYzk1MmYw
Yjk0YjM1Li40NmZkOGM0Mzg3NGQwN2Y2OTgwZGJkMjE3ZWIyN2U1OGNiZDkwYWZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBIVE1MSW5wdXRTdHJlYW1faAogI2RlZmluZSBIVE1MSW5wdXRTdHJlYW1f
aAogCisjaW5jbHVkZSAiSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIKICNpbmNsdWRlICJTZWdt
ZW50ZWRTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzIsMTAgKzczLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBtYXJrRW5kT2ZGaWxlKCkKICAgICB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCB1c2UgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1h
cmtlcgotICAgICAgICAvLyBvbmNlIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIGlzIHNwbGl0IG9m
ZiBpbnRvIGl0cyBvd24gaGVhZGVyLgotICAgICAgICBzdGF0aWMgY29uc3QgTENoYXIgZW5kT2ZG
aWxlTWFya2VyID0gMDsKLSAgICAgICAgbV9sYXN0LT5hcHBlbmQoU2VnbWVudGVkU3RyaW5nKFN0
cmluZygmZW5kT2ZGaWxlTWFya2VyLCAxKSkpOworICAgICAgICBtX2xhc3QtPmFwcGVuZChTZWdt
ZW50ZWRTdHJpbmcoU3RyaW5nKCZrRW5kT2ZGaWxlTWFya2VyLCAxKSkpOwogICAgICAgICBtX2xh
c3QtPmNsb3NlKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
b2tlbml6ZXIuY3BwCmluZGV4IDM5YTQxNjNhN2UyMzRmOWU5ODE4MzliOWVkOGY0MzRhM2NlNTQx
Y2IuLjNjNmM0NGNiNjkxYTAzNjk5ZDNhOGFjNDU0Y2U3NzFkYjczODAwZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0yNTMsNyArMjUzLDcg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oVGFnT3BlblN0YXRlKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFy
a2VyKQorICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAg
ICAgICByZXR1cm4gZW1pdEVuZE9mRmlsZShzb3VyY2UpOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CkBAIC0yNzQsNyArMjc0LDcgQEAgYm9vbCBIVE1M
VG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ2hhcmFjdGVyUmVmZXJlbmNlSW5S
Q0RBVEFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc8JykKICAgICAgICAgICAgIEhU
TUxfQURWQU5DRV9UTyhSQ0RBVEFMZXNzVGhhblNpZ25TdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYg
KGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAg
IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAgICAgICByZXR1cm4gZW1p
dEVuZE9mRmlsZShzb3VyY2UpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGJ1ZmZlckNo
YXJhY3RlcihjYyk7CkBAIC0yOTMsNyArMjkzLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRN
TF9CRUdJTl9TVEFURShSQVdURVhUU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICc8JykKICAg
ICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhSQVdURVhUTGVzc1RoYW5TaWduU3RhdGUpOwotICAg
ICAgICBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFy
a2VyKQorICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUoc291cmNlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwpAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgSFRNTFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRv
a2VuKQogICAgIEhUTUxfQkVHSU5fU1RBVEUoU2NyaXB0RGF0YVN0YXRlKSB7CiAgICAgICAgIGlm
IChjYyA9PSAnPCcpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0YUxlc3NU
aGFuU2lnblN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikKICAgICAgICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKQEAgLTMxNSwxMCAr
MzE1LDkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgRU5EX1NUQVRFKCkKIAogICAgIEhUTUxfQkVH
SU5fU1RBVEUoUExBSU5URVhUU3RhdGUpIHsKLSAgICAgICAgaWYgKGNjID09IElucHV0U3RyZWFt
UHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGlmIChjYyA9PSBrRW5kT2ZG
aWxlTWFya2VyKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUoc291cmNlKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKKyAgICAgICAgYnVm
ZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKFBMQUlOVEVYVFN0YXRl
KTsKICAgICB9CiAgICAgRU5EX1NUQVRFKCkKQEAgLTM2MCw3ICszNTksNyBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIHBhcnNl
RXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhEYXRhU3RhdGUpOwotICAgICAg
ICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAg
ICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsK
ICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignLycpOwpAQCAtMzg0LDcgKzM4Myw3IEBAIGJv
b2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChpc0FTQ0lJVXBwZXIoY2MpKSB7CiAgICAg
ICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb05hbWUodG9Mb3dlckNhc2UoY2MpKTsKICAgICAgICAg
ICAgIEhUTUxfQURWQU5DRV9UTyhUYWdOYW1lU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAg
ICB9IGVsc2UgewpAQCAtNjE3LDcgKzYxNiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAg
ICAgSFRNTF9BRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVkRGFzaFN0YXRlKTsKICAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSAnPCcpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0
RGF0YUVzY2FwZWRMZXNzVGhhblNpZ25TdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgZWxzZSBp
ZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwog
ICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNl
IHsKQEAgLTYzMyw3ICs2MzIsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIEhUTUxf
QURWQU5DRV9UTyhTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoU3RhdGUpOwogICAgICAgICB9IGVs
c2UgaWYgKGNjID09ICc8JykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhTY3JpcHREYXRh
RXNjYXBlZExlc3NUaGFuU2lnblN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChj
YyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAg
ICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpA
QCAtNjUyLDcgKzY1MSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9
PSAnPicpIHsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBI
VE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9
PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJv
cigpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAg
fSBlbHNlIHsKQEAgLTc2Niw3ICs3NjUsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tl
bihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfSBl
bHNlIGlmIChjYyA9PSAnPCcpIHsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAg
ICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhh
blNpZ25TdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhU
TUxfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC03ODMsNyAr
NzgyLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJzwnKSB7
CiAgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgSFRNTF9BRFZB
TkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUpOwotICAgICAg
ICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAg
ICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtODAzLDcgKzgwMiw3IEBAIGJvb2wgSFRNTFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRv
a2VuKQogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgYnVmZmVy
Q2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhTY3JpcHREYXRhU3Rh
dGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09O
U1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtODU3LDcgKzg1Niw3IEBA
IGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVOYW1l
KHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKICAgICAgICAgICAgIG1fdG9r
ZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAgICAg
SFRNTF9BRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
Y2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAg
ICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNl
RXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAg
ICAgIH0gZWxzZSB7CkBAIC04OTAsNyArODg5LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
IH0gZWxzZSBpZiAoaXNBU0NJSVVwcGVyKGNjKSkgewogICAgICAgICAgICAgbV90b2tlbi0+YXBw
ZW5kVG9BdHRyaWJ1dGVOYW1lKHRvTG93ZXJDYXNlKGNjKSk7CiAgICAgICAgICAgICBIVE1MX0FE
VkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxz
ZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigp
OwogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmlidXRlTmFtZShzb3VyY2UubnVtYmVyT2ZD
aGFyYWN0ZXJzQ29uc3VtZWQoKSk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRh
U3RhdGUpOwpAQCAtOTE5LDcgKzkxOCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2Vu
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAg
bV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVOYW1lKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25z
dW1lZCgpKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZSh0b0xv
d2VyQ2FzZShjYykpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVT
dGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6
OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVN
YXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfUkVD
T05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC05NDgsNyArOTQ3LDcg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAg
ICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUlu
KHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2Ug
aWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAg
ICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBw
YXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewpAQCAtOTY4LDcgKzk2Nyw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAg
ICAgICB9IGVsc2UgaWYgKGNjID09ICcmJykgewogICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxs
b3dlZENoYXJhY3RlciA9ICciJzsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDaGFyYWN0
ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZhbHVlU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5lbmRBdHRyaWJ1dGVWYWx1ZShzb3VyY2UubnVt
YmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9J
TihEYXRhU3RhdGUpOwpAQCAtOTg2LDcgKzk4NSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICB9IGVsc2UgaWYgKGNjID09ICcmJykgewogICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxsb3dl
ZENoYXJhY3RlciA9ICdcJyc7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ2hhcmFjdGVy
UmVmZXJlbmNlSW5BdHRyaWJ1dGVWYWx1ZVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9
PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJv
cigpOwogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJl
ck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4o
RGF0YVN0YXRlKTsKQEAgLTEwMDcsNyArMTAwNiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICB9IGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmli
dXRlVmFsdWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0
YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tl
bi0+ZW5kQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkp
OwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKQEAgLTEwNTcsNyAr
MTA1Niw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1
bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKICAgICAgICAgZWxz
ZSBpZiAobV9vcHRpb25zLnVzZVByZUhUTUw1UGFyc2VyUXVpcmtzICYmIGNjID09ICc8JykKICAg
ICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVy
U3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJl
cHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0Vu
ZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAg
SFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTEwNzEs
NyArMTA3MCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJz4nKSB7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5zZXRTZWxmQ2xvc2luZygpOwogICAgICAgICAgICAgcmV0dXJu
IGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsK
LSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZG
aWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikg
ewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVf
SU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTEwOTAsNyArMTA4OSw3IEBAIGJv
b2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1M
VG9rZW4mIHRva2VuKQogICAgIEhUTUxfQkVHSU5fU1RBVEUoQ29udGludWVCb2d1c0NvbW1lbnRT
dGF0ZSkgewogICAgICAgICBpZiAoY2MgPT0gJz4nKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRB
bmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAg
ICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtl
cikKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKICAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRh
dGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9D
b21tZW50KGNjKTsKQEAgLTExMzgsNyArMTEzNyw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6
OkRhdGFTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFT
dGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xMTU0LDcgKzExNTMsNyBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRv
a2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXpl
clN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTE2OCw3ICsxMTY3LDcg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShDb21tZW50U3RhdGUpIHsK
ICAgICAgICAgaWYgKGNjID09ICctJykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDb21t
ZW50RW5kRGFzaFN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5k
T2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTE4MSw3ICsxMTgwLDcgQEAgYm9vbCBIVE1M
VG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShDb21tZW50RW5kRGFzaFN0YXRlKSB7CiAgICAg
ICAgIGlmIChjYyA9PSAnLScpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ29tbWVudEVu
ZFN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6
OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewpAQCAtMTIwMiw3ICsxMjAxLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVy
OjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0Nv
bW1lbnQoJy0nKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDb21tZW50RW5kU3RhdGUp
OwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRP
ZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2Vy
KSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFu
ZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAg
ICAgICB9IGVsc2UgewpAQCAtMTIyMyw3ICsxMjIyLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ29tbWVudEVuZERhc2hTdGF0ZSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0gJz4nKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihz
b3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAg
ICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRN
TFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTIzOSw3
ICsxMjM4LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShET0NUWVBF
U3RhdGUpIHsKICAgICAgICAgaWYgKGlzVG9rZW5pemVyV2hpdGVzcGFjZShjYykpCiAgICAgICAg
ICAgICBIVE1MX0FEVkFOQ0VfVE8oQmVmb3JlRE9DVFlQRU5hbWVTdGF0ZSk7Ci0gICAgICAgIGVs
c2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsK
KyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAg
cGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5ET0NUWVBFKCk7CiAgICAg
ICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwpAQCAtMTI2Miw3ICsxMjYxLDcgQEAg
Ym9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhU
TUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkRPQ1RZUEUoKTsKICAg
ICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4g
ZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwot
ICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZp
bGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7
CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkRP
Q1RZUEUoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CkBAIC0xMjgy
LDcgKzEyODEsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZSBpZiAoaXNBU0NJSVVw
cGVyKGNjKSkgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9OYW1lKHRvTG93ZXJDYXNl
KGNjKSk7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oRE9DVFlQRU5hbWVTdGF0ZSk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmls
ZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsK
ICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNl
UXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwg
SFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpAQCAtMTI5OCw3ICsxMjk3LDcgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQWZ0ZXJET0NUWVBFTmFt
ZVN0YXRlKTsKICAgICAgICAgaWYgKGNjID09ICc+JykKICAgICAgICAgICAgIHJldHVybiBlbWl0
QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAg
ICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAg
ICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3Mo
KTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9r
ZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CkBAIC0xMzQyLDcgKzEzNDEsNyBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNl
dEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJj
ZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6
RGF0YVN0YXRlKTsKQEAgLTEzNjcsNyArMTM2Niw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3Mo
KTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5p
emVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpA
QCAtMTM4Niw3ICsxMzg1LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0
YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tl
bi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1l
SW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CkBAIC0xNDA0LDcgKzE0
MDMsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNv
dXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAg
ICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVN
YXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1
aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhU
TUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAgLTE0MjgsNyArMTQyNyw3IEBAIGJvb2wg
SFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9r
ZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tl
bi0+c2V0U3lzdGVtSWRlbnRpZmllclRvRW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgIEhUTUxf
QURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRlKTsKLSAg
ICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxl
TWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewog
ICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VR
dWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBI
VE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CkBAIC0xNDUxLDcgKzE0NTAsNyBAQCBib29s
IEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRv
a2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnXCcnKSB7CiAgICAgICAgICAg
ICBtX3Rva2VuLT5zZXRTeXN0ZW1JZGVudGlmaWVyVG9FbXB0eVN0cmluZygpOwogICAgICAgICAg
ICAgSFRNTF9BRFZBTkNFX1RPKERPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3Rh
dGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5z
ZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihz
b3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAgLTE0NzgsNyArMTQ3Nyw3
IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAg
ICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5k
UmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAg
IH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtl
cikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAg
ICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtz
KCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRv
a2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpAQCAtMTUwMyw3ICsxNTAyLDcgQEAgYm9vbCBIVE1M
VG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5z
ZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3Vy
Y2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChj
YyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAg
IH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VF
cnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAg
ICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6
OkRhdGFTdGF0ZSk7CkBAIC0xNTIyLDcgKzE1MjEsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtz
KCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChj
YyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAg
ICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVt
aXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsK
QEAgLTE1NDAsNyArMTUzOSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VF
cnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAg
ICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRh
dGFTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZp
bGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9r
ZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3Vt
ZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpAQCAtMTU1Niw3ICsx
NTU1LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQWZ0
ZXJET0NUWVBFU3lzdGVtSWRlbnRpZmllclN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0g
Jz4nKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tl
bml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9
PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRB
bmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAg
LTE1NzAsNyArMTU2OSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgIEhUTUxfQkVHSU5fU1RBVEUo
Qm9ndXNET0NUWVBFU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICc+JykKICAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFT
dGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIp
CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQm9ndXNET0NU
WVBFU3RhdGUpOwogICAgIH0KQEAgLTE1NzksNyArMTU3OCw3IEBAIGJvb2wgSFRNTFRva2VuaXpl
cjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQog
ICAgIEhUTUxfQkVHSU5fU1RBVEUoQ0RBVEFTZWN0aW9uU3RhdGUpIHsKICAgICAgICAgaWYgKGNj
ID09ICddJykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDREFUQVNlY3Rpb25SaWdodFNx
dWFyZUJyYWNrZXRTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJl
cHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGVsc2UgaWYgKGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpCiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwog
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYWE4ZDIyZDAyNzg5N2JjZGY5OTQzMDA1ZDM3NDA4ZDA0NWUyMGI0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3IuaApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9y
Y2ggTW9iaWxlLCBJbmMuIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yX2gKKyNkZWZpbmUgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3JfaAorCisjaW5jbHVkZSAi
U2VnbWVudGVkU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY29uc3QgVUNoYXIga0VuZE9mRmlsZU1hcmtlciA9IDA7CisKKy8v
IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXBy
b2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbQordGVtcGxhdGUgPHR5cGVuYW1lIFRva2VuaXplcj4K
K2NsYXNzIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcik7CitwdWJsaWM6CisgICAgSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3IoVG9rZW5pemVyKiB0b2tlbml6ZXIpCisgICAgICAgIDogbV90b2tlbml6ZXIodG9r
ZW5pemVyKQorICAgIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5M
SU5FIFVDaGFyIG5leHRJbnB1dENoYXJhY3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dElucHV0
Q2hhcmFjdGVyOyB9CisKKyAgICAvLyBSZXR1cm5zIHdoZXRoZXIgd2Ugc3VjY2VlZGVkIGluIHBl
ZWtpbmcgYXQgdGhlIG5leHQgY2hhcmFjdGVyLgorICAgIC8vIFRoZSBvbmx5IHdheSB3ZSBjYW4g
ZmFpbCB0byBwZWVrIGlzIGlmIHRoZXJlIGFyZSBubyBtb3JlCisgICAgLy8gY2hhcmFjdGVycyBp
biB8c291cmNlfCAoYWZ0ZXIgY29sbGFwc2luZyBcclxuLCBldGMpLgorICAgIEFMV0FZU19JTkxJ
TkUgYm9vbCBwZWVrKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQorICAgIHsKKyAgICBQZWVrQWdh
aW46CisgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1cnJlbnRDaGFyKCk7
CisKKyAgICAgICAgLy8gRXZlcnkgYnJhbmNoIGluIHRoaXMgZnVuY3Rpb24gaXMgZXhwZW5zaXZl
LCBzbyB3ZSBoYXZlIGEKKyAgICAgICAgLy8gZmFzdC1yZWplY3QgYnJhbmNoIGZvciBjaGFyYWN0
ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFsCisgICAgICAgIC8vIGhhbmRsaW5nLiBQbGVh
c2UgcnVuIHRoZSBwYXJzZXIgYmVuY2htYXJrIHdoZW5ldmVyIHlvdSB0b3VjaAorICAgICAgICAv
LyB0aGlzIGZ1bmN0aW9uLiBJdCdzIHZlcnkgaG90LgorICAgICAgICBzdGF0aWMgY29uc3QgVUNo
YXIgc3BlY2lhbENoYXJhY3Rlck1hc2sgPSAnXG4nIHwgJ1xyJyB8ICdcMCc7CisgICAgICAgIGlm
IChtX25leHRJbnB1dENoYXJhY3RlciAmIH5zcGVjaWFsQ2hhcmFjdGVyTWFzaykgeworICAgICAg
ICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcbicg
JiYgbV9za2lwTmV4dE5ld0xpbmUpIHsKKyAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0g
ZmFsc2U7CisgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROZXdsaW5lQW5kVXBkYXRlTGlu
ZU51bWJlcigpOworICAgICAgICAgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSBz
b3VyY2UuY3VycmVudENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9uZXh0SW5wdXRD
aGFyYWN0ZXIgPT0gJ1xyJykgeworICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSAn
XG4nOworICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSB0cnVlOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGUgc3BlYyBpbmRpY2F0ZXMgdGhhdCB0aGUgc3Vycm9nYXRlIHBhaXIgcmFu
Z2UgYXMgd2VsbCBhcworICAgICAgICAgICAgLy8gYSBudW1iZXIgb2Ygc3BlY2lmaWMgY2hhcmFj
dGVyIHZhbHVlcyBhcmUgcGFyc2UgZXJyb3JzIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQKKyAgICAg
ICAgICAgIC8vIGJ5IHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIuIFdlIHN1c3BlY3QgdGhpcyBp
cyBhIHByb2JsZW0gd2l0aCB0aGUgc3BlYyBhcyBkb2luZworICAgICAgICAgICAgLy8gdGhhdCBm
aWx0ZXJpbmcgYnJlYWtzIHN1cnJvZ2F0ZSBwYWlyIGhhbmRsaW5nIGFuZCBjYXVzZXMgdXMgbm90
IHRvIG1hdGNoIE1pbmVmaWVsZC4KKyAgICAgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3Rl
ciA9PSAnXDAnICYmICFzaG91bGRUcmVhdE51bGxBc0VuZE9mRmlsZU1hcmtlcihzb3VyY2UpKSB7
CisgICAgICAgICAgICAgICAgaWYgKG1fdG9rZW5pemVyLT5zaG91bGRTa2lwTnVsbENoYXJhY3Rl
cnMoKSkgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5l
KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICBnb3RvIFBl
ZWtBZ2FpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9uZXh0SW5wdXRD
aGFyYWN0ZXIgPSAweEZGRkQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGFyZSBtb3Jl
IGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgYWZ0ZXIgYWR2YW5jaW5nLgorICAgIEFMV0FZU19JTkxJ
TkUgYm9vbCBhZHZhbmNlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQorICAgIHsKKyAgICAgICAg
c291cmNlLmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyKCk7CisgICAgICAgIGlmIChzb3VyY2Uu
aXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gcGVl
ayhzb3VyY2UpOworICAgIH0KKworICAgIGJvb2wgc2tpcE5leHROZXdMaW5lKCkgY29uc3QgeyBy
ZXR1cm4gbV9za2lwTmV4dE5ld0xpbmU7IH0KKworICAgIHZvaWQgcmVzZXQoYm9vbCBza2lwTmV4
dE5ld0xpbmUgPSBmYWxzZSkKKyAgICB7CisgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0g
J1wwJzsKKyAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBza2lwTmV4dE5ld0xpbmU7CisgICAg
fQorCitwcml2YXRlOgorICAgIGJvb2wgc2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIo
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc291
cmNlLmlzQ2xvc2VkKCkgJiYgc291cmNlLmxlbmd0aCgpID09IDE7CisgICAgfQorCisgICAgVG9r
ZW5pemVyKiBtX3Rva2VuaXplcjsKKworICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI25leHQtaW5wdXQtY2hhcmFjdGVyCisgICAgVUNoYXIg
bV9uZXh0SW5wdXRDaGFyYWN0ZXI7CisgICAgYm9vbCBtX3NraXBOZXh0TmV3TGluZTsKK307CisK
K30KKworI2VuZGlmIC8vIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yX2gKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCmluZGV4IDNiM2YzOGFjZTNlZWI0
NGE4NjQxYjJkNGRkY2YyNTgzZDgzMjhiM2UuLmQ2Nzc1ZTMwNTZkODM3OTc3N2RiNWY5MGNkYTYx
ODEzMWMxN2JhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
VG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2Vu
aXplci5jcHAKQEAgLTQyLDE2ICs0MiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZGVmaW5l
IFdFQlZUVF9BRFZBTkNFX1RPKHN0YXRlTmFtZSkgQURWQU5DRV9UTyhXZWJWVFRUb2tlbml6ZXJT
dGF0ZSwgc3RhdGVOYW1lKQogCiBXZWJWVFRUb2tlbml6ZXI6OldlYlZUVFRva2VuaXplcigpCisg
ICAgOiBtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yKHRoaXMpCiB7CiAgICAgcmVzZXQoKTsKIH0K
IAotdGVtcGxhdGU8PgotaW5saW5lIGJvb2wgTWFya3VwVG9rZW5pemVyQmFzZTxXZWJWVFRUb2tl
biwgV2ViVlRUVG9rZW5pemVyU3RhdGU+OjpzaG91bGRTa2lwTnVsbENoYXJhY3RlcnMoKSBjb25z
dAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4KIGlubGluZSBib29sIHZlY3RvckVxdWFsc1N0cmluZyhjb25zdCBWZWN0b3I8Q2hhcmFj
dGVyVHlwZSwgMzI+JiB2ZWN0b3IsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtOTUsNyAr
OTAsNyBAQCBib29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBXZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICAgICAgV0VCVlRUX0FEVkFO
Q0VfVE8oVGFnU3RhdGUpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJldHVy
biBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6VGFnU3RhdGUp
OwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRP
ZkZpbGVNYXJrZXIpCisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikK
ICAgICAgICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKQEAgLTEyMSw3ICsxMTYsNyBAQCBi
b29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBX
ZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoaXNBU0NJSUFscGhhbnVtZXJp
YyhjYykpIHsKICAgICAgICAgICAgIG1fYnVmZmVyLmFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4o
Y2MpKTsKICAgICAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKEVzY2FwZVN0YXRlKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFy
a2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAg
ICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9DaGFyYWN0ZXIobV9idWZmZXIpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUoc291cmNlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTE0
NSw3ICsxNDAsNyBAQCBib29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoV1RG
Ojppc0FTQ0lJRGlnaXQoY2MpKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpblRpbWVzdGFt
cFRhZyhjYyk7CiAgICAgICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhUaW1lc3RhbXBUYWdTdGF0
ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nIHx8IGNjID09IElucHV0U3RyZWFtUHJl
cHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAn
PicgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgbV90b2tlbi0+YmVn
aW5FbXB0eVN0YXJ0VGFnKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNv
dXJjZSwgV2ViVlRUVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7
CkBAIC0xNjAsNyArMTU1LDcgQEAgYm9vbCBXZWJWVFRUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgV2ViVlRUVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgV0VC
VlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdBbm5vdGF0aW9uU3RhdGUpOwogICAgICAgICBlbHNlIGlm
IChjYyA9PSAnLicpCiAgICAgICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0NsYXNz
U3RhdGUpOwotICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicgfHwgY2MgPT0gSW5wdXRTdHJlYW1Q
cmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4n
IHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJl
c3VtZUluKHNvdXJjZSwgV2ViVlRUVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9OYW1lKGNjKTsKQEAgLTE3Niw3
ICsxNzEsNyBAQCBib29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0g
Jy4nKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdDbGFzcygpOwogICAgICAgICAgICAg
V0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSAnPicgfHwgY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1h
cmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JyB8fCBjYyA9PSBrRW5kT2ZGaWxl
TWFya2VyKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdDbGFzcygpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIFdlYlZUVFRva2VuaXplclN0YXRlOjpE
YXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTg4LDcgKzE4Myw3IEBAIGJvb2wgV2Vi
VlRUVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZUVFRv
a2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQogCiAgICAgV0VCVlRUX0JFR0lOX1NUQVRFKFN0
YXJ0VGFnQW5ub3RhdGlvblN0YXRlKSB7Ci0gICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0g
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAo
Y2MgPT0gJz4nIHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIG1fdG9r
ZW4tPmFkZE5ld0Fubm90YXRpb24oKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1l
SW4oc291cmNlLCBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKICAgICAgICAgfQpA
QCAtMTk4LDcgKzE5Myw3IEBAIGJvb2wgV2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZUVFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQog
ICAgIAogICAgIFdFQlZUVF9CRUdJTl9TVEFURShFbmRUYWdPcGVuU3RhdGUpIHsKLSAgICAgICAg
aWYgKGNjID09ICc+JyB8fCBjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxl
TWFya2VyKSB7CisgICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtl
cikgewogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5FbmRUYWcoJ1wwJyk7CiAgICAgICAgICAg
ICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgV2ViVlRUVG9rZW5pemVyU3RhdGU6OkRh
dGFTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTIwOCw3ICsyMDMsNyBAQCBib29sIFdlYlZUVFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9r
ZW4pCiAgICAgRU5EX1NUQVRFKCkKIAogICAgIFdFQlZUVF9CRUdJTl9TVEFURShFbmRUYWdTdGF0
ZSkgewotICAgICAgICBpZiAoY2MgPT0gJz4nIHx8IGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0ga0Vu
ZE9mRmlsZU1hcmtlcikKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNl
LCBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKICAgICAgICAgbV90b2tlbi0+YXBw
ZW5kVG9OYW1lKGNjKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRW5kVGFnU3RhdGUpOwpA
QCAtMjE2LDcgKzIxMSw3IEBAIGJvb2wgV2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZUVFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQog
CiAgICAgV0VCVlRUX0JFR0lOX1NUQVRFKFRpbWVzdGFtcFRhZ1N0YXRlKSB7Ci0gICAgICAgIGlm
IChjYyA9PSAnPicgfHwgY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1h
cmtlcikKKyAgICAgICAgaWYgKGNjID09ICc+JyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQog
ICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIFdlYlZUVFRva2VuaXpl
clN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb1RpbWVzdGFtcChj
Yyk7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFRpbWVzdGFtcFRhZ1N0YXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5oCmluZGV4IDBmNDViZmQwZWY2
M2U1MWFhZDdjZWNjM2Q1ZGY1ZjMzYTgxZmYwOGMuLjdjNTI5OWNhYWM4ZDVjOGZhZTUwY2JkZTkw
MTg0ZDVhMjFiOWMyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUVG9rZW5pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tl
bml6ZXIuaApAQCAtMzMsOSArMzMsOSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0j
aW5jbHVkZSAiTWFya3VwVG9rZW5pemVyQmFzZS5oIgotI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmlu
Zy5oIgorI2luY2x1ZGUgIklucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmgiCiAjaW5jbHVkZSAiV2Vi
VlRUVG9rZW4uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTU0LDIwICs1NCw2MiBAQCBwdWJsaWM6CiAgICAgfTsKIH07CiAKLWNsYXNz
IFdlYlZUVFRva2VuaXplciA6IE1hcmt1cFRva2VuaXplckJhc2U8V2ViVlRUVG9rZW4sIFdlYlZU
VFRva2VuaXplclN0YXRlPiB7CitjbGFzcyBXZWJWVFRUb2tlbml6ZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFdlYlZUVFRva2VuaXplcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViVlRUVG9rZW5pemVyPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgV2ViVlRUVG9rZW5pemVyKTsgfQogCisgICAgdHlw
ZWRlZiBXZWJWVFRUb2tlbml6ZXJTdGF0ZSBTdGF0ZTsKKwogICAgIHZvaWQgcmVzZXQoKTsKICAg
ICAKICAgICBib29sIG5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmLCBXZWJWVFRUb2tlbiYpOwog
CisgICAgaW5saW5lIGJvb2wgaGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4oKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fdG9rZW4tPnR5cGUoKSA9PSBXZWJWVFRUb2tlbjo6VHlwZTo6Q2hhcmFj
dGVyOworICAgIH0KKworICAgIGlubGluZSB2b2lkIGJ1ZmZlckNoYXJhY3RlcihVQ2hhciBjaGFy
YWN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQoY2hhcmFjdGVyICE9IGtFbmRPZkZpbGVNYXJr
ZXIpOworICAgICAgICBtX3Rva2VuLT5lbnN1cmVJc0NoYXJhY3RlclRva2VuKCk7CisgICAgICAg
IG1fdG9rZW4tPmFwcGVuZFRvQ2hhcmFjdGVyKGNoYXJhY3Rlcik7CisgICAgfQorCisgICAgaW5s
aW5lIGJvb2wgZW1pdEFuZFJlc3VtZUluKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCB0eXBlbmFt
ZSBTdGF0ZTo6U3RhdGUgc3RhdGUpCisgICAgeworICAgICAgICBtX3N0YXRlID0gc3RhdGU7Cisg
ICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBlbWl0RW5kT2ZGaWxlKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlKQorICAgIHsKKyAgICAgICAgaWYgKGhhdmVCdWZmZXJlZENoYXJhY3Rl
clRva2VuKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgbV9zdGF0ZSA9IFN0
YXRlOjpEYXRhU3RhdGU7CisgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJl
cigpOworICAgICAgICBtX3Rva2VuLT5jbGVhcigpOworICAgICAgICBtX3Rva2VuLT5tYWtlRW5k
T2ZGaWxlKCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgc2hvdWxk
U2tpcE51bGxDaGFyYWN0ZXJzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcml2YXRlOgog
ICAgIFdlYlZUVFRva2VuaXplcigpOwotICAgIAorCisgICAgLy8gbV90b2tlbiBpcyBvd25lZCBi
eSB0aGUgY2FsbGVyLiBJZiBuZXh0VG9rZW4gaXMgbm90IG9uIHRoZSBzdGFjaywKKyAgICAvLyB0
aGlzIG1lbWJlciBtaWdodCBiZSBwb2ludGluZyB0byB1bmFsbG9jYXRlZCBtZW1vcnkuCisgICAg
V2ViVlRUVG9rZW4qIG1fdG9rZW47CisgICAgV2ViVlRUVG9rZW5pemVyU3RhdGU6OlN0YXRlIG1f
c3RhdGU7CisKICAgICBWZWN0b3I8TENoYXIsIDMyPiBtX2J1ZmZlcjsKKworICAgIC8vIDovL3d3
dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jcHJlcHJvY2Vzc2luZy10
aGUtaW5wdXQtc3RyZWFtCisgICAgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I8V2ViVlRUVG9rZW5p
emVyPiBtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUveG1sL3BhcnNlci9NYXJrdXBUb2tlbml6ZXJCYXNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJhc2UuaAppbmRleCAwZmM5YzU2OTBiZjM2
Mjc2ZjYxZjdjMmNlMmMzY2E3NWU1OWJlNGE3Li40Nzc3ZDlhM2YzMjUxMTA0OWI2NGM5NGM4ZDU0
MTgwNGRlOTcyMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1
cFRva2VuaXplckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRv
a2VuaXplckJhc2UuaApAQCAtMjgsOCArMjgsNyBAQAogI2lmbmRlZiBNYXJrdXBUb2tlbml6ZXJC
YXNlX2gKICNkZWZpbmUgTWFya3VwVG9rZW5pemVyQmFzZV9oCiAKLSNpbmNsdWRlICJTZWdtZW50
ZWRTdHJpbmcuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlICJJbnB1
dFN0cmVhbVByZXByb2Nlc3Nvci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpA
QCAtNTUsMTAyICs1NCwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIGJvb2wgc2hvdWxkU2tpcE51
bGxDaGFyYWN0ZXJzKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICAvLyBodHRwOi8vd3d3Lndo
YXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNwcmVwcm9jZXNzaW5nLXRoZS1p
bnB1dC1zdHJlYW0KLSAgICBjbGFzcyBJbnB1dFN0cmVhbVByZXByb2Nlc3NvciB7Ci0gICAgICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKTsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKE1hcmt1cFRva2VuaXplckJhc2U8
VG9rZW4sIFN0YXRlPiogdG9rZW5pemVyKQotICAgICAgICAgICAgOiBtX3Rva2VuaXplcih0b2tl
bml6ZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJlc2V0KCk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBBTFdBWVNfSU5MSU5FIFVDaGFyIG5leHRJbnB1dENoYXJhY3RlcigpIGNvbnN0IHsgcmV0
dXJuIG1fbmV4dElucHV0Q2hhcmFjdGVyOyB9Ci0KLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVy
IHdlIHN1Y2NlZWRlZCBpbiBwZWVraW5nIGF0IHRoZSBuZXh0IGNoYXJhY3Rlci4KLSAgICAgICAg
Ly8gVGhlIG9ubHkgd2F5IHdlIGNhbiBmYWlsIHRvIHBlZWsgaXMgaWYgdGhlcmUgYXJlIG5vIG1v
cmUKLSAgICAgICAgLy8gY2hhcmFjdGVycyBpbiB8c291cmNlfCAoYWZ0ZXIgY29sbGFwc2luZyBc
clxuLCBldGMpLgotICAgICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGVlayhTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSkKLSAgICAgICAgewotICAgICAgICBQZWVrQWdhaW46Ci0gICAgICAgICAgICBt
X25leHRJbnB1dENoYXJhY3RlciA9IHNvdXJjZS5jdXJyZW50Q2hhcigpOwotCi0gICAgICAgICAg
ICAvLyBFdmVyeSBicmFuY2ggaW4gdGhpcyBmdW5jdGlvbiBpcyBleHBlbnNpdmUsIHNvIHdlIGhh
dmUgYQotICAgICAgICAgICAgLy8gZmFzdC1yZWplY3QgYnJhbmNoIGZvciBjaGFyYWN0ZXJzIHRo
YXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFsCi0gICAgICAgICAgICAvLyBoYW5kbGluZy4gUGxlYXNl
IHJ1biB0aGUgcGFyc2VyIGJlbmNobWFyayB3aGVuZXZlciB5b3UgdG91Y2gKLSAgICAgICAgICAg
IC8vIHRoaXMgZnVuY3Rpb24uIEl0J3MgdmVyeSBob3QuCi0gICAgICAgICAgICBzdGF0aWMgY29u
c3QgVUNoYXIgc3BlY2lhbENoYXJhY3Rlck1hc2sgPSAnXG4nIHwgJ1xyJyB8ICdcMCc7Ci0gICAg
ICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgJiB+c3BlY2lhbENoYXJhY3Rlck1hc2sp
IHsKLSAgICAgICAgICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOwotICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobV9u
ZXh0SW5wdXRDaGFyYWN0ZXIgPT0gJ1xuJyAmJiBtX3NraXBOZXh0TmV3TGluZSkgewotICAgICAg
ICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc291
cmNlLmFkdmFuY2VQYXN0TmV3bGluZUFuZFVwZGF0ZUxpbmVOdW1iZXIoKTsKLSAgICAgICAgICAg
ICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1cnJl
bnRDaGFyKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFy
YWN0ZXIgPT0gJ1xyJykgewotICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0g
J1xuJzsKLSAgICAgICAgICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IHRydWU7Ci0gICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoZSBzcGVjIGluZGljYXRlcyB0aGF0IHRoZSBz
dXJyb2dhdGUgcGFpciByYW5nZSBhcyB3ZWxsIGFzCi0gICAgICAgICAgICAgICAgLy8gYSBudW1i
ZXIgb2Ygc3BlY2lmaWMgY2hhcmFjdGVyIHZhbHVlcyBhcmUgcGFyc2UgZXJyb3JzIGFuZCBzaG91
bGQgYmUgcmVwbGFjZWQKLSAgICAgICAgICAgICAgICAvLyBieSB0aGUgcmVwbGFjZW1lbnQgY2hh
cmFjdGVyLiBXZSBzdXNwZWN0IHRoaXMgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNwZWMgYXMgZG9p
bmcKLSAgICAgICAgICAgICAgICAvLyB0aGF0IGZpbHRlcmluZyBicmVha3Mgc3Vycm9nYXRlIHBh
aXIgaGFuZGxpbmcgYW5kIGNhdXNlcyB1cyBub3QgdG8gbWF0Y2ggTWluZWZpZWxkLgotICAgICAg
ICAgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3RlciA9PSAnXDAnICYmICFzaG91bGRUcmVh
dE51bGxBc0VuZE9mRmlsZU1hcmtlcihzb3VyY2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChtX3Rva2VuaXplci0+c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNvdXJjZS5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChzb3VyY2UuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gUGVla0Fn
YWluOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIG1fbmV4dElu
cHV0Q2hhcmFjdGVyID0gMHhGRkZEOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gUmV0dXJu
cyB3aGV0aGVyIHRoZXJlIGFyZSBtb3JlIGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgYWZ0ZXIgYWR2
YW5jaW5nLgotICAgICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgYWR2YW5jZShTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSkKLSAgICAgICAgewotICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRVcGRh
dGVMaW5lTnVtYmVyKCk7Ci0gICAgICAgICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gcGVlayhzb3VyY2Up
OwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBza2lwTmV4dE5ld0xpbmUoKSBjb25zdCB7IHJl
dHVybiBtX3NraXBOZXh0TmV3TGluZTsgfQotCi0gICAgICAgIHZvaWQgcmVzZXQoYm9vbCBza2lw
TmV4dE5ld0xpbmUgPSBmYWxzZSkKLSAgICAgICAgewotICAgICAgICAgICAgbV9uZXh0SW5wdXRD
aGFyYWN0ZXIgPSAnXDAnOwotICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBza2lwTmV4
dE5ld0xpbmU7Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgZW5kT2ZG
aWxlTWFya2VyID0gMDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgc2hvdWxkVHJlYXRO
dWxsQXNFbmRPZkZpbGVNYXJrZXIoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpIGNvbnN0Ci0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBzb3VyY2UuaXNDbG9zZWQoKSAmJiBzb3VyY2UubGVu
Z3RoKCkgPT0gMTsKLSAgICAgICAgfQotCi0gICAgICAgIE1hcmt1cFRva2VuaXplckJhc2U8VG9r
ZW4sIFN0YXRlPiogbV90b2tlbml6ZXI7Ci0KLSAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jbmV4dC1pbnB1dC1jaGFyYWN0ZXIKLSAg
ICAgICAgVUNoYXIgbV9uZXh0SW5wdXRDaGFyYWN0ZXI7Ci0gICAgICAgIGJvb2wgbV9za2lwTmV4
dE5ld0xpbmU7Ci0gICAgfTsKLQogICAgIE1hcmt1cFRva2VuaXplckJhc2UoKSA6IG1faW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3IodGhpcykgeyByZXNldCgpOyB9CiAKICAgICBpbmxpbmUgdm9pZCBi
dWZmZXJDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGNo
YXJhY3RlciAhPSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKTsKKyAg
ICAgICAgQVNTRVJUKGNoYXJhY3RlciAhPSBrRW5kT2ZGaWxlTWFya2VyKTsKICAgICAgICAgbV90
b2tlbi0+ZW5zdXJlSXNDaGFyYWN0ZXJUb2tlbigpOwogICAgICAgICBtX3Rva2VuLT5hcHBlbmRU
b0NoYXJhY3RlcihjaGFyYWN0ZXIpOwogICAgIH0KQEAgLTIwNiw3ICsxMTQsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgVUNoYXIgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcjsKIAogICAgIC8vIGh0
dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nl
c3NpbmctdGhlLWlucHV0LXN0cmVhbQotICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIG1faW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3I7CisgICAgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I8TWFya3Vw
VG9rZW5pemVyQmFzZTxUb2tlbiwgU3RhdGU+ID4gbV9pbnB1dFN0cmVhbVByZXByb2Nlc3NvcjsK
IH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187637</attachid>
            <date>2013-02-11 12:18:47 -0800</date>
            <delta_ts>2013-02-11 12:43:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109411-20130211121518.patch</filename>
            <type>text/plain</type>
            <size>64353</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNDg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk0OTM2MGNlYzM4MTNm
OGNkNmVmYzI3Njg3Y2RmYWI0NzlhNzkyZC4uOGFiZTVjOTY4ZDFhZjVjNzMxMDU2OTI5MTc1YmQ3
MGY1MmU0ZjdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAyLTExICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIFdlYlZUVFRva2VuaXpl
ciBzdG9wIGluaGVyaXRpbmcgZnJvbSBNYXJrdXBUb2tlbml6ZXJCYXNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MTEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBJbnB1dFN0cmVhbVByZXBy
b2Nlc3NvciBpbnRvIGl0cyBvd24gaGVhZGVyIGZpbGUgc28gaXQgY2FuIGJlCisgICAgICAgIHVz
ZWQgYnkgYm90aCBXZWJWVFRUb2tlbml6ZXIgYW5kIEhUTUxUb2tlbml6ZXIuCisKKyAgICAgICAg
QWxzbyBzcGxpdCBvdXQga0VuZE9mRmlsZU1hcmtlciBmcm9tIElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yPFQ+IHNvIHRoYXQKKyAgICAgICAgaXQgY2FuIGJlIHVzZWQgdy9vIGEgc3BlY2lmaWMgaW5z
dGFudGlhdGlvbiBvZiB0aGUgdGVtcGxhdGUgY2xhc3MuCisgICAgICAgIFRoaXMgYWxzbyBtYWRl
IGl0IHBvc3NpYmxlIHRvIGZpeCB0aHJlZSBvbGQgZml4bWVzIGFib3V0IHdhbnRpbmcgdG8gc2hh
cmUKKyAgICAgICAgdGhhdCBjb25zdGFudC4KKworICAgICAgICBBZ2Fpbiwgc2VwYXJhdGluZyBX
ZWJWVFQgY29kZSBmcm9tIE1hcmt1cCogYmFzZSBjbGFzc2VzIG1hZGUgaXQgc2ltcGxlcgorICAg
ICAgICBhdCB0aGUgY29zdCBvZiBhIGxpdHRsZSBjb3B5L3Bhc3RlIGNvZGUuICBXZWJWVFQgdG9r
ZW5pemF0aW9uIGlzIHJlbWFya2FibHkKKyAgICAgICAgc2ltcGxlIGNvbXBhcmVkIHRvIEhUTUwu
CisKKyAgICAgICAgVGhpcyB3aWxsIG1ha2UgaXQgaW1tZWRpYXRlbHkgcG9zc2libGUgdG8gcHVs
bCBNYXJrdXBUb2tlbml6ZXJCYXNlIHVwIGludG8KKyAgICAgICAgSFRNTFRva2VuaXplciBhbmQg
ZnVydGhlciBzaW1wbGlmeSB0aGUgY29kZS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3Qu
YW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MUGFyc2VyOjptYXJrRW5kT2ZGaWxlKToK
KyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dFN0cmVhbTo6bWFya0VuZE9mRmlsZSk6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpu
ZXh0VG9rZW4pOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0lucHV0U3RyZWFtUHJlcHJvY2Vzc29y
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJbnB1dFN0cmVhbVByZXBy
b2Nlc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6SW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3I6Om5leHRJbnB1dENoYXJhY3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0
cmVhbVByZXByb2Nlc3Nvcjo6cGVlayk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcjo6YWR2YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVByZXBy
b2Nlc3Nvcjo6c2tpcE5leHROZXdMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0U3RyZWFt
UHJlcHJvY2Vzc29yOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFN0cmVhbVByZXBy
b2Nlc3Nvcjo6c2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIpOgorICAgICAgICAqIGh0
bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRv
a2VuaXplcjo6V2ViVlRUVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2Vu
aXplcjo6bmV4dFRva2VuKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5o
OgorICAgICAgICAoV2ViVlRUVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRv
a2VuaXplcjo6aGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViVlRUVG9rZW5pemVyOjpidWZmZXJDaGFyYWN0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
VlRUVG9rZW5pemVyOjplbWl0QW5kUmVzdW1lSW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViVlRU
VG9rZW5pemVyOjplbWl0RW5kT2ZGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlZUVFRva2Vu
aXplcjo6c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKToKKyAgICAgICAgKiB4bWwvcGFyc2VyL01h
cmt1cFRva2VuaXplckJhc2UuaDoKKyAgICAgICAgKE1hcmt1cFRva2VuaXplckJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6TWFya3VwVG9rZW5pemVyQmFzZTo6YnVmZmVyQ2hhcmFjdGVyKToKKwog
MjAxMy0wMi0xMSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lOiBpbnZhbGlkYXRlIGFuZCBmb3JjZSBsb2NhdGlv
bnMgYXJlIHNhbWUgZm9yIExheW91dCByZWNvcmRzIGNhdXNlZCBieSBzdHlsZSByZWNhbGN1bGFp
dG9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAxOTdlODJlNzc5OWM4ZjU5Mzkw
YmRmYWZhOGMxMjc4MTNlYzc3NzI5Li5hNzBhNWJiZmJjOGVlMGJjYTVjODU4MTE2MmQ3MWRkMjMz
MTlkOTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM2MTgsNiArMzYxOCw3
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291
cmNlUGFyc2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3Vy
Y2VQYXJzZXIuaCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3IuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvTmVzdGluZ0xldmVsSW5j
cmVtZW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2Vy
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggY2VhMzA5NWNjN2Y4NmVjYThhNmM5ZGVmZGM2NWIxNDljMTA1
MWI2YS4uNTAxNjMwOWI4MWE0NTBhMWI5MmNlOTFlM2I0ODQ5MDM2ZWIxZjIzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0xOTM1LDYgKzE5MzUsNyBAQCBIRUFERVJTICs9IFwKICAgICBodG1sL3BhcnNlci9I
VE1MVG9rZW5pemVyLmggXAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIFwKICAg
ICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIFwKKyAgICBodG1sL3BhcnNlci9J
bnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oIFwKICAgICBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmgg
XAogICAgIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3JEZWxlZ2F0ZS5oIFwKICAgICBodG1sL3NoYWRv
dy9Db250ZW50RGlzdHJpYnV0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMWJjODIwMDI5M2I0
ZjdlNmNkMDU1M2ZiYzU0NTVjZWQ1OTI3MThiZi4uNTNkNDE4ODAwNWIxYzI2ZWMzMWMzMThmOTA5
ZDFkOTg4MTk5YTFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzQyNyw2ICszNDI3LDcgQEAKICAg
ICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCcsCiAgICAgICAgICAgICAn
aHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdodG1s
L3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oJywKKyAgICAgICAgICAgICdodG1sL3BhcnNl
ci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9O
ZXN0aW5nTGV2ZWxJbmNyZW1lbnRlci5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0
RG9jdW1lbnRQYXJzZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IGVhZWI5NTFlNzY2MjdiZDcyZDM0YzhmNGEyNWM1ZDhlNzU2NDQ5OTAuLmZmNTkz
MmI4NjI0NTkxMzg3MmU0NmVmOGM4OTA2M2JlNWRkMGRjZjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02NTAxMCw2ICs2NTAxMCwxMCBAQAog
CQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxwYXJzZXJcSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4K
KwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxccGFyc2VyXE5lc3RpbmdMZXZl
bEluY3JlbWVudGVyLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhNGIyZmFhMGQyMTU1ZTc1YjU3
YmI2Y2MyMjExMDU4NmYzZTBjM2QwLi5hNjQyYTViM2I1MTBlMTBlZjNmNWEzODE5NzFkMmE5MWQ3
NTEwYTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTc5NTMsNiArNzk1Myw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxo
dG1sXHBhcnNlclxIVE1MVG9rZW5UeXBlcy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5caHRtbFxwYXJzZXJcSFRNTFRyZWVCdWlsZGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxodG1sXHBhcnNlclxIVE1MVmlld1NvdXJjZVBhcnNlci5oIiAvPgorICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXE5lc3RpbmdMZXZlbElu
Y3JlbWVudGVyLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxU
ZXh0RG9jdW1lbnRQYXJzZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxc
cGFyc2VyXFRleHRWaWV3U291cmNlUGFyc2VyLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggYzNhZGVk
OGYzMjhmNzJmYzc0MDM0Zjk3MGRiYmI5OWQxZGE3Y2FhZC4uOGJkOTdiM2FjZGIxNGRlMDVlOTZh
NmQxNTc3Nzk3NWNkZWE0NzgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMTI2MTIsNiArMTI2MTIsOSBA
QAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxwYXJzZXJcSFRNTFZpZXdTb3VyY2VQ
YXJzZXIuaCI+CiAgICAgICA8RmlsdGVyPmh0bWxccGFyc2VyPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxodG1sXHBhcnNlclxJbnB1dFN0cmVh
bVByZXByb2Nlc3Nvci5oIj4KKyAgICAgIDxGaWx0ZXI+aHRtbFxwYXJzZXI8L0ZpbHRlcj4KKyAg
ICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxccGFyc2VyXE5l
c3RpbmdMZXZlbEluY3JlbWVudGVyLmgiPgogICAgICAgPEZpbHRlcj5odG1sXHBhcnNlcjwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk1MzgwODE3NzYzMGZiYWQwNzdiODU5MzViMjdl
MGIyNWFlYTdhZjguLmE0YzA2OWFkNTkxMTgxM2I4MWE4MzUxNTM4YmY0Y2FlYmY0MjE5ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE1NjEsNiArMTU2MSw4IEBACiAJCTUxMEQ0QTM2MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVCYXNlLmNwcCAqLzsgfTsKIAkJNTEwRDRBMzcxMDMxNjVFRTAwNDlFQTU0IC8qIFNvY2tldFN0
cmVhbUhhbmRsZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVCYXNl
LmggKi87IH07CiAJCTUxMEQ0QTM4MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAq
LzsgfTsKKwkJNTExMjkzNUYzRDU0QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxl
ckFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5j
cHAgKi87IH07CisJCTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJv
ZmlsZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50
LmggKi87IH07CiAJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFzay5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMxMzBE
QzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suY3BwICovOyB9OwogCQk1MTFGMjMxODBEQzE2
MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUYyMzE0MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGFz
ay5oICovOyB9OwogCQk1MTFGMjMxOTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFGMjMx
NTBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRocmVhZC5jcHAgKi87IH07CkBAIC0zODE1LDgg
KzM4MTcsNiBAQAogCQk5QkY5QTg4MTE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRy
b2xzQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUJGOUE4N0YxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uaCAqLzsgfTsKIAkJOUYwRDZCMkUxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclBy
b2ZpbGVyQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUYwRDZCMkMxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQu
Y3BwICovOyB9OwogCQk5RjBENkIyRjEyMUJGRUJBMDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmls
ZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUYwRDZCMkQxMjFCRkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuaCAqLzsg
fTsKLQkJNTExMjkzNUYzRDU0QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFn
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHAg
Ki87IH07Ci0JCTUxMTI5MzYwM0Q2MEI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Lmgg
Ki87IH07CiAJCTlGM0I5NDdFMTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3Qu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGM0I5NDdE
MTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCAqLzsgfTsKIAkJOUY2RkMx
OTYxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVnU2VydmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGNkZDMTk0MTEyMkU4MkEwMEU4MDE5
NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5jcHAgKi87IH07CiAJCTlGNkZDMTk3MTEyMkU4MkEwMEU4
MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOUY2RkMxOTUxMTIyRTgyQTAwRTgwMTk2IC8qIFNjcmlwdERlYnVn
U2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTg5NzYsNiArODk3Niw4IEBACiAJCTUxMEQ0QTMwMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2Nr
ZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTBENEEzMTEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb2NrZXRTdHJlYW1IYW5kbGVCYXNl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1
NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxMTI5MzYxM0Q2REI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmls
ZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0
b3JIZWFwUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
MTI5MzYyM0Q4NUI0QjUyRkFGOTczRiAvKiBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2VudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JIZWFwUHJvZmlsZXJBZ2Vu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGMjMxMzBEQzE2MERBMDA0RjAw
MzIgLyogU3RvcmFnZVRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU3RvcmFnZVRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFGMjMx
NDBEQzE2MERBMDA0RjAwMzIgLyogU3RvcmFnZVRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZVRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTExRjIzMTUwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUaHJlYWQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTI4Miw4ICsxMTI4NCw2IEBACiAJCTlCRjlBODdGMTY0OERE
MkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYwRDZCMkMxMjFCRkVCQTAwNkMwMjg4IC8qIElu
c3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTlGMEQ2QjJEMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvclByb2ZpbGVyQWdl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExMjkzNjEzRDZEQjRCNTJGQUY5
NzNGIC8qIEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTExMjkzNjIzRDg1QjRCNTJGQUY5NzNGIC8qIEluc3Bl
Y3RvckhlYXBQcm9maWxlckFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEluc3BlY3RvckhlYXBQcm9maWxlckFnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlGM0I5NDdEMTIyNDE3NTgwMDUzMDRFNyAvKiBTY3JpcHRIZWFwU25hcHNob3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0SGVhcFNuYXBzaG90Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGNkZDMTk0MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3Jp
cHREZWJ1Z1NlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
Y3JpcHREZWJ1Z1NlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGNkZD
MTk1MTEyMkU4MkEwMEU4MDE5NiAvKiBTY3JpcHREZWJ1Z1NlcnZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHREZWJ1Z1NlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTE3MTcsNiArMTE3MTcsNyBAQAogCQlBODc0OEJERjEyQ0JGMkRDMDAx
RkJBNDEgLyogSGFzaFRvb2xzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhh
c2hUb29scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODc0OEQ2NjEyQ0MzNzYz
MDAxRkJBNDEgLyogSW1hZ2VPcmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbWFnZU9yaWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUE4NzQ4RDc0MTJDQzNGODkwMDFGQkE0MSAvKiBJbWFnZU9yaWVudGF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlT3JpZW50YXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODgwNUFGMTE2Qzk2QUVBMDAwRTlEOTggLyogSW5w
dXRTdHJlYW1QcmVwcm9jZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3IuaDsgcGF0aCA9IHBhcnNlci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBODgyREExRjE1OTM4NDZBMDAwMTE1RUQgLyogQ1NTVG9T
dHlsZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NUb1N0
eWxlTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTg4MkRBMjIxNTkzODQ4
RDAwMDExNUVEIC8qIENTU1RvU3R5bGVNYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ1NTVG9TdHlsZU1hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODgz
REYyNTBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaXNpYmxlU2VsZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0ODY0LDkgKzE0ODY1LDkgQEAKIAkJMTRERkIzM0YwQTdE
Rjc2MzAwMThGNzY5IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJQ0RBOThEQ0QxNjAxNTE1QzAwRkVBM0IxIC8qIEVuY3J5
cHRlZE1lZGlhICovLAogCQkJCUE4M0I3OTEwMENDQjAwMUIwMDBCMDgyNSAvKiBDb3JlICovLAog
CQkJCUE4M0I3OTBFMENDQUZGOTcwMDBCMDgyNSAvKiBDU1MgKi8sCisJCQkJQ0RBOThEQ0QxNjAx
NTE1QzAwRkVBM0IxIC8qIEVuY3J5cHRlZE1lZGlhICovLAogCQkJCUE4M0I3OTEyMENDQjAwM0Yw
MDBCMDgyNSAvKiBFdmVudHMgKi8sCiAJCQkJODk4Nzg1NzYxMjJDQTFEQTAwM0FBQkRBIC8qIEZp
bGVBUEkgKi8sCiAJCQkJQTgzQjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8qIEhUTUwgKi8sCkBAIC0x
NTU2OSwxMCArMTU1NzAsMTAgQEAKIAkJCQlBN0JGN0VERTE0QzkxNzVBMDAxNDQ4OUQgLyogSW50
ZXJuYWxTZXR0aW5ncy5pZGwgKi8sCiAJCQkJQTdCRTdFREQxNEM5MTc1QTAwMTQ0ODlEIC8qIE1h
bGxvY1N0YXRpc3RpY3MuaCAqLywKIAkJCQlBN0JFN0VERTE0QzkxNzVBMDAxNDQ4OUQgLyogTWFs
bG9jU3RhdGlzdGljcy5pZGwgKi8sCi0JCQkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5
cGVDb252ZXJzaW9ucy5oICovLAotCQkJCUVCMDgxQ0Q5MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBl
Q29udmVyc2lvbnMuaWRsICovLAogCQkJCUNEQzI2QjNDMTYwQTYyQjAwMDI2NzU3QiAvKiBNb2Nr
Q0RNLmNwcCAqLywKIAkJCQlDREMyNkIzRDE2MEE2MkIwMDAyNjc1N0IgLyogTW9ja0NETS5oICov
LAorCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMuaCAqLywK
KwkJCQlFQjA4MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmlkbCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gdGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0xODc0OCw2ICsxODc0OSw3IEBACiAJCQkJOTc3QjM3MjIxMjI4NzIxNzAwQjgxRkY4IC8qIEhU
TUxUcmVlQnVpbGRlci5oICovLAogCQkJCTk3N0IzODYwMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1M
Vmlld1NvdXJjZVBhcnNlci5jcHAgKi8sCiAJCQkJOTc3QjM4NjExMjI4ODNFOTAwQjgxRkY4IC8q
IEhUTUxWaWV3U291cmNlUGFyc2VyLmggKi8sCisJCQkJQTg4MDVBRjExNkM5NkFFQTAwMEU5RDk4
IC8qIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmggKi8sCiAJCQkJOEEzMDlDOUUxMjM5NTBCRTAw
Q0I5MjA0IC8qIE5lc3RpbmdMZXZlbEluY3JlbWVudGVyLmggKi8sCiAJCQkJOTdCQzg0ODExMjM2
RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5jcHAgKi8sCiAJCQkJOTdCQzg0ODIx
MjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5oICovLApAQCAtMjE1MzgsMTIg
KzIxNTQwLDEyIEBACiAJCQkJOTM1QzQ3NjcwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91
c2VFdmVudC5oICovLAogCQkJCUM1QkFDMTZGMTRFMzBFNDcwMDAwODgzNyAvKiBQbGF0Zm9ybVBh
c3RlYm9hcmQuaCAqLywKIAkJCQlCQ0VDMDFENjBDMjc0RUI0MDA5RjRFQzkgLyogUGxhdGZvcm1T
Y3JlZW4uaCAqLywKLQkJCQkyOTdCRTNEOTE2QzA0M0Q4MDAzMzE2QkQgLyogUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplci5jcHAgKi8sCi0JCQkJMjlFNEQ4REYxNkIwOTQwRjAwQzg0NzA0IC8qIFBs
YXRmb3JtU3BlZWNoU3ludGhlc2l6ZXIuaCAqLywKLQkJCQkyNTI3Q0M5MzE2QkY5MkVDMDA5RERB
QzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5jcHAgKi8sCi0JCQkJMjUyN0NDOTIx
NkJGOTBCNDAwOUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuaCAqLywKIAkJ
CQkyNTI3Q0M5NTE2QkY5NUREMDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRl
cmFuY2UuY3BwICovLAogCQkJCTI1MjdDQzkxMTZCRjhCQTEwMDlEREFDMCAvKiBQbGF0Zm9ybVNw
ZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5oICovLAorCQkJCTI1MjdDQzkzMTZCRjkyRUMwMDlEREFD
MCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCAqLywKKwkJCQkyNTI3Q0M5MjE2
QkY5MEI0MDA5RERBQzAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNWb2ljZS5oICovLAorCQkJ
CTI5N0JFM0Q5MTZDMDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyLmNw
cCAqLywKKwkJCQkyOUU0RDhERjE2QjA5NDBGMDBDODQ3MDQgLyogUGxhdGZvcm1TcGVlY2hTeW50
aGVzaXplci5oICovLAogCQkJCTFBRDhGODFBMTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwICovLAogCQkJCTFBRDhGODE5MTFDQUI5RTkwMEU5M0U1NCAvKiBQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCAqLywKIAkJCQk5MzVDNDc2QTA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZv
cm1XaGVlbEV2ZW50LmggKi8sCkBAIC0yMTYzMyw2ICsyMTYzNSw4IEBACiAJCUNEQTk4REJEMTYw
MTRFMDgwMEZFQTNCMSAvKiBlbmNyeXB0ZWRtZWRpYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0RBOThFMDkxNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5j
cHAgKi8sCisJCQkJQ0RBOThFMEExNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5oICovLAogCQkJCUNE
QTk4REQ1MTYwMjVCRUQwMEZFQTNCMSAvKiBNZWRpYUtleU1lc3NhZ2VFdmVudC5jcHAgKi8sCiAJ
CQkJQ0RBOThERDYxNjAyNUJFRDAwRkVBM0IxIC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50LmggKi8s
CiAJCQkJQ0RBOThERDcxNjAyNUJFRTAwRkVBM0IxIC8qIE1lZGlhS2V5TWVzc2FnZUV2ZW50Lmlk
bCAqLywKQEAgLTIxNjQ1LDggKzIxNjQ5LDYgQEAKIAkJCQlDREE5OERDNzE2MDE0RjJDMDBGRUEz
QjEgLyogTWVkaWFLZXlTZXNzaW9uLmNwcCAqLywKIAkJCQlDREE5OERDODE2MDE0RjJDMDBGRUEz
QjEgLyogTWVkaWFLZXlTZXNzaW9uLmggKi8sCiAJCQkJQ0RBOThEQzkxNjAxNEY0MDAwRkVBM0Ix
IC8qIE1lZGlhS2V5U2Vzc2lvbi5pZGwgKi8sCi0JCQkJQ0RBOThFMDkxNjAzQ0Q1OTAwRkVBM0Ix
IC8qIENETS5jcHAgKi8sCi0JCQkJQ0RBOThFMEExNjAzQ0Q1OTAwRkVBM0IxIC8qIENETS5oICov
LAogCQkJCUNEQTk4RTBDMTYwM0NGM0MwMEZFQTNCMSAvKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETVByaXZhdGUuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZW5jcnlwdGVkbWVkaWE7CkBAIC0y
MzA4Nyw4ICsyMzA4OSw4IEBACiAJCQkJNTNFRDNGREYxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50
ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0MEI1OTUxNEM5
MzVBQjAwQTc3RkE0IC8qIEpTTWFsbG9jU3RhdGlzdGljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RUJGNTEyMUQxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTW9ja0NE
TS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4MTVDMUYxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNv
cmVUZXN0U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjgyMiw4ICsyNjgyNCw4IEBACiAJ
CQkJNTNFRDNGREUxNjdBODhFNzAwNjc2MkU2IC8qIEpTSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRl
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNzQwQjU5NzE0QzkzNUFGMDBBNzdGQTQgLyogSlNN
YWxsb2NTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUVCRjUxMjFDMTY5NjQ5NkMw
MDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0MTgx
NUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNEQzI2QjQwMTYwQThDQzYwMDI2NzU3QiAvKiBNb2NrQ0RNLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBv
cnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yNjk4MCw2ICsyNjk4Miw3IEBACiAJCQkJNDk0ODRG
Q0QxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1N0eWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTA3OUQwODZDMTYyRjIxRjkwMERCODY1OCAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNjU1MEI2OUQwOTlERjAyNzAwOTBENzgxIC8qIENEQVRBU2Vj
dGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OEUwQjE2MDNDRDYwMDBGRUEzQjEgLyog
Q0RNLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3QkM2OURDMTUwNUYwNzYwMDFCNzRBQyAvKiBD
aGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDMxNUZGRTEyQjAy
Njc2MDBDMUEzNTkgLyogQ2hhbm5lbE1lcmdlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RkQzMTYwMDExMkIwMjY3NjAwQzFBMzU5IC8qIENoYW5uZWxTcGxpdHRlck5vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yODI5MSw3ICsyODI5NCwxMiBAQAogCQkJCUNEMjdGNkU1MTQ1NzY4NUEw
MDc4MjA3RCAvKiBKU01lZGlhQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDIz
QTEyNTEzRjVGQTU5MDBGNjcwMDEgLyogSlNNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjE0MTgwQ0Q2ODI2OTAwRkFEQTc1IC8qIEpTTWVkaWFF
cnJvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OERBMzE2MDE0NjQxMDBGRUEzQjEgLyog
SlNNZWRpYUtleUVycm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQjg1OUZBMTYwRDQ5NDkw
MEU1QjA3RiAvKiBKU01lZGlhS2V5RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThE
REYxNjAyNkEzNzAwRkVBM0IxIC8qIEpTTWVkaWFLZXlNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RBOThERTAxNjAyNkEzNzAwRkVBM0IxIC8qIEpTTWVkaWFLZXlOZWVkZWRF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OEUwNDE2MDM5RTFBMDBGRUEzQjEgLyog
SlNNZWRpYUtleXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RBOThFMDYxNjAzOUUxRjAwRkVB
M0IxIC8qIEpTTWVkaWFLZXlTZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDM0MzOUI2
MEMwRDNEOEQwMDVGNEQ3QSAvKiBKU01lZGlhTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NDY0RTA2QzEzNUVDMTA2MDBGREIwMEEgLyogSlNNZWRpYUxpc3RDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRDNBOTRBNDYxMjJEQzQwRjAwQTM3QkJDIC8qIEpTTWVkaWFRdWVyeUxpc3Qu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yODcxMCw2ICsyODcxOCwxMCBAQAogCQkJCTRFMTk1OTIx
MEEzOURBQkEwMDIyMEZFNSAvKiBNZWRpYUZlYXR1cmVOYW1lcy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwN0E2RDFFQjE0OTExMzc3MDAwNTFEMEMgLyogTWVkaWFGcmFnbWVudFVSSVBhcnNlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlDREI4NTlGNzE2MEQ0OEE0MDBFNUIwN0YgLyogTWVkaWFL
ZXlFdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDREE5OEREODE2MDI1QkVGMDBGRUEzQjEg
LyogTWVkaWFLZXlNZXNzYWdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QxQjRBNjUx
NjA3ODZBRTAwMjgyREY5IC8qIE1lZGlhS2V5TmVlZGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0RBOThFMEQxNjAzRkU0QTAwRkVBM0IxIC8qIE1lZGlhS2V5cy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDREE5OEUwRTE2MDNGRTU4MDBGRUEzQjEgLyogTWVkaWFLZXlTZXNzaW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUE4RUE4MDA5MEExOTUxNkUwMEE4RUY1RiAvKiBNZWRpYUxp
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0NjEzRTMwQ0Q2ODE5RjAwRkFEQTc1IC8qIE1l
ZGlhUGxheWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3MkM4QjExMTMxQzUxODYwMEE0RkNF
OSAvKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBA
IC0yODg1NSwxMCArMjg4NjcsMTAgQEAKIAkJCQk0MUJGNzAwRjBGRTg2RjYxMDA1RThERUMgLyog
UGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU5ODkw
MkUxNEU5QjBGODAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDOTREMTA4MEMyNzRGODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNjcmVlbk1hYy5t
bSBpbiBTb3VyY2VzICovLAotCQkJCTI5MzQ5NDBBMTZDMDJDMDcwMDkwMTMxOCAvKiBQbGF0Zm9y
bVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI5MzQ5NDBCMTZD
MDJDMEEwMDkwMTMxOCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkyOTdCRTNEODE2QzAzQ0NFMDAzMzE2QkQgLyogUGxhdGZvcm1TcGVl
Y2hTeW50aGVzaXplck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTI5MzQ5NDBBMTZDMDJDMDcw
MDkwMTMxOCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNpc1ZvaWNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTI5N0JFM0RBMTZDMDQzRDgwMDMzMTZCRCAvKiBQbGF0Zm9ybVNwZWVjaFN5bnRoZXNp
emVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI5N0JFM0Q4MTZDMDNDQ0UwMDMzMTZCRCAvKiBQ
bGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFEOEY4
MUMxMUNBQjlFOTAwRTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOUM2RTRGMzBENzQ1RTQ4MDA2NDQyRTkgLyogUGx1Z2luRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzIwNUFCQjEyMzkyOTI3MDBCMTczODAgLyogUGx1Z2luRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTY3MSwxNiArMjk2ODMsNiBAQAogCQkJCTk3N0UyRTBF
MTJGMEZDOUMwMEMxMzM3OSAvKiBYU1NBdWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3
N0UyRTBFMTJGMEZDOUMwMEMxMzM4MCAvKiBYU1NBdWRpdG9yRGVsZWdhdGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENFIC8qIFplcm9Qb2xlLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUNEQTk4REEzMTYwMTQ2NDEwMEZFQTNCMSAvKiBKU01lZGlhS2V5RXJy
b3IuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThERDgxNjAyNUJFRjAwRkVBM0IxIC8qIE1l
ZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RERGMTYwMjZB
MzcwMEZFQTNCMSAvKiBKU01lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUNEQTk4REUwMTYwMjZBMzcwMEZFQTNCMSAvKiBKU01lZGlhS2V5TmVlZGVkRXZlbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThFMDQxNjAzOUUxQTAwRkVBM0IxIC8qIEpTTWVkaWFL
ZXlzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RTA2MTYwMzlFMUYwMEZFQTNCMSAvKiBK
U01lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDREE5OEUwQjE2MDNDRDYw
MDBGRUEzQjEgLyogQ0RNLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUNEQTk4RTBEMTYwM0ZFNEEw
MEZFQTNCMSAvKiBNZWRpYUtleXMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQ0RBOThFMEUxNjAz
RkU1ODAwRkVBM0IxIC8qIE1lZGlhS2V5U2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlD
RDFCNEE2NTE2MDc4NkFFMDAyODJERjkgLyogTWVkaWFLZXlOZWVkZWRFdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91
bmRIVE1MUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRI
VE1MUGFyc2VyLmNwcAppbmRleCBkYWViZGI4N2U5YjQ0MjgwNGFhNmUxNDdlMGYwYjM0MzNlYjIw
ZGE4Li45YmExZDA1MjQ3YzgyNmFjOGFjOWZhZTQ3YTk0ZjBkNDRhYzA0MzA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTFBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxQYXJzZXIuY3BwCkBA
IC0xMDYsMTIgKzEwNiw4IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxQYXJzZXI6OmZvcmNlUGxhaW50
ZXh0Rm9yVGV4dERvY3VtZW50KCkKIAogdm9pZCBCYWNrZ3JvdW5kSFRNTFBhcnNlcjo6bWFya0Vu
ZE9mRmlsZSgpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyCi0gICAgLy8gb25jZSBJbnB1dFN0cmVhbVByZXBy
b2Nlc3NvciBpcyBzcGxpdCBvZmYgaW50byBpdHMgb3duIGhlYWRlci4KLSAgICBjb25zdCBMQ2hh
ciBlbmRPZkZpbGVNYXJrZXIgPSAwOwotCiAgICAgQVNTRVJUKCFtX2lucHV0LmN1cnJlbnQoKS5p
c0Nsb3NlZCgpKTsKLSAgICBtX2lucHV0LmFwcGVuZChTdHJpbmcoJmVuZE9mRmlsZU1hcmtlciwg
MSkpOworICAgIG1faW5wdXQuYXBwZW5kKFN0cmluZygma0VuZE9mRmlsZU1hcmtlciwgMSkpOwog
ICAgIG1faW5wdXQuY2xvc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTElucHV0U3RyZWFtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MSW5wdXRTdHJlYW0uaAppbmRleCA1OTMyOTBiY2Y1OGVhMTYwZmU2ZmJjNWZmMGVjYzk1MmYw
Yjk0YjM1Li40NmZkOGM0Mzg3NGQwN2Y2OTgwZGJkMjE3ZWIyN2U1OGNiZDkwYWZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MSW5wdXRTdHJlYW0uaApAQCAtMjYsNiArMjYs
NyBAQAogI2lmbmRlZiBIVE1MSW5wdXRTdHJlYW1faAogI2RlZmluZSBIVE1MSW5wdXRTdHJlYW1f
aAogCisjaW5jbHVkZSAiSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaCIKICNpbmNsdWRlICJTZWdt
ZW50ZWRTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNzIsMTAgKzczLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBtYXJrRW5kT2ZGaWxlKCkKICAgICB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCB1c2UgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1h
cmtlcgotICAgICAgICAvLyBvbmNlIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIGlzIHNwbGl0IG9m
ZiBpbnRvIGl0cyBvd24gaGVhZGVyLgotICAgICAgICBzdGF0aWMgY29uc3QgTENoYXIgZW5kT2ZG
aWxlTWFya2VyID0gMDsKLSAgICAgICAgbV9sYXN0LT5hcHBlbmQoU2VnbWVudGVkU3RyaW5nKFN0
cmluZygmZW5kT2ZGaWxlTWFya2VyLCAxKSkpOworICAgICAgICBtX2xhc3QtPmFwcGVuZChTZWdt
ZW50ZWRTdHJpbmcoU3RyaW5nKCZrRW5kT2ZGaWxlTWFya2VyLCAxKSkpOwogICAgICAgICBtX2xh
c3QtPmNsb3NlKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxU
b2tlbml6ZXIuY3BwCmluZGV4IDM5YTQxNjNhN2UyMzRmOWU5ODE4MzliOWVkOGY0MzRhM2NlNTQx
Y2IuLjNjNmM0NGNiNjkxYTAzNjk5ZDNhOGFjNDU0Y2U3NzFkYjczODAwZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUb2tlbml6ZXIuY3BwCkBAIC0yNTMsNyArMjUzLDcg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oVGFnT3BlblN0YXRlKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFy
a2VyKQorICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAg
ICAgICByZXR1cm4gZW1pdEVuZE9mRmlsZShzb3VyY2UpOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CkBAIC0yNzQsNyArMjc0LDcgQEAgYm9vbCBIVE1M
VG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ2hhcmFjdGVyUmVmZXJlbmNlSW5S
Q0RBVEFTdGF0ZSk7CiAgICAgICAgIGVsc2UgaWYgKGNjID09ICc8JykKICAgICAgICAgICAgIEhU
TUxfQURWQU5DRV9UTyhSQ0RBVEFMZXNzVGhhblNpZ25TdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYg
KGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAg
IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAgICAgICByZXR1cm4gZW1p
dEVuZE9mRmlsZShzb3VyY2UpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGJ1ZmZlckNo
YXJhY3RlcihjYyk7CkBAIC0yOTMsNyArMjkzLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRN
TF9CRUdJTl9TVEFURShSQVdURVhUU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICc8JykKICAg
ICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhSQVdURVhUTGVzc1RoYW5TaWduU3RhdGUpOwotICAg
ICAgICBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFy
a2VyKQorICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUoc291cmNlKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwpAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgSFRNTFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRv
a2VuKQogICAgIEhUTUxfQkVHSU5fU1RBVEUoU2NyaXB0RGF0YVN0YXRlKSB7CiAgICAgICAgIGlm
IChjYyA9PSAnPCcpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0YUxlc3NU
aGFuU2lnblN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikKICAgICAgICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CiAgICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKQEAgLTMxNSwxMCAr
MzE1LDkgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgRU5EX1NUQVRFKCkKIAogICAgIEhUTUxfQkVH
SU5fU1RBVEUoUExBSU5URVhUU3RhdGUpIHsKLSAgICAgICAgaWYgKGNjID09IElucHV0U3RyZWFt
UHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGlmIChjYyA9PSBrRW5kT2ZG
aWxlTWFya2VyKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUoc291cmNlKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKKyAgICAgICAgYnVm
ZmVyQ2hhcmFjdGVyKGNjKTsKICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKFBMQUlOVEVYVFN0YXRl
KTsKICAgICB9CiAgICAgRU5EX1NUQVRFKCkKQEAgLTM2MCw3ICszNTksNyBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIHBhcnNl
RXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhEYXRhU3RhdGUpOwotICAgICAg
ICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAg
ICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoJzwnKTsK
ICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcignLycpOwpAQCAtMzg0LDcgKzM4Myw3IEBAIGJv
b2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1M
VG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChpc0FTQ0lJVXBwZXIoY2MpKSB7CiAgICAg
ICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb05hbWUodG9Mb3dlckNhc2UoY2MpKTsKICAgICAgICAg
ICAgIEhUTUxfQURWQU5DRV9UTyhUYWdOYW1lU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAg
ICB9IGVsc2UgewpAQCAtNjE3LDcgKzYxNiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRv
a2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAg
ICAgSFRNTF9BRFZBTkNFX1RPKFNjcmlwdERhdGFFc2NhcGVkRGFzaFN0YXRlKTsKICAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSAnPCcpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0
RGF0YUVzY2FwZWRMZXNzVGhhblNpZ25TdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgZWxzZSBp
ZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwog
ICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNl
IHsKQEAgLTYzMyw3ICs2MzIsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIEhUTUxf
QURWQU5DRV9UTyhTY3JpcHREYXRhRXNjYXBlZERhc2hEYXNoU3RhdGUpOwogICAgICAgICB9IGVs
c2UgaWYgKGNjID09ICc8JykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhTY3JpcHREYXRh
RXNjYXBlZExlc3NUaGFuU2lnblN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRT
dHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChj
YyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAg
ICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpA
QCAtNjUyLDcgKzY1MSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChjYyA9
PSAnPicpIHsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAgICAgICAgICAgICBI
VE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9
PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJv
cigpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAg
fSBlbHNlIHsKQEAgLTc2Niw3ICs3NjUsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tl
bihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgfSBl
bHNlIGlmIChjYyA9PSAnPCcpIHsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CiAg
ICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oU2NyaXB0RGF0YURvdWJsZUVzY2FwZWRMZXNzVGhh
blNpZ25TdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhU
TUxfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC03ODMsNyAr
NzgyLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJzwnKSB7
CiAgICAgICAgICAgICBidWZmZXJDaGFyYWN0ZXIoY2MpOwogICAgICAgICAgICAgSFRNTF9BRFZB
TkNFX1RPKFNjcmlwdERhdGFEb3VibGVFc2NhcGVkTGVzc1RoYW5TaWduU3RhdGUpOwotICAgICAg
ICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAg
ICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtODAzLDcgKzgwMiw3IEBAIGJvb2wgSFRNTFRv
a2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRv
a2VuKQogICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgYnVmZmVy
Q2hhcmFjdGVyKGNjKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhTY3JpcHREYXRhU3Rh
dGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09O
U1VNRV9JTihEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtODU3LDcgKzg1Niw3IEBA
IGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBI
VE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVOYW1l
KHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25zdW1lZCgpKTsKICAgICAgICAgICAgIG1fdG9r
ZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZSh0b0xvd2VyQ2FzZShjYykpOwogICAgICAgICAgICAg
SFRNTF9BRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAo
Y2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAg
ICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNl
RXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfUkVDT05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAg
ICAgIH0gZWxzZSB7CkBAIC04OTAsNyArODg5LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0
VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAg
IH0gZWxzZSBpZiAoaXNBU0NJSVVwcGVyKGNjKSkgewogICAgICAgICAgICAgbV90b2tlbi0+YXBw
ZW5kVG9BdHRyaWJ1dGVOYW1lKHRvTG93ZXJDYXNlKGNjKSk7CiAgICAgICAgICAgICBIVE1MX0FE
VkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJ
bnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxz
ZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigp
OwogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmlidXRlTmFtZShzb3VyY2UubnVtYmVyT2ZD
aGFyYWN0ZXJzQ29uc3VtZWQoKSk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRh
U3RhdGUpOwpAQCAtOTE5LDcgKzkxOCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2Vu
KFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAg
bV90b2tlbi0+YmVnaW5BdHRyaWJ1dGVOYW1lKHNvdXJjZS5udW1iZXJPZkNoYXJhY3RlcnNDb25z
dW1lZCgpKTsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZSh0b0xv
d2VyQ2FzZShjYykpOwogICAgICAgICAgICAgSFRNTF9BRFZBTkNFX1RPKEF0dHJpYnV0ZU5hbWVT
dGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6
OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVN
YXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIEhUTUxfUkVD
T05TVU1FX0lOKERhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC05NDgsNyArOTQ3LDcg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAg
ICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUlu
KHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2Ug
aWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAg
ICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBw
YXJzZUVycm9yKCk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewpAQCAtOTY4LDcgKzk2Nyw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6
bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAg
ICAgICB9IGVsc2UgaWYgKGNjID09ICcmJykgewogICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxs
b3dlZENoYXJhY3RlciA9ICciJzsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDaGFyYWN0
ZXJSZWZlcmVuY2VJbkF0dHJpYnV0ZVZhbHVlU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5lbmRBdHRyaWJ1dGVWYWx1ZShzb3VyY2UubnVt
YmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7CiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9J
TihEYXRhU3RhdGUpOwpAQCAtOTg2LDcgKzk4NSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICB9IGVsc2UgaWYgKGNjID09ICcmJykgewogICAgICAgICAgICAgbV9hZGRpdGlvbmFsQWxsb3dl
ZENoYXJhY3RlciA9ICdcJyc7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ2hhcmFjdGVy
UmVmZXJlbmNlSW5BdHRyaWJ1dGVWYWx1ZVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9
PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJv
cigpOwogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJl
ck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4o
RGF0YVN0YXRlKTsKQEAgLTEwMDcsNyArMTAwNiw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICB9IGVsc2UgaWYgKGNjID09ICc+JykgewogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmli
dXRlVmFsdWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0
YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tl
bi0+ZW5kQXR0cmlidXRlVmFsdWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVkKCkp
OwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKQEAgLTEwNTcsNyAr
MTA1Niw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1
bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKICAgICAgICAgZWxz
ZSBpZiAobV9vcHRpb25zLnVzZVByZUhUTUw1UGFyc2VyUXVpcmtzICYmIGNjID09ICc8JykKICAg
ICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVy
U3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJl
cHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0Vu
ZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAg
SFRNTF9SRUNPTlNVTUVfSU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTEwNzEs
NyArMTA3MCw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICBpZiAoY2MgPT0gJz4nKSB7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5zZXRTZWxmQ2xvc2luZygpOwogICAgICAgICAgICAgcmV0dXJu
IGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsK
LSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZG
aWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikg
ewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgSFRNTF9SRUNPTlNVTUVf
SU4oRGF0YVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTEwOTAsNyArMTA4OSw3IEBAIGJv
b2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1M
VG9rZW4mIHRva2VuKQogICAgIEhUTUxfQkVHSU5fU1RBVEUoQ29udGludWVCb2d1c0NvbW1lbnRT
dGF0ZSkgewogICAgICAgICBpZiAoY2MgPT0gJz4nKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRB
bmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAg
ICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtl
cikKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikKICAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRh
dGFTdGF0ZSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9D
b21tZW50KGNjKTsKQEAgLTExMzgsNyArMTEzNyw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICBlbHNlIGlmIChjYyA9PSAnPicpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6
OkRhdGFTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9j
ZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIHJl
dHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFT
dGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xMTU0LDcgKzExNTMsNyBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4nKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRv
a2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0
U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAg
ICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXpl
clN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTE2OCw3ICsxMTY3LDcg
QEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2Us
IEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShDb21tZW50U3RhdGUpIHsK
ICAgICAgICAgaWYgKGNjID09ICctJykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDb21t
ZW50RW5kRGFzaFN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5k
T2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBy
ZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRh
U3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTE4MSw3ICsxMTgwLDcgQEAgYm9vbCBIVE1M
VG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShDb21tZW50RW5kRGFzaFN0YXRlKSB7CiAgICAg
ICAgIGlmIChjYyA9PSAnLScpCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ29tbWVudEVu
ZFN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6
OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwog
ICAgICAgICB9IGVsc2UgewpAQCAtMTIwMiw3ICsxMjAxLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVy
OjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0Nv
bW1lbnQoJy0nKTsKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDb21tZW50RW5kU3RhdGUp
OwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRP
ZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2Vy
KSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFu
ZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAg
ICAgICB9IGVsc2UgewpAQCAtMTIyMyw3ICsxMjIyLDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpu
ZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAg
ICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQ29tbWVudEVuZERhc2hTdGF0ZSk7CiAgICAgICAgIH0g
ZWxzZSBpZiAoY2MgPT0gJz4nKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihz
b3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAo
Y2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAg
ICBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRN
TFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTIzOSw3
ICsxMjM4LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5n
JiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgSFRNTF9CRUdJTl9TVEFURShET0NUWVBF
U3RhdGUpIHsKICAgICAgICAgaWYgKGlzVG9rZW5pemVyV2hpdGVzcGFjZShjYykpCiAgICAgICAg
ICAgICBIVE1MX0FEVkFOQ0VfVE8oQmVmb3JlRE9DVFlQRU5hbWVTdGF0ZSk7Ci0gICAgICAgIGVs
c2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsK
KyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAg
cGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5ET0NUWVBFKCk7CiAgICAg
ICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwpAQCAtMTI2Miw3ICsxMjYxLDcgQEAg
Ym9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhU
TUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkRPQ1RZUEUoKTsKICAg
ICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4g
ZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwot
ICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZp
bGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7
CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpbkRP
Q1RZUEUoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CkBAIC0xMjgy
LDcgKzEyODEsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJp
bmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgZWxzZSBpZiAoaXNBU0NJSVVw
cGVyKGNjKSkgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9OYW1lKHRvTG93ZXJDYXNl
KGNjKSk7CiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oRE9DVFlQRU5hbWVTdGF0ZSk7Ci0g
ICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmls
ZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsK
ICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNl
UXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwg
SFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpAQCAtMTI5OCw3ICsxMjk3LDcgQEAgYm9v
bCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxU
b2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQWZ0ZXJET0NUWVBFTmFt
ZVN0YXRlKTsKICAgICAgICAgaWYgKGNjID09ICc+JykKICAgICAgICAgICAgIHJldHVybiBlbWl0
QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAg
ICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJr
ZXIpIHsKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAg
ICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3Mo
KTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9r
ZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CkBAIC0xMzQyLDcgKzEzNDEsNyBAQCBib29sIEhUTUxU
b2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0
b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNl
dEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJj
ZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAg
fSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6
RGF0YVN0YXRlKTsKQEAgLTEzNjcsNyArMTM2Niw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4
dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAg
ICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3Mo
KTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5p
emVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNj
ID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpA
QCAtMTM4Niw3ICsxMzg1LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVy
cm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0
YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nv
cjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmls
ZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tl
bi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1l
SW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CkBAIC0xNDA0LDcgKzE0
MDMsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNv
dXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1p
dEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAg
ICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVN
YXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAg
ICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1
aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhU
TUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAgLTE0MjgsNyArMTQyNyw3IEBAIGJvb2wg
SFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9r
ZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tl
bi0+c2V0U3lzdGVtSWRlbnRpZmllclRvRW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgIEhUTUxf
QURWQU5DRV9UTyhET0NUWVBFU3lzdGVtSWRlbnRpZmllclNpbmdsZVF1b3RlZFN0YXRlKTsKLSAg
ICAgICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxl
TWFya2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewog
ICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VR
dWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBI
VE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CkBAIC0xNDUxLDcgKzE0NTAsNyBAQCBib29s
IEhUTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRv
a2VuJiB0b2tlbikKICAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnXCcnKSB7CiAgICAgICAgICAg
ICBtX3Rva2VuLT5zZXRTeXN0ZW1JZGVudGlmaWVyVG9FbXB0eVN0cmluZygpOwogICAgICAgICAg
ICAgSFRNTF9BRFZBTkNFX1RPKERPQ1RZUEVTeXN0ZW1JZGVudGlmaWVyU2luZ2xlUXVvdGVkU3Rh
dGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSBrRW5kT2ZGaWxlTWFy
a2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5z
ZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZWNvbnN1bWVJbihz
b3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAgLTE0NzgsNyArMTQ3Nyw3
IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNl
LCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VFcnJvcigpOwogICAgICAgICAg
ICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5k
UmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7Ci0gICAgICAg
IH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtl
cikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAg
ICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtz
KCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRv
a2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpAQCAtMTUwMyw3ICsxNTAyLDcgQEAgYm9vbCBIVE1M
VG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYg
dG9rZW4pCiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICBtX3Rva2VuLT5z
ZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3Vy
Y2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlmIChj
YyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKSB7CisgICAgICAg
IH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgcGFyc2VF
cnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAg
ICAgIHJldHVybiBlbWl0QW5kUmVjb25zdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6
OkRhdGFTdGF0ZSk7CkBAIC0xNTIyLDcgKzE1MjEsNyBAQCBib29sIEhUTUxUb2tlbml6ZXI6Om5l
eHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgSFRNTFRva2VuJiB0b2tlbikKICAgICAg
ICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9rZW4tPnNldEZvcmNlUXVpcmtz
KCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplclN0YXRlOjpEYXRhU3RhdGUpOwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3Ry
ZWFtUHJlcHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChj
YyA9PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAg
ICAgICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVt
aXRBbmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsK
QEAgLTE1NDAsNyArMTUzOSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgcGFyc2VF
cnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+c2V0Rm9yY2VRdWlya3MoKTsKICAgICAgICAg
ICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRh
dGFTdGF0ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNz
b3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09IGtFbmRPZkZp
bGVNYXJrZXIpIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1fdG9r
ZW4tPnNldEZvcmNlUXVpcmtzKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3Vt
ZUluKHNvdXJjZSwgSFRNTFRva2VuaXplclN0YXRlOjpEYXRhU3RhdGUpOwpAQCAtMTU1Niw3ICsx
NTU1LDcgQEAgYm9vbCBIVE1MVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBz
b3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQWZ0
ZXJET0NUWVBFU3lzdGVtSWRlbnRpZmllclN0YXRlKTsKICAgICAgICAgZWxzZSBpZiAoY2MgPT0g
Jz4nKQogICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIEhUTUxUb2tl
bml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKLSAgICAgICAgZWxzZSBpZiAoY2MgPT0gSW5wdXRTdHJl
YW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBlbHNlIGlmIChjYyA9
PSBrRW5kT2ZGaWxlTWFya2VyKSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAg
ICAgICBtX3Rva2VuLT5zZXRGb3JjZVF1aXJrcygpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRB
bmRSZWNvbnN1bWVJbihzb3VyY2UsIEhUTUxUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKQEAg
LTE1NzAsNyArMTU2OSw3IEBAIGJvb2wgSFRNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRl
ZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQogICAgIEhUTUxfQkVHSU5fU1RBVEUo
Qm9ndXNET0NUWVBFU3RhdGUpIHsKICAgICAgICAgaWYgKGNjID09ICc+JykKICAgICAgICAgICAg
IHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBIVE1MVG9rZW5pemVyU3RhdGU6OkRhdGFT
dGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjpl
bmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGVsc2UgaWYgKGNjID09IGtFbmRPZkZpbGVNYXJrZXIp
CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlY29uc3VtZUluKHNvdXJjZSwgSFRNTFRva2Vu
aXplclN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICBIVE1MX0FEVkFOQ0VfVE8oQm9ndXNET0NU
WVBFU3RhdGUpOwogICAgIH0KQEAgLTE1NzksNyArMTU3OCw3IEBAIGJvb2wgSFRNTFRva2VuaXpl
cjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBIVE1MVG9rZW4mIHRva2VuKQog
ICAgIEhUTUxfQkVHSU5fU1RBVEUoQ0RBVEFTZWN0aW9uU3RhdGUpIHsKICAgICAgICAgaWYgKGNj
ID09ICddJykKICAgICAgICAgICAgIEhUTUxfQURWQU5DRV9UTyhDREFUQVNlY3Rpb25SaWdodFNx
dWFyZUJyYWNrZXRTdGF0ZSk7Ci0gICAgICAgIGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJl
cHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGVsc2UgaWYgKGNjID09IGtFbmRP
ZkZpbGVNYXJrZXIpCiAgICAgICAgICAgICBIVE1MX1JFQ09OU1VNRV9JTihEYXRhU3RhdGUpOwog
ICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGJ1ZmZlckNoYXJhY3RlcihjYyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9JbnB1dFN0cmVhbVByZXByb2Nlc3Nvci5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wYWE4ZDIyZDAyNzg5N2JjZGY5OTQzMDA1ZDM3NDA4ZDA0NWUyMGI0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3IuaApAQCAtMCwwICsxLDEzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9y
Y2ggTW9iaWxlLCBJbmMuIGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLworICogQ29weXJpZ2h0
IChDKSAyMDEzIEdvb2dsZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElucHV0U3RyZWFtUHJlcHJv
Y2Vzc29yX2gKKyNkZWZpbmUgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3JfaAorCisjaW5jbHVkZSAi
U2VnbWVudGVkU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY29uc3QgVUNoYXIga0VuZE9mRmlsZU1hcmtlciA9IDA7CisKKy8v
IGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXBy
b2Nlc3NpbmctdGhlLWlucHV0LXN0cmVhbQordGVtcGxhdGUgPHR5cGVuYW1lIFRva2VuaXplcj4K
K2NsYXNzIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcik7CitwdWJsaWM6CisgICAgSW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3IoVG9rZW5pemVyKiB0b2tlbml6ZXIpCisgICAgICAgIDogbV90b2tlbml6ZXIodG9r
ZW5pemVyKQorICAgIHsKKyAgICAgICAgcmVzZXQoKTsKKyAgICB9CisKKyAgICBBTFdBWVNfSU5M
SU5FIFVDaGFyIG5leHRJbnB1dENoYXJhY3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dElucHV0
Q2hhcmFjdGVyOyB9CisKKyAgICAvLyBSZXR1cm5zIHdoZXRoZXIgd2Ugc3VjY2VlZGVkIGluIHBl
ZWtpbmcgYXQgdGhlIG5leHQgY2hhcmFjdGVyLgorICAgIC8vIFRoZSBvbmx5IHdheSB3ZSBjYW4g
ZmFpbCB0byBwZWVrIGlzIGlmIHRoZXJlIGFyZSBubyBtb3JlCisgICAgLy8gY2hhcmFjdGVycyBp
biB8c291cmNlfCAoYWZ0ZXIgY29sbGFwc2luZyBcclxuLCBldGMpLgorICAgIEFMV0FZU19JTkxJ
TkUgYm9vbCBwZWVrKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQorICAgIHsKKyAgICBQZWVrQWdh
aW46CisgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1cnJlbnRDaGFyKCk7
CisKKyAgICAgICAgLy8gRXZlcnkgYnJhbmNoIGluIHRoaXMgZnVuY3Rpb24gaXMgZXhwZW5zaXZl
LCBzbyB3ZSBoYXZlIGEKKyAgICAgICAgLy8gZmFzdC1yZWplY3QgYnJhbmNoIGZvciBjaGFyYWN0
ZXJzIHRoYXQgZG9uJ3QgcmVxdWlyZSBzcGVjaWFsCisgICAgICAgIC8vIGhhbmRsaW5nLiBQbGVh
c2UgcnVuIHRoZSBwYXJzZXIgYmVuY2htYXJrIHdoZW5ldmVyIHlvdSB0b3VjaAorICAgICAgICAv
LyB0aGlzIGZ1bmN0aW9uLiBJdCdzIHZlcnkgaG90LgorICAgICAgICBzdGF0aWMgY29uc3QgVUNo
YXIgc3BlY2lhbENoYXJhY3Rlck1hc2sgPSAnXG4nIHwgJ1xyJyB8ICdcMCc7CisgICAgICAgIGlm
IChtX25leHRJbnB1dENoYXJhY3RlciAmIH5zcGVjaWFsQ2hhcmFjdGVyTWFzaykgeworICAgICAg
ICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKG1fbmV4dElucHV0Q2hhcmFjdGVyID09ICdcbicg
JiYgbV9za2lwTmV4dE5ld0xpbmUpIHsKKyAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0g
ZmFsc2U7CisgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROZXdsaW5lQW5kVXBkYXRlTGlu
ZU51bWJlcigpOworICAgICAgICAgICAgaWYgKHNvdXJjZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSBz
b3VyY2UuY3VycmVudENoYXIoKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9uZXh0SW5wdXRD
aGFyYWN0ZXIgPT0gJ1xyJykgeworICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIgPSAn
XG4nOworICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSB0cnVlOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBmYWxzZTsKKyAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGUgc3BlYyBpbmRpY2F0ZXMgdGhhdCB0aGUgc3Vycm9nYXRlIHBhaXIgcmFu
Z2UgYXMgd2VsbCBhcworICAgICAgICAgICAgLy8gYSBudW1iZXIgb2Ygc3BlY2lmaWMgY2hhcmFj
dGVyIHZhbHVlcyBhcmUgcGFyc2UgZXJyb3JzIGFuZCBzaG91bGQgYmUgcmVwbGFjZWQKKyAgICAg
ICAgICAgIC8vIGJ5IHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIuIFdlIHN1c3BlY3QgdGhpcyBp
cyBhIHByb2JsZW0gd2l0aCB0aGUgc3BlYyBhcyBkb2luZworICAgICAgICAgICAgLy8gdGhhdCBm
aWx0ZXJpbmcgYnJlYWtzIHN1cnJvZ2F0ZSBwYWlyIGhhbmRsaW5nIGFuZCBjYXVzZXMgdXMgbm90
IHRvIG1hdGNoIE1pbmVmaWVsZC4KKyAgICAgICAgICAgIGlmIChtX25leHRJbnB1dENoYXJhY3Rl
ciA9PSAnXDAnICYmICFzaG91bGRUcmVhdE51bGxBc0VuZE9mRmlsZU1hcmtlcihzb3VyY2UpKSB7
CisgICAgICAgICAgICAgICAgaWYgKG1fdG9rZW5pemVyLT5zaG91bGRTa2lwTnVsbENoYXJhY3Rl
cnMoKSkgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2UuYWR2YW5jZVBhc3ROb25OZXdsaW5l
KCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChzb3VyY2UuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgICAgICBnb3RvIFBl
ZWtBZ2FpbjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9uZXh0SW5wdXRD
aGFyYWN0ZXIgPSAweEZGRkQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorCisgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZXJlIGFyZSBtb3Jl
IGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgYWZ0ZXIgYWR2YW5jaW5nLgorICAgIEFMV0FZU19JTkxJ
TkUgYm9vbCBhZHZhbmNlKFNlZ21lbnRlZFN0cmluZyYgc291cmNlKQorICAgIHsKKyAgICAgICAg
c291cmNlLmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVtYmVyKCk7CisgICAgICAgIGlmIChzb3VyY2Uu
aXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gcGVl
ayhzb3VyY2UpOworICAgIH0KKworICAgIGJvb2wgc2tpcE5leHROZXdMaW5lKCkgY29uc3QgeyBy
ZXR1cm4gbV9za2lwTmV4dE5ld0xpbmU7IH0KKworICAgIHZvaWQgcmVzZXQoYm9vbCBza2lwTmV4
dE5ld0xpbmUgPSBmYWxzZSkKKyAgICB7CisgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0g
J1wwJzsKKyAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBza2lwTmV4dE5ld0xpbmU7CisgICAg
fQorCitwcml2YXRlOgorICAgIGJvb2wgc2hvdWxkVHJlYXROdWxsQXNFbmRPZkZpbGVNYXJrZXIo
U2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc291
cmNlLmlzQ2xvc2VkKCkgJiYgc291cmNlLmxlbmd0aCgpID09IDE7CisgICAgfQorCisgICAgVG9r
ZW5pemVyKiBtX3Rva2VuaXplcjsKKworICAgIC8vIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVj
cy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI25leHQtaW5wdXQtY2hhcmFjdGVyCisgICAgVUNoYXIg
bV9uZXh0SW5wdXRDaGFyYWN0ZXI7CisgICAgYm9vbCBtX3NraXBOZXh0TmV3TGluZTsKK307CisK
K30KKworI2VuZGlmIC8vIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yX2gKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwCmluZGV4IDNiM2YzOGFjZTNlZWI0
NGE4NjQxYjJkNGRkY2YyNTgzZDgzMjhiM2UuLmQ2Nzc1ZTMwNTZkODM3OTc3N2RiNWY5MGNkYTYx
ODEzMWMxN2JhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
VG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2Vu
aXplci5jcHAKQEAgLTQyLDE2ICs0MiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZGVmaW5l
IFdFQlZUVF9BRFZBTkNFX1RPKHN0YXRlTmFtZSkgQURWQU5DRV9UTyhXZWJWVFRUb2tlbml6ZXJT
dGF0ZSwgc3RhdGVOYW1lKQogCiBXZWJWVFRUb2tlbml6ZXI6OldlYlZUVFRva2VuaXplcigpCisg
ICAgOiBtX2lucHV0U3RyZWFtUHJlcHJvY2Vzc29yKHRoaXMpCiB7CiAgICAgcmVzZXQoKTsKIH0K
IAotdGVtcGxhdGU8PgotaW5saW5lIGJvb2wgTWFya3VwVG9rZW5pemVyQmFzZTxXZWJWVFRUb2tl
biwgV2ViVlRUVG9rZW5pemVyU3RhdGU+OjpzaG91bGRTa2lwTnVsbENoYXJhY3RlcnMoKSBjb25z
dAotewotICAgIHJldHVybiB0cnVlOwotfQotCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhcmFjdGVy
VHlwZT4KIGlubGluZSBib29sIHZlY3RvckVxdWFsc1N0cmluZyhjb25zdCBWZWN0b3I8Q2hhcmFj
dGVyVHlwZSwgMzI+JiB2ZWN0b3IsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewpAQCAtOTUsNyAr
OTAsNyBAQCBib29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlLCBXZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgICAgICAgICAgICAgV0VCVlRUX0FEVkFO
Q0VfVE8oVGFnU3RhdGUpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIHJldHVy
biBlbWl0QW5kUmVzdW1lSW4oc291cmNlLCBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6VGFnU3RhdGUp
OwotICAgICAgICB9IGVsc2UgaWYgKGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vzc29yOjplbmRP
ZkZpbGVNYXJrZXIpCisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikK
ICAgICAgICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgYnVmZmVyQ2hhcmFjdGVyKGNjKTsKQEAgLTEyMSw3ICsxMTYsNyBAQCBi
b29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBX
ZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoaXNBU0NJSUFscGhhbnVtZXJp
YyhjYykpIHsKICAgICAgICAgICAgIG1fYnVmZmVyLmFwcGVuZChzdGF0aWNfY2FzdDxMQ2hhcj4o
Y2MpKTsKICAgICAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKEVzY2FwZVN0YXRlKTsKLSAgICAg
ICAgfSBlbHNlIGlmIChjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFy
a2VyKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAg
ICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9DaGFyYWN0ZXIobV9idWZmZXIpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUoc291cmNlKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTE0
NSw3ICsxNDAsNyBAQCBib29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoV1RG
Ojppc0FTQ0lJRGlnaXQoY2MpKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5iZWdpblRpbWVzdGFt
cFRhZyhjYyk7CiAgICAgICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhUaW1lc3RhbXBUYWdTdGF0
ZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJz4nIHx8IGNjID09IElucHV0U3RyZWFtUHJl
cHJvY2Vzc29yOjplbmRPZkZpbGVNYXJrZXIpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAn
PicgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtlcikgewogICAgICAgICAgICAgbV90b2tlbi0+YmVn
aW5FbXB0eVN0YXJ0VGFnKCk7CiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNv
dXJjZSwgV2ViVlRUVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CiAgICAgICAgIH0gZWxzZSB7
CkBAIC0xNjAsNyArMTU1LDcgQEAgYm9vbCBXZWJWVFRUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdt
ZW50ZWRTdHJpbmcmIHNvdXJjZSwgV2ViVlRUVG9rZW4mIHRva2VuKQogICAgICAgICAgICAgV0VC
VlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdBbm5vdGF0aW9uU3RhdGUpOwogICAgICAgICBlbHNlIGlm
IChjYyA9PSAnLicpCiAgICAgICAgICAgICBXRUJWVFRfQURWQU5DRV9UTyhTdGFydFRhZ0NsYXNz
U3RhdGUpOwotICAgICAgICBlbHNlIGlmIChjYyA9PSAnPicgfHwgY2MgPT0gSW5wdXRTdHJlYW1Q
cmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikKKyAgICAgICAgZWxzZSBpZiAoY2MgPT0gJz4n
IHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpCiAgICAgICAgICAgICByZXR1cm4gZW1pdEFuZFJl
c3VtZUluKHNvdXJjZSwgV2ViVlRUVG9rZW5pemVyU3RhdGU6OkRhdGFTdGF0ZSk7CiAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgbV90b2tlbi0+YXBwZW5kVG9OYW1lKGNjKTsKQEAgLTE3Niw3
ICsxNzEsNyBAQCBib29sIFdlYlZUVFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmlu
ZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9rZW4pCiAgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0g
Jy4nKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdDbGFzcygpOwogICAgICAgICAgICAg
V0VCVlRUX0FEVkFOQ0VfVE8oU3RhcnRUYWdDbGFzc1N0YXRlKTsKLSAgICAgICAgfSBlbHNlIGlm
IChjYyA9PSAnPicgfHwgY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1h
cmtlcikgeworICAgICAgICB9IGVsc2UgaWYgKGNjID09ICc+JyB8fCBjYyA9PSBrRW5kT2ZGaWxl
TWFya2VyKSB7CiAgICAgICAgICAgICBtX3Rva2VuLT5hZGROZXdDbGFzcygpOwogICAgICAgICAg
ICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIFdlYlZUVFRva2VuaXplclN0YXRlOjpE
YXRhU3RhdGUpOwogICAgICAgICB9IGVsc2UgewpAQCAtMTg4LDcgKzE4Myw3IEBAIGJvb2wgV2Vi
VlRUVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZUVFRv
a2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQogCiAgICAgV0VCVlRUX0JFR0lOX1NUQVRFKFN0
YXJ0VGFnQW5ub3RhdGlvblN0YXRlKSB7Ci0gICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0g
SW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1hcmtlcikgeworICAgICAgICBpZiAo
Y2MgPT0gJz4nIHx8IGNjID09IGtFbmRPZkZpbGVNYXJrZXIpIHsKICAgICAgICAgICAgIG1fdG9r
ZW4tPmFkZE5ld0Fubm90YXRpb24oKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1l
SW4oc291cmNlLCBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKICAgICAgICAgfQpA
QCAtMTk4LDcgKzE5Myw3IEBAIGJvb2wgV2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZUVFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQog
ICAgIAogICAgIFdFQlZUVF9CRUdJTl9TVEFURShFbmRUYWdPcGVuU3RhdGUpIHsKLSAgICAgICAg
aWYgKGNjID09ICc+JyB8fCBjYyA9PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxl
TWFya2VyKSB7CisgICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0ga0VuZE9mRmlsZU1hcmtl
cikgewogICAgICAgICAgICAgbV90b2tlbi0+YmVnaW5FbmRUYWcoJ1wwJyk7CiAgICAgICAgICAg
ICByZXR1cm4gZW1pdEFuZFJlc3VtZUluKHNvdXJjZSwgV2ViVlRUVG9rZW5pemVyU3RhdGU6OkRh
dGFTdGF0ZSk7CiAgICAgICAgIH0KQEAgLTIwOCw3ICsyMDMsNyBAQCBib29sIFdlYlZUVFRva2Vu
aXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBXZWJWVFRUb2tlbiYgdG9r
ZW4pCiAgICAgRU5EX1NUQVRFKCkKIAogICAgIFdFQlZUVF9CRUdJTl9TVEFURShFbmRUYWdTdGF0
ZSkgewotICAgICAgICBpZiAoY2MgPT0gJz4nIHx8IGNjID09IElucHV0U3RyZWFtUHJlcHJvY2Vz
c29yOjplbmRPZkZpbGVNYXJrZXIpCisgICAgICAgIGlmIChjYyA9PSAnPicgfHwgY2MgPT0ga0Vu
ZE9mRmlsZU1hcmtlcikKICAgICAgICAgICAgIHJldHVybiBlbWl0QW5kUmVzdW1lSW4oc291cmNl
LCBXZWJWVFRUb2tlbml6ZXJTdGF0ZTo6RGF0YVN0YXRlKTsKICAgICAgICAgbV90b2tlbi0+YXBw
ZW5kVG9OYW1lKGNjKTsKICAgICAgICAgV0VCVlRUX0FEVkFOQ0VfVE8oRW5kVGFnU3RhdGUpOwpA
QCAtMjE2LDcgKzIxMSw3IEBAIGJvb2wgV2ViVlRUVG9rZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVu
dGVkU3RyaW5nJiBzb3VyY2UsIFdlYlZUVFRva2VuJiB0b2tlbikKICAgICBFTkRfU1RBVEUoKQog
CiAgICAgV0VCVlRUX0JFR0lOX1NUQVRFKFRpbWVzdGFtcFRhZ1N0YXRlKSB7Ci0gICAgICAgIGlm
IChjYyA9PSAnPicgfHwgY2MgPT0gSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I6OmVuZE9mRmlsZU1h
cmtlcikKKyAgICAgICAgaWYgKGNjID09ICc+JyB8fCBjYyA9PSBrRW5kT2ZGaWxlTWFya2VyKQog
ICAgICAgICAgICAgcmV0dXJuIGVtaXRBbmRSZXN1bWVJbihzb3VyY2UsIFdlYlZUVFRva2VuaXpl
clN0YXRlOjpEYXRhU3RhdGUpOwogICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb1RpbWVzdGFtcChj
Yyk7CiAgICAgICAgIFdFQlZUVF9BRFZBTkNFX1RPKFRpbWVzdGFtcFRhZ1N0YXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5oCmluZGV4IDBmNDViZmQwZWY2
M2U1MWFhZDdjZWNjM2Q1ZGY1ZjMzYTgxZmYwOGMuLmM4ZmY5MjM1ZmU1NjU3MmUzMmYyOGY1NWEx
Y2U3ZjIxMmFjODFjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUVG9rZW5pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tl
bml6ZXIuaApAQCAtMzMsOSArMzMsOSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogCi0j
aW5jbHVkZSAiTWFya3VwVG9rZW5pemVyQmFzZS5oIgotI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmlu
Zy5oIgorI2luY2x1ZGUgIklucHV0U3RyZWFtUHJlcHJvY2Vzc29yLmgiCiAjaW5jbHVkZSAiV2Vi
VlRUVG9rZW4uaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTU0LDIwICs1NCw2MiBAQCBwdWJsaWM6CiAgICAgfTsKIH07CiAKLWNsYXNz
IFdlYlZUVFRva2VuaXplciA6IE1hcmt1cFRva2VuaXplckJhc2U8V2ViVlRUVG9rZW4sIFdlYlZU
VFRva2VuaXplclN0YXRlPiB7CitjbGFzcyBXZWJWVFRUb2tlbml6ZXIgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFdlYlZUVFRva2VuaXplcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViVlRUVG9rZW5pemVyPiBjcmVh
dGUoKSB7IHJldHVybiBhZG9wdFB0cihuZXcgV2ViVlRUVG9rZW5pemVyKTsgfQogCisgICAgdHlw
ZWRlZiBXZWJWVFRUb2tlbml6ZXJTdGF0ZSBTdGF0ZTsKKwogICAgIHZvaWQgcmVzZXQoKTsKICAg
ICAKICAgICBib29sIG5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmLCBXZWJWVFRUb2tlbiYpOwog
CisgICAgaW5saW5lIGJvb2wgaGF2ZUJ1ZmZlcmVkQ2hhcmFjdGVyVG9rZW4oKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fdG9rZW4tPnR5cGUoKSA9PSBXZWJWVFRUb2tlbjo6VHlwZTo6Q2hhcmFj
dGVyOworICAgIH0KKworICAgIGlubGluZSB2b2lkIGJ1ZmZlckNoYXJhY3RlcihVQ2hhciBjaGFy
YWN0ZXIpCisgICAgeworICAgICAgICBBU1NFUlQoY2hhcmFjdGVyICE9IGtFbmRPZkZpbGVNYXJr
ZXIpOworICAgICAgICBtX3Rva2VuLT5lbnN1cmVJc0NoYXJhY3RlclRva2VuKCk7CisgICAgICAg
IG1fdG9rZW4tPmFwcGVuZFRvQ2hhcmFjdGVyKGNoYXJhY3Rlcik7CisgICAgfQorCisgICAgaW5s
aW5lIGJvb2wgZW1pdEFuZFJlc3VtZUluKFNlZ21lbnRlZFN0cmluZyYgc291cmNlLCBTdGF0ZTo6
U3RhdGUgc3RhdGUpCisgICAgeworICAgICAgICBtX3N0YXRlID0gc3RhdGU7CisgICAgICAgIHNv
dXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBlbWl0RW5kT2ZGaWxlKFNlZ21lbnRlZFN0cmluZyYg
c291cmNlKQorICAgIHsKKyAgICAgICAgaWYgKGhhdmVCdWZmZXJlZENoYXJhY3RlclRva2VuKCkp
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpEYXRh
U3RhdGU7CisgICAgICAgIHNvdXJjZS5hZHZhbmNlQW5kVXBkYXRlTGluZU51bWJlcigpOworICAg
ICAgICBtX3Rva2VuLT5jbGVhcigpOworICAgICAgICBtX3Rva2VuLT5tYWtlRW5kT2ZGaWxlKCk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgc2hvdWxkU2tpcE51bGxD
aGFyYWN0ZXJzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcml2YXRlOgogICAgIFdlYlZU
VFRva2VuaXplcigpOwotICAgIAorCisgICAgLy8gbV90b2tlbiBpcyBvd25lZCBieSB0aGUgY2Fs
bGVyLiBJZiBuZXh0VG9rZW4gaXMgbm90IG9uIHRoZSBzdGFjaywKKyAgICAvLyB0aGlzIG1lbWJl
ciBtaWdodCBiZSBwb2ludGluZyB0byB1bmFsbG9jYXRlZCBtZW1vcnkuCisgICAgV2ViVlRUVG9r
ZW4qIG1fdG9rZW47CisgICAgV2ViVlRUVG9rZW5pemVyU3RhdGU6OlN0YXRlIG1fc3RhdGU7CisK
ICAgICBWZWN0b3I8TENoYXIsIDMyPiBtX2J1ZmZlcjsKKworICAgIC8vIDovL3d3dy53aGF0d2cu
b3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jcHJlcHJvY2Vzc2luZy10aGUtaW5wdXQt
c3RyZWFtCisgICAgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I8V2ViVlRUVG9rZW5pemVyPiBtX2lu
cHV0U3RyZWFtUHJlcHJvY2Vzc29yOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUveG1sL3BhcnNlci9NYXJrdXBUb2tlbml6ZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwv
cGFyc2VyL01hcmt1cFRva2VuaXplckJhc2UuaAppbmRleCAwZmM5YzU2OTBiZjM2Mjc2ZjYxZjdj
MmNlMmMzY2E3NWU1OWJlNGE3Li40Nzc3ZDlhM2YzMjUxMTA0OWI2NGM5NGM4ZDU0MTgwNGRlOTcy
MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuaXpl
ckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuaXplckJh
c2UuaApAQCAtMjgsOCArMjgsNyBAQAogI2lmbmRlZiBNYXJrdXBUb2tlbml6ZXJCYXNlX2gKICNk
ZWZpbmUgTWFya3VwVG9rZW5pemVyQmFzZV9oCiAKLSNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcu
aCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlICJJbnB1dFN0cmVhbVBy
ZXByb2Nlc3Nvci5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgpAQCAtNTUsMTAy
ICs1NCwxMSBAQCBwdWJsaWM6CiAgICAgaW5saW5lIGJvb2wgc2hvdWxkU2tpcE51bGxDaGFyYWN0
ZXJzKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICAvLyBodHRwOi8vd3d3LndoYXR3Zy5vcmcv
c3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNwcmVwcm9jZXNzaW5nLXRoZS1pbnB1dC1zdHJl
YW0KLSAgICBjbGFzcyBJbnB1dFN0cmVhbVByZXByb2Nlc3NvciB7Ci0gICAgICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKTsKLSAgICBwdWJsaWM6Ci0gICAg
ICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yKE1hcmt1cFRva2VuaXplckJhc2U8VG9rZW4sIFN0
YXRlPiogdG9rZW5pemVyKQotICAgICAgICAgICAgOiBtX3Rva2VuaXplcih0b2tlbml6ZXIpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIHJlc2V0KCk7Ci0gICAgICAgIH0KLQotICAgICAgICBBTFdB
WVNfSU5MSU5FIFVDaGFyIG5leHRJbnB1dENoYXJhY3RlcigpIGNvbnN0IHsgcmV0dXJuIG1fbmV4
dElucHV0Q2hhcmFjdGVyOyB9Ci0KLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVyIHdlIHN1Y2Nl
ZWRlZCBpbiBwZWVraW5nIGF0IHRoZSBuZXh0IGNoYXJhY3Rlci4KLSAgICAgICAgLy8gVGhlIG9u
bHkgd2F5IHdlIGNhbiBmYWlsIHRvIHBlZWsgaXMgaWYgdGhlcmUgYXJlIG5vIG1vcmUKLSAgICAg
ICAgLy8gY2hhcmFjdGVycyBpbiB8c291cmNlfCAoYWZ0ZXIgY29sbGFwc2luZyBcclxuLCBldGMp
LgotICAgICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgcGVlayhTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSkKLSAgICAgICAgewotICAgICAgICBQZWVrQWdhaW46Ci0gICAgICAgICAgICBtX25leHRJbnB1
dENoYXJhY3RlciA9IHNvdXJjZS5jdXJyZW50Q2hhcigpOwotCi0gICAgICAgICAgICAvLyBFdmVy
eSBicmFuY2ggaW4gdGhpcyBmdW5jdGlvbiBpcyBleHBlbnNpdmUsIHNvIHdlIGhhdmUgYQotICAg
ICAgICAgICAgLy8gZmFzdC1yZWplY3QgYnJhbmNoIGZvciBjaGFyYWN0ZXJzIHRoYXQgZG9uJ3Qg
cmVxdWlyZSBzcGVjaWFsCi0gICAgICAgICAgICAvLyBoYW5kbGluZy4gUGxlYXNlIHJ1biB0aGUg
cGFyc2VyIGJlbmNobWFyayB3aGVuZXZlciB5b3UgdG91Y2gKLSAgICAgICAgICAgIC8vIHRoaXMg
ZnVuY3Rpb24uIEl0J3MgdmVyeSBob3QuCi0gICAgICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIg
c3BlY2lhbENoYXJhY3Rlck1hc2sgPSAnXG4nIHwgJ1xyJyB8ICdcMCc7Ci0gICAgICAgICAgICBp
ZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgJiB+c3BlY2lhbENoYXJhY3Rlck1hc2spIHsKLSAgICAg
ICAgICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IGZhbHNlOwotICAgICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRD
aGFyYWN0ZXIgPT0gJ1xuJyAmJiBtX3NraXBOZXh0TmV3TGluZSkgewotICAgICAgICAgICAgICAg
IG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc291cmNlLmFkdmFu
Y2VQYXN0TmV3bGluZUFuZFVwZGF0ZUxpbmVOdW1iZXIoKTsKLSAgICAgICAgICAgICAgICBpZiAo
c291cmNlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gc291cmNlLmN1cnJlbnRDaGFyKCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobV9uZXh0SW5wdXRDaGFyYWN0ZXIgPT0g
J1xyJykgewotICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFjdGVyID0gJ1xuJzsKLSAg
ICAgICAgICAgICAgICBtX3NraXBOZXh0TmV3TGluZSA9IHRydWU7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIG1fc2tpcE5leHROZXdMaW5lID0gZmFsc2U7Ci0gICAgICAg
ICAgICAgICAgLy8gRklYTUU6IFRoZSBzcGVjIGluZGljYXRlcyB0aGF0IHRoZSBzdXJyb2dhdGUg
cGFpciByYW5nZSBhcyB3ZWxsIGFzCi0gICAgICAgICAgICAgICAgLy8gYSBudW1iZXIgb2Ygc3Bl
Y2lmaWMgY2hhcmFjdGVyIHZhbHVlcyBhcmUgcGFyc2UgZXJyb3JzIGFuZCBzaG91bGQgYmUgcmVw
bGFjZWQKLSAgICAgICAgICAgICAgICAvLyBieSB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLiBX
ZSBzdXNwZWN0IHRoaXMgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNwZWMgYXMgZG9pbmcKLSAgICAg
ICAgICAgICAgICAvLyB0aGF0IGZpbHRlcmluZyBicmVha3Mgc3Vycm9nYXRlIHBhaXIgaGFuZGxp
bmcgYW5kIGNhdXNlcyB1cyBub3QgdG8gbWF0Y2ggTWluZWZpZWxkLgotICAgICAgICAgICAgICAg
IGlmIChtX25leHRJbnB1dENoYXJhY3RlciA9PSAnXDAnICYmICFzaG91bGRUcmVhdE51bGxBc0Vu
ZE9mRmlsZU1hcmtlcihzb3VyY2UpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtX3Rva2Vu
aXplci0+c2hvdWxkU2tpcE51bGxDaGFyYWN0ZXJzKCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHNvdXJjZS5hZHZhbmNlUGFzdE5vbk5ld2xpbmUoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChzb3VyY2UuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gUGVla0FnYWluOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIG1fbmV4dElucHV0Q2hhcmFj
dGVyID0gMHhGRkZEOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gUmV0dXJucyB3aGV0aGVy
IHRoZXJlIGFyZSBtb3JlIGNoYXJhY3RlcnMgaW4gfHNvdXJjZXwgYWZ0ZXIgYWR2YW5jaW5nLgot
ICAgICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgYWR2YW5jZShTZWdtZW50ZWRTdHJpbmcmIHNvdXJj
ZSkKLSAgICAgICAgewotICAgICAgICAgICAgc291cmNlLmFkdmFuY2VBbmRVcGRhdGVMaW5lTnVt
YmVyKCk7Ci0gICAgICAgICAgICBpZiAoc291cmNlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICByZXR1cm4gcGVlayhzb3VyY2UpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgYm9vbCBza2lwTmV4dE5ld0xpbmUoKSBjb25zdCB7IHJldHVybiBtX3Nr
aXBOZXh0TmV3TGluZTsgfQotCi0gICAgICAgIHZvaWQgcmVzZXQoYm9vbCBza2lwTmV4dE5ld0xp
bmUgPSBmYWxzZSkKLSAgICAgICAgewotICAgICAgICAgICAgbV9uZXh0SW5wdXRDaGFyYWN0ZXIg
PSAnXDAnOwotICAgICAgICAgICAgbV9za2lwTmV4dE5ld0xpbmUgPSBza2lwTmV4dE5ld0xpbmU7
Ci0gICAgICAgIH0KLQotICAgICAgICBzdGF0aWMgY29uc3QgVUNoYXIgZW5kT2ZGaWxlTWFya2Vy
ID0gMDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGJvb2wgc2hvdWxkVHJlYXROdWxsQXNFbmRP
ZkZpbGVNYXJrZXIoU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UpIGNvbnN0Ci0gICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBzb3VyY2UuaXNDbG9zZWQoKSAmJiBzb3VyY2UubGVuZ3RoKCkgPT0g
MTsKLSAgICAgICAgfQotCi0gICAgICAgIE1hcmt1cFRva2VuaXplckJhc2U8VG9rZW4sIFN0YXRl
PiogbV90b2tlbml6ZXI7Ci0KLSAgICAgICAgLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNz
L3dlYi1hcHBzL2N1cnJlbnQtd29yay8jbmV4dC1pbnB1dC1jaGFyYWN0ZXIKLSAgICAgICAgVUNo
YXIgbV9uZXh0SW5wdXRDaGFyYWN0ZXI7Ci0gICAgICAgIGJvb2wgbV9za2lwTmV4dE5ld0xpbmU7
Ci0gICAgfTsKLQogICAgIE1hcmt1cFRva2VuaXplckJhc2UoKSA6IG1faW5wdXRTdHJlYW1QcmVw
cm9jZXNzb3IodGhpcykgeyByZXNldCgpOyB9CiAKICAgICBpbmxpbmUgdm9pZCBidWZmZXJDaGFy
YWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGNoYXJhY3RlciAh
PSBJbnB1dFN0cmVhbVByZXByb2Nlc3Nvcjo6ZW5kT2ZGaWxlTWFya2VyKTsKKyAgICAgICAgQVNT
RVJUKGNoYXJhY3RlciAhPSBrRW5kT2ZGaWxlTWFya2VyKTsKICAgICAgICAgbV90b2tlbi0+ZW5z
dXJlSXNDaGFyYWN0ZXJUb2tlbigpOwogICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb0NoYXJhY3Rl
cihjaGFyYWN0ZXIpOwogICAgIH0KQEAgLTIwNiw3ICsxMTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
VUNoYXIgbV9hZGRpdGlvbmFsQWxsb3dlZENoYXJhY3RlcjsKIAogICAgIC8vIGh0dHA6Ly93d3cu
d2hhdHdnLm9yZy9zcGVjcy93ZWItYXBwcy9jdXJyZW50LXdvcmsvI3ByZXByb2Nlc3NpbmctdGhl
LWlucHV0LXN0cmVhbQotICAgIElucHV0U3RyZWFtUHJlcHJvY2Vzc29yIG1faW5wdXRTdHJlYW1Q
cmVwcm9jZXNzb3I7CisgICAgSW5wdXRTdHJlYW1QcmVwcm9jZXNzb3I8TWFya3VwVG9rZW5pemVy
QmFzZTxUb2tlbiwgU3RhdGU+ID4gbV9pbnB1dFN0cmVhbVByZXByb2Nlc3NvcjsKIH07CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>