<?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>189238</bug_id>
          
          <creation_ts>2018-09-03 02:37:59 -0700</creation_ts>
          <short_desc>[GStreamer][EME][webm] Add the WebM encrypted content support in matroskademux</short_desc>
          <delta_ts>2018-10-11 09:24:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>190253</dependson>
          <blocked>189239</blocked>
    
    <blocked>189240</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yacine Bandou">bandou.yacine</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboya</cc>
    
    <cc>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>cturner</cc>
    
    <cc>olivier.blin</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1456134</commentid>
    <comment_count>0</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-09-03 02:37:59 -0700</bug_when>
    <thetext>Modifications on GstMatroskaDemux tracked in GStreamer bugzilla:
https://bugzilla.gnome.org/show_bug.cgi?id=765275
https://bugzilla.gnome.org/attachment.cgi?id=365211</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456136</commentid>
    <comment_count>1</comment_count>
      <attachid>348764</attachid>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-09-03 02:57:29 -0700</bug_when>
    <thetext>Created attachment 348764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1456159</commentid>
    <comment_count>2</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-09-03 06:27:39 -0700</bug_when>
    <thetext>Looks good, I&apos;ll let Charlie have a look as well and we can land this here when it does upstream or it is needed for something else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466138</commentid>
    <comment_count>3</comment_count>
      <attachid>351538</attachid>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-10-03 11:32:00 -0700</bug_when>
    <thetext>Created attachment 351538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466672</commentid>
    <comment_count>4</comment_count>
      <attachid>351538</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-10-05 06:07:35 -0700</bug_when>
    <thetext>Comment on attachment 351538
Patch

We need changes of bug 190253 as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466675</commentid>
    <comment_count>5</comment_count>
      <attachid>351670</attachid>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-10-05 06:38:34 -0700</bug_when>
    <thetext>Created attachment 351670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466994</commentid>
    <comment_count>6</comment_count>
      <attachid>351670</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-07 23:18:24 -0700</bug_when>
    <thetext>Comment on attachment 351670
Patch

Clearing flags on attachment: 351670

Committed r236911: &lt;https://trac.webkit.org/changeset/236911&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466995</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-07 23:18:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1466996</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-07 23:19:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/45080591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468027</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-10-11 08:22:41 -0700</bug_when>
    <thetext>Why are those patches needed? I&apos;d rather flag related layout tests than adding them, to be honest.

The use of GST_PROTECTION_UNSPECIFIED_SYSTEM_ID without wrapping ifdef broke the build BTW.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468034</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-10-11 08:39:14 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=190471</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468042</commentid>
    <comment_count>11</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-10-11 09:08:17 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #9)
&gt; Why are those patches needed? I&apos;d rather flag related layout tests than
&gt; adding them, to be honest.

They are needed for encrypted WebM.

media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse.html
media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html

&gt; 
&gt; The use of GST_PROTECTION_UNSPECIFIED_SYSTEM_ID without wrapping ifdef broke
&gt; the build BTW.

I don&apos;t understand how it broke the build, if you have updated your jhbuild.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468047</commentid>
    <comment_count>12</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-10-11 09:14:11 -0700</bug_when>
    <thetext>(In reply to Yacine Bandou from comment #11)
&gt; (In reply to Philippe Normand from comment #9)
&gt; &gt; Why are those patches needed? I&apos;d rather flag related layout tests than
&gt; &gt; adding them, to be honest.
&gt; 
&gt; They are needed for encrypted WebM.
&gt; 
&gt; media/encrypted-media/clearKey/clearKey-encrypted-webm-event-mse.html
&gt; media/encrypted-media/clearKey/clearKey-webm-video-playback-mse.html
&gt; 

Can&apos;t we flag/skip these two until gst 1.16 is released? By the end of the year hopefully.

&gt; &gt; 
&gt; &gt; The use of GST_PROTECTION_UNSPECIFIED_SYSTEM_ID without wrapping ifdef broke
&gt; &gt; the build BTW.
&gt; 
&gt; I don&apos;t understand how it broke the build, if you have updated your jhbuild.

Because I didn&apos;t use jhbuild. Whenever possible we should try to avoid frankensteining our jhbuild with patches, especially those adding new API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468050</commentid>
    <comment_count>13</comment_count>
    <who name="Yacine Bandou">bandou.yacine</who>
    <bug_when>2018-10-11 09:24:13 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #12)
&gt; (In reply to Yacine Bandou from comment #11)
&gt; &gt; (In reply to Philippe Normand from comment #9)
&gt; &gt; 
&gt; &gt; I don&apos;t understand how it broke the build, if you have updated your jhbuild.
&gt; 
&gt; Because I didn&apos;t use jhbuild. Whenever possible we should try to avoid
&gt; frankensteining our jhbuild with patches, especially those adding new API.

Understood.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348764</attachid>
            <date>2018-09-03 02:57:29 -0700</date>
            <delta_ts>2018-10-03 11:31:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189238-20180903115728.patch</filename>
            <type>text/plain</type>
            <size>35852</size>
            <attacher name="Yacine Bandou">bandou.yacine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTg1MTY3ODFmNjZlOTM0ZWRkNzNkNjI4MDdiZjRiY2M5
MzdkMGE3OC4uMWMyNzJiZWRhYTk0NDM1OGJmNjBmOTM2ZDljNWY2MzRmZjk3MmI1NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE4LTA5LTAzICBZYWNpbmUgQmFuZG91ICA8eWFjaW5lLmJhbmRvdV9leHRAc29mdGF0
aG9tZS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bRU1FXVt3ZWJtXSBBZGQgdGhlIFdlYk0g
ZW5jcnlwdGVkIGNvbnRlbnQgc3VwcG9ydCBpbiBtYXRyb3NrYWRlbXV4CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkyMzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmljYXRpb25zIG9uIEdzdE1h
dHJvc2thRGVtdXggdHJhY2tlZCBpbiBHU3RyZWFtZXIgYnVnemlsbGE6CisgICAgICAgIGh0dHBz
Oi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUyNzUKKyAgICAgICAgaHR0
cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9MzY1MjExCisKKyAgICAg
ICAgKiBnc3RyZWFtZXIvamhidWlsZC5tb2R1bGVzOiBBZGQgbmV3IHBhdGNoLgorICAgICAgICAq
IGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNC1tYXRyb3NrYS1BZGQtdGhl
LVdlYk0tZW5jcnlwdGVkLWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoOiBBZGRlZC4KKwogMjAx
OC0wOC0zMSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YktpdExhdW5jaGVyOiBNb3ZlIFdlYktpdExhdW5jaGVyLmVudGl0bGVtZW50cyBpbnRvIENvbmZp
Z3VyYXRpb25zIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQu
bW9kdWxlcyBiL1Rvb2xzL2dzdHJlYW1lci9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggYWMzODg1Mzkw
MWQzMGE2ZWZlNjFiNzcxZDVlNWQyNzVhMThhZTQwZC4uNzAyNTY5ODY0MGYxOTAzZDU4MDRmZWZj
Njc5ZDdlMDE4OTdjNDRkZSAxMDA2NDQKLS0tIGEvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQubW9k
dWxlcworKysgYi9Ub29scy9nc3RyZWFtZXIvamhidWlsZC5tb2R1bGVzCkBAIC03NCw2ICs3NCw3
IEBACiAgICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDAxLXF0ZGVtdXgtRG8t
bm90LXJ1bi10aGUtcHJlZmVycmVkLWRlY3J5cHRvci1jb250ZXh0LXEucGF0Y2giIHN0cmlwPSIx
IiAvPiA8IS0tIE1lcmdlZCBhcyAzZTA2MzcwM2IzYTUxYjhhYWE3Zjc1ZjM2YzQ2NjBjNTgzYTYw
ZTkzIC0tPgogICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwMi1xdGRlbXV4
LURvLW5vdC11bnJlZi1hLU5VTEwtc3RyZWFtX3RhZ3MucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0t
IE1lcmdlZCBhcyA0M2E1NDBiMWNkOWYxNjJkM2RhZTVkNTBlMzY3MDNkZmFmNTU4YTNlIC0tPgog
ICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwMy1xdGRlbXV4LUNsYXJpZnkt
ZmllbGQtbmFtZS1hYm91dC1zdHJlYW0tZW5jcnlwdGlvbi1zLnBhdGNoIiBzdHJpcD0iMSIgLz4g
PCEtLSBNZXJnZWQgYXMgMGZiZGUyYTA3OTI4YmE3OWI3YTRkZGI0NTg1ZjZiMWRlMzZhNzRiYiAt
LT4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLTAwMDQtbWF0cm9za2EtQWRk
LXRoZS1XZWJNLWVuY3J5cHRlZC1jb250ZW50LXN1cHBvcnQtaW4tbS5wYXRjaCIgc3RyaXA9IjEi
IC8+IDwhLS0gaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc2NTI3
NSAtLT4KICAgICA8L2JyYW5jaD4KICAgPC9hdXRvdG9vbHM+CiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNC1tYXRyb3NrYS1BZGQtdGhl
LVdlYk0tZW5jcnlwdGVkLWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoIGIvVG9vbHMvZ3N0cmVh
bWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDA0LW1hdHJvc2thLUFkZC10aGUtV2ViTS1l
bmNyeXB0ZWQtY29udGVudC1zdXBwb3J0LWluLW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTM3NzAyMzJk
MzQ0YzhkMDVjOThiNjQ2ZGEyODM4YTRmN2I0NGZkYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAwNC1tYXRyb3NrYS1BZGQtdGhl
LVdlYk0tZW5jcnlwdGVkLWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoCkBAIC0wLDAgKzEsODUx
IEBACisKK0Zyb20gMjU5M2E5ZDJhYWJjMTI5NjBhYjA3ZjM0YjhjZTA2ZDY0OTEzZmEzMyBNb24g
U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFlhY2luZSBCYW5kb3UgPHlhY2luZS5iYW5kb3Vf
ZXh0QHNvZnRhdGhvbWUuY29tPgorRGF0ZTogVGh1LCA3IERlYyAyMDE3IDE5OjA5OjE2ICswMTAw
CitTdWJqZWN0OiBbUEFUQ0hdIG1hdHJvc2thOiBBZGQgdGhlIFdlYk0gZW5jcnlwdGVkIGNvbnRl
bnQgc3VwcG9ydCBpbgorIG1hdHJvc2thZGVtdXgKKworVGhpcyBjb21taXQ6CisKKzEuIFJlYWRz
IHRoZSBXZWJNIGFuZCBNYXRyb3NrYSBDb250ZW50RW5jcnlwdGlvbiBzdWJlbGVtZW50cy4KKwor
Mi4gQ3JlYXRlcyBhIEdTVF9QUk9URUNUSU9OIGV2ZW50IGZvciBlYWNoIENvbnRlbnRFbmNyeXB0
aW9uLCB3aGljaAorICAgd2lsbCBiZSBzZW50IGJlZm9yZSBwdXNoaW5nIHRoZSBmaXJzdCBzb3Vy
Y2UgYnVmZmVyLgorICAgVGhlIERSTSBzeXN0ZW0gaWQgZmllbGQgaW4gdGhpcyBldmVudCBpcyBz
ZXQgdG8gIlVOREVGSU5FRCIgYmVjYXVzZQorICAgaXQgaXNuJ3Qgc3BlY2lmaWVkIG5laXRoZXIg
YnkgTWF0cm9za2Egbm9yIGJ5IHRoZSBXZWJNIHNwZWMuCisKKzMuIFJlYWRzIHRoZSBwcm90ZWN0
aW9uIGluZm9ybWF0aW9uIG9mIGVuY3J5cHRlZCBCbG9jay9TaW1wbGVCbG9jayBhbmQKKyAgIGV4
dHJhY3RzIHRoZSBJViBhbmQgdGhlIHBhcnRpdGlvbmluZyBmb3JtYXQgKHN1YnNhbXBsZXMpLgor
Cis0LiBDcmVhdGVzIHRoZSBtZXRhZGF0YSBwcm90ZWN0aW9uIGZvciBlYWNoIGVuY3J5cHRlZCBC
bG9jay9TaW1wbGVCbG9jaywKKyAgIHdpdGggdGhvc2UgaW5mb3JtYXRpb25zOiBLZXlJRCAoZXh0
cmFjdGVkIGZyb20gQ29udGVudEVuY3J5cHRpb24gZWxlbWVudCksCisgICBJViBhbmQgcGFydGl0
aW9uaW5nIGZvcm1hdC4KKworNS4gQWRkcyBhIG5ldyBjYXBzIGZvciBXZWJNIGVuY3J5cHRlZCBj
b250ZW50IG5hbWVkICJhcHBsaWNhdGlvbi94LXdlYm0tZW5jIiwKKyAgIHdpdGggdGhlIGZvbGxv
d2luZyBuZXcgZmllbGRzOgorCisgICAiZW5jcnlwdGlvbi1hbGdvcml0aG0iOiBUaGUgZW5jcnlw
dGlvbiBhbGdvcml0aG0gdXNlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlczog
Ik5vbmUiLCAiREVTIiwgIjNERVMiLCAiVHdvZmlzaCIsICJCbG93ZmlzaCIsICJBRVMiLgorCisg
ICAiZW5jb2Rpbmctc2NvcGUiOiBUaGUgZmllbGQgdGhhdCBkZXNjcmliZXMgd2hpY2ggRWxlbWVu
dHMgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgICAgICAgICAgICAgICAgICAgVmFsdWVzOiAiZnJh
bWUiLCAiY29kZWMtZGF0YSIsICJuZXh0LWNvbnRlbnQiLgorCisgICAiY2lwaGVyLW1vZGUiOiBU
aGUgY2lwaGVyIG1vZGUgdXNlZCBpbiB0aGUgZW5jcnlwdGlvbi4KKyAgICAgICAgICAgICAgICAg
IFZhbHVlczogIk5vbmUiLCAiQ1RSIi4KKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hv
d19idWcuY2dpP2lkPTc2NTI3NQorLS0tCisgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMg
ICAgICAgfCAxMjcgKysrKysrKysrKysrLQorIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYyAg
ICAgICAgIHwgIDczICsrKysrKysrCisgZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oICAgICAg
ICAgfCAgNTMgKysrKysrCisgZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMgfCAz
NTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCisgZ3N0L21hdHJvc2thL21h
dHJvc2thLXJlYWQtY29tbW9uLmggfCAgIDMgKworIDUgZmlsZXMgY2hhbmdlZCwgNTkyIGluc2Vy
dGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2thL21h
dHJvc2thLWRlbXV4LmMgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYworaW5kZXggZWVl
NDFkNjU1Li4wMTc4NGRlMTggMTAwNjQ0CistLS0gYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVt
dXguYworKysrIGIvZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKK0BAIC0xNjksNiArMTY5
LDkgQEAgc3RhdGljIEdzdENhcHMgKmdzdF9tYXRyb3NrYV9kZW11eF9hdWRpb19jYXBzIChHc3RN
YXRyb3NrYVRyYWNrQXVkaW9Db250ZXh0Cisgc3RhdGljIEdzdENhcHMKKyAgICAgKiBnc3RfbWF0
cm9za2FfZGVtdXhfc3VidGl0bGVfY2FwcyAoR3N0TWF0cm9za2FUcmFja1N1YnRpdGxlQ29udGV4
dCAqCisgICAgIHN1YnRpdGxlY29udGV4dCwgY29uc3QgZ2NoYXIgKiBjb2RlY19pZCwgZ3BvaW50
ZXIgZGF0YSwgZ3VpbnQgc2l6ZSk7Cisrc3RhdGljIGNvbnN0IGdjaGFyICpnc3RfbWF0cm9za2Ff
dHJhY2tfZW5jcnlwdGlvbl9hbGdvcml0aG1fbmFtZSAoZ2ludCB2YWwpOworK3N0YXRpYyBjb25z
dCBnY2hhciAqZ3N0X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfbmFtZSAo
Z2ludCB2YWwpOworK3N0YXRpYyBjb25zdCBnY2hhciAqZ3N0X21hdHJvc2thX3RyYWNrX2VuY29k
aW5nX3Njb3BlX25hbWUgKGdpbnQgdmFsKTsKKyAKKyAvKiBzdHJlYW0gbWV0aG9kcyAqLworIHN0
YXRpYyB2b2lkIGdzdF9tYXRyb3NrYV9kZW11eF9yZXNldCAoR3N0RWxlbWVudCAqIGVsZW1lbnQp
OworQEAgLTM0MiwxMiArMzQ1LDEzIEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RN
YXRyb3NrYVRyYWNrQ29udGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAgIEdzdE1h
cEluZm8gbWFwOworICAgZ3BvaW50ZXIgZGF0YTsKKyAgIGdzaXplIHNpemU7CisrICBHc3RCdWZm
ZXIgKm91dF9idWYgPSBidWY7CisgCisgICBnX3JldHVybl92YWxfaWZfZmFpbCAoR1NUX0lTX0JV
RkZFUiAoYnVmKSwgTlVMTCk7CisgCisgICBHU1RfREVCVUcgKCJkZWNvZGluZyBidWZmZXIgJXAi
LCBidWYpOworIAorLSAgZ3N0X2J1ZmZlcl9tYXAgKGJ1ZiwgJm1hcCwgR1NUX01BUF9SRUFEKTsK
KysgIGdzdF9idWZmZXJfbWFwIChvdXRfYnVmLCAmbWFwLCBHU1RfTUFQX1JFQUQpOworICAgZGF0
YSA9IG1hcC5kYXRhOworICAgc2l6ZSA9IG1hcC5zaXplOworIAorQEAgLTM1NSwxNSArMzU5LDU0
IEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAq
IGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAKKyAgIGlmIChnc3RfbWF0cm9za2FfZGVjb2Rl
X2RhdGEgKGNvbnRleHQtPmVuY29kaW5ncywgJmRhdGEsICZzaXplLAorICAgICAgICAgICBHU1Rf
TUFUUk9TS0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVfRlJBTUUsIEZBTFNFKSkgeworLSAgICBnc3Rf
YnVmZmVyX3VubWFwIChidWYsICZtYXApOworLSAgICBnc3RfYnVmZmVyX3VucmVmIChidWYpOwor
LSAgICByZXR1cm4gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoZGF0YSwgc2l6ZSk7CisrICAgIGdz
dF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOworKyAgICBpZiAoZGF0YSAhPSBtYXAuZGF0
YSkgeworKyAgICAgIGdzdF9idWZmZXJfdW5yZWYgKG91dF9idWYpOworKyAgICAgIG91dF9idWYg
PSBnc3RfYnVmZmVyX25ld193cmFwcGVkIChkYXRhLCBzaXplKTsKKysgICAgfQorICAgfSBlbHNl
IHsKKyAgICAgR1NUX0RFQlVHICgiZGVjb2RlIGRhdGEgZmFpbGVkIik7CistICAgIGdzdF9idWZm
ZXJfdW5tYXAgKGJ1ZiwgJm1hcCk7CistICAgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zik7CisrICAg
IGdzdF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOworKyAgICBnc3RfYnVmZmVyX3VucmVm
IChvdXRfYnVmKTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CisrICAvKiBFbmNyeXB0ZWQgc3Ry
ZWFtICovCisrICBpZiAoY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvKSB7CisrCisrICAgIEdzdFN0
cnVjdHVyZSAqaW5mb19wcm90ZWN0ID0gZ3N0X3N0cnVjdHVyZV9jb3B5IChjb250ZXh0LT5wcm90
ZWN0aW9uX2luZm8pOworKyAgICBnYm9vbGVhbiBlbmNyeXB0ZWQgPSBGQUxTRTsKKysKKysgICAg
Z3N0X2J1ZmZlcl9tYXAgKG91dF9idWYsICZtYXAsIEdTVF9NQVBfUkVBRCk7CisrICAgIGRhdGEg
PSBtYXAuZGF0YTsKKysgICAgc2l6ZSA9IG1hcC5zaXplOworKworKyAgICBpZiAoZ3N0X21hdHJv
c2thX3BhcnNlX3Byb3RlY3Rpb25fbWV0YSAoJmRhdGEsICZzaXplLCBpbmZvX3Byb3RlY3QsCisr
ICAgICAgICAgICAgJmVuY3J5cHRlZCkpIHsKKysgICAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRf
YnVmLCAmbWFwKTsKKysgICAgICBpZiAoZGF0YSAhPSBtYXAuZGF0YSkgeworKyAgICAgICAgR3N0
QnVmZmVyICp0bXBfYnVmID0gb3V0X2J1ZjsKKysgICAgICAgIG91dF9idWYgPQorKyAgICAgICAg
ICAgIGdzdF9idWZmZXJfY29weV9yZWdpb24gKHRtcF9idWYsIEdTVF9CVUZGRVJfQ09QWV9BTEws
CisrICAgICAgICAgICAgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSAodG1wX2J1ZikgLSBzaXplLCBzaXpl
KTsKKysgICAgICAgIGdzdF9idWZmZXJfdW5yZWYgKHRtcF9idWYpOworKyAgICAgICAgaWYgKGVu
Y3J5cHRlZCkKKysgICAgICAgICAgZ3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChvdXRf
YnVmLCBpbmZvX3Byb3RlY3QpOworKyAgICAgICAgZWxzZQorKyAgICAgICAgICBnc3Rfc3RydWN0
dXJlX2ZyZWUgKGluZm9fcHJvdGVjdCk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIGdzdF9z
dHJ1Y3R1cmVfZnJlZSAoaW5mb19wcm90ZWN0KTsKKysgICAgICB9CisrCisrICAgIH0gZWxzZSB7
CisrICAgICAgR1NUX0RFQlVHICgiQWRkaW5nIHByb3RlY3Rpb24gbWV0YWRhdGEgZmFpbGVkIik7
CisrICAgICAgZ3N0X2J1ZmZlcl91bm1hcCAob3V0X2J1ZiwgJm1hcCk7CisrICAgICAgZ3N0X2J1
ZmZlcl91bnJlZiAob3V0X2J1Zik7CisrICAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlIChpbmZvX3By
b3RlY3QpOworKyAgICAgIHJldHVybiBOVUxMOworKyAgICB9CisrICB9CisrCisrICByZXR1cm4g
b3V0X2J1ZjsKKyB9CisgCisgc3RhdGljIHZvaWQKK0BAIC02MjAsNiArNjYzLDggQEAgZ3N0X21h
dHJvc2thX2RlbXV4X2FkZF9zdHJlYW0gKEdzdE1hdHJvc2thRGVtdXggKiBkZW11eCwgR3N0RWJt
bFJlYWQgKiBlYm1sKQorICAgY29udGV4dC0+ZHRzX29ubHkgPSBGQUxTRTsKKyAgIGNvbnRleHQt
PmludHJhX29ubHkgPSBGQUxTRTsKKyAgIGNvbnRleHQtPnRhZ3MgPSBnc3RfdGFnX2xpc3RfbmV3
X2VtcHR5ICgpOworKyAgZ19xdWV1ZV9pbml0ICgmY29udGV4dC0+cHJvdGVjdGlvbl9ldmVudF9x
dWV1ZSk7CisrICBjb250ZXh0LT5wcm90ZWN0aW9uX2luZm8gPSBOVUxMOworICAgZGVtdXgtPmNv
bW1vbi5udW1fc3RyZWFtcysrOworICAgZ19hc3NlcnQgKGRlbXV4LT5jb21tb24uc3JjLT5sZW4g
PT0gZGVtdXgtPmNvbW1vbi5udW1fc3RyZWFtcyk7CisgCitAQCAtMTQ2OCw2ICsxNTEzLDMxIEBA
IGdzdF9tYXRyb3NrYV9kZW11eF9hZGRfc3RyZWFtIChHc3RNYXRyb3NrYURlbXV4ICogZGVtdXgs
IEdzdEVibWxSZWFkICogZWJtbCkKKyAgICAgICAgIGNvbnRleHQtPnN0cmVhbV9oZWFkZXJzLCBj
YXBzKTsKKyAgIH0KKyAKKysgIGlmIChjb250ZXh0LT5lbmNvZGluZ3MpIHsKKysgICAgR3N0TWF0
cm9za2FUcmFja0VuY29kaW5nICplbmM7CisrICAgIGd1aW50IGk7CisrCisrICAgIGZvciAoaSA9
IDA7IGkgPCBjb250ZXh0LT5lbmNvZGluZ3MtPmxlbjsgaSsrKSB7CisrICAgICAgZW5jID0gJmdf
YXJyYXlfaW5kZXggKGNvbnRleHQtPmVuY29kaW5ncywgR3N0TWF0cm9za2FUcmFja0VuY29kaW5n
LCBpKTsKKysgICAgICBpZiAoZW5jLT50eXBlID09IEdTVF9NQVRST1NLQV9FTkNPRElOR19FTkNS
WVBUSU9OIC8qIGVuY3J5cHRpb24gKi8gKSB7CisrICAgICAgICBHc3RTdHJ1Y3R1cmUgKnMgPSBn
c3RfY2Fwc19nZXRfc3RydWN0dXJlIChjYXBzLCAwKTsKKysgICAgICAgIGlmICghZ3N0X3N0cnVj
dHVyZV9oYXNfbmFtZSAocywgImFwcGxpY2F0aW9uL3gtd2VibS1lbmMiKSkgeworKyAgICAgICAg
ICBnc3Rfc3RydWN0dXJlX3NldCAocywgIm9yaWdpbmFsLW1lZGlhLXR5cGUiLCBHX1RZUEVfU1RS
SU5HLAorKyAgICAgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9nZXRfbmFtZSAocyksIE5VTEwpOwor
KyAgICAgICAgICBnc3Rfc3RydWN0dXJlX3NldCAocywgImVuY3J5cHRpb24tYWxnb3JpdGhtIiwg
R19UWVBFX1NUUklORywKKysgICAgICAgICAgICAgIGdzdF9tYXRyb3NrYV90cmFja19lbmNyeXB0
aW9uX2FsZ29yaXRobV9uYW1lIChlbmMtPmVuY19hbGdvKSwKKysgICAgICAgICAgICAgIE5VTEwp
OworKyAgICAgICAgICBnc3Rfc3RydWN0dXJlX3NldCAocywgImVuY29kaW5nLXNjb3BlIiwgR19U
WVBFX1NUUklORywKKysgICAgICAgICAgICAgIGdzdF9tYXRyb3NrYV90cmFja19lbmNvZGluZ19z
Y29wZV9uYW1lIChlbmMtPnNjb3BlKSwgTlVMTCk7CisrICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVf
c2V0IChzLCAiY2lwaGVyLW1vZGUiLCBHX1RZUEVfU1RSSU5HLAorKyAgICAgICAgICAgICAgZ3N0
X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfbmFtZQorKyAgICAgICAgICAg
ICAgKGVuYy0+ZW5jX2NpcGhlcl9tb2RlKSwgTlVMTCk7CisrICAgICAgICAgIGdzdF9zdHJ1Y3R1
cmVfc2V0X25hbWUgKHMsICJhcHBsaWNhdGlvbi94LXdlYm0tZW5jIik7CisrICAgICAgICB9Cisr
ICAgICAgfQorKyAgICB9CisrICB9CisrCisgICAvKiB0aGUgcGFkIGluIGhlcmUgKi8KKyAgIGNv
bnRleHQtPnBhZCA9IGdzdF9wYWRfbmV3X2Zyb21fdGVtcGxhdGUgKHRlbXBsLCBwYWRuYW1lKTsK
KyAgIGNvbnRleHQtPmNhcHMgPSBjYXBzOworQEAgLTM3MjksNiArMzc5OSw3IEBAIGdzdF9tYXRy
b3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrIChHc3RNYXRyb3NrYURl
bXV4ICogZGVtdXgsCisgICAgIGdib29sZWFuIGRlbHRhX3VuaXQgPSBGQUxTRTsKKyAgICAgZ3Vp
bnQ2NCBkdXJhdGlvbiA9IDA7CisgICAgIGdpbnQ2NCBsYWNlX3RpbWUgPSAwOworKyAgICBHc3RF
dmVudCAqcHJvdGVjdF9ldmVudDsKKyAKKyAgICAgc3RyZWFtID0gZ19wdHJfYXJyYXlfaW5kZXgg
KGRlbXV4LT5jb21tb24uc3JjLCBzdHJlYW1fbnVtKTsKKyAKK0BAIC0zNzQ5LDYgKzM4MjAsMTMg
QEAgZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxlYmxvY2sgKEdz
dE1hdHJvc2thRGVtdXggKiBkZW11eCwKKyAgICAgICBsYWNlX3RpbWUgPSBHU1RfQ0xPQ0tfVElN
RV9OT05FOworICAgICB9CisgCisrICAgIC8qIFNlbmQgdGhlIEdTVF9QUk9URUNUSU9OIGV2ZW50
ICovCisrICAgIHdoaWxlICgocHJvdGVjdF9ldmVudCA9IGdfcXVldWVfcG9wX2hlYWQgKCZzdHJl
YW0tPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpKSkgeworKyAgICAgIEdTVF9UUkFDRV9PQkpFQ1Qg
KGRlbXV4LCAicHVzaGluZyBwcm90ZWN0aW9uIGV2ZW50IGZvciBzdHJlYW0gJWQ6JXMiLAorKyAg
ICAgICAgICBzdHJlYW0tPmluZGV4LCBHU1RfU1RSX05VTEwgKHN0cmVhbS0+bmFtZSkpOworKyAg
ICAgIGdzdF9wYWRfcHVzaF9ldmVudCAoc3RyZWFtLT5wYWQsIHByb3RlY3RfZXZlbnQpOworKyAg
ICB9CisrCisgICAgIC8qIG5lZWQgdG8gcmVmcmVzaCBzZWdtZW50IGluZm8gQVNBUCAqLworICAg
ICBpZiAoR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgKGxhY2VfdGltZSkgJiYgZGVtdXgtPm5lZWRf
c2VnbWVudCkgeworICAgICAgIEdzdFNlZ21lbnQgKnNlZ21lbnQgPSAmZGVtdXgtPmNvbW1vbi5z
ZWdtZW50OworQEAgLTQ4NTUsNiArNDkzMyw5IEBAIGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9p
ZCAoR3N0TWF0cm9za2FEZW11eCAqIGRlbXV4LCBndWludDMyIGlkLAorICAgICAgICAgY2FzZSBH
U1RfTUFUUk9TS0FfSURfUE9TSVRJT046CisgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9Q
UkVWU0laRToKKyAgICAgICAgIGNhc2UgR1NUX01BVFJPU0tBX0lEX0VOQ1JZUFRFREJMT0NLOgor
KyAgICAgICAgICAvKiBUaGUgV2ViTSBkb2Vzbid0IHN1cHBvcnQgdGhlIEVuY3J5cHRlZEJsb2Nr
IGVsZW1lbnQuCisrICAgICAgICAgICAqIFRoZSBNYXRyb3NrYSBzcGVjIGRvZXNuJ3QgZ2l2ZSB1
cyBtb3JlIGRldGFpbCwgaG93IHRvIHBhcnNlIHRoaXMgZWxlbWVudCwKKysgICAgICAgICAgICog
Zm9yIGV4YW1wbGUgdGhlIGZpZWxkIFRyYW5zZm9ybUlEIGlzbid0IHNwZWNpZmllZCB5ZXQuKi8K
KyAgICAgICAgIGNhc2UgR1NUX01BVFJPU0tBX0lEX1NJTEVOVFRSQUNLUzoKKyAgICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsCisgICAgICAgICAgICAgICAiU2tpcHBpbmcgQ2x1c3Rl
ciBzdWJlbGVtZW50IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKK0BAIC02Mzg1LDYgKzY0NjYsNDAg
QEAgZ3N0X21hdHJvc2thX2RlbXV4X2dldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwKKyAg
IH0KKyB9CisgCisrc3RhdGljIGNvbnN0IGdjaGFyICoKKytnc3RfbWF0cm9za2FfdHJhY2tfZW5j
cnlwdGlvbl9hbGdvcml0aG1fbmFtZSAoZ2ludCB2YWwpCisreworKyAgR0VudW1WYWx1ZSAqZW47
CisrICBHRW51bUNsYXNzICplbnVtX2NsYXNzID0KKysgICAgICBnX3R5cGVfY2xhc3NfcmVmIChN
QVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9UWVBFKTsKKysgIGVuID0gZ19lbnVt
X2dldF92YWx1ZSAoR19FTlVNX0NMQVNTIChlbnVtX2NsYXNzKSwgdmFsKTsKKysKKysgIHJldHVy
biBlbiA/IGVuLT52YWx1ZV9uaWNrIDogIihuaWwpIjsKKyt9CisrCisrc3RhdGljIGNvbnN0IGdj
aGFyICoKKytnc3RfbWF0cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9jaXBoZXJfbW9kZV9uYW1lIChn
aW50IHZhbCkKKyt7CisrICBHRW51bVZhbHVlICplbjsKKysgIEdFbnVtQ2xhc3MgKmVudW1fY2xh
c3MgPQorKyAgICAgIGdfdHlwZV9jbGFzc19yZWYgKE1BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05f
Q0lQSEVSX01PREVfVFlQRSk7CisrICBlbiA9IGdfZW51bV9nZXRfdmFsdWUgKEdfRU5VTV9DTEFT
UyAoZW51bV9jbGFzcyksIHZhbCk7CisrCisrICByZXR1cm4gZW4gPyBlbi0+dmFsdWVfbmljayA6
ICIobmlsKSI7CisrfQorKworK3N0YXRpYyBjb25zdCBnY2hhciAqCisrZ3N0X21hdHJvc2thX3Ry
YWNrX2VuY29kaW5nX3Njb3BlX25hbWUgKGdpbnQgdmFsKQorK3sKKysgIEdFbnVtVmFsdWUgKmVu
OworKyAgR0VudW1DbGFzcyAqZW51bV9jbGFzcyA9CisrICAgICAgZ190eXBlX2NsYXNzX3JlZiAo
TUFUUk9TS0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVfVFlQRSk7CisrCisrICBlbiA9IGdfZW51bV9n
ZXRfdmFsdWUgKEdfRU5VTV9DTEFTUyAoZW51bV9jbGFzcyksIHZhbCk7CisrCisrICByZXR1cm4g
ZW4gPyBlbi0+dmFsdWVfbmljayA6ICIobmlsKSI7CisrfQorKworIGdib29sZWFuCisgZ3N0X21h
dHJvc2thX2RlbXV4X3BsdWdpbl9pbml0IChHc3RQbHVnaW4gKiBwbHVnaW4pCisgeworZGlmZiAt
LWdpdCBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYyBiL2dzdC9tYXRyb3NrYS9tYXRyb3Nr
YS1pZHMuYworaW5kZXggM2JlM2QyNzZiLi5iOTY0MDQzODYgMTAwNjQ0CistLS0gYS9nc3QvbWF0
cm9za2EvbWF0cm9za2EtaWRzLmMKKysrKyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuYwor
QEAgLTM1MSw1ICszNTEsNzggQEAgZ3N0X21hdHJvc2thX3RyYWNrX2ZyZWUgKEdzdE1hdHJvc2th
VHJhY2tDb250ZXh0ICogdHJhY2spCisgICBpZiAodHJhY2stPnN0cmVhbV9oZWFkZXJzKQorICAg
ICBnc3RfYnVmZmVyX2xpc3RfdW5yZWYgKHRyYWNrLT5zdHJlYW1faGVhZGVycyk7CisgCisrICBn
X3F1ZXVlX2ZvcmVhY2ggKCZ0cmFjay0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSwgKEdGdW5jKSBn
c3RfZXZlbnRfdW5yZWYsCisrICAgICAgTlVMTCk7CisrICBnX3F1ZXVlX2NsZWFyICgmdHJhY2st
PnByb3RlY3Rpb25fZXZlbnRfcXVldWUpOworKworKyAgaWYgKHRyYWNrLT5wcm90ZWN0aW9uX2lu
Zm8pCisrICAgIGdzdF9zdHJ1Y3R1cmVfZnJlZSAodHJhY2stPnByb3RlY3Rpb25faW5mbyk7Cisr
CisgICBnX2ZyZWUgKHRyYWNrKTsKKyB9CisrCisrR1R5cGUKKyttYXRyb3NrYV90cmFja19lbmNy
eXB0aW9uX2FsZ29yaXRobV9nZXRfdHlwZSAodm9pZCkKKyt7CisrICBzdGF0aWMgR1R5cGUgdHlw
ZSA9IDA7CisrCisrICBzdGF0aWMgY29uc3QgR0VudW1WYWx1ZSB0eXBlc1tdID0geworKyAgICB7
R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX05PTkUsICJOb3QgZW5jcnlw
dGVkIiwKKysgICAgICAgICJOb25lIn0sCisrICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQ
VElPTl9BTEdPUklUSE1fREVTLCAiREVTIGVuY3J5cHRpb24gYWxnb3JpdGhtIiwKKysgICAgICAg
ICJERVMifSwKKysgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV8z
REVTLCAiM0RFUyBlbmNyeXB0aW9uIGFsZ29yaXRobSIsCisrICAgICAgICAiM0RFUyJ9LAorKyAg
ICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX1RXT0ZJU0gsCisrICAg
ICAgICAiVHdvRmlzaCBlbmNyeXB0aW9uIGFsZ29yaXRobSIsICJUd29GaXNoIn0sCisrICAgIHtH
U1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fQkxPV0ZJU0gsCisrICAgICAg
ICAiQmxvd0Zpc2ggZW5jcnlwdGlvbiBhbGdvcml0aG0iLCAiQmxvd0Zpc2gifSwKKysgICAge0dT
VF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9BRVMsICJBRVMgZW5jcnlwdGlv
biBhbGdvcml0aG0iLAorKyAgICAgICAgIkFFUyJ9LAorKyAgICB7MCwgTlVMTCwgTlVMTH0KKysg
IH07CisrCisrICBpZiAoIXR5cGUpIHsKKysgICAgdHlwZSA9IGdfZW51bV9yZWdpc3Rlcl9zdGF0
aWMgKCJNYXRyb3NrYVRyYWNrRW5jcnlwdGlvbkFsZ29yaXRobSIsIHR5cGVzKTsKKysgIH0KKysg
IHJldHVybiB0eXBlOworK30KKysKKytHVHlwZQorK21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25f
Y2lwaGVyX21vZGVfZ2V0X3R5cGUgKHZvaWQpCisreworKyAgc3RhdGljIEdUeXBlIHR5cGUgPSAw
OworKworKyAgc3RhdGljIGNvbnN0IEdFbnVtVmFsdWUgdHlwZXNbXSA9IHsKKysgICAge0dTVF9N
QVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX05PTkUsICJOb3QgZGVmaW5lZCIs
CisrICAgICAgICAiTm9uZSJ9LAorKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05f
Q0lQSEVSX01PREVfQ1RSLCAiQ1RSIGVuY3J5cHRpb24gbW9kZSIsCisrICAgICAgICAiQ1RSIn0s
CisrICAgIHswLCBOVUxMLCBOVUxMfQorKyAgfTsKKysKKysgIGlmICghdHlwZSkgeworKyAgICB0
eXBlID0gZ19lbnVtX3JlZ2lzdGVyX3N0YXRpYyAoIk1hdHJvc2thVHJhY2tFbmNyeXB0aW9uQ2lw
aGVyTW9kZSIsIHR5cGVzKTsKKysgIH0KKysgIHJldHVybiB0eXBlOworK30KKysKKytHVHlwZQor
K21hdHJvc2thX3RyYWNrX2VuY29kaW5nX3Njb3BlX2dldF90eXBlICh2b2lkKQorK3sKKysgIHN0
YXRpYyBHVHlwZSB0eXBlID0gMDsKKysKKysgIHN0YXRpYyBjb25zdCBHRW51bVZhbHVlIHR5cGVz
W10gPSB7CisrICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVfRlJBTUUsICJF
bmNvZGluZyBzY29wZSBmcmFtZSIsICJmcmFtZSJ9LAorKyAgICB7R1NUX01BVFJPU0tBX1RSQUNL
X0VOQ09ESU5HX1NDT1BFX0NPREVDX0RBVEEsICJFbmNvZGluZyBzY29wZSBjb2RlYyBkYXRhIiwK
KysgICAgICAgICJjb2RlYy1kYXRhIn0sCisrICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DT0RJ
TkdfU0NPUEVfTkVYVF9DT05URU5UX0VOQ09ESU5HLAorKyAgICAgICAgIkVuY29kaW5nIHNjb3Bl
IG5leHQgY29udGVudCIsICJuZXh0LWNvbnRlbnQifSwKKysgICAgezAsIE5VTEwsIE5VTEx9Cisr
ICB9OworKworKyAgaWYgKCF0eXBlKSB7CisrICAgIHR5cGUgPSBnX2VudW1fcmVnaXN0ZXJfc3Rh
dGljICgiTWF0cm9za2FUcmFja0VuY29kaW5nU2NvcGUiLCB0eXBlcyk7CisrICB9CisrICByZXR1
cm4gdHlwZTsKKyt9CitkaWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oIGIv
Z3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oCitpbmRleCAyNGUwNTJkNjYuLmQxMzUyMGQ3ZSAx
MDA2NDQKKy0tLSBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaAorKysrIGIvZ3N0L21hdHJv
c2thL21hdHJvc2thLWlkcy5oCitAQCAtMTc1LDYgKzE3NSw5IEBACisgI2RlZmluZSBHU1RfTUFU
Uk9TS0FfSURfQ09OVEVOVFNJR0tFWUlEICAgICAgICAgICAgMHg0N0U0CisgI2RlZmluZSBHU1Rf
TUFUUk9TS0FfSURfQ09OVEVOVFNJR0FMR08gICAgICAgICAgICAgMHg0N0U1CisgI2RlZmluZSBH
U1RfTUFUUk9TS0FfSURfQ09OVEVOVFNJR0hBU0hBTEdPICAgICAgICAgMHg0N0U2CisrLyogQWRk
ZWQgaW4gV2ViTSBzcGVjICovCisrI2RlZmluZSBHU1RfTUFUUk9TS0FfSURfQ09OVEVOVEVOQ0FF
U1NFVFRJTkdTICAgICAgMHg0N0U3CisrI2RlZmluZSBHU1RfTUFUUk9TS0FfSURfQUVTU0VUVElO
R1NDSVBIRVJNT0RFICAgICAgMHg0N0U4CisgCisgLyogSUQgaW4gdGhlIENVRXMgbWFzdGVyICov
CisgI2RlZmluZSBHU1RfTUFUUk9TS0FfSURfUE9JTlRFTlRSWSAgICAgICAgICAgICAgICAgMHhC
QgorQEAgLTUxMiw2ICs1MTUsMTcgQEAgdHlwZWRlZiBlbnVtIHsKKyAgIEdTVF9NQVRST1NLQV9T
VEVSRU9fTU9ERV9GQkZfUkwgICAgICA9IDB4RQorIH0gR3N0TWF0cm9za2FTdGVyZW9Nb2RlOwor
IAorK3R5cGVkZWYgZW51bSB7CisrICBHU1RfTUFUUk9TS0FfRU5DT0RJTkdfQ09NUFJFU1NJT04g
PSAweDAwLAorKyAgR1NUX01BVFJPU0tBX0VOQ09ESU5HX0VOQ1JZUFRJT04gID0gMHgwMQorK30g
R3N0TWF0cm9za2FFbmNvZGluZ1R5cGU7CisrCisrLyogV2ViTSBzcGVjICovCisrdHlwZWRlZiBl
bnVtIHsKKysgIEdTVF9NQVRST1NLQV9CTE9DS19FTkNSWVBURUQgICA9IDB4MDEsCisrICBHU1Rf
TUFUUk9TS0FfQkxPQ0tfUEFSVElUSU9ORUQgPSAweDAyCisrfSBHc3RNYXRyb3NrYUVuY3J5cHRl
ZEJsb2NrRmxhZ3M7CisrCisgdHlwZWRlZiBzdHJ1Y3QgX0dzdE1hdHJvc2thVHJhY2tDb250ZXh0
IEdzdE1hdHJvc2thVHJhY2tDb250ZXh0OworIAorIC8qIFRPRE86IGNoZWNrIGlmIGFsbCBmaWVs
ZHMgYXJlIHVzZWQgKi8KK0BAIC01NDUsNiArNTU5LDExIEBAIHN0cnVjdCBfR3N0TWF0cm9za2FU
cmFja0NvbnRleHQgeworIAorICAgZ2Jvb2xlYW4gICAgICBzZXRfZGlzY29udDsgLyogVFJVRSA9
IHNldCBESVNDT05UIGZsYWcgb24gbmV4dCBidWZmZXIgKi8KKyAKKysgIC8qIFF1ZXVlIHRvIHNh
dmUgdGhlIEdTVF9QUk9URUNUSU9OIGV2ZW50cyB3aGljaCB3aWxsIGJlIHNlbnQgYmVmb3JlIHRo
ZSBmaXJzdCBzb3VyY2UgYnVmZmVyICovCisrICBHUXVldWUgICAgICAgICBwcm90ZWN0aW9uX2V2
ZW50X3F1ZXVlOworKyAgLyogUHJvdGVjdGlvbiBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgd2hpY2gg
d2lsbCBiZSBhZGRlZCBpbiBwcm90ZWN0aW9uIG1ldGFkYXRhIGZvciBlYWNoIGVuY3J5cHRlZCBi
dWZmZXIgKi8KKysgIEdzdFN0cnVjdHVyZSAqIHByb3RlY3Rpb25faW5mbzsKKysKKyAgIC8qIFN0
cmVhbSBoZWFkZXIgYnVmZmVyLCB0byBwdXQgaW50byBjYXBzIGFuZCBzZW5kIGJlZm9yZSBhbnkg
b3RoZXIgYnVmZmVycyAqLworICAgR3N0QnVmZmVyTGlzdCAqIHN0cmVhbV9oZWFkZXJzOworICAg
Z2Jvb2xlYW4gICAgICAgIHNlbmRfc3RyZWFtX2hlYWRlcnM7CitAQCAtNjQ4LDYgKzY2Nyw5IEBA
IHR5cGVkZWYgZW51bSB7CisgICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVfTkVY
VF9DT05URU5UX0VOQ09ESU5HID0gKDE8PDIpCisgfSBHc3RNYXRyb3NrYVRyYWNrRW5jb2RpbmdT
Y29wZTsKKyAKKysjZGVmaW5lIE1BVFJPU0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX1RZUEUgKG1h
dHJvc2thX3RyYWNrX2VuY29kaW5nX3Njb3BlX2dldF90eXBlKCkpCisrR1R5cGUgbWF0cm9za2Ff
dHJhY2tfZW5jb2Rpbmdfc2NvcGVfZ2V0X3R5cGUgKHZvaWQpOworKworIHR5cGVkZWYgZW51bSB7
CisgICBHU1RfTUFUUk9TS0FfVFJBQ0tfQ09NUFJFU1NJT05fQUxHT1JJVEhNX1pMSUIgPSAwLAor
ICAgR1NUX01BVFJPU0tBX1RSQUNLX0NPTVBSRVNTSU9OX0FMR09SSVRITV9CWkxJQiA9IDEsCitA
QCAtNjU1LDYgKzY3NywzNSBAQCB0eXBlZGVmIGVudW0geworICAgR1NUX01BVFJPU0tBX1RSQUNL
X0NPTVBSRVNTSU9OX0FMR09SSVRITV9IRUFERVJTVFJJUCA9IDMKKyB9IEdzdE1hdHJvc2thVHJh
Y2tDb21wcmVzc2lvbkFsZ29yaXRobTsKKyAKKysvKiBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0g
dXNlZC4gVGhlIHZhbHVlICcwJyBtZWFucyB0aGF0IHRoZSBjb250ZW50cworKyAqIGhhdmUgbm90
IGJlZW4gZW5jcnlwdGVkIGJ1dCBvbmx5IHNpZ25lZC4KKysgKiBQcmVkZWZpbmVkIHZhbHVlczog
MSAtIERFUzsgMiAtIDNERVM7IDMgLSBUd29maXNoOyA0IC0gQmxvd2Zpc2g7IDUgLSBBRVMuCisr
ICogV2ViTSBvbmx5IHN1cHBvcnRzIGEgdmFsdWUgb2YgNSAoQUVTKS4KKysgKi8KKyt0eXBlZGVm
IGVudW0geworKyAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX05PTkUg
ICAgID0gMCwKKysgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9ERVMg
ICAgICA9IDEsCisrICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fM0RF
UyAgICAgPSAyLAorKyAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX1RX
T0ZJU0ggID0gMywKKysgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9C
TE9XRklTSCA9IDQsCisrICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1f
QUVTICAgICAgPSA1CisrfSBHc3RNYXRyb3NrYVRyYWNrRW5jcnlwdGlvbkFsZ29yaXRobTsKKysK
KysjZGVmaW5lIE1BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX1RZUEUgKG1hdHJv
c2thX3RyYWNrX2VuY3J5cHRpb25fYWxnb3JpdGhtX2dldF90eXBlKCkpCisrR1R5cGUgbWF0cm9z
a2FfdHJhY2tfZW5jcnlwdGlvbl9hbGdvcml0aG1fZ2V0X3R5cGUgKHZvaWQpOworKworKy8qIERl
ZmluZWQgb25seSBpbiBXZWJNIHNwZWMuCisrICogVGhlIGNpcGhlciBtb2RlIHVzZWQgaW4gdGhl
IGVuY3J5cHRpb24uIFByZWRlZmluZWQgdmFsdWVzOiAxIC0gQ1RSCisrICovCisrdHlwZWRlZiBl
bnVtIHsKKysgIEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX05PTkUg
ICAgPSAwLAorKyAgR1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQ0lQSEVSX01PREVfQ1RS
ICAgICA9IDEKKyt9IEdzdE1hdHJvc2thVHJhY2tFbmNyeXB0aW9uQ2lwaGVyTW9kZTsKKysKKysj
ZGVmaW5lIE1BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQ0lQSEVSX01PREVfVFlQRSAobWF0cm9z
a2FfdHJhY2tfZW5jcnlwdGlvbl9jaXBoZXJfbW9kZV9nZXRfdHlwZSgpKQorK0dUeXBlIG1hdHJv
c2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfZ2V0X3R5cGUgKHZvaWQpOworKworKwor
IHR5cGVkZWYgc3RydWN0IF9Hc3RNYXRyb3NrYVRyYWNrRW5jb2RpbmcgeworICAgZ3VpbnQgICBv
cmRlcjsKKyAgIGd1aW50ICAgc2NvcGUgICAgIDogMzsKK0BAIC02NjIsNiArNzEzLDggQEAgdHlw
ZWRlZiBzdHJ1Y3QgX0dzdE1hdHJvc2thVHJhY2tFbmNvZGluZyB7CisgICBndWludCAgIGNvbXBf
YWxnbyA6IDI7CisgICBndWludDggKmNvbXBfc2V0dGluZ3M7CisgICBndWludCAgIGNvbXBfc2V0
dGluZ3NfbGVuZ3RoOworKyAgZ3VpbnQgICBlbmNfYWxnbyAgOiAzOworKyAgZ3VpbnQgICBlbmNf
Y2lwaGVyX21vZGUgOiAyOworIH0gR3N0TWF0cm9za2FUcmFja0VuY29kaW5nOworIAorIGdib29s
ZWFuIGdzdF9tYXRyb3NrYV90cmFja19pbml0X3ZpZGVvX2NvbnRleHQgICAgKEdzdE1hdHJvc2th
VHJhY2tDb250ZXh0ICoqIHBfY29udGV4dCk7CitkaWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2thL21h
dHJvc2thLXJlYWQtY29tbW9uLmMgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24u
YworaW5kZXggMzliYzJkYmU0Li4zYzA3NmFmMjIgMTAwNjQ0CistLS0gYS9nc3QvbWF0cm9za2Ev
bWF0cm9za2EtcmVhZC1jb21tb24uYworKysrIGIvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQt
Y29tbW9uLmMKK0BAIC0zOSw2ICszOSw3IEBACisgCisgI2luY2x1ZGUgPGdzdC90YWcvdGFnLmg+
CisgI2luY2x1ZGUgPGdzdC9iYXNlL2dzdHR5cGVmaW5kaGVscGVyLmg+CisrI2luY2x1ZGUgPGdz
dC9iYXNlL2dzdGJ5dGV3cml0ZXIuaD4KKyAKKyAjaW5jbHVkZSAibHpvLmgiCisgCitAQCAtMjYy
LDkgKzI2Myw5IEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfY29udGVudF9lbmNvZGluZ3MgKEdBcnJh
eSAqIGVuY29kaW5ncykKKyAgICAgICAgID09IDApCisgICAgICAgY29udGludWU7CisgCistICAg
IC8qIEVuY3J5cHRpb24gbm90IHN1cHBvcnRlZCB5ZXQgKi8KKy0gICAgaWYgKGVuYy0+dHlwZSAh
PSAwKQorLSAgICAgIHJldHVybiBHU1RfRkxPV19FUlJPUjsKKysgICAgLyogT3RoZXIgdGhhbiBF
TkNPRElOR19DT01QUkVTU0lPTiBub3QgaGFuZGxlZCBoZXJlICovCisrICAgIGlmIChlbmMtPnR5
cGUgIT0gR1NUX01BVFJPU0tBX0VOQ09ESU5HX0NPTVBSRVNTSU9OKQorKyAgICAgIGNvbnRpbnVl
OworIAorICAgICBpZiAoaSArIDEgPj0gZW5jb2RpbmdzLT5sZW4pCisgICAgICAgcmV0dXJuIEdT
VF9GTE9XX0VSUk9SOworQEAgLTMxMiw5ICszMTMsOSBAQCBnc3RfbWF0cm9za2FfZGVjb2RlX2Rh
dGEgKEdBcnJheSAqIGVuY29kaW5ncywgZ3BvaW50ZXIgKiBkYXRhX291dCwKKyAgICAgaWYgKChl
bmMtPnNjb3BlICYgc2NvcGUpID09IDApCisgICAgICAgY29udGludWU7CisgCistICAgIC8qIEVu
Y3J5cHRpb24gbm90IHN1cHBvcnRlZCB5ZXQgKi8KKy0gICAgaWYgKGVuYy0+dHlwZSAhPSAwKSB7
CistICAgICAgcmV0ID0gRkFMU0U7CisrICAgIC8qIEVuY3J5cHRpb24gbm90IGhhbmRsZWQgaGVy
ZSAqLworKyAgICBpZiAoZW5jLT50eXBlICE9IEdTVF9NQVRST1NLQV9FTkNPRElOR19DT01QUkVT
U0lPTikgeworKyAgICAgIHJldCA9IFRSVUU7CisgICAgICAgYnJlYWs7CisgICAgIH0KKyAKK0BA
IC0zNDksNiArMzUwLDIxMSBAQCBnc3RfbWF0cm9za2FfZGVjb2RlX2RhdGEgKEdBcnJheSAqIGVu
Y29kaW5ncywgZ3BvaW50ZXIgKiBkYXRhX291dCwKKyAgIHJldHVybiByZXQ7CisgfQorIAorKy8q
IFRoaXMgZnVuY3Rpb24gcGFyc2VzIHRoZSBwcm90ZWN0aW9uIGluZm8gb2YgQmxvY2svU2ltcGxl
QmxvY2sgYW5kIGV4dHJhY3RzIHRoZQorKyAqIElWIGFuZCBwYXJ0aXRpb25pbmcgZm9ybWF0IChz
dWJzYW1wbGUpIGluZm9ybWF0aW9uLgorKyAqIFNldCB0aG9zZSBwYXJzZWQgaW5mb3JtYXRpb24g
aW50byBwcm90ZWN0aW9uIGluZm8gc3RydWN0dXJlIEBpbmZvX3Byb3RlY3Qgd2hpY2gKKysgKiB3
aWxsIGJlIGFkZGVkIGluIHByb3RlY3Rpb24gbWV0YWRhdGEgb2YgdGhlIEdzdGJ1ZmZlci4KKysg
KiBUaGUgc3Vic2FtcGxlcyBmb3JtYXQgZm9sbG93cyB0aGUgc2FtZSBwc3NoIGJveCBmb3JtYXQg
aW4gQ29tbW9uIEVuY3J5cHRpb24gc3BlYzoKKysgKiBzdWJzYW1wbGUgbnVtYmVyICsgY2xlYXIg
c3Vic2FtcGxlIHNpemUgKDE2Yml0IGJpZ2VuZGlhbikgfCBlbmNyeXB0ZWQgc3Vic2FtcGxlIHNp
emUgKDMyYml0IGJpZ2VuZGlhbikgfCAuLi4KKysgKiBAZW5jcnlwdGVkIGlzIGFuIG91dHB1dCBh
cmd1bWVudDogVFJVRSBpZiB0aGUgY3VycmVudCBCbG9jay9TaW1wbGVCbG9jayBpcyBlbmNyeXB0
ZWQgZWxzZSBGQUxTRQorKyAqLworK2dib29sZWFuCisrZ3N0X21hdHJvc2thX3BhcnNlX3Byb3Rl
Y3Rpb25fbWV0YSAoZ3BvaW50ZXIgKiBkYXRhX291dCwgZ3NpemUgKiBzaXplX291dCwKKysgICAg
R3N0U3RydWN0dXJlICogaW5mb19wcm90ZWN0LCBnYm9vbGVhbiAqIGVuY3J5cHRlZCkKKyt7Cisr
ICBndWludDggKmRhdGE7CisrICBnYm9vbGVhbiByZXQgPSBUUlVFOworKyAgR3N0QnVmZmVyICpi
dWZfaXY7CisrICBndWludDggKmRhdGFfaXY7CisrICBndWludDggKnN1YnNhbXBsZXM7CisrICBn
dWludDggc2lnbmFsX2J5dGU7CisrICBnaW50IGk7CisrICBHc3RCeXRlUmVhZGVyIHJlYWRlcjsK
KysKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChkYXRhX291dCAhPSBOVUxMICYmICpkYXRhX291
dCAhPSBOVUxMLCBGQUxTRSk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2l6ZV9vdXQgIT0g
TlVMTCwgRkFMU0UpOworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGluZm9fcHJvdGVjdCAhPSBO
VUxMLCBGQUxTRSk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoZW5jcnlwdGVkICE9IE5VTEws
IEZBTFNFKTsKKysKKysgICplbmNyeXB0ZWQgPSBGQUxTRTsKKysgIGRhdGEgPSAqZGF0YV9vdXQ7
CisrICBnc3RfYnl0ZV9yZWFkZXJfaW5pdCAoJnJlYWRlciwgZGF0YSwgKnNpemVfb3V0KTsKKysK
KysKKysgIC8qIFdlYk0gc3BlYzoKKysgICAqIDQuNyBTaWduYWwgQnl0ZSBGb3JtYXQKKysgICAq
ICAwIDEgMiAzIDQgNSA2IDcKKysgICAqICstKy0rLSstKy0rLSstKy0rCisrICAgKiB8WHwgICBS
U1YgICB8UHxFfAorKyAgICogKy0rLSstKy0rLSstKy0rLSsKKysgICAqCisrICAgKiBFeHRlbnNp
b24gYml0IChYKQorKyAgICogSWYgc2V0LCBhbm90aGVyIHNpZ25hbCBieXRlIHdpbGwgZm9sbG93
IHRoaXMgYnl0ZS4gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHBhbnNpb24gKGN1cnJlbnRseSBNVVNU
IGJlIHNldCB0byAwKS4KKysgICAqIFJTViBiaXRzIChSU1YpCisrICAgKiBCaXRzIHJlc2VydmVk
IGZvciBmdXR1cmUgdXNlLiBNVVNUIGJlIHNldCB0byAwIGFuZCBNVVNUIGJlIGlnbm9yZWQuCisr
ICAgKiBFbmNyeXB0ZWQgYml0IChFKQorKyAgICogSWYgc2V0LCB0aGUgQmxvY2sgTVVTVCBjb250
YWluIGFuIElWIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGFuIGVuY3J5cHRlZCBmcmFtZS4gSWYg
bm90IHNldCwgdGhlIEJsb2NrIE1VU1QgTk9UIGluY2x1ZGUgYW4gSVYgYW5kIHRoZSBmcmFtZSBN
VVNUIGJlIHVuZW5jcnlwdGVkLiBUaGUgdW5lbmNyeXB0ZWQgZnJhbWUgTVVTVCBpbW1lZGlhdGVs
eSBmb2xsb3cgdGhlIFNpZ25hbCBCeXRlLgorKyAgICogUGFydGl0aW9uZWQgYml0IChQKQorKyAg
ICogVXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBzYW1wbGUgaGFzIHN1YnNhbXBsZSBwYXJ0aXRp
b25zLiBJZiBzZXQsIHRoZSBJViB3aWxsIGJlIGZvbGxvd2VkIGJ5IGEgbnVtX3BhcnRpdGlvbnMg
Ynl0ZSwgYW5kIG51bV9wYXJ0aXRpb25zICogMzItYml0IHBhcnRpdGlvbiBvZmZzZXRzLiBUaGlz
IGJpdCBjYW4gb25seSBiZSBzZXQgaWYgdGhlIEUgYml0IGlzIGFsc28gc2V0LgorKyAgICovCisr
ICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDggKCZyZWFkZXIsICZzaWduYWxfYnl0ZSkp
IHsKKysgICAgR1NUX0VSUk9SICgiRXJyb3IgcmVhZGluZyB0aGUgc2lnbmFsIGJ5dGUiKTsKKysg
ICAgcmV0dXJuIEZBTFNFOworKyAgfQorKworKyAgLyogRW5jcnlwdGVkIGJ1ZmZlciAqLworKyAg
aWYgKHNpZ25hbF9ieXRlICYgR1NUX01BVFJPU0tBX0JMT0NLX0VOQ1JZUFRFRCkgeworKyAgICAq
ZW5jcnlwdGVkID0gVFJVRTsKKysgICAgLyogQ3JlYXRlIElWIGJ1ZmZlciAqLworKyAgICBpZiAo
IWdzdF9ieXRlX3JlYWRlcl9kdXBfZGF0YSAoJnJlYWRlciwgc2l6ZW9mIChndWludDY0KSwgJmRh
dGFfaXYpKSB7CisrICAgICAgR1NUX0VSUk9SICgiRXJyb3IgcmVhZGluZyB0aGUgSVYgZGF0YSIp
OworKyAgICAgIHJldHVybiBGQUxTRTsKKysgICAgfQorKyAgICBidWZfaXYgPSBnc3RfYnVmZmVy
X25ld193cmFwcGVkICgoZ3BvaW50ZXIpIGRhdGFfaXYsIHNpemVvZiAoZ3VpbnQ2NCkpOworKyAg
ICBnc3Rfc3RydWN0dXJlX3NldCAoaW5mb19wcm90ZWN0LCAiaXYiLCBHU1RfVFlQRV9CVUZGRVIs
IGJ1Zl9pdiwgTlVMTCk7CisrICAgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zl9pdik7CisrCisrCisr
ICAgIC8qIFBhcnRpdGlvbmVkIGluIHN1YnNhbXBsZSAqLworKyAgICBpZiAoc2lnbmFsX2J5dGUg
JiBHU1RfTUFUUk9TS0FfQkxPQ0tfUEFSVElUSU9ORUQpIHsKKysgICAgICBndWludCBuYl9zdWJz
YW1wbGU7CisrICAgICAgZ3VpbnQzMiBvZmZzZXQgPSAwOworKyAgICAgIGd1aW50MzIgb2Zmc2V0
X3ByZXY7CisrICAgICAgZ3VpbnQzMiBlbmNyeXB0ZWRfYnl0ZXMgPSAwOworKyAgICAgIGd1aW50
MTYgY2xlYXJfYnl0ZXMgPSAwOworKyAgICAgIEdzdEJ1ZmZlciAqYnVmX3N1Yl9zYW1wbGU7Cisr
ICAgICAgZ3VpbnQ4IG5iX3BhcnQ7CisrICAgICAgR3N0Qnl0ZVdyaXRlciB3cml0ZXI7CisrCisr
ICAgICAgLyogUmVhZCB0aGUgbnVtYmVyIG9mIHBhcnRpdGlvbnMgKDEgYnl0ZSkgKi8KKysgICAg
ICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDggKCZyZWFkZXIsICZuYl9wYXJ0KSkgewor
KyAgICAgICAgR1NUX0VSUk9SICgiRXJyb3IgcmVhZGluZyB0aGUgcGFydGl0aW9uIG51bWJlciIp
OworKyAgICAgICAgcmV0dXJuIEZBTFNFOworKyAgICAgIH0KKysKKysgICAgICBpZiAobmJfcGFy
dCA9PSAwKSB7CisrICAgICAgICBHU1RfRVJST1IgKCJQYXJ0aXRpb25lZCwgYnV0IHRoZSBzdWJz
YW1wbGUgbnVtYmVyIGVxdWFsIHRvIHplcm8iKTsKKysgICAgICAgIHJldHVybiBGQUxTRTsKKysg
ICAgICB9CisrCisrICAgICAgbmJfc3Vic2FtcGxlID0gKG5iX3BhcnQgKyAyKSA+PiAxOworKwor
KyAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChpbmZvX3Byb3RlY3QsICJzdWJzYW1wbGVfY291bnQi
LCBHX1RZUEVfVUlOVCwKKysgICAgICAgICAgbmJfc3Vic2FtcGxlLCBOVUxMKTsKKysKKysgICAg
ICAvKiBXZWJNIFNwZWM6CisrICAgICAgICoKKysgICAgICAgKiA0LjYgU3Vic2FtcGxlIEVuY3J5
cHRlZCBCbG9jayBGb3JtYXQKKysgICAgICAgKgorKyAgICAgICAqIFRoZSBTdWJzYW1wbGUgRW5j
cnlwdGVkIEJsb2NrIGZvcm1hdCBleHRlbmRzIHRoZSBGdWxsLXNhbXBsZSBmb3JtYXQgYnkgc2V0
dGluZyBhICJwYXJ0aXRpb25lZCIgKFApIGJpdCBpbiB0aGUgU2lnbmFsIEJ5dGUuCisrICAgICAg
ICogSWYgdGhpcyBiaXQgaXMgc2V0LCB0aGUgRW5jcnlwdGVkQmxvY2sgaGVhZGVyIHNoYWxsIGlu
Y2x1ZGUgYW4KKysgICAgICAgKiA4LWJpdCBpbnRlZ2VyIGluZGljYXRpbmcgdGhlIG51bWJlciBv
ZiBzYW1wbGUgcGFydGl0aW9ucyAoZGl2aWRlcnMgYmV0d2VlbiBjbGVhci9lbmNyeXB0ZWQgc2Vj
dGlvbnMpLAorKyAgICAgICAqIGFuZCBhIHNlcmllcyBvZiAzMi1iaXQgaW50ZWdlcnMgaW4gYmln
LWVuZGlhbiBlbmNvZGluZyBpbmRpY2F0aW5nIHRoZSBieXRlIG9mZnNldHMgb2Ygc3VjaCBwYXJ0
aXRpb25zLgorKyAgICAgICAqCisrICAgICAgICogIDAgICAgICAgICAgICAgICAgICAgMSAgICAg
ICAgICAgICAgICAgICAyICAgICAgICAgICAgICAgICAgIDMKKysgICAgICAgKiAgMCAxIDIgMyA0
IDUgNiA3IDggOSAwIDEgMiAzIDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxCisr
ICAgICAgICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSsKKysgICAgICAgKiB8ICBTaWduYWwgQnl0ZSAgfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKyAgICAgICAqICstKy0rLSst
Ky0rLSstKy0rICAgICAgICAgICAgIElWICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
CisrICAgICAgICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwKKysgICAgICAgKiB8ICAgICAgICAgICAgICAgKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworKyAgICAgICAqIHwgICAg
ICAgICAgICAgICB8IG51bV9wYXJ0aXRpb24gfCAgICAgUGFydGl0aW9uIDAgb2Zmc2V0IC0+ICAg
ICB8CisrICAgICAgICogfC0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLXwKKysgICAgICAgKiB8ICAgICAtPiBQYXJ0aXRpb24gMCBv
ZmZzZXQgICAgIHwgICAgICAgICAgICAgIC4uLiAgICAgICAgICAgICAgfAorKyAgICAgICAqIHwt
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy18CisrICAgICAgICogfCAgICAgICAgICAgICAuLi4gICAgICAgICAgICAgICB8ICAgICBQ
YXJ0aXRpb24gbi0xIG9mZnNldCAtPiAgIHwKKysgICAgICAgKiB8LSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstfAorKyAgICAgICAq
IHwgICAgIC0+IFBhcnRpdGlvbiBuLTEgb2Zmc2V0ICAgfCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8CisrICAgICAgICogKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKysgICAgICAgKiB8ICAgICAgICAgICAgICAg
ICAgICBDbGVhci9lbmNyeXB0ZWQgc2FtcGxlIGRhdGEgICAgICAgICAgICAgICAgfAorKyAgICAg
ICAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8CisrICAgICAgICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKysgICAgICAgKiArLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKworKyAg
ICAgICAqCisrICAgICAgICogNC42LjEgU0FNUExFIFBBUlRJVElPTlMKKysgICAgICAgKgorKyAg
ICAgICAqIFRoZSBzYW1wbGVzIHNoYWxsIGJlIHBhcnRpdGlvbmVkIGludG8gYWx0ZXJuYXRpbmcg
Y2xlYXIgYW5kIGVuY3J5cHRlZCBzZWN0aW9ucywKKysgICAgICAgKiBhbHdheXMgc3RhcnRpbmcg
d2l0aCBhIGNsZWFyIHNlY3Rpb24uCisrICAgICAgICogR2VuZXJhbGx5IGZvciBuIGNsZWFyL2Vu
Y3J5cHRlZCBzZWN0aW9ucyB0aGVyZSBzaGFsbCBiZSBuLTEgcGFydGl0aW9uIG9mZnNldHMuCisr
ICAgICAgICogSG93ZXZlciwgaWYgaXQgaXMgcmVxdWlyZWQgdGhhdCB0aGUgZmlyc3Qgc2VjdGlv
biBiZSBlbmNyeXB0ZWQsIHRoZW4gdGhlIGZpcnN0IHBhcnRpdGlvbiBzaGFsbCBiZSBhdCBieXRl
IG9mZnNldCAwCisrICAgICAgICogKGluZGljYXRpbmcgYSB6ZXJvLXNpemUgY2xlYXIgc2VjdGlv
biksIGFuZCB0aGVyZSBzaGFsbCBiZSBuIHBhcnRpdGlvbiBvZmZzZXRzLgorKyAgICAgICAqIFBs
ZWFzZSByZWZlciB0byB0aGUgIlNhbXBsZSBFbmNyeXB0aW9uIiBkZXNjcmlwdGlvbiBvZiB0aGUg
IkNvbW1vbiBFbmNyeXB0aW9uIgorKyAgICAgICAqIHNlY3Rpb24gb2YgdGhlIFZQIENvZGVjIElT
TyBNZWRpYSBGaWxlIEZvcm1hdCBCaW5kaW5nIFNwZWNpZmljYXRpb24gZm9yIG1vcmUKKysgICAg
ICAgKiBkZXRhaWwgb24gaG93IHN1YnNhbXBsZSBlbmNyeXB0aW9uIGlzIGltcGxlbWVudGVkLgor
KyAgICAgICAqLworKyAgICAgIHN1YnNhbXBsZXMgPQorKyAgICAgICAgICBnX21hbGxvYyAobmJf
c3Vic2FtcGxlICogKHNpemVvZiAoZ3VpbnQxNikgKyBzaXplb2YgKGd1aW50MzIpKSk7CisrCisr
ICAgICAgZ3N0X2J5dGVfd3JpdGVyX2luaXRfd2l0aF9kYXRhICgmd3JpdGVyLCBzdWJzYW1wbGVz
LAorKyAgICAgICAgICBuYl9zdWJzYW1wbGUgKiAoc2l6ZW9mIChndWludDE2KSArIHNpemVvZiAo
Z3VpbnQzMikpLCBGQUxTRSk7CisrCisrICAgICAgZm9yIChpID0gMDsgaSA8PSBuYl9wYXJ0OyBp
KyspIHsKKysgICAgICAgIG9mZnNldF9wcmV2ID0gb2Zmc2V0OworKyAgICAgICAgaWYgKGkgPT0g
bmJfcGFydCkgeworKyAgICAgICAgICBvZmZzZXQgPSBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFp
bmluZyAoJnJlYWRlcik7CisrICAgICAgICB9IGVsc2UgeworKyAgICAgICAgICBpZiAoIWdzdF9i
eXRlX3JlYWRlcl9nZXRfdWludDMyX2JlICgmcmVhZGVyLCAmb2Zmc2V0KSkgeworKyAgICAgICAg
ICAgIEdTVF9FUlJPUiAoIkVycm9yIHJlYWRpbmcgdGhlIHBhcnRpdGlvbiBvZmZzZXQiKTsKKysg
ICAgICAgICAgICBnb3RvIHJlbGVhc2VfZXJyOworKyAgICAgICAgICB9CisrICAgICAgICB9Cisr
CisrICAgICAgICBpZiAob2Zmc2V0IDwgb2Zmc2V0X3ByZXYpIHsKKysgICAgICAgICAgR1NUX0VS
Uk9SICgiUGFydGl0aW9uIG9mZnNldHMgc2hvdWxkIG5vdCBkZWNyZWFzZSIpOworKyAgICAgICAg
ICBnb3RvIHJlbGVhc2VfZXJyOworKyAgICAgICAgfQorKworKyAgICAgICAgaWYgKGkgJSAyID09
IDApIHsKKysgICAgICAgICAgaWYgKChvZmZzZXQgLSBvZmZzZXRfcHJldikgJiAweEZGRkYwMDAw
KSB7CisrICAgICAgICAgICAgR1NUX0VSUk9SCisrICAgICAgICAgICAgICAgICgiVGhlIENsZWFy
IFBhcnRpdGlvbiBleGNlZWQgNjRLQiBpbiBlbmNyeXB0ZWQgc3Vic2FtcGxlIGZvcm1hdCIpOwor
KyAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7CisrICAgICAgICAgIH0KKysgICAgICAgICAg
LyogV2Ugc2V0IHRoZSBDbGVhciBwYXJ0aXRpb24gc2l6ZSBpbiAxNiBiaXRzLCBpbiBvcmRlciB0
bworKyAgICAgICAgICAgKiBmb2xsb3cgdGhlIHNhbWUgZm9ybWF0IG9mIHRoZSBib3ggUFNTSCBp
biBDRU5DIHNwZWMgKi8KKysgICAgICAgICAgY2xlYXJfYnl0ZXMgPSBvZmZzZXQgLSBvZmZzZXRf
cHJldjsKKysgICAgICAgICAgaWYgKGkgPT0gbmJfcGFydCkKKysgICAgICAgICAgICBlbmNyeXB0
ZWRfYnl0ZXMgPSAwOworKyAgICAgICAgfSBlbHNlIHsKKysgICAgICAgICAgZW5jcnlwdGVkX2J5
dGVzID0gb2Zmc2V0IC0gb2Zmc2V0X3ByZXY7CisrICAgICAgICB9CisrCisrICAgICAgICBpZiAo
KGkgJSAyID09IDEpIHx8IChpID09IG5iX3BhcnQpKSB7CisrICAgICAgICAgIGlmIChjbGVhcl9i
eXRlcyA9PSAwICYmIGVuY3J5cHRlZF9ieXRlcyA9PSAwKSB7CisrICAgICAgICAgICAgR1NUX0VS
Uk9SICgiRm91bmQgMiBwYXJ0aXRpb25zIHdpdGggdGhlIHNhbWUgb2Zmc2V0cy4iKTsKKysgICAg
ICAgICAgICBnb3RvIHJlbGVhc2VfZXJyOworKyAgICAgICAgICB9CisrICAgICAgICAgIGlmICgh
Z3N0X2J5dGVfd3JpdGVyX3B1dF91aW50MTZfYmUgKCZ3cml0ZXIsIGNsZWFyX2J5dGVzKSkgewor
KyAgICAgICAgICAgIEdTVF9FUlJPUiAoIkVycm9yIHdyaXRpbmcgdGhlIG51bWJlciBvZiBjbGVh
ciBieXRlcyIpOworKyAgICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7CisrICAgICAgICAgIH0K
KysgICAgICAgICAgaWYgKCFnc3RfYnl0ZV93cml0ZXJfcHV0X3VpbnQzMl9iZSAoJndyaXRlciwg
ZW5jcnlwdGVkX2J5dGVzKSkgeworKyAgICAgICAgICAgIEdTVF9FUlJPUiAoIkVycm9yIHdyaXRp
bmcgdGhlIG51bWJlciBvZiBlbmNyeXB0ZWQgYnl0ZXMiKTsKKysgICAgICAgICAgICBnb3RvIHJl
bGVhc2VfZXJyOworKyAgICAgICAgICB9CisrICAgICAgICB9CisrICAgICAgfQorKworKyAgICAg
IGJ1Zl9zdWJfc2FtcGxlID0KKysgICAgICAgICAgZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoc3Vi
c2FtcGxlcywKKysgICAgICAgICAgbmJfc3Vic2FtcGxlICogKHNpemVvZiAoZ3VpbnQxNikgKyBz
aXplb2YgKGd1aW50MzIpKSk7CisrICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKGluZm9fcHJvdGVj
dCwgInN1YnNhbXBsZXMiLCBHU1RfVFlQRV9CVUZGRVIsCisrICAgICAgICAgIGJ1Zl9zdWJfc2Ft
cGxlLCBOVUxMKTsKKysgICAgICBnc3RfYnVmZmVyX3VucmVmIChidWZfc3ViX3NhbXBsZSk7Cisr
ICAgIH0gZWxzZSB7CisrICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKGluZm9fcHJvdGVjdCwgInN1
YnNhbXBsZV9jb3VudCIsIEdfVFlQRV9VSU5ULCAwLCBOVUxMKTsKKysgICAgfQorKyAgfQorKwor
KyAgZ3N0X2J5dGVfcmVhZGVyX2dldF9kYXRhICgmcmVhZGVyLCAwLCAoY29uc3QgZ3VpbnQ4ICoq
KSBkYXRhX291dCk7CisrICAqc2l6ZV9vdXQgPSBnc3RfYnl0ZV9yZWFkZXJfZ2V0X3JlbWFpbmlu
ZyAoJnJlYWRlcik7CisrICByZXR1cm4gcmV0OworKworK3JlbGVhc2VfZXJyOgorKyAgZ19mcmVl
IChzdWJzYW1wbGVzKTsKKysgIHJldHVybiBGQUxTRTsKKyt9CisrCisgc3RhdGljIGdpbnQKKyBn
c3RfbWF0cm9za2FfaW5kZXhfY29tcGFyZSAoR3N0TWF0cm9za2FJbmRleCAqIGkxLCBHc3RNYXRy
b3NrYUluZGV4ICogaTIpCisgeworQEAgLTI3MDUsMTIgKzI5MTEsMTUgQEAgZ3N0X21hdHJvc2th
X3JlYWRfY29tbW9uX3JlYWRfdHJhY2tfZW5jb2RpbmcgKEdzdE1hdHJvc2thUmVhZENvbW1vbiAq
IGNvbW1vbiwKKyAgICAgICAgICAgICAgIEdfR1VJTlQ2NF9GT1JNQVQsIG51bSk7CisgICAgICAg
ICAgIHJldCA9IEdTVF9GTE9XX0VSUk9SOworICAgICAgICAgICBicmVhazsKKy0gICAgICAgIH0g
ZWxzZSBpZiAobnVtICE9IDApIHsKKysgICAgICAgIH0KKysKKysgICAgICAgIGlmICgoIWNvbW1v
bi0+aXNfd2VibSkgJiYgKG51bSA9PSBHU1RfTUFUUk9TS0FfRU5DT0RJTkdfRU5DUllQVElPTikp
IHsKKyAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAorLSAgICAg
ICAgICAgICAgIkVuY3J5cHRlZCB0cmFja3MgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0Iik7CisrICAg
ICAgICAgICAgICAiRW5jcnlwdGVkIHRyYWNrcyBhcmUgc3VwcG9ydGVkIG9ubHkgaW4gV2ViTSIp
OworICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICB9CisrCisgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChjb21tb24tPnNpbmtwYWQs
CisgICAgICAgICAgICAgIkNvbnRlbnRFbmNvZGluZ1R5cGU6ICUiIEdfR1VJTlQ2NF9GT1JNQVQs
IG51bSk7CisgICAgICAgICBlbmMudHlwZSA9IG51bTsKK0BAIC0yNzczLDEyICsyOTgyLDEzMiBA
QCBnc3RfbWF0cm9za2FfcmVhZF9jb21tb25fcmVhZF90cmFja19lbmNvZGluZyAoR3N0TWF0cm9z
a2FSZWFkQ29tbW9uICogY29tbW9uLAorICAgICAgICAgYnJlYWs7CisgICAgICAgfQorIAorLSAg
ICAgIGNhc2UgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRFTkNSWVBUSU9OOgorLSAgICAgICAgR1NU
X0VSUk9SX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAorLSAgICAgICAgICAgICJFbmNyeXB0ZWQg
dHJhY2tzIG5vdCB5ZXQgc3VwcG9ydGVkIik7CistICAgICAgICBnc3RfZWJtbF9yZWFkX3NraXAg
KGVibWwpOworLSAgICAgICAgcmV0ID0gR1NUX0ZMT1dfRVJST1I7CisrICAgICAgY2FzZSBHU1Rf
TUFUUk9TS0FfSURfQ09OVEVOVEVOQ1JZUFRJT046eworKworKyAgICAgICAgREVCVUdfRUxFTUVO
VF9TVEFSVCAoY29tbW9uLCBlYm1sLCAiQ29udGVudEVuY3J5cHRpb24iKTsKKysKKysgICAgICAg
IGlmIChlbmMudHlwZSAhPSBHU1RfTUFUUk9TS0FfRU5DT0RJTkdfRU5DUllQVElPTikgeworKyAg
ICAgICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKysgICAgICAgICAg
ICAgICJVbmV4cGVjdGVkIHRvIGhhdmUgQ29udGVudCBFbmNyeXB0aW9uIGJlY2F1c2UgaXQgaXNu
J3QgZW5jcnlwdGlvbiB0eXBlIik7CisrICAgICAgICAgIHJldCA9IEdTVF9GTE9XX0VSUk9SOwor
KyAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysKKysgICAgICAgIGlmICgocmV0ID0gZ3N0
X2VibWxfcmVhZF9tYXN0ZXIgKGVibWwsICZpZCkpICE9IEdTVF9GTE9XX09LKQorKyAgICAgICAg
ICBicmVhazsKKysKKysgICAgICAgIHdoaWxlIChyZXQgPT0gR1NUX0ZMT1dfT0sgJiYKKysgICAg
ICAgICAgICBnc3RfZWJtbF9yZWFkX2hhc19yZW1haW5pbmcgKGVibWwsIDEsIFRSVUUpKSB7Cisr
ICAgICAgICAgIGlmICgocmV0ID0gZ3N0X2VibWxfcGVla19pZCAoZWJtbCwgJmlkKSkgIT0gR1NU
X0ZMT1dfT0spCisrICAgICAgICAgICAgYnJlYWs7CisrCisrICAgICAgICAgIHN3aXRjaCAoaWQp
IHsKKysgICAgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5URU5DQUxHTzp7Cisr
ICAgICAgICAgICAgICBndWludDY0IG51bTsKKysKKysgICAgICAgICAgICAgIGlmICgocmV0ID0g
Z3N0X2VibWxfcmVhZF91aW50IChlYm1sLCAmaWQsICZudW0pKSAhPSBHU1RfRkxPV19PSykgewor
KyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICAgIH0KKysKKysgICAgICAgICAg
ICAgIGlmIChudW0gPiBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fQUVT
KSB7CisrICAgICAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwg
IkludmFsaWQgQ29udGVudEVuY0FsZ28gJSIKKysgICAgICAgICAgICAgICAgICAgIEdfR1VJTlQ2
NF9GT1JNQVQsIG51bSk7CisrICAgICAgICAgICAgICAgIHJldCA9IEdTVF9GTE9XX0VSUk9SOwor
KyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAg
IEdTVF9ERUJVR19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKysgICAgICAgICAgICAgICAgICAi
Q29udGVudEVuY0FsZ286ICUiIEdfR1VJTlQ2NF9GT1JNQVQsIG51bSk7CisrICAgICAgICAgICAg
ICBlbmMuZW5jX2FsZ28gPSBudW07CisrCisrICAgICAgICAgICAgICBicmVhazsKKysgICAgICAg
ICAgICB9CisrICAgICAgICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfQ09OVEVOVEVOQ0FFU1NF
VFRJTkdTOnsKKysKKysgICAgICAgICAgICAgIERFQlVHX0VMRU1FTlRfU1RBUlQgKGNvbW1vbiwg
ZWJtbCwgIkNvbnRlbnRFbmNBRVNTZXR0aW5ncyIpOworKworKyAgICAgICAgICAgICAgaWYgKChy
ZXQgPSBnc3RfZWJtbF9yZWFkX21hc3RlciAoZWJtbCwgJmlkKSkgIT0gR1NUX0ZMT1dfT0spCisr
ICAgICAgICAgICAgICAgIGJyZWFrOworKworKyAgICAgICAgICAgICAgd2hpbGUgKHJldCA9PSBH
U1RfRkxPV19PSyAmJgorKyAgICAgICAgICAgICAgICAgIGdzdF9lYm1sX3JlYWRfaGFzX3JlbWFp
bmluZyAoZWJtbCwgMSwgVFJVRSkpIHsKKysgICAgICAgICAgICAgICAgaWYgKChyZXQgPSBnc3Rf
ZWJtbF9wZWVrX2lkIChlYm1sLCAmaWQpKSAhPSBHU1RfRkxPV19PSykKKysgICAgICAgICAgICAg
ICAgICBicmVhazsKKysKKysgICAgICAgICAgICAgICAgc3dpdGNoIChpZCkgeworKyAgICAgICAg
ICAgICAgICAgIGNhc2UgR1NUX01BVFJPU0tBX0lEX0FFU1NFVFRJTkdTQ0lQSEVSTU9ERTp7Cisr
ICAgICAgICAgICAgICAgICAgICBndWludDY0IG51bTsKKysKKysgICAgICAgICAgICAgICAgICAg
IGlmICgocmV0ID0KKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3N0X2VibWxfcmVhZF91
aW50IChlYm1sLCAmaWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbnVtKSkg
IT0gR1NUX0ZMT1dfT0spIHsKKysgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAg
ICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgICBpZiAobnVtID4gMykgeworKyAg
ICAgICAgICAgICAgICAgICAgICBHU1RfRVJST1JfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsICJJ
bnZhbGlkIENpcGhlciBNb2RlICUiCisrICAgICAgICAgICAgICAgICAgICAgICAgICBHX0dVSU5U
NjRfRk9STUFULCBudW0pOworKyAgICAgICAgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19F
UlJPUjsKKysgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICAgICAg
ICB9CisrICAgICAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChjb21tb24tPnNpbmtw
YWQsCisrICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnRFbmNBRVNTZXR0aW5nczogJSIg
R19HVUlOVDY0X0ZPUk1BVCwgbnVtKTsKKysgICAgICAgICAgICAgICAgICAgIGVuYy5lbmNfY2lw
aGVyX21vZGUgPSBudW07CisrICAgICAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAg
ICAgICAgICB9CisrICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKysgICAgICAgICAgICAgICAg
ICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAorKyAgICAgICAgICAgICAg
ICAgICAgICAgICJVbmtub3duIENvbnRlbnRFbmNBRVNTZXR0aW5ncyBzdWJlbGVtZW50IDB4JXgg
LSBpZ25vcmluZyIsCisrICAgICAgICAgICAgICAgICAgICAgICAgaWQpOworKyAgICAgICAgICAg
ICAgICAgICAgcmV0ID0gZ3N0X2VibWxfcmVhZF9za2lwIChlYm1sKTsKKysgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICB9CisrICAg
ICAgICAgICAgICBERUJVR19FTEVNRU5UX1NUT1AgKGNvbW1vbiwgZWJtbCwgIkNvbnRlbnRFbmNB
RVNTZXR0aW5ncyIsIHJldCk7CisrICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICB9
CisrCisrICAgICAgICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfQ09OVEVOVEVOQ0tFWUlEOnsK
KysgICAgICAgICAgICAgIGd1aW50OCAqZGF0YTsKKysgICAgICAgICAgICAgIGd1aW50NjQgc2l6
ZTsKKysgICAgICAgICAgICAgIEdzdEJ1ZmZlciAqa2V5SWRfYnVmOworKyAgICAgICAgICAgICAg
R3N0RXZlbnQgKmV2ZW50OworKworKyAgICAgICAgICAgICAgaWYgKChyZXQgPQorKyAgICAgICAg
ICAgICAgICAgICAgICBnc3RfZWJtbF9yZWFkX2JpbmFyeSAoZWJtbCwgJmlkLCAmZGF0YSwKKysg
ICAgICAgICAgICAgICAgICAgICAgICAgICZzaXplKSkgIT0gR1NUX0ZMT1dfT0spIHsKKysgICAg
ICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICB9CisrICAgICAgICAgICAgICBHU1Rf
REVCVUdfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsCisrICAgICAgICAgICAgICAgICAgIkNvbnRl
bnRFbmNyeXB0IEtleUlEIGxlbmd0aCA6ICUiIEdfR1VJTlQ2NF9GT1JNQVQsIHNpemUpOworKyAg
ICAgICAgICAgICAga2V5SWRfYnVmID0gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoZGF0YSwgc2l6
ZSk7CisrCisrICAgICAgICAgICAgICAvKiBQdXNoIGFuIGV2ZW50IGNvbnRhaW5pbmcgdGhlIEtl
eSBJRCBpbnRvIHRoZSBxdWV1ZXMgb2YgYWxsIHN0cmVhbXMuICovCisrICAgICAgICAgICAgICAv
KiBzeXN0ZW1faWQgZmllbGQgaXMgc2V0IHRvICJVTkRFRklORUQiIGJlY2F1c2UgaXQgaXNuJ3Qg
c3BlY2lmaWVkIG5laXRoZXIgaW4gV2ViTSBub3IgaW4gTWF0cm9za2Egc3BlYy4gKi8KKysgICAg
ICAgICAgICAgIGV2ZW50ID0KKysgICAgICAgICAgICAgICAgICBnc3RfZXZlbnRfbmV3X3Byb3Rl
Y3Rpb24gKCJVTkRFRklORUQiLCBrZXlJZF9idWYsCisrICAgICAgICAgICAgICAgICAgIm1hdHJv
c2thZGVtdXgiKTsKKysgICAgICAgICAgICAgIEdTVF9UUkFDRV9PQkpFQ1QgKGNvbW1vbi0+c2lu
a3BhZCwKKysgICAgICAgICAgICAgICAgICAiYWRkaW5nIHByb3RlY3Rpb24gZXZlbnQgZm9yIHN0
cmVhbSAlZCIsIGNvbnRleHQtPmluZGV4KTsKKysgICAgICAgICAgICAgIGdfcXVldWVfcHVzaF90
YWlsICgmY29udGV4dC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1ZSwgZXZlbnQpOworKworKyAgICAg
ICAgICAgICAgY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvID0KKysgICAgICAgICAgICAgICAgICBn
c3Rfc3RydWN0dXJlX25ldyAoImFwcGxpY2F0aW9uL3gtY2VuYyIsICJpdl9zaXplIiwKKysgICAg
ICAgICAgICAgICAgICBHX1RZUEVfVUlOVCwgOCwgImVuY3J5cHRlZCIsIEdfVFlQRV9CT09MRUFO
LCBUUlVFLCAia2lkIiwKKysgICAgICAgICAgICAgICAgICBHU1RfVFlQRV9CVUZGRVIsIGtleUlk
X2J1ZiwgTlVMTCk7CisrCisrICAgICAgICAgICAgICBnc3RfYnVmZmVyX3VucmVmIChrZXlJZF9i
dWYpOworKyAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAg
IGRlZmF1bHQ6CisrICAgICAgICAgICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKGNvbW1vbi0+c2lu
a3BhZCwKKysgICAgICAgICAgICAgICAgICAiVW5rbm93biBDb250ZW50RW5jcnlwdGlvbiBzdWJl
bGVtZW50IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKKysgICAgICAgICAgICAgIHJldCA9IGdzdF9l
Ym1sX3JlYWRfc2tpcCAoZWJtbCk7CisrICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAg
fQorKyAgICAgICAgfQorKyAgICAgICAgREVCVUdfRUxFTUVOVF9TVE9QIChjb21tb24sIGVibWws
ICJDb250ZW50RW5jcnlwdGlvbiIsIHJldCk7CisgICAgICAgICBicmVhazsKKysgICAgICB9Cisr
CisgICAgICAgZGVmYXVsdDoKKyAgICAgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoY29tbW9uLT5z
aW5rcGFkLAorICAgICAgICAgICAgICJVbmtub3duIENvbnRlbnRFbmNvZGluZyBzdWJlbGVtZW50
IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKK2RpZmYgLS1naXQgYS9nc3QvbWF0cm9za2EvbWF0cm9z
a2EtcmVhZC1jb21tb24uaCBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oCitp
bmRleCA3MTczMjNhNzQuLmJmNWE5NDczNSAxMDA2NDQKKy0tLSBhL2dzdC9tYXRyb3NrYS9tYXRy
b3NrYS1yZWFkLWNvbW1vbi5oCisrKysgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21t
b24uaAorQEAgLTExNiw2ICsxMTYsOSBAQCB0eXBlZGVmIHN0cnVjdCBfR3N0TWF0cm9za2FSZWFk
Q29tbW9uIHsKKyBHc3RGbG93UmV0dXJuIGdzdF9tYXRyb3NrYV9kZWNvZGVfY29udGVudF9lbmNv
ZGluZ3MgKEdBcnJheSAqIGVuY29kaW5ncyk7CisgZ2Jvb2xlYW4gZ3N0X21hdHJvc2thX2RlY29k
ZV9kYXRhIChHQXJyYXkgKiBlbmNvZGluZ3MsIGdwb2ludGVyICogZGF0YV9vdXQsCisgICAgIGdz
aXplICogc2l6ZV9vdXQsIEdzdE1hdHJvc2thVHJhY2tFbmNvZGluZ1Njb3BlIHNjb3BlLCBnYm9v
bGVhbiBmcmVlKTsKKytnYm9vbGVhbgorK2dzdF9tYXRyb3NrYV9wYXJzZV9wcm90ZWN0aW9uX21l
dGEgKGdwb2ludGVyICogZGF0YV9vdXQsIGdzaXplICogc2l6ZV9vdXQsCisrICAgIEdzdFN0cnVj
dHVyZSAqIGluZm9fcHJvdGVjdCwgZ2Jvb2xlYW4gKiBlbmNyeXB0ZWQpOworIGdpbnQgZ3N0X21h
dHJvc2thX2luZGV4X3NlZWtfZmluZCAoR3N0TWF0cm9za2FJbmRleCAqIGkxLCBHc3RDbG9ja1Rp
bWUgKiB0aW1lLAorICAgICBncG9pbnRlciB1c2VyX2RhdGEpOworIEdzdE1hdHJvc2thSW5kZXgg
KiBnc3RfbWF0cm9za2FfcmVhZF9jb21tb25fZG9faW5kZXhfc2VlayAoCistLSAKKzIuMTUuMAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351538</attachid>
            <date>2018-10-03 11:32:00 -0700</date>
            <delta_ts>2018-10-05 06:38:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189238-20181003203159.patch</filename>
            <type>text/plain</type>
            <size>40553</size>
            <attacher name="Yacine Bandou">bandou.yacine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NTk2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNmE0YjEzZDJhMTA2OTYwZjU0Nzg1MTQ5Njk5NDVjZTBj
MjQxZmVhOC4uMDVjYmEzNjdkYTU2MWQ3OWQ0NmVhOTc2NjdlNDBkNjlhYjZkNTg2NCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDE4LTA5LTAzICBZYWNpbmUgQmFuZG91ICA8eWFjaW5lLmJhbmRvdV9leHRAc29mdGF0
aG9tZS5jb20+CisKKyAgICAgICAgW0dTdHJlYW1lcl1bRU1FXVt3ZWJtXSBBZGQgdGhlIFdlYk0g
ZW5jcnlwdGVkIGNvbnRlbnQgc3VwcG9ydCBpbiBtYXRyb3NrYWRlbXV4CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkyMzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb2RpZmljYXRpb25zIG9uIEdzdE1h
dHJvc2thRGVtdXggdHJhY2tlZCBpbiBHU3RyZWFtZXIgYnVnemlsbGE6CisgICAgICAgIGh0dHBz
Oi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjUyNzUKKworICAgICAgICAq
IGdzdHJlYW1lci9qaGJ1aWxkLm1vZHVsZXM6IEFkZCBuZXcgcGF0Y2guCisgICAgICAgICogZ3N0
cmVhbWVyL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDExLW1hdHJvc2thLUFkZC10aGUtV2Vi
TS1lbmNyeXB0ZWQtY29udGVudC1zdXBwb3J0LWluLW0ucGF0Y2g6IEFkZGVkLgorICAgICAgICAq
IGdzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMi1tYXRyb3NrZGVtdXgtZG8t
bm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0ZXItdW5tYXBwaW5nLnBhdGNoOiBBZGRlZC4KKwogMjAx
OC0xMC0wMyAgWWFjaW5lIEJhbmRvdSAgPHlhY2luZS5iYW5kb3VAc29mdGF0aG9tZS5jb20+CiAK
ICAgICAgICAgW0dTdHJlYW1lcl1bRU1FXSBBZGQgYSBuZXcgZGVmaW5pdGlvbiBmb3IgdW5zcGVj
aWZpZWQgc3lzdGVtIHByb3RlY3Rpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9qaGJ1
aWxkLm1vZHVsZXMgYi9Ub29scy9nc3RyZWFtZXIvamhidWlsZC5tb2R1bGVzCmluZGV4IDhjMjY1
N2ZiNmJmMTJhOTdhY2FlZDExMGE1OGE2MmE1ZDNkMjhjMjkuLmY1MmYxYTYzZjg1Yzg3ODRiOWRi
MjUxMGJhMTZmMWRlZmMyYjJkODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2dzdHJlYW1lci9qaGJ1aWxk
Lm1vZHVsZXMKKysrIGIvVG9vbHMvZ3N0cmVhbWVyL2poYnVpbGQubW9kdWxlcwpAQCAtOTEsNiAr
OTEsOSBAQAogICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAwOC1tYXRyb3Nr
YWRlbXV4LVJlZmFjdG9yLXRyYWNrLXBhcnNpbmctb3V0LWZyb20tYWRkaW5nLnBhdGNoIiBzdHJp
cD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgZjI3OWJjNTMzNmRkYTE5NzQxYTU5OTZhMTA4ZGE0MmRk
MzIwMTM2NiAodG8gYmUgc2hpcHBlZCBpbiAxLjE0LjQpIC0tPgogICAgICAgPHBhdGNoIGZpbGU9
ImdzdC1wbHVnaW5zLWdvb2QtMDAwOS1tYXRyb3NrYWRlbXV4LVBhcnNlLXN1Y2Nlc3NpdmUtVHJh
Y2tzLWVsZW1lbnRzLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgMGU2MDA3NmEz
OTBmZDNlZjUzZDM1MDk0MGIyYzY5NWZmN2JiZTAwOCAodG8gYmUgc2hpcHBlZCBpbiAxLjE0LjQp
IC0tPgogICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAxMC1tYXRyb3NrYWRl
bXV4LUVtaXQtbm8tbW9yZS1wYWRzLWFmdGVyLXBhcnNpbmctVHJhY2tzLnBhdGNoIiBzdHJpcD0i
MSIgLz4gPCEtLSBNZXJnZWQgYXMgN2NlZWZlYzcxNDEwNjliNGFkZjQ0NTFhODc0NzY2Zjg3NjBj
NjZkNiAodG8gYmUgc2hpcHBlZCBpbiAxLjE0LjQpIC0tPgorICAgICAgPHBhdGNoIGZpbGU9Imdz
dC1wbHVnaW5zLWdvb2QtMDAxMS1tYXRyb3NrYS1BZGQtdGhlLVdlYk0tZW5jcnlwdGVkLWNvbnRl
bnQtc3VwcG9ydC1pbi1tLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQgYXMgMDQzMjgy
Njk1MGQ0ZDgwZmUyYjUwZmZkMzc1N2RjMDgxNTVkZTllMyAtLT4KKyAgICAgIDxwYXRjaCBmaWxl
PSJnc3QtcGx1Z2lucy1nb29kLTAwMTItbWF0cm9za2RlbXV4LWRvLW5vdC11c2UtTWFwSW5mby5k
YXRhLWFmdGVyLXVubWFwcGluZy5wYXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIGRl
ZmFlMzUwMzU4NjYwZTU1N2M3NGU0MWE0ZmU4YThiYjMyN2U5YzggLS0+CisKICAgICA8L2JyYW5j
aD4KICAgPC9hdXRvdG9vbHM+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVz
L2dzdC1wbHVnaW5zLWdvb2QtMDAxMS1tYXRyb3NrYS1BZGQtdGhlLVdlYk0tZW5jcnlwdGVkLWNv
bnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtZ29vZC0wMDExLW1hdHJvc2thLUFkZC10aGUtV2ViTS1lbmNyeXB0ZWQtY29udGVudC1z
dXBwb3J0LWluLW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzMGJkYzIyOTAyODU0MzRiNzFkOTQ1M2M5
MGRmNzM0OGRlMTZlOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVz
L2dzdC1wbHVnaW5zLWdvb2QtMDAxMS1tYXRyb3NrYS1BZGQtdGhlLVdlYk0tZW5jcnlwdGVkLWNv
bnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoCkBAIC0wLDAgKzEsODQyIEBACitGcm9tIDY5ZDg5NmEw
MmFjZWY1Y2RhOWQ3MjdmNDY4MThiZjAyMjFmYjgyZWIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx
CitGcm9tOiBZYWNpbmUgQmFuZG91IDx5YWNpbmUuYmFuZG91QHNvZnRhdGhvbWUuY29tPgorRGF0
ZTogU3VuLCAzMCBTZXAgMjAxOCAxOToyODowNyArMDIwMAorU3ViamVjdDogW1BBVENIXSBtYXRy
b3NrYTogQWRkIHRoZSBXZWJNIGVuY3J5cHRlZCBjb250ZW50IHN1cHBvcnQgaW4KKyBtYXRyb3Nr
YWRlbXV4CisKK1RoaXMgY29tbWl0OgorCisxLiBSZWFkcyB0aGUgV2ViTSBhbmQgTWF0cm9za2Eg
Q29udGVudEVuY3J5cHRpb24gc3ViZWxlbWVudHMuCisKKzIuIENyZWF0ZXMgYSBHU1RfUFJPVEVD
VElPTiBldmVudCBmb3IgZWFjaCBDb250ZW50RW5jcnlwdGlvbiwgd2hpY2gKKyAgIHdpbGwgYmUg
c2VudCBiZWZvcmUgcHVzaGluZyB0aGUgZmlyc3Qgc291cmNlIGJ1ZmZlci4KKyAgIFRoZSBEUk0g
c3lzdGVtIGlkIGZpZWxkIGluIHRoaXMgZXZlbnQgaXMgc2V0IHRvIEdTVF9QUk9URUNUSU9OX1VO
U1BFQ0lGSUVEX1NZU1RFTV9JRCwKKyAgIGJlY2F1c2UgaXQgaXNuJ3Qgc3BlY2lmaWVkIG5laXRo
ZXIgYnkgTWF0cm9za2Egbm9yIGJ5IHRoZSBXZWJNIHNwZWMuCisKKzMuIFJlYWRzIHRoZSBwcm90
ZWN0aW9uIGluZm9ybWF0aW9uIG9mIGVuY3J5cHRlZCBCbG9jay9TaW1wbGVCbG9jayBhbmQKKyAg
IGV4dHJhY3RzIHRoZSBJViBhbmQgdGhlIHBhcnRpdGlvbmluZyBmb3JtYXQgKHN1YnNhbXBsZXMp
LgorCis0LiBDcmVhdGVzIHRoZSBtZXRhZGF0YSBwcm90ZWN0aW9uIGZvciBlYWNoIGVuY3J5cHRl
ZCBCbG9jay9TaW1wbGVCbG9jaywKKyAgIHdpdGggdGhvc2UgaW5mb3JtYXRpb25zOiBLZXlJRCAo
ZXh0cmFjdGVkIGZyb20gQ29udGVudEVuY3J5cHRpb24gZWxlbWVudCksCisgICBJViBhbmQgcGFy
dGl0aW9uaW5nIGZvcm1hdC4KKworNS4gQWRkcyBhIG5ldyBjYXBzIGZvciBXZWJNIGVuY3J5cHRl
ZCBjb250ZW50IG5hbWVkICJhcHBsaWNhdGlvbi94LXdlYm0tZW5jIiwKKyAgIHdpdGggdGhlIGZv
bGxvd2luZyBuZXcgZmllbGRzOgorCisgICAiZW5jcnlwdGlvbi1hbGdvcml0aG0iOiBUaGUgZW5j
cnlwdGlvbiBhbGdvcml0aG0gdXNlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVl
czogIk5vbmUiLCAiREVTIiwgIjNERVMiLCAiVHdvZmlzaCIsICJCbG93ZmlzaCIsICJBRVMiLgor
CisgICAiZW5jb2Rpbmctc2NvcGUiOiBUaGUgZmllbGQgdGhhdCBkZXNjcmliZXMgd2hpY2ggRWxl
bWVudHMgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgICAgICAgICAgICAgICAgICAgVmFsdWVzOiAi
ZnJhbWUiLCAiY29kZWMtZGF0YSIsICJuZXh0LWNvbnRlbnQiLgorCisgICAiY2lwaGVyLW1vZGUi
OiBUaGUgY2lwaGVyIG1vZGUgdXNlZCBpbiB0aGUgZW5jcnlwdGlvbi4KKyAgICAgICAgICAgICAg
ICAgIFZhbHVlczogIk5vbmUiLCAiQ1RSIi4KKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcv
c2hvd19idWcuY2dpP2lkPTc2NTI3NQorLS0tCisgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4
LmMgICAgICAgfCAxMjIgKysrKysrKysrKysrLQorIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMu
YyAgICAgICAgIHwgIDczICsrKysrKysrCisgZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5oICAg
ICAgICAgfCAgNTMgKysrKysrCisgZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMg
fCAzNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCisgZ3N0L21hdHJvc2th
L21hdHJvc2thLXJlYWQtY29tbW9uLmggfCAgIDMgKworIDUgZmlsZXMgY2hhbmdlZCwgNTg2IGlu
c2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2th
L21hdHJvc2thLWRlbXV4LmMgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYworaW5kZXgg
NjgzMzgwYmJmLi4xZWY3YjQyY2MgMTAwNjQ0CistLS0gYS9nc3QvbWF0cm9za2EvbWF0cm9za2Et
ZGVtdXguYworKysrIGIvZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKK0BAIC0xNzMsNiAr
MTczLDkgQEAgc3RhdGljIEdzdENhcHMgKmdzdF9tYXRyb3NrYV9kZW11eF9hdWRpb19jYXBzIChH
c3RNYXRyb3NrYVRyYWNrQXVkaW9Db250ZXh0Cisgc3RhdGljIEdzdENhcHMKKyAgICAgKiBnc3Rf
bWF0cm9za2FfZGVtdXhfc3VidGl0bGVfY2FwcyAoR3N0TWF0cm9za2FUcmFja1N1YnRpdGxlQ29u
dGV4dCAqCisgICAgIHN1YnRpdGxlY29udGV4dCwgY29uc3QgZ2NoYXIgKiBjb2RlY19pZCwgZ3Bv
aW50ZXIgZGF0YSwgZ3VpbnQgc2l6ZSk7Cisrc3RhdGljIGNvbnN0IGdjaGFyICpnc3RfbWF0cm9z
a2FfdHJhY2tfZW5jcnlwdGlvbl9hbGdvcml0aG1fbmFtZSAoZ2ludCB2YWwpOworK3N0YXRpYyBj
b25zdCBnY2hhciAqZ3N0X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfbmFt
ZSAoZ2ludCB2YWwpOworK3N0YXRpYyBjb25zdCBnY2hhciAqZ3N0X21hdHJvc2thX3RyYWNrX2Vu
Y29kaW5nX3Njb3BlX25hbWUgKGdpbnQgdmFsKTsKKyAKKyAvKiBzdHJlYW0gbWV0aG9kcyAqLwor
IHN0YXRpYyB2b2lkIGdzdF9tYXRyb3NrYV9kZW11eF9yZXNldCAoR3N0RWxlbWVudCAqIGVsZW1l
bnQpOworQEAgLTM1OSwxMiArMzYyLDEzIEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChH
c3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAgIEdz
dE1hcEluZm8gbWFwOworICAgZ3BvaW50ZXIgZGF0YTsKKyAgIGdzaXplIHNpemU7CisrICBHc3RC
dWZmZXIgKm91dF9idWYgPSBidWY7CisgCisgICBnX3JldHVybl92YWxfaWZfZmFpbCAoR1NUX0lT
X0JVRkZFUiAoYnVmKSwgTlVMTCk7CisgCisgICBHU1RfREVCVUcgKCJkZWNvZGluZyBidWZmZXIg
JXAiLCBidWYpOworIAorLSAgZ3N0X2J1ZmZlcl9tYXAgKGJ1ZiwgJm1hcCwgR1NUX01BUF9SRUFE
KTsKKysgIGdzdF9idWZmZXJfbWFwIChvdXRfYnVmLCAmbWFwLCBHU1RfTUFQX1JFQUQpOworICAg
ZGF0YSA9IG1hcC5kYXRhOworICAgc2l6ZSA9IG1hcC5zaXplOworIAorQEAgLTM3MiwxNSArMzc2
LDUzIEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4
dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAKKyAgIGlmIChnc3RfbWF0cm9za2FfZGVj
b2RlX2RhdGEgKGNvbnRleHQtPmVuY29kaW5ncywgJmRhdGEsICZzaXplLAorICAgICAgICAgICBH
U1RfTUFUUk9TS0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVfRlJBTUUsIEZBTFNFKSkgeworLSAgICBn
c3RfYnVmZmVyX3VubWFwIChidWYsICZtYXApOworLSAgICBnc3RfYnVmZmVyX3VucmVmIChidWYp
OworLSAgICByZXR1cm4gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoZGF0YSwgc2l6ZSk7CisrICAg
IGdzdF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOworKyAgICBpZiAoZGF0YSAhPSBtYXAu
ZGF0YSkgeworKyAgICAgIGdzdF9idWZmZXJfdW5yZWYgKG91dF9idWYpOworKyAgICAgIG91dF9i
dWYgPSBnc3RfYnVmZmVyX25ld193cmFwcGVkIChkYXRhLCBzaXplKTsKKysgICAgfQorICAgfSBl
bHNlIHsKKyAgICAgR1NUX0RFQlVHICgiZGVjb2RlIGRhdGEgZmFpbGVkIik7CistICAgIGdzdF9i
dWZmZXJfdW5tYXAgKGJ1ZiwgJm1hcCk7CistICAgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zik7Cisr
ICAgIGdzdF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOworKyAgICBnc3RfYnVmZmVyX3Vu
cmVmIChvdXRfYnVmKTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CisrICAvKiBFbmNyeXB0ZWQg
c3RyZWFtICovCisrICBpZiAoY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvKSB7CisrCisrICAgIEdz
dFN0cnVjdHVyZSAqaW5mb19wcm90ZWN0ID0gZ3N0X3N0cnVjdHVyZV9jb3B5IChjb250ZXh0LT5w
cm90ZWN0aW9uX2luZm8pOworKyAgICBnYm9vbGVhbiBlbmNyeXB0ZWQgPSBGQUxTRTsKKysKKysg
ICAgZ3N0X2J1ZmZlcl9tYXAgKG91dF9idWYsICZtYXAsIEdTVF9NQVBfUkVBRCk7CisrICAgIGRh
dGEgPSBtYXAuZGF0YTsKKysgICAgc2l6ZSA9IG1hcC5zaXplOworKworKyAgICBpZiAoZ3N0X21h
dHJvc2thX3BhcnNlX3Byb3RlY3Rpb25fbWV0YSAoJmRhdGEsICZzaXplLCBpbmZvX3Byb3RlY3Qs
CisrICAgICAgICAgICAgJmVuY3J5cHRlZCkpIHsKKysgICAgICBnc3RfYnVmZmVyX3VubWFwIChv
dXRfYnVmLCAmbWFwKTsKKysgICAgICBpZiAoZGF0YSAhPSBtYXAuZGF0YSkgeworKyAgICAgICAg
R3N0QnVmZmVyICp0bXBfYnVmID0gb3V0X2J1ZjsKKysgICAgICAgIG91dF9idWYgPQorKyAgICAg
ICAgICAgIGdzdF9idWZmZXJfY29weV9yZWdpb24gKHRtcF9idWYsIEdTVF9CVUZGRVJfQ09QWV9B
TEwsCisrICAgICAgICAgICAgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSAodG1wX2J1ZikgLSBzaXplLCBz
aXplKTsKKysgICAgICAgIGdzdF9idWZmZXJfdW5yZWYgKHRtcF9idWYpOworKyAgICAgICAgaWYg
KGVuY3J5cHRlZCkKKysgICAgICAgICAgZ3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRhIChv
dXRfYnVmLCBpbmZvX3Byb3RlY3QpOworKyAgICAgICAgZWxzZQorKyAgICAgICAgICBnc3Rfc3Ry
dWN0dXJlX2ZyZWUgKGluZm9fcHJvdGVjdCk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAgIGdz
dF9zdHJ1Y3R1cmVfZnJlZSAoaW5mb19wcm90ZWN0KTsKKysgICAgICB9CisrICAgIH0gZWxzZSB7
CisrICAgICAgR1NUX1dBUk5JTkcgKCJBZGRpbmcgcHJvdGVjdGlvbiBtZXRhZGF0YSBmYWlsZWQi
KTsKKysgICAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKKysgICAgICBnc3Rf
YnVmZmVyX3VucmVmIChvdXRfYnVmKTsKKysgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUgKGluZm9f
cHJvdGVjdCk7CisrICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKysgIH0KKysKKysgIHJldHVy
biBvdXRfYnVmOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTYzMCw2ICs2NzIsOCBAQCBnc3Rf
bWF0cm9za2FfZGVtdXhfcGFyc2Vfc3RyZWFtIChHc3RNYXRyb3NrYURlbXV4ICogZGVtdXgsIEdz
dEVibWxSZWFkICogZWJtbCwKKyAgIGNvbnRleHQtPmR0c19vbmx5ID0gRkFMU0U7CisgICBjb250
ZXh0LT5pbnRyYV9vbmx5ID0gRkFMU0U7CisgICBjb250ZXh0LT50YWdzID0gZ3N0X3RhZ19saXN0
X25ld19lbXB0eSAoKTsKKysgIGdfcXVldWVfaW5pdCAoJmNvbnRleHQtPnByb3RlY3Rpb25fZXZl
bnRfcXVldWUpOworKyAgY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvID0gTlVMTDsKKyAKKyAgIEdT
VF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiUGFyc2luZyBhIFRyYWNrRW50cnkgKCVkIHRyYWNrcyBw
YXJzZWQgc28gZmFyKSIsCisgICAgICAgZGVtdXgtPmNvbW1vbi5udW1fc3RyZWFtcyk7CitAQCAt
MTQ2Nyw2ICsxNTExLDMxIEBAIGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9zdHJlYW0gKEdzdE1h
dHJvc2thRGVtdXggKiBkZW11eCwgR3N0RWJtbFJlYWQgKiBlYm1sLAorICAgICAgICAgY29udGV4
dC0+c3RyZWFtX2hlYWRlcnMsIGNhcHMpOworICAgfQorIAorKyAgaWYgKGNvbnRleHQtPmVuY29k
aW5ncykgeworKyAgICBHc3RNYXRyb3NrYVRyYWNrRW5jb2RpbmcgKmVuYzsKKysgICAgZ3VpbnQg
aTsKKysKKysgICAgZm9yIChpID0gMDsgaSA8IGNvbnRleHQtPmVuY29kaW5ncy0+bGVuOyBpKysp
IHsKKysgICAgICBlbmMgPSAmZ19hcnJheV9pbmRleCAoY29udGV4dC0+ZW5jb2RpbmdzLCBHc3RN
YXRyb3NrYVRyYWNrRW5jb2RpbmcsIGkpOworKyAgICAgIGlmIChlbmMtPnR5cGUgPT0gR1NUX01B
VFJPU0tBX0VOQ09ESU5HX0VOQ1JZUFRJT04gLyogZW5jcnlwdGlvbiAqLyApIHsKKysgICAgICAg
IEdzdFN0cnVjdHVyZSAqcyA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUgKGNhcHMsIDApOworKyAg
ICAgICAgaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19uYW1lIChzLCAiYXBwbGljYXRpb24veC13ZWJt
LWVuYyIpKSB7CisrICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLCAib3JpZ2luYWwtbWVk
aWEtdHlwZSIsIEdfVFlQRV9TVFJJTkcsCisrICAgICAgICAgICAgICBnc3Rfc3RydWN0dXJlX2dl
dF9uYW1lIChzKSwgTlVMTCk7CisrICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLCAiZW5j
cnlwdGlvbi1hbGdvcml0aG0iLCBHX1RZUEVfU1RSSU5HLAorKyAgICAgICAgICAgICAgZ3N0X21h
dHJvc2thX3RyYWNrX2VuY3J5cHRpb25fYWxnb3JpdGhtX25hbWUgKGVuYy0+ZW5jX2FsZ28pLAor
KyAgICAgICAgICAgICAgTlVMTCk7CisrICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLCAi
ZW5jb2Rpbmctc2NvcGUiLCBHX1RZUEVfU1RSSU5HLAorKyAgICAgICAgICAgICAgZ3N0X21hdHJv
c2thX3RyYWNrX2VuY29kaW5nX3Njb3BlX25hbWUgKGVuYy0+c2NvcGUpLCBOVUxMKTsKKysgICAg
ICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKHMsICJjaXBoZXItbW9kZSIsIEdfVFlQRV9TVFJJTkcs
CisrICAgICAgICAgICAgICBnc3RfbWF0cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9jaXBoZXJfbW9k
ZV9uYW1lCisrICAgICAgICAgICAgICAoZW5jLT5lbmNfY2lwaGVyX21vZGUpLCBOVUxMKTsKKysg
ICAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXRfbmFtZSAocywgImFwcGxpY2F0aW9uL3gtd2VibS1l
bmMiKTsKKysgICAgICAgIH0KKysgICAgICB9CisrICAgIH0KKysgIH0KKysKKyAgIGNvbnRleHQt
PmNhcHMgPSBjYXBzOworIAorICAgLyogdGFkYWFoISAqLworQEAgLTQxODUsNiArNDI1NCw3IEBA
IGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrIChHc3RN
YXRyb3NrYURlbXV4ICogZGVtdXgsCisgICAgIGdib29sZWFuIGRlbHRhX3VuaXQgPSBGQUxTRTsK
KyAgICAgZ3VpbnQ2NCBkdXJhdGlvbiA9IDA7CisgICAgIGdpbnQ2NCBsYWNlX3RpbWUgPSAwOwor
KyAgICBHc3RFdmVudCAqcHJvdGVjdF9ldmVudDsKKyAKKyAgICAgc3RyZWFtID0gZ19wdHJfYXJy
YXlfaW5kZXggKGRlbXV4LT5jb21tb24uc3JjLCBzdHJlYW1fbnVtKTsKKyAKK0BAIC00MjA0LDYg
KzQyNzQsMTIgQEAgZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2ltcGxl
YmxvY2sgKEdzdE1hdHJvc2thRGVtdXggKiBkZW11eCwKKyAgICAgfSBlbHNlIHsKKyAgICAgICBs
YWNlX3RpbWUgPSBHU1RfQ0xPQ0tfVElNRV9OT05FOworICAgICB9CisrICAgIC8qIFNlbmQgdGhl
IEdTVF9QUk9URUNUSU9OIGV2ZW50ICovCisrICAgIHdoaWxlICgocHJvdGVjdF9ldmVudCA9IGdf
cXVldWVfcG9wX2hlYWQgKCZzdHJlYW0tPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpKSkgeworKyAg
ICAgIEdTVF9UUkFDRV9PQkpFQ1QgKGRlbXV4LCAicHVzaGluZyBwcm90ZWN0aW9uIGV2ZW50IGZv
ciBzdHJlYW0gJWQ6JXMiLAorKyAgICAgICAgICBzdHJlYW0tPmluZGV4LCBHU1RfU1RSX05VTEwg
KHN0cmVhbS0+bmFtZSkpOworKyAgICAgIGdzdF9wYWRfcHVzaF9ldmVudCAoc3RyZWFtLT5wYWQs
IHByb3RlY3RfZXZlbnQpOworKyAgICB9CisgCisgICAgIC8qIG5lZWQgdG8gcmVmcmVzaCBzZWdt
ZW50IGluZm8gQVNBUCAqLworICAgICBpZiAoR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgKGxhY2Vf
dGltZSkgJiYgZGVtdXgtPm5lZWRfc2VnbWVudCkgeworQEAgLTUzNTAsNiArNTQyNiw5IEBAIGdz
dF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pZCAoR3N0TWF0cm9za2FEZW11eCAqIGRlbXV4LCBndWlu
dDMyIGlkLAorICAgICAgICAgfQorICAgICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfUE9TSVRJ
T046CisgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9FTkNSWVBURURCTE9DSzoKKysgICAg
ICAgICAgLyogVGhlIFdlYk0gZG9lc24ndCBzdXBwb3J0IHRoZSBFbmNyeXB0ZWRCbG9jayBlbGVt
ZW50LgorKyAgICAgICAgICAgKiBUaGUgTWF0cm9za2Egc3BlYyBkb2Vzbid0IGdpdmUgdXMgbW9y
ZSBkZXRhaWwsIGhvdyB0byBwYXJzZSB0aGlzIGVsZW1lbnQsCisrICAgICAgICAgICAqIGZvciBl
eGFtcGxlIHRoZSBmaWVsZCBUcmFuc2Zvcm1JRCBpc24ndCBzcGVjaWZpZWQgeWV0LiovCisgICAg
ICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9TSUxFTlRUUkFDS1M6CisgICAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1QgKGRlbXV4LAorICAgICAgICAgICAgICAgIlNraXBwaW5nIENsdXN0ZXIgc3Vi
ZWxlbWVudCAweCV4IC0gaWdub3JpbmciLCBpZCk7CitAQCAtNjkxNSw2ICs2OTk0LDM3IEBAIGdz
dF9tYXRyb3NrYV9kZW11eF9nZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsCisgICB9Cisg
fQorIAorK3N0YXRpYyBjb25zdCBnY2hhciAqCisrZ3N0X21hdHJvc2thX3RyYWNrX2VuY3J5cHRp
b25fYWxnb3JpdGhtX25hbWUgKGdpbnQgdmFsKQorK3sKKysgIEdFbnVtVmFsdWUgKmVuOworKyAg
R0VudW1DbGFzcyAqZW51bV9jbGFzcyA9CisrICAgICAgZ190eXBlX2NsYXNzX3JlZiAoTUFUUk9T
S0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fVFlQRSk7CisrICBlbiA9IGdfZW51bV9nZXRf
dmFsdWUgKEdfRU5VTV9DTEFTUyAoZW51bV9jbGFzcyksIHZhbCk7CisrICByZXR1cm4gZW4gPyBl
bi0+dmFsdWVfbmljayA6IE5VTEw7CisrfQorKworK3N0YXRpYyBjb25zdCBnY2hhciAqCisrZ3N0
X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfbmFtZSAoZ2ludCB2YWwpCisr
eworKyAgR0VudW1WYWx1ZSAqZW47CisrICBHRW51bUNsYXNzICplbnVtX2NsYXNzID0KKysgICAg
ICBnX3R5cGVfY2xhc3NfcmVmIChNQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RF
X1RZUEUpOworKyAgZW4gPSBnX2VudW1fZ2V0X3ZhbHVlIChHX0VOVU1fQ0xBU1MgKGVudW1fY2xh
c3MpLCB2YWwpOworKyAgcmV0dXJuIGVuID8gZW4tPnZhbHVlX25pY2sgOiBOVUxMOworK30KKysK
KytzdGF0aWMgY29uc3QgZ2NoYXIgKgorK2dzdF9tYXRyb3NrYV90cmFja19lbmNvZGluZ19zY29w
ZV9uYW1lIChnaW50IHZhbCkKKyt7CisrICBHRW51bVZhbHVlICplbjsKKysgIEdFbnVtQ2xhc3Mg
KmVudW1fY2xhc3MgPQorKyAgICAgIGdfdHlwZV9jbGFzc19yZWYgKE1BVFJPU0tBX1RSQUNLX0VO
Q09ESU5HX1NDT1BFX1RZUEUpOworKworKyAgZW4gPSBnX2VudW1fZ2V0X3ZhbHVlIChHX0VOVU1f
Q0xBU1MgKGVudW1fY2xhc3MpLCB2YWwpOworKyAgcmV0dXJuIGVuID8gZW4tPnZhbHVlX25pY2sg
OiBOVUxMOworK30KKysKKyBnYm9vbGVhbgorIGdzdF9tYXRyb3NrYV9kZW11eF9wbHVnaW5faW5p
dCAoR3N0UGx1Z2luICogcGx1Z2luKQorIHsKK2RpZmYgLS1naXQgYS9nc3QvbWF0cm9za2EvbWF0
cm9za2EtaWRzLmMgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmMKK2luZGV4IDNiZTNkMjc2
Yi4uYjk2NDA0Mzg2IDEwMDY0NAorLS0tIGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5jCisr
KysgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmMKK0BAIC0zNTEsNSArMzUxLDc4IEBAIGdz
dF9tYXRyb3NrYV90cmFja19mcmVlIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIHRyYWNrKQor
ICAgaWYgKHRyYWNrLT5zdHJlYW1faGVhZGVycykKKyAgICAgZ3N0X2J1ZmZlcl9saXN0X3VucmVm
ICh0cmFjay0+c3RyZWFtX2hlYWRlcnMpOworIAorKyAgZ19xdWV1ZV9mb3JlYWNoICgmdHJhY2st
PnByb3RlY3Rpb25fZXZlbnRfcXVldWUsIChHRnVuYykgZ3N0X2V2ZW50X3VucmVmLAorKyAgICAg
IE5VTEwpOworKyAgZ19xdWV1ZV9jbGVhciAoJnRyYWNrLT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVl
KTsKKysKKysgIGlmICh0cmFjay0+cHJvdGVjdGlvbl9pbmZvKQorKyAgICBnc3Rfc3RydWN0dXJl
X2ZyZWUgKHRyYWNrLT5wcm90ZWN0aW9uX2luZm8pOworKworICAgZ19mcmVlICh0cmFjayk7Cisg
fQorKworK0dUeXBlCisrbWF0cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9hbGdvcml0aG1fZ2V0X3R5
cGUgKHZvaWQpCisreworKyAgc3RhdGljIEdUeXBlIHR5cGUgPSAwOworKworKyAgc3RhdGljIGNv
bnN0IEdFbnVtVmFsdWUgdHlwZXNbXSA9IHsKKysgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNS
WVBUSU9OX0FMR09SSVRITV9OT05FLCAiTm90IGVuY3J5cHRlZCIsCisrICAgICAgICAiTm9uZSJ9
LAorKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX0RFUywgIkRF
UyBlbmNyeXB0aW9uIGFsZ29yaXRobSIsCisrICAgICAgICAiREVTIn0sCisrICAgIHtHU1RfTUFU
Uk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fM0RFUywgIjNERVMgZW5jcnlwdGlvbiBh
bGdvcml0aG0iLAorKyAgICAgICAgIjNERVMifSwKKysgICAge0dTVF9NQVRST1NLQV9UUkFDS19F
TkNSWVBUSU9OX0FMR09SSVRITV9UV09GSVNILAorKyAgICAgICAgIlR3b0Zpc2ggZW5jcnlwdGlv
biBhbGdvcml0aG0iLCAiVHdvRmlzaCJ9LAorKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZ
UFRJT05fQUxHT1JJVEhNX0JMT1dGSVNILAorKyAgICAgICAgIkJsb3dGaXNoIGVuY3J5cHRpb24g
YWxnb3JpdGhtIiwgIkJsb3dGaXNoIn0sCisrICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQ
VElPTl9BTEdPUklUSE1fQUVTLCAiQUVTIGVuY3J5cHRpb24gYWxnb3JpdGhtIiwKKysgICAgICAg
ICJBRVMifSwKKysgICAgezAsIE5VTEwsIE5VTEx9CisrICB9OworKworKyAgaWYgKCF0eXBlKSB7
CisrICAgIHR5cGUgPSBnX2VudW1fcmVnaXN0ZXJfc3RhdGljICgiTWF0cm9za2FUcmFja0VuY3J5
cHRpb25BbGdvcml0aG0iLCB0eXBlcyk7CisrICB9CisrICByZXR1cm4gdHlwZTsKKyt9CisrCisr
R1R5cGUKKyttYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2NpcGhlcl9tb2RlX2dldF90eXBlICh2
b2lkKQorK3sKKysgIHN0YXRpYyBHVHlwZSB0eXBlID0gMDsKKysKKysgIHN0YXRpYyBjb25zdCBH
RW51bVZhbHVlIHR5cGVzW10gPSB7CisrICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQVElP
Tl9DSVBIRVJfTU9ERV9OT05FLCAiTm90IGRlZmluZWQiLAorKyAgICAgICAgIk5vbmUifSwKKysg
ICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX0NUUiwgIkNUUiBl
bmNyeXB0aW9uIG1vZGUiLAorKyAgICAgICAgIkNUUiJ9LAorKyAgICB7MCwgTlVMTCwgTlVMTH0K
KysgIH07CisrCisrICBpZiAoIXR5cGUpIHsKKysgICAgdHlwZSA9IGdfZW51bV9yZWdpc3Rlcl9z
dGF0aWMgKCJNYXRyb3NrYVRyYWNrRW5jcnlwdGlvbkNpcGhlck1vZGUiLCB0eXBlcyk7CisrICB9
CisrICByZXR1cm4gdHlwZTsKKyt9CisrCisrR1R5cGUKKyttYXRyb3NrYV90cmFja19lbmNvZGlu
Z19zY29wZV9nZXRfdHlwZSAodm9pZCkKKyt7CisrICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7Cisr
CisrICBzdGF0aWMgY29uc3QgR0VudW1WYWx1ZSB0eXBlc1tdID0geworKyAgICB7R1NUX01BVFJP
U0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX0ZSQU1FLCAiRW5jb2Rpbmcgc2NvcGUgZnJhbWUiLCAi
ZnJhbWUifSwKKysgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNPRElOR19TQ09QRV9DT0RFQ19E
QVRBLCAiRW5jb2Rpbmcgc2NvcGUgY29kZWMgZGF0YSIsCisrICAgICAgICAiY29kZWMtZGF0YSJ9
LAorKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX05FWFRfQ09OVEVOVF9F
TkNPRElORywKKysgICAgICAgICJFbmNvZGluZyBzY29wZSBuZXh0IGNvbnRlbnQiLCAibmV4dC1j
b250ZW50In0sCisrICAgIHswLCBOVUxMLCBOVUxMfQorKyAgfTsKKysKKysgIGlmICghdHlwZSkg
eworKyAgICB0eXBlID0gZ19lbnVtX3JlZ2lzdGVyX3N0YXRpYyAoIk1hdHJvc2thVHJhY2tFbmNv
ZGluZ1Njb3BlIiwgdHlwZXMpOworKyAgfQorKyAgcmV0dXJuIHR5cGU7CisrfQorZGlmZiAtLWdp
dCBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaCBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1p
ZHMuaAoraW5kZXggYzJlNDFlNTQ5Li45YjI2M2Q4YTEgMTAwNjQ0CistLS0gYS9nc3QvbWF0cm9z
a2EvbWF0cm9za2EtaWRzLmgKKysrKyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaAorQEAg
LTE3NSw2ICsxNzUsOSBAQAorICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRTSUdLRVlJ
RCAgICAgICAgICAgIDB4NDdFNAorICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRTSUdB
TEdPICAgICAgICAgICAgIDB4NDdFNQorICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRT
SUdIQVNIQUxHTyAgICAgICAgIDB4NDdFNgorKy8qIEFkZGVkIGluIFdlYk0gc3BlYyAqLworKyNk
ZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRFTkNBRVNTRVRUSU5HUyAgICAgIDB4NDdFNwor
KyNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0FFU1NFVFRJTkdTQ0lQSEVSTU9ERSAgICAgIDB4NDdF
OAorIAorIC8qIElEIGluIHRoZSBDVUVzIG1hc3RlciAqLworICNkZWZpbmUgR1NUX01BVFJPU0tB
X0lEX1BPSU5URU5UUlkgICAgICAgICAgICAgICAgIDB4QkIKK0BAIC01MTYsNiArNTE5LDE3IEBA
IHR5cGVkZWYgZW51bSB7CisgICBHU1RfTUFUUk9TS0FfU1RFUkVPX01PREVfRkJGX1JMICAgICAg
PSAweEUKKyB9IEdzdE1hdHJvc2thU3RlcmVvTW9kZTsKKyAKKyt0eXBlZGVmIGVudW0geworKyAg
R1NUX01BVFJPU0tBX0VOQ09ESU5HX0NPTVBSRVNTSU9OID0gMHgwMCwKKysgIEdTVF9NQVRST1NL
QV9FTkNPRElOR19FTkNSWVBUSU9OICA9IDB4MDEKKyt9IEdzdE1hdHJvc2thRW5jb2RpbmdUeXBl
OworKworKy8qIFdlYk0gc3BlYyAqLworK3R5cGVkZWYgZW51bSB7CisrICBHU1RfTUFUUk9TS0Ff
QkxPQ0tfRU5DUllQVEVEICAgPSAweDAxLAorKyAgR1NUX01BVFJPU0tBX0JMT0NLX1BBUlRJVElP
TkVEID0gMHgwMgorK30gR3N0TWF0cm9za2FFbmNyeXB0ZWRCbG9ja0ZsYWdzOworKworIHR5cGVk
ZWYgc3RydWN0IF9Hc3RNYXRyb3NrYVRyYWNrQ29udGV4dCBHc3RNYXRyb3NrYVRyYWNrQ29udGV4
dDsKKyAKKyAvKiBUT0RPOiBjaGVjayBpZiBhbGwgZmllbGRzIGFyZSB1c2VkICovCitAQCAtNTQ5
LDYgKzU2MywxMSBAQCBzdHJ1Y3QgX0dzdE1hdHJvc2thVHJhY2tDb250ZXh0IHsKKyAKKyAgIGdi
b29sZWFuICAgICAgc2V0X2Rpc2NvbnQ7IC8qIFRSVUUgPSBzZXQgRElTQ09OVCBmbGFnIG9uIG5l
eHQgYnVmZmVyICovCisgCisrICAvKiBRdWV1ZSB0byBzYXZlIHRoZSBHU1RfUFJPVEVDVElPTiBl
dmVudHMgd2hpY2ggd2lsbCBiZSBzZW50IGJlZm9yZSB0aGUgZmlyc3Qgc291cmNlIGJ1ZmZlciAq
LworKyAgR1F1ZXVlICAgICAgICAgcHJvdGVjdGlvbl9ldmVudF9xdWV1ZTsKKysgIC8qIFByb3Rl
Y3Rpb24gaW5mb3JtYXRpb24gc3RydWN0dXJlIHdoaWNoIHdpbGwgYmUgYWRkZWQgaW4gcHJvdGVj
dGlvbiBtZXRhZGF0YSBmb3IgZWFjaCBlbmNyeXB0ZWQgYnVmZmVyICovCisrICBHc3RTdHJ1Y3R1
cmUgKiBwcm90ZWN0aW9uX2luZm87CisrCisgICAvKiBTdHJlYW0gaGVhZGVyIGJ1ZmZlciwgdG8g
cHV0IGludG8gY2FwcyBhbmQgc2VuZCBiZWZvcmUgYW55IG90aGVyIGJ1ZmZlcnMgKi8KKyAgIEdz
dEJ1ZmZlckxpc3QgKiBzdHJlYW1faGVhZGVyczsKKyAgIGdib29sZWFuICAgICAgICBzZW5kX3N0
cmVhbV9oZWFkZXJzOworQEAgLTY1NCw2ICs2NzMsOSBAQCB0eXBlZGVmIGVudW0geworICAgR1NU
X01BVFJPU0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX05FWFRfQ09OVEVOVF9FTkNPRElORyA9ICgx
PDwyKQorIH0gR3N0TWF0cm9za2FUcmFja0VuY29kaW5nU2NvcGU7CisgCisrI2RlZmluZSBNQVRS
T1NLQV9UUkFDS19FTkNPRElOR19TQ09QRV9UWVBFIChtYXRyb3NrYV90cmFja19lbmNvZGluZ19z
Y29wZV9nZXRfdHlwZSgpKQorK0dUeXBlIG1hdHJvc2thX3RyYWNrX2VuY29kaW5nX3Njb3BlX2dl
dF90eXBlICh2b2lkKTsKKysKKyB0eXBlZGVmIGVudW0geworICAgR1NUX01BVFJPU0tBX1RSQUNL
X0NPTVBSRVNTSU9OX0FMR09SSVRITV9aTElCID0gMCwKKyAgIEdTVF9NQVRST1NLQV9UUkFDS19D
T01QUkVTU0lPTl9BTEdPUklUSE1fQlpMSUIgPSAxLAorQEAgLTY2MSw2ICs2ODMsMzUgQEAgdHlw
ZWRlZiBlbnVtIHsKKyAgIEdTVF9NQVRST1NLQV9UUkFDS19DT01QUkVTU0lPTl9BTEdPUklUSE1f
SEVBREVSU1RSSVAgPSAzCisgfSBHc3RNYXRyb3NrYVRyYWNrQ29tcHJlc3Npb25BbGdvcml0aG07
CisgCisrLyogVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHVzZWQuIFRoZSB2YWx1ZSAnMCcgbWVh
bnMgdGhhdCB0aGUgY29udGVudHMKKysgKiBoYXZlIG5vdCBiZWVuIGVuY3J5cHRlZCBidXQgb25s
eSBzaWduZWQuCisrICogUHJlZGVmaW5lZCB2YWx1ZXM6IDEgLSBERVM7IDIgLSAzREVTOyAzIC0g
VHdvZmlzaDsgNCAtIEJsb3dmaXNoOyA1IC0gQUVTLgorKyAqIFdlYk0gb25seSBzdXBwb3J0cyBh
IHZhbHVlIG9mIDUgKEFFUykuCisrICovCisrdHlwZWRlZiBlbnVtIHsKKysgIEdTVF9NQVRST1NL
QV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9OT05FICAgICA9IDAsCisrICBHU1RfTUFUUk9T
S0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fREVTICAgICAgPSAxLAorKyAgR1NUX01BVFJP
U0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNXzNERVMgICAgID0gMiwKKysgIEdTVF9NQVRS
T1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9UV09GSVNIICA9IDMsCisrICBHU1RfTUFU
Uk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fQkxPV0ZJU0ggPSA0LAorKyAgR1NUX01B
VFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX0FFUyAgICAgID0gNQorK30gR3N0TWF0
cm9za2FUcmFja0VuY3J5cHRpb25BbGdvcml0aG07CisrCisrI2RlZmluZSBNQVRST1NLQV9UUkFD
S19FTkNSWVBUSU9OX0FMR09SSVRITV9UWVBFIChtYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2Fs
Z29yaXRobV9nZXRfdHlwZSgpKQorK0dUeXBlIG1hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fYWxn
b3JpdGhtX2dldF90eXBlICh2b2lkKTsKKysKKysvKiBEZWZpbmVkIG9ubHkgaW4gV2ViTSBzcGVj
LgorKyAqIFRoZSBjaXBoZXIgbW9kZSB1c2VkIGluIHRoZSBlbmNyeXB0aW9uLiBQcmVkZWZpbmVk
IHZhbHVlczogMSAtIENUUgorKyAqLworK3R5cGVkZWYgZW51bSB7CisrICBHU1RfTUFUUk9TS0Ff
VFJBQ0tfRU5DUllQVElPTl9DSVBIRVJfTU9ERV9OT05FICAgID0gMCwKKysgIEdTVF9NQVRST1NL
QV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX0NUUiAgICAgPSAxCisrfSBHc3RNYXRyb3Nr
YVRyYWNrRW5jcnlwdGlvbkNpcGhlck1vZGU7CisrCisrI2RlZmluZSBNQVRST1NLQV9UUkFDS19F
TkNSWVBUSU9OX0NJUEhFUl9NT0RFX1RZUEUgKG1hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lw
aGVyX21vZGVfZ2V0X3R5cGUoKSkKKytHVHlwZSBtYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2Np
cGhlcl9tb2RlX2dldF90eXBlICh2b2lkKTsKKysKKysKKyB0eXBlZGVmIHN0cnVjdCBfR3N0TWF0
cm9za2FUcmFja0VuY29kaW5nIHsKKyAgIGd1aW50ICAgb3JkZXI7CisgICBndWludCAgIHNjb3Bl
ICAgICA6IDM7CitAQCAtNjY4LDYgKzcxOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9Hc3RNYXRyb3Nr
YVRyYWNrRW5jb2RpbmcgeworICAgZ3VpbnQgICBjb21wX2FsZ28gOiAyOworICAgZ3VpbnQ4ICpj
b21wX3NldHRpbmdzOworICAgZ3VpbnQgICBjb21wX3NldHRpbmdzX2xlbmd0aDsKKysgIGd1aW50
ICAgZW5jX2FsZ28gIDogMzsKKysgIGd1aW50ICAgZW5jX2NpcGhlcl9tb2RlIDogMjsKKyB9IEdz
dE1hdHJvc2thVHJhY2tFbmNvZGluZzsKKyAKKyBnYm9vbGVhbiBnc3RfbWF0cm9za2FfdHJhY2tf
aW5pdF92aWRlb19jb250ZXh0ICAgIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqKiBwX2NvbnRl
eHQpOworZGlmZiAtLWdpdCBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jIGIv
Z3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMKK2luZGV4IDQxOWJhN2Y5NS4uZmZi
MzkzYmY5IDEwMDY0NAorLS0tIGEvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMK
KysrKyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jCitAQCAtMzksNiArMzks
NyBAQAorIAorICNpbmNsdWRlIDxnc3QvdGFnL3RhZy5oPgorICNpbmNsdWRlIDxnc3QvYmFzZS9n
c3R0eXBlZmluZGhlbHBlci5oPgorKyNpbmNsdWRlIDxnc3QvYmFzZS9nc3RieXRld3JpdGVyLmg+
CisgCisgI2luY2x1ZGUgImx6by5oIgorIAorQEAgLTI2Miw5ICsyNjMsOSBAQCBnc3RfbWF0cm9z
a2FfZGVjb2RlX2NvbnRlbnRfZW5jb2RpbmdzIChHQXJyYXkgKiBlbmNvZGluZ3MpCisgICAgICAg
ICA9PSAwKQorICAgICAgIGNvbnRpbnVlOworIAorLSAgICAvKiBFbmNyeXB0aW9uIG5vdCBzdXBw
b3J0ZWQgeWV0ICovCistICAgIGlmIChlbmMtPnR5cGUgIT0gMCkKKy0gICAgICByZXR1cm4gR1NU
X0ZMT1dfRVJST1I7CisrICAgIC8qIE90aGVyIHRoYW4gRU5DT0RJTkdfQ09NUFJFU1NJT04gbm90
IGhhbmRsZWQgaGVyZSAqLworKyAgICBpZiAoZW5jLT50eXBlICE9IEdTVF9NQVRST1NLQV9FTkNP
RElOR19DT01QUkVTU0lPTikKKysgICAgICBjb250aW51ZTsKKyAKKyAgICAgaWYgKGkgKyAxID49
IGVuY29kaW5ncy0+bGVuKQorICAgICAgIHJldHVybiBHU1RfRkxPV19FUlJPUjsKK0BAIC0zMTIs
OSArMzEzLDkgQEAgZ3N0X21hdHJvc2thX2RlY29kZV9kYXRhIChHQXJyYXkgKiBlbmNvZGluZ3Ms
IGdwb2ludGVyICogZGF0YV9vdXQsCisgICAgIGlmICgoZW5jLT5zY29wZSAmIHNjb3BlKSA9PSAw
KQorICAgICAgIGNvbnRpbnVlOworIAorLSAgICAvKiBFbmNyeXB0aW9uIG5vdCBzdXBwb3J0ZWQg
eWV0ICovCistICAgIGlmIChlbmMtPnR5cGUgIT0gMCkgeworLSAgICAgIHJldCA9IEZBTFNFOwor
KyAgICAvKiBFbmNyeXB0aW9uIG5vdCBoYW5kbGVkIGhlcmUgKi8KKysgICAgaWYgKGVuYy0+dHlw
ZSAhPSBHU1RfTUFUUk9TS0FfRU5DT0RJTkdfQ09NUFJFU1NJT04pIHsKKysgICAgICByZXQgPSBU
UlVFOworICAgICAgIGJyZWFrOworICAgICB9CisgCitAQCAtMzQ5LDYgKzM1MCwyMTEgQEAgZ3N0
X21hdHJvc2thX2RlY29kZV9kYXRhIChHQXJyYXkgKiBlbmNvZGluZ3MsIGdwb2ludGVyICogZGF0
YV9vdXQsCisgICByZXR1cm4gcmV0OworIH0KKyAKKysvKiBUaGlzIGZ1bmN0aW9uIHBhcnNlcyB0
aGUgcHJvdGVjdGlvbiBpbmZvIG9mIEJsb2NrL1NpbXBsZUJsb2NrIGFuZCBleHRyYWN0cyB0aGUK
KysgKiBJViBhbmQgcGFydGl0aW9uaW5nIGZvcm1hdCAoc3Vic2FtcGxlKSBpbmZvcm1hdGlvbi4K
KysgKiBTZXQgdGhvc2UgcGFyc2VkIGluZm9ybWF0aW9uIGludG8gcHJvdGVjdGlvbiBpbmZvIHN0
cnVjdHVyZSBAaW5mb19wcm90ZWN0IHdoaWNoCisrICogd2lsbCBiZSBhZGRlZCBpbiBwcm90ZWN0
aW9uIG1ldGFkYXRhIG9mIHRoZSBHc3RidWZmZXIuCisrICogVGhlIHN1YnNhbXBsZXMgZm9ybWF0
IGZvbGxvd3MgdGhlIHNhbWUgcHNzaCBib3ggZm9ybWF0IGluIENvbW1vbiBFbmNyeXB0aW9uIHNw
ZWM6CisrICogc3Vic2FtcGxlIG51bWJlciArIGNsZWFyIHN1YnNhbXBsZSBzaXplICgxNmJpdCBi
aWdlbmRpYW4pIHwgZW5jcnlwdGVkIHN1YnNhbXBsZSBzaXplICgzMmJpdCBiaWdlbmRpYW4pIHwg
Li4uCisrICogQGVuY3J5cHRlZCBpcyBhbiBvdXRwdXQgYXJndW1lbnQ6IFRSVUUgaWYgdGhlIGN1
cnJlbnQgQmxvY2svU2ltcGxlQmxvY2sgaXMgZW5jcnlwdGVkIGVsc2UgRkFMU0UKKysgKi8KKytn
Ym9vbGVhbgorK2dzdF9tYXRyb3NrYV9wYXJzZV9wcm90ZWN0aW9uX21ldGEgKGdwb2ludGVyICog
ZGF0YV9vdXQsIGdzaXplICogc2l6ZV9vdXQsCisrICAgIEdzdFN0cnVjdHVyZSAqIGluZm9fcHJv
dGVjdCwgZ2Jvb2xlYW4gKiBlbmNyeXB0ZWQpCisreworKyAgZ3VpbnQ4ICpkYXRhOworKyAgR3N0
QnVmZmVyICpidWZfaXY7CisrICBndWludDggKmRhdGFfaXY7CisrICBndWludDggKnN1YnNhbXBs
ZXM7CisrICBndWludDggc2lnbmFsX2J5dGU7CisrICBnaW50IGk7CisrICBHc3RCeXRlUmVhZGVy
IHJlYWRlcjsKKysKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChkYXRhX291dCAhPSBOVUxMICYm
ICpkYXRhX291dCAhPSBOVUxMLCBGQUxTRSk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoc2l6
ZV9vdXQgIT0gTlVMTCwgRkFMU0UpOworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGluZm9fcHJv
dGVjdCAhPSBOVUxMLCBGQUxTRSk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoZW5jcnlwdGVk
ICE9IE5VTEwsIEZBTFNFKTsKKysKKysgICplbmNyeXB0ZWQgPSBGQUxTRTsKKysgIGRhdGEgPSAq
ZGF0YV9vdXQ7CisrICBnc3RfYnl0ZV9yZWFkZXJfaW5pdCAoJnJlYWRlciwgZGF0YSwgKnNpemVf
b3V0KTsKKysKKysgIC8qIFdlYk0gc3BlYzoKKysgICAqIDQuNyBTaWduYWwgQnl0ZSBGb3JtYXQK
KysgICAqICAwIDEgMiAzIDQgNSA2IDcKKysgICAqICstKy0rLSstKy0rLSstKy0rCisrICAgKiB8
WHwgICBSU1YgICB8UHxFfAorKyAgICogKy0rLSstKy0rLSstKy0rLSsKKysgICAqCisrICAgKiBF
eHRlbnNpb24gYml0IChYKQorKyAgICogSWYgc2V0LCBhbm90aGVyIHNpZ25hbCBieXRlIHdpbGwg
Zm9sbG93IHRoaXMgYnl0ZS4gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHBhbnNpb24gKGN1cnJlbnRs
eSBNVVNUIGJlIHNldCB0byAwKS4KKysgICAqIFJTViBiaXRzIChSU1YpCisrICAgKiBCaXRzIHJl
c2VydmVkIGZvciBmdXR1cmUgdXNlLiBNVVNUIGJlIHNldCB0byAwIGFuZCBNVVNUIGJlIGlnbm9y
ZWQuCisrICAgKiBFbmNyeXB0ZWQgYml0IChFKQorKyAgICogSWYgc2V0LCB0aGUgQmxvY2sgTVVT
VCBjb250YWluIGFuIElWIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGFuIGVuY3J5cHRlZCBmcmFt
ZS4gSWYgbm90IHNldCwgdGhlIEJsb2NrIE1VU1QgTk9UIGluY2x1ZGUgYW4gSVYgYW5kIHRoZSBm
cmFtZSBNVVNUIGJlIHVuZW5jcnlwdGVkLiBUaGUgdW5lbmNyeXB0ZWQgZnJhbWUgTVVTVCBpbW1l
ZGlhdGVseSBmb2xsb3cgdGhlIFNpZ25hbCBCeXRlLgorKyAgICogUGFydGl0aW9uZWQgYml0IChQ
KQorKyAgICogVXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBzYW1wbGUgaGFzIHN1YnNhbXBsZSBw
YXJ0aXRpb25zLiBJZiBzZXQsIHRoZSBJViB3aWxsIGJlIGZvbGxvd2VkIGJ5IGEgbnVtX3BhcnRp
dGlvbnMgYnl0ZSwgYW5kIG51bV9wYXJ0aXRpb25zICogMzItYml0IHBhcnRpdGlvbiBvZmZzZXRz
LiBUaGlzIGJpdCBjYW4gb25seSBiZSBzZXQgaWYgdGhlIEUgYml0IGlzIGFsc28gc2V0LgorKyAg
ICovCisrICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDggKCZyZWFkZXIsICZzaWduYWxf
Ynl0ZSkpIHsKKysgICAgR1NUX0VSUk9SICgiRXJyb3IgcmVhZGluZyB0aGUgc2lnbmFsIGJ5dGUi
KTsKKysgICAgcmV0dXJuIEZBTFNFOworKyAgfQorKworKyAgLyogVW5lbmNyeXB0ZWQgYnVmZmVy
ICovCisrICBpZiAoIShzaWduYWxfYnl0ZSAmIEdTVF9NQVRST1NLQV9CTE9DS19FTkNSWVBURUQp
KSB7CisrICAgIHJldHVybiBUUlVFOworKyAgfQorKworKyAgLyogRW5jcnlwdGVkIGJ1ZmZlciAq
LworKyAgKmVuY3J5cHRlZCA9IFRSVUU7CisrICAvKiBDcmVhdGUgSVYgYnVmZmVyICovCisrICBp
ZiAoIWdzdF9ieXRlX3JlYWRlcl9kdXBfZGF0YSAoJnJlYWRlciwgc2l6ZW9mIChndWludDY0KSwg
JmRhdGFfaXYpKSB7CisrICAgIEdTVF9FUlJPUiAoIkVycm9yIHJlYWRpbmcgdGhlIElWIGRhdGEi
KTsKKysgICAgcmV0dXJuIEZBTFNFOworKyAgfQorKyAgYnVmX2l2ID0gZ3N0X2J1ZmZlcl9uZXdf
d3JhcHBlZCAoKGdwb2ludGVyKSBkYXRhX2l2LCBzaXplb2YgKGd1aW50NjQpKTsKKysgIGdzdF9z
dHJ1Y3R1cmVfc2V0IChpbmZvX3Byb3RlY3QsICJpdiIsIEdTVF9UWVBFX0JVRkZFUiwgYnVmX2l2
LCBOVUxMKTsKKysgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zl9pdik7CisrCisrICAvKiBQYXJ0aXRp
b25lZCBpbiBzdWJzYW1wbGUgKi8KKysgIGlmIChzaWduYWxfYnl0ZSAmIEdTVF9NQVRST1NLQV9C
TE9DS19QQVJUSVRJT05FRCkgeworKyAgICBndWludCBuYl9zdWJzYW1wbGU7CisrICAgIGd1aW50
MzIgb2Zmc2V0ID0gMDsKKysgICAgZ3VpbnQzMiBvZmZzZXRfcHJldjsKKysgICAgZ3VpbnQzMiBl
bmNyeXB0ZWRfYnl0ZXMgPSAwOworKyAgICBndWludDE2IGNsZWFyX2J5dGVzID0gMDsKKysgICAg
R3N0QnVmZmVyICpidWZfc3ViX3NhbXBsZTsKKysgICAgZ3VpbnQ4IG5iX3BhcnQ7CisrICAgIEdz
dEJ5dGVXcml0ZXIgd3JpdGVyOworKworKyAgICAvKiBSZWFkIHRoZSBudW1iZXIgb2YgcGFydGl0
aW9ucyAoMSBieXRlKSAqLworKyAgICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDggKCZy
ZWFkZXIsICZuYl9wYXJ0KSkgeworKyAgICAgIEdTVF9FUlJPUiAoIkVycm9yIHJlYWRpbmcgdGhl
IHBhcnRpdGlvbiBudW1iZXIiKTsKKysgICAgICByZXR1cm4gRkFMU0U7CisrICAgIH0KKysKKysg
ICAgaWYgKG5iX3BhcnQgPT0gMCkgeworKyAgICAgIEdTVF9FUlJPUiAoIlBhcnRpdGlvbmVkLCBi
dXQgdGhlIHN1YnNhbXBsZSBudW1iZXIgZXF1YWwgdG8gemVybyIpOworKyAgICAgIHJldHVybiBG
QUxTRTsKKysgICAgfQorKworKyAgICBuYl9zdWJzYW1wbGUgPSAobmJfcGFydCArIDIpID4+IDE7
CisrCisrICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChpbmZvX3Byb3RlY3QsICJzdWJzYW1wbGVfY291
bnQiLCBHX1RZUEVfVUlOVCwKKysgICAgICAgIG5iX3N1YnNhbXBsZSwgTlVMTCk7CisrCisrICAg
IC8qIFdlYk0gU3BlYzoKKysgICAgICoKKysgICAgICogNC42IFN1YnNhbXBsZSBFbmNyeXB0ZWQg
QmxvY2sgRm9ybWF0CisrICAgICAqCisrICAgICAqIFRoZSBTdWJzYW1wbGUgRW5jcnlwdGVkIEJs
b2NrIGZvcm1hdCBleHRlbmRzIHRoZSBGdWxsLXNhbXBsZSBmb3JtYXQgYnkgc2V0dGluZyBhICJw
YXJ0aXRpb25lZCIgKFApIGJpdCBpbiB0aGUgU2lnbmFsIEJ5dGUuCisrICAgICAqIElmIHRoaXMg
Yml0IGlzIHNldCwgdGhlIEVuY3J5cHRlZEJsb2NrIGhlYWRlciBzaGFsbCBpbmNsdWRlIGFuCisr
ICAgICAqIDgtYml0IGludGVnZXIgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mIHNhbXBsZSBwYXJ0
aXRpb25zIChkaXZpZGVycyBiZXR3ZWVuIGNsZWFyL2VuY3J5cHRlZCBzZWN0aW9ucyksCisrICAg
ICAqIGFuZCBhIHNlcmllcyBvZiAzMi1iaXQgaW50ZWdlcnMgaW4gYmlnLWVuZGlhbiBlbmNvZGlu
ZyBpbmRpY2F0aW5nIHRoZSBieXRlIG9mZnNldHMgb2Ygc3VjaCBwYXJ0aXRpb25zLgorKyAgICAg
KgorKyAgICAgKiAgMCAgICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgIDIgICAg
ICAgICAgICAgICAgICAgMworKyAgICAgKiAgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEgMiAzIDQg
NSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxCisrICAgICAqICstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisrICAg
ICAqIHwgIFNpZ25hbCBCeXRlICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8CisrICAgICAqICstKy0rLSstKy0rLSstKy0rICAgICAgICAgICAgIElWICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqIHwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrICAgICAq
IHwgICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rCisrICAgICAqIHwgICAgICAgICAgICAgICB8IG51bV9wYXJ0aXRpb24gfCAgICAg
UGFydGl0aW9uIDAgb2Zmc2V0IC0+ICAgICB8CisrICAgICAqIHwtKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy18CisrICAgICAqIHwg
ICAgIC0+IFBhcnRpdGlvbiAwIG9mZnNldCAgICAgfCAgICAgICAgICAgICAgLi4uICAgICAgICAg
ICAgICB8CisrICAgICAqIHwtKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy18CisrICAgICAqIHwgICAgICAgICAgICAgLi4uICAgICAg
ICAgICAgICAgfCAgICAgUGFydGl0aW9uIG4tMSBvZmZzZXQgLT4gICB8CisrICAgICAqIHwtKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky18CisrICAgICAqIHwgICAgIC0+IFBhcnRpdGlvbiBuLTEgb2Zmc2V0ICAgfCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqICstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqIHwgICAgICAg
ICAgICAgICAgICAgIENsZWFyL2VuY3J5cHRlZCBzYW1wbGUgZGF0YSAgICAgICAgICAgICAgICB8
CisrICAgICAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8CisrICAgICAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqICstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisr
ICAgICAqCisrICAgICAqIDQuNi4xIFNBTVBMRSBQQVJUSVRJT05TCisrICAgICAqCisrICAgICAq
IFRoZSBzYW1wbGVzIHNoYWxsIGJlIHBhcnRpdGlvbmVkIGludG8gYWx0ZXJuYXRpbmcgY2xlYXIg
YW5kIGVuY3J5cHRlZCBzZWN0aW9ucywKKysgICAgICogYWx3YXlzIHN0YXJ0aW5nIHdpdGggYSBj
bGVhciBzZWN0aW9uLgorKyAgICAgKiBHZW5lcmFsbHkgZm9yIG4gY2xlYXIvZW5jcnlwdGVkIHNl
Y3Rpb25zIHRoZXJlIHNoYWxsIGJlIG4tMSBwYXJ0aXRpb24gb2Zmc2V0cy4KKysgICAgICogSG93
ZXZlciwgaWYgaXQgaXMgcmVxdWlyZWQgdGhhdCB0aGUgZmlyc3Qgc2VjdGlvbiBiZSBlbmNyeXB0
ZWQsIHRoZW4gdGhlIGZpcnN0IHBhcnRpdGlvbiBzaGFsbCBiZSBhdCBieXRlIG9mZnNldCAwCisr
ICAgICAqIChpbmRpY2F0aW5nIGEgemVyby1zaXplIGNsZWFyIHNlY3Rpb24pLCBhbmQgdGhlcmUg
c2hhbGwgYmUgbiBwYXJ0aXRpb24gb2Zmc2V0cy4KKysgICAgICogUGxlYXNlIHJlZmVyIHRvIHRo
ZSAiU2FtcGxlIEVuY3J5cHRpb24iIGRlc2NyaXB0aW9uIG9mIHRoZSAiQ29tbW9uIEVuY3J5cHRp
b24iCisrICAgICAqIHNlY3Rpb24gb2YgdGhlIFZQIENvZGVjIElTTyBNZWRpYSBGaWxlIEZvcm1h
dCBCaW5kaW5nIFNwZWNpZmljYXRpb24gZm9yIG1vcmUKKysgICAgICogZGV0YWlsIG9uIGhvdyBz
dWJzYW1wbGUgZW5jcnlwdGlvbiBpcyBpbXBsZW1lbnRlZC4KKysgICAgICovCisrICAgIHN1YnNh
bXBsZXMgPQorKyAgICAgICAgZ19tYWxsb2MgKG5iX3N1YnNhbXBsZSAqIChzaXplb2YgKGd1aW50
MTYpICsgc2l6ZW9mIChndWludDMyKSkpOworKworKyAgICBnc3RfYnl0ZV93cml0ZXJfaW5pdF93
aXRoX2RhdGEgKCZ3cml0ZXIsIHN1YnNhbXBsZXMsCisrICAgICAgICBuYl9zdWJzYW1wbGUgKiAo
c2l6ZW9mIChndWludDE2KSArIHNpemVvZiAoZ3VpbnQzMikpLCBGQUxTRSk7CisrCisrICAgIGZv
ciAoaSA9IDA7IGkgPD0gbmJfcGFydDsgaSsrKSB7CisrICAgICAgb2Zmc2V0X3ByZXYgPSBvZmZz
ZXQ7CisrICAgICAgaWYgKGkgPT0gbmJfcGFydCkgeworKyAgICAgICAgb2Zmc2V0ID0gZ3N0X2J5
dGVfcmVhZGVyX2dldF9yZW1haW5pbmcgKCZyZWFkZXIpOworKyAgICAgIH0gZWxzZSB7CisrICAg
ICAgICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDMyX2JlICgmcmVhZGVyLCAmb2Zmc2V0
KSkgeworKyAgICAgICAgICBHU1RfRVJST1IgKCJFcnJvciByZWFkaW5nIHRoZSBwYXJ0aXRpb24g
b2Zmc2V0Iik7CisrICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7CisrICAgICAgICB9CisrICAg
ICAgfQorKworKyAgICAgIGlmIChvZmZzZXQgPCBvZmZzZXRfcHJldikgeworKyAgICAgICAgR1NU
X0VSUk9SICgiUGFydGl0aW9uIG9mZnNldHMgc2hvdWxkIG5vdCBkZWNyZWFzZSIpOworKyAgICAg
ICAgZ290byByZWxlYXNlX2VycjsKKysgICAgICB9CisrCisrICAgICAgaWYgKGkgJSAyID09IDAp
IHsKKysgICAgICAgIGlmICgob2Zmc2V0IC0gb2Zmc2V0X3ByZXYpICYgMHhGRkZGMDAwMCkgewor
KyAgICAgICAgICBHU1RfRVJST1IKKysgICAgICAgICAgICAgICgiVGhlIENsZWFyIFBhcnRpdGlv
biBleGNlZWQgNjRLQiBpbiBlbmNyeXB0ZWQgc3Vic2FtcGxlIGZvcm1hdCIpOworKyAgICAgICAg
ICBnb3RvIHJlbGVhc2VfZXJyOworKyAgICAgICAgfQorKyAgICAgICAgLyogV2Ugc2V0IHRoZSBD
bGVhciBwYXJ0aXRpb24gc2l6ZSBpbiAxNiBiaXRzLCBpbiBvcmRlciB0bworKyAgICAgICAgICog
Zm9sbG93IHRoZSBzYW1lIGZvcm1hdCBvZiB0aGUgYm94IFBTU0ggaW4gQ0VOQyBzcGVjICovCisr
ICAgICAgICBjbGVhcl9ieXRlcyA9IG9mZnNldCAtIG9mZnNldF9wcmV2OworKyAgICAgICAgaWYg
KGkgPT0gbmJfcGFydCkKKysgICAgICAgICAgZW5jcnlwdGVkX2J5dGVzID0gMDsKKysgICAgICB9
IGVsc2UgeworKyAgICAgICAgZW5jcnlwdGVkX2J5dGVzID0gb2Zmc2V0IC0gb2Zmc2V0X3ByZXY7
CisrICAgICAgfQorKworKyAgICAgIGlmICgoaSAlIDIgPT0gMSkgfHwgKGkgPT0gbmJfcGFydCkp
IHsKKysgICAgICAgIGlmIChjbGVhcl9ieXRlcyA9PSAwICYmIGVuY3J5cHRlZF9ieXRlcyA9PSAw
KSB7CisrICAgICAgICAgIEdTVF9FUlJPUiAoIkZvdW5kIDIgcGFydGl0aW9ucyB3aXRoIHRoZSBz
YW1lIG9mZnNldHMuIik7CisrICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7CisrICAgICAgICB9
CisrICAgICAgICBpZiAoIWdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2JlICgmd3JpdGVyLCBj
bGVhcl9ieXRlcykpIHsKKysgICAgICAgICAgR1NUX0VSUk9SICgiRXJyb3Igd3JpdGluZyB0aGUg
bnVtYmVyIG9mIGNsZWFyIGJ5dGVzIik7CisrICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7Cisr
ICAgICAgICB9CisrICAgICAgICBpZiAoIWdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2JlICgm
d3JpdGVyLCBlbmNyeXB0ZWRfYnl0ZXMpKSB7CisrICAgICAgICAgIEdTVF9FUlJPUiAoIkVycm9y
IHdyaXRpbmcgdGhlIG51bWJlciBvZiBlbmNyeXB0ZWQgYnl0ZXMiKTsKKysgICAgICAgICAgZ290
byByZWxlYXNlX2VycjsKKysgICAgICAgIH0KKysgICAgICB9CisrICAgIH0KKysKKysgICAgYnVm
X3N1Yl9zYW1wbGUgPQorKyAgICAgICAgZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoc3Vic2FtcGxl
cywKKysgICAgICAgIG5iX3N1YnNhbXBsZSAqIChzaXplb2YgKGd1aW50MTYpICsgc2l6ZW9mIChn
dWludDMyKSkpOworKyAgICBnc3Rfc3RydWN0dXJlX3NldCAoaW5mb19wcm90ZWN0LCAic3Vic2Ft
cGxlcyIsIEdTVF9UWVBFX0JVRkZFUiwKKysgICAgICAgIGJ1Zl9zdWJfc2FtcGxlLCBOVUxMKTsK
KysgICAgZ3N0X2J1ZmZlcl91bnJlZiAoYnVmX3N1Yl9zYW1wbGUpOworKyAgfSBlbHNlIHsKKysg
ICAgZ3N0X3N0cnVjdHVyZV9zZXQgKGluZm9fcHJvdGVjdCwgInN1YnNhbXBsZV9jb3VudCIsIEdf
VFlQRV9VSU5ULCAwLCBOVUxMKTsKKysgIH0KKysKKysgIGdzdF9ieXRlX3JlYWRlcl9nZXRfZGF0
YSAoJnJlYWRlciwgMCwgKGNvbnN0IGd1aW50OCAqKikgZGF0YV9vdXQpOworKyAgKnNpemVfb3V0
ID0gZ3N0X2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmcgKCZyZWFkZXIpOworKyAgcmV0dXJuIFRS
VUU7CisrCisrcmVsZWFzZV9lcnI6CisrICBnX2ZyZWUgKHN1YnNhbXBsZXMpOworKyAgcmV0dXJu
IEZBTFNFOworK30KKysKKyBzdGF0aWMgZ2ludAorIGdzdF9tYXRyb3NrYV9pbmRleF9jb21wYXJl
IChHc3RNYXRyb3NrYUluZGV4ICogaTEsIEdzdE1hdHJvc2thSW5kZXggKiBpMikKKyB7CitAQCAt
Mjc0NCw5ICsyOTUwLDExIEBAIGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1vbl9yZWFkX3RyYWNrX2Vu
Y29kaW5nIChHc3RNYXRyb3NrYVJlYWRDb21tb24gKiBjb21tb24sCisgICAgICAgICAgICAgICBH
X0dVSU5UNjRfRk9STUFULCBudW0pOworICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsK
KyAgICAgICAgICAgYnJlYWs7CistICAgICAgICB9IGVsc2UgaWYgKG51bSAhPSAwKSB7CisrICAg
ICAgICB9CisrCisrICAgICAgICBpZiAoKCFjb21tb24tPmlzX3dlYm0pICYmIChudW0gPT0gR1NU
X01BVFJPU0tBX0VOQ09ESU5HX0VOQ1JZUFRJT04pKSB7CisgICAgICAgICAgIEdTVF9FUlJPUl9P
QkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKy0gICAgICAgICAgICAgICJFbmNyeXB0ZWQgdHJhY2tz
IGFyZSBub3Qgc3VwcG9ydGVkIHlldCIpOworKyAgICAgICAgICAgICAgIkVuY3J5cHRlZCB0cmFj
a3MgYXJlIHN1cHBvcnRlZCBvbmx5IGluIFdlYk0iKTsKKyAgICAgICAgICAgcmV0ID0gR1NUX0ZM
T1dfRVJST1I7CisgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorQEAgLTI4MTIsMTIgKzMw
MjAsMTMyIEBAIGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1vbl9yZWFkX3RyYWNrX2VuY29kaW5nIChH
c3RNYXRyb3NrYVJlYWRDb21tb24gKiBjb21tb24sCisgICAgICAgICBicmVhazsKKyAgICAgICB9
CisgCistICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfQ09OVEVOVEVOQ1JZUFRJT046CistICAg
ICAgICBHU1RfRVJST1JfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsCistICAgICAgICAgICAgIkVu
Y3J5cHRlZCB0cmFja3Mgbm90IHlldCBzdXBwb3J0ZWQiKTsKKy0gICAgICAgIGdzdF9lYm1sX3Jl
YWRfc2tpcCAoZWJtbCk7CistICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKysgICAgICBj
YXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5URU5DUllQVElPTjp7CisrCisrICAgICAgICBERUJV
R19FTEVNRU5UX1NUQVJUIChjb21tb24sIGVibWwsICJDb250ZW50RW5jcnlwdGlvbiIpOworKwor
KyAgICAgICAgaWYgKGVuYy50eXBlICE9IEdTVF9NQVRST1NLQV9FTkNPRElOR19FTkNSWVBUSU9O
KSB7CisrICAgICAgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAorKyAg
ICAgICAgICAgICAgIlVuZXhwZWN0ZWQgdG8gaGF2ZSBDb250ZW50IEVuY3J5cHRpb24gYmVjYXVz
ZSBpdCBpc24ndCBlbmNyeXB0aW9uIHR5cGUiKTsKKysgICAgICAgICAgcmV0ID0gR1NUX0ZMT1df
RVJST1I7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKworKyAgICAgICAgaWYgKChy
ZXQgPSBnc3RfZWJtbF9yZWFkX21hc3RlciAoZWJtbCwgJmlkKSkgIT0gR1NUX0ZMT1dfT0spCisr
ICAgICAgICAgIGJyZWFrOworKworKyAgICAgICAgd2hpbGUgKHJldCA9PSBHU1RfRkxPV19PSyAm
JgorKyAgICAgICAgICAgIGdzdF9lYm1sX3JlYWRfaGFzX3JlbWFpbmluZyAoZWJtbCwgMSwgVFJV
RSkpIHsKKysgICAgICAgICAgaWYgKChyZXQgPSBnc3RfZWJtbF9wZWVrX2lkIChlYm1sLCAmaWQp
KSAhPSBHU1RfRkxPV19PSykKKysgICAgICAgICAgICBicmVhazsKKysKKysgICAgICAgICAgc3dp
dGNoIChpZCkgeworKyAgICAgICAgICAgIGNhc2UgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRFTkNB
TEdPOnsKKysgICAgICAgICAgICAgIGd1aW50NjQgbnVtOworKworKyAgICAgICAgICAgICAgaWYg
KChyZXQgPSBnc3RfZWJtbF9yZWFkX3VpbnQgKGVibWwsICZpZCwgJm51bSkpICE9IEdTVF9GTE9X
X09LKSB7CisrICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgfQorKworKyAg
ICAgICAgICAgICAgaWYgKG51bSA+IEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09S
SVRITV9BRVMpIHsKKysgICAgICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVCAoY29tbW9uLT5z
aW5rcGFkLCAiSW52YWxpZCBDb250ZW50RW5jQWxnbyAlIgorKyAgICAgICAgICAgICAgICAgICAg
R19HVUlOVDY0X0ZPUk1BVCwgbnVtKTsKKysgICAgICAgICAgICAgICAgcmV0ID0gR1NUX0ZMT1df
RVJST1I7CisrICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgfQorKyAgICAg
ICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAorKyAgICAgICAgICAg
ICAgICAgICJDb250ZW50RW5jQWxnbzogJSIgR19HVUlOVDY0X0ZPUk1BVCwgbnVtKTsKKysgICAg
ICAgICAgICAgIGVuYy5lbmNfYWxnbyA9IG51bTsKKysKKysgICAgICAgICAgICAgIGJyZWFrOwor
KyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5U
RU5DQUVTU0VUVElOR1M6eworKworKyAgICAgICAgICAgICAgREVCVUdfRUxFTUVOVF9TVEFSVCAo
Y29tbW9uLCBlYm1sLCAiQ29udGVudEVuY0FFU1NldHRpbmdzIik7CisrCisrICAgICAgICAgICAg
ICBpZiAoKHJldCA9IGdzdF9lYm1sX3JlYWRfbWFzdGVyIChlYm1sLCAmaWQpKSAhPSBHU1RfRkxP
V19PSykKKysgICAgICAgICAgICAgICAgYnJlYWs7CisrCisrICAgICAgICAgICAgICB3aGlsZSAo
cmV0ID09IEdTVF9GTE9XX09LICYmCisrICAgICAgICAgICAgICAgICAgZ3N0X2VibWxfcmVhZF9o
YXNfcmVtYWluaW5nIChlYm1sLCAxLCBUUlVFKSkgeworKyAgICAgICAgICAgICAgICBpZiAoKHJl
dCA9IGdzdF9lYm1sX3BlZWtfaWQgKGVibWwsICZpZCkpICE9IEdTVF9GTE9XX09LKQorKyAgICAg
ICAgICAgICAgICAgIGJyZWFrOworKworKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGlkKSB7Cisr
ICAgICAgICAgICAgICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfQUVTU0VUVElOR1NDSVBIRVJN
T0RFOnsKKysgICAgICAgICAgICAgICAgICAgIGd1aW50NjQgbnVtOworKworKyAgICAgICAgICAg
ICAgICAgICAgaWYgKChyZXQgPQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc3RfZWJt
bF9yZWFkX3VpbnQgKGVibWwsICZpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZudW0pKSAhPSBHU1RfRkxPV19PSykgeworKyAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KysgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIGlmIChudW0gPiAz
KSB7CisrICAgICAgICAgICAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1QgKGNvbW1vbi0+c2lu
a3BhZCwgIkludmFsaWQgQ2lwaGVyIE1vZGUgJSIKKysgICAgICAgICAgICAgICAgICAgICAgICAg
IEdfR1VJTlQ2NF9GT1JNQVQsIG51bSk7CisrICAgICAgICAgICAgICAgICAgICAgIHJldCA9IEdT
VF9GTE9XX0VSUk9SOworKyAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAg
ICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGNvbW1v
bi0+c2lua3BhZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAiQ29udGVudEVuY0FFU1NldHRp
bmdzOiAlIiBHX0dVSU5UNjRfRk9STUFULCBudW0pOworKyAgICAgICAgICAgICAgICAgICAgZW5j
LmVuY19jaXBoZXJfbW9kZSA9IG51bTsKKysgICAgICAgICAgICAgICAgICAgIGJyZWFrOworKyAg
ICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorKyAgICAgICAg
ICAgICAgICAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsCisrICAgICAg
ICAgICAgICAgICAgICAgICAgIlVua25vd24gQ29udGVudEVuY0FFU1NldHRpbmdzIHN1YmVsZW1l
bnQgMHgleCAtIGlnbm9yaW5nIiwKKysgICAgICAgICAgICAgICAgICAgICAgICBpZCk7CisrICAg
ICAgICAgICAgICAgICAgICByZXQgPSBnc3RfZWJtbF9yZWFkX3NraXAgKGVibWwpOworKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAg
IH0KKysgICAgICAgICAgICAgIERFQlVHX0VMRU1FTlRfU1RPUCAoY29tbW9uLCBlYm1sLCAiQ29u
dGVudEVuY0FFU1NldHRpbmdzIiwgcmV0KTsKKysgICAgICAgICAgICAgIGJyZWFrOworKyAgICAg
ICAgICAgIH0KKysKKysgICAgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5URU5D
S0VZSUQ6eworKyAgICAgICAgICAgICAgZ3VpbnQ4ICpkYXRhOworKyAgICAgICAgICAgICAgZ3Vp
bnQ2NCBzaXplOworKyAgICAgICAgICAgICAgR3N0QnVmZmVyICprZXlJZF9idWY7CisrICAgICAg
ICAgICAgICBHc3RFdmVudCAqZXZlbnQ7CisrCisrICAgICAgICAgICAgICBpZiAoKHJldCA9Cisr
ICAgICAgICAgICAgICAgICAgICAgIGdzdF9lYm1sX3JlYWRfYmluYXJ5IChlYm1sLCAmaWQsICZk
YXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnNpemUpKSAhPSBHU1RfRkxPV19PSykg
eworKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICAgIH0KKysgICAgICAgICAg
ICAgIEdTVF9ERUJVR19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKysgICAgICAgICAgICAgICAg
ICAiQ29udGVudEVuY3J5cHQgS2V5SUQgbGVuZ3RoIDogJSIgR19HVUlOVDY0X0ZPUk1BVCwgc2l6
ZSk7CisrICAgICAgICAgICAgICBrZXlJZF9idWYgPSBnc3RfYnVmZmVyX25ld193cmFwcGVkIChk
YXRhLCBzaXplKTsKKysKKysgICAgICAgICAgICAgIC8qIFB1c2ggYW4gZXZlbnQgY29udGFpbmlu
ZyB0aGUgS2V5IElEIGludG8gdGhlIHF1ZXVlcyBvZiBhbGwgc3RyZWFtcy4gKi8KKysgICAgICAg
ICAgICAgIC8qIHN5c3RlbV9pZCBmaWVsZCBpcyBzZXQgdG8gR1NUX1BST1RFQ1RJT05fVU5TUEVD
SUZJRURfU1lTVEVNX0lEIGJlY2F1c2UgaXQgaXNuJ3Qgc3BlY2lmaWVkIG5laXRoZXIgaW4gV2Vi
TSBub3IgaW4gTWF0cm9za2Egc3BlYy4gKi8KKysgICAgICAgICAgICAgIGV2ZW50ID0KKysgICAg
ICAgICAgICAgICAgICBnc3RfZXZlbnRfbmV3X3Byb3RlY3Rpb24KKysgICAgICAgICAgICAgICAg
ICAoR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVNX0lELCBrZXlJZF9idWYsCisrICAg
ICAgICAgICAgICAgICAgIm1hdHJvc2thZGVtdXgiKTsKKysgICAgICAgICAgICAgIEdTVF9UUkFD
RV9PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKysgICAgICAgICAgICAgICAgICAiYWRkaW5nIHBy
b3RlY3Rpb24gZXZlbnQgZm9yIHN0cmVhbSAlZCIsIGNvbnRleHQtPmluZGV4KTsKKysgICAgICAg
ICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmY29udGV4dC0+cHJvdGVjdGlvbl9ldmVudF9xdWV1
ZSwgZXZlbnQpOworKworKyAgICAgICAgICAgICAgY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvID0K
KysgICAgICAgICAgICAgICAgICBnc3Rfc3RydWN0dXJlX25ldyAoImFwcGxpY2F0aW9uL3gtY2Vu
YyIsICJpdl9zaXplIiwKKysgICAgICAgICAgICAgICAgICBHX1RZUEVfVUlOVCwgOCwgImVuY3J5
cHRlZCIsIEdfVFlQRV9CT09MRUFOLCBUUlVFLCAia2lkIiwKKysgICAgICAgICAgICAgICAgICBH
U1RfVFlQRV9CVUZGRVIsIGtleUlkX2J1ZiwgTlVMTCk7CisrCisrICAgICAgICAgICAgICBnc3Rf
YnVmZmVyX3VucmVmIChrZXlJZF9idWYpOworKyAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAg
ICAgICAgfQorKyAgICAgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAgICAgICBHU1RfV0FSTklO
R19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKysgICAgICAgICAgICAgICAgICAiVW5rbm93biBD
b250ZW50RW5jcnlwdGlvbiBzdWJlbGVtZW50IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKKysgICAg
ICAgICAgICAgIHJldCA9IGdzdF9lYm1sX3JlYWRfc2tpcCAoZWJtbCk7CisrICAgICAgICAgICAg
ICBicmVhazsKKysgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAgREVCVUdfRUxFTUVO
VF9TVE9QIChjb21tb24sIGVibWwsICJDb250ZW50RW5jcnlwdGlvbiIsIHJldCk7CisgICAgICAg
ICBicmVhazsKKysgICAgICB9CisgICAgICAgZGVmYXVsdDoKKyAgICAgICAgIEdTVF9XQVJOSU5H
X09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAorICAgICAgICAgICAgICJVbmtub3duIENvbnRlbnRF
bmNvZGluZyBzdWJlbGVtZW50IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKK2RpZmYgLS1naXQgYS9n
c3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaCBiL2dzdC9tYXRyb3NrYS9tYXRyb3Nr
YS1yZWFkLWNvbW1vbi5oCitpbmRleCBhNjI4MmQ2OTguLmUzM2VmOGVmNCAxMDA2NDQKKy0tLSBh
L2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oCisrKysgYi9nc3QvbWF0cm9za2Ev
bWF0cm9za2EtcmVhZC1jb21tb24uaAorQEAgLTEyMCw2ICsxMjAsOSBAQCB0eXBlZGVmIHN0cnVj
dCBfR3N0TWF0cm9za2FSZWFkQ29tbW9uIHsKKyBHc3RGbG93UmV0dXJuIGdzdF9tYXRyb3NrYV9k
ZWNvZGVfY29udGVudF9lbmNvZGluZ3MgKEdBcnJheSAqIGVuY29kaW5ncyk7CisgZ2Jvb2xlYW4g
Z3N0X21hdHJvc2thX2RlY29kZV9kYXRhIChHQXJyYXkgKiBlbmNvZGluZ3MsIGdwb2ludGVyICog
ZGF0YV9vdXQsCisgICAgIGdzaXplICogc2l6ZV9vdXQsIEdzdE1hdHJvc2thVHJhY2tFbmNvZGlu
Z1Njb3BlIHNjb3BlLCBnYm9vbGVhbiBmcmVlKTsKKytnYm9vbGVhbgorK2dzdF9tYXRyb3NrYV9w
YXJzZV9wcm90ZWN0aW9uX21ldGEgKGdwb2ludGVyICogZGF0YV9vdXQsIGdzaXplICogc2l6ZV9v
dXQsCisrICAgIEdzdFN0cnVjdHVyZSAqIGluZm9fcHJvdGVjdCwgZ2Jvb2xlYW4gKiBlbmNyeXB0
ZWQpOworIGdpbnQgZ3N0X21hdHJvc2thX2luZGV4X3NlZWtfZmluZCAoR3N0TWF0cm9za2FJbmRl
eCAqIGkxLCBHc3RDbG9ja1RpbWUgKiB0aW1lLAorICAgICBncG9pbnRlciB1c2VyX2RhdGEpOwor
IEdzdE1hdHJvc2thSW5kZXggKiBnc3RfbWF0cm9za2FfcmVhZF9jb21tb25fZG9faW5kZXhfc2Vl
ayAoCistLSAKKzIuMTUuMAorCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9n
c3QtcGx1Z2lucy1nb29kLTAwMTItbWF0cm9za2RlbXV4LWRvLW5vdC11c2UtTWFwSW5mby5kYXRh
LWFmdGVyLXVubWFwcGluZy5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1wbHVn
aW5zLWdvb2QtMDAxMi1tYXRyb3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0ZXIt
dW5tYXBwaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMGY0OGRjMDE5MDQ2ZmE5N2I1MWFlZmE1MmM2
ODQwNTgyYmRlNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hlcy9n
c3QtcGx1Z2lucy1nb29kLTAwMTItbWF0cm9za2RlbXV4LWRvLW5vdC11c2UtTWFwSW5mby5kYXRh
LWFmdGVyLXVubWFwcGluZy5wYXRjaApAQCAtMCwwICsxLDEwOCBAQAorRnJvbSBkZWZhZTM1MDM1
ODY2MGU1NTdjNzRlNDFhNGZlOGE4YmIzMjdlOWM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor
RnJvbTogVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KK0RhdGU6IFdlZCwg
MyBPY3QgMjAxOCAxNzozNDo0OSArMDIwMAorU3ViamVjdDogW1BBVENIXSBtYXRyb3NrZGVtdXg6
IGRvIG5vdCB1c2UgTWFwSW5mby5kYXRhIGFmdGVyIHVubWFwcGluZworCitBbmQgbWlub3IgZ3N0
LWluZGVudGluZworLS0tCisgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMgICAgICAgfCAy
MiArKysrKysrKysrKysrLS0tLS0tLS0tCisgZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29t
bW9uLmMgfCAgNiArKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDkg
ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXgu
YyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCitpbmRleCAxZWY3YjQyY2MuLmI2NzEx
MmNjNiAxMDA2NDQKKy0tLSBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCisrKysgYi9n
c3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYworQEAgLTM3NiwxMCArMzc2LDEyIEBAIGdzdF9t
YXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIGNvbnRleHQs
IEdzdEJ1ZmZlciAqIGJ1ZikKKyAKKyAgIGlmIChnc3RfbWF0cm9za2FfZGVjb2RlX2RhdGEgKGNv
bnRleHQtPmVuY29kaW5ncywgJmRhdGEsICZzaXplLAorICAgICAgICAgICBHU1RfTUFUUk9TS0Ff
VFJBQ0tfRU5DT0RJTkdfU0NPUEVfRlJBTUUsIEZBTFNFKSkgeworLSAgICBnc3RfYnVmZmVyX3Vu
bWFwIChvdXRfYnVmLCAmbWFwKTsKKyAgICAgaWYgKGRhdGEgIT0gbWFwLmRhdGEpIHsKKysgICAg
ICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKKyAgICAgICBnc3RfYnVmZmVyX3Vu
cmVmIChvdXRfYnVmKTsKKyAgICAgICBvdXRfYnVmID0gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAo
ZGF0YSwgc2l6ZSk7CisrICAgIH0gZWxzZSB7CisrICAgICAgZ3N0X2J1ZmZlcl91bm1hcCAob3V0
X2J1ZiwgJm1hcCk7CisgICAgIH0KKyAgIH0gZWxzZSB7CisgICAgIEdTVF9ERUJVRyAoImRlY29k
ZSBkYXRhIGZhaWxlZCIpOworQEAgLTM5OSwxMSArNDAxLDEyIEBAIGdzdF9tYXRyb3NrYV9kZWNv
ZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAq
IGJ1ZikKKyAKKyAgICAgaWYgKGdzdF9tYXRyb3NrYV9wYXJzZV9wcm90ZWN0aW9uX21ldGEgKCZk
YXRhLCAmc2l6ZSwgaW5mb19wcm90ZWN0LAorICAgICAgICAgICAgICZlbmNyeXB0ZWQpKSB7Cist
ICAgICAgZ3N0X2J1ZmZlcl91bm1hcCAob3V0X2J1ZiwgJm1hcCk7CisgICAgICAgaWYgKGRhdGEg
IT0gbWFwLmRhdGEpIHsKKy0gICAgICAgIEdzdEJ1ZmZlciAqdG1wX2J1ZiA9IG91dF9idWY7Cist
ICAgICAgICBvdXRfYnVmID0KKy0gICAgICAgICAgICBnc3RfYnVmZmVyX2NvcHlfcmVnaW9uICh0
bXBfYnVmLCBHU1RfQlVGRkVSX0NPUFlfQUxMLAorKyAgICAgICAgR3N0QnVmZmVyICp0bXBfYnVm
OworKworKyAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcCAob3V0X2J1ZiwgJm1hcCk7CisrICAgICAg
ICB0bXBfYnVmID0gb3V0X2J1ZjsKKysgICAgICAgIG91dF9idWYgPSBnc3RfYnVmZmVyX2NvcHlf
cmVnaW9uICh0bXBfYnVmLCBHU1RfQlVGRkVSX0NPUFlfQUxMLAorICAgICAgICAgICAgIGdzdF9i
dWZmZXJfZ2V0X3NpemUgKHRtcF9idWYpIC0gc2l6ZSwgc2l6ZSk7CisgICAgICAgICBnc3RfYnVm
ZmVyX3VucmVmICh0bXBfYnVmKTsKKyAgICAgICAgIGlmIChlbmNyeXB0ZWQpCitAQCAtNDExLDYg
KzQxNCw3IEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29u
dGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgZ3N0X3N0cnVjdHVyZV9mcmVlIChpbmZvX3Byb3RlY3QpOworICAgICAgIH0gZWxzZSB7Cisr
ICAgICAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKKyAgICAgICAgIGdzdF9z
dHJ1Y3R1cmVfZnJlZSAoaW5mb19wcm90ZWN0KTsKKyAgICAgICB9CisgICAgIH0gZWxzZSB7CitA
QCAtMjcwNSwxMCArMjcwOSwxMCBAQCBnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NlZWtfZXZl
bnQgKEdzdE1hdHJvc2thRGVtdXggKiBkZW11eCwKKyAgICAqIHdvdWxkIGJlIGRldGVybWluZWQg
YWdhaW4gd2hlbiBwYXJzaW5nLCBidXQgYW55d2F5IC4uLiAqLworICAgc2Vla3NlZ21lbnQuZHVy
YXRpb24gPSBkZW11eC0+Y29tbW9uLnNlZ21lbnQuZHVyYXRpb247CisgCistICBmbHVzaCA9ICEg
IShmbGFncyAmIEdTVF9TRUVLX0ZMQUdfRkxVU0gpOworLSAga2V5dW5pdCA9ICEgIShmbGFncyAm
IEdTVF9TRUVLX0ZMQUdfS0VZX1VOSVQpOworLSAgYWZ0ZXIgPSAhICEoZmxhZ3MgJiBHU1RfU0VF
S19GTEFHX1NOQVBfQUZURVIpOworLSAgYmVmb3JlID0gISAhKGZsYWdzICYgR1NUX1NFRUtfRkxB
R19TTkFQX0JFRk9SRSk7CisrICBmbHVzaCA9ICEhKGZsYWdzICYgR1NUX1NFRUtfRkxBR19GTFVT
SCk7CisrICBrZXl1bml0ID0gISEoZmxhZ3MgJiBHU1RfU0VFS19GTEFHX0tFWV9VTklUKTsKKysg
IGFmdGVyID0gISEoZmxhZ3MgJiBHU1RfU0VFS19GTEFHX1NOQVBfQUZURVIpOworKyAgYmVmb3Jl
ID0gISEoZmxhZ3MgJiBHU1RfU0VFS19GTEFHX1NOQVBfQkVGT1JFKTsKKyAKKyAgIC8qIGFsd2F5
cyBkbyBmdWxsIHVwZGF0ZSBpZiBmbHVzaGluZywKKyAgICAqIG90aGVyd2lzZSBwcm9ibGVtcyBt
aWdodCBhcmlzZSBkb3duc3RyZWFtIHdpdGggbWlzc2luZyBrZXlmcmFtZXMgZXRjICovCitkaWZm
IC0tZ2l0IGEvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMgYi9nc3QvbWF0cm9z
a2EvbWF0cm9za2EtcmVhZC1jb21tb24uYworaW5kZXggZmZiMzkzYmY5Li4xMjA4NTUwM2EgMTAw
NjQ0CistLS0gYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYworKysrIGIvZ3N0
L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMKK0BAIC0yMDQzLDYgKzIwNDMsOCBAQCBn
c3RfbWF0cm9za2FfcmVhZF9jb21tb25fcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyAoR3N0
TWF0cm9za2FSZWFkQ29tbW9uICoKKyAgICAgY29uc3QgZ2NoYXIgKm1hdHJvc2thX3RhZ25hbWU7
CisgICAgIGNvbnN0IGdjaGFyICpnc3RyZWFtZXJfdGFnbmFtZTsKKyAgIH0KKysKKysgIC8qICpJ
TkRFTlQtT0ZGKiAqLworICAgdGFnX2NvbnZbXSA9IHsKKyAgICAgeworICAgICAgIC8qIFRoZSBm
b2xsb3dpbmcgbGlzdCBoYXMgdGhlIF9zYW1lXyBvcmRlciBhcyB0aGUgb25lIGluIE1hdHJvc2th
IHNwZWMuIFBsZWFzZSwgZG9uJ3QgbWVzcyBpdCB1cC4gKi8KK0BAIC0yMTc3LDExICsyMTc5LDE0
IEBAIGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1vbl9wYXJzZV9tZXRhZGF0YV9pZF9zaW1wbGVfdGFn
IChHc3RNYXRyb3NrYVJlYWRDb21tb24gKgorICAgICBHU1RfTUFUUk9TS0FfVEFHX0lEX0xJQ0VO
U0UsIEdTVF9UQUdfTElDRU5TRX0sIHsgICAgLyogVGhlIGxpY2Vuc2UgYXBwbGllZCB0byB0aGUg
Y29udGVudCAobGlrZSBDcmVhdGl2ZSBDb21tb25zIHZhcmlhbnRzKS4gKi8KKyAgICAgR1NUX01B
VFJPU0tBX1RBR19JRF9URVJNU19PRl9VU0UsIEdTVF9UQUdfTElDRU5TRX0KKyAgIH07CisrICAv
KiAqSU5ERU5ULU9OKiAqLworICAgc3RhdGljIGNvbnN0IHN0cnVjdAorICAgeworICAgICBjb25z
dCBnY2hhciAqbWF0cm9za2FfdGFnbmFtZTsKKyAgICAgY29uc3QgZ2NoYXIgKmdzdHJlYW1lcl90
YWduYW1lOworICAgfQorKworKyAgLyogKklOREVOVC1PRkYqICovCisgICBjaGlsZF90YWdfY29u
dltdID0geworICAgICB7CisgICAgICJUSVRMRS9TT1JUX1dJVEg9IiwgR1NUX1RBR19USVRMRV9T
T1JUTkFNRX0sIHsKK0BAIC0yMTk4LDYgKzIyMDMsNyBAQCBnc3RfbWF0cm9za2FfcmVhZF9jb21t
b25fcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyAoR3N0TWF0cm9za2FSZWFkQ29tbW9uICoK
KyAgICAgIkxJQ0VOU0UvVVJMPSIsIEdTVF9UQUdfTElDRU5TRV9VUkl9LCB7CisgICAgICJMSUNF
TlNFL1VSTD0iLCBHU1RfVEFHX0xJQ0VOU0VfVVJJfQorICAgfTsKKysgIC8qICpJTkRFTlQtT04q
ICovCisgICBHc3RGbG93UmV0dXJuIHJldDsKKyAgIGd1aW50MzIgaWQ7CisgICBnY2hhciAqdmFs
dWUgPSBOVUxMOworLS0gCisyLjE1LjAKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351670</attachid>
            <date>2018-10-05 06:38:34 -0700</date>
            <delta_ts>2018-10-07 23:18:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189238-20181005153834.patch</filename>
            <type>text/plain</type>
            <size>45652</size>
            <attacher name="Yacine Bandou">bandou.yacine</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NTk2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjBhZjA0MWZkMGQ3NzA1MzUzNWRmMTNkMzY0MzBiM2Mw
ZDZjZjQwOS4uMzc3YTYwZDc2YzU2ZWE3OTc1ODc3ODMzYzE4ODdiMjk3NjlmZTg1NyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDE4LTEwLTAzICBZYWNpbmUgQmFuZG91ICA8eWFjaW5lLmJhbmRvdUBzb2Z0YXRob21l
LmNvbT4KKworICAgICAgICBbR1N0cmVhbWVyXVtFTUVdW3dlYm1dIEFkZCB0aGUgV2ViTSBlbmNy
eXB0ZWQgY29udGVudCBzdXBwb3J0IGluIG1hdHJvc2thZGVtdXgKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTIzOAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vZGlmaWNhdGlvbnMgb24gR1N0cmVhbWVy
LCB0cmFja2VkIGluIEdTdHJlYW1lciBidWd6aWxsYToKKyAgICAgICAgaHR0cHM6Ly9idWd6aWxs
YS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc5NzIzMQorICAgICAgICBodHRwczovL2J1Z3pp
bGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1Mjc1CisKKyAgICAgICAgKiBnc3RyZWFt
ZXIvamhidWlsZC5tb2R1bGVzOiBBZGQgbmV3IHBhdGNoZXMuCisgICAgICAgICogZ3N0cmVhbWVy
L3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1BZGQtYS1uZXctZGVmaW5pdGlvbi1m
b3ItdW5zcGVjaWZpZWQtc3lzdC5wYXRjaDogQWRkZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3Bh
dGNoZXMvZ3N0cmVhbWVyLTAwMDItcHJvdGVjdGlvbi1GaXgtdGhlLXN0cmluZy10by1kZWZpbmUt
dW5zcGVjaWZpZWQtc3lzdC5wYXRjaDogQWRkZWQuCisgICAgICAgICogZ3N0cmVhbWVyL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC0wMDExLW1hdHJvc2thLUFkZC10aGUtV2ViTS1lbmNyeXB0ZWQt
Y29udGVudC1zdXBwb3J0LWluLW0ucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIGdzdHJlYW1lci9w
YXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMi1tYXRyb3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJ
bmZvLmRhdGEtYWZ0ZXItdW5tYXBwaW5nLnBhdGNoOiBBZGRlZC4KKwogMjAxOC0wOS0yNyAgUnlh
biBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgZmxha2lu
ZXNzIGRhc2hib2FyZCBjb25maWd1cmF0aW9uIGZvciBNb2phdmUgcXVldWVzCmRpZmYgLS1naXQg
YS9Ub29scy9nc3RyZWFtZXIvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvZ3N0cmVhbWVyL2poYnVp
bGQubW9kdWxlcwppbmRleCBjNjhjZTFiYzNkNGQ3MDI1ZmE3MTljYzRiOGE2MDc1MjFlMzdkNjQ1
Li5lMjRhY2YyNmZiZWU1YjBlMGVmYzIwM2M1NDQ0NzhhOTk3OGYwOTBiIDEwMDY0NAotLS0gYS9U
b29scy9nc3RyZWFtZXIvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL2dzdHJlYW1lci9qaGJ1
aWxkLm1vZHVsZXMKQEAgLTUyLDYgKzUyLDggQEAKICAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+
CiAgICAgPC9kZXBlbmRlbmNpZXM+CiAgICAgPGJyYW5jaCBoYXNoPSJzaGEyNTY6MTNhZTUzMGVi
MWQ0NTY2YzNhYTBjZmYxYmJiOGU2NGM2NDMwNjViYjEyZTJlN2M3MDdmMzExYWI0YTM5MDQ1NiIg
bW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0udGFyLnh6IiByZXBvPSJnc3Ry
ZWFtZXIiIHZlcnNpb249IjEuMTQuMyI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVhbWVyLTAw
MDEtcHJvdGVjdGlvbi1BZGQtYS1uZXctZGVmaW5pdGlvbi1mb3ItdW5zcGVjaWZpZWQtc3lzdC5w
YXRjaCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIDA1YTNkYTM0N2IzYjhkYmFmNDcwNzkz
ZGMzZjllYmIyM2U2ZmM2N2YgLS0+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVhbWVyLTAwMDIt
cHJvdGVjdGlvbi1GaXgtdGhlLXN0cmluZy10by1kZWZpbmUtdW5zcGVjaWZpZWQtc3lzdC5wYXRj
aCIgc3RyaXA9IjEiIC8+IDwhLS0gTWVyZ2VkIGFzIGI4OWIxODAyZGY0NDgyOWEwYzAzNGRiNTgw
N2JjODkzYWQzYzc3NzQgLS0+CiAgICAgPC9icmFuY2g+CiAgIDwvYXV0b3Rvb2xzPgogCkBAIC04
OSw2ICs5MSw4IEBACiAgICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDA4LW1h
dHJvc2thZGVtdXgtUmVmYWN0b3ItdHJhY2stcGFyc2luZy1vdXQtZnJvbS1hZGRpbmcucGF0Y2gi
IHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyBmMjc5YmM1MzM2ZGRhMTk3NDFhNTk5NmExMDhk
YTQyZGQzMjAxMzY2ICh0byBiZSBzaGlwcGVkIGluIDEuMTQuNCkgLS0+CiAgICAgICA8cGF0Y2gg
ZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDA5LW1hdHJvc2thZGVtdXgtUGFyc2Utc3VjY2Vzc2l2
ZS1UcmFja3MtZWxlbWVudHMucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyAwZTYw
MDc2YTM5MGZkM2VmNTNkMzUwOTQwYjJjNjk1ZmY3YmJlMDA4ICh0byBiZSBzaGlwcGVkIGluIDEu
MTQuNCkgLS0+CiAgICAgICA8cGF0Y2ggZmlsZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDEwLW1hdHJv
c2thZGVtdXgtRW1pdC1uby1tb3JlLXBhZHMtYWZ0ZXItcGFyc2luZy1UcmFja3MucGF0Y2giIHN0
cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyA3Y2VlZmVjNzE0MTA2OWI0YWRmNDQ1MWE4NzQ3NjZm
ODc2MGM2NmQ2ICh0byBiZSBzaGlwcGVkIGluIDEuMTQuNCkgLS0+CisgICAgICA8cGF0Y2ggZmls
ZT0iZ3N0LXBsdWdpbnMtZ29vZC0wMDExLW1hdHJvc2thLUFkZC10aGUtV2ViTS1lbmNyeXB0ZWQt
Y29udGVudC1zdXBwb3J0LWluLW0ucGF0Y2giIHN0cmlwPSIxIiAvPiA8IS0tIE1lcmdlZCBhcyAw
NDMyODI2OTUwZDRkODBmZTJiNTBmZmQzNzU3ZGMwODE1NWRlOWUzIC0tPgorICAgICAgPHBhdGNo
IGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtMDAxMi1tYXRyb3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJ
bmZvLmRhdGEtYWZ0ZXItdW5tYXBwaW5nLnBhdGNoIiBzdHJpcD0iMSIgLz4gPCEtLSBNZXJnZWQg
YXMgZGVmYWUzNTAzNTg2NjBlNTU3Yzc0ZTQxYTRmZThhOGJiMzI3ZTljOCAtLT4KICAgICA8L2Jy
YW5jaD4KICAgPC9hdXRvdG9vbHM+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMS1tYXRyb3NrYS1BZGQtdGhlLVdlYk0tZW5jcnlwdGVk
LWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoIGIvVG9vbHMvZ3N0cmVhbWVyL3BhdGNoZXMvZ3N0
LXBsdWdpbnMtZ29vZC0wMDExLW1hdHJvc2thLUFkZC10aGUtV2ViTS1lbmNyeXB0ZWQtY29udGVu
dC1zdXBwb3J0LWluLW0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGQzMGJkYzIyOTAyODU0MzRiNzFkOTQ1
M2M5MGRmNzM0OGRlMTZlOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL2dzdHJlYW1lci9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtMDAxMS1tYXRyb3NrYS1BZGQtdGhlLVdlYk0tZW5jcnlwdGVk
LWNvbnRlbnQtc3VwcG9ydC1pbi1tLnBhdGNoCkBAIC0wLDAgKzEsODQyIEBACitGcm9tIDY5ZDg5
NmEwMmFjZWY1Y2RhOWQ3MjdmNDY4MThiZjAyMjFmYjgyZWIgTW9uIFNlcCAxNyAwMDowMDowMCAy
MDAxCitGcm9tOiBZYWNpbmUgQmFuZG91IDx5YWNpbmUuYmFuZG91QHNvZnRhdGhvbWUuY29tPgor
RGF0ZTogU3VuLCAzMCBTZXAgMjAxOCAxOToyODowNyArMDIwMAorU3ViamVjdDogW1BBVENIXSBt
YXRyb3NrYTogQWRkIHRoZSBXZWJNIGVuY3J5cHRlZCBjb250ZW50IHN1cHBvcnQgaW4KKyBtYXRy
b3NrYWRlbXV4CisKK1RoaXMgY29tbWl0OgorCisxLiBSZWFkcyB0aGUgV2ViTSBhbmQgTWF0cm9z
a2EgQ29udGVudEVuY3J5cHRpb24gc3ViZWxlbWVudHMuCisKKzIuIENyZWF0ZXMgYSBHU1RfUFJP
VEVDVElPTiBldmVudCBmb3IgZWFjaCBDb250ZW50RW5jcnlwdGlvbiwgd2hpY2gKKyAgIHdpbGwg
YmUgc2VudCBiZWZvcmUgcHVzaGluZyB0aGUgZmlyc3Qgc291cmNlIGJ1ZmZlci4KKyAgIFRoZSBE
Uk0gc3lzdGVtIGlkIGZpZWxkIGluIHRoaXMgZXZlbnQgaXMgc2V0IHRvIEdTVF9QUk9URUNUSU9O
X1VOU1BFQ0lGSUVEX1NZU1RFTV9JRCwKKyAgIGJlY2F1c2UgaXQgaXNuJ3Qgc3BlY2lmaWVkIG5l
aXRoZXIgYnkgTWF0cm9za2Egbm9yIGJ5IHRoZSBXZWJNIHNwZWMuCisKKzMuIFJlYWRzIHRoZSBw
cm90ZWN0aW9uIGluZm9ybWF0aW9uIG9mIGVuY3J5cHRlZCBCbG9jay9TaW1wbGVCbG9jayBhbmQK
KyAgIGV4dHJhY3RzIHRoZSBJViBhbmQgdGhlIHBhcnRpdGlvbmluZyBmb3JtYXQgKHN1YnNhbXBs
ZXMpLgorCis0LiBDcmVhdGVzIHRoZSBtZXRhZGF0YSBwcm90ZWN0aW9uIGZvciBlYWNoIGVuY3J5
cHRlZCBCbG9jay9TaW1wbGVCbG9jaywKKyAgIHdpdGggdGhvc2UgaW5mb3JtYXRpb25zOiBLZXlJ
RCAoZXh0cmFjdGVkIGZyb20gQ29udGVudEVuY3J5cHRpb24gZWxlbWVudCksCisgICBJViBhbmQg
cGFydGl0aW9uaW5nIGZvcm1hdC4KKworNS4gQWRkcyBhIG5ldyBjYXBzIGZvciBXZWJNIGVuY3J5
cHRlZCBjb250ZW50IG5hbWVkICJhcHBsaWNhdGlvbi94LXdlYm0tZW5jIiwKKyAgIHdpdGggdGhl
IGZvbGxvd2luZyBuZXcgZmllbGRzOgorCisgICAiZW5jcnlwdGlvbi1hbGdvcml0aG0iOiBUaGUg
ZW5jcnlwdGlvbiBhbGdvcml0aG0gdXNlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh
bHVlczogIk5vbmUiLCAiREVTIiwgIjNERVMiLCAiVHdvZmlzaCIsICJCbG93ZmlzaCIsICJBRVMi
LgorCisgICAiZW5jb2Rpbmctc2NvcGUiOiBUaGUgZmllbGQgdGhhdCBkZXNjcmliZXMgd2hpY2gg
RWxlbWVudHMgaGF2ZSBiZWVuIG1vZGlmaWVkLgorICAgICAgICAgICAgICAgICAgICAgVmFsdWVz
OiAiZnJhbWUiLCAiY29kZWMtZGF0YSIsICJuZXh0LWNvbnRlbnQiLgorCisgICAiY2lwaGVyLW1v
ZGUiOiBUaGUgY2lwaGVyIG1vZGUgdXNlZCBpbiB0aGUgZW5jcnlwdGlvbi4KKyAgICAgICAgICAg
ICAgICAgIFZhbHVlczogIk5vbmUiLCAiQ1RSIi4KKworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5v
cmcvc2hvd19idWcuY2dpP2lkPTc2NTI3NQorLS0tCisgZ3N0L21hdHJvc2thL21hdHJvc2thLWRl
bXV4LmMgICAgICAgfCAxMjIgKysrKysrKysrKysrLQorIGdzdC9tYXRyb3NrYS9tYXRyb3NrYS1p
ZHMuYyAgICAgICAgIHwgIDczICsrKysrKysrCisgZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5o
ICAgICAgICAgfCAgNTMgKysrKysrCisgZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9u
LmMgfCAzNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCisgZ3N0L21hdHJv
c2thL21hdHJvc2thLXJlYWQtY29tbW9uLmggfCAgIDMgKworIDUgZmlsZXMgY2hhbmdlZCwgNTg2
IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0L21hdHJv
c2thL21hdHJvc2thLWRlbXV4LmMgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYworaW5k
ZXggNjgzMzgwYmJmLi4xZWY3YjQyY2MgMTAwNjQ0CistLS0gYS9nc3QvbWF0cm9za2EvbWF0cm9z
a2EtZGVtdXguYworKysrIGIvZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMKK0BAIC0xNzMs
NiArMTczLDkgQEAgc3RhdGljIEdzdENhcHMgKmdzdF9tYXRyb3NrYV9kZW11eF9hdWRpb19jYXBz
IChHc3RNYXRyb3NrYVRyYWNrQXVkaW9Db250ZXh0Cisgc3RhdGljIEdzdENhcHMKKyAgICAgKiBn
c3RfbWF0cm9za2FfZGVtdXhfc3VidGl0bGVfY2FwcyAoR3N0TWF0cm9za2FUcmFja1N1YnRpdGxl
Q29udGV4dCAqCisgICAgIHN1YnRpdGxlY29udGV4dCwgY29uc3QgZ2NoYXIgKiBjb2RlY19pZCwg
Z3BvaW50ZXIgZGF0YSwgZ3VpbnQgc2l6ZSk7Cisrc3RhdGljIGNvbnN0IGdjaGFyICpnc3RfbWF0
cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9hbGdvcml0aG1fbmFtZSAoZ2ludCB2YWwpOworK3N0YXRp
YyBjb25zdCBnY2hhciAqZ3N0X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVf
bmFtZSAoZ2ludCB2YWwpOworK3N0YXRpYyBjb25zdCBnY2hhciAqZ3N0X21hdHJvc2thX3RyYWNr
X2VuY29kaW5nX3Njb3BlX25hbWUgKGdpbnQgdmFsKTsKKyAKKyAvKiBzdHJlYW0gbWV0aG9kcyAq
LworIHN0YXRpYyB2b2lkIGdzdF9tYXRyb3NrYV9kZW11eF9yZXNldCAoR3N0RWxlbWVudCAqIGVs
ZW1lbnQpOworQEAgLTM1OSwxMiArMzYyLDEzIEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVy
IChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAg
IEdzdE1hcEluZm8gbWFwOworICAgZ3BvaW50ZXIgZGF0YTsKKyAgIGdzaXplIHNpemU7CisrICBH
c3RCdWZmZXIgKm91dF9idWYgPSBidWY7CisgCisgICBnX3JldHVybl92YWxfaWZfZmFpbCAoR1NU
X0lTX0JVRkZFUiAoYnVmKSwgTlVMTCk7CisgCisgICBHU1RfREVCVUcgKCJkZWNvZGluZyBidWZm
ZXIgJXAiLCBidWYpOworIAorLSAgZ3N0X2J1ZmZlcl9tYXAgKGJ1ZiwgJm1hcCwgR1NUX01BUF9S
RUFEKTsKKysgIGdzdF9idWZmZXJfbWFwIChvdXRfYnVmLCAmbWFwLCBHU1RfTUFQX1JFQUQpOwor
ICAgZGF0YSA9IG1hcC5kYXRhOworICAgc2l6ZSA9IG1hcC5zaXplOworIAorQEAgLTM3MiwxNSAr
Mzc2LDUzIEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29u
dGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAKKyAgIGlmIChnc3RfbWF0cm9za2Ff
ZGVjb2RlX2RhdGEgKGNvbnRleHQtPmVuY29kaW5ncywgJmRhdGEsICZzaXplLAorICAgICAgICAg
ICBHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVfRlJBTUUsIEZBTFNFKSkgeworLSAg
ICBnc3RfYnVmZmVyX3VubWFwIChidWYsICZtYXApOworLSAgICBnc3RfYnVmZmVyX3VucmVmIChi
dWYpOworLSAgICByZXR1cm4gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoZGF0YSwgc2l6ZSk7Cisr
ICAgIGdzdF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOworKyAgICBpZiAoZGF0YSAhPSBt
YXAuZGF0YSkgeworKyAgICAgIGdzdF9idWZmZXJfdW5yZWYgKG91dF9idWYpOworKyAgICAgIG91
dF9idWYgPSBnc3RfYnVmZmVyX25ld193cmFwcGVkIChkYXRhLCBzaXplKTsKKysgICAgfQorICAg
fSBlbHNlIHsKKyAgICAgR1NUX0RFQlVHICgiZGVjb2RlIGRhdGEgZmFpbGVkIik7CistICAgIGdz
dF9idWZmZXJfdW5tYXAgKGJ1ZiwgJm1hcCk7CistICAgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zik7
CisrICAgIGdzdF9idWZmZXJfdW5tYXAgKG91dF9idWYsICZtYXApOworKyAgICBnc3RfYnVmZmVy
X3VucmVmIChvdXRfYnVmKTsKKyAgICAgcmV0dXJuIE5VTEw7CisgICB9CisrICAvKiBFbmNyeXB0
ZWQgc3RyZWFtICovCisrICBpZiAoY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvKSB7CisrCisrICAg
IEdzdFN0cnVjdHVyZSAqaW5mb19wcm90ZWN0ID0gZ3N0X3N0cnVjdHVyZV9jb3B5IChjb250ZXh0
LT5wcm90ZWN0aW9uX2luZm8pOworKyAgICBnYm9vbGVhbiBlbmNyeXB0ZWQgPSBGQUxTRTsKKysK
KysgICAgZ3N0X2J1ZmZlcl9tYXAgKG91dF9idWYsICZtYXAsIEdTVF9NQVBfUkVBRCk7CisrICAg
IGRhdGEgPSBtYXAuZGF0YTsKKysgICAgc2l6ZSA9IG1hcC5zaXplOworKworKyAgICBpZiAoZ3N0
X21hdHJvc2thX3BhcnNlX3Byb3RlY3Rpb25fbWV0YSAoJmRhdGEsICZzaXplLCBpbmZvX3Byb3Rl
Y3QsCisrICAgICAgICAgICAgJmVuY3J5cHRlZCkpIHsKKysgICAgICBnc3RfYnVmZmVyX3VubWFw
IChvdXRfYnVmLCAmbWFwKTsKKysgICAgICBpZiAoZGF0YSAhPSBtYXAuZGF0YSkgeworKyAgICAg
ICAgR3N0QnVmZmVyICp0bXBfYnVmID0gb3V0X2J1ZjsKKysgICAgICAgIG91dF9idWYgPQorKyAg
ICAgICAgICAgIGdzdF9idWZmZXJfY29weV9yZWdpb24gKHRtcF9idWYsIEdTVF9CVUZGRVJfQ09Q
WV9BTEwsCisrICAgICAgICAgICAgZ3N0X2J1ZmZlcl9nZXRfc2l6ZSAodG1wX2J1ZikgLSBzaXpl
LCBzaXplKTsKKysgICAgICAgIGdzdF9idWZmZXJfdW5yZWYgKHRtcF9idWYpOworKyAgICAgICAg
aWYgKGVuY3J5cHRlZCkKKysgICAgICAgICAgZ3N0X2J1ZmZlcl9hZGRfcHJvdGVjdGlvbl9tZXRh
IChvdXRfYnVmLCBpbmZvX3Byb3RlY3QpOworKyAgICAgICAgZWxzZQorKyAgICAgICAgICBnc3Rf
c3RydWN0dXJlX2ZyZWUgKGluZm9fcHJvdGVjdCk7CisrICAgICAgfSBlbHNlIHsKKysgICAgICAg
IGdzdF9zdHJ1Y3R1cmVfZnJlZSAoaW5mb19wcm90ZWN0KTsKKysgICAgICB9CisrICAgIH0gZWxz
ZSB7CisrICAgICAgR1NUX1dBUk5JTkcgKCJBZGRpbmcgcHJvdGVjdGlvbiBtZXRhZGF0YSBmYWls
ZWQiKTsKKysgICAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKKysgICAgICBn
c3RfYnVmZmVyX3VucmVmIChvdXRfYnVmKTsKKysgICAgICBnc3Rfc3RydWN0dXJlX2ZyZWUgKGlu
Zm9fcHJvdGVjdCk7CisrICAgICAgcmV0dXJuIE5VTEw7CisrICAgIH0KKysgIH0KKysKKysgIHJl
dHVybiBvdXRfYnVmOworIH0KKyAKKyBzdGF0aWMgdm9pZAorQEAgLTYzMCw2ICs2NzIsOCBAQCBn
c3RfbWF0cm9za2FfZGVtdXhfcGFyc2Vfc3RyZWFtIChHc3RNYXRyb3NrYURlbXV4ICogZGVtdXgs
IEdzdEVibWxSZWFkICogZWJtbCwKKyAgIGNvbnRleHQtPmR0c19vbmx5ID0gRkFMU0U7CisgICBj
b250ZXh0LT5pbnRyYV9vbmx5ID0gRkFMU0U7CisgICBjb250ZXh0LT50YWdzID0gZ3N0X3RhZ19s
aXN0X25ld19lbXB0eSAoKTsKKysgIGdfcXVldWVfaW5pdCAoJmNvbnRleHQtPnByb3RlY3Rpb25f
ZXZlbnRfcXVldWUpOworKyAgY29udGV4dC0+cHJvdGVjdGlvbl9pbmZvID0gTlVMTDsKKyAKKyAg
IEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiUGFyc2luZyBhIFRyYWNrRW50cnkgKCVkIHRyYWNr
cyBwYXJzZWQgc28gZmFyKSIsCisgICAgICAgZGVtdXgtPmNvbW1vbi5udW1fc3RyZWFtcyk7CitA
QCAtMTQ2Nyw2ICsxNTExLDMxIEBAIGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9zdHJlYW0gKEdz
dE1hdHJvc2thRGVtdXggKiBkZW11eCwgR3N0RWJtbFJlYWQgKiBlYm1sLAorICAgICAgICAgY29u
dGV4dC0+c3RyZWFtX2hlYWRlcnMsIGNhcHMpOworICAgfQorIAorKyAgaWYgKGNvbnRleHQtPmVu
Y29kaW5ncykgeworKyAgICBHc3RNYXRyb3NrYVRyYWNrRW5jb2RpbmcgKmVuYzsKKysgICAgZ3Vp
bnQgaTsKKysKKysgICAgZm9yIChpID0gMDsgaSA8IGNvbnRleHQtPmVuY29kaW5ncy0+bGVuOyBp
KyspIHsKKysgICAgICBlbmMgPSAmZ19hcnJheV9pbmRleCAoY29udGV4dC0+ZW5jb2RpbmdzLCBH
c3RNYXRyb3NrYVRyYWNrRW5jb2RpbmcsIGkpOworKyAgICAgIGlmIChlbmMtPnR5cGUgPT0gR1NU
X01BVFJPU0tBX0VOQ09ESU5HX0VOQ1JZUFRJT04gLyogZW5jcnlwdGlvbiAqLyApIHsKKysgICAg
ICAgIEdzdFN0cnVjdHVyZSAqcyA9IGdzdF9jYXBzX2dldF9zdHJ1Y3R1cmUgKGNhcHMsIDApOwor
KyAgICAgICAgaWYgKCFnc3Rfc3RydWN0dXJlX2hhc19uYW1lIChzLCAiYXBwbGljYXRpb24veC13
ZWJtLWVuYyIpKSB7CisrICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLCAib3JpZ2luYWwt
bWVkaWEtdHlwZSIsIEdfVFlQRV9TVFJJTkcsCisrICAgICAgICAgICAgICBnc3Rfc3RydWN0dXJl
X2dldF9uYW1lIChzKSwgTlVMTCk7CisrICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChzLCAi
ZW5jcnlwdGlvbi1hbGdvcml0aG0iLCBHX1RZUEVfU1RSSU5HLAorKyAgICAgICAgICAgICAgZ3N0
X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fYWxnb3JpdGhtX25hbWUgKGVuYy0+ZW5jX2FsZ28p
LAorKyAgICAgICAgICAgICAgTlVMTCk7CisrICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChz
LCAiZW5jb2Rpbmctc2NvcGUiLCBHX1RZUEVfU1RSSU5HLAorKyAgICAgICAgICAgICAgZ3N0X21h
dHJvc2thX3RyYWNrX2VuY29kaW5nX3Njb3BlX25hbWUgKGVuYy0+c2NvcGUpLCBOVUxMKTsKKysg
ICAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKHMsICJjaXBoZXItbW9kZSIsIEdfVFlQRV9TVFJJ
TkcsCisrICAgICAgICAgICAgICBnc3RfbWF0cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9jaXBoZXJf
bW9kZV9uYW1lCisrICAgICAgICAgICAgICAoZW5jLT5lbmNfY2lwaGVyX21vZGUpLCBOVUxMKTsK
KysgICAgICAgICAgZ3N0X3N0cnVjdHVyZV9zZXRfbmFtZSAocywgImFwcGxpY2F0aW9uL3gtd2Vi
bS1lbmMiKTsKKysgICAgICAgIH0KKysgICAgICB9CisrICAgIH0KKysgIH0KKysKKyAgIGNvbnRl
eHQtPmNhcHMgPSBjYXBzOworIAorICAgLyogdGFkYWFoISAqLworQEAgLTQxODUsNiArNDI1NCw3
IEBAIGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9ibG9ja2dyb3VwX29yX3NpbXBsZWJsb2NrIChH
c3RNYXRyb3NrYURlbXV4ICogZGVtdXgsCisgICAgIGdib29sZWFuIGRlbHRhX3VuaXQgPSBGQUxT
RTsKKyAgICAgZ3VpbnQ2NCBkdXJhdGlvbiA9IDA7CisgICAgIGdpbnQ2NCBsYWNlX3RpbWUgPSAw
OworKyAgICBHc3RFdmVudCAqcHJvdGVjdF9ldmVudDsKKyAKKyAgICAgc3RyZWFtID0gZ19wdHJf
YXJyYXlfaW5kZXggKGRlbXV4LT5jb21tb24uc3JjLCBzdHJlYW1fbnVtKTsKKyAKK0BAIC00MjA0
LDYgKzQyNzQsMTIgQEAgZ3N0X21hdHJvc2thX2RlbXV4X3BhcnNlX2Jsb2NrZ3JvdXBfb3Jfc2lt
cGxlYmxvY2sgKEdzdE1hdHJvc2thRGVtdXggKiBkZW11eCwKKyAgICAgfSBlbHNlIHsKKyAgICAg
ICBsYWNlX3RpbWUgPSBHU1RfQ0xPQ0tfVElNRV9OT05FOworICAgICB9CisrICAgIC8qIFNlbmQg
dGhlIEdTVF9QUk9URUNUSU9OIGV2ZW50ICovCisrICAgIHdoaWxlICgocHJvdGVjdF9ldmVudCA9
IGdfcXVldWVfcG9wX2hlYWQgKCZzdHJlYW0tPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpKSkgewor
KyAgICAgIEdTVF9UUkFDRV9PQkpFQ1QgKGRlbXV4LCAicHVzaGluZyBwcm90ZWN0aW9uIGV2ZW50
IGZvciBzdHJlYW0gJWQ6JXMiLAorKyAgICAgICAgICBzdHJlYW0tPmluZGV4LCBHU1RfU1RSX05V
TEwgKHN0cmVhbS0+bmFtZSkpOworKyAgICAgIGdzdF9wYWRfcHVzaF9ldmVudCAoc3RyZWFtLT5w
YWQsIHByb3RlY3RfZXZlbnQpOworKyAgICB9CisgCisgICAgIC8qIG5lZWQgdG8gcmVmcmVzaCBz
ZWdtZW50IGluZm8gQVNBUCAqLworICAgICBpZiAoR1NUX0NMT0NLX1RJTUVfSVNfVkFMSUQgKGxh
Y2VfdGltZSkgJiYgZGVtdXgtPm5lZWRfc2VnbWVudCkgeworQEAgLTUzNTAsNiArNTQyNiw5IEBA
IGdzdF9tYXRyb3NrYV9kZW11eF9wYXJzZV9pZCAoR3N0TWF0cm9za2FEZW11eCAqIGRlbXV4LCBn
dWludDMyIGlkLAorICAgICAgICAgfQorICAgICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfUE9T
SVRJT046CisgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9FTkNSWVBURURCTE9DSzoKKysg
ICAgICAgICAgLyogVGhlIFdlYk0gZG9lc24ndCBzdXBwb3J0IHRoZSBFbmNyeXB0ZWRCbG9jayBl
bGVtZW50LgorKyAgICAgICAgICAgKiBUaGUgTWF0cm9za2Egc3BlYyBkb2Vzbid0IGdpdmUgdXMg
bW9yZSBkZXRhaWwsIGhvdyB0byBwYXJzZSB0aGlzIGVsZW1lbnQsCisrICAgICAgICAgICAqIGZv
ciBleGFtcGxlIHRoZSBmaWVsZCBUcmFuc2Zvcm1JRCBpc24ndCBzcGVjaWZpZWQgeWV0LiovCisg
ICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9TSUxFTlRUUkFDS1M6CisgICAgICAgICAgIEdT
VF9ERUJVR19PQkpFQ1QgKGRlbXV4LAorICAgICAgICAgICAgICAgIlNraXBwaW5nIENsdXN0ZXIg
c3ViZWxlbWVudCAweCV4IC0gaWdub3JpbmciLCBpZCk7CitAQCAtNjkxNSw2ICs2OTk0LDM3IEBA
IGdzdF9tYXRyb3NrYV9kZW11eF9nZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsCisgICB9
CisgfQorIAorK3N0YXRpYyBjb25zdCBnY2hhciAqCisrZ3N0X21hdHJvc2thX3RyYWNrX2VuY3J5
cHRpb25fYWxnb3JpdGhtX25hbWUgKGdpbnQgdmFsKQorK3sKKysgIEdFbnVtVmFsdWUgKmVuOwor
KyAgR0VudW1DbGFzcyAqZW51bV9jbGFzcyA9CisrICAgICAgZ190eXBlX2NsYXNzX3JlZiAoTUFU
Uk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fVFlQRSk7CisrICBlbiA9IGdfZW51bV9n
ZXRfdmFsdWUgKEdfRU5VTV9DTEFTUyAoZW51bV9jbGFzcyksIHZhbCk7CisrICByZXR1cm4gZW4g
PyBlbi0+dmFsdWVfbmljayA6IE5VTEw7CisrfQorKworK3N0YXRpYyBjb25zdCBnY2hhciAqCisr
Z3N0X21hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25fY2lwaGVyX21vZGVfbmFtZSAoZ2ludCB2YWwp
CisreworKyAgR0VudW1WYWx1ZSAqZW47CisrICBHRW51bUNsYXNzICplbnVtX2NsYXNzID0KKysg
ICAgICBnX3R5cGVfY2xhc3NfcmVmIChNQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9N
T0RFX1RZUEUpOworKyAgZW4gPSBnX2VudW1fZ2V0X3ZhbHVlIChHX0VOVU1fQ0xBU1MgKGVudW1f
Y2xhc3MpLCB2YWwpOworKyAgcmV0dXJuIGVuID8gZW4tPnZhbHVlX25pY2sgOiBOVUxMOworK30K
KysKKytzdGF0aWMgY29uc3QgZ2NoYXIgKgorK2dzdF9tYXRyb3NrYV90cmFja19lbmNvZGluZ19z
Y29wZV9uYW1lIChnaW50IHZhbCkKKyt7CisrICBHRW51bVZhbHVlICplbjsKKysgIEdFbnVtQ2xh
c3MgKmVudW1fY2xhc3MgPQorKyAgICAgIGdfdHlwZV9jbGFzc19yZWYgKE1BVFJPU0tBX1RSQUNL
X0VOQ09ESU5HX1NDT1BFX1RZUEUpOworKworKyAgZW4gPSBnX2VudW1fZ2V0X3ZhbHVlIChHX0VO
VU1fQ0xBU1MgKGVudW1fY2xhc3MpLCB2YWwpOworKyAgcmV0dXJuIGVuID8gZW4tPnZhbHVlX25p
Y2sgOiBOVUxMOworK30KKysKKyBnYm9vbGVhbgorIGdzdF9tYXRyb3NrYV9kZW11eF9wbHVnaW5f
aW5pdCAoR3N0UGx1Z2luICogcGx1Z2luKQorIHsKK2RpZmYgLS1naXQgYS9nc3QvbWF0cm9za2Ev
bWF0cm9za2EtaWRzLmMgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmMKK2luZGV4IDNiZTNk
Mjc2Yi4uYjk2NDA0Mzg2IDEwMDY0NAorLS0tIGEvZ3N0L21hdHJvc2thL21hdHJvc2thLWlkcy5j
CisrKysgYi9nc3QvbWF0cm9za2EvbWF0cm9za2EtaWRzLmMKK0BAIC0zNTEsNSArMzUxLDc4IEBA
IGdzdF9tYXRyb3NrYV90cmFja19mcmVlIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIHRyYWNr
KQorICAgaWYgKHRyYWNrLT5zdHJlYW1faGVhZGVycykKKyAgICAgZ3N0X2J1ZmZlcl9saXN0X3Vu
cmVmICh0cmFjay0+c3RyZWFtX2hlYWRlcnMpOworIAorKyAgZ19xdWV1ZV9mb3JlYWNoICgmdHJh
Y2stPnByb3RlY3Rpb25fZXZlbnRfcXVldWUsIChHRnVuYykgZ3N0X2V2ZW50X3VucmVmLAorKyAg
ICAgIE5VTEwpOworKyAgZ19xdWV1ZV9jbGVhciAoJnRyYWNrLT5wcm90ZWN0aW9uX2V2ZW50X3F1
ZXVlKTsKKysKKysgIGlmICh0cmFjay0+cHJvdGVjdGlvbl9pbmZvKQorKyAgICBnc3Rfc3RydWN0
dXJlX2ZyZWUgKHRyYWNrLT5wcm90ZWN0aW9uX2luZm8pOworKworICAgZ19mcmVlICh0cmFjayk7
CisgfQorKworK0dUeXBlCisrbWF0cm9za2FfdHJhY2tfZW5jcnlwdGlvbl9hbGdvcml0aG1fZ2V0
X3R5cGUgKHZvaWQpCisreworKyAgc3RhdGljIEdUeXBlIHR5cGUgPSAwOworKworKyAgc3RhdGlj
IGNvbnN0IEdFbnVtVmFsdWUgdHlwZXNbXSA9IHsKKysgICAge0dTVF9NQVRST1NLQV9UUkFDS19F
TkNSWVBUSU9OX0FMR09SSVRITV9OT05FLCAiTm90IGVuY3J5cHRlZCIsCisrICAgICAgICAiTm9u
ZSJ9LAorKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX0RFUywg
IkRFUyBlbmNyeXB0aW9uIGFsZ29yaXRobSIsCisrICAgICAgICAiREVTIn0sCisrICAgIHtHU1Rf
TUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fM0RFUywgIjNERVMgZW5jcnlwdGlv
biBhbGdvcml0aG0iLAorKyAgICAgICAgIjNERVMifSwKKysgICAge0dTVF9NQVRST1NLQV9UUkFD
S19FTkNSWVBUSU9OX0FMR09SSVRITV9UV09GSVNILAorKyAgICAgICAgIlR3b0Zpc2ggZW5jcnlw
dGlvbiBhbGdvcml0aG0iLCAiVHdvRmlzaCJ9LAorKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VO
Q1JZUFRJT05fQUxHT1JJVEhNX0JMT1dGSVNILAorKyAgICAgICAgIkJsb3dGaXNoIGVuY3J5cHRp
b24gYWxnb3JpdGhtIiwgIkJsb3dGaXNoIn0sCisrICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5D
UllQVElPTl9BTEdPUklUSE1fQUVTLCAiQUVTIGVuY3J5cHRpb24gYWxnb3JpdGhtIiwKKysgICAg
ICAgICJBRVMifSwKKysgICAgezAsIE5VTEwsIE5VTEx9CisrICB9OworKworKyAgaWYgKCF0eXBl
KSB7CisrICAgIHR5cGUgPSBnX2VudW1fcmVnaXN0ZXJfc3RhdGljICgiTWF0cm9za2FUcmFja0Vu
Y3J5cHRpb25BbGdvcml0aG0iLCB0eXBlcyk7CisrICB9CisrICByZXR1cm4gdHlwZTsKKyt9Cisr
CisrR1R5cGUKKyttYXRyb3NrYV90cmFja19lbmNyeXB0aW9uX2NpcGhlcl9tb2RlX2dldF90eXBl
ICh2b2lkKQorK3sKKysgIHN0YXRpYyBHVHlwZSB0eXBlID0gMDsKKysKKysgIHN0YXRpYyBjb25z
dCBHRW51bVZhbHVlIHR5cGVzW10gPSB7CisrICAgIHtHU1RfTUFUUk9TS0FfVFJBQ0tfRU5DUllQ
VElPTl9DSVBIRVJfTU9ERV9OT05FLCAiTm90IGRlZmluZWQiLAorKyAgICAgICAgIk5vbmUifSwK
KysgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX0NUUiwgIkNU
UiBlbmNyeXB0aW9uIG1vZGUiLAorKyAgICAgICAgIkNUUiJ9LAorKyAgICB7MCwgTlVMTCwgTlVM
TH0KKysgIH07CisrCisrICBpZiAoIXR5cGUpIHsKKysgICAgdHlwZSA9IGdfZW51bV9yZWdpc3Rl
cl9zdGF0aWMgKCJNYXRyb3NrYVRyYWNrRW5jcnlwdGlvbkNpcGhlck1vZGUiLCB0eXBlcyk7Cisr
ICB9CisrICByZXR1cm4gdHlwZTsKKyt9CisrCisrR1R5cGUKKyttYXRyb3NrYV90cmFja19lbmNv
ZGluZ19zY29wZV9nZXRfdHlwZSAodm9pZCkKKyt7CisrICBzdGF0aWMgR1R5cGUgdHlwZSA9IDA7
CisrCisrICBzdGF0aWMgY29uc3QgR0VudW1WYWx1ZSB0eXBlc1tdID0geworKyAgICB7R1NUX01B
VFJPU0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX0ZSQU1FLCAiRW5jb2Rpbmcgc2NvcGUgZnJhbWUi
LCAiZnJhbWUifSwKKysgICAge0dTVF9NQVRST1NLQV9UUkFDS19FTkNPRElOR19TQ09QRV9DT0RF
Q19EQVRBLCAiRW5jb2Rpbmcgc2NvcGUgY29kZWMgZGF0YSIsCisrICAgICAgICAiY29kZWMtZGF0
YSJ9LAorKyAgICB7R1NUX01BVFJPU0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX05FWFRfQ09OVEVO
VF9FTkNPRElORywKKysgICAgICAgICJFbmNvZGluZyBzY29wZSBuZXh0IGNvbnRlbnQiLCAibmV4
dC1jb250ZW50In0sCisrICAgIHswLCBOVUxMLCBOVUxMfQorKyAgfTsKKysKKysgIGlmICghdHlw
ZSkgeworKyAgICB0eXBlID0gZ19lbnVtX3JlZ2lzdGVyX3N0YXRpYyAoIk1hdHJvc2thVHJhY2tF
bmNvZGluZ1Njb3BlIiwgdHlwZXMpOworKyAgfQorKyAgcmV0dXJuIHR5cGU7CisrfQorZGlmZiAt
LWdpdCBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaCBiL2dzdC9tYXRyb3NrYS9tYXRyb3Nr
YS1pZHMuaAoraW5kZXggYzJlNDFlNTQ5Li45YjI2M2Q4YTEgMTAwNjQ0CistLS0gYS9nc3QvbWF0
cm9za2EvbWF0cm9za2EtaWRzLmgKKysrKyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1pZHMuaAor
QEAgLTE3NSw2ICsxNzUsOSBAQAorICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRTSUdL
RVlJRCAgICAgICAgICAgIDB4NDdFNAorICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRT
SUdBTEdPICAgICAgICAgICAgIDB4NDdFNQorICNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRF
TlRTSUdIQVNIQUxHTyAgICAgICAgIDB4NDdFNgorKy8qIEFkZGVkIGluIFdlYk0gc3BlYyAqLwor
KyNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRFTkNBRVNTRVRUSU5HUyAgICAgIDB4NDdF
NworKyNkZWZpbmUgR1NUX01BVFJPU0tBX0lEX0FFU1NFVFRJTkdTQ0lQSEVSTU9ERSAgICAgIDB4
NDdFOAorIAorIC8qIElEIGluIHRoZSBDVUVzIG1hc3RlciAqLworICNkZWZpbmUgR1NUX01BVFJP
U0tBX0lEX1BPSU5URU5UUlkgICAgICAgICAgICAgICAgIDB4QkIKK0BAIC01MTYsNiArNTE5LDE3
IEBAIHR5cGVkZWYgZW51bSB7CisgICBHU1RfTUFUUk9TS0FfU1RFUkVPX01PREVfRkJGX1JMICAg
ICAgPSAweEUKKyB9IEdzdE1hdHJvc2thU3RlcmVvTW9kZTsKKyAKKyt0eXBlZGVmIGVudW0gewor
KyAgR1NUX01BVFJPU0tBX0VOQ09ESU5HX0NPTVBSRVNTSU9OID0gMHgwMCwKKysgIEdTVF9NQVRS
T1NLQV9FTkNPRElOR19FTkNSWVBUSU9OICA9IDB4MDEKKyt9IEdzdE1hdHJvc2thRW5jb2RpbmdU
eXBlOworKworKy8qIFdlYk0gc3BlYyAqLworK3R5cGVkZWYgZW51bSB7CisrICBHU1RfTUFUUk9T
S0FfQkxPQ0tfRU5DUllQVEVEICAgPSAweDAxLAorKyAgR1NUX01BVFJPU0tBX0JMT0NLX1BBUlRJ
VElPTkVEID0gMHgwMgorK30gR3N0TWF0cm9za2FFbmNyeXB0ZWRCbG9ja0ZsYWdzOworKworIHR5
cGVkZWYgc3RydWN0IF9Hc3RNYXRyb3NrYVRyYWNrQ29udGV4dCBHc3RNYXRyb3NrYVRyYWNrQ29u
dGV4dDsKKyAKKyAvKiBUT0RPOiBjaGVjayBpZiBhbGwgZmllbGRzIGFyZSB1c2VkICovCitAQCAt
NTQ5LDYgKzU2MywxMSBAQCBzdHJ1Y3QgX0dzdE1hdHJvc2thVHJhY2tDb250ZXh0IHsKKyAKKyAg
IGdib29sZWFuICAgICAgc2V0X2Rpc2NvbnQ7IC8qIFRSVUUgPSBzZXQgRElTQ09OVCBmbGFnIG9u
IG5leHQgYnVmZmVyICovCisgCisrICAvKiBRdWV1ZSB0byBzYXZlIHRoZSBHU1RfUFJPVEVDVElP
TiBldmVudHMgd2hpY2ggd2lsbCBiZSBzZW50IGJlZm9yZSB0aGUgZmlyc3Qgc291cmNlIGJ1ZmZl
ciAqLworKyAgR1F1ZXVlICAgICAgICAgcHJvdGVjdGlvbl9ldmVudF9xdWV1ZTsKKysgIC8qIFBy
b3RlY3Rpb24gaW5mb3JtYXRpb24gc3RydWN0dXJlIHdoaWNoIHdpbGwgYmUgYWRkZWQgaW4gcHJv
dGVjdGlvbiBtZXRhZGF0YSBmb3IgZWFjaCBlbmNyeXB0ZWQgYnVmZmVyICovCisrICBHc3RTdHJ1
Y3R1cmUgKiBwcm90ZWN0aW9uX2luZm87CisrCisgICAvKiBTdHJlYW0gaGVhZGVyIGJ1ZmZlciwg
dG8gcHV0IGludG8gY2FwcyBhbmQgc2VuZCBiZWZvcmUgYW55IG90aGVyIGJ1ZmZlcnMgKi8KKyAg
IEdzdEJ1ZmZlckxpc3QgKiBzdHJlYW1faGVhZGVyczsKKyAgIGdib29sZWFuICAgICAgICBzZW5k
X3N0cmVhbV9oZWFkZXJzOworQEAgLTY1NCw2ICs2NzMsOSBAQCB0eXBlZGVmIGVudW0geworICAg
R1NUX01BVFJPU0tBX1RSQUNLX0VOQ09ESU5HX1NDT1BFX05FWFRfQ09OVEVOVF9FTkNPRElORyA9
ICgxPDwyKQorIH0gR3N0TWF0cm9za2FUcmFja0VuY29kaW5nU2NvcGU7CisgCisrI2RlZmluZSBN
QVRST1NLQV9UUkFDS19FTkNPRElOR19TQ09QRV9UWVBFIChtYXRyb3NrYV90cmFja19lbmNvZGlu
Z19zY29wZV9nZXRfdHlwZSgpKQorK0dUeXBlIG1hdHJvc2thX3RyYWNrX2VuY29kaW5nX3Njb3Bl
X2dldF90eXBlICh2b2lkKTsKKysKKyB0eXBlZGVmIGVudW0geworICAgR1NUX01BVFJPU0tBX1RS
QUNLX0NPTVBSRVNTSU9OX0FMR09SSVRITV9aTElCID0gMCwKKyAgIEdTVF9NQVRST1NLQV9UUkFD
S19DT01QUkVTU0lPTl9BTEdPUklUSE1fQlpMSUIgPSAxLAorQEAgLTY2MSw2ICs2ODMsMzUgQEAg
dHlwZWRlZiBlbnVtIHsKKyAgIEdTVF9NQVRST1NLQV9UUkFDS19DT01QUkVTU0lPTl9BTEdPUklU
SE1fSEVBREVSU1RSSVAgPSAzCisgfSBHc3RNYXRyb3NrYVRyYWNrQ29tcHJlc3Npb25BbGdvcml0
aG07CisgCisrLyogVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHVzZWQuIFRoZSB2YWx1ZSAnMCcg
bWVhbnMgdGhhdCB0aGUgY29udGVudHMKKysgKiBoYXZlIG5vdCBiZWVuIGVuY3J5cHRlZCBidXQg
b25seSBzaWduZWQuCisrICogUHJlZGVmaW5lZCB2YWx1ZXM6IDEgLSBERVM7IDIgLSAzREVTOyAz
IC0gVHdvZmlzaDsgNCAtIEJsb3dmaXNoOyA1IC0gQUVTLgorKyAqIFdlYk0gb25seSBzdXBwb3J0
cyBhIHZhbHVlIG9mIDUgKEFFUykuCisrICovCisrdHlwZWRlZiBlbnVtIHsKKysgIEdTVF9NQVRS
T1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9OT05FICAgICA9IDAsCisrICBHU1RfTUFU
Uk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fREVTICAgICAgPSAxLAorKyAgR1NUX01B
VFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNXzNERVMgICAgID0gMiwKKysgIEdTVF9N
QVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9UV09GSVNIICA9IDMsCisrICBHU1Rf
TUFUUk9TS0FfVFJBQ0tfRU5DUllQVElPTl9BTEdPUklUSE1fQkxPV0ZJU0ggPSA0LAorKyAgR1NU
X01BVFJPU0tBX1RSQUNLX0VOQ1JZUFRJT05fQUxHT1JJVEhNX0FFUyAgICAgID0gNQorK30gR3N0
TWF0cm9za2FUcmFja0VuY3J5cHRpb25BbGdvcml0aG07CisrCisrI2RlZmluZSBNQVRST1NLQV9U
UkFDS19FTkNSWVBUSU9OX0FMR09SSVRITV9UWVBFIChtYXRyb3NrYV90cmFja19lbmNyeXB0aW9u
X2FsZ29yaXRobV9nZXRfdHlwZSgpKQorK0dUeXBlIG1hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25f
YWxnb3JpdGhtX2dldF90eXBlICh2b2lkKTsKKysKKysvKiBEZWZpbmVkIG9ubHkgaW4gV2ViTSBz
cGVjLgorKyAqIFRoZSBjaXBoZXIgbW9kZSB1c2VkIGluIHRoZSBlbmNyeXB0aW9uLiBQcmVkZWZp
bmVkIHZhbHVlczogMSAtIENUUgorKyAqLworK3R5cGVkZWYgZW51bSB7CisrICBHU1RfTUFUUk9T
S0FfVFJBQ0tfRU5DUllQVElPTl9DSVBIRVJfTU9ERV9OT05FICAgID0gMCwKKysgIEdTVF9NQVRS
T1NLQV9UUkFDS19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX0NUUiAgICAgPSAxCisrfSBHc3RNYXRy
b3NrYVRyYWNrRW5jcnlwdGlvbkNpcGhlck1vZGU7CisrCisrI2RlZmluZSBNQVRST1NLQV9UUkFD
S19FTkNSWVBUSU9OX0NJUEhFUl9NT0RFX1RZUEUgKG1hdHJvc2thX3RyYWNrX2VuY3J5cHRpb25f
Y2lwaGVyX21vZGVfZ2V0X3R5cGUoKSkKKytHVHlwZSBtYXRyb3NrYV90cmFja19lbmNyeXB0aW9u
X2NpcGhlcl9tb2RlX2dldF90eXBlICh2b2lkKTsKKysKKysKKyB0eXBlZGVmIHN0cnVjdCBfR3N0
TWF0cm9za2FUcmFja0VuY29kaW5nIHsKKyAgIGd1aW50ICAgb3JkZXI7CisgICBndWludCAgIHNj
b3BlICAgICA6IDM7CitAQCAtNjY4LDYgKzcxOSw4IEBAIHR5cGVkZWYgc3RydWN0IF9Hc3RNYXRy
b3NrYVRyYWNrRW5jb2RpbmcgeworICAgZ3VpbnQgICBjb21wX2FsZ28gOiAyOworICAgZ3VpbnQ4
ICpjb21wX3NldHRpbmdzOworICAgZ3VpbnQgICBjb21wX3NldHRpbmdzX2xlbmd0aDsKKysgIGd1
aW50ICAgZW5jX2FsZ28gIDogMzsKKysgIGd1aW50ICAgZW5jX2NpcGhlcl9tb2RlIDogMjsKKyB9
IEdzdE1hdHJvc2thVHJhY2tFbmNvZGluZzsKKyAKKyBnYm9vbGVhbiBnc3RfbWF0cm9za2FfdHJh
Y2tfaW5pdF92aWRlb19jb250ZXh0ICAgIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqKiBwX2Nv
bnRleHQpOworZGlmZiAtLWdpdCBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5j
IGIvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMKK2luZGV4IDQxOWJhN2Y5NS4u
ZmZiMzkzYmY5IDEwMDY0NAorLS0tIGEvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9u
LmMKKysrKyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5jCitAQCAtMzksNiAr
MzksNyBAQAorIAorICNpbmNsdWRlIDxnc3QvdGFnL3RhZy5oPgorICNpbmNsdWRlIDxnc3QvYmFz
ZS9nc3R0eXBlZmluZGhlbHBlci5oPgorKyNpbmNsdWRlIDxnc3QvYmFzZS9nc3RieXRld3JpdGVy
Lmg+CisgCisgI2luY2x1ZGUgImx6by5oIgorIAorQEAgLTI2Miw5ICsyNjMsOSBAQCBnc3RfbWF0
cm9za2FfZGVjb2RlX2NvbnRlbnRfZW5jb2RpbmdzIChHQXJyYXkgKiBlbmNvZGluZ3MpCisgICAg
ICAgICA9PSAwKQorICAgICAgIGNvbnRpbnVlOworIAorLSAgICAvKiBFbmNyeXB0aW9uIG5vdCBz
dXBwb3J0ZWQgeWV0ICovCistICAgIGlmIChlbmMtPnR5cGUgIT0gMCkKKy0gICAgICByZXR1cm4g
R1NUX0ZMT1dfRVJST1I7CisrICAgIC8qIE90aGVyIHRoYW4gRU5DT0RJTkdfQ09NUFJFU1NJT04g
bm90IGhhbmRsZWQgaGVyZSAqLworKyAgICBpZiAoZW5jLT50eXBlICE9IEdTVF9NQVRST1NLQV9F
TkNPRElOR19DT01QUkVTU0lPTikKKysgICAgICBjb250aW51ZTsKKyAKKyAgICAgaWYgKGkgKyAx
ID49IGVuY29kaW5ncy0+bGVuKQorICAgICAgIHJldHVybiBHU1RfRkxPV19FUlJPUjsKK0BAIC0z
MTIsOSArMzEzLDkgQEAgZ3N0X21hdHJvc2thX2RlY29kZV9kYXRhIChHQXJyYXkgKiBlbmNvZGlu
Z3MsIGdwb2ludGVyICogZGF0YV9vdXQsCisgICAgIGlmICgoZW5jLT5zY29wZSAmIHNjb3BlKSA9
PSAwKQorICAgICAgIGNvbnRpbnVlOworIAorLSAgICAvKiBFbmNyeXB0aW9uIG5vdCBzdXBwb3J0
ZWQgeWV0ICovCistICAgIGlmIChlbmMtPnR5cGUgIT0gMCkgeworLSAgICAgIHJldCA9IEZBTFNF
OworKyAgICAvKiBFbmNyeXB0aW9uIG5vdCBoYW5kbGVkIGhlcmUgKi8KKysgICAgaWYgKGVuYy0+
dHlwZSAhPSBHU1RfTUFUUk9TS0FfRU5DT0RJTkdfQ09NUFJFU1NJT04pIHsKKysgICAgICByZXQg
PSBUUlVFOworICAgICAgIGJyZWFrOworICAgICB9CisgCitAQCAtMzQ5LDYgKzM1MCwyMTEgQEAg
Z3N0X21hdHJvc2thX2RlY29kZV9kYXRhIChHQXJyYXkgKiBlbmNvZGluZ3MsIGdwb2ludGVyICog
ZGF0YV9vdXQsCisgICByZXR1cm4gcmV0OworIH0KKyAKKysvKiBUaGlzIGZ1bmN0aW9uIHBhcnNl
cyB0aGUgcHJvdGVjdGlvbiBpbmZvIG9mIEJsb2NrL1NpbXBsZUJsb2NrIGFuZCBleHRyYWN0cyB0
aGUKKysgKiBJViBhbmQgcGFydGl0aW9uaW5nIGZvcm1hdCAoc3Vic2FtcGxlKSBpbmZvcm1hdGlv
bi4KKysgKiBTZXQgdGhvc2UgcGFyc2VkIGluZm9ybWF0aW9uIGludG8gcHJvdGVjdGlvbiBpbmZv
IHN0cnVjdHVyZSBAaW5mb19wcm90ZWN0IHdoaWNoCisrICogd2lsbCBiZSBhZGRlZCBpbiBwcm90
ZWN0aW9uIG1ldGFkYXRhIG9mIHRoZSBHc3RidWZmZXIuCisrICogVGhlIHN1YnNhbXBsZXMgZm9y
bWF0IGZvbGxvd3MgdGhlIHNhbWUgcHNzaCBib3ggZm9ybWF0IGluIENvbW1vbiBFbmNyeXB0aW9u
IHNwZWM6CisrICogc3Vic2FtcGxlIG51bWJlciArIGNsZWFyIHN1YnNhbXBsZSBzaXplICgxNmJp
dCBiaWdlbmRpYW4pIHwgZW5jcnlwdGVkIHN1YnNhbXBsZSBzaXplICgzMmJpdCBiaWdlbmRpYW4p
IHwgLi4uCisrICogQGVuY3J5cHRlZCBpcyBhbiBvdXRwdXQgYXJndW1lbnQ6IFRSVUUgaWYgdGhl
IGN1cnJlbnQgQmxvY2svU2ltcGxlQmxvY2sgaXMgZW5jcnlwdGVkIGVsc2UgRkFMU0UKKysgKi8K
KytnYm9vbGVhbgorK2dzdF9tYXRyb3NrYV9wYXJzZV9wcm90ZWN0aW9uX21ldGEgKGdwb2ludGVy
ICogZGF0YV9vdXQsIGdzaXplICogc2l6ZV9vdXQsCisrICAgIEdzdFN0cnVjdHVyZSAqIGluZm9f
cHJvdGVjdCwgZ2Jvb2xlYW4gKiBlbmNyeXB0ZWQpCisreworKyAgZ3VpbnQ4ICpkYXRhOworKyAg
R3N0QnVmZmVyICpidWZfaXY7CisrICBndWludDggKmRhdGFfaXY7CisrICBndWludDggKnN1YnNh
bXBsZXM7CisrICBndWludDggc2lnbmFsX2J5dGU7CisrICBnaW50IGk7CisrICBHc3RCeXRlUmVh
ZGVyIHJlYWRlcjsKKysKKysgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChkYXRhX291dCAhPSBOVUxM
ICYmICpkYXRhX291dCAhPSBOVUxMLCBGQUxTRSk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAo
c2l6ZV9vdXQgIT0gTlVMTCwgRkFMU0UpOworKyAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwgKGluZm9f
cHJvdGVjdCAhPSBOVUxMLCBGQUxTRSk7CisrICBnX3JldHVybl92YWxfaWZfZmFpbCAoZW5jcnlw
dGVkICE9IE5VTEwsIEZBTFNFKTsKKysKKysgICplbmNyeXB0ZWQgPSBGQUxTRTsKKysgIGRhdGEg
PSAqZGF0YV9vdXQ7CisrICBnc3RfYnl0ZV9yZWFkZXJfaW5pdCAoJnJlYWRlciwgZGF0YSwgKnNp
emVfb3V0KTsKKysKKysgIC8qIFdlYk0gc3BlYzoKKysgICAqIDQuNyBTaWduYWwgQnl0ZSBGb3Jt
YXQKKysgICAqICAwIDEgMiAzIDQgNSA2IDcKKysgICAqICstKy0rLSstKy0rLSstKy0rCisrICAg
KiB8WHwgICBSU1YgICB8UHxFfAorKyAgICogKy0rLSstKy0rLSstKy0rLSsKKysgICAqCisrICAg
KiBFeHRlbnNpb24gYml0IChYKQorKyAgICogSWYgc2V0LCBhbm90aGVyIHNpZ25hbCBieXRlIHdp
bGwgZm9sbG93IHRoaXMgYnl0ZS4gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSBleHBhbnNpb24gKGN1cnJl
bnRseSBNVVNUIGJlIHNldCB0byAwKS4KKysgICAqIFJTViBiaXRzIChSU1YpCisrICAgKiBCaXRz
IHJlc2VydmVkIGZvciBmdXR1cmUgdXNlLiBNVVNUIGJlIHNldCB0byAwIGFuZCBNVVNUIGJlIGln
bm9yZWQuCisrICAgKiBFbmNyeXB0ZWQgYml0IChFKQorKyAgICogSWYgc2V0LCB0aGUgQmxvY2sg
TVVTVCBjb250YWluIGFuIElWIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGFuIGVuY3J5cHRlZCBm
cmFtZS4gSWYgbm90IHNldCwgdGhlIEJsb2NrIE1VU1QgTk9UIGluY2x1ZGUgYW4gSVYgYW5kIHRo
ZSBmcmFtZSBNVVNUIGJlIHVuZW5jcnlwdGVkLiBUaGUgdW5lbmNyeXB0ZWQgZnJhbWUgTVVTVCBp
bW1lZGlhdGVseSBmb2xsb3cgdGhlIFNpZ25hbCBCeXRlLgorKyAgICogUGFydGl0aW9uZWQgYml0
IChQKQorKyAgICogVXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBzYW1wbGUgaGFzIHN1YnNhbXBs
ZSBwYXJ0aXRpb25zLiBJZiBzZXQsIHRoZSBJViB3aWxsIGJlIGZvbGxvd2VkIGJ5IGEgbnVtX3Bh
cnRpdGlvbnMgYnl0ZSwgYW5kIG51bV9wYXJ0aXRpb25zICogMzItYml0IHBhcnRpdGlvbiBvZmZz
ZXRzLiBUaGlzIGJpdCBjYW4gb25seSBiZSBzZXQgaWYgdGhlIEUgYml0IGlzIGFsc28gc2V0Lgor
KyAgICovCisrICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDggKCZyZWFkZXIsICZzaWdu
YWxfYnl0ZSkpIHsKKysgICAgR1NUX0VSUk9SICgiRXJyb3IgcmVhZGluZyB0aGUgc2lnbmFsIGJ5
dGUiKTsKKysgICAgcmV0dXJuIEZBTFNFOworKyAgfQorKworKyAgLyogVW5lbmNyeXB0ZWQgYnVm
ZmVyICovCisrICBpZiAoIShzaWduYWxfYnl0ZSAmIEdTVF9NQVRST1NLQV9CTE9DS19FTkNSWVBU
RUQpKSB7CisrICAgIHJldHVybiBUUlVFOworKyAgfQorKworKyAgLyogRW5jcnlwdGVkIGJ1ZmZl
ciAqLworKyAgKmVuY3J5cHRlZCA9IFRSVUU7CisrICAvKiBDcmVhdGUgSVYgYnVmZmVyICovCisr
ICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9kdXBfZGF0YSAoJnJlYWRlciwgc2l6ZW9mIChndWludDY0
KSwgJmRhdGFfaXYpKSB7CisrICAgIEdTVF9FUlJPUiAoIkVycm9yIHJlYWRpbmcgdGhlIElWIGRh
dGEiKTsKKysgICAgcmV0dXJuIEZBTFNFOworKyAgfQorKyAgYnVmX2l2ID0gZ3N0X2J1ZmZlcl9u
ZXdfd3JhcHBlZCAoKGdwb2ludGVyKSBkYXRhX2l2LCBzaXplb2YgKGd1aW50NjQpKTsKKysgIGdz
dF9zdHJ1Y3R1cmVfc2V0IChpbmZvX3Byb3RlY3QsICJpdiIsIEdTVF9UWVBFX0JVRkZFUiwgYnVm
X2l2LCBOVUxMKTsKKysgIGdzdF9idWZmZXJfdW5yZWYgKGJ1Zl9pdik7CisrCisrICAvKiBQYXJ0
aXRpb25lZCBpbiBzdWJzYW1wbGUgKi8KKysgIGlmIChzaWduYWxfYnl0ZSAmIEdTVF9NQVRST1NL
QV9CTE9DS19QQVJUSVRJT05FRCkgeworKyAgICBndWludCBuYl9zdWJzYW1wbGU7CisrICAgIGd1
aW50MzIgb2Zmc2V0ID0gMDsKKysgICAgZ3VpbnQzMiBvZmZzZXRfcHJldjsKKysgICAgZ3VpbnQz
MiBlbmNyeXB0ZWRfYnl0ZXMgPSAwOworKyAgICBndWludDE2IGNsZWFyX2J5dGVzID0gMDsKKysg
ICAgR3N0QnVmZmVyICpidWZfc3ViX3NhbXBsZTsKKysgICAgZ3VpbnQ4IG5iX3BhcnQ7CisrICAg
IEdzdEJ5dGVXcml0ZXIgd3JpdGVyOworKworKyAgICAvKiBSZWFkIHRoZSBudW1iZXIgb2YgcGFy
dGl0aW9ucyAoMSBieXRlKSAqLworKyAgICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDgg
KCZyZWFkZXIsICZuYl9wYXJ0KSkgeworKyAgICAgIEdTVF9FUlJPUiAoIkVycm9yIHJlYWRpbmcg
dGhlIHBhcnRpdGlvbiBudW1iZXIiKTsKKysgICAgICByZXR1cm4gRkFMU0U7CisrICAgIH0KKysK
KysgICAgaWYgKG5iX3BhcnQgPT0gMCkgeworKyAgICAgIEdTVF9FUlJPUiAoIlBhcnRpdGlvbmVk
LCBidXQgdGhlIHN1YnNhbXBsZSBudW1iZXIgZXF1YWwgdG8gemVybyIpOworKyAgICAgIHJldHVy
biBGQUxTRTsKKysgICAgfQorKworKyAgICBuYl9zdWJzYW1wbGUgPSAobmJfcGFydCArIDIpID4+
IDE7CisrCisrICAgIGdzdF9zdHJ1Y3R1cmVfc2V0IChpbmZvX3Byb3RlY3QsICJzdWJzYW1wbGVf
Y291bnQiLCBHX1RZUEVfVUlOVCwKKysgICAgICAgIG5iX3N1YnNhbXBsZSwgTlVMTCk7CisrCisr
ICAgIC8qIFdlYk0gU3BlYzoKKysgICAgICoKKysgICAgICogNC42IFN1YnNhbXBsZSBFbmNyeXB0
ZWQgQmxvY2sgRm9ybWF0CisrICAgICAqCisrICAgICAqIFRoZSBTdWJzYW1wbGUgRW5jcnlwdGVk
IEJsb2NrIGZvcm1hdCBleHRlbmRzIHRoZSBGdWxsLXNhbXBsZSBmb3JtYXQgYnkgc2V0dGluZyBh
ICJwYXJ0aXRpb25lZCIgKFApIGJpdCBpbiB0aGUgU2lnbmFsIEJ5dGUuCisrICAgICAqIElmIHRo
aXMgYml0IGlzIHNldCwgdGhlIEVuY3J5cHRlZEJsb2NrIGhlYWRlciBzaGFsbCBpbmNsdWRlIGFu
CisrICAgICAqIDgtYml0IGludGVnZXIgaW5kaWNhdGluZyB0aGUgbnVtYmVyIG9mIHNhbXBsZSBw
YXJ0aXRpb25zIChkaXZpZGVycyBiZXR3ZWVuIGNsZWFyL2VuY3J5cHRlZCBzZWN0aW9ucyksCisr
ICAgICAqIGFuZCBhIHNlcmllcyBvZiAzMi1iaXQgaW50ZWdlcnMgaW4gYmlnLWVuZGlhbiBlbmNv
ZGluZyBpbmRpY2F0aW5nIHRoZSBieXRlIG9mZnNldHMgb2Ygc3VjaCBwYXJ0aXRpb25zLgorKyAg
ICAgKgorKyAgICAgKiAgMCAgICAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgICAgIDIg
ICAgICAgICAgICAgICAgICAgMworKyAgICAgKiAgMCAxIDIgMyA0IDUgNiA3IDggOSAwIDEgMiAz
IDQgNSA2IDcgOCA5IDAgMSAyIDMgNCA1IDYgNyA4IDkgMCAxCisrICAgICAqICstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCisr
ICAgICAqIHwgIFNpZ25hbCBCeXRlICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8CisrICAgICAqICstKy0rLSstKy0rLSstKy0rICAgICAgICAgICAgIElW
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqIHwgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrICAg
ICAqIHwgICAgICAgICAgICAgICArLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rCisrICAgICAqIHwgICAgICAgICAgICAgICB8IG51bV9wYXJ0aXRpb24gfCAg
ICAgUGFydGl0aW9uIDAgb2Zmc2V0IC0+ICAgICB8CisrICAgICAqIHwtKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy18CisrICAgICAq
IHwgICAgIC0+IFBhcnRpdGlvbiAwIG9mZnNldCAgICAgfCAgICAgICAgICAgICAgLi4uICAgICAg
ICAgICAgICB8CisrICAgICAqIHwtKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy18CisrICAgICAqIHwgICAgICAgICAgICAgLi4uICAg
ICAgICAgICAgICAgfCAgICAgUGFydGl0aW9uIG4tMSBvZmZzZXQgLT4gICB8CisrICAgICAqIHwt
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy18CisrICAgICAqIHwgICAgIC0+IFBhcnRpdGlvbiBuLTEgb2Zmc2V0ICAgfCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqICstKy0rLSstKy0rLSstKy0rLSstKy0r
LSstKy0rLSstKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqIHwgICAg
ICAgICAgICAgICAgICAgIENsZWFyL2VuY3J5cHRlZCBzYW1wbGUgZGF0YSAgICAgICAgICAgICAg
ICB8CisrICAgICAqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqIHwgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrICAgICAqICstKy0rLSst
Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r
CisrICAgICAqCisrICAgICAqIDQuNi4xIFNBTVBMRSBQQVJUSVRJT05TCisrICAgICAqCisrICAg
ICAqIFRoZSBzYW1wbGVzIHNoYWxsIGJlIHBhcnRpdGlvbmVkIGludG8gYWx0ZXJuYXRpbmcgY2xl
YXIgYW5kIGVuY3J5cHRlZCBzZWN0aW9ucywKKysgICAgICogYWx3YXlzIHN0YXJ0aW5nIHdpdGgg
YSBjbGVhciBzZWN0aW9uLgorKyAgICAgKiBHZW5lcmFsbHkgZm9yIG4gY2xlYXIvZW5jcnlwdGVk
IHNlY3Rpb25zIHRoZXJlIHNoYWxsIGJlIG4tMSBwYXJ0aXRpb24gb2Zmc2V0cy4KKysgICAgICog
SG93ZXZlciwgaWYgaXQgaXMgcmVxdWlyZWQgdGhhdCB0aGUgZmlyc3Qgc2VjdGlvbiBiZSBlbmNy
eXB0ZWQsIHRoZW4gdGhlIGZpcnN0IHBhcnRpdGlvbiBzaGFsbCBiZSBhdCBieXRlIG9mZnNldCAw
CisrICAgICAqIChpbmRpY2F0aW5nIGEgemVyby1zaXplIGNsZWFyIHNlY3Rpb24pLCBhbmQgdGhl
cmUgc2hhbGwgYmUgbiBwYXJ0aXRpb24gb2Zmc2V0cy4KKysgICAgICogUGxlYXNlIHJlZmVyIHRv
IHRoZSAiU2FtcGxlIEVuY3J5cHRpb24iIGRlc2NyaXB0aW9uIG9mIHRoZSAiQ29tbW9uIEVuY3J5
cHRpb24iCisrICAgICAqIHNlY3Rpb24gb2YgdGhlIFZQIENvZGVjIElTTyBNZWRpYSBGaWxlIEZv
cm1hdCBCaW5kaW5nIFNwZWNpZmljYXRpb24gZm9yIG1vcmUKKysgICAgICogZGV0YWlsIG9uIGhv
dyBzdWJzYW1wbGUgZW5jcnlwdGlvbiBpcyBpbXBsZW1lbnRlZC4KKysgICAgICovCisrICAgIHN1
YnNhbXBsZXMgPQorKyAgICAgICAgZ19tYWxsb2MgKG5iX3N1YnNhbXBsZSAqIChzaXplb2YgKGd1
aW50MTYpICsgc2l6ZW9mIChndWludDMyKSkpOworKworKyAgICBnc3RfYnl0ZV93cml0ZXJfaW5p
dF93aXRoX2RhdGEgKCZ3cml0ZXIsIHN1YnNhbXBsZXMsCisrICAgICAgICBuYl9zdWJzYW1wbGUg
KiAoc2l6ZW9mIChndWludDE2KSArIHNpemVvZiAoZ3VpbnQzMikpLCBGQUxTRSk7CisrCisrICAg
IGZvciAoaSA9IDA7IGkgPD0gbmJfcGFydDsgaSsrKSB7CisrICAgICAgb2Zmc2V0X3ByZXYgPSBv
ZmZzZXQ7CisrICAgICAgaWYgKGkgPT0gbmJfcGFydCkgeworKyAgICAgICAgb2Zmc2V0ID0gZ3N0
X2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmcgKCZyZWFkZXIpOworKyAgICAgIH0gZWxzZSB7Cisr
ICAgICAgICBpZiAoIWdzdF9ieXRlX3JlYWRlcl9nZXRfdWludDMyX2JlICgmcmVhZGVyLCAmb2Zm
c2V0KSkgeworKyAgICAgICAgICBHU1RfRVJST1IgKCJFcnJvciByZWFkaW5nIHRoZSBwYXJ0aXRp
b24gb2Zmc2V0Iik7CisrICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7CisrICAgICAgICB9Cisr
ICAgICAgfQorKworKyAgICAgIGlmIChvZmZzZXQgPCBvZmZzZXRfcHJldikgeworKyAgICAgICAg
R1NUX0VSUk9SICgiUGFydGl0aW9uIG9mZnNldHMgc2hvdWxkIG5vdCBkZWNyZWFzZSIpOworKyAg
ICAgICAgZ290byByZWxlYXNlX2VycjsKKysgICAgICB9CisrCisrICAgICAgaWYgKGkgJSAyID09
IDApIHsKKysgICAgICAgIGlmICgob2Zmc2V0IC0gb2Zmc2V0X3ByZXYpICYgMHhGRkZGMDAwMCkg
eworKyAgICAgICAgICBHU1RfRVJST1IKKysgICAgICAgICAgICAgICgiVGhlIENsZWFyIFBhcnRp
dGlvbiBleGNlZWQgNjRLQiBpbiBlbmNyeXB0ZWQgc3Vic2FtcGxlIGZvcm1hdCIpOworKyAgICAg
ICAgICBnb3RvIHJlbGVhc2VfZXJyOworKyAgICAgICAgfQorKyAgICAgICAgLyogV2Ugc2V0IHRo
ZSBDbGVhciBwYXJ0aXRpb24gc2l6ZSBpbiAxNiBiaXRzLCBpbiBvcmRlciB0bworKyAgICAgICAg
ICogZm9sbG93IHRoZSBzYW1lIGZvcm1hdCBvZiB0aGUgYm94IFBTU0ggaW4gQ0VOQyBzcGVjICov
CisrICAgICAgICBjbGVhcl9ieXRlcyA9IG9mZnNldCAtIG9mZnNldF9wcmV2OworKyAgICAgICAg
aWYgKGkgPT0gbmJfcGFydCkKKysgICAgICAgICAgZW5jcnlwdGVkX2J5dGVzID0gMDsKKysgICAg
ICB9IGVsc2UgeworKyAgICAgICAgZW5jcnlwdGVkX2J5dGVzID0gb2Zmc2V0IC0gb2Zmc2V0X3By
ZXY7CisrICAgICAgfQorKworKyAgICAgIGlmICgoaSAlIDIgPT0gMSkgfHwgKGkgPT0gbmJfcGFy
dCkpIHsKKysgICAgICAgIGlmIChjbGVhcl9ieXRlcyA9PSAwICYmIGVuY3J5cHRlZF9ieXRlcyA9
PSAwKSB7CisrICAgICAgICAgIEdTVF9FUlJPUiAoIkZvdW5kIDIgcGFydGl0aW9ucyB3aXRoIHRo
ZSBzYW1lIG9mZnNldHMuIik7CisrICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7CisrICAgICAg
ICB9CisrICAgICAgICBpZiAoIWdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDE2X2JlICgmd3JpdGVy
LCBjbGVhcl9ieXRlcykpIHsKKysgICAgICAgICAgR1NUX0VSUk9SICgiRXJyb3Igd3JpdGluZyB0
aGUgbnVtYmVyIG9mIGNsZWFyIGJ5dGVzIik7CisrICAgICAgICAgIGdvdG8gcmVsZWFzZV9lcnI7
CisrICAgICAgICB9CisrICAgICAgICBpZiAoIWdzdF9ieXRlX3dyaXRlcl9wdXRfdWludDMyX2Jl
ICgmd3JpdGVyLCBlbmNyeXB0ZWRfYnl0ZXMpKSB7CisrICAgICAgICAgIEdTVF9FUlJPUiAoIkVy
cm9yIHdyaXRpbmcgdGhlIG51bWJlciBvZiBlbmNyeXB0ZWQgYnl0ZXMiKTsKKysgICAgICAgICAg
Z290byByZWxlYXNlX2VycjsKKysgICAgICAgIH0KKysgICAgICB9CisrICAgIH0KKysKKysgICAg
YnVmX3N1Yl9zYW1wbGUgPQorKyAgICAgICAgZ3N0X2J1ZmZlcl9uZXdfd3JhcHBlZCAoc3Vic2Ft
cGxlcywKKysgICAgICAgIG5iX3N1YnNhbXBsZSAqIChzaXplb2YgKGd1aW50MTYpICsgc2l6ZW9m
IChndWludDMyKSkpOworKyAgICBnc3Rfc3RydWN0dXJlX3NldCAoaW5mb19wcm90ZWN0LCAic3Vi
c2FtcGxlcyIsIEdTVF9UWVBFX0JVRkZFUiwKKysgICAgICAgIGJ1Zl9zdWJfc2FtcGxlLCBOVUxM
KTsKKysgICAgZ3N0X2J1ZmZlcl91bnJlZiAoYnVmX3N1Yl9zYW1wbGUpOworKyAgfSBlbHNlIHsK
KysgICAgZ3N0X3N0cnVjdHVyZV9zZXQgKGluZm9fcHJvdGVjdCwgInN1YnNhbXBsZV9jb3VudCIs
IEdfVFlQRV9VSU5ULCAwLCBOVUxMKTsKKysgIH0KKysKKysgIGdzdF9ieXRlX3JlYWRlcl9nZXRf
ZGF0YSAoJnJlYWRlciwgMCwgKGNvbnN0IGd1aW50OCAqKikgZGF0YV9vdXQpOworKyAgKnNpemVf
b3V0ID0gZ3N0X2J5dGVfcmVhZGVyX2dldF9yZW1haW5pbmcgKCZyZWFkZXIpOworKyAgcmV0dXJu
IFRSVUU7CisrCisrcmVsZWFzZV9lcnI6CisrICBnX2ZyZWUgKHN1YnNhbXBsZXMpOworKyAgcmV0
dXJuIEZBTFNFOworK30KKysKKyBzdGF0aWMgZ2ludAorIGdzdF9tYXRyb3NrYV9pbmRleF9jb21w
YXJlIChHc3RNYXRyb3NrYUluZGV4ICogaTEsIEdzdE1hdHJvc2thSW5kZXggKiBpMikKKyB7CitA
QCAtMjc0NCw5ICsyOTUwLDExIEBAIGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1vbl9yZWFkX3RyYWNr
X2VuY29kaW5nIChHc3RNYXRyb3NrYVJlYWRDb21tb24gKiBjb21tb24sCisgICAgICAgICAgICAg
ICBHX0dVSU5UNjRfRk9STUFULCBudW0pOworICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJP
UjsKKyAgICAgICAgICAgYnJlYWs7CistICAgICAgICB9IGVsc2UgaWYgKG51bSAhPSAwKSB7Cisr
ICAgICAgICB9CisrCisrICAgICAgICBpZiAoKCFjb21tb24tPmlzX3dlYm0pICYmIChudW0gPT0g
R1NUX01BVFJPU0tBX0VOQ09ESU5HX0VOQ1JZUFRJT04pKSB7CisgICAgICAgICAgIEdTVF9FUlJP
Ul9PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKy0gICAgICAgICAgICAgICJFbmNyeXB0ZWQgdHJh
Y2tzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCIpOworKyAgICAgICAgICAgICAgIkVuY3J5cHRlZCB0
cmFja3MgYXJlIHN1cHBvcnRlZCBvbmx5IGluIFdlYk0iKTsKKyAgICAgICAgICAgcmV0ID0gR1NU
X0ZMT1dfRVJST1I7CisgICAgICAgICAgIGJyZWFrOworICAgICAgICAgfQorQEAgLTI4MTIsMTIg
KzMwMjAsMTMyIEBAIGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1vbl9yZWFkX3RyYWNrX2VuY29kaW5n
IChHc3RNYXRyb3NrYVJlYWRDb21tb24gKiBjb21tb24sCisgICAgICAgICBicmVhazsKKyAgICAg
ICB9CisgCistICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfQ09OVEVOVEVOQ1JZUFRJT046Cist
ICAgICAgICBHU1RfRVJST1JfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsCistICAgICAgICAgICAg
IkVuY3J5cHRlZCB0cmFja3Mgbm90IHlldCBzdXBwb3J0ZWQiKTsKKy0gICAgICAgIGdzdF9lYm1s
X3JlYWRfc2tpcCAoZWJtbCk7CistICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKysgICAg
ICBjYXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5URU5DUllQVElPTjp7CisrCisrICAgICAgICBE
RUJVR19FTEVNRU5UX1NUQVJUIChjb21tb24sIGVibWwsICJDb250ZW50RW5jcnlwdGlvbiIpOwor
KworKyAgICAgICAgaWYgKGVuYy50eXBlICE9IEdTVF9NQVRST1NLQV9FTkNPRElOR19FTkNSWVBU
SU9OKSB7CisrICAgICAgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAor
KyAgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgdG8gaGF2ZSBDb250ZW50IEVuY3J5cHRpb24gYmVj
YXVzZSBpdCBpc24ndCBlbmNyeXB0aW9uIHR5cGUiKTsKKysgICAgICAgICAgcmV0ID0gR1NUX0ZM
T1dfRVJST1I7CisrICAgICAgICAgIGJyZWFrOworKyAgICAgICAgfQorKworKyAgICAgICAgaWYg
KChyZXQgPSBnc3RfZWJtbF9yZWFkX21hc3RlciAoZWJtbCwgJmlkKSkgIT0gR1NUX0ZMT1dfT0sp
CisrICAgICAgICAgIGJyZWFrOworKworKyAgICAgICAgd2hpbGUgKHJldCA9PSBHU1RfRkxPV19P
SyAmJgorKyAgICAgICAgICAgIGdzdF9lYm1sX3JlYWRfaGFzX3JlbWFpbmluZyAoZWJtbCwgMSwg
VFJVRSkpIHsKKysgICAgICAgICAgaWYgKChyZXQgPSBnc3RfZWJtbF9wZWVrX2lkIChlYm1sLCAm
aWQpKSAhPSBHU1RfRkxPV19PSykKKysgICAgICAgICAgICBicmVhazsKKysKKysgICAgICAgICAg
c3dpdGNoIChpZCkgeworKyAgICAgICAgICAgIGNhc2UgR1NUX01BVFJPU0tBX0lEX0NPTlRFTlRF
TkNBTEdPOnsKKysgICAgICAgICAgICAgIGd1aW50NjQgbnVtOworKworKyAgICAgICAgICAgICAg
aWYgKChyZXQgPSBnc3RfZWJtbF9yZWFkX3VpbnQgKGVibWwsICZpZCwgJm51bSkpICE9IEdTVF9G
TE9XX09LKSB7CisrICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgfQorKwor
KyAgICAgICAgICAgICAgaWYgKG51bSA+IEdTVF9NQVRST1NLQV9UUkFDS19FTkNSWVBUSU9OX0FM
R09SSVRITV9BRVMpIHsKKysgICAgICAgICAgICAgICAgR1NUX0VSUk9SX09CSkVDVCAoY29tbW9u
LT5zaW5rcGFkLCAiSW52YWxpZCBDb250ZW50RW5jQWxnbyAlIgorKyAgICAgICAgICAgICAgICAg
ICAgR19HVUlOVDY0X0ZPUk1BVCwgbnVtKTsKKysgICAgICAgICAgICAgICAgcmV0ID0gR1NUX0ZM
T1dfRVJST1I7CisrICAgICAgICAgICAgICAgIGJyZWFrOworKyAgICAgICAgICAgICAgfQorKyAg
ICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAorKyAgICAgICAg
ICAgICAgICAgICJDb250ZW50RW5jQWxnbzogJSIgR19HVUlOVDY0X0ZPUk1BVCwgbnVtKTsKKysg
ICAgICAgICAgICAgIGVuYy5lbmNfYWxnbyA9IG51bTsKKysKKysgICAgICAgICAgICAgIGJyZWFr
OworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9DT05U
RU5URU5DQUVTU0VUVElOR1M6eworKworKyAgICAgICAgICAgICAgREVCVUdfRUxFTUVOVF9TVEFS
VCAoY29tbW9uLCBlYm1sLCAiQ29udGVudEVuY0FFU1NldHRpbmdzIik7CisrCisrICAgICAgICAg
ICAgICBpZiAoKHJldCA9IGdzdF9lYm1sX3JlYWRfbWFzdGVyIChlYm1sLCAmaWQpKSAhPSBHU1Rf
RkxPV19PSykKKysgICAgICAgICAgICAgICAgYnJlYWs7CisrCisrICAgICAgICAgICAgICB3aGls
ZSAocmV0ID09IEdTVF9GTE9XX09LICYmCisrICAgICAgICAgICAgICAgICAgZ3N0X2VibWxfcmVh
ZF9oYXNfcmVtYWluaW5nIChlYm1sLCAxLCBUUlVFKSkgeworKyAgICAgICAgICAgICAgICBpZiAo
KHJldCA9IGdzdF9lYm1sX3BlZWtfaWQgKGVibWwsICZpZCkpICE9IEdTVF9GTE9XX09LKQorKyAg
ICAgICAgICAgICAgICAgIGJyZWFrOworKworKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGlkKSB7
CisrICAgICAgICAgICAgICAgICAgY2FzZSBHU1RfTUFUUk9TS0FfSURfQUVTU0VUVElOR1NDSVBI
RVJNT0RFOnsKKysgICAgICAgICAgICAgICAgICAgIGd1aW50NjQgbnVtOworKworKyAgICAgICAg
ICAgICAgICAgICAgaWYgKChyZXQgPQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc3Rf
ZWJtbF9yZWFkX3VpbnQgKGVibWwsICZpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZudW0pKSAhPSBHU1RfRkxPV19PSykgeworKyAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKysgICAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIGlmIChudW0g
PiAzKSB7CisrICAgICAgICAgICAgICAgICAgICAgIEdTVF9FUlJPUl9PQkpFQ1QgKGNvbW1vbi0+
c2lua3BhZCwgIkludmFsaWQgQ2lwaGVyIE1vZGUgJSIKKysgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdfR1VJTlQ2NF9GT1JNQVQsIG51bSk7CisrICAgICAgICAgICAgICAgICAgICAgIHJldCA9
IEdTVF9GTE9XX0VSUk9SOworKyAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAg
ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGNv
bW1vbi0+c2lua3BhZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAiQ29udGVudEVuY0FFU1Nl
dHRpbmdzOiAlIiBHX0dVSU5UNjRfRk9STUFULCBudW0pOworKyAgICAgICAgICAgICAgICAgICAg
ZW5jLmVuY19jaXBoZXJfbW9kZSA9IG51bTsKKysgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
KyAgICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorKyAgICAg
ICAgICAgICAgICAgICAgR1NUX1dBUk5JTkdfT0JKRUNUIChjb21tb24tPnNpbmtwYWQsCisrICAg
ICAgICAgICAgICAgICAgICAgICAgIlVua25vd24gQ29udGVudEVuY0FFU1NldHRpbmdzIHN1YmVs
ZW1lbnQgMHgleCAtIGlnbm9yaW5nIiwKKysgICAgICAgICAgICAgICAgICAgICAgICBpZCk7Cisr
ICAgICAgICAgICAgICAgICAgICByZXQgPSBnc3RfZWJtbF9yZWFkX3NraXAgKGVibWwpOworKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisrICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAg
ICAgIH0KKysgICAgICAgICAgICAgIERFQlVHX0VMRU1FTlRfU1RPUCAoY29tbW9uLCBlYm1sLCAi
Q29udGVudEVuY0FFU1NldHRpbmdzIiwgcmV0KTsKKysgICAgICAgICAgICAgIGJyZWFrOworKyAg
ICAgICAgICAgIH0KKysKKysgICAgICAgICAgICBjYXNlIEdTVF9NQVRST1NLQV9JRF9DT05URU5U
RU5DS0VZSUQ6eworKyAgICAgICAgICAgICAgZ3VpbnQ4ICpkYXRhOworKyAgICAgICAgICAgICAg
Z3VpbnQ2NCBzaXplOworKyAgICAgICAgICAgICAgR3N0QnVmZmVyICprZXlJZF9idWY7CisrICAg
ICAgICAgICAgICBHc3RFdmVudCAqZXZlbnQ7CisrCisrICAgICAgICAgICAgICBpZiAoKHJldCA9
CisrICAgICAgICAgICAgICAgICAgICAgIGdzdF9lYm1sX3JlYWRfYmluYXJ5IChlYm1sLCAmaWQs
ICZkYXRhLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgJnNpemUpKSAhPSBHU1RfRkxPV19P
SykgeworKyAgICAgICAgICAgICAgICBicmVhazsKKysgICAgICAgICAgICAgIH0KKysgICAgICAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKysgICAgICAgICAgICAg
ICAgICAiQ29udGVudEVuY3J5cHQgS2V5SUQgbGVuZ3RoIDogJSIgR19HVUlOVDY0X0ZPUk1BVCwg
c2l6ZSk7CisrICAgICAgICAgICAgICBrZXlJZF9idWYgPSBnc3RfYnVmZmVyX25ld193cmFwcGVk
IChkYXRhLCBzaXplKTsKKysKKysgICAgICAgICAgICAgIC8qIFB1c2ggYW4gZXZlbnQgY29udGFp
bmluZyB0aGUgS2V5IElEIGludG8gdGhlIHF1ZXVlcyBvZiBhbGwgc3RyZWFtcy4gKi8KKysgICAg
ICAgICAgICAgIC8qIHN5c3RlbV9pZCBmaWVsZCBpcyBzZXQgdG8gR1NUX1BST1RFQ1RJT05fVU5T
UEVDSUZJRURfU1lTVEVNX0lEIGJlY2F1c2UgaXQgaXNuJ3Qgc3BlY2lmaWVkIG5laXRoZXIgaW4g
V2ViTSBub3IgaW4gTWF0cm9za2Egc3BlYy4gKi8KKysgICAgICAgICAgICAgIGV2ZW50ID0KKysg
ICAgICAgICAgICAgICAgICBnc3RfZXZlbnRfbmV3X3Byb3RlY3Rpb24KKysgICAgICAgICAgICAg
ICAgICAoR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVNX0lELCBrZXlJZF9idWYsCisr
ICAgICAgICAgICAgICAgICAgIm1hdHJvc2thZGVtdXgiKTsKKysgICAgICAgICAgICAgIEdTVF9U
UkFDRV9PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKysgICAgICAgICAgICAgICAgICAiYWRkaW5n
IHByb3RlY3Rpb24gZXZlbnQgZm9yIHN0cmVhbSAlZCIsIGNvbnRleHQtPmluZGV4KTsKKysgICAg
ICAgICAgICAgIGdfcXVldWVfcHVzaF90YWlsICgmY29udGV4dC0+cHJvdGVjdGlvbl9ldmVudF9x
dWV1ZSwgZXZlbnQpOworKworKyAgICAgICAgICAgICAgY29udGV4dC0+cHJvdGVjdGlvbl9pbmZv
ID0KKysgICAgICAgICAgICAgICAgICBnc3Rfc3RydWN0dXJlX25ldyAoImFwcGxpY2F0aW9uL3gt
Y2VuYyIsICJpdl9zaXplIiwKKysgICAgICAgICAgICAgICAgICBHX1RZUEVfVUlOVCwgOCwgImVu
Y3J5cHRlZCIsIEdfVFlQRV9CT09MRUFOLCBUUlVFLCAia2lkIiwKKysgICAgICAgICAgICAgICAg
ICBHU1RfVFlQRV9CVUZGRVIsIGtleUlkX2J1ZiwgTlVMTCk7CisrCisrICAgICAgICAgICAgICBn
c3RfYnVmZmVyX3VucmVmIChrZXlJZF9idWYpOworKyAgICAgICAgICAgICAgYnJlYWs7CisrICAg
ICAgICAgICAgfQorKyAgICAgICAgICAgIGRlZmF1bHQ6CisrICAgICAgICAgICAgICBHU1RfV0FS
TklOR19PQkpFQ1QgKGNvbW1vbi0+c2lua3BhZCwKKysgICAgICAgICAgICAgICAgICAiVW5rbm93
biBDb250ZW50RW5jcnlwdGlvbiBzdWJlbGVtZW50IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKKysg
ICAgICAgICAgICAgIHJldCA9IGdzdF9lYm1sX3JlYWRfc2tpcCAoZWJtbCk7CisrICAgICAgICAg
ICAgICBicmVhazsKKysgICAgICAgICAgfQorKyAgICAgICAgfQorKyAgICAgICAgREVCVUdfRUxF
TUVOVF9TVE9QIChjb21tb24sIGVibWwsICJDb250ZW50RW5jcnlwdGlvbiIsIHJldCk7CisgICAg
ICAgICBicmVhazsKKysgICAgICB9CisgICAgICAgZGVmYXVsdDoKKyAgICAgICAgIEdTVF9XQVJO
SU5HX09CSkVDVCAoY29tbW9uLT5zaW5rcGFkLAorICAgICAgICAgICAgICJVbmtub3duIENvbnRl
bnRFbmNvZGluZyBzdWJlbGVtZW50IDB4JXggLSBpZ25vcmluZyIsIGlkKTsKK2RpZmYgLS1naXQg
YS9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uaCBiL2dzdC9tYXRyb3NrYS9tYXRy
b3NrYS1yZWFkLWNvbW1vbi5oCitpbmRleCBhNjI4MmQ2OTguLmUzM2VmOGVmNCAxMDA2NDQKKy0t
LSBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1yZWFkLWNvbW1vbi5oCisrKysgYi9nc3QvbWF0cm9z
a2EvbWF0cm9za2EtcmVhZC1jb21tb24uaAorQEAgLTEyMCw2ICsxMjAsOSBAQCB0eXBlZGVmIHN0
cnVjdCBfR3N0TWF0cm9za2FSZWFkQ29tbW9uIHsKKyBHc3RGbG93UmV0dXJuIGdzdF9tYXRyb3Nr
YV9kZWNvZGVfY29udGVudF9lbmNvZGluZ3MgKEdBcnJheSAqIGVuY29kaW5ncyk7CisgZ2Jvb2xl
YW4gZ3N0X21hdHJvc2thX2RlY29kZV9kYXRhIChHQXJyYXkgKiBlbmNvZGluZ3MsIGdwb2ludGVy
ICogZGF0YV9vdXQsCisgICAgIGdzaXplICogc2l6ZV9vdXQsIEdzdE1hdHJvc2thVHJhY2tFbmNv
ZGluZ1Njb3BlIHNjb3BlLCBnYm9vbGVhbiBmcmVlKTsKKytnYm9vbGVhbgorK2dzdF9tYXRyb3Nr
YV9wYXJzZV9wcm90ZWN0aW9uX21ldGEgKGdwb2ludGVyICogZGF0YV9vdXQsIGdzaXplICogc2l6
ZV9vdXQsCisrICAgIEdzdFN0cnVjdHVyZSAqIGluZm9fcHJvdGVjdCwgZ2Jvb2xlYW4gKiBlbmNy
eXB0ZWQpOworIGdpbnQgZ3N0X21hdHJvc2thX2luZGV4X3NlZWtfZmluZCAoR3N0TWF0cm9za2FJ
bmRleCAqIGkxLCBHc3RDbG9ja1RpbWUgKiB0aW1lLAorICAgICBncG9pbnRlciB1c2VyX2RhdGEp
OworIEdzdE1hdHJvc2thSW5kZXggKiBnc3RfbWF0cm9za2FfcmVhZF9jb21tb25fZG9faW5kZXhf
c2VlayAoCistLSAKKzIuMTUuMAorCmRpZmYgLS1naXQgYS9Ub29scy9nc3RyZWFtZXIvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1nb29kLTAwMTItbWF0cm9za2RlbXV4LWRvLW5vdC11c2UtTWFwSW5mby5k
YXRhLWFmdGVyLXVubWFwcGluZy5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtMDAxMi1tYXRyb3NrZGVtdXgtZG8tbm90LXVzZS1NYXBJbmZvLmRhdGEtYWZ0
ZXItdW5tYXBwaW5nLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMGY0OGRjMDE5MDQ2ZmE5N2I1MWFlZmE1
MmM2ODQwNTgyYmRlNTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9nc3RyZWFtZXIvcGF0Y2hl
cy9nc3QtcGx1Z2lucy1nb29kLTAwMTItbWF0cm9za2RlbXV4LWRvLW5vdC11c2UtTWFwSW5mby5k
YXRhLWFmdGVyLXVubWFwcGluZy5wYXRjaApAQCAtMCwwICsxLDEwOCBAQAorRnJvbSBkZWZhZTM1
MDM1ODY2MGU1NTdjNzRlNDFhNGZlOGE4YmIzMjdlOWM4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw
MQorRnJvbTogVGhpYmF1bHQgU2F1bmllciA8dHNhdW5pZXJAaWdhbGlhLmNvbT4KK0RhdGU6IFdl
ZCwgMyBPY3QgMjAxOCAxNzozNDo0OSArMDIwMAorU3ViamVjdDogW1BBVENIXSBtYXRyb3NrZGVt
dXg6IGRvIG5vdCB1c2UgTWFwSW5mby5kYXRhIGFmdGVyIHVubWFwcGluZworCitBbmQgbWlub3Ig
Z3N0LWluZGVudGluZworLS0tCisgZ3N0L21hdHJvc2thL21hdHJvc2thLWRlbXV4LmMgICAgICAg
fCAyMiArKysrKysrKysrKysrLS0tLS0tLS0tCisgZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQt
Y29tbW9uLmMgfCAgNiArKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyks
IDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVt
dXguYyBiL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCitpbmRleCAxZWY3YjQyY2MuLmI2
NzExMmNjNiAxMDA2NDQKKy0tLSBhL2dzdC9tYXRyb3NrYS9tYXRyb3NrYS1kZW11eC5jCisrKysg
Yi9nc3QvbWF0cm9za2EvbWF0cm9za2EtZGVtdXguYworQEAgLTM3NiwxMCArMzc2LDEyIEBAIGdz
dF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIGNvbnRl
eHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAKKyAgIGlmIChnc3RfbWF0cm9za2FfZGVjb2RlX2RhdGEg
KGNvbnRleHQtPmVuY29kaW5ncywgJmRhdGEsICZzaXplLAorICAgICAgICAgICBHU1RfTUFUUk9T
S0FfVFJBQ0tfRU5DT0RJTkdfU0NPUEVfRlJBTUUsIEZBTFNFKSkgeworLSAgICBnc3RfYnVmZmVy
X3VubWFwIChvdXRfYnVmLCAmbWFwKTsKKyAgICAgaWYgKGRhdGEgIT0gbWFwLmRhdGEpIHsKKysg
ICAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKKyAgICAgICBnc3RfYnVmZmVy
X3VucmVmIChvdXRfYnVmKTsKKyAgICAgICBvdXRfYnVmID0gZ3N0X2J1ZmZlcl9uZXdfd3JhcHBl
ZCAoZGF0YSwgc2l6ZSk7CisrICAgIH0gZWxzZSB7CisrICAgICAgZ3N0X2J1ZmZlcl91bm1hcCAo
b3V0X2J1ZiwgJm1hcCk7CisgICAgIH0KKyAgIH0gZWxzZSB7CisgICAgIEdTVF9ERUJVRyAoImRl
Y29kZSBkYXRhIGZhaWxlZCIpOworQEAgLTM5OSwxMSArNDAxLDEyIEBAIGdzdF9tYXRyb3NrYV9k
ZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNrQ29udGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZl
ciAqIGJ1ZikKKyAKKyAgICAgaWYgKGdzdF9tYXRyb3NrYV9wYXJzZV9wcm90ZWN0aW9uX21ldGEg
KCZkYXRhLCAmc2l6ZSwgaW5mb19wcm90ZWN0LAorICAgICAgICAgICAgICZlbmNyeXB0ZWQpKSB7
CistICAgICAgZ3N0X2J1ZmZlcl91bm1hcCAob3V0X2J1ZiwgJm1hcCk7CisgICAgICAgaWYgKGRh
dGEgIT0gbWFwLmRhdGEpIHsKKy0gICAgICAgIEdzdEJ1ZmZlciAqdG1wX2J1ZiA9IG91dF9idWY7
CistICAgICAgICBvdXRfYnVmID0KKy0gICAgICAgICAgICBnc3RfYnVmZmVyX2NvcHlfcmVnaW9u
ICh0bXBfYnVmLCBHU1RfQlVGRkVSX0NPUFlfQUxMLAorKyAgICAgICAgR3N0QnVmZmVyICp0bXBf
YnVmOworKworKyAgICAgICAgZ3N0X2J1ZmZlcl91bm1hcCAob3V0X2J1ZiwgJm1hcCk7CisrICAg
ICAgICB0bXBfYnVmID0gb3V0X2J1ZjsKKysgICAgICAgIG91dF9idWYgPSBnc3RfYnVmZmVyX2Nv
cHlfcmVnaW9uICh0bXBfYnVmLCBHU1RfQlVGRkVSX0NPUFlfQUxMLAorICAgICAgICAgICAgIGdz
dF9idWZmZXJfZ2V0X3NpemUgKHRtcF9idWYpIC0gc2l6ZSwgc2l6ZSk7CisgICAgICAgICBnc3Rf
YnVmZmVyX3VucmVmICh0bXBfYnVmKTsKKyAgICAgICAgIGlmIChlbmNyeXB0ZWQpCitAQCAtNDEx
LDYgKzQxNCw3IEBAIGdzdF9tYXRyb3NrYV9kZWNvZGVfYnVmZmVyIChHc3RNYXRyb3NrYVRyYWNr
Q29udGV4dCAqIGNvbnRleHQsIEdzdEJ1ZmZlciAqIGJ1ZikKKyAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgZ3N0X3N0cnVjdHVyZV9mcmVlIChpbmZvX3Byb3RlY3QpOworICAgICAgIH0gZWxzZSB7
CisrICAgICAgICBnc3RfYnVmZmVyX3VubWFwIChvdXRfYnVmLCAmbWFwKTsKKyAgICAgICAgIGdz
dF9zdHJ1Y3R1cmVfZnJlZSAoaW5mb19wcm90ZWN0KTsKKyAgICAgICB9CisgICAgIH0gZWxzZSB7
CitAQCAtMjcwNSwxMCArMjcwOSwxMCBAQCBnc3RfbWF0cm9za2FfZGVtdXhfaGFuZGxlX3NlZWtf
ZXZlbnQgKEdzdE1hdHJvc2thRGVtdXggKiBkZW11eCwKKyAgICAqIHdvdWxkIGJlIGRldGVybWlu
ZWQgYWdhaW4gd2hlbiBwYXJzaW5nLCBidXQgYW55d2F5IC4uLiAqLworICAgc2Vla3NlZ21lbnQu
ZHVyYXRpb24gPSBkZW11eC0+Y29tbW9uLnNlZ21lbnQuZHVyYXRpb247CisgCistICBmbHVzaCA9
ICEgIShmbGFncyAmIEdTVF9TRUVLX0ZMQUdfRkxVU0gpOworLSAga2V5dW5pdCA9ICEgIShmbGFn
cyAmIEdTVF9TRUVLX0ZMQUdfS0VZX1VOSVQpOworLSAgYWZ0ZXIgPSAhICEoZmxhZ3MgJiBHU1Rf
U0VFS19GTEFHX1NOQVBfQUZURVIpOworLSAgYmVmb3JlID0gISAhKGZsYWdzICYgR1NUX1NFRUtf
RkxBR19TTkFQX0JFRk9SRSk7CisrICBmbHVzaCA9ICEhKGZsYWdzICYgR1NUX1NFRUtfRkxBR19G
TFVTSCk7CisrICBrZXl1bml0ID0gISEoZmxhZ3MgJiBHU1RfU0VFS19GTEFHX0tFWV9VTklUKTsK
KysgIGFmdGVyID0gISEoZmxhZ3MgJiBHU1RfU0VFS19GTEFHX1NOQVBfQUZURVIpOworKyAgYmVm
b3JlID0gISEoZmxhZ3MgJiBHU1RfU0VFS19GTEFHX1NOQVBfQkVGT1JFKTsKKyAKKyAgIC8qIGFs
d2F5cyBkbyBmdWxsIHVwZGF0ZSBpZiBmbHVzaGluZywKKyAgICAqIG90aGVyd2lzZSBwcm9ibGVt
cyBtaWdodCBhcmlzZSBkb3duc3RyZWFtIHdpdGggbWlzc2luZyBrZXlmcmFtZXMgZXRjICovCitk
aWZmIC0tZ2l0IGEvZ3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMgYi9nc3QvbWF0
cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYworaW5kZXggZmZiMzkzYmY5Li4xMjA4NTUwM2Eg
MTAwNjQ0CistLS0gYS9nc3QvbWF0cm9za2EvbWF0cm9za2EtcmVhZC1jb21tb24uYworKysrIGIv
Z3N0L21hdHJvc2thL21hdHJvc2thLXJlYWQtY29tbW9uLmMKK0BAIC0yMDQzLDYgKzIwNDMsOCBA
QCBnc3RfbWF0cm9za2FfcmVhZF9jb21tb25fcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyAo
R3N0TWF0cm9za2FSZWFkQ29tbW9uICoKKyAgICAgY29uc3QgZ2NoYXIgKm1hdHJvc2thX3RhZ25h
bWU7CisgICAgIGNvbnN0IGdjaGFyICpnc3RyZWFtZXJfdGFnbmFtZTsKKyAgIH0KKysKKysgIC8q
ICpJTkRFTlQtT0ZGKiAqLworICAgdGFnX2NvbnZbXSA9IHsKKyAgICAgeworICAgICAgIC8qIFRo
ZSBmb2xsb3dpbmcgbGlzdCBoYXMgdGhlIF9zYW1lXyBvcmRlciBhcyB0aGUgb25lIGluIE1hdHJv
c2thIHNwZWMuIFBsZWFzZSwgZG9uJ3QgbWVzcyBpdCB1cC4gKi8KK0BAIC0yMTc3LDExICsyMTc5
LDE0IEBAIGdzdF9tYXRyb3NrYV9yZWFkX2NvbW1vbl9wYXJzZV9tZXRhZGF0YV9pZF9zaW1wbGVf
dGFnIChHc3RNYXRyb3NrYVJlYWRDb21tb24gKgorICAgICBHU1RfTUFUUk9TS0FfVEFHX0lEX0xJ
Q0VOU0UsIEdTVF9UQUdfTElDRU5TRX0sIHsgICAgLyogVGhlIGxpY2Vuc2UgYXBwbGllZCB0byB0
aGUgY29udGVudCAobGlrZSBDcmVhdGl2ZSBDb21tb25zIHZhcmlhbnRzKS4gKi8KKyAgICAgR1NU
X01BVFJPU0tBX1RBR19JRF9URVJNU19PRl9VU0UsIEdTVF9UQUdfTElDRU5TRX0KKyAgIH07Cisr
ICAvKiAqSU5ERU5ULU9OKiAqLworICAgc3RhdGljIGNvbnN0IHN0cnVjdAorICAgeworICAgICBj
b25zdCBnY2hhciAqbWF0cm9za2FfdGFnbmFtZTsKKyAgICAgY29uc3QgZ2NoYXIgKmdzdHJlYW1l
cl90YWduYW1lOworICAgfQorKworKyAgLyogKklOREVOVC1PRkYqICovCisgICBjaGlsZF90YWdf
Y29udltdID0geworICAgICB7CisgICAgICJUSVRMRS9TT1JUX1dJVEg9IiwgR1NUX1RBR19USVRM
RV9TT1JUTkFNRX0sIHsKK0BAIC0yMTk4LDYgKzIyMDMsNyBAQCBnc3RfbWF0cm9za2FfcmVhZF9j
b21tb25fcGFyc2VfbWV0YWRhdGFfaWRfc2ltcGxlX3RhZyAoR3N0TWF0cm9za2FSZWFkQ29tbW9u
ICoKKyAgICAgIkxJQ0VOU0UvVVJMPSIsIEdTVF9UQUdfTElDRU5TRV9VUkl9LCB7CisgICAgICJM
SUNFTlNFL1VSTD0iLCBHU1RfVEFHX0xJQ0VOU0VfVVJJfQorICAgfTsKKysgIC8qICpJTkRFTlQt
T04qICovCisgICBHc3RGbG93UmV0dXJuIHJldDsKKyAgIGd1aW50MzIgaWQ7CisgICBnY2hhciAq
dmFsdWUgPSBOVUxMOworLS0gCisyLjE1LjAKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvZ3N0cmVhbWVy
L3BhdGNoZXMvZ3N0cmVhbWVyLTAwMDEtcHJvdGVjdGlvbi1BZGQtYS1uZXctZGVmaW5pdGlvbi1m
b3ItdW5zcGVjaWZpZWQtc3lzdC5wYXRjaCBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdHJl
YW1lci0wMDAxLXByb3RlY3Rpb24tQWRkLWEtbmV3LWRlZmluaXRpb24tZm9yLXVuc3BlY2lmaWVk
LXN5c3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjI4ODQ0YzQ2NTNmNmM0OTVkNzRiODg5ZjYzZDE5NTFk
M2YyZmFiZQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdHJl
YW1lci0wMDAxLXByb3RlY3Rpb24tQWRkLWEtbmV3LWRlZmluaXRpb24tZm9yLXVuc3BlY2lmaWVk
LXN5c3QucGF0Y2gKQEAgLTAsMCArMSw2NiBAQAorRnJvbSAwNWEzZGEzNDdiM2I4ZGJhZjQ3MDc5
M2RjM2Y5ZWJiMjNlNmZjNjdmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWWFjaW5l
IEJhbmRvdSA8eWFjaW5lLmJhbmRvdUBzb2Z0YXRob21lLmNvbT4KK0RhdGU6IE1vbiwgMSBPY3Qg
MjAxOCAxMjoxMTo0NyArMDIwMAorU3ViamVjdDogW1BBVENIIDEvMl0gcHJvdGVjdGlvbjogQWRk
IGEgbmV3IGRlZmluaXRpb24gZm9yIHVuc3BlY2lmaWVkIHN5c3RlbQorIHByb3RlY3Rpb24KKwor
SW4gc29tZSBjYXNlcyB0aGUgc3lzdGVtIHByb3RlY3Rpb24gSUQgaXMgbm90IHByZXNlbnQgaW4g
dGhlIGNvbnRlbnRzCitvciBpbiB0aGVpciBtZXRhZGF0YS4KK1RoaXMgZGVmaW5lIGlzIHVzZWQg
dG8gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgInN5c3RlbV9pZCIgZmllbGQgaW4gR3N0UHJvdGVjdGlv
bkV2ZW50LAord2l0aCB0aGlzIHZhbHVlLCB0aGUgYXBwbGljYXRpb24gd2lsbCB1c2UgYW4gZXh0
ZXJuYWwgaW5mb3JtYXRpb24gdG8gY2hvb3NlIHdoaWNoCitwcm90ZWN0aW9uIHN5c3RlbSB0byB1
c2UuCisKK0V4YW1wbGU6IFRoZSBtYXRyb3NrYWRlbXV4IHVzZXMgdGhpcyB2YWx1ZSBpbiB0aGUg
Y2FzZSBvZiBlbmNyeXB0ZWQgV2ViTSwKK3RoZSBhcHBsaWNhdGlvbiB3aWxsIGNob29zZSB0aGUg
YXBwcm9wcmlhdGUgcHJvdGVjdGlvbiBzeXN0ZW0gYmFzZWQgb24gdGhlIGluZm9ybWF0aW9uCity
ZWNlaXZlZCB0aHJvdWdoIEVNRSBBUEkuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3No
b3dfYnVnLmNnaT9pZD03OTcyMzEKKy0tLQorIGRvY3MvZ3N0L2dzdHJlYW1lci1zZWN0aW9ucy50
eHQgfCAgMSArCisgZ3N0L2dzdHByb3RlY3Rpb24uaCAgICAgICAgICAgICB8IDE4ICsrKysrKysr
KysrKysrKysrKworIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0t
Z2l0IGEvZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dCBiL2RvY3MvZ3N0L2dzdHJlYW1l
ci1zZWN0aW9ucy50eHQKK2luZGV4IDQ5MmM0ZDU5Mi4uZWNjNmIwNGU1IDEwMDY0NAorLS0tIGEv
ZG9jcy9nc3QvZ3N0cmVhbWVyLXNlY3Rpb25zLnR4dAorKysrIGIvZG9jcy9nc3QvZ3N0cmVhbWVy
LXNlY3Rpb25zLnR4dAorQEAgLTI1MDYsNiArMjUwNiw3IEBAIGdzdF9idWZmZXJfZ2V0X3Byb3Rl
Y3Rpb25fbWV0YQorIGdzdF9wcm90ZWN0aW9uX3NlbGVjdF9zeXN0ZW0KKyBnc3RfcHJvdGVjdGlv
bl9maWx0ZXJfc3lzdGVtc19ieV9hdmFpbGFibGVfZGVjcnlwdG9ycworIEdTVF9QUk9URUNUSU9O
X1NZU1RFTV9JRF9DQVBTX0ZJRUxECisrR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVN
X0lECisgPFNVQlNFQ1RJT04gU3RhbmRhcmQ+CisgR1NUX1BST1RFQ1RJT05fTUVUQV9BUElfVFlQ
RQorIEdTVF9QUk9URUNUSU9OX01FVEFfSU5GTworZGlmZiAtLWdpdCBhL2dzdC9nc3Rwcm90ZWN0
aW9uLmggYi9nc3QvZ3N0cHJvdGVjdGlvbi5oCitpbmRleCBhNzY2OWVhYjMuLjBlZDg3ZTQyNyAx
MDA2NDQKKy0tLSBhL2dzdC9nc3Rwcm90ZWN0aW9uLmgKKysrKyBiL2dzdC9nc3Rwcm90ZWN0aW9u
LmgKK0BAIC0zNCw2ICszNCwyNCBAQCBHX0JFR0lOX0RFQ0xTCisgICovCisgI2RlZmluZSBHU1Rf
UFJPVEVDVElPTl9TWVNURU1fSURfQ0FQU19GSUVMRCAicHJvdGVjdGlvbi1zeXN0ZW0iCisgCisr
LyoqCisrICogR1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVNX0lEOgorKyAqCisrICog
VGhlIHByb3RlY3Rpb24gc3lzdGVtIHZhbHVlIG9mIHRoZSB1bnNwZWNpZmllZCBVVUlELgorKyAq
IEluIHNvbWUgY2FzZXMgdGhlIHN5c3RlbSBwcm90ZWN0aW9uIElEIGlzIG5vdCBwcmVzZW50IGlu
IHRoZSBjb250ZW50cyBvciBpbiB0aGVpcgorKyAqIG1ldGFkYXRhLCBhcyBlbmNyeXB0ZWQgV2Vi
TS4KKysgKiBUaGlzIGRlZmluZSBpcyB1c2VkIHRvIHNldCB0aGUgdmFsdWUgb2YgdGhlICJzeXN0
ZW1faWQiIGZpZWxkIGluIEdzdFByb3RlY3Rpb25FdmVudCwKKysgKiB3aXRoIHRoaXMgdmFsdWUs
IHRoZSBhcHBsaWNhdGlvbiB3aWxsIHVzZSBhbiBleHRlcm5hbCBpbmZvcm1hdGlvbiB0byBjaG9v
c2Ugd2hpY2gKKysgKiBwcm90ZWN0aW9uIHN5c3RlbSB0byB1c2UuCisrICoKKysgKiBFeGFtcGxl
OiBUaGUgbWF0cm9za2FkZW11eCB1c2VzIHRoaXMgdmFsdWUgaW4gdGhlIGNhc2Ugb2YgZW5jcnlw
dGVkIFdlYk0sCisrICogdGhlIGFwcGxpY2F0aW9uIHdpbGwgY2hvb3NlIHRoZSBhcHByb3ByaWF0
ZSBwcm90ZWN0aW9uIHN5c3RlbSBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24KKysgKiByZWNlaXZl
ZCB0aHJvdWdoIEVNRSBBUEkuCisrICoKKysgKiBTaW5jZTogMS4xNgorKyAqLworKyNkZWZpbmUg
R1NUX1BST1RFQ1RJT05fVU5TUEVDSUZJRURfU1lTVEVNX0lEICJ1bnNwZWNpZmllZC5nc3RyZWFt
ZXIub3JnIgorKworIHR5cGVkZWYgc3RydWN0IF9Hc3RQcm90ZWN0aW9uTWV0YSBHc3RQcm90ZWN0
aW9uTWV0YTsKKyAvKioKKyAgKiBHc3RQcm90ZWN0aW9uTWV0YToKKy0tIAorMi4xNS4wCisKZGlm
ZiAtLWdpdCBhL1Rvb2xzL2dzdHJlYW1lci9wYXRjaGVzL2dzdHJlYW1lci0wMDAyLXByb3RlY3Rp
b24tRml4LXRoZS1zdHJpbmctdG8tZGVmaW5lLXVuc3BlY2lmaWVkLXN5c3QucGF0Y2ggYi9Ub29s
cy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMi1wcm90ZWN0aW9uLUZpeC10aGUtc3Ry
aW5nLXRvLWRlZmluZS11bnNwZWNpZmllZC1zeXN0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzMzQ4Yzky
ZDg4ZDI2MjEyYjAxMTViMTBlZDcxOTIxY2I3ZDkxYzEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9nc3RyZWFtZXIvcGF0Y2hlcy9nc3RyZWFtZXItMDAwMi1wcm90ZWN0aW9uLUZpeC10aGUtc3Ry
aW5nLXRvLWRlZmluZS11bnNwZWNpZmllZC1zeXN0LnBhdGNoCkBAIC0wLDAgKzEsMjcgQEAKK0Zy
b20gYjg5YjE4MDJkZjQ0ODI5YTBjMDM0ZGI1ODA3YmM4OTNhZDNjNzc3NCBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKK0Zyb206IFRoaWJhdWx0IFNhdW5pZXIgPHRzYXVuaWVyQGlnYWxpYS5jb20+
CitEYXRlOiBXZWQsIDMgT2N0IDIwMTggMTg6MjM6MDEgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSCAy
LzJdIHByb3RlY3Rpb246IEZpeCB0aGUgc3RyaW5nIHRvIGRlZmluZSB1bnNwZWNpZmllZCBzeXN0
ZW0KKyBpZAorCitTZXR0aW5nIGl0IHRvICJ1bnNwZWNpZmllZC1zeXN0ZW0taWQiLgorLS0tCisg
Z3N0L2dzdHByb3RlY3Rpb24uaCB8IDIgKy0KKyAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o
KyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL2dzdC9nc3Rwcm90ZWN0aW9uLmggYi9n
c3QvZ3N0cHJvdGVjdGlvbi5oCitpbmRleCAwZWQ4N2U0MjcuLmY3N2E3YmY5NyAxMDA2NDQKKy0t
LSBhL2dzdC9nc3Rwcm90ZWN0aW9uLmgKKysrKyBiL2dzdC9nc3Rwcm90ZWN0aW9uLmgKK0BAIC01
MCw3ICs1MCw3IEBAIEdfQkVHSU5fREVDTFMKKyAgKgorICAqIFNpbmNlOiAxLjE2CisgICovCist
I2RlZmluZSBHU1RfUFJPVEVDVElPTl9VTlNQRUNJRklFRF9TWVNURU1fSUQgInVuc3BlY2lmaWVk
LmdzdHJlYW1lci5vcmciCisrI2RlZmluZSBHU1RfUFJPVEVDVElPTl9VTlNQRUNJRklFRF9TWVNU
RU1fSUQgInVuc3BlY2lmaWVkLXN5c3RlbS1pZCIKKyAKKyB0eXBlZGVmIHN0cnVjdCBfR3N0UHJv
dGVjdGlvbk1ldGEgR3N0UHJvdGVjdGlvbk1ldGE7CisgLyoqCistLSAKKzIuMTUuMAorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>