<?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>82009</bug_id>
          
          <creation_ts>2012-03-22 20:55:16 -0700</creation_ts>
          <short_desc>[Shadow DOM] Introduce ComposedShadowTreeWalker as a successor of ReifiedTreeTraversal APIs</short_desc>
          <delta_ts>2012-04-02 02:55:22 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>78585</blocked>
    
    <blocked>82694</blocked>
    
    <blocked>82696</blocked>
    
    <blocked>82702</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>gustavo</cc>
    
    <cc>morrita</cc>
    
    <cc>pnormand</cc>
    
    <cc>rakuco</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>586052</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-22 20:55:16 -0700</bug_when>
    <thetext>See the comment on https://bugs.webkit.org/show_bug.cgi?id=79197#c35.

It might be better to rewrite Reified tree traversal APIs using cursor pattern instead of stateless static function pattern.
Let me implement a cursor pattern version here and compare both versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586229</commentid>
    <comment_count>1</comment_count>
      <attachid>133460</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-23 04:38:24 -0700</bug_when>
    <thetext>Created attachment 133460
WIP. concept of walker. Not tested yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589851</commentid>
    <comment_count>2</comment_count>
      <attachid>134267</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-28 04:51:09 -0700</bug_when>
    <thetext>Created attachment 134267
let me knwo required symbols on windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589856</commentid>
    <comment_count>3</comment_count>
      <attachid>134267</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-28 05:08:49 -0700</bug_when>
    <thetext>Comment on attachment 134267
let me knwo required symbols on windows

Attachment 134267 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/12147000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589858</commentid>
    <comment_count>4</comment_count>
      <attachid>134267</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-28 05:09:43 -0700</bug_when>
    <thetext>Comment on attachment 134267
let me knwo required symbols on windows

Attachment 134267 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12146999</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589859</commentid>
    <comment_count>5</comment_count>
      <attachid>134267</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-03-28 05:11:04 -0700</bug_when>
    <thetext>Comment on attachment 134267
let me knwo required symbols on windows

Attachment 134267 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/12155095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589860</commentid>
    <comment_count>6</comment_count>
      <attachid>134267</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-28 05:13:39 -0700</bug_when>
    <thetext>Comment on attachment 134267
let me knwo required symbols on windows

Attachment 134267 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12154103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589861</commentid>
    <comment_count>7</comment_count>
      <attachid>134267</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-03-28 05:13:47 -0700</bug_when>
    <thetext>Comment on attachment 134267
let me knwo required symbols on windows

Attachment 134267 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/12155096</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589864</commentid>
    <comment_count>8</comment_count>
      <attachid>134267</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-28 05:16:27 -0700</bug_when>
    <thetext>Comment on attachment 134267
let me knwo required symbols on windows

Attachment 134267 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12153144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589865</commentid>
    <comment_count>9</comment_count>
      <attachid>134267</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-28 05:18:24 -0700</bug_when>
    <thetext>Comment on attachment 134267
let me knwo required symbols on windows

Attachment 134267 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12154104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590022</commentid>
    <comment_count>10</comment_count>
      <attachid>134267</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-28 09:13:42 -0700</bug_when>
    <thetext>Comment on attachment 134267
let me knwo required symbols on windows

While you&apos;re still working on this, I have another bikeshedding suggestion for the name. We need to mention &quot;Shadow DOM&quot; here somewhere. Soo... I thought about this and have this new name... Please don&apos;t shoot me! ... It&apos;s &quot;ComposedShadowTreeWalker&quot;.  What do you think? Please feel free to reject the suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590756</commentid>
    <comment_count>11</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-28 19:14:29 -0700</bug_when>
    <thetext>lol. I don&apos;t have a strong opinion. Either is okay.
ComposedShadowTreeWalker is long, but more intuitive.
In general, I prefer a long intuitive name to a short non-intuitive name. So let&apos;s use ComposedShadowTreeWalker from now if no one objects to it. It&apos;s not too late.

(In reply to comment #10)
&gt; (From update of attachment 134267 [details])
&gt; While you&apos;re still working on this, I have another bikeshedding suggestion for the name. We need to mention &quot;Shadow DOM&quot; here somewhere. Soo... I thought about this and have this new name... Please don&apos;t shoot me! ... It&apos;s &quot;ComposedShadowTreeWalker&quot;.  What do you think? Please feel free to reject the suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591877</commentid>
    <comment_count>12</comment_count>
      <attachid>134725</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-29 22:21:27 -0700</bug_when>
    <thetext>Created attachment 134725
give me necesarry symbols</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591897</commentid>
    <comment_count>13</comment_count>
      <attachid>134725</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-03-29 23:27:00 -0700</bug_when>
    <thetext>Comment on attachment 134725
give me necesarry symbols

Attachment 134725 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/12288056</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591904</commentid>
    <comment_count>14</comment_count>
      <attachid>134725</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-29 23:32:55 -0700</bug_when>
    <thetext>Comment on attachment 134725
give me necesarry symbols

Attachment 134725 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12262081</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591912</commentid>
    <comment_count>15</comment_count>
      <attachid>134735</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-29 23:59:49 -0700</bug_when>
    <thetext>Created attachment 134735
add symbols</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591933</commentid>
    <comment_count>16</comment_count>
      <attachid>134739</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-03-30 00:40:47 -0700</bug_when>
    <thetext>Created attachment 134739
ready for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592202</commentid>
    <comment_count>17</comment_count>
      <attachid>134739</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-03-30 09:11:18 -0700</bug_when>
    <thetext>Comment on attachment 134739
ready for review

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

This is sooo much more elegant. Thank you for doing this! A few tweaks before you land:

&gt; Source/WebCore/dom/ComposedShadowTreeWalker.cpp:45
&gt; +#ifndef NDEBUG
&gt; +#define ASSERT_PRECONDITION() assertPrecondition()
&gt; +#else
&gt; +#define ASSERT_PRECONDITION()
&gt; +#endif
&gt; +
&gt; +#ifndef NDEBUG
&gt; +#define ASSERT_POSTCONDITION() assertPostcondition()
&gt; +#else
&gt; +#define ASSERT_POSTCONDITION()
&gt; +#endif

The WebKit typical approach here is to declare these as empty inline-in-header functions for #ifdef NDEBUG.

&gt; Source/WebCore/dom/ComposedShadowTreeWalker.cpp:77
&gt; +ComposedShadowTreeWalker ComposedShadowTreeWalker::startedWithFirstChild(const Node* node, Policy policy)

I think just fromFirstChild is nicer.

&gt; Source/WebCore/dom/ComposedShadowTreeWalker.h:61
&gt; +    void nextNode();
&gt; +    void previousNode();

These can just be next and previous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593131</commentid>
    <comment_count>18</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-04-01 19:17:04 -0700</bug_when>
    <thetext>Thank you for the review.
Let me land this patch after I address your comments.

(In reply to comment #17)
&gt; (From update of attachment 134739 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=134739&amp;action=review
&gt; 
&gt; This is sooo much more elegant. Thank you for doing this! A few tweaks before you land:
&gt; 
&gt; &gt; Source/WebCore/dom/ComposedShadowTreeWalker.cpp:45
&gt; &gt; +#ifndef NDEBUG
&gt; &gt; +#define ASSERT_PRECONDITION() assertPrecondition()
&gt; &gt; +#else
&gt; &gt; +#define ASSERT_PRECONDITION()
&gt; &gt; +#endif
&gt; &gt; +
&gt; &gt; +#ifndef NDEBUG
&gt; &gt; +#define ASSERT_POSTCONDITION() assertPostcondition()
&gt; &gt; +#else
&gt; &gt; +#define ASSERT_POSTCONDITION()
&gt; &gt; +#endif
&gt; 
&gt; The WebKit typical approach here is to declare these as empty inline-in-header functions for #ifdef NDEBUG.

Okay. I&apos;ll move these to headers.

&gt; 
&gt; &gt; Source/WebCore/dom/ComposedShadowTreeWalker.cpp:77
&gt; &gt; +ComposedShadowTreeWalker ComposedShadowTreeWalker::startedWithFirstChild(const Node* node, Policy policy)
&gt; 
&gt; I think just fromFirstChild is nicer.

Thats&apos; nice.

&gt; 
&gt; &gt; Source/WebCore/dom/ComposedShadowTreeWalker.h:61
&gt; &gt; +    void nextNode();
&gt; &gt; +    void previousNode();
&gt; 
&gt; These can just be next and previous.

Okay. Let me do it. I&apos;ll rename parentNode() to parent() also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593181</commentid>
    <comment_count>19</comment_count>
      <attachid>135026</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-04-01 22:43:13 -0700</bug_when>
    <thetext>Created attachment 135026
try builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593250</commentid>
    <comment_count>20</comment_count>
      <attachid>135042</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2012-04-02 01:35:53 -0700</bug_when>
    <thetext>Created attachment 135042
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593293</commentid>
    <comment_count>21</comment_count>
      <attachid>135042</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 02:55:14 -0700</bug_when>
    <thetext>Comment on attachment 135042
Patch for landing

Clearing flags on attachment: 135042

Committed r112845: &lt;http://trac.webkit.org/changeset/112845&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593294</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 02:55:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133460</attachid>
            <date>2012-03-23 04:38:24 -0700</date>
            <delta_ts>2012-03-28 04:51:04 -0700</delta_ts>
            <desc>WIP. concept of walker. Not tested yet.</desc>
            <filename>bug-82009-20120323203823.patch</filename>
            <type>text/plain</type>
            <size>32120</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExNjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhiMjVjMDAyY2MzMTg2
ODU0ZDFlZDY2YmUwNjdhZTkwMTRmNmYwMy4uY2EzNzIzMjFhODY2NjlmM2NiODdjYmRiOTEwZmRh
ZDI3MzliYTExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTAzLTIzICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXSVAuIFdhbGtlciB2ZXJz
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIw
MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
OiBmYXN0L2RvbS9zaGFkb3cvcmVpZmllZC10cmVlLXdhbGtlci5odG1sCisKKyAgICAgICAgKiBX
ZWJDb3JlLmd5cGk6CisgICAgICAgICogZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU2hhZG93SG9zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpzaGFkb3dUcmVlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRv
d1RyZWVPZlBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6Zmly
c3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VG
aXJzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpsYXN0Q2hp
bGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTGFzdENo
aWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZUNoaWxk
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZUxpZ2h0Q2hp
bGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNr
VG9JbnNlcnRpb25Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6
dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVk
VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6ZXNjYXBlRmFsbGJhY2tDb250ZW50
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VO
b2RlRXNjYXBpbmdGYWxsYmFja0NvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRU
cmVlV2Fsa2VyOjpwYXJlbnROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fs
a2VyOjp0cmF2ZXJzZVBhcmVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVX
YWxrZXI6OnRyYXZlcnNlUGFyZW50Tm9kZUluQ3VycmVudFRyZWUpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50Tm9kZUJhY2tUb1lvdW5nZXJTaGFk
b3dSb290T3JIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjphZGp1
c3RlZFBhcmVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRy
YXZlcnNlTmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6
OnRyYXZlcnNlUHJldmlvdXNTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVl
V2Fsa2VyOjpuZXh0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6
cHJldmlvdXNOb2RlKToKKyAgICAgICAgKiBkb20vUmVpZmllZFRyZWVXYWxrZXIuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlaWZpZWRUcmVlV2Fsa2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVpZmllZFRyZWVXYWxrZXI6OmFsbG93Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpSZWlmaWVkVHJlZVdhbGtlcik6CisgICAgICAg
IChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6c3RhcnRlZFdpdGhGaXJzdENoaWxkKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6Om5leHRTaWJsaW5nQnlXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmZpcnN0Q2hpbGRCeVdhbGtlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6Omxhc3RDaGlsZEJ5V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6bmV4dE5vZGVCeVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBy
ZXZpb3VzTm9kZUJ5V2Fsa2VyKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAg
ICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIw
MTItMDMtMjIgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtT
aGFkb3cgRE9NXSBBZGQgUmVpZmllZCBET00gVHJlZSB0cmF2ZXJzYWwgaW50ZXJuYWwgQVBJcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBjNjllMjQ0OWQ4OWZkNjgxOWE0OGI2MDg1NzcyZGIzZTljM2My
NWJjLi5iZDM0NzE4ZDllZWYyNWY0ZjBjYmIyZDE4NjE1Y2MzYjZhOGRmYzZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC02MjYsNiArNjI2LDcgQEAKICAgICAgICAgICAgICdkb20vUmFuZ2VCb3VuZGFy
eVBvaW50LmgnLAogICAgICAgICAgICAgJ2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oJywK
ICAgICAgICAgICAgICdkb20vUmVpZmllZFRyZWVUcmF2ZXJzYWwuaCcsCisgICAgICAgICAgICAn
ZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9SZW5kZXJlZERvY3Vt
ZW50TWFya2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgn
LAogICAgICAgICAgICAgJ2RvbS9TY3JpcHRSdW5uZXIuaCcsCkBAIC01MjA3LDYgKzUyMDgsOCBA
QAogICAgICAgICAgICAgJ2RvbS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAnLAogICAgICAg
ICAgICAgJ2RvbS9SZWlmaWVkVHJlZVRyYXZlcnNhbC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9S
ZWlmaWVkVHJlZVRyYXZlcnNhbC5oJywKKyAgICAgICAgICAgICdkb20vUmVpZmllZFRyZWVXYWxr
ZXIuY3BwJywKKyAgICAgICAgICAgICdkb20vUmVpZmllZFRyZWVXYWxrZXIuaCcsCiAgICAgICAg
ICAgICAnZG9tL1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmgnLAogICAgICAgICAgICAg
J2RvbS9TY29wZWRFdmVudFF1ZXVlLmNwcCcsCiAgICAgICAgICAgICAnZG9tL1Njb3BlZEV2ZW50
UXVldWUuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmVpZmllZFRyZWVXYWxr
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mYzYwZDAzMjI1YmU3OWI2NDQyMWI4MTNjMzk0OTRkY2IxMDJjOTYzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmNwcApAQCAtMCww
ICsxLDMwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZWlmaWVkVHJlZVdh
bGtlci5oIgorCisjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50U2Vs
ZWN0b3IuaCIKKyNpbmNsdWRlICJJbnNlcnRpb25Qb2ludC5oIgorI2luY2x1ZGUgIlNoYWRvd1Ry
ZWUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5saW5lIGJvb2wgaXNTaGFk
b3dIb3N0KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aXNF
bGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aGFzU2hhZG93Um9vdCgpOworfQorCitz
dGF0aWMgaW5saW5lIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWVGb3IoY29uc3QgTm9kZSogbm9kZSkK
K3sKKyAgICBpZiAobm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkpCisgICAgICAgIHJldHVy
biB0b0VsZW1lbnQobm9kZSktPnNoYWRvd1RyZWUoKTsKKyAgICByZXR1cm4gMDsKK30KKworc3Rh
dGljIGlubGluZSBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlT2ZQYXJlbnQoY29uc3QgTm9kZSogbm9k
ZSkKK3sKKyAgICBpZiAobm9kZSAmJiBub2RlLT5wYXJlbnROb2RlKCkpCisgICAgICAgIHJldHVy
biBzaGFkb3dUcmVlRm9yKG5vZGUtPnBhcmVudE5vZGUoKSk7CisgICAgcmV0dXJuIDA7Cit9CisK
Kwordm9pZCBSZWlmaWVkVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCgpCit7CisgICAgQVNTRVJUKG1f
bm9kZSk7CisgICAgbV9ub2RlID0gdHJhdmVyc2VDaGlsZChtX25vZGUsIFRyYXZlcnNhbERpcmVj
dGlvbkZvcndhcmQpOworICAgIEFTU0VSVCghbV9ub2RlIHx8ICFtX25vZGUtPmlzU2hhZG93Um9v
dCgpKTsKK30KKworTm9kZSogUmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlRmlyc3RDaGlsZChj
b25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4g
dHJhdmVyc2VDaGlsZChub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkKTsKK30KKwordm9p
ZCBSZWlmaWVkVHJlZVdhbGtlcjo6bGFzdENoaWxkKCkKK3sKKyAgICBBU1NFUlQobV9ub2RlKTsK
KyAgICBtX25vZGUgPSB0cmF2ZXJzZUxhc3RDaGlsZChtX25vZGUpOworICAgIEFTU0VSVCghbV9u
b2RlIHx8ICFtX25vZGUtPmlzU2hhZG93Um9vdCgpKTsKK30KKworTm9kZSogUmVpZmllZFRyZWVX
YWxrZXI6OnRyYXZlcnNlTGFzdENoaWxkKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAg
QVNTRVJUKG5vZGUpOworICAgIHJldHVybiB0cmF2ZXJzZUNoaWxkKG5vZGUsIFRyYXZlcnNhbERp
cmVjdGlvbkJhY2t3YXJkKTsKK30KKworTm9kZSogUmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNl
Q2hpbGQoY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikgY29u
c3QKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgLy8gRklYTUU6IEFkZCBhbiBhc3NlcnRpb24g
b25jZSBJbnNlcnRpb25Qb2ludCBoYXZlIGlzQWN0aXZlKCkgZnVuY3Rpb24uCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMDEwCisgICAgLy8gQVNTRVJU
KCFpc0luc2VydGlvblBvaW50KG5vZGUpIHx8ICF0b0luc2VydGlvblBvaW50KG5vZGUpLT5pc0Fj
dGl2ZSgpKTsKKyAgICBBU1NFUlQoIW5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBpZiAoYWxs
b3dDcm9zc2luZ1VwcGVyQm91bmRhcnkoKSkgeworICAgICAgICBTaGFkb3dUcmVlKiBzaGFkb3dU
cmVlID0gc2hhZG93VHJlZUZvcihub2RlKTsKKyAgICAgICAgaWYgKHNoYWRvd1RyZWUgJiYgc2hh
ZG93VHJlZS0+aGFzU2hhZG93Um9vdCgpKQorICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNlTGln
aHRDaGlsZHJlbihzaGFkb3dUcmVlLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSwgZGlyZWN0aW9uKTsK
KyAgICAgICAgcmV0dXJuIHRyYXZlcnNlTGlnaHRDaGlsZHJlbihub2RlLCBkaXJlY3Rpb24pOwor
ICAgIH0KKyAgICBpZiAoaXNTaGFkb3dIb3N0KG5vZGUpKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gdHJhdmVyc2VMaWdodENoaWxkcmVuKG5vZGUsIGRpcmVjdGlvbik7Cit9CisKK05v
ZGUqIFJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oY29uc3QgTm9kZSog
bm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7
CisgICAgaWYgKE5vZGUqIGNoaWxkID0gKGRpcmVjdGlvbiA9PSBUcmF2ZXJzYWxEaXJlY3Rpb25G
b3J3YXJkID8gbm9kZS0+Zmlyc3RDaGlsZCgpIDogbm9kZS0+bGFzdENoaWxkKCkpKQorICAgICAg
ICByZXR1cm4gdHJhdmVyc2VOb2RlKGNoaWxkLCBkaXJlY3Rpb24pOworICAgIHJldHVybiAwOwor
fQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VOb2RlKGNvbnN0IE5vZGUqIG5v
ZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOwor
ICAgIGlmIChpc0luc2VydGlvblBvaW50KG5vZGUpKSB7CisgICAgICAgIGNvbnN0IEhUTUxDb250
ZW50U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9uTGlzdCA9IHRvSW5zZXJ0aW9uUG9pbnQobm9kZSkt
PnNlbGVjdGlvbnMoKTsKKyAgICAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rp
b24gPSAoZGlyZWN0aW9uID09IFRyYXZlcnNhbERpcmVjdGlvbkZvcndhcmQgPyBzZWxlY3Rpb25M
aXN0LT5maXJzdCgpIDogc2VsZWN0aW9uTGlzdC0+bGFzdCgpKSkKKyAgICAgICAgICAgIHJldHVy
biB0cmF2ZXJzZU5vZGUoc2VsZWN0aW9uLT5ub2RlKCksIGRpcmVjdGlvbik7CisgICAgICAgIHJl
dHVybiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9uKTsKKyAgICB9CisgICAg
cmV0dXJuIGNvbnN0X2Nhc3Q8Tm9kZSo+KG5vZGUpOworfQorCit2b2lkIFJlaWZpZWRUcmVlV2Fs
a2VyOjpuZXh0U2libGluZygpCit7CisgICAgQVNTRVJUKG1fbm9kZSk7CisgICAgQVNTRVJUKCFt
X25vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBtX25vZGUgPSB0cmF2ZXJzZVNpYmxpbmdPckJh
Y2tUb0luc2VydGlvblBvaW50KG1fbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7Cisg
ICAgQVNTRVJUKCFtX25vZGUgfHwgIW1fbm9kZXQtPmlzU2hhZG93Um9vdCgpKTsKK30KKwordm9p
ZCBSZWlmaWVkVHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKK3sKKyAgICBBU1NFUlQobV9u
b2RlKTsKKyAgICBBU1NFUlQoIW1fbm9kZS0+aXNTaGFkb3dSb290KCkpOworICAgIG1fbm9kZSA9
IHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobV9ub2RlLCBUcmF2ZXJzYWxE
aXJlY3Rpb25CYWNrd2FyZCk7CisgICAgQVNTRVJUKCFtX25vZGUgfHwgIW1fbm9kZS0+aXNTaGFk
b3dSb290KCkpOworfQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5n
T3JCYWNrVG9JbnNlcnRpb25Qb2ludChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rp
b24gZGlyZWN0aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBTaGFkb3dUcmVlKiBzaGFk
b3dUcmVlID0gc2hhZG93VHJlZU9mUGFyZW50KG5vZGUpOworICAgIGlmICghc2hhZG93VHJlZSkK
KyAgICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUobm9kZSwgZGlyZWN0
aW9uKTsKKyAgICBIVE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gc2hhZG93VHJlZS0+
c2VsZWN0aW9uRm9yKG5vZGUpOworICAgIGlmICghc2VsZWN0aW9uKQorICAgICAgICByZXR1cm4g
dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShub2RlLCBkaXJlY3Rpb24pOworICAgIGlmIChI
VE1MQ29udGVudFNlbGVjdGlvbiogbmV4dFNlbGVjdGlvbiA9IChkaXJlY3Rpb24gPT0gVHJhdmVy
c2FsRGlyZWN0aW9uRm9yd2FyZCA/IHNlbGVjdGlvbi0+bmV4dCgpIDogc2VsZWN0aW9uLT5wcmV2
aW91cygpKSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlTm9kZShuZXh0U2VsZWN0aW9uLT5ub2Rl
KCksIGRpcmVjdGlvbik7CisgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0
aW9uUG9pbnQoc2VsZWN0aW9uLT5pbnNlcnRpb25Qb2ludCgpLCBkaXJlY3Rpb24pOworfQorCitO
b2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShjb25z
dCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEFTU0VS
VChub2RlKTsKKyAgICBpZiAoTm9kZSogbmV4dCA9IChkaXJlY3Rpb24gPT0gVHJhdmVyc2FsRGly
ZWN0aW9uRm9yd2FyZCA/IG5vZGUtPm5leHRTaWJsaW5nKCkgOiBub2RlLT5wcmV2aW91c1NpYmxp
bmcoKSkpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZU5vZGUobmV4dCwgZGlyZWN0aW9uKTsKKyAg
ICBpZiAoTm9kZSogbmV4dCA9IHRyYXZlcnNlU2libGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jv
b3Qobm9kZSwgZGlyZWN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgcmV0dXJuIGVz
Y2FwZUZhbGxiYWNrQ29udGVudEVsZW1lbnQobm9kZSwgZGlyZWN0aW9uKTsKK30KKworTm9kZSog
UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlU2libGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jv
b3QoY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAg
ICBBU1NFUlQobm9kZSk7CisgICAgaWYgKG5vZGUtPnBhcmVudE5vZGUoKSAmJiBub2RlLT5wYXJl
bnROb2RlKCktPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIFNoYWRvd1Jvb3QqIHBhcmVudFNo
YWRvd1Jvb3QgPSB0b1NoYWRvd1Jvb3Qobm9kZS0+cGFyZW50Tm9kZSgpKTsKKyAgICAgICAgaWYg
KCFwYXJlbnRTaGFkb3dSb290LT5pc1lvdW5nZXN0KCkpIHsKKyAgICAgICAgICAgIEluc2VydGlv
blBvaW50KiBhc3NpZ25lZEluc2VydGlvblBvaW50ID0gcGFyZW50U2hhZG93Um9vdC0+YXNzaWdu
ZWRUbygpOworICAgICAgICAgICAgQVNTRVJUKGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQpOworICAg
ICAgICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUoYXNzaWduZWRJbnNl
cnRpb25Qb2ludCwgZGlyZWN0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gMDsK
K30KKworTm9kZSogUmVpZmllZFRyZWVXYWxrZXI6OmVzY2FwZUZhbGxiYWNrQ29udGVudEVsZW1l
bnQoY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAg
ICBBU1NFUlQobm9kZSk7CisgICAgaWYgKG5vZGUtPnBhcmVudE5vZGUoKSAmJiBpc0luc2VydGlv
blBvaW50KG5vZGUtPnBhcmVudE5vZGUoKSkpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZVNpYmxp
bmdPckJhY2tUb0luc2VydGlvblBvaW50KG5vZGUtPnBhcmVudE5vZGUoKSwgZGlyZWN0aW9uKTsK
KyAgICByZXR1cm4gMDsKK30KKworTm9kZSogUmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTm9k
ZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyhjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAg
IEFTU0VSVChub2RlKTsKKyAgICBpZiAoaXNJbnNlcnRpb25Qb2ludChub2RlKSkKKyAgICAgICAg
cmV0dXJuIHRyYXZlcnNlUGFyZW50Tm9kZU9yQmFja1RvSW5zZXJ0aW9uUG9pbnQobm9kZSk7Cisg
ICAgLy8gY3Jvc3NlZCA9IE5vdENyb3NzZWQ7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8Tm9kZSo+
KG5vZGUpOworfQorCit2b2lkIFJlaWZpZWRUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKCkKK3sKKyAg
ICBBU1NFUlQobV9ub2RlKTsKKyAgICBBU1NFUlQoIW1fbm9kZS0+aXNTaGFkb3dSb290KCkpOwor
CisgICAgLy8gY3Jvc3NlZCA9IE5vdENyb3NzZWQ7CisKKyAgICAvLyBGSVhNRTogQWRkIGFuIGFz
c2VydGlvbiBvbmNlIEluc2VydGlvblBvaW50IGhhdmUgaXNBY3RpdmUoKSBmdW5jdGlvbi4KKyAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMTAKKyAgICAv
LyBBU1NFUlQoIWlzSW5zZXJ0aW9uUG9pbnQobm9kZSkgfHwgIXRvSW5zZXJ0aW9uUG9pbnQobm9k
ZSktPmlzQWN0aXZlKCkpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlUGFyZW50Tm9kZShtX25vZGUp
OworfQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnROb2RlKGNvbnN0
IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgaWYgKFNoYWRvd1RyZWUqIHNoYWRvd1RyZWUgPSBz
aGFkb3dUcmVlT2ZQYXJlbnQobm9kZSkpIHsKKyAgICAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0
aW9uKiBzZWxlY3Rpb24gPSBzaGFkb3dUcmVlLT5zZWxlY3Rpb25Gb3Iobm9kZSkpCisgICAgICAg
ICAgICByZXR1cm4gdHJhdmVyc2VQYXJlbnROb2RlKHNlbGVjdGlvbi0+aW5zZXJ0aW9uUG9pbnQo
KSk7CisgICAgfQorICAgIHJldHVybiB0cmF2ZXJzZVBhcmVudE5vZGVJbkN1cnJlbnRUcmVlKG5v
ZGUpOworfQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnROb2RlSW5D
dXJyZW50VHJlZShjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIGlmIChOb2RlKiBwYXJl
bnQgPSBub2RlLT5wYXJlbnROb2RlKCkpIHsKKyAgICAgICAgaWYgKHBhcmVudC0+aXNTaGFkb3dS
b290KCkpCisgICAgICAgICAgICByZXR1cm4gdHJhdmVyc2VQYXJlbnROb2RlQmFja1RvWW91bmdl
clNoYWRvd1Jvb3RPckhvc3QodG9TaGFkb3dSb290KHBhcmVudCkpOworICAgICAgICByZXR1cm4g
dHJhdmVyc2VOb2RlRXNjYXBpbmdGYWxsYmFja0NvbnRlbnRzKHBhcmVudCk7CisgICAgfQorICAg
IHJldHVybiAwOworfQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnRO
b2RlQmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhvc3QoY29uc3QgU2hhZG93Um9vdCogc2hhZG93
Um9vdCkgY29uc3QKK3sKKyAgICBBU1NFUlQoc2hhZG93Um9vdCk7CisgICAgaWYgKHNoYWRvd1Jv
b3QtPmlzWW91bmdlc3QoKSkgeworICAgICAgICBpZiAoYWxsb3dDcm9zc2luZ1VwcGVyQm91bmRh
cnkoKSkKKyAgICAgICAgICAgIHJldHVybiBzaGFkb3dSb290LT5ob3N0KCk7CisgICAgICAgIHJl
dHVybiAwOworICAgIH0KKyAgICBJbnNlcnRpb25Qb2ludCogYXNzaWduZWRJbnNlcnRpb25Qb2lu
dCA9IHNoYWRvd1Jvb3QtPmFzc2lnbmVkVG8oKTsKKyAgICBBU1NFUlQoYXNzaWduZWRJbnNlcnRp
b25Qb2ludCk7CisgICAgcmV0dXJuIHRyYXZlcnNlUGFyZW50Tm9kZU9yQmFja1RvSW5zZXJ0aW9u
UG9pbnQoYXNzaWduZWRJbnNlcnRpb25Qb2ludCk7Cit9CisKKy8vIEZJWE1FOiBVc2UgYWxsb3dD
cm9zc2luZ1VwcGVyQm91bmRhcnkoKQordm9pZCBSZWlmaWVkVHJlZVdhbGtlcjo6YWRqdXN0ZWRQ
YXJlbnROb2RlKCkKK3sKKyAgICBBU1NFUlQobV9ub2RlKTsKKyAgICBpZiAoU2hhZG93VHJlZSog
c2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBhcmVudChtX25vZGUpKSB7CisgICAgICAgIGlmIChI
VE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gc2hhZG93VHJlZS0+c2VsZWN0aW9uRm9y
KG1fbm9kZSkpIHsKKyAgICAgICAgICAgIG1fbm9kZSA9IHNlbGVjdGlvbi0+aW5zZXJ0aW9uUG9p
bnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIW1f
bm9kZS0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAgbV9ub2RlID0gbV9ub2RlLT5wYXJlbnRO
b2RlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29uc3QgU2hhZG93Um9vdCogc2hh
ZG93Um9vdCA9IHRvU2hhZG93Um9vdChtX25vZGUpOworICAgIGlmICghc2hhZG93Um9vdC0+aXNZ
b3VuZ2VzdCgpKSB7CisgICAgICAgIEFTU0VSVChzaGFkb3dSb290LT5hc3NpZ25lZFRvKCkpOwor
ICAgICAgICBtX25vZGUgPSBzaGFkb3dSb290LT5hc3NpZ25lZFRvKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisgICAgbV9ub2RlID0gc2hhZG93Um9vdC0+aG9zdCgpOworfQorCitOb2RlKiBS
ZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VOZXh0U2libGluZyhjb25zdCBOb2RlKiBub2RlKQor
eworICAgIEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9J
bnNlcnRpb25Qb2ludChub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkKTsKK30KKworTm9k
ZSogUmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUHJldmlvdXNTaWJsaW5nKGNvbnN0IE5vZGUq
IG5vZGUpCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdP
ckJhY2tUb0luc2VydGlvblBvaW50KG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbkJhY2t3YXJkKTsK
K30KKwordm9pZCBSZWlmaWVkVHJlZVdhbGtlcjo6bmV4dE5vZGUoKQoreworICAgIGlmIChOb2Rl
KiBuZXh0ID0gdHJhdmVyc2VGaXJzdENoaWxkKG1fbm9kZSkpIHsKKyAgICAgICAgbV9ub2RlID0g
bmV4dDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoTm9kZSogbmV4dCA9IHRyYXZl
cnNlTmV4dFNpYmxpbmcobV9ub2RlKSkgeworICAgICAgICBtX25vZGUgPSBuZXh0OworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGNvbnN0IE5vZGUqIG4gPSBtX25vZGU7CisgICAgd2hpbGUg
KG4gJiYgIXRyYXZlcnNlTmV4dFNpYmxpbmcobikpCisgICAgICAgIG4gPSB0cmF2ZXJzZVBhcmVu
dE5vZGUobik7CisgICAgaWYgKG4pIHsKKyAgICAgICAgbV9ub2RlID0gdHJhdmVyc2VOZXh0U2li
bGluZyhuKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX25vZGUgPSAwOworfQorCit2
b2lkIFJlaWZpZWRUcmVlV2Fsa2VyOjpwcmV2aW91c05vZGUoKQoreworICAgIGlmIChOb2RlKiBu
ID0gdHJhdmVyc2VQcmV2aW91c1NpYmxpbmcobV9ub2RlKSkgeworICAgICAgICB3aGlsZSAoTm9k
ZSogY2hpbGQgPSB0cmF2ZXJzZUxhc3RDaGlsZChuKSkKKyAgICAgICAgICAgIG4gPSBjaGlsZDsK
KyAgICAgICAgbV9ub2RlID0gbjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBwYXJlbnRO
b2RlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmVpZmllZFRyZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWlmaWVkVHJlZVdh
bGtlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZiZGVjNzFjZDI0ZTdiYWYyZDk2ZGM0ZjhlZjNjYTBkZTFmNWVl
MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVpZmllZFRyZWVXYWxr
ZXIuaApAQCAtMCwwICsxLDExNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgUmVpZmllZFRyZWVXYWxrZXJfaAorI2Rl
ZmluZSBSZWlmaWVkVHJlZVdhbGtlcl9oCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
Tm9kZTsKK2NsYXNzIFNoYWRvd1Jvb3Q7CisKK2NsYXNzIFJlaWZpZWRUcmVlV2Fsa2VyIHsKK3B1
YmxpYzoKKyAgICBlbnVtIFRyYXZlcnNhbERpcmVjdGlvbiB7CisgICAgICAgIFRyYXZlcnNhbERp
cmVjdGlvbkZvcndhcmQsCisgICAgICAgIFRyYXZlcnNhbERpcmVjdGlvbkJhY2t3YXJkCisgICAg
fTsKKworICAgIGVudW0gQWxsb3dDcm9zc2luZ1VwcGVyQm91bmRhcnkgeworICAgICAgICBBbGxv
dywKKyAgICAgICAgRGVueSwKKyAgICB9OworCisgICAgUmVpZmllZFRyZWVXYWxrZXIoY29uc3Qg
Tm9kZSosIEFsbG93Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5ID0gQWxsb3cpOworCisgICAgLy8gRm9y
IGEgY29tbW9uIHVzZSBjYXNlIHN1Y2ggYXM6CisgICAgLy8gZm9yIChXYWxrZXIgd2Fsa2VyID0g
V2Fsa2VyOjpzdGFydGVkV2l0aEZpcnN0Q2hpbGQobm9kZSk7IHdhbGtlci5nZXQoKTsgd2Fsa2Vy
Lm5leHRTaWJsaW5nKCkpCisgICAgc3RhdGljIFJlaWZpZWRUcmVlV2Fsa2VyIHN0YXJ0ZWRXaXRo
Rmlyc3RDaGlsZChjb25zdCBOb2RlKiwgQWxsb3dDcm9zc2luZ1VwcGVyQm91bmRhcnkgPSBBbGxv
dyk7CisKKyAgICBOb2RlKiBnZXQoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PE5vZGUqPiht
X25vZGUpOyB9CisKKyAgICB2b2lkIGZpcnN0Q2hpbGQoKTsKKyAgICB2b2lkIGxhc3RDaGlsZCgp
OworCisgICAgdm9pZCBuZXh0U2libGluZygpOworICAgIHZvaWQgcHJldmlvdXNTaWJsaW5nKCk7
CisKKyAgICB2b2lkIHBhcmVudE5vZGUoKTsKKworICAgIHZvaWQgbmV4dE5vZGUoKTsKKyAgICB2
b2lkIHByZXZpb3VzTm9kZSgpOworCisgICAgLy8gRklYTUU6IEFuICdhZGp1c3RlZCcgaXMgbm90
IGdvb2QgbmFtZSBmb3IgZ2VuZXJhbCB1c2UgY2FzZS4gUmVuYW1lIHRoaXMuCisgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMDIyCisgICAgLy8gVGhpcyBt
YXkgcmV0dXJuIFNoYWRvd1Jvb3Qgb3IgSW5zZXJ0aW9uUG9pbnQuCisgICAgdm9pZCBhZGp1c3Rl
ZFBhcmVudE5vZGUoKTsKKworcHJpdmF0ZToKKyAgICBib29sIGFsbG93Q3Jvc3NpbmdVcHBlckJv
dW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd0Nyb3NzaW5nVXBwZXJCb3VuZGFyeSA9PSBB
bGxvdzsgfQorCisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlTm9kZShjb25zdCBOb2RlKiwgVHJh
dmVyc2FsRGlyZWN0aW9uKTsKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VMaWdodENoaWxkcmVu
KGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOworCisgICAgTm9kZSogdHJhdmVyc2VG
aXJzdENoaWxkKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAgICBOb2RlKiB0cmF2ZXJzZUxhc3RDaGls
ZChjb25zdCBOb2RlKikgY29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VDaGlsZChjb25zdCBOb2Rl
KiwgVHJhdmVyc2FsRGlyZWN0aW9uKSBjb25zdDsKKyAgICBOb2RlKiB0cmF2ZXJzZVBhcmVudE5v
ZGUoY29uc3QgTm9kZSopIGNvbnN0OworCisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlTmV4dFNp
YmxpbmcoY29uc3QgTm9kZSopOworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZVByZXZpb3VzU2li
bGluZyhjb25zdCBOb2RlKik7CisKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VTaWJsaW5nT3JC
YWNrVG9JbnNlcnRpb25Qb2ludChjb25zdCBOb2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKKyAg
ICBzdGF0aWMgTm9kZSogdHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShjb25zdCBOb2RlKiwg
VHJhdmVyc2FsRGlyZWN0aW9uKTsKKworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZVNpYmxpbmdP
ckJhY2tUb1lvdW5nZXJTaGFkb3dSb290KGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24p
OworICAgIHN0YXRpYyBOb2RlKiBlc2NhcGVGYWxsYmFja0NvbnRlbnRFbGVtZW50KGNvbnN0IE5v
ZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOworCisgICAgTm9kZSogdHJhdmVyc2VOb2RlRXNjYXBp
bmdGYWxsYmFja0NvbnRlbnRzKGNvbnN0IE5vZGUqKSBjb25zdDsKKworICAgIE5vZGUqIHRyYXZl
cnNlUGFyZW50Tm9kZU9yQmFja1RvSW5zZXJ0aW9uUG9pbnQoY29uc3QgTm9kZSopIGNvbnN0Owor
ICAgIE5vZGUqIHRyYXZlcnNlUGFyZW50Tm9kZUluQ3VycmVudFRyZWUoY29uc3QgTm9kZSopIGNv
bnN0OworICAgIE5vZGUqIHRyYXZlcnNlUGFyZW50Tm9kZUJhY2tUb1lvdW5nZXJTaGFkb3dSb290
T3JIb3N0KGNvbnN0IFNoYWRvd1Jvb3QqKSBjb25zdDsKKworICAgIGNvbnN0IE5vZGUqIG1fbm9k
ZTsKKyAgICBBbGxvd0Nyb3NzaW5nVXBwZXJCb3VuZGFyeSBtX2FsbG93Q3Jvc3NpbmdVcHBlckJv
dW5kYXJ5OworfTsKKworUmVpZmllZFRyZWVXYWxrZXI6OlJlaWZpZWRUcmVlV2Fsa2VyKGNvbnN0
IE5vZGUqIG5vZGUsIEFsbG93Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5IGFsbG93Q3Jvc3NpbmdVcHBl
ckJvdW5kYXJ5KQorICAgIDogbV9ub2RlKG5vZGUpCisgICAgLCBtX2FsbG93Q3Jvc3NpbmdVcHBl
ckJvdW5kYXJ5KGFsbG93Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5KQoreworfQorCitSZWlmaWVkVHJl
ZVdhbGtlciBSZWlmaWVkVHJlZVdhbGtlcjo6c3RhcnRlZFdpdGhGaXJzdENoaWxkKGNvbnN0IE5v
ZGUqIG5vZGUsIEFsbG93Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5IGFsbG93Q3Jvc3NpbmdVcHBlckJv
dW5kYXJ5KQoreworICAgIFJlaWZpZWRUcmVlV2Fsa2VyIHdhbGtlcihub2RlLCBhbGxvd0Nyb3Nz
aW5nVXBwZXJCb3VuZGFyeSk7CisgICAgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsKKyAgICByZXR1cm4g
d2Fsa2VyOworfQorCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCAyYTU1Y2EwYTVjMTI5OTI2MGFlMmE5YzcyYTYxNWNkMmM2MTg5
MTNkLi4zZWM2NTIxY2JkZmQwZTZhOTBkZTU1M2UxOTJhOTE5YThhMmFhYTM4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiUmVpZmllZFRyZWVUcmF2ZXJzYWwu
aCIKKyNpbmNsdWRlICJSZWlmaWVkVHJlZVdhbGtlci5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVj
dC5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgpAQCAtMjI2LDYgKzIyNyw2MiBAQCBOb2RlKiBJbnRlcm5hbHM6OnRyYXZlcnNlUHJldmlvdXNO
b2RlSW5SZWlmaWVkVHJlZShOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYwogICAgIHJldHVy
biBSZWlmaWVkVHJlZVRyYXZlcnNhbDo6dHJhdmVyc2VQcmV2aW91c05vZGUobm9kZSk7CiB9CiAK
K05vZGUqIEludGVybmFsczo6bmV4dFNpYmxpbmdCeVdhbGtlcihOb2RlKiBub2RlLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBSZWlmaWVkVHJlZVdhbGtl
ciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2VyLm5leHRTaWJsaW5nKCk7CisgICAgcmV0dXJuIHdh
bGtlci5nZXQoKTsKK30KKworTm9kZSogSW50ZXJuYWxzOjpmaXJzdENoaWxkQnlXYWxrZXIoTm9k
ZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAg
UmVpZmllZFRyZWVXYWxrZXIgd2Fsa2VyKG5vZGUpOworICAgIHdhbGtlci5maXJzdENoaWxkKCk7
CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30KKworTm9kZSogSW50ZXJuYWxzOjpsYXN0Q2hp
bGRCeVdhbGtlcihOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5v
ZGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKyAgICBSZWlmaWVkVHJlZVdhbGtlciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2Vy
Lmxhc3RDaGlsZCgpOworICAgIHJldHVybiB3YWxrZXIuZ2V0KCk7Cit9CisKK05vZGUqIEludGVy
bmFsczo6bmV4dE5vZGVCeVdhbGtlcihOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAg
ICAgIHJldHVybiAwOworICAgIH0KKyAgICBSZWlmaWVkVHJlZVdhbGtlciB3YWxrZXIobm9kZSk7
CisgICAgd2Fsa2VyLm5leHROb2RlKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30KKwor
Tm9kZSogSW50ZXJuYWxzOjpwcmV2aW91c05vZGVCeVdhbGtlcihOb2RlKiBub2RlLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBSZWlmaWVkVHJlZVdhbGtl
ciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2VyLnByZXZpb3VzTm9kZSgpOworICAgIHJldHVybiB3
YWxrZXIuZ2V0KCk7Cit9CisKKwogU3RyaW5nIEludGVybmFsczo6ZWxlbWVudFJlbmRlclRyZWVB
c1RleHQoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFl
bGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAzNDNhNGQzNDNlNjFi
MDdkYWI2YTI0ODE0MmJjOGQ0YzM3MTlkMzExLi45NDViY2M5ZTZmNWQ2NmE5MmZiNWE3OTQxYmNh
MTBjNDA5NDdhODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTkwLDYgKzkw
LDEzIEBAIHB1YmxpYzoKICAgICBOb2RlKiB0cmF2ZXJzZU5leHROb2RlSW5SZWlmaWVkVHJlZShO
b2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIE5vZGUqIHRyYXZlcnNlUHJldmlvdXNOb2RlSW5S
ZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgLy8gRklYTUU6IFJlbmFt
ZSB0aGVzZSBmdW5jdGlvbnMgaWYgd2Fsa2VyIGlzIHByZWZlcmVkLgorICAgIE5vZGUqIG5leHRT
aWJsaW5nQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBOb2RlKiBmaXJzdENo
aWxkQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBOb2RlKiBsYXN0Q2hpbGRC
eVdhbGtlcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIE5vZGUqIG5leHROb2RlQnlXYWxr
ZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBOb2RlKiBwcmV2aW91c05vZGVCeVdhbGtl
cihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogICAg
IHZvaWQgc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBj
b2xvclZhbHVlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4
IGY0NGI4OTY1Y2I5YWY5ZTMzMmViZjM0YmVkNTRhYjA3ODg0ZjdmMzIuLjczMGJkNzkyYTNlYTY1
NjQxNmU3OWRhM2U4MWJjZDNlNWZkYzJkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKQEAgLTYxLDYgKzYxLDEyIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBOb2RlIHRy
YXZlcnNlTmV4dE5vZGVJblJlaWZpZWRUcmVlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIE5vZGUgdHJhdmVyc2VQcmV2aW91c05vZGVJblJlaWZpZWRUcmVlKGlu
IE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgTm9kZSBuZXh0U2li
bGluZ0J5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IE5vZGUgZmlyc3RDaGlsZEJ5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIE5vZGUgbGFzdENoaWxkQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBuZXh0Tm9kZUJ5V2Fsa2VyKGluIE5vZGUgbm9k
ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIE5vZGUgcHJldmlvdXNOb2RlQnlXYWxr
ZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICBib29sZWFu
IGF0dGFjaGVkKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICNpZiBkZWZp
bmVkKEVOQUJMRV9JTlBVVF9DT0xPUikgJiYgRU5BQkxFX0lOUFVUX0NPTE9SCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2Fk
ZmZhMTBlOGE4ODI5MjUzZGEwMjAxY2QxMjc3ZDQ2M2I0ZDM5Mi4uMTg2N2U4YTBiM2VlYmU0ZWUw
NDRmYjdiNzg5NTZiNDUzZDg2YWYxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAzLTIz
ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXSVAuIFdhbGtl
ciB2ZXJzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODIwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy9yZWlmaWVkLXRyZWUtd2Fsa2VyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3JlaWZpZWQtdHJlZS13YWxrZXIuaHRtbDog
QWRkZWQuCisKIDIwMTItMDMtMjIgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtTaGFkb3cgRE9NXSBBZGQgUmVpZmllZCBET00gVHJlZSB0cmF2ZXJzYWwgaW50
ZXJuYWwgQVBJcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9yZWlm
aWVkLXRyZWUtd2Fsa2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9yZWlmaWVkLXRyZWUtd2Fsa2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDQyNGU3NDE4
N2EyZTU3Yzg1ZWRmMzY2YWRkNjMzZWM3YmE2YzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlaWZpZWQtdHJlZS13YWxrZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTU2IEBACitUZXN0cyBmb3IgUmVpZmllZCBET00gVHJlZSBUcmF2ZXJzYWwgQVBJ
cy4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1NoYWRvd1Jvb3Qgc2hvdWxkIGJlIHVzZWQuCitSZWlmaWVkIFRyZWU6CitESVYJIGlkPWEK
KwlESVYJIGlkPWIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1i
CitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK0EgY29udGVu
dCBlbGVtZW50IHNob3VsZCBzZWxlY3QgbGlnaHQgY2hpbGRyZW4KK1JlaWZpZWQgVHJlZToKK0RJ
VgkgaWQ9YQorCURJVgkgaWQ9YgorCURJVgkgaWQ9YworCURJVgkgaWQ9ZAorCitUcmF2ZXJzZSBp
biBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIKK0RJVgkgaWQ9YworRElWCSBpZD1kCitU
cmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZAorRElWCSBpZD1jCitESVYJIGlkPWIKK0RJ
VgkgaWQ9YQorCitUZXN0IGZvciBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IuCitSZWlmaWVkIFRy
ZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkg
aWQ9YQorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWEKKworTGlnaHQgY2hpbGRyZW4g
c2hvdWxkIGJlIHNlbGVjdGVkIG9ubHkgYXQgb25jZS4KK1JlaWZpZWQgVHJlZToKK0RJVgkgaWQ9
YQorCURJVgkgaWQ9YgorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlk
PWIKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgorRElWCSBpZD1lCitESVYJIGlkPWQKK0RJVgkgaWQ9
YworRElWCSBpZD1hCisKK0EgY29udGVudCBlbGVtZW50IGNhbiBoYXZlIGZhbGxiYWNrIGVsZW1l
bnRzLgorUmVpZmllZCBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJRElWCSBpZD1mMQor
CURJVgkgaWQ9ZjIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1i
CitESVYJIGlkPWYxCitESVYJIGlkPWYyCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9
ZjIKK0RJVgkgaWQ9ZjEKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK0ZhbGxiYWNrIGVsZW1lbnRz
IHNob3VsZCBub3QgYmUgdXNlZCBpZiAgZWxlbWVudCBzZWxlY3RzIGFueSBlbGVtZW50cy4KK1Jl
aWZpZWQgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9YgorCURJVgkgaWQ9ZjEKKwlESVYJIGlk
PWYyCisKK1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9YgorRElWCSBp
ZD1mMQorRElWCSBpZD1mMgorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWYyCitESVYJ
IGlkPWYxCitESVYJIGlkPWIKK0RJVgkgaWQ9YQorCitUZXN0IGZvciBOZXN0ZWQgU2hhZG93Um9v
dHMuCitSZWlmaWVkIFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKwkJRElWCSBpZD1jCisJ
CURJVgkgaWQ9ZQorCQlESVYJIGlkPWQKKwlESVYJIGlkPWYKKwlESVYJIGlkPWgKKwlESVYJIGlk
PWkKKwlESVYJIGlkPWcKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBp
ZD1iCitESVYJIGlkPWMKK0RJVgkgaWQ9ZQorRElWCSBpZD1kCitESVYJIGlkPWYKK0RJVgkgaWQ9
aAorRElWCSBpZD1pCitESVYJIGlkPWcKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgorRElWCSBpZD1n
CitESVYJIGlkPWkKK0RJVgkgaWQ9aAorRElWCSBpZD1mCitESVYJIGlkPWQKK0RJVgkgaWQ9ZQor
RElWCSBpZD1jCitESVYJIGlkPWIKK0RJVgkgaWQ9YQorCitUZXN0IGZvciBNdWx0aXBsZSBTaGFk
b3dSb290cy4KK1JlaWZpZWQgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9ZAorCURJVgkgaWQ9
YgorCURJVgkgaWQ9ZgorCURJVgkgaWQ9YworCURJVgkgaWQ9ZQorCitUcmF2ZXJzZSBpbiBmb3J3
YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWQKK0RJVgkgaWQ9YgorRElWCSBpZD1mCitESVYJIGlk
PWMKK0RJVgkgaWQ9ZQorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWUKK0RJVgkgaWQ9
YworRElWCSBpZD1mCitESVYJIGlkPWIKK0RJVgkgaWQ9ZAorRElWCSBpZD1hCisKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvcmVpZmllZC10cmVlLXdhbGtlci5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlaWZpZWQtdHJlZS13YWxrZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iYTQxMWI2MDlmM2Q2MTI4Njg4Mzk0MzM1NzkyOWUxYWM3Y2RjZmY1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlaWZpZWQtdHJlZS13YWxrZXIu
aHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlv
bigiVGVzdHMgZm9yIFJlaWZpZWQgRE9NIFRyZWUgVHJhdmVyc2FsIEFQSXMuIENhbiBvbmx5IHJ1
biB3aXRoaW4gRFJUIik7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBkdW1wTm9kZShu
b2RlKQoreworICAgIHZhciBvdXRwdXQgPSBub2RlLm5vZGVOYW1lICsgIlx0IjsKKyAgICBpZiAo
bm9kZS5pZCkKKyAgICAgICAgb3V0cHV0ICs9ICcgaWQ9JyArIG5vZGUuaWQ7CisgICAgaWYgKG5v
ZGUuY2xhc3NOYW1lKQorICAgICAgICBvdXRwdXQgKz0gJyBjbGFzcz0nICsgbm9kZS5jbGFzc05h
bWU7CisgICAgcmV0dXJuIG91dHB1dDsKK30KKworZnVuY3Rpb24gZHVtcFJlaWZpZWRUcmVlKG5v
ZGUsIGluZGVudCkKK3sKKyAgICBpbmRlbnQgPSBpbmRlbnQgfHwgIiI7CisgICAgdmFyIG91dHB1
dCA9IGluZGVudCArIGR1bXBOb2RlKG5vZGUpICsgIlxuIjsKKyAgICB2YXIgY2hpbGQ7CisgICAg
Zm9yIChjaGlsZCA9IGludGVybmFscy5maXJzdENoaWxkQnlXYWxrZXIobm9kZSk7IGNoaWxkOyBj
aGlsZCA9IGludGVybmFscy5uZXh0U2libGluZ0J5V2Fsa2VyKGNoaWxkKSkKKyAgICAgICAgIG91
dHB1dCArPSBkdW1wUmVpZmllZFRyZWUoY2hpbGQsIGluZGVudCArICJcdCIpOworICAgIHJldHVy
biBvdXRwdXQ7Cit9CisKK2Z1bmN0aW9uIGxhc3ROb2RlQnlXYWxrZXIocm9vdCkKK3sKKyAgICB2
YXIgbGFzdE5vZGUgPSByb290OworICAgIHdoaWxlIChpbnRlcm5hbHMubGFzdENoaWxkQnlXYWxr
ZXIobGFzdE5vZGUpKQorICAgICAgICBsYXN0Tm9kZSA9IGludGVybmFscy5sYXN0Q2hpbGRCeVdh
bGtlcihsYXN0Tm9kZSk7CisgICAgcmV0dXJuIGxhc3ROb2RlOworfQorCitmdW5jdGlvbiBzaG93
UmVpZmllZFRyZWVCeVRyYXZlcnNpbmdJbkZvcndhcmQocm9vdCkKK3sKKyAgICB2YXIgbm9kZSA9
IHJvb3Q7CisgICAgdmFyIGxhc3QgPSBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpOworICAgIHdoaWxl
IChub2RlKSB7CisgICAgICAgIGRlYnVnKGR1bXBOb2RlKG5vZGUpKTsKKyAgICAgICAgaWYgKG5v
ZGUgPT0gbGFzdCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBub2RlID0gaW50ZXJuYWxz
Lm5leHROb2RlQnlXYWxrZXIobm9kZSk7CisgICAgfQorfQorCitmdW5jdGlvbiBzaG93UmVpZmll
ZFRyZWVCeVRyYXZlcnNpbmdJbkJhY2t3YXJkKHJvb3QpCit7CisgICAgdmFyIG5vZGUgPSBsYXN0
Tm9kZUJ5V2Fsa2VyKHJvb3QpOworICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgIGRlYnVnKGR1
bXBOb2RlKG5vZGUpKTsKKyAgICAgICAgaWYgKG5vZGUgPT0gcm9vdCkKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBub2RlID0gaW50ZXJuYWxzLnByZXZpb3VzTm9kZUJ5V2Fsa2VyKG5vZGUp
OworICAgIH0KK30KKworZnVuY3Rpb24gc2hvd1JlaWZpZWRUcmVlKG5vZGUpCit7CisgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChub2RlKTsKKyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExl
ZnQ7CisKKyAgICBkZWJ1ZygnUmVpZmllZCBUcmVlOicpOworICAgIGRlYnVnKGR1bXBSZWlmaWVk
VHJlZShub2RlKSk7CisKKyAgICBkZWJ1ZygnVHJhdmVyc2UgaW4gZm9yd2FyZC4nKTsKKyAgICBz
aG93UmVpZmllZFRyZWVCeVRyYXZlcnNpbmdJbkZvcndhcmQobm9kZSk7CisKKyAgICBkZWJ1Zygn
VHJhdmVyc2UgaW4gYmFja3dhcmQuJyk7CisgICAgc2hvd1JlaWZpZWRUcmVlQnlUcmF2ZXJzaW5n
SW5CYWNrd2FyZChub2RlKTsKKworICAgIGRlYnVnKCcnKTsKK30KKworZGVidWcoJ1NoYWRvd1Jv
b3Qgc2hvdWxkIGJlIHVzZWQuJyk7CitzaG93UmVpZmllZFRyZWUoCisgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnYid9KSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdjJ30pKSk7CisKK2RlYnVnKCdBIGNvbnRlbnQgZWxlbWVudCBzaG91bGQgc2VsZWN0
IGxpZ2h0IGNoaWxkcmVuJyk7CitzaG93UmVpZmllZFRyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2NvbnRlbnQnKSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdjJ30pLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSkpOwor
CitkZWJ1ZygnVGVzdCBmb3IgY29udGVudCBlbGVtZW50IHNlbGVjdG9yLicpOworc2hvd1JlaWZp
ZWRUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAgICAg
IGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAn
LmQnfSkpLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKKyAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSksCisgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSk7CisKK2RlYnVnKCdMaWdodCBjaGlsZHJl
biBzaG91bGQgYmUgc2VsZWN0ZWQgb25seSBhdCBvbmNlLicpOworc2hvd1JlaWZpZWRUcmVlKAor
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNo
YWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnLmQnfSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JykpLAorICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKKyAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdlJ30pKSk7CisKK2RlYnVnKCdBIGNvbnRlbnQgZWxlbWVudCBjYW4gaGF2
ZSBmYWxsYmFjayBlbGVtZW50cy4nKTsKK3Nob3dSZWlmaWVkVHJlZSgKKyAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJy56J30sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmMSd9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2YyJ30pKSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdjJ30pKSk7CisKK2RlYnVnKCdGYWxsYmFjayBlbGVtZW50cyBzaG91bGQgbm90IGJlIHVzZWQg
aWYgPGNvbnRlbnQ+IGVsZW1lbnQgc2VsZWN0cyBhbnkgZWxlbWVudHMuJyk7CitzaG93UmVpZmll
ZFRyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAg
Y3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcu
Yyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZjEnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmMid9KSkpLAorICAgICAgICAgICAgICBj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSkpOworCitkZWJ1ZygnVGVzdCBmb3IgTmVzdGVk
IFNoYWRvd1Jvb3RzLicpOworc2hvd1JlaWZpZWRUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2InfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2NvbnRlbnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdlJ30pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnZid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2NvbnRlbnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZyd9KSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdoJ30pLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaSd9KSkp
OworCitkZWJ1ZygnVGVzdCBmb3IgTXVsdGlwbGUgU2hhZG93Um9vdHMuJyk7CitzaG93UmVpZmll
ZFRyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAg
Y3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSksCisgICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdzaGFkb3cnKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9
KSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmJ30pKSk7CisKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134267</attachid>
            <date>2012-03-28 04:51:09 -0700</date>
            <delta_ts>2012-03-29 22:21:21 -0700</delta_ts>
            <desc>let me knwo required symbols on windows</desc>
            <filename>bug-82009-20120328205107.patch</filename>
            <type>text/plain</type>
            <size>45037</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE3MWM1MjFlOWY3MTYw
OTI5YzdlOWRmMjViNzg0MWQyNDNiODgyMS4uNjNhZjdjNmFlZTE1ZGNhOWJjMWFiM2VmN2JmN2Jm
NTIxMzY5ZDk3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDEyLTAzLTI2ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gQWRk
IGEgV2Fsa2VyIGNsYXNzIHdoaWNoIGNhbiB0cmF2ZXJzZSBhIHJlaWZpZWQgdHJlZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMDA5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVpZmllZFRyZWVXYWxr
ZXIgaXMgaW50ZW5kZWQgdG8gYmUgYSBzdWNjZXNzb3Igb2YgY3VycmVudCBSZWlmaWVkVHJlZVRy
YXZlcnNhbCBBUElzLgorICAgICAgICBSZWlmaWVkVHJlZVdhbGtlciB1c2VzIGEgY3Vyc29yIHBh
dHRlcm4gYW5kIHRha2VzIGEgc3RhcnRpbmcgbm9kZSBpbiBpdHMgY29uc3RydWN0b3IuCisgICAg
ICAgIEl0IHJlbWVtYmVycyBhIHBvc2l0aW9uIG9mIGN1cnJlbnRseSB2aXNpdGluZyBub2RlIGlu
IHJlaWZpZWQgdHJlZS4KKworICAgICAgICBUaGUgdHlwaWNhbCB1c2FnZSBpczoKKworICAgICAg
ICAgIGZvciAoUmVpZmllZFRyZWVXYWxrZXIgd2Fsa2VyKG5vZGUpOyB3YWxrZXIuZ2V0KCk7IHdh
bGtlci5uZXh0Tm9kZSgpKSB7CisgICAgICAgICAgICAgICAgLi4uCisgICAgICAgICAgfQorCisg
ICAgICAgIEknbGwgdXBkYXRlIGNsaWVudHMgb2YgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJcyBz
byB0aGF0IGl0IHVzZXMgdGhpcyBXYWxrZXIgaW4gZm9sbG93LXVwIHBhdGNoZXMuCisgICAgICAg
IEFmdGVyIHRoYXQsIEknbGwgZ2V0IHJpZCBvZiBSZWlmaWVkVHJlZVRyYXZlcnNhbCBBUElzIGlu
IGZhdm9yIG9mIHRoZSBXYWxrZXIuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3Jl
aWZpZWQtdHJlZS10cmF2ZXJzYWwuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OmlzU2hhZG93SG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpz
aGFkb3dUcmVlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1RyZWVPZlBhcmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCk6CisgICAgICAg
IChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VGaXJzdENoaWxkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTGFzdENoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZUNoaWxkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4pOgorICAgICAgICAo
V2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
UmVpZmllZFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludCk6
CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nSW5D
dXJyZW50VHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVy
c2VTaWJsaW5nT3JCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWlmaWVkVHJlZVdhbGtlcjo6ZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VOb2RlRXNjYXBpbmdGYWxsYmFj
a0NvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpwYXJlbnRO
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVu
dE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUGFy
ZW50Tm9kZUluQ3VycmVudFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxr
ZXI6OnRyYXZlcnNlUGFyZW50Tm9kZUJhY2tUb1lvdW5nZXJTaGFkb3dSb290T3JIb3N0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjphZGp1c3RlZFBhcmVudE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTmV4dFNpYmxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUHJldmlvdXNT
aWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpuZXh0Tm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKToKKyAg
ICAgICAgKiBkb20vUmVpZmllZFRyZWVXYWxrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFJlaWZpZWRUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZp
ZWRUcmVlV2Fsa2VyOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6
OmNhbkNyb3NzVXBwZXJCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdh
bGtlcjo6UmVpZmllZFRyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVX
YWxrZXI6OnN0YXJ0ZWRXaXRoRmlyc3RDaGlsZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpuZXh0U2libGluZ0J5V2Fsa2Vy
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpmaXJz
dENoaWxkQnlXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpsYXN0Q2hpbGRC
eVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om5leHROb2RlQnlXYWxrZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwcmV2aW91c05vZGVCeVdhbGtlcik6Cisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTAzLTI2ICBTdGVwaGVuIFdoaXRl
ICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1ha2UgZmlsdGVycyBhbmQg
dGhlIHRocmVhZGVkIGNvbXBvc2l0b3IgcGxheSB3ZWxsIHRvZ2V0aGVyLgpAQCAtNjEzMSw2ICs2
MjA1LDgxIEBACiAgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CiAg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2luZyk6
CiAKKzIwMTItMDMtMjIgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIEJlbmNobWFyayBmb3IgUmVpZmllZCBUZWVlIFRyYXZlcnNhbCBBUElzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0OTUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBpbnRlbnRpb24gdG8gY29t
bWl0IHRoaXMgcGF0Y2ggYXMgb2Ygbm93LiBKdXN0IGZvciBiZW5jaG1hcmtpbmcuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9kb20vc2hhZG93L2JlbmNobWFyay5odG1sCisKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6ZG9UcmF2ZXJzZU5leHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6ZG9UcmF2ZXJzZU5leHROb2RlSW5SZWlmaWVkVHJlZSk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorCisyMDEyLTAzLTIzICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXSVAuIFdhbGtlciB2ZXJzaW9uLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMDkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvcmVpZmll
ZC10cmVlLXdhbGtlci5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICog
ZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OmlzU2hhZG93SG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dU
cmVlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1RyZWVPZlBhcmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VGaXJzdENoaWxkKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTGFzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
aWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29y
ZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWlmaWVkVHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmll
ZFRyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVk
VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50
VHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJs
aW5nT3JCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVk
VHJlZVdhbGtlcjo6ZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJD
b3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VOb2RlRXNjYXBpbmdGYWxsYmFja0NvbnRl
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50Tm9k
ZUluQ3VycmVudFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRy
YXZlcnNlUGFyZW50Tm9kZUJhY2tUb1lvdW5nZXJTaGFkb3dSb290T3JIb3N0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjphZGp1c3RlZFBhcmVudE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTmV4dFNpYmxpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUHJldmlvdXNTaWJsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpuZXh0Tm9kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKToKKyAgICAgICAg
KiBkb20vUmVpZmllZFRyZWVXYWxrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFJlaWZpZWRUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVl
V2Fsa2VyOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OmFsbG93
Q3Jvc3NpbmdVcHBlckJvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fs
a2VyOjpSZWlmaWVkVHJlZVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdh
bGtlcjo6c3RhcnRlZFdpdGhGaXJzdENoaWxkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om5leHRTaWJsaW5nQnlXYWxrZXIp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZpcnN0
Q2hpbGRCeVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omxhc3RDaGlsZEJ5
V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bmV4dE5vZGVCeVdhbGtlcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDMtMjEgIFhpbmduYW4gV2FuZyAg
PHhpbmduYW4ud2FuZ0BpbnRlbC5jb20+CiAKICAgICAgICAgV2ViIGF1ZGlvIGxheW91dCB0ZXN0
IGZhaWxlZCBpbiBkZWJ1ZyB3aXRoIGFuIEFTU0VSVCBlcnJvciBpbiBSZXZlcmJDb252b2x2ZXJT
dGFnZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWY5NzdmOGI2NDEwNDVlMDQ3ZDQ1NDZk
MzhjMmYwM2E3MzkwNWYzNS4uM2FjNWExYzg1ZmQyMGNmODg5OTExZjZjMDVjNmU2MjlkZTMxZDg3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTYxNiw2ICs2MTYsNyBAQCBTRVQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgZG9tL1JhbmdlRXhjZXB0aW9uLmNwcAogICAgIGRvbS9SZWdpc3RlcmVkRXZl
bnRMaXN0ZW5lci5jcHAKICAgICBkb20vUmVpZmllZFRyZWVUcmF2ZXJzYWwuY3BwCisgICAgZG9t
L1JlaWZpZWRUcmVlV2Fsa2VyLmNwcAogICAgIGRvbS9TY29wZWRFdmVudFF1ZXVlLmNwcAogICAg
IGRvbS9TY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuY3BwCiAgICAgZG9tL1NjcmlwdEVsZW1lbnQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBkYmFkMDE0NWFmMDIxY2I4NjM0
MjEyOGI5NzliZWNjYjAxMTMwNTdhLi4wYjc5ODM2M2RhNjg4OGUyNGVkZjc4MzMzM2IwYWNiZTg3
YTg1OGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE5MjMsNiArMTkyMyw4
IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JlZ2lzdGVyZWRF
dmVudExpc3RlbmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SZWlmaWVkVHJlZVRyYXZlcnNh
bC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9SZWlmaWVkVHJlZVRyYXZlcnNhbC5oIFwKKwlT
b3VyY2UvV2ViQ29yZS9kb20vUmVpZmllZFRyZWVXYWxrZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9kb20vUmVpZmllZFRyZWVXYWxrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1JlbmRlcmVk
RG9jdW1lbnRNYXJrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1Njb3BlZEV2ZW50UXVldWUu
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU2NvcGVkRXZlbnRRdWV1ZS5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IDJjZjM2ZmIwNzRhNjg0MjM2MTk3Y2RlYmQxYTg0OTc0OTU5NTQzMjIuLjkyMTdlYTU2
MmMyZjZiMGNlMGFkMDJjMDdjNDFhZDVlYTM1OWU3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTkzLDYg
KzU5Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9SYXdEYXRhRG9jdW1lbnRQYXJzZXIuaCBc
CiAgICAgZG9tL1JlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmNwcCBcCiAgICAgZG9tL1JlaWZpZWRU
cmVlVHJhdmVyc2FsLmNwcCBcCisgICAgZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmNwcCBcCiAgICAg
ZG9tL1Njb3BlZEV2ZW50UXVldWUuY3BwIFwKICAgICBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250
cm9sbGVyLmNwcCBcCiAgICAgZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNlci5jcHAgXApAQCAt
MTcyMyw2ICsxNzI0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgZG9tL1JhbmdlLmggXAogICAgIGRv
bS9SZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIFwKICAgICBkb20vUmVpZmllZFRyZWVUcmF2ZXJz
YWwuaCBcCisgICAgZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmggXAogICAgIGRvbS9SZW5kZXJlZERv
Y3VtZW50TWFya2VyLmggXAogICAgIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaCBc
CiAgICAgZG9tL1NjcmlwdEVsZW1lbnQuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggM2QyZWY3OTYw
ZDhjZmJjOTYyMmQ0ZmQ3MWYzYTc0NTlhODMxYjlmNC4uMzkyOGQyYjc5ZDdjMzFlZjhiMTZmN2Zm
NjJhOWEzMzM5MTY0MWZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjI2LDYgKzYyNiw3IEBACiAg
ICAgICAgICAgICAnZG9tL1JhbmdlQm91bmRhcnlQb2ludC5oJywKICAgICAgICAgICAgICdkb20v
UmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCcsCiAgICAgICAgICAgICAnZG9tL1JlaWZpZWRUcmVl
VHJhdmVyc2FsLmgnLAorICAgICAgICAgICAgJ2RvbS9SZWlmaWVkVHJlZVdhbGtlci5oJywKICAg
ICAgICAgICAgICdkb20vUmVuZGVyZWREb2N1bWVudE1hcmtlci5oJywKICAgICAgICAgICAgICdk
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oJywKICAgICAgICAgICAgICdkb20vU2NyaXB0UnVu
bmVyLmgnLApAQCAtNTIxOSw2ICs1MjIwLDggQEAKICAgICAgICAgICAgICdkb20vUmVnaXN0ZXJl
ZEV2ZW50TGlzdGVuZXIuY3BwJywKICAgICAgICAgICAgICdkb20vUmVpZmllZFRyZWVUcmF2ZXJz
YWwuY3BwJywKICAgICAgICAgICAgICdkb20vUmVpZmllZFRyZWVUcmF2ZXJzYWwuaCcsCisgICAg
ICAgICAgICAnZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmNwcCcsCisgICAgICAgICAgICAnZG9tL1Jl
aWZpZWRUcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9SZXF1ZXN0QW5pbWF0aW9uRnJh
bWVDYWxsYmFjay5oJywKICAgICAgICAgICAgICdkb20vU2NvcGVkRXZlbnRRdWV1ZS5jcHAnLAog
ICAgICAgICAgICAgJ2RvbS9TY29wZWRFdmVudFF1ZXVlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAwOGVlNzgwMTViYmVlY2FkYWZlMmNi
ODhhOWVlOGU0MzY0MTI1YjUxLi5jN2U5ZTRiMjIyYzU4YjQ4MjBiMWFiZWNlZjk4ZDA1NGY5YjMw
ZjUzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNTE5MTAsNiArNTE5MTAsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXFJlaWZpZWRUcmVlV2Fsa2VyLmNwcCIKKwkJCQk+CisJCQk8
L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFJlaWZpZWRUcmVlV2Fs
a2VyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGY1ZjVlMzA3NWU2ODM2NjlhZDc0ZDQ0ODYyZDI4ODdmOWUxNWQyMDMuLjVm
N2U5YjUyOWNmYzA2NDliNWVkZjczNTJlYzg0OWE5MmEwZTIyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNjcsNiArMTM2
Nyw4IEBACiAJCTRBMUU3MUE2MTRFMTA2QUMwMDYyNkY5RCAvKiBKU1NoYWRvd1Jvb3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBMUU3MUE0MTRFMTA2
QUMwMDYyNkY5RCAvKiBKU1NoYWRvd1Jvb3QuaCAqLzsgfTsKIAkJNEEzOEJGNTAxNEZFMUMwOTAw
NjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEzOEJGNEUxNEZFMUMwOTAwNjEyNTEyIC8qIFdl
YlNvY2tldERlZmxhdGVGcmFtZXIuY3BwICovOyB9OwogCQk0QTM4QkY1MTE0RkUxQzA5MDA2MTI1
MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNEEzOEJGNEYxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tl
dERlZmxhdGVGcmFtZXIuaCAqLzsgfTsKKwkJNEE2QTBDNUIxNTIzMkYyNDAwQjA5QzZFIC8qIFJl
aWZpZWRUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRBNkEwQzU5MTUyMzJGMjQwMEIwOUM2RSAvKiBSZWlmaWVkVHJlZVdhbGtlci5j
cHAgKi87IH07CisJCTRBNkEwQzVDMTUyMzJGMjQwMEIwOUM2RSAvKiBSZWlmaWVkVHJlZVdhbGtl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2QTBD
NUExNTIzMkYyNDAwQjA5QzZFIC8qIFJlaWZpZWRUcmVlV2Fsa2VyLmggKi87IH07CiAJCTRBNkU5
RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdG
OCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCAqLzsgfTsKIAkJNEE2RTlGQzQxM0MxN0QxRDAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZh
bHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NEE2RTlGQzcxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzUxM0MxN0Q1
NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovOyB9OwpAQCAtODMxMSw2ICs4
MzEzLDggQEAKIAkJNEExRTcxQTQxNEUxMDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93Um9vdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NoYWRvd1Jvb3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEEzOEJGNEUxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tl
dERlZmxhdGVGcmFtZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHA7IHBhdGggPSBNb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0RGVmbGF0ZUZyYW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRB
MzhCRjRGMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldERlZmxhdGVGcmFtZXIuaDsgcGF0
aCA9IE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNkEwQzU5MTUyMzJGMjQwMEIwOUM2RSAvKiBSZWlmaWVk
VHJlZVdhbGtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWlm
aWVkVHJlZVdhbGtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNkEwQzVB
MTUyMzJGMjQwMEIwOUM2RSAvKiBSZWlmaWVkVHJlZVdhbGtlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZWlmaWVkVHJlZVdhbGtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVZhbHVl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE2RTlGQzIxM0MxN0QxRDAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRm9udEZlYXR1cmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTZF
OUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVNldHRpbmdzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDg4LDYgKzIxMDkyLDggQEAKIAkJCQk4NTAz
MUIzNjBBNDRFRkM3MDBGOTkyRTAgLyogUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCAqLywKIAkJ
CQk0QTAxM0QyNzE1MTJGRDc3MDBFMUU2MTMgLyogUmVpZmllZFRyZWVUcmF2ZXJzYWwuY3BwICov
LAogCQkJCTRBMDEzRDI4MTUxMkZENzcwMEUxRTYxMyAvKiBSZWlmaWVkVHJlZVRyYXZlcnNhbC5o
ICovLAorCQkJCTRBNkEwQzU5MTUyMzJGMjQwMEIwOUM2RSAvKiBSZWlmaWVkVHJlZVdhbGtlci5j
cHAgKi8sCisJCQkJNEE2QTBDNUExNTIzMkYyNDAwQjA5QzZFIC8qIFJlaWZpZWRUcmVlV2Fsa2Vy
LmggKi8sCiAJCQkJQTc2RTVGN0UxMzVFMERDRjAwQTY5ODM3IC8qIFJlbmRlcmVkRG9jdW1lbnRN
YXJrZXIuaCAqLywKIAkJCQk0OTk4QUVDNDEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2suaCAqLywKIAkJCQk0OTk4QUVDNTEzRjlEMEVBMDA5MEIxQUEgLyog
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaWRsICovLApAQCAtMjM3OTQsNiArMjM4MDAs
NyBAQAogCQkJCTg1MDMxQjRDMEE0NEVGQzcwMEY5OTJFMCAvKiBSZWdpc3RlcmVkRXZlbnRMaXN0
ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBMkQwRDAwNkMxRDAwRUY2RjI2IC8qIFJl
Z3VsYXJFeHByZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0QTAxM0QyQTE1MTJGRDc3MDBF
MUU2MTMgLyogUmVpZmllZFRyZWVUcmF2ZXJzYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTRBNkEw
QzVDMTUyMzJGMjQwMEIwOUM2RSAvKiBSZWlmaWVkVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTMzMDlFMDEwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZUNTU1Byb3BlcnR5Q29tbWFu
ZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDA2QzBEOEYwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92
ZUZvcm1hdENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTA1MDk5RTY0OTIwMDU2
RTU4MSAvKiBSZW1vdmVOb2RlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk0NSw2ICsy
Njk1Miw3IEBACiAJCQkJODUwMzFCNEIwQTQ0RUZDNzAwRjk5MkUwIC8qIFJlZ2lzdGVyZWRFdmVu
dExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUIyQzNEQTJDMEQwMDZDMUQwMEVGNkYy
NiAvKiBSZWd1bGFyRXhwcmVzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0QTAxM0QyOTE1
MTJGRDc3MDBFMUU2MTMgLyogUmVpZmllZFRyZWVUcmF2ZXJzYWwuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJNEE2QTBDNUIxNTIzMkYyNDAwQjA5QzZFIC8qIFJlaWZpZWRUcmVlV2Fsa2VyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkzMzA5RTAwMDk5RTY0OTIwMDU2RTU4MSAvKiBSZW1vdmVDU1NQ
cm9wZXJ0eUNvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDA2QzBEOTAwQ0ZEMTE0NjAw
NjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMz
MDlFMDQwOTlFNjQ5MjAwNTZFNTgxIC8qIFJlbW92ZU5vZGVDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWlmaWVkVHJlZVdhbGtlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWU3ODQwODJmMTY0NWQxNTU1Y2QyZWJiOTQ2MjNhZGE3YzE2NTlkNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SZWlmaWVkVHJlZVdhbGtlci5jcHAKQEAgLTAsMCArMSwz
MDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVpZmllZFRyZWVXYWxrZXIu
aCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29udGVudFNlbGVjdG9y
LmgiCisjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKKyNpbmNsdWRlICJTaGFkb3dUcmVlLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93SG9z
dChjb25zdCBOb2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzRWxlbWVu
dE5vZGUoKSAmJiB0b0VsZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKK30KKworc3RhdGlj
IGlubGluZSBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlRm9yKGNvbnN0IE5vZGUqIG5vZGUpCit7Cisg
ICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gdG9F
bGVtZW50KG5vZGUpLT5zaGFkb3dUcmVlKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp
bmxpbmUgU2hhZG93VHJlZSogc2hhZG93VHJlZU9mUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7
CisgICAgaWYgKG5vZGUgJiYgbm9kZS0+cGFyZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gc2hh
ZG93VHJlZUZvcihub2RlLT5wYXJlbnROb2RlKCkpOworICAgIHJldHVybiAwOworfQorCit2b2lk
IFJlaWZpZWRUcmVlV2Fsa2VyOjpmaXJzdENoaWxkKCkKK3sKKyAgICBBU1NFUlQobV9ub2RlKTsK
KyAgICBtX25vZGUgPSB0cmF2ZXJzZUNoaWxkKG1fbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9y
d2FyZCk7CisgICAgQVNTRVJUKCFtX25vZGUgfHwgIW1fbm9kZS0+aXNTaGFkb3dSb290KCkpOwor
fQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VGaXJzdENoaWxkKGNvbnN0IE5v
ZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIHJldHVybiB0cmF2ZXJz
ZUNoaWxkKG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbkZvcndhcmQpOworfQorCit2b2lkIFJlaWZp
ZWRUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoKQoreworICAgIEFTU0VSVChtX25vZGUpOworICAgIG1f
bm9kZSA9IHRyYXZlcnNlTGFzdENoaWxkKG1fbm9kZSk7CisgICAgQVNTRVJUKCFtX25vZGUgfHwg
IW1fbm9kZS0+aXNTaGFkb3dSb290KCkpOworfQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6
dHJhdmVyc2VMYXN0Q2hpbGQoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQo
bm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlQ2hpbGQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9u
QmFja3dhcmQpOworfQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZChj
b25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25zdAorewor
ICAgIEFTU0VSVChub2RlKTsKKyAgICAvLyBGSVhNRTogQWRkIGFuIGFzc2VydGlvbiBvbmNlIElu
c2VydGlvblBvaW50IGhhdmUgaXNBY3RpdmUoKSBmdW5jdGlvbi4KKyAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMTAKKyAgICAvLyBBU1NFUlQoIWlzSW5z
ZXJ0aW9uUG9pbnQobm9kZSkgfHwgIXRvSW5zZXJ0aW9uUG9pbnQobm9kZSktPmlzQWN0aXZlKCkp
OworICAgIEFTU0VSVCghbm9kZS0+aXNTaGFkb3dSb290KCkpOworICAgIGlmIChjYW5Dcm9zc1Vw
cGVyQm91bmRhcnkoKSkgeworICAgICAgICBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlID0gc2hhZG93
VHJlZUZvcihub2RlKTsKKyAgICAgICAgaWYgKHNoYWRvd1RyZWUgJiYgc2hhZG93VHJlZS0+aGFz
U2hhZG93Um9vdCgpKQorICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNlTGlnaHRDaGlsZHJlbihz
aGFkb3dUcmVlLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSwgZGlyZWN0aW9uKTsKKyAgICAgICAgcmV0
dXJuIHRyYXZlcnNlTGlnaHRDaGlsZHJlbihub2RlLCBkaXJlY3Rpb24pOworICAgIH0KKyAgICBp
ZiAoaXNTaGFkb3dIb3N0KG5vZGUpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdHJh
dmVyc2VMaWdodENoaWxkcmVuKG5vZGUsIGRpcmVjdGlvbik7Cit9CisKK05vZGUqIFJlaWZpZWRU
cmVlV2Fsa2VyOjp0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oY29uc3QgTm9kZSogbm9kZSwgVHJhdmVy
c2FsRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKE5v
ZGUqIGNoaWxkID0gKGRpcmVjdGlvbiA9PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gbm9k
ZS0+Zmlyc3RDaGlsZCgpIDogbm9kZS0+bGFzdENoaWxkKCkpKQorICAgICAgICByZXR1cm4gdHJh
dmVyc2VOb2RlKGNoaWxkLCBkaXJlY3Rpb24pOworICAgIHJldHVybiAwOworfQorCitOb2RlKiBS
ZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VOb2RlKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNh
bERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChpc0lu
c2VydGlvblBvaW50KG5vZGUpKSB7CisgICAgICAgIGNvbnN0IEhUTUxDb250ZW50U2VsZWN0aW9u
TGlzdCogc2VsZWN0aW9uTGlzdCA9IHRvSW5zZXJ0aW9uUG9pbnQobm9kZSktPnNlbGVjdGlvbnMo
KTsKKyAgICAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSAoZGlyZWN0
aW9uID09IFRyYXZlcnNhbERpcmVjdGlvbkZvcndhcmQgPyBzZWxlY3Rpb25MaXN0LT5maXJzdCgp
IDogc2VsZWN0aW9uTGlzdC0+bGFzdCgpKSkKKyAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZU5v
ZGUoc2VsZWN0aW9uLT5ub2RlKCksIGRpcmVjdGlvbik7CisgICAgICAgIHJldHVybiB0cmF2ZXJz
ZUxpZ2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9uKTsKKyAgICB9CisgICAgcmV0dXJuIGNvbnN0
X2Nhc3Q8Tm9kZSo+KG5vZGUpOworfQorCit2b2lkIFJlaWZpZWRUcmVlV2Fsa2VyOjpuZXh0U2li
bGluZygpCit7CisgICAgQVNTRVJUKG1fbm9kZSk7CisgICAgQVNTRVJUKCFtX25vZGUtPmlzU2hh
ZG93Um9vdCgpKTsKKyAgICBtX25vZGUgPSB0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlv
blBvaW50KG1fbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7CisgICAgQVNTRVJUKCFt
X25vZGUgfHwgIW1fbm9kZXQtPmlzU2hhZG93Um9vdCgpKTsKK30KKwordm9pZCBSZWlmaWVkVHJl
ZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKK3sKKyAgICBBU1NFUlQobV9ub2RlKTsKKyAgICBB
U1NFUlQoIW1fbm9kZS0+aXNTaGFkb3dSb290KCkpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlU2li
bGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobV9ub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNr
d2FyZCk7CisgICAgQVNTRVJUKCFtX25vZGUgfHwgIW1fbm9kZS0+aXNTaGFkb3dSb290KCkpOwor
fQorCitOb2RlKiBSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNl
cnRpb25Qb2ludChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9u
KQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlID0gc2hh
ZG93VHJlZU9mUGFyZW50KG5vZGUpOworICAgIGlmICghc2hhZG93VHJlZSkKKyAgICAgICAgcmV0
dXJuIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUobm9kZSwgZGlyZWN0aW9uKTsKKyAgICBI
VE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gc2hhZG93VHJlZS0+c2VsZWN0aW9uRm9y
KG5vZGUpOworICAgIGlmICghc2VsZWN0aW9uKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VTaWJs
aW5nSW5DdXJyZW50VHJlZShub2RlLCBkaXJlY3Rpb24pOworICAgIGlmIChIVE1MQ29udGVudFNl
bGVjdGlvbiogbmV4dFNlbGVjdGlvbiA9IChkaXJlY3Rpb24gPT0gVHJhdmVyc2FsRGlyZWN0aW9u
Rm9yd2FyZCA/IHNlbGVjdGlvbi0+bmV4dCgpIDogc2VsZWN0aW9uLT5wcmV2aW91cygpKSkKKyAg
ICAgICAgcmV0dXJuIHRyYXZlcnNlTm9kZShuZXh0U2VsZWN0aW9uLT5ub2RlKCksIGRpcmVjdGlv
bik7CisgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQoc2Vs
ZWN0aW9uLT5pbnNlcnRpb25Qb2ludCgpLCBkaXJlY3Rpb24pOworfQorCitOb2RlKiBSZWlmaWVk
VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShjb25zdCBOb2RlKiBub2Rl
LCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAg
ICBpZiAoTm9kZSogbmV4dCA9IChkaXJlY3Rpb24gPT0gVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2Fy
ZCA/IG5vZGUtPm5leHRTaWJsaW5nKCkgOiBub2RlLT5wcmV2aW91c1NpYmxpbmcoKSkpCisgICAg
ICAgIHJldHVybiB0cmF2ZXJzZU5vZGUobmV4dCwgZGlyZWN0aW9uKTsKKyAgICBpZiAoTm9kZSog
bmV4dCA9IHRyYXZlcnNlU2libGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jvb3Qobm9kZSwgZGly
ZWN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgcmV0dXJuIGVzY2FwZUZhbGxiYWNr
Q29udGVudEVsZW1lbnQobm9kZSwgZGlyZWN0aW9uKTsKK30KKworTm9kZSogUmVpZmllZFRyZWVX
YWxrZXI6OnRyYXZlcnNlU2libGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jvb3QoY29uc3QgTm9k
ZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9k
ZSk7CisgICAgaWYgKG5vZGUtPnBhcmVudE5vZGUoKSAmJiBub2RlLT5wYXJlbnROb2RlKCktPmlz
U2hhZG93Um9vdCgpKSB7CisgICAgICAgIFNoYWRvd1Jvb3QqIHBhcmVudFNoYWRvd1Jvb3QgPSB0
b1NoYWRvd1Jvb3Qobm9kZS0+cGFyZW50Tm9kZSgpKTsKKyAgICAgICAgaWYgKCFwYXJlbnRTaGFk
b3dSb290LT5pc1lvdW5nZXN0KCkpIHsKKyAgICAgICAgICAgIEluc2VydGlvblBvaW50KiBhc3Np
Z25lZEluc2VydGlvblBvaW50ID0gcGFyZW50U2hhZG93Um9vdC0+YXNzaWduZWRUbygpOworICAg
ICAgICAgICAgQVNTRVJUKGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQpOworICAgICAgICAgICAgcmV0
dXJuIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUoYXNzaWduZWRJbnNlcnRpb25Qb2ludCwg
ZGlyZWN0aW9uKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworTm9kZSog
UmVpZmllZFRyZWVXYWxrZXI6OmVzY2FwZUZhbGxiYWNrQ29udGVudEVsZW1lbnQoY29uc3QgTm9k
ZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9k
ZSk7CisgICAgaWYgKG5vZGUtPnBhcmVudE5vZGUoKSAmJiBpc0luc2VydGlvblBvaW50KG5vZGUt
PnBhcmVudE5vZGUoKSkpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0lu
c2VydGlvblBvaW50KG5vZGUtPnBhcmVudE5vZGUoKSwgZGlyZWN0aW9uKTsKKyAgICByZXR1cm4g
MDsKK30KKworTm9kZSogUmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZUVzY2FwaW5nRmFs
bGJhY2tDb250ZW50cyhjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVChub2Rl
KTsKKyAgICBpZiAoaXNJbnNlcnRpb25Qb2ludChub2RlKSkKKyAgICAgICAgcmV0dXJuIHRyYXZl
cnNlUGFyZW50Tm9kZU9yQmFja1RvSW5zZXJ0aW9uUG9pbnQobm9kZSk7CisgICAgcmV0dXJuIGNv
bnN0X2Nhc3Q8Tm9kZSo+KG5vZGUpOworfQorCit2b2lkIFJlaWZpZWRUcmVlV2Fsa2VyOjpwYXJl
bnROb2RlKCkKK3sKKyAgICBBU1NFUlQobV9ub2RlKTsKKyAgICBBU1NFUlQoIW1fbm9kZS0+aXNT
aGFkb3dSb290KCkpOworICAgIC8vIEZJWE1FOiBBZGQgYW4gYXNzZXJ0aW9uIG9uY2UgSW5zZXJ0
aW9uUG9pbnQgaGF2ZSBpc0FjdGl2ZSgpIGZ1bmN0aW9uLgorICAgIC8vIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjAxMAorICAgIC8vIEFTU0VSVCghaXNJbnNlcnRp
b25Qb2ludChub2RlKSB8fCAhdG9JbnNlcnRpb25Qb2ludChub2RlKS0+aXNBY3RpdmUoKSk7Cisg
ICAgbV9ub2RlID0gdHJhdmVyc2VQYXJlbnROb2RlKG1fbm9kZSk7Cit9CisKK05vZGUqIFJlaWZp
ZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGUoY29uc3QgTm9kZSogbm9kZSkgY29uc3QK
K3sKKyAgICBpZiAoU2hhZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBhcmVudChu
b2RlKSkgeworICAgICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHNo
YWRvd1RyZWUtPnNlbGVjdGlvbkZvcihub2RlKSkKKyAgICAgICAgICAgIHJldHVybiB0cmF2ZXJz
ZVBhcmVudE5vZGUoc2VsZWN0aW9uLT5pbnNlcnRpb25Qb2ludCgpKTsKKyAgICB9CisgICAgcmV0
dXJuIHRyYXZlcnNlUGFyZW50Tm9kZUluQ3VycmVudFRyZWUobm9kZSk7Cit9CisKK05vZGUqIFJl
aWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGVJbkN1cnJlbnRUcmVlKGNvbnN0IE5v
ZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgaWYgKE5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5v
ZGUoKSkgeworICAgICAgICBpZiAocGFyZW50LT5pc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgICAg
IHJldHVybiB0cmF2ZXJzZVBhcmVudE5vZGVCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdE9ySG9zdCh0
b1NoYWRvd1Jvb3QocGFyZW50KSk7CisgICAgICAgIHJldHVybiB0cmF2ZXJzZU5vZGVFc2NhcGlu
Z0ZhbGxiYWNrQ29udGVudHMocGFyZW50KTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK05v
ZGUqIFJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGVCYWNrVG9Zb3VuZ2VyU2hh
ZG93Um9vdE9ySG9zdChjb25zdCBTaGFkb3dSb290KiBzaGFkb3dSb290KSBjb25zdAoreworICAg
IEFTU0VSVChzaGFkb3dSb290KTsKKyAgICBpZiAoc2hhZG93Um9vdC0+aXNZb3VuZ2VzdCgpKSB7
CisgICAgICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkKKyAgICAgICAgICAgIHJldHVy
biBzaGFkb3dSb290LT5ob3N0KCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBJbnNl
cnRpb25Qb2ludCogYXNzaWduZWRJbnNlcnRpb25Qb2ludCA9IHNoYWRvd1Jvb3QtPmFzc2lnbmVk
VG8oKTsKKyAgICBBU1NFUlQoYXNzaWduZWRJbnNlcnRpb25Qb2ludCk7CisgICAgcmV0dXJuIHRy
YXZlcnNlUGFyZW50Tm9kZU9yQmFja1RvSW5zZXJ0aW9uUG9pbnQoYXNzaWduZWRJbnNlcnRpb25Q
b2ludCk7Cit9CisKK3ZvaWQgUmVpZmllZFRyZWVXYWxrZXI6OmFkanVzdGVkUGFyZW50Tm9kZSgp
Cit7CisgICAgQVNTRVJUKG1fbm9kZSk7CisgICAgaWYgKFNoYWRvd1RyZWUqIHNoYWRvd1RyZWUg
PSBzaGFkb3dUcmVlT2ZQYXJlbnQobV9ub2RlKSkgeworICAgICAgICBpZiAoSFRNTENvbnRlbnRT
ZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHNoYWRvd1RyZWUtPnNlbGVjdGlvbkZvcihtX25vZGUpKSB7
CisgICAgICAgICAgICBtX25vZGUgPSBzZWxlY3Rpb24tPmluc2VydGlvblBvaW50KCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKCFtX25vZGUtPmlzU2hh
ZG93Um9vdCgpKSB7CisgICAgICAgIG1fbm9kZSA9IG1fbm9kZS0+cGFyZW50Tm9kZSgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QgPSB0
b1NoYWRvd1Jvb3QobV9ub2RlKTsKKyAgICBpZiAoIXNoYWRvd1Jvb3QtPmlzWW91bmdlc3QoKSkg
eworICAgICAgICBBU1NFUlQoc2hhZG93Um9vdC0+YXNzaWduZWRUbygpKTsKKyAgICAgICAgbV9u
b2RlID0gc2hhZG93Um9vdC0+YXNzaWduZWRUbygpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkKKyAgICAgICAgbV9ub2RlID0gc2hhZG93
Um9vdC0+aG9zdCgpOworICAgIGVsc2UKKyAgICAgICAgbV9ub2RlID0gMDsKK30KKworTm9kZSog
UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTmV4dFNpYmxpbmcoY29uc3QgTm9kZSogbm9kZSkK
K3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1Rv
SW5zZXJ0aW9uUG9pbnQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7Cit9CisKK05v
ZGUqIFJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZVByZXZpb3VzU2libGluZyhjb25zdCBOb2Rl
KiBub2RlKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5n
T3JCYWNrVG9JbnNlcnRpb25Qb2ludChub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNrd2FyZCk7
Cit9CisKK3ZvaWQgUmVpZmllZFRyZWVXYWxrZXI6Om5leHROb2RlKCkKK3sKKyAgICBpZiAoTm9k
ZSogbmV4dCA9IHRyYXZlcnNlRmlyc3RDaGlsZChtX25vZGUpKSB7CisgICAgICAgIG1fbm9kZSA9
IG5leHQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKE5vZGUqIG5leHQgPSB0cmF2
ZXJzZU5leHRTaWJsaW5nKG1fbm9kZSkpIHsKKyAgICAgICAgbV9ub2RlID0gbmV4dDsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBjb25zdCBOb2RlKiBuID0gbV9ub2RlOworICAgIHdoaWxl
IChuICYmICF0cmF2ZXJzZU5leHRTaWJsaW5nKG4pKQorICAgICAgICBuID0gdHJhdmVyc2VQYXJl
bnROb2RlKG4pOworICAgIGlmIChuKSB7CisgICAgICAgIG1fbm9kZSA9IHRyYXZlcnNlTmV4dFNp
Ymxpbmcobik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV9ub2RlID0gMDsKK30KKwor
dm9pZCBSZWlmaWVkVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKCkKK3sKKyAgICBpZiAoTm9kZSog
biA9IHRyYXZlcnNlUHJldmlvdXNTaWJsaW5nKG1fbm9kZSkpIHsKKyAgICAgICAgd2hpbGUgKE5v
ZGUqIGNoaWxkID0gdHJhdmVyc2VMYXN0Q2hpbGQobikpCisgICAgICAgICAgICBuID0gY2hpbGQ7
CisgICAgICAgIG1fbm9kZSA9IG47CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgcGFyZW50
Tm9kZSgpOworfQorCit9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1JlaWZpZWRUcmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmVpZmllZFRyZWVX
YWxrZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NWFjNzUxOTU1NWYzMTlmOGMxM2Y3ZjVhMGE1M2M1OGI1MWQ4
ZTM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JlaWZpZWRUcmVlV2Fs
a2VyLmgKQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlaWZpZWRUcmVlV2Fsa2VyX2gKKyNk
ZWZpbmUgUmVpZmllZFRyZWVXYWxrZXJfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IE5vZGU7CitjbGFzcyBTaGFkb3dSb290OworCitjbGFzcyBSZWlmaWVkVHJlZVdhbGtlciB7Citw
dWJsaWM6CisgICAgZW51bSBQb2xpY3kgeworICAgICAgICBDcm9zc1VwcGVyQm91bmRhcnksCisg
ICAgICAgIERvTm90Q3Jvc3NVcHBkckJvdW5kYXJ5LAorICAgIH07CisKKyAgICBpbmxpbmUgUmVp
ZmllZFRyZWVXYWxrZXIoY29uc3QgTm9kZSosIFBvbGljeSA9IENyb3NzVXBwZXJCb3VuZGFyeSk7
CisKKyAgICAvLyBGb3IgYSBjb21tb24gdXNlIGNhc2Ugc3VjaCBhczoKKyAgICAvLyBmb3IgKFJl
aWZpZWRUcmVlV2Fsa2VyIHdhbGtlciA9IFJlaWZpZWRUcmVlV2Fsa2VyOjpzdGFydGVkV2l0aEZp
cnN0Q2hpbGQobm9kZSk7IHdhbGtlci5nZXQoKTsgd2Fsa2VyLm5leHRTaWJsaW5nKCkpCisgICAg
c3RhdGljIGlubGluZSBSZWlmaWVkVHJlZVdhbGtlciBzdGFydGVkV2l0aEZpcnN0Q2hpbGQoY29u
c3QgTm9kZSosIFBvbGljeSA9IENyb3NzVXBwZXJCb3VuZGFyeSk7CisKKyAgICBOb2RlKiBnZXQo
KSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihtX25vZGUpOyB9CisKKyAgICB2b2lk
IGZpcnN0Q2hpbGQoKTsKKyAgICB2b2lkIGxhc3RDaGlsZCgpOworCisgICAgdm9pZCBuZXh0U2li
bGluZygpOworICAgIHZvaWQgcHJldmlvdXNTaWJsaW5nKCk7CisKKyAgICB2b2lkIHBhcmVudE5v
ZGUoKTsKKworICAgIHZvaWQgbmV4dE5vZGUoKTsKKyAgICB2b2lkIHByZXZpb3VzTm9kZSgpOwor
CisgICAgLy8gRklYTUU6IEFuICdhZGp1c3RlZCcgaXMgbm90IGdvb2QgbmFtZSBmb3IgZ2VuZXJh
bCB1c2UgY2FzZS4gUmVuYW1lIHRoaXMuCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgyMDIyCisgICAgLy8gVGhpcyBtYXkgcmV0dXJuIFNoYWRvd1Jvb3Qg
b3IgSW5zZXJ0aW9uUG9pbnQuCisgICAgdm9pZCBhZGp1c3RlZFBhcmVudE5vZGUoKTsKKworcHJp
dmF0ZToKKyAgICBlbnVtIFRyYXZlcnNhbERpcmVjdGlvbiB7CisgICAgICAgIFRyYXZlcnNhbERp
cmVjdGlvbkZvcndhcmQsCisgICAgICAgIFRyYXZlcnNhbERpcmVjdGlvbkJhY2t3YXJkCisgICAg
fTsKKworICAgIGJvb2wgY2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KCkgY29uc3QgeyByZXR1cm4gbV9w
b2xpY3kgPT0gQ3Jvc3NVcHBlckJvdW5kYXJ5OyB9CisKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVy
c2VOb2RlKGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOworICAgIHN0YXRpYyBOb2Rl
KiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7
CisKKyAgICBOb2RlKiB0cmF2ZXJzZUZpcnN0Q2hpbGQoY29uc3QgTm9kZSopIGNvbnN0OworICAg
IE5vZGUqIHRyYXZlcnNlTGFzdENoaWxkKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAgICBOb2RlKiB0
cmF2ZXJzZUNoaWxkKGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pIGNvbnN0OworICAg
IE5vZGUqIHRyYXZlcnNlUGFyZW50Tm9kZShjb25zdCBOb2RlKikgY29uc3Q7CisKKyAgICBzdGF0
aWMgTm9kZSogdHJhdmVyc2VOZXh0U2libGluZyhjb25zdCBOb2RlKik7CisgICAgc3RhdGljIE5v
ZGUqIHRyYXZlcnNlUHJldmlvdXNTaWJsaW5nKGNvbnN0IE5vZGUqKTsKKworICAgIHN0YXRpYyBO
b2RlKiB0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KGNvbnN0IE5vZGUqLCBU
cmF2ZXJzYWxEaXJlY3Rpb24pOworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZVNpYmxpbmdJbkN1
cnJlbnRUcmVlKGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOworCisgICAgc3RhdGlj
IE5vZGUqIHRyYXZlcnNlU2libGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jvb3QoY29uc3QgTm9k
ZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisgICAgc3RhdGljIE5vZGUqIGVzY2FwZUZhbGxiYWNr
Q29udGVudEVsZW1lbnQoY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisKKyAgICBO
b2RlKiB0cmF2ZXJzZU5vZGVFc2NhcGluZ0ZhbGxiYWNrQ29udGVudHMoY29uc3QgTm9kZSopIGNv
bnN0OworCisgICAgTm9kZSogdHJhdmVyc2VQYXJlbnROb2RlT3JCYWNrVG9JbnNlcnRpb25Qb2lu
dChjb25zdCBOb2RlKikgY29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VQYXJlbnROb2RlSW5DdXJy
ZW50VHJlZShjb25zdCBOb2RlKikgY29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VQYXJlbnROb2Rl
QmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhvc3QoY29uc3QgU2hhZG93Um9vdCopIGNvbnN0Owor
CisgICAgY29uc3QgTm9kZSogbV9ub2RlOworICAgIFBvbGljeSBtX3BvbGljeTsKK307CisKK1Jl
aWZpZWRUcmVlV2Fsa2VyOjpSZWlmaWVkVHJlZVdhbGtlcihjb25zdCBOb2RlKiBub2RlLCBQb2xp
Y3kgcG9saWN5KQorICAgIDogbV9ub2RlKG5vZGUpCisgICAgLCBtX3BvbGljeShwb2xpY3kpCit7
Cit9CisKK1JlaWZpZWRUcmVlV2Fsa2VyIFJlaWZpZWRUcmVlV2Fsa2VyOjpzdGFydGVkV2l0aEZp
cnN0Q2hpbGQoY29uc3QgTm9kZSogbm9kZSwgUG9saWN5IHBvbGljeSkKK3sKKyAgICBSZWlmaWVk
VHJlZVdhbGtlciB3YWxrZXIobm9kZSwgcG9saWN5KTsKKyAgICB3YWxrZXIuZmlyc3RDaGlsZCgp
OworICAgIHJldHVybiB3YWxrZXI7Cit9CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGYyZjEwOTgwNDI0MDc2N2QyNTJhNTk2
ODU0N2U2MTIzNTY2OTk2MjkuLjFkN2E1MGFkYTU4MWRjMWZjNmUzY2UyM2MwYjg0ZDNlM2I1NWZm
NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTUxLDYgKzUxLDcgQEAK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZWlmaWVk
VHJlZVRyYXZlcnNhbC5oIgorI2luY2x1ZGUgIlJlaWZpZWRUcmVlV2Fsa2VyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCkBAIC0xODIsNiArMTgzLDYxIEBAIGJvb2wgSW50ZXJuYWxzOjphdHRh
Y2hlZChOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICByZXR1cm4gbm9kZS0+YXR0
YWNoZWQoKTsKIH0KIAorTm9kZSogSW50ZXJuYWxzOjpuZXh0U2libGluZ0J5V2Fsa2VyKE5vZGUq
IG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBl
YyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIFJl
aWZpZWRUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIubmV4dFNpYmxpbmcoKTsK
KyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitOb2RlKiBJbnRlcm5hbHM6OmZpcnN0Q2hp
bGRCeVdhbGtlcihOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5v
ZGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKyAgICBSZWlmaWVkVHJlZVdhbGtlciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2Vy
LmZpcnN0Q2hpbGQoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitOb2RlKiBJbnRl
cm5hbHM6Omxhc3RDaGlsZEJ5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIFJlaWZpZWRUcmVlV2Fsa2VyIHdhbGtlcihub2Rl
KTsKKyAgICB3YWxrZXIubGFzdENoaWxkKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30K
KworTm9kZSogSW50ZXJuYWxzOjpuZXh0Tm9kZUJ5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIFJlaWZpZWRUcmVlV2Fsa2Vy
IHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIubmV4dE5vZGUoKTsKKyAgICByZXR1cm4gd2Fsa2Vy
LmdldCgpOworfQorCitOb2RlKiBJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKE5vZGUq
IG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBl
YyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIFJl
aWZpZWRUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIucHJldmlvdXNOb2RlKCk7
CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30KKwogTm9kZSogSW50ZXJuYWxzOjpuZXh0U2li
bGluZ0luUmVpZmllZFRyZWUoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
aWYgKCFub2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBhMDYxM2FjMjE3
YjgzZWI5ZjgxM2VmYTkwODc3MTNkMDBjZjhhM2I4Li43OGY2MTQ3YWEzODRjYmViZTZmYzRiOGYz
ODA1MWJlMDFjOThlN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTg0LDYg
Kzg0LDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgYXR0YWNoZWQoTm9kZSosIEV4Y2VwdGlvbkNv
ZGUmKTsKIAorICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhlc2UgZnVuY3Rpb25zIGlmIHdhbGtlciBp
cyBwcmVmZXJlZC4KKyAgICBOb2RlKiBuZXh0U2libGluZ0J5V2Fsa2VyKE5vZGUqLCBFeGNlcHRp
b25Db2RlJik7CisgICAgTm9kZSogZmlyc3RDaGlsZEJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25D
b2RlJik7CisgICAgTm9kZSogbGFzdENoaWxkQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBOb2RlKiBuZXh0Tm9kZUJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgTm9kZSogcHJldmlvdXNOb2RlQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKwog
ICAgIE5vZGUqIG5leHRTaWJsaW5nSW5SZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIE5vZGUqIGZpcnN0Q2hpbGRJblJlaWZpZWRUcmVlKE5vZGUqLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgTm9kZSogbGFzdENoaWxkSW5SZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29k
ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDk1ZmU5ZGM1NThkNDAw
ZTIyNWUyNDczNWMyOWQ3NjBmMDhiYTQ4OTcuLjMxZjg5Yjg3MTEyNzJmNTEwOWQ3ZDhlYjVlZjNi
NDhjOTQ5ODVhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTU1LDYg
KzU1LDEyIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlk
SW5TaGFkb3dSb290KGluIE5vZGUgc2hhZG93Um9vdCwgaW4gRE9NU3RyaW5nIGlkKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgYm9vbGVhbiBpc1ZhbGlkQ29udGVudFNlbGVjdChpbiBF
bGVtZW50IGNvbnRlbnRFbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICBO
b2RlIG5leHRTaWJsaW5nQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgTm9kZSBmaXJzdENoaWxkQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBsYXN0Q2hpbGRCeVdhbGtlcihpbiBOb2RlIG5v
ZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBOb2RlIG5leHROb2RlQnlXYWxrZXIo
aW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBwcmV2aW91
c05vZGVCeVdhbGtlcihpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAgICAg
ICAgIE5vZGUgbmV4dFNpYmxpbmdJblJlaWZpZWRUcmVlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIE5vZGUgZmlyc3RDaGlsZEluUmVpZmllZFRyZWUoaW4gTm9k
ZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgTm9kZSBsYXN0Q2hpbGRJblJl
aWZpZWRUcmVlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC0xMjYsNyAr
MTMyLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9CQVRURVJZX1NU
QVRVUykgJiYgRU5BQkxFX0JBVFRFUllfU1RBVFVTCiAgICAgICAgIHZvaWQgc2V0QmF0dGVyeVN0
YXR1cyhpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRE9NU3RyaW5nIGV2ZW50VHlwZSwgaW4gYm9v
bGVhbiBjaGFyZ2luZywgaW4gZG91YmxlIGNoYXJnaW5nVGltZSwgaW4gZG91YmxlIGRpc2NoYXJn
aW5nVGltZSwgaW4gZG91YmxlIGxldmVsKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0jZW5kaWYg
CisjZW5kaWYKIAogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25n
IG51bWJlck9mTGl2ZU5vZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVu
c2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDJiN2Q4OWI2NDM3
MWRhZWQzZDkzODMyNWY3MTk5ZjJjNGYyODk4ZC4uZmVkYWQ4NzU4ZjJiYzQ4ZjYwZmEyYjdkZGYw
NzU3MzE5MWRhNGFhNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAzLTI2ICBIYXlhdG8g
SXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gQWRkIGEg
V2Fsa2VyIGNsYXNzIHdoaWNoIGNhbiB0cmF2ZXJzZSBhIHJlaWZpZWQgdHJlZS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMDA5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
cmVpZmllZC10cmVlLXdhbGtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL3NoYWRvdy9yZWlmaWVkLXRyZWUtd2Fsa2VyLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTI2
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlYmFzZWxpbmUg
YWZ0ZXIgcjExMjE3Ny4KQEAgLTQ5MjUsNiArNDkzNSwyNyBAQAogCiAgICAgICAgICogcGxhdGZv
cm0vZ3RrL2h0dHAvdGVzdHMvc2VjdXJpdHkvY2xpcGJvYXJkL2NsaXBib2FyZC1maWxlLWFjY2Vz
cy1leHBlY3RlZC50eHQ6CiAKKzIwMTItMDMtMjIgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIEJlbmNobWFyayBmb3IgUmVpZmllZCBUZWVlIFRyYXZlcnNhbCBB
UElzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0
OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBp
bnRlbnRpb24gdG8gY29tbWl0IHRoaXMgcGF0Y2ggYXMgb2Ygbm93LiBKdXN0IGZvciBiZW5jaG1h
cmtpbmcuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvYmVuY2htYXJrLmh0bWw6IEFkZGVk
LgorCisyMDEyLTAzLTIzICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBXSVAuIFdhbGtlciB2ZXJzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9yZWlmaWVkLXRyZWUtd2Fsa2VyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3JlaWZpZWQtdHJl
ZS13YWxrZXIuaHRtbDogQWRkZWQuCisKIDIwMTItMDMtMjEgIFhpYW9tZWkgSmkgIDx4amlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRm9udCBmYWxsYmFjayBpbiBjci13aW4g
aXMgd3JvbmcgZm9yIHN0cmluZyBjb250YWlucyB6ZXJvLXdpZHRoLXNwYWNlLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlaWZpZWQtdHJlZS13YWxrZXItZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3JlaWZpZWQtdHJlZS13YWxrZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAwNDI0ZTc0MTg3YTJlNTdjODVlZGYzNjZhZGQ2MzNl
YzdiYTZjMzUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
cmVpZmllZC10cmVlLXdhbGtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNTYgQEAKK1Rlc3Rz
IGZvciBSZWlmaWVkIERPTSBUcmVlIFRyYXZlcnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0aGlu
IERSVAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2hhZG93Um9vdCBzaG91bGQg
YmUgdXNlZC4KK1JlaWZpZWQgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9YgorCitUcmF2ZXJz
ZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIKK1RyYXZlcnNlIGluIGJhY2t3YXJk
LgorRElWCSBpZD1iCitESVYJIGlkPWEKKworQSBjb250ZW50IGVsZW1lbnQgc2hvdWxkIHNlbGVj
dCBsaWdodCBjaGlsZHJlbgorUmVpZmllZCBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJ
RElWCSBpZD1jCisJRElWCSBpZD1kCisKK1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEK
K0RJVgkgaWQ9YgorRElWCSBpZD1jCitESVYJIGlkPWQKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgor
RElWCSBpZD1kCitESVYJIGlkPWMKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK1Rlc3QgZm9yIGNv
bnRlbnQgZWxlbWVudCBzZWxlY3Rvci4KK1JlaWZpZWQgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkg
aWQ9YgorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitUcmF2ZXJzZSBpbiBiYWNr
d2FyZC4KK0RJVgkgaWQ9YQorCitMaWdodCBjaGlsZHJlbiBzaG91bGQgYmUgc2VsZWN0ZWQgb25s
eSBhdCBvbmNlLgorUmVpZmllZCBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisKK1RyYXZl
cnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9YgorVHJhdmVyc2UgaW4gYmFja3dh
cmQuCitESVYJIGlkPWUKK0RJVgkgaWQ9ZAorRElWCSBpZD1jCitESVYJIGlkPWEKKworQSBjb250
ZW50IGVsZW1lbnQgY2FuIGhhdmUgZmFsbGJhY2sgZWxlbWVudHMuCitSZWlmaWVkIFRyZWU6CitE
SVYJIGlkPWEKKwlESVYJIGlkPWIKKwlESVYJIGlkPWYxCisJRElWCSBpZD1mMgorCitUcmF2ZXJz
ZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIKK0RJVgkgaWQ9ZjEKK0RJVgkgaWQ9
ZjIKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgorRElWCSBpZD1mMgorRElWCSBpZD1mMQorRElWCSBp
ZD1iCitESVYJIGlkPWEKKworRmFsbGJhY2sgZWxlbWVudHMgc2hvdWxkIG5vdCBiZSB1c2VkIGlm
ICBlbGVtZW50IHNlbGVjdHMgYW55IGVsZW1lbnRzLgorUmVpZmllZCBUcmVlOgorRElWCSBpZD1h
CisJRElWCSBpZD1iCisJRElWCSBpZD1mMQorCURJVgkgaWQ9ZjIKKworVHJhdmVyc2UgaW4gZm9y
d2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1iCitESVYJIGlkPWYxCitESVYJIGlkPWYyCitUcmF2
ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZjIKK0RJVgkgaWQ9ZjEKK0RJVgkgaWQ9YgorRElW
CSBpZD1hCisKK1Rlc3QgZm9yIE5lc3RlZCBTaGFkb3dSb290cy4KK1JlaWZpZWQgVHJlZToKK0RJ
VgkgaWQ9YQorCURJVgkgaWQ9YgorCQlESVYJIGlkPWMKKwkJRElWCSBpZD1lCisJCURJVgkgaWQ9
ZAorCURJVgkgaWQ9ZgorCURJVgkgaWQ9aAorCURJVgkgaWQ9aQorCURJVgkgaWQ9ZworCitUcmF2
ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIKK0RJVgkgaWQ9YworRElWCSBp
ZD1lCitESVYJIGlkPWQKK0RJVgkgaWQ9ZgorRElWCSBpZD1oCitESVYJIGlkPWkKK0RJVgkgaWQ9
ZworVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWcKK0RJVgkgaWQ9aQorRElWCSBpZD1o
CitESVYJIGlkPWYKK0RJVgkgaWQ9ZAorRElWCSBpZD1lCitESVYJIGlkPWMKK0RJVgkgaWQ9Ygor
RElWCSBpZD1hCisKK1Rlc3QgZm9yIE11bHRpcGxlIFNoYWRvd1Jvb3RzLgorUmVpZmllZCBUcmVl
OgorRElWCSBpZD1hCisJRElWCSBpZD1kCisJRElWCSBpZD1iCisJRElWCSBpZD1mCisJRElWCSBp
ZD1jCisJRElWCSBpZD1lCisKK1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkg
aWQ9ZAorRElWCSBpZD1iCitESVYJIGlkPWYKK0RJVgkgaWQ9YworRElWCSBpZD1lCitUcmF2ZXJz
ZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZQorRElWCSBpZD1jCitESVYJIGlkPWYKK0RJVgkgaWQ9
YgorRElWCSBpZD1kCitESVYJIGlkPWEKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9yZWlmaWVkLXRyZWUtd2Fsa2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFk
b3cvcmVpZmllZC10cmVlLXdhbGtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhNDExYjYwOWYzZDYxMjg2
ODgzOTQzMzU3OTI5ZTFhYzdjZGNmZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvcmVpZmllZC10cmVlLXdhbGtlci5odG1sCkBAIC0wLDAgKzEsMTYyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBmb3IgUmVpZmllZCBE
T00gVHJlZSBUcmF2ZXJzYWwgQVBJcy4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQiKTsKKworaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGR1bXBOb2RlKG5vZGUpCit7CisgICAgdmFyIG91dHB1
dCA9IG5vZGUubm9kZU5hbWUgKyAiXHQiOworICAgIGlmIChub2RlLmlkKQorICAgICAgICBvdXRw
dXQgKz0gJyBpZD0nICsgbm9kZS5pZDsKKyAgICBpZiAobm9kZS5jbGFzc05hbWUpCisgICAgICAg
IG91dHB1dCArPSAnIGNsYXNzPScgKyBub2RlLmNsYXNzTmFtZTsKKyAgICByZXR1cm4gb3V0cHV0
OworfQorCitmdW5jdGlvbiBkdW1wUmVpZmllZFRyZWUobm9kZSwgaW5kZW50KQoreworICAgIGlu
ZGVudCA9IGluZGVudCB8fCAiIjsKKyAgICB2YXIgb3V0cHV0ID0gaW5kZW50ICsgZHVtcE5vZGUo
bm9kZSkgKyAiXG4iOworICAgIHZhciBjaGlsZDsKKyAgICBmb3IgKGNoaWxkID0gaW50ZXJuYWxz
LmZpcnN0Q2hpbGRCeVdhbGtlcihub2RlKTsgY2hpbGQ7IGNoaWxkID0gaW50ZXJuYWxzLm5leHRT
aWJsaW5nQnlXYWxrZXIoY2hpbGQpKQorICAgICAgICAgb3V0cHV0ICs9IGR1bXBSZWlmaWVkVHJl
ZShjaGlsZCwgaW5kZW50ICsgIlx0Iik7CisgICAgcmV0dXJuIG91dHB1dDsKK30KKworZnVuY3Rp
b24gbGFzdE5vZGVCeVdhbGtlcihyb290KQoreworICAgIHZhciBsYXN0Tm9kZSA9IHJvb3Q7Cisg
ICAgd2hpbGUgKGludGVybmFscy5sYXN0Q2hpbGRCeVdhbGtlcihsYXN0Tm9kZSkpCisgICAgICAg
IGxhc3ROb2RlID0gaW50ZXJuYWxzLmxhc3RDaGlsZEJ5V2Fsa2VyKGxhc3ROb2RlKTsKKyAgICBy
ZXR1cm4gbGFzdE5vZGU7Cit9CisKK2Z1bmN0aW9uIHNob3dSZWlmaWVkVHJlZUJ5VHJhdmVyc2lu
Z0luRm9yd2FyZChyb290KQoreworICAgIHZhciBub2RlID0gcm9vdDsKKyAgICB2YXIgbGFzdCA9
IGxhc3ROb2RlQnlXYWxrZXIocm9vdCk7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgZGVi
dWcoZHVtcE5vZGUobm9kZSkpOworICAgICAgICBpZiAobm9kZSA9PSBsYXN0KQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIG5vZGUgPSBpbnRlcm5hbHMubmV4dE5vZGVCeVdhbGtlcihub2Rl
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHNob3dSZWlmaWVkVHJlZUJ5VHJhdmVyc2luZ0luQmFj
a3dhcmQocm9vdCkKK3sKKyAgICB2YXIgbm9kZSA9IGxhc3ROb2RlQnlXYWxrZXIocm9vdCk7Cisg
ICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgZGVidWcoZHVtcE5vZGUobm9kZSkpOworICAgICAg
ICBpZiAobm9kZSA9PSByb290KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG5vZGUgPSBp
bnRlcm5hbHMucHJldmlvdXNOb2RlQnlXYWxrZXIobm9kZSk7CisgICAgfQorfQorCitmdW5jdGlv
biBzaG93UmVpZmllZFRyZWUobm9kZSkKK3sKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KG5vZGUpOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0TGVmdDsKKworICAgIGRlYnVnKCdSZWlm
aWVkIFRyZWU6Jyk7CisgICAgZGVidWcoZHVtcFJlaWZpZWRUcmVlKG5vZGUpKTsKKworICAgIGRl
YnVnKCdUcmF2ZXJzZSBpbiBmb3J3YXJkLicpOworICAgIHNob3dSZWlmaWVkVHJlZUJ5VHJhdmVy
c2luZ0luRm9yd2FyZChub2RlKTsKKworICAgIGRlYnVnKCdUcmF2ZXJzZSBpbiBiYWNrd2FyZC4n
KTsKKyAgICBzaG93UmVpZmllZFRyZWVCeVRyYXZlcnNpbmdJbkJhY2t3YXJkKG5vZGUpOworCisg
ICAgZGVidWcoJycpOworfQorCitkZWJ1ZygnU2hhZG93Um9vdCBzaG91bGQgYmUgdXNlZC4nKTsK
K3Nob3dSZWlmaWVkVHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAg
ICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30p
KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSkpKTsKKworZGVi
dWcoJ0EgY29udGVudCBlbGVtZW50IHNob3VsZCBzZWxlY3QgbGlnaHQgY2hpbGRyZW4nKTsKK3No
b3dSZWlmaWVkVHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwKKyAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSksCisgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pKSk7CisKK2RlYnVnKCdUZXN0IGZvciBjb250
ZW50IGVsZW1lbnQgc2VsZWN0b3IuJyk7CitzaG93UmVpZmllZFRyZWUoCisgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuZCd9KSksCisgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pLAorICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZCd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2UnfSkpKTsKKworZGVidWcoJ0xpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSBzZWxlY3RlZCBv
bmx5IGF0IG9uY2UuJyk7CitzaG93UmVpZmllZFRyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuZCd9KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnKSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdjJ30pLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnZCd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2UnfSkpKTsK
KworZGVidWcoJ0EgY29udGVudCBlbGVtZW50IGNhbiBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLicp
Oworc2hvd1JlaWZpZWRUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisg
ICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2In
fSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywg
eydzZWxlY3QnOiAnLnonfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YxJ30pLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZjInfSkpKSwKKyAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSkpKTsKKworZGVidWcoJ0Zh
bGxiYWNrIGVsZW1lbnRzIHNob3VsZCBub3QgYmUgdXNlZCBpZiA8Y29udGVudD4gZWxlbWVudCBz
ZWxlY3RzIGFueSBlbGVtZW50cy4nKTsKK3Nob3dSZWlmaWVkVHJlZSgKKyAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJy5jJ30sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmMSd9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2YyJ30pKSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdjJ30pKSk7CisKK2RlYnVnKCdUZXN0IGZvciBOZXN0ZWQgU2hhZG93Um9vdHMuJyk7CitzaG93
UmVpZmllZFRyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2UnfSkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmJ30pLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdnJ30pKSwK
KyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2gnfSksCisgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdpJ30pKSk7CisKK2RlYnVnKCdUZXN0IGZvciBN
dWx0aXBsZSBTaGFkb3dSb290cy4nKTsKK3Nob3dSZWlmaWVkVHJlZSgKKyAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnY29udGVudCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93
Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSwKKyAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSkpKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134725</attachid>
            <date>2012-03-29 22:21:27 -0700</date>
            <delta_ts>2012-03-29 23:59:42 -0700</delta_ts>
            <desc>give me necesarry symbols</desc>
            <filename>bug-82009-20120330142125.patch</filename>
            <type>text/plain</type>
            <size>46936</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRkN2YyZjNhMjQ0MjRl
YjE4MWUwYjMyZDg3YTYwYTY3YTdhOGI5My4uNWU1MGVjNThlYjA3ZDFlNDk2NTBhNjVmOTk1ZTJj
NmIwMGMyMjRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDEyLTAzLTI2ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gQWRk
IGEgV2Fsa2VyIGNsYXNzIHdoaWNoIGNhbiB0cmF2ZXJzZSBhIENvbXBvc2VkIFNoYWRvdyBUcmVl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMDkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIgaXMgaW50ZW5kZWQgdG8gYmUgYSBzdWNjZXNzb3Igb2YgY3VycmVu
dCBSZWlmaWVkVHJlZVRyYXZlcnNhbCBBUElzLgorICAgICAgICBDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXIgdXNlcyBhIGN1cnNvciBwYXR0ZXJuIGFuZCB0YWtlcyBhIHN0YXJ0aW5nIG5vZGUgaW4g
aXRzIGNvbnN0cnVjdG9yLgorCisgICAgICAgIFRoZSB0eXBpY2FsIHVzYWdlIGlzOgorCisgICAg
ICAgICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG5vZGUpOyB3YWxrZXIu
Z2V0KCk7IHdhbGtlci5uZXh0Tm9kZSgpKSB7CisgICAgICAgICAgICAgICAgLi4uCisgICAgICAg
ICAgfQorCisgICAgICAgIEZvbGxvdy11cCBwYXRjaGVzIHdpbGwgdXBkYXRlIGNsaWVudHMgd2hp
Y2ggdXNlIGN1cnJlbnQgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJcyBzbyB0aGF0IHRoZXkgdXNl
IHRoZSBXYWxrZXIuCisgICAgICAgIE1vcmUgdGVzdHMgd2lsbCBjb21lIGFsb25nIHdpdGggdGhl
c2UgYWN0dWFsIHVzZSBjYXNlcyBpbiBmb2xsb3ctdXAgcGF0Y2hlcy4KKyAgICAgICAgQWZ0ZXIg
dGhhdCwgSSdsbCBnZXQgcmlkIG9mIFJlaWZpZWRUcmVlVHJhdmVyc2FsIEFQSXMgaW4gZmF2b3Ig
b2YgdGhlIFdhbGtlci4KKworICAgICAgICBOb3RlIHRoYXQgJ0NvbXBvc2VkU2hhZG93VHJlZScg
YW5kICdSZWlmaWVkVHJlZScgaGFzIHRoZSBzYW1lIG1lYW5pbmcuCisgICAgICAgIEJlY2F1c2Ug
UmVpZmllZFRyZWUgaXMgbm90IGludHVpdGl2ZSBuYW1lLCB3ZSBhcmUgc3RhcnRpbmcgdG8gdXNl
ICdDb21wb3NlZFNoYWRvd1RyZWUnIGZyb20gbm93LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9t
L3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbAorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBU
YXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUu
Z3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0NvbXBv
c2VkU2hhZG93VHJlZVdhbGtlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAoV2ViQ29yZTo6c2hhZG93VHJl
ZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dUcmVlT2ZQYXJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpzdGFydGVk
V2l0aEZpcnN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOjphc3NlcnRQcmVjb25kaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyOjphc3NlcnRQb3N0Y29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlRmlyc3RDaGlsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Omxhc3RDaGlsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTGFzdENoaWxkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTGln
aHRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6
OnRyYXZlcnNlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6Om5leHRTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjo6cHJldmlvdXNTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlU2libGluZ0lu
Q3VycmVudFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
Ojp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb1lvdW5nZXJTaGFkb3dSb290KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZXNjYXBlRmFsbGJhY2tDb250ZW50RWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZl
cnNlTm9kZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGVJbkN1cnJl
bnRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJh
dmVyc2VQYXJlbnROb2RlQmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhvc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjphZGp1c3RlZFBhcmVudE5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZU5leHRT
aWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJh
dmVyc2VQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjpuZXh0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OnByZXZpb3VzTm9kZSk6CisgICAgICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
Y2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om5leHRTaWJsaW5nQnlXYWxrZXIpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZpcnN0Q2hpbGRC
eVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omxhc3RDaGlsZEJ5V2Fsa2Vy
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bmV4dE5vZGVCeVdhbGtlcik6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDMtMjggIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFNwbGl0IFdlYktpdENTU0tleWZyYW1lUnVsZSBpbnRv
IGludGVybmFsIGFuZCBDU1NPTSB0eXBlcyAKQEAgLTEwNTczLDYgKzEwNjUzLDgxIEBACiAgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CiAgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2luZyk6CiAKKzIwMTItMDMtMjIg
IEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIEJlbmNobWFyayBm
b3IgUmVpZmllZCBUZWVlIFRyYXZlcnNhbCBBUElzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODE0OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBObyBpbnRlbnRpb24gdG8gY29tbWl0IHRoaXMgcGF0Y2gg
YXMgb2Ygbm93LiBKdXN0IGZvciBiZW5jaG1hcmtpbmcuCisKKyAgICAgICAgVGVzdDogZmFzdC9k
b20vc2hhZG93L2JlbmNobWFyay5odG1sCisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZG9U
cmF2ZXJzZU5leHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZG9UcmF2ZXJz
ZU5leHROb2RlSW5SZWlmaWVkVHJlZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoK
KyAgICAgICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgor
CisyMDEyLTAzLTIzICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXSVAuIFdhbGtlciB2ZXJzaW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODIwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvcmVpZmllZC10cmVlLXdhbGtlci5o
dG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogZG9tL1JlaWZpZWRUcmVl
V2Fsa2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OmlzU2hhZG93SG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dUcmVlRm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNoYWRvd1RyZWVPZlBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlm
aWVkVHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJl
ZVdhbGtlcjo6dHJhdmVyc2VGaXJzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRU
cmVlV2Fsa2VyOjpsYXN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxr
ZXI6OnRyYXZlcnNlTGFzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fs
a2VyOjp0cmF2ZXJzZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2Vy
Ojp0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVX
YWxrZXI6OnRyYXZlcnNlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtl
cjo6bmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnBy
ZXZpb3VzU2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJh
dmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9Zb3Vu
Z2VyU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6ZXNj
YXBlRmFsbGJhY2tDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJl
ZVdhbGtlcjo6dHJhdmVyc2VOb2RlRXNjYXBpbmdGYWxsYmFja0NvbnRlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpwYXJlbnROb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50Tm9kZUluQ3VycmVudFRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50Tm9k
ZUJhY2tUb1lvdW5nZXJTaGFkb3dSb290T3JIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZp
ZWRUcmVlV2Fsa2VyOjphZGp1c3RlZFBhcmVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVp
ZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlTmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
UmVpZmllZFRyZWVXYWxrZXI6OnRyYXZlcnNlUHJldmlvdXNTaWJsaW5nKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpuZXh0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWlmaWVkVHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKToKKyAgICAgICAgKiBkb20vUmVpZmllZFRy
ZWVXYWxrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlaWZpZWRU
cmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpnZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVpZmllZFRyZWVXYWxrZXI6OmFsbG93Q3Jvc3NpbmdVcHBlckJv
dW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlaWZpZWRUcmVlV2Fsa2VyOjpSZWlmaWVkVHJl
ZVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpSZWlmaWVkVHJlZVdhbGtlcjo6c3RhcnRlZFdp
dGhGaXJzdENoaWxkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6Om5leHRTaWJsaW5nQnlXYWxrZXIpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZpcnN0Q2hpbGRCeVdhbGtlcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omxhc3RDaGlsZEJ5V2Fsa2VyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6bmV4dE5vZGVCeVdhbGtlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5pZGw6CisKIDIwMTItMDMtMjEgIFhpbmduYW4gV2FuZyAgPHhpbmduYW4ud2FuZ0Bp
bnRlbC5jb20+CiAKICAgICAgICAgV2ViIGF1ZGlvIGxheW91dCB0ZXN0IGZhaWxlZCBpbiBkZWJ1
ZyB3aXRoIGFuIEFTU0VSVCBlcnJvciBpbiBSZXZlcmJDb252b2x2ZXJTdGFnZS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYjYzMGYzZDc0NjRjYzYyYmEzYWY0ZmNlNDk2MDk1ODM5M2U0YjFj
Ny4uMDYyZjFlNTM0ZjNkMzdjNGFhNWI1ZDU0Y2RkYzllZWRkMzQzNzI0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTUzOSw2ICs1MzksNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9t
L0NsaXBib2FyZC5jcHAKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwCiAgICAgZG9tL0NvbW1l
bnQuY3BwCisgICAgZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAKICAgICBkb20vQ29t
cG9zaXRpb25FdmVudC5jcHAKICAgICBkb20vQ29udGFpbmVyTm9kZS5jcHAKICAgICBkb20vQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCBmZjgxOWIzYjdmMGI4MWFmOTA4ZDQ0YzIwMDM2ZjRkYTM5ZTU2ZjZjLi4xMzNiODVhOTY3
OGUzYmFkODZjOWE1ODc5YzVmNGY5Y2EyNDNhNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTE3NDgsNiArMTc0OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVudC5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL2Rv
bS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlv
bkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0aW9uRXZlbnQuaCBcCiAJ
U291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
aW5kZXggMWZkYzY5Y2Y3M2JiMzNiYTA5YjI3OTdjNDA5ZDcyZGE5YWU3ZWJhNy4uMjRkN2Q5N2Vk
YTg0NmVlODU3ZTA4Y2Q2MjBkN2RhMTNjNmRmYzZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC01MTQsNiAr
NTE0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0NsaXBib2FyZC5jcHAgXAogICAgIGRvbS9D
bGlwYm9hcmRFdmVudC5jcHAgXAogICAgIGRvbS9Db21tZW50LmNwcCBcCisgICAgZG9tL0NvbXBv
c2VkU2hhZG93VHJlZVdhbGtlci5jcHAgXAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmNwcCBc
CiAgICAgZG9tL0NvbnRhaW5lck5vZGUuY3BwIFwKICAgICBkb20vQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIuY3BwIFwKQEAgLTE2NTUsNiArMTY1Niw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRv
bS9DbGlwYm9hcmRFdmVudC5oIFwKICAgICBkb20vQ2xpcGJvYXJkLmggXAogICAgIGRvbS9Db21t
ZW50LmggXAorICAgIGRvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCBcCiAgICAgZG9tL0Nv
bnRhaW5lck5vZGUuaCBcCiAgICAgZG9tL0N1c3RvbUV2ZW50LmggXAogICAgIGRvbS9kZWZhdWx0
L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAw
YzQyNmY3ZTBjMTdmNjMyOTI3OGZmMWJkZGRkNWFmMzc4NDVjNzI5Li44YzMyNmEzOGQzMzE2ZGFh
MzM0ODZiMzNkODVmMDYzZjZlYjkzZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjY1LDYg
KzY2NSwxMiBAQCBfX1pON1dlYkNvcmUyM2VuY29kZUhvc3ROYW1lV2l0aFJhbmdlRVA4TlNTdHJp
bmc4X05TUmFuZ2UKIF9fWk43V2ViQ29yZTIzZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNFUk4zV1RG
N0hhc2hTZXRJTlMwXzZTdHJpbmdFTlMwXzEwU3RyaW5nSGFzaEVOUzBfMTBIYXNoVHJhaXRzSVMy
X0VFRUUKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0V3JpdGVyMTd3cml0ZVByb3Bl
cnR5TGlzdEV2CiBfX1pON1dlYkNvcmUyNENhY2hlZFJlc291cmNlSGFuZGxlQmFzZTExc2V0UmVz
b3VyY2VFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFCitfX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjEwZmlyc3RDaGlsZEV2CitfX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcjExbmV4dFNpYmxpbmdFdgorX19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXIxMnByZXZpb3VzTm9kZUV2CitfX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjhuZXh0Tm9kZUV2CitfX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjls
YXN0Q2hpbGRFdgorX19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJDMUVQS05T
XzROb2RlRU5TMF82UG9saWN5RQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIxMG1hcmtlcnNGb3JFUE5TXzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVz
RQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92ZU1hcmtlcnNF
TlNfMTREb2N1bWVudE1hcmtlcjExTWFya2VyVHlwZXNFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50
TWFya2VyQ29udHJvbGxlcjIzcmVuZGVyZWRSZWN0c0Zvck1hcmtlcnNFTlNfMTREb2N1bWVudE1h
cmtlcjEwTWFya2VyVHlwZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyYTM4Zjc3MDk0OTlkYjgwYjQw
YzNiMGRjMDA2ZDUzNDc2NzQ0ZDBhLi4zYjBhOWFkZjNjZDc1MDljNjJhNmY3MWY1MDBmNmZhMjMw
NDM1OTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01ODksNiArNTg5LDcgQEAKICAgICAgICAgICAg
ICdkb20vQ2hlY2tlZFJhZGlvQnV0dG9ucy5oJywKICAgICAgICAgICAgICdkb20vQ2xpcGJvYXJk
LmgnLAogICAgICAgICAgICAgJ2RvbS9DbGlwYm9hcmRBY2Nlc3NQb2xpY3kuaCcsCisgICAgICAg
ICAgICAnZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oJywKICAgICAgICAgICAgICdkb20v
Q29udGFpbmVyTm9kZS5oJywKICAgICAgICAgICAgICdkb20vQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0RPTUltcGxlbWVudGF0aW9uLmgnLApAQCAtNTA4
Miw2ICs1MDgzLDggQEAKICAgICAgICAgICAgICdkb20vQ2xpcGJvYXJkRXZlbnQuaCcsCiAgICAg
ICAgICAgICAnZG9tL0NvbW1lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vQ29tbWVudC5oJywK
KyAgICAgICAgICAgICdkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCcsCisgICAgICAg
ICAgICAnZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oJywKICAgICAgICAgICAgICdkb20v
Q29tcG9zaXRpb25FdmVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Db21wb3NpdGlvbkV2ZW50
LmgnLAogICAgICAgICAgICAgJ2RvbS9Db250YWluZXJOb2RlLmNwcCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDVlMWRkZmEwN2RjYjM2MTll
MDI3NzA3YjBhNDkwNzYwOWYyMzMxMWQuLjExZWU2NjFkOTA5MjFjZjkxOWJiNzhmZjgyZTI4OTM4
NzZkMjFjMzIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC00NzkyNiw2ICs0NzkyNiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxl
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQ29tcG9zaXRpb25FdmVudC5jcHAiCiAJCQkJPgogCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYyMDA4YzNlMDVlMmIzOTU0NjQ4MzEwMjYzY2Y2Yjdh
NzBkMzFkMjcuLjg2YzJjYTUxMmM2ZDBkY2RhYjdkNmYxYWNmMTY5Mzg5Yzc3MWJhY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTEzNjgsNiArMTM2OCw4IEBACiAJCTRBMUU3MUE2MTRFMTA2QUMwMDYyNkY5RCAvKiBKU1NoYWRv
d1Jvb3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRB
MUU3MUE0MTRFMTA2QUMwMDYyNkY5RCAvKiBKU1NoYWRvd1Jvb3QuaCAqLzsgfTsKIAkJNEEzOEJG
NTAxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEzOEJGNEUxNEZFMUMwOTAw
NjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwICovOyB9OwogCQk0QTM4QkY1MTE0
RkUxQzA5MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEEzOEJGNEYxNEZFMUMwOTAwNjEyNTEy
IC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuaCAqLzsgfTsKKwkJNEE2QTBDNUIxNTIzMkYyNDAw
QjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTZBMEM1OTE1MjMyRjI0MDBCMDlDNkUgLyog
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCAqLzsgfTsKKwkJNEE2QTBDNUMxNTIzMkYyNDAw
QjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2QTBDNUExNTIzMkYyNDAwQjA5QzZFIC8qIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlci5oICovOyB9OwogCQk0QTZFOUZDMzEzQzE3RDFEMDA0NkE3
RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVW
YWx1ZS5jcHAgKi87IH07CiAJCTRBNkU5RkM0MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVy
ZVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
QTZFOUZDMjEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTRBNkU5RkM3MTNDMTdENTcw
MDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkM1MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250
RmVhdHVyZVNldHRpbmdzLmNwcCAqLzsgfTsKQEAgLTgzMTAsNiArODMxMiw4IEBACiAJCTRBMUU3
MUE0MTRFMTA2QUMwMDYyNkY5RCAvKiBKU1NoYWRvd1Jvb3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNTaGFkb3dSb290Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTRBMzhCRjRFMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYlNvY2tldERlZmxhdGVG
cmFtZXIuY3BwOyBwYXRoID0gTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFt
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTM4QkY0RjE0RkUxQzA5MDA2
MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmg7IHBhdGggPSBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk0QTZBMEM1OTE1MjMyRjI0MDBCMDlDNkUgLyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRBNkEwQzVBMTUy
MzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRG
ZWF0dXJlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTZFOUZDMjEz
QzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb250RmVhdHVyZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTRBNkU5RkM1MTNDMTdENTcwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVNldHRpbmdzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvbnRGZWF0dXJlU2V0dGlu
Z3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA4NjMsNiArMjA4NjcsOCBA
QAogCQkJCTY1NTBCNjk3MDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50LmNwcCAqLywKIAkJCQk2
NTUwQjY5ODA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5oICovLAogCQkJCTg1MDg5Q0M3MEE5
OEMyMjYwMEEyNzVBQSAvKiBDb21tZW50LmlkbCAqLywKKwkJCQk0QTZBMEM1OTE1MjMyRjI0MDBC
MDlDNkUgLyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCAqLywKKwkJCQk0QTZBMEM1QTE1
MjMyRjI0MDBCMDlDNkUgLyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggKi8sCiAJCQkJNzlG
MkY1OUUxMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwICovLAogCQkJCTc5
RjJGNTlGMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmggKi8sCiAJCQkJNzlG
MkY1QTAxMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuaWRsICovLApAQCAtMjE2
ODQsNiArMjE2OTAsNyBAQAogCQkJCUJDREQ0NTRFMTIzNkM5NUMwMDlBNzk4NSAvKiBDb2x1bW5J
bmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUwQjZBMjA5OURGMDI3MDA5MEQ3ODEgLyogQ29t
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjM2MTExMDk3RUU3NzAwRUY5RjcyIC8qIENv
bXBsZXhUZXh0Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNEE2QTBDNUMxNTIzMkYy
NDAwQjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzE2RkUxMTYwRTZFMURBNzAwQkY2MDg4IC8qIENvbXBvc2l0ZUFuaW1hdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlEREQwOTlFNjQ5MjAwNTZFNTgxIC8qIENvbXBvc2l0ZUVkaXRD
b21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OUYyRjVBMjEwOTE5MzlBMDAwRDg3Q0IgLyog
Q29tcG9zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE2Miw2ICsyNTE2OSw3IEBA
CiAJCQkJMzdDMjM2MTAxMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0MyMzgyMTEwOThDODQyMDBFRjlGNzIgLyogQ29tcGxl
eFRleHRDb250cm9sbGVyQVRTVUkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdDMjM4MjIxMDk4
Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJNEE2QTBDNUIxNTIzMkYyNDAwQjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTZGRTExNTBFNkUxREE3MDBCRjYwODgg
LyogQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA5RERDMDk5
RTY0OTIwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk3OUYyRjVBMTEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAwZDNiMTk1ODk3ODZjMDFjODEzMjkxODE2NzMzZTk5MDNk
N2JiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIuY3BwCkBAIC0wLDAgKzEsMzM3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIgorCisjaW5jbHVkZSAiRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKKyNpbmNsdWRlICJJbnNlcnRp
b25Qb2ludC5oIgorI2luY2x1ZGUgIlNoYWRvd1RyZWUuaCIKKworI2lmbmRlZiBOREVCVUcKKyNk
ZWZpbmUgQVNTRVJUX1BSRUNPTkRJVElPTigpIGFzc2VydFByZWNvbmRpdGlvbigpCisjZWxzZQor
I2RlZmluZSBBU1NFUlRfUFJFQ09ORElUSU9OKCkKKyNlbmRpZgorCisjaWZuZGVmIE5ERUJVRwor
I2RlZmluZSBBU1NFUlRfUE9TVENPTkRJVElPTigpIGFzc2VydFBvc3Rjb25kaXRpb24oKQorI2Vs
c2UKKyNkZWZpbmUgQVNTRVJUX1BPU1RDT05ESVRJT04oKQorI2VuZGlmCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RhdGljIGlubGluZSBib29sIGlzU2hhZG93SG9zdChjb25zdCBOb2RlKiBu
b2RlKQoreworICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0Vs
ZW1lbnQobm9kZSktPmhhc1NoYWRvd1Jvb3QoKTsKK30KKworc3RhdGljIGlubGluZSBTaGFkb3dU
cmVlKiBzaGFkb3dUcmVlRm9yKGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgaWYgKG5vZGUgJiYg
bm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gdG9FbGVtZW50KG5vZGUpLT5z
aGFkb3dUcmVlKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbmxpbmUgU2hhZG93VHJl
ZSogc2hhZG93VHJlZU9mUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpCit7CisgICAgaWYgKG5vZGUg
JiYgbm9kZS0+cGFyZW50Tm9kZSgpKQorICAgICAgICByZXR1cm4gc2hhZG93VHJlZUZvcihub2Rl
LT5wYXJlbnROb2RlKCkpOworICAgIHJldHVybiAwOworfQorCitDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXI6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcihjb25zdCBOb2RlKiBub2RlLCBQb2xpY3kg
cG9saWN5KQorICAgIDogbV9ub2RlKG5vZGUpCisgICAgLCBtX3BvbGljeShwb2xpY3kpCit7Cisj
aWZuZGVmIE5ERUJVRworICAgIGFzc2VydFByZWNvbmRpdGlvbigpOworI2VuZGlmCit9CisKK0Nv
bXBvc2VkU2hhZG93VHJlZVdhbGtlciBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnN0YXJ0ZWRX
aXRoRmlyc3RDaGlsZChjb25zdCBOb2RlKiBub2RlLCBQb2xpY3kgcG9saWN5KQoreworICAgIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIobm9kZSwgcG9saWN5KTsKKyAgICB3YWxrZXIu
Zmlyc3RDaGlsZCgpOworICAgIHJldHVybiB3YWxrZXI7Cit9CisKKyNpZm5kZWYgTkRFQlVHCit2
b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6YXNzZXJ0UHJlY29uZGl0aW9uKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQobV9ub2RlKTsKKyAgICBpZiAoY2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KCkp
CisgICAgICAgIEFTU0VSVCghbV9ub2RlLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAgZWxzZQorICAg
ICAgICBBU1NFUlQoIW1fbm9kZS0+aXNTaGFkb3dSb290KCkgfHwgdG9TaGFkb3dSb290KG1fbm9k
ZSktPmlzWW91bmdlc3QoKSk7CisgICAgLy8gRklYTUU6IEFkZCBhbiBhc3NlcnRpb24gb25jZSBJ
bnNlcnRpb25Qb2ludCBoYXZlIGlzQWN0aXZlKCkgZnVuY3Rpb24uCisgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMDEwCisgICAgLy8gQVNTRVJUKCFpc0lu
c2VydGlvblBvaW50KG1fbm9kZSkgfHwgIXRvSW5zZXJ0aW9uUG9pbnQobm9kZSktPmlzQWN0aXZl
KCkpOworfQorCit2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6YXNzZXJ0UG9zdGNvbmRp
dGlvbigpIGNvbnN0Cit7CisgICAgaWYgKG1fbm9kZSkKKyAgICAgICAgYXNzZXJ0UHJlY29uZGl0
aW9uKCk7Cit9CisjZW5kaWYKKwordm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OmZpcnN0
Q2hpbGQoKQoreworICAgIEFTU0VSVF9QUkVDT05ESVRJT04oKTsKKyAgICBtX25vZGUgPSB0cmF2
ZXJzZUNoaWxkKG1fbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7CisgICAgQVNTRVJU
X1BPU1RDT05ESVRJT04oKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0
cmF2ZXJzZUZpcnN0Q2hpbGQoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQo
bm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlQ2hpbGQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9u
Rm9yd2FyZCk7Cit9CisKK3ZvaWQgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQo
KQoreworICAgIEFTU0VSVF9QUkVDT05ESVRJT04oKTsKKyAgICBtX25vZGUgPSB0cmF2ZXJzZUxh
c3RDaGlsZChtX25vZGUpOworICAgIEFTU0VSVF9QT1NUQ09ORElUSU9OKCk7Cit9CisKK05vZGUq
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VMYXN0Q2hpbGQoY29uc3QgTm9kZSog
bm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlQ2hp
bGQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uQmFja3dhcmQpOworfQorCitOb2RlKiBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlQ2hpbGQoY29uc3QgTm9kZSogbm9kZSwgVHJhdmVy
c2FsRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAg
aWYgKGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpKSB7CisgICAgICAgIFNoYWRvd1RyZWUqIHNoYWRv
d1RyZWUgPSBzaGFkb3dUcmVlRm9yKG5vZGUpOworICAgICAgICByZXR1cm4gKHNoYWRvd1RyZWUg
JiYgc2hhZG93VHJlZS0+aGFzU2hhZG93Um9vdCgpKSA/IHRyYXZlcnNlTGlnaHRDaGlsZHJlbihz
aGFkb3dUcmVlLT55b3VuZ2VzdFNoYWRvd1Jvb3QoKSwgZGlyZWN0aW9uKQorICAgICAgICAgICAg
OiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9uKTsKKyAgICB9CisgICAgaWYg
KGlzU2hhZG93SG9zdChub2RlKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHRyYXZl
cnNlTGlnaHRDaGlsZHJlbihub2RlLCBkaXJlY3Rpb24pOworfQorCitOb2RlKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTGlnaHRDaGlsZHJlbihjb25zdCBOb2RlKiBub2RlLCBU
cmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBp
ZiAoTm9kZSogY2hpbGQgPSAoZGlyZWN0aW9uID09IFRyYXZlcnNhbERpcmVjdGlvbkZvcndhcmQg
PyBub2RlLT5maXJzdENoaWxkKCkgOiBub2RlLT5sYXN0Q2hpbGQoKSkpCisgICAgICAgIHJldHVy
biB0cmF2ZXJzZU5vZGUoY2hpbGQsIGRpcmVjdGlvbik7CisgICAgcmV0dXJuIDA7Cit9CisKK05v
ZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VOb2RlKGNvbnN0IE5vZGUqIG5v
ZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOwor
ICAgIGlmIChpc0luc2VydGlvblBvaW50KG5vZGUpKSB7CisgICAgICAgIGNvbnN0IEhUTUxDb250
ZW50U2VsZWN0aW9uTGlzdCogc2VsZWN0aW9uTGlzdCA9IHRvSW5zZXJ0aW9uUG9pbnQobm9kZSkt
PnNlbGVjdGlvbnMoKTsKKyAgICAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rp
b24gPSAoZGlyZWN0aW9uID09IFRyYXZlcnNhbERpcmVjdGlvbkZvcndhcmQgPyBzZWxlY3Rpb25M
aXN0LT5maXJzdCgpIDogc2VsZWN0aW9uTGlzdC0+bGFzdCgpKSkKKyAgICAgICAgICAgIHJldHVy
biB0cmF2ZXJzZU5vZGUoc2VsZWN0aW9uLT5ub2RlKCksIGRpcmVjdGlvbik7CisgICAgICAgIHJl
dHVybiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0aW9uKTsKKyAgICB9CisgICAg
cmV0dXJuIGNvbnN0X2Nhc3Q8Tm9kZSo+KG5vZGUpOworfQorCit2b2lkIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6bmV4dFNpYmxpbmcoKQoreworICAgIEFTU0VSVF9QUkVDT05ESVRJT04oKTsK
KyAgICBtX25vZGUgPSB0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KG1fbm9k
ZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7CisgICAgQVNTRVJUX1BPU1RDT05ESVRJT04o
KTsKK30KKwordm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnByZXZpb3VzU2libGluZygp
Cit7CisgICAgQVNTRVJUX1BSRUNPTkRJVElPTigpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlU2li
bGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobV9ub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNr
d2FyZCk7CisgICAgQVNTRVJUX1BPU1RDT05ESVRJT04oKTsKK30KKworTm9kZSogQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KGNv
bnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNT
RVJUKG5vZGUpOworICAgIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWUgPSBzaGFkb3dUcmVlT2ZQYXJl
bnQobm9kZSk7CisgICAgaWYgKCFzaGFkb3dUcmVlKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VT
aWJsaW5nSW5DdXJyZW50VHJlZShub2RlLCBkaXJlY3Rpb24pOworICAgIEhUTUxDb250ZW50U2Vs
ZWN0aW9uKiBzZWxlY3Rpb24gPSBzaGFkb3dUcmVlLT5zZWxlY3Rpb25Gb3Iobm9kZSk7CisgICAg
aWYgKCFzZWxlY3Rpb24pCisgICAgICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRU
cmVlKG5vZGUsIGRpcmVjdGlvbik7CisgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBuZXh0
U2VsZWN0aW9uID0gKGRpcmVjdGlvbiA9PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gc2Vs
ZWN0aW9uLT5uZXh0KCkgOiBzZWxlY3Rpb24tPnByZXZpb3VzKCkpKQorICAgICAgICByZXR1cm4g
dHJhdmVyc2VOb2RlKG5leHRTZWxlY3Rpb24tPm5vZGUoKSwgZGlyZWN0aW9uKTsKKyAgICByZXR1
cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludChzZWxlY3Rpb24tPmluc2Vy
dGlvblBvaW50KCksIGRpcmVjdGlvbik7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjo6dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShjb25zdCBOb2RlKiBub2RlLCBUcmF2
ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAo
Tm9kZSogbmV4dCA9IChkaXJlY3Rpb24gPT0gVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IG5v
ZGUtPm5leHRTaWJsaW5nKCkgOiBub2RlLT5wcmV2aW91c1NpYmxpbmcoKSkpCisgICAgICAgIHJl
dHVybiB0cmF2ZXJzZU5vZGUobmV4dCwgZGlyZWN0aW9uKTsKKyAgICBpZiAoTm9kZSogbmV4dCA9
IHRyYXZlcnNlU2libGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jvb3Qobm9kZSwgZGlyZWN0aW9u
KSkKKyAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgcmV0dXJuIGVzY2FwZUZhbGxiYWNrQ29udGVu
dEVsZW1lbnQobm9kZSwgZGlyZWN0aW9uKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb1lvdW5nZXJTaGFkb3dSb290KGNvbnN0IE5v
ZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5v
ZGUpOworICAgIGlmIChub2RlLT5wYXJlbnROb2RlKCkgJiYgbm9kZS0+cGFyZW50Tm9kZSgpLT5p
c1NoYWRvd1Jvb3QoKSkgeworICAgICAgICBTaGFkb3dSb290KiBwYXJlbnRTaGFkb3dSb290ID0g
dG9TaGFkb3dSb290KG5vZGUtPnBhcmVudE5vZGUoKSk7CisgICAgICAgIGlmICghcGFyZW50U2hh
ZG93Um9vdC0+aXNZb3VuZ2VzdCgpKSB7CisgICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogYXNz
aWduZWRJbnNlcnRpb25Qb2ludCA9IHBhcmVudFNoYWRvd1Jvb3QtPmFzc2lnbmVkVG8oKTsKKyAg
ICAgICAgICAgIEFTU0VSVChhc3NpZ25lZEluc2VydGlvblBvaW50KTsKKyAgICAgICAgICAgIHJl
dHVybiB0cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRUcmVlKGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQs
IGRpcmVjdGlvbik7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK05vZGUq
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudChj
b25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEFT
U0VSVChub2RlKTsKKyAgICBpZiAobm9kZS0+cGFyZW50Tm9kZSgpICYmIGlzSW5zZXJ0aW9uUG9p
bnQobm9kZS0+cGFyZW50Tm9kZSgpKSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09y
QmFja1RvSW5zZXJ0aW9uUG9pbnQobm9kZS0+cGFyZW50Tm9kZSgpLCBkaXJlY3Rpb24pOworICAg
IHJldHVybiAwOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNl
Tm9kZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyhjb25zdCBOb2RlKiBub2RlKSBjb25zdAorewor
ICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoaXNJbnNlcnRpb25Qb2ludChub2RlKSkKKyAgICAg
ICAgcmV0dXJuIHRyYXZlcnNlUGFyZW50Tm9kZShub2RlKTsKKyAgICByZXR1cm4gY29uc3RfY2Fz
dDxOb2RlKj4obm9kZSk7Cit9CisKK3ZvaWQgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpwYXJl
bnROb2RlKCkKK3sKKyAgICBBU1NFUlRfUFJFQ09ORElUSU9OKCk7CisgICAgbV9ub2RlID0gdHJh
dmVyc2VQYXJlbnROb2RlKG1fbm9kZSk7CisgICAgQVNTRVJUX1BPU1RDT05ESVRJT04oKTsKK30K
KworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGUoY29u
c3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBpZiAoIWNhbkNyb3NzVXBwZXJCb3VuZGFyeSgp
ICYmIG5vZGUtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIEFTU0VSVCh0b1NoYWRvd1Jvb3Qo
bm9kZSktPmlzWW91bmdlc3QoKSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBpZiAo
U2hhZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBhcmVudChub2RlKSkgeworICAg
ICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHNoYWRvd1RyZWUtPnNl
bGVjdGlvbkZvcihub2RlKSkKKyAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVBhcmVudE5vZGUo
c2VsZWN0aW9uLT5pbnNlcnRpb25Qb2ludCgpKTsKKyAgICB9CisgICAgcmV0dXJuIHRyYXZlcnNl
UGFyZW50Tm9kZUluQ3VycmVudFRyZWUobm9kZSk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnROb2RlSW5DdXJyZW50VHJlZShjb25zdCBOb2RlKiBu
b2RlKSBjb25zdAoreworICAgIGlmIChOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCkp
CisgICAgICAgIHJldHVybiBwYXJlbnQtPmlzU2hhZG93Um9vdCgpID8gdHJhdmVyc2VQYXJlbnRO
b2RlQmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhvc3QodG9TaGFkb3dSb290KHBhcmVudCkpIDog
dHJhdmVyc2VOb2RlRXNjYXBpbmdGYWxsYmFja0NvbnRlbnRzKHBhcmVudCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnRO
b2RlQmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhvc3QoY29uc3QgU2hhZG93Um9vdCogc2hhZG93
Um9vdCkgY29uc3QKK3sKKyAgICBBU1NFUlQoc2hhZG93Um9vdCk7CisgICAgaWYgKHNoYWRvd1Jv
b3QtPmlzWW91bmdlc3QoKSkgeworICAgICAgICBpZiAoY2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KCkp
CisgICAgICAgICAgICByZXR1cm4gc2hhZG93Um9vdC0+aG9zdCgpOworICAgICAgICByZXR1cm4g
Y29uc3RfY2FzdDxTaGFkb3dSb290Kj4oc2hhZG93Um9vdCk7CisgICAgfQorICAgIEluc2VydGlv
blBvaW50KiBhc3NpZ25lZEluc2VydGlvblBvaW50ID0gc2hhZG93Um9vdC0+YXNzaWduZWRUbygp
OworICAgIEFTU0VSVChhc3NpZ25lZEluc2VydGlvblBvaW50KTsKKyAgICByZXR1cm4gdHJhdmVy
c2VQYXJlbnROb2RlKGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQpOworfQorCisvLyBGSVhNRTogUmVt
b3ZlIGZyb20gdGhlIGZpcnN0IHZlcnNpb24uCit2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6YWRqdXN0ZWRQYXJlbnROb2RlKCkKK3sKKyAgICBBU1NFUlQobV9ub2RlKTsKKyAgICBpZiAo
U2hhZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBhcmVudChtX25vZGUpKSB7Cisg
ICAgICAgIGlmIChIVE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gc2hhZG93VHJlZS0+
c2VsZWN0aW9uRm9yKG1fbm9kZSkpIHsKKyAgICAgICAgICAgIG1fbm9kZSA9IHNlbGVjdGlvbi0+
aW5zZXJ0aW9uUG9pbnQoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
KyAgICBpZiAoIW1fbm9kZS0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAgbV9ub2RlID0gbV9u
b2RlLT5wYXJlbnROb2RlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29uc3QgU2hh
ZG93Um9vdCogc2hhZG93Um9vdCA9IHRvU2hhZG93Um9vdChtX25vZGUpOworICAgIGlmICghc2hh
ZG93Um9vdC0+aXNZb3VuZ2VzdCgpKSB7CisgICAgICAgIEFTU0VSVChzaGFkb3dSb290LT5hc3Np
Z25lZFRvKCkpOworICAgICAgICBtX25vZGUgPSBzaGFkb3dSb290LT5hc3NpZ25lZFRvKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpKQor
ICAgICAgICBtX25vZGUgPSBzaGFkb3dSb290LT5ob3N0KCk7CisgICAgZWxzZQorICAgICAgICBt
X25vZGUgPSAwOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNl
TmV4dFNpYmxpbmcoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAg
cmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobm9kZSwgVHJhdmVy
c2FsRGlyZWN0aW9uRm9yd2FyZCk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6dHJhdmVyc2VQcmV2aW91c1NpYmxpbmcoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBBU1NF
UlQobm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9p
bnQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uQmFja3dhcmQpOworfQorCit2b2lkIENvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlcjo6bmV4dE5vZGUoKQoreworICAgIEFTU0VSVF9QUkVDT05ESVRJT04o
KTsKKyAgICBpZiAoTm9kZSogbmV4dCA9IHRyYXZlcnNlRmlyc3RDaGlsZChtX25vZGUpKQorICAg
ICAgICBtX25vZGUgPSBuZXh0OworICAgIGVsc2UgaWYgKE5vZGUqIG5leHQgPSB0cmF2ZXJzZU5l
eHRTaWJsaW5nKG1fbm9kZSkpCisgICAgICAgIG1fbm9kZSA9IG5leHQ7CisgICAgZWxzZSB7Cisg
ICAgICAgIGNvbnN0IE5vZGUqIG4gPSBtX25vZGU7CisgICAgICAgIHdoaWxlIChuICYmICF0cmF2
ZXJzZU5leHRTaWJsaW5nKG4pKQorICAgICAgICAgICAgbiA9IHRyYXZlcnNlUGFyZW50Tm9kZShu
KTsKKyAgICAgICAgbV9ub2RlID0gbiA/IHRyYXZlcnNlTmV4dFNpYmxpbmcobikgOiAwOworICAg
IH0KKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOworfQorCit2b2lkIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6cHJldmlvdXNOb2RlKCkKK3sKKyAgICBBU1NFUlRfUFJFQ09ORElUSU9OKCk7
CisgICAgaWYgKE5vZGUqIG4gPSB0cmF2ZXJzZVByZXZpb3VzU2libGluZyhtX25vZGUpKSB7Cisg
ICAgICAgIHdoaWxlIChOb2RlKiBjaGlsZCA9IHRyYXZlcnNlTGFzdENoaWxkKG4pKQorICAgICAg
ICAgICAgbiA9IGNoaWxkOworICAgICAgICBtX25vZGUgPSBuOworICAgIH0gZWxzZQorICAgICAg
ICBwYXJlbnROb2RlKCk7CisgICAgQVNTRVJUX1BPU1RDT05ESVRJT04oKTsKK30KKworfSAvLyBu
YW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45OWI1ZjlmY2U3Y2ZiOTQyZmU5ZjU1NTlhOTY0ZjBmOTRjZGNiZmY0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXJfaAorI2RlZmluZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJfaAorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIE5vZGU7CitjbGFzcyBTaGFkb3dSb290OworCitjbGFzcyBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIgeworcHVibGljOgorICAgIGVudW0gUG9saWN5IHsKKyAgICAgICAg
Q3Jvc3NVcHBlckJvdW5kYXJ5LAorICAgICAgICBEb05vdENyb3NzVXBwZXJCb3VuZGFyeSwKKyAg
ICB9OworCisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyKGNvbnN0IE5vZGUqLCBQb2xpY3kg
PSBDcm9zc1VwcGVyQm91bmRhcnkpOworCisgICAgLy8gRm9yIGEgY29tbW9uIHVzZSBjYXNlIHN1
Y2ggYXM6CisgICAgLy8gZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyID0gQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpzdGFydGVkV2l0aEZpcnN0Q2hpbGQobm9kZSk7IHdhbGtl
ci5nZXQoKTsgd2Fsa2VyLm5leHRTaWJsaW5nKCkpCisgICAgc3RhdGljIGlubGluZSBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIgc3RhcnRlZFdpdGhGaXJzdENoaWxkKGNvbnN0IE5vZGUqLCBQb2xp
Y3kgPSBDcm9zc1VwcGVyQm91bmRhcnkpOworCisgICAgTm9kZSogZ2V0KCkgY29uc3QgeyByZXR1
cm4gY29uc3RfY2FzdDxOb2RlKj4obV9ub2RlKTsgfQorCisgICAgdm9pZCBmaXJzdENoaWxkKCk7
CisgICAgdm9pZCBsYXN0Q2hpbGQoKTsKKworICAgIHZvaWQgbmV4dFNpYmxpbmcoKTsKKyAgICB2
b2lkIHByZXZpb3VzU2libGluZygpOworCisgICAgdm9pZCBwYXJlbnROb2RlKCk7CisKKyAgICB2
b2lkIG5leHROb2RlKCk7CisgICAgdm9pZCBwcmV2aW91c05vZGUoKTsKKworICAgIC8vIEZJWE1F
OiBBbiAnYWRqdXN0ZWQnIGlzIG5vdCBnb29kIG5hbWUgZm9yIGdlbmVyYWwgdXNlIGNhc2UuIFJl
bmFtZSB0aGlzLgorICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MjAyMgorICAgIC8vIFRoaXMgbWF5IHJldHVybiBTaGFkb3dSb290IG9yIEluc2VydGlvblBv
aW50LgorICAgIHZvaWQgYWRqdXN0ZWRQYXJlbnROb2RlKCk7CisKK3ByaXZhdGU6CisgICAgZW51
bSBUcmF2ZXJzYWxEaXJlY3Rpb24geworICAgICAgICBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJk
LAorICAgICAgICBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNrd2FyZAorICAgIH07CisKKyAgICBib29s
IGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5ID09IENyb3Nz
VXBwZXJCb3VuZGFyeTsgfQorCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgYXNzZXJ0UHJlY29u
ZGl0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBhc3NlcnRQb3N0Y29uZGl0aW9uKCkgY29uc3Q7Cisj
ZW5kaWYKKworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZU5vZGUoY29uc3QgTm9kZSosIFRyYXZl
cnNhbERpcmVjdGlvbik7CisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlTGlnaHRDaGlsZHJlbihj
b25zdCBOb2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKKworICAgIE5vZGUqIHRyYXZlcnNlRmly
c3RDaGlsZChjb25zdCBOb2RlKikgY29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VMYXN0Q2hpbGQo
Y29uc3QgTm9kZSopIGNvbnN0OworICAgIE5vZGUqIHRyYXZlcnNlQ2hpbGQoY29uc3QgTm9kZSos
IFRyYXZlcnNhbERpcmVjdGlvbikgY29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VQYXJlbnROb2Rl
KGNvbnN0IE5vZGUqKSBjb25zdDsKKworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZU5leHRTaWJs
aW5nKGNvbnN0IE5vZGUqKTsKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VQcmV2aW91c1NpYmxp
bmcoY29uc3QgTm9kZSopOworCisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlU2libGluZ09yQmFj
a1RvSW5zZXJ0aW9uUG9pbnQoY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisgICAg
c3RhdGljIE5vZGUqIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUoY29uc3QgTm9kZSosIFRy
YXZlcnNhbERpcmVjdGlvbik7CisKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VTaWJsaW5nT3JC
YWNrVG9Zb3VuZ2VyU2hhZG93Um9vdChjb25zdCBOb2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsK
KyAgICBzdGF0aWMgTm9kZSogZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudChjb25zdCBOb2Rl
KiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKKworICAgIE5vZGUqIHRyYXZlcnNlTm9kZUVzY2FwaW5n
RmFsbGJhY2tDb250ZW50cyhjb25zdCBOb2RlKikgY29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VQ
YXJlbnROb2RlSW5DdXJyZW50VHJlZShjb25zdCBOb2RlKikgY29uc3Q7CisgICAgTm9kZSogdHJh
dmVyc2VQYXJlbnROb2RlQmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhvc3QoY29uc3QgU2hhZG93
Um9vdCopIGNvbnN0OworCisgICAgY29uc3QgTm9kZSogbV9ub2RlOworICAgIFBvbGljeSBtX3Bv
bGljeTsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCmluZGV4IGYyZjEwOTgwNDI0MDc2N2QyNTJhNTk2ODU0N2U2MTIzNTY2OTk2
MjkuLjEwNjRjNThmNzVmNzBlOWMyODY3Y2FjMTE5MWY0ZGE3YWYyMGIyNGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRlICJD
bGllbnRSZWN0TGlzdC5oIgorI2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIgog
I2luY2x1ZGUgIkRPTU5vZGVIaWdobGlnaHRlci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuaCIKQEAgLTE4Miw2ICsxODMsNjEgQEAgYm9vbCBJbnRl
cm5hbHM6OmF0dGFjaGVkKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVy
biBub2RlLT5hdHRhY2hlZCgpOwogfQogCitOb2RlKiBJbnRlcm5hbHM6Om5leHRTaWJsaW5nQnlX
YWxrZXIoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFub2RlKSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAg
ICB9CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxr
ZXIubmV4dFNpYmxpbmcoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitOb2RlKiBJ
bnRlcm5hbHM6OmZpcnN0Q2hpbGRCeVdhbGtlcihOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIg
d2Fsa2VyKG5vZGUpOworICAgIHdhbGtlci5maXJzdENoaWxkKCk7CisgICAgcmV0dXJuIHdhbGtl
ci5nZXQoKTsKK30KKworTm9kZSogSW50ZXJuYWxzOjpsYXN0Q2hpbGRCeVdhbGtlcihOb2RlKiBu
b2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBDb21w
b3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG5vZGUpOworICAgIHdhbGtlci5sYXN0Q2hpbGQo
KTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitOb2RlKiBJbnRlcm5hbHM6Om5leHRO
b2RlQnlXYWxrZXIoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFu
b2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAg
ICB3YWxrZXIubmV4dE5vZGUoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitOb2Rl
KiBJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2VyLnByZXZpb3VzTm9kZSgpOworICAgIHJldHVy
biB3YWxrZXIuZ2V0KCk7Cit9CisKIE5vZGUqIEludGVybmFsczo6bmV4dFNpYmxpbmdJblJlaWZp
ZWRUcmVlKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghbm9kZSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggYTA2MTNhYzIxN2I4M2ViOWY4MTNl
ZmE5MDg3NzEzZDAwY2Y4YTNiOC4uNzhmNjE0N2FhMzg0Y2JlYmU2ZmM0YjhmMzgwNTFiZTAxYzk4
ZTdiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC04NCw2ICs4NCwxMyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGF0dGFjaGVkKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CiAKKyAg
ICAvLyBGSVhNRTogUmVuYW1lIHRoZXNlIGZ1bmN0aW9ucyBpZiB3YWxrZXIgaXMgcHJlZmVyZWQu
CisgICAgTm9kZSogbmV4dFNpYmxpbmdCeVdhbGtlcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIE5vZGUqIGZpcnN0Q2hpbGRCeVdhbGtlcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IE5vZGUqIGxhc3RDaGlsZEJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgTm9k
ZSogbmV4dE5vZGVCeVdhbGtlcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIE5vZGUqIHBy
ZXZpb3VzTm9kZUJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBOb2RlKiBu
ZXh0U2libGluZ0luUmVpZmllZFRyZWUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBOb2Rl
KiBmaXJzdENoaWxkSW5SZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIE5v
ZGUqIGxhc3RDaGlsZEluUmVpZmllZFRyZWUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA3ZDk4YmVhZmU4NWMwNjI3NWNiMDYyN2My
NDViYmIwZjM5ZDUzZTFkLi4yYjk1OTQ3NzZmZTQxZGUzMzM0YmM1MWY2MzEwNzZlNzcwZGY1NDA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01NSw2ICs1NSwxMiBAQCBt
b2R1bGUgd2luZG93IHsKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9v
dChpbiBOb2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgICAgIGJvb2xlYW4gaXNWYWxpZENvbnRlbnRTZWxlY3QoaW4gRWxlbWVudCBjb250
ZW50RWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgTm9kZSBuZXh0U2li
bGluZ0J5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IE5vZGUgZmlyc3RDaGlsZEJ5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CisgICAgICAgIE5vZGUgbGFzdENoaWxkQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBuZXh0Tm9kZUJ5V2Fsa2VyKGluIE5vZGUgbm9k
ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIE5vZGUgcHJldmlvdXNOb2RlQnlXYWxr
ZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICBOb2RlIG5l
eHRTaWJsaW5nSW5SZWlmaWVkVHJlZShpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgICAgICBOb2RlIGZpcnN0Q2hpbGRJblJlaWZpZWRUcmVlKGluIE5vZGUgbm9kZSkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIE5vZGUgbGFzdENoaWxkSW5SZWlmaWVkVHJlZShp
biBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwpAQCAtMTI2LDcgKzEzMiw3IEBAIG1v
ZHVsZSB3aW5kb3cgewogCiAjaWYgZGVmaW5lZChFTkFCTEVfQkFUVEVSWV9TVEFUVVMpICYmIEVO
QUJMRV9CQVRURVJZX1NUQVRVUwogICAgICAgICB2b2lkIHNldEJhdHRlcnlTdGF0dXMoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIERPTVN0cmluZyBldmVudFR5cGUsIGluIGJvb2xlYW4gY2hhcmdp
bmcsIGluIGRvdWJsZSBjaGFyZ2luZ1RpbWUsIGluIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUsIGlu
IGRvdWJsZSBsZXZlbCkgcmFpc2VzIChET01FeGNlcHRpb24pOwotI2VuZGlmIAorI2VuZGlmCiAK
ICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxp
dmVOb2RlcygpOwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25n
IG51bWJlck9mTGl2ZURvY3VtZW50cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMwZjc3NGZiYjI5MjQ4ZmZhYTgwMDBm
YzQzMjAzZTE2YmVkMDQwZGIuLmMzNjZmYjM1OTAxZDY2NGY1M2EyNTc0Y2ZmZjBiMzA3ZjRlMWRj
YzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0yNiAgSGF5YXRvIEl0byAgPGhheWF0
b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW1NoYWRvdyBET01dIEFkZCBhIFdhbGtlciBjbGFz
cyB3aGljaCBjYW4gdHJhdmVyc2UgYSBDb21wb3NlZCBTaGFkb3cgVHJlZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMDA5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29t
cG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci5odG1sOiBBZGRlZC4K
KwogMjAxMi0wMy0yOSAgWmVubyBBbGJpc3NlciAgPHplbm9Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBGaWVsZHNldCBkaXNhYmxlZCBhdHRyaWJ1dGUgZG9lcyBub3Qgd29yay4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRv
dy10cmVlLXdhbGtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4M2VhZTY5NjRhZDVhODkx
MDI5ZGVhNDQzMWU3NWYxYjc4NTc5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTU2IEBACitUZXN0cyBmb3IgQ29tcG9zZWQgU2hhZG93IERPTSBUcmVlIFRyYXZl
cnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0aGluIERSVAorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworU2hhZG93Um9vdCBzaG91bGQgYmUgdXNlZC4KK0NvbXBvc2VkIFNoYWRvdyBU
cmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisKK1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJ
IGlkPWEKK0RJVgkgaWQ9YgorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWIKK0RJVgkg
aWQ9YQorCitBIGNvbnRlbnQgZWxlbWVudCBzaG91bGQgc2VsZWN0IGxpZ2h0IGNoaWxkcmVuCitD
b21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9YgorCURJVgkgaWQ9Ywor
CURJVgkgaWQ9ZAorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIK
K0RJVgkgaWQ9YworRElWCSBpZD1kCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZAor
RElWCSBpZD1jCitESVYJIGlkPWIKK0RJVgkgaWQ9YQorCitUZXN0IGZvciBjb250ZW50IGVsZW1l
bnQgc2VsZWN0b3IuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9
YgorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitUcmF2ZXJzZSBpbiBiYWNrd2Fy
ZC4KK0RJVgkgaWQ9YQorCitMaWdodCBjaGlsZHJlbiBzaG91bGQgYmUgc2VsZWN0ZWQgb25seSBh
dCBvbmNlLgorQ29tcG9zZWQgU2hhZG93IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKwor
VHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1iCitUcmF2ZXJzZSBpbiBi
YWNrd2FyZC4KK0RJVgkgaWQ9ZQorRElWCSBpZD1kCitESVYJIGlkPWMKK0RJVgkgaWQ9YQorCitB
IGNvbnRlbnQgZWxlbWVudCBjYW4gaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4KK0NvbXBvc2VkIFNo
YWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJRElWCSBpZD1mMQorCURJVgkgaWQ9
ZjIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1iCitESVYJIGlk
PWYxCitESVYJIGlkPWYyCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZjIKK0RJVgkg
aWQ9ZjEKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK0ZhbGxiYWNrIGVsZW1lbnRzIHNob3VsZCBu
b3QgYmUgdXNlZCBpZiAgZWxlbWVudCBzZWxlY3RzIGFueSBlbGVtZW50cy4KK0NvbXBvc2VkIFNo
YWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJRElWCSBpZD1mMQorCURJVgkgaWQ9
ZjIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1iCitESVYJIGlk
PWYxCitESVYJIGlkPWYyCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZjIKK0RJVgkg
aWQ9ZjEKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK1Rlc3QgZm9yIE5lc3RlZCBTaGFkb3dSb290
cy4KK0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJCURJVgkg
aWQ9YworCQlESVYJIGlkPWUKKwkJRElWCSBpZD1kCisJRElWCSBpZD1mCisJRElWCSBpZD1oCisJ
RElWCSBpZD1pCisJRElWCSBpZD1nCisKK1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEK
K0RJVgkgaWQ9YgorRElWCSBpZD1jCitESVYJIGlkPWUKK0RJVgkgaWQ9ZAorRElWCSBpZD1mCitE
SVYJIGlkPWgKK0RJVgkgaWQ9aQorRElWCSBpZD1nCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJ
VgkgaWQ9ZworRElWCSBpZD1pCitESVYJIGlkPWgKK0RJVgkgaWQ9ZgorRElWCSBpZD1kCitESVYJ
IGlkPWUKK0RJVgkgaWQ9YworRElWCSBpZD1iCitESVYJIGlkPWEKKworVGVzdCBmb3IgTXVsdGlw
bGUgU2hhZG93Um9vdHMuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkg
aWQ9ZAorCURJVgkgaWQ9YgorCURJVgkgaWQ9ZgorCURJVgkgaWQ9YworCURJVgkgaWQ9ZQorCitU
cmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWQKK0RJVgkgaWQ9YgorRElW
CSBpZD1mCitESVYJIGlkPWMKK0RJVgkgaWQ9ZQorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJ
IGlkPWUKK0RJVgkgaWQ9YworRElWCSBpZD1mCitESVYJIGlkPWIKK0RJVgkgaWQ9ZAorRElWCSBp
ZD1hCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hhZG93
LXRyZWUtd2Fsa2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcG9zZWQt
c2hhZG93LXRyZWUtd2Fsa2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTUzNmMyYzM2Y2FlMmFiOTRiOWE1
YmMwYmU3YzI4YmM3ZWIwMDdhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbApAQCAtMCwwICsxLDE2
MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgZm9yIENvbXBv
c2VkIFNoYWRvdyBET00gVHJlZSBUcmF2ZXJzYWwgQVBJcy4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBE
UlQiKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGR1bXBOb2RlKG5vZGUpCit7Cisg
ICAgdmFyIG91dHB1dCA9IG5vZGUubm9kZU5hbWUgKyAiXHQiOworICAgIGlmIChub2RlLmlkKQor
ICAgICAgICBvdXRwdXQgKz0gJyBpZD0nICsgbm9kZS5pZDsKKyAgICBpZiAobm9kZS5jbGFzc05h
bWUpCisgICAgICAgIG91dHB1dCArPSAnIGNsYXNzPScgKyBub2RlLmNsYXNzTmFtZTsKKyAgICBy
ZXR1cm4gb3V0cHV0OworfQorCitmdW5jdGlvbiBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKG5vZGUs
IGluZGVudCkKK3sKKyAgICBpbmRlbnQgPSBpbmRlbnQgfHwgIiI7CisgICAgdmFyIG91dHB1dCA9
IGluZGVudCArIGR1bXBOb2RlKG5vZGUpICsgIlxuIjsKKyAgICB2YXIgY2hpbGQ7CisgICAgZm9y
IChjaGlsZCA9IGludGVybmFscy5maXJzdENoaWxkQnlXYWxrZXIobm9kZSk7IGNoaWxkOyBjaGls
ZCA9IGludGVybmFscy5uZXh0U2libGluZ0J5V2Fsa2VyKGNoaWxkKSkKKyAgICAgICAgIG91dHB1
dCArPSBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKGNoaWxkLCBpbmRlbnQgKyAiXHQiKTsKKyAgICBy
ZXR1cm4gb3V0cHV0OworfQorCitmdW5jdGlvbiBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpCit7Cisg
ICAgdmFyIGxhc3ROb2RlID0gcm9vdDsKKyAgICB3aGlsZSAoaW50ZXJuYWxzLmxhc3RDaGlsZEJ5
V2Fsa2VyKGxhc3ROb2RlKSkKKyAgICAgICAgbGFzdE5vZGUgPSBpbnRlcm5hbHMubGFzdENoaWxk
QnlXYWxrZXIobGFzdE5vZGUpOworICAgIHJldHVybiBsYXN0Tm9kZTsKK30KKworZnVuY3Rpb24g
c2hvd0NvbXBvc2VkU2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luRm9yd2FyZChyb290KQoreworICAg
IHZhciBub2RlID0gcm9vdDsKKyAgICB2YXIgbGFzdCA9IGxhc3ROb2RlQnlXYWxrZXIocm9vdCk7
CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgZGVidWcoZHVtcE5vZGUobm9kZSkpOworICAg
ICAgICBpZiAobm9kZSA9PSBsYXN0KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG5vZGUg
PSBpbnRlcm5hbHMubmV4dE5vZGVCeVdhbGtlcihub2RlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9u
IHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNpbmdJbkJhY2t3YXJkKHJvb3QpCit7Cisg
ICAgdmFyIG5vZGUgPSBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpOworICAgIHdoaWxlIChub2RlKSB7
CisgICAgICAgIGRlYnVnKGR1bXBOb2RlKG5vZGUpKTsKKyAgICAgICAgaWYgKG5vZGUgPT0gcm9v
dCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBub2RlID0gaW50ZXJuYWxzLnByZXZpb3Vz
Tm9kZUJ5V2Fsa2VyKG5vZGUpOworICAgIH0KK30KKworZnVuY3Rpb24gc2hvd0NvbXBvc2VkU2hh
ZG93VHJlZShub2RlKQoreworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobm9kZSk7Cisg
ICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworCisgICAgZGVidWcoJ0NvbXBvc2VkIFNoYWRv
dyBUcmVlOicpOworICAgIGRlYnVnKGR1bXBDb21wb3NlZFNoYWRvd1RyZWUobm9kZSkpOworCisg
ICAgZGVidWcoJ1RyYXZlcnNlIGluIGZvcndhcmQuJyk7CisgICAgc2hvd0NvbXBvc2VkU2hhZG93
VHJlZUJ5VHJhdmVyc2luZ0luRm9yd2FyZChub2RlKTsKKworICAgIGRlYnVnKCdUcmF2ZXJzZSBp
biBiYWNrd2FyZC4nKTsKKyAgICBzaG93Q29tcG9zZWRTaGFkb3dUcmVlQnlUcmF2ZXJzaW5nSW5C
YWNrd2FyZChub2RlKTsKKworICAgIGRlYnVnKCcnKTsKK30KKworZGVidWcoJ1NoYWRvd1Jvb3Qg
c2hvdWxkIGJlIHVzZWQuJyk7CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSkpLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnYyd9KSkpOworCitkZWJ1ZygnQSBjb250ZW50IGVsZW1lbnQgc2hvdWxkIHNl
bGVjdCBsaWdodCBjaGlsZHJlbicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdk
aXYnLCB7J2lkJzogJ2MnfSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdkJ30pKSk7CisKK2RlYnVnKCdUZXN0IGZvciBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IuJyk7
CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdh
J30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2InfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250
ZW50JywgeydzZWxlY3QnOiAnLmQnfSkpLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnYyd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2Qn
fSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSk7CisKK2Rl
YnVnKCdMaWdodCBjaGlsZHJlbiBzaG91bGQgYmUgc2VsZWN0ZWQgb25seSBhdCBvbmNlLicpOwor
c2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9
LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVu
dCcsIHsnc2VsZWN0JzogJy5kJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZURPTSgnY29udGVudCcpKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2MnfSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pLAor
ICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSkpOworCitkZWJ1Zygn
QSBjb250ZW50IGVsZW1lbnQgY2FuIGhhdmUgZmFsbGJhY2sgZWxlbWVudHMuJyk7CitzaG93Q29t
cG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAg
ICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50Jywgeydz
ZWxlY3QnOiAnLnonfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YxJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZjInfSkpKSwKKyAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSkpKTsKKworZGVidWcoJ0ZhbGxi
YWNrIGVsZW1lbnRzIHNob3VsZCBub3QgYmUgdXNlZCBpZiA8Y29udGVudD4gZWxlbWVudCBzZWxl
Y3RzIGFueSBlbGVtZW50cy4nKTsKK3Nob3dDb21wb3NlZFNoYWRvd1RyZWUoCisgICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuYyd9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZjEn
fSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdmMid9KSkpLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnYyd9KSkpOworCitkZWJ1ZygnVGVzdCBmb3IgTmVzdGVkIFNoYWRvd1Jvb3RzLicpOwor
c2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9
LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6
ICdiJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVNo
YWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250
ZW50JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSkpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2YnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50
JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2cnfSkpLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaCd9KSwK
KyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2knfSkpKTsKKworZGVidWco
J1Rlc3QgZm9yIE11bHRpcGxlIFNoYWRvd1Jvb3RzLicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJl
ZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVh
dGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSwKKyAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSwK
KyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSkpKTsKKworPC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134735</attachid>
            <date>2012-03-29 23:59:49 -0700</date>
            <delta_ts>2012-03-30 00:40:35 -0700</delta_ts>
            <desc>add symbols</desc>
            <filename>bug-82009-20120330155947.patch</filename>
            <type>text/plain</type>
            <size>47028</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRkN2YyZjNhMjQ0MjRl
YjE4MWUwYjMyZDg3YTYwYTY3YTdhOGI5My4uNjM2NWQzNzEyMGNkNGFmZTZmM2ZhMzE1MGFhM2Uy
ZGY5YTM4MTdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTAzLTI2ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gSW50
cm9kdWNlIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBhcyBhIHN1Y2Nlc3NvciBvZiBSZWlmaWVk
VHJlZVRyYXZlcnNhbCBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBpcyBpbnRlbmRlZCB0byBiZSBhIHN1
Y2Nlc3NvciBvZiBjdXJyZW50IFJlaWZpZWRUcmVlVHJhdmVyc2FsIEFQSXMuCisgICAgICAgIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlciB1c2VzIGEgY3Vyc29yIHBhdHRlcm4gYW5kIHRha2VzIGEg
c3RhcnRpbmcgbm9kZSBpbiBpdHMgY29uc3RydWN0b3IuCisKKyAgICAgICAgQSB0eXBpY2FsIHVz
YWdlIGlzOgorCisgICAgICAgICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2Vy
KG5vZGUpOyB3YWxrZXIuZ2V0KCk7IHdhbGtlci5uZXh0Tm9kZSgpKSB7CisgICAgICAgICAgICAg
ICAgLi4uCisgICAgICAgICAgfQorCisgICAgICAgIEZvbGxvdy11cCBwYXRjaGVzIHdpbGwgdXBk
YXRlIGNsaWVudHMgd2hpY2ggdXNlIGN1cnJlbnQgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJcyBz
byB0aGF0IHRoZXkgdXNlIHRoZSBXYWxrZXIuCisgICAgICAgIE1vcmUgdGVzdHMgd2lsbCBjb21l
IGFsb25nIHdpdGggdGhlc2UgYWN0dWFsIHVzZSBjYXNlcyBpbiBmb2xsb3ctdXAgcGF0Y2hlcy4K
KyAgICAgICAgQWZ0ZXIgdGhhdCwgSSdsbCBnZXQgcmlkIG9mIFJlaWZpZWRUcmVlVHJhdmVyc2Fs
IEFQSXMgaW4gZmF2b3Igb2YgdGhlIFdhbGtlci4KKworICAgICAgICBOb3RlIHRoYXQgJ0NvbXBv
c2VkU2hhZG93VHJlZScgYW5kICdSZWlmaWVkVHJlZScgaGFzIHRoZSBzYW1lIG1lYW5pbmcuCisg
ICAgICAgIEJlY2F1c2UgUmVpZmllZFRyZWUgaXMgbm90IGludHVpdGl2ZSBuYW1lLCB3ZSBhcmUg
c3RhcnRpbmcgdG8gdXNlICdDb21wb3NlZFNoYWRvd1RyZWUnIGZyb20gbm93LgorCisgICAgICAg
IFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6c2hhZG93VHJlZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dUcmVlT2ZQYXJl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjpzdGFydGVkV2l0aEZpcnN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyOjphc3NlcnRQcmVjb25kaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjphc3NlcnRQb3N0Y29uZGl0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlRmlyc3RDaGls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Omxhc3RDaGls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNl
TGFzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OnRyYXZlcnNlTGlnaHRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXI6Om5leHRTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRp
b25Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRy
YXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb1lvdW5nZXJTaGFkb3dSb290
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZXNjYXBlRmFs
bGJhY2tDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OnRyYXZlcnNlTm9kZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBh
cmVudE5vZGVJbkN1cnJlbnRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnROb2RlQmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhv
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJz
ZU5leHRTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6dHJhdmVyc2VQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyOjpuZXh0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnByZXZpb3VzTm9kZSk6CisgICAgICAgICogZG9tL0NvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjo6Y2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om5leHRTaWJsaW5nQnlXYWxrZXIp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZpcnN0
Q2hpbGRCeVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omxhc3RDaGlsZEJ5
V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bmV4dE5vZGVCeVdhbGtlcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDMtMjggIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFNwbGl0IFdlYktpdENTU0tleWZyYW1lUnVs
ZSBpbnRvIGludGVybmFsIGFuZCBDU1NPTSB0eXBlcyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3MjY4MjFkMDk3
NDVmYjgzOTA3YmIxNTQwYjZkOWM5NjkxNDY4MzAxLi45Y2Y3MDllODVmYmU4MTY2NDQzMzU1ODU5
MmFkNzY1MjY2OWRmOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMjkg
IEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTaGFkb3cgRE9N
XSBJbnRyb2R1Y2UgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIGFzIGEgc3VjY2Vzc29yIG9mIFJl
aWZpZWRUcmVlVHJhdmVyc2FsIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgyMDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJD
RkxpdGUuZGVmOgorCiAyMDEyLTAzLTI4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IGEgY3Jhc2ggYW5kIGFuIGFzc2VydGlvbiB3aGVuIHJlY292
ZXJpbmcgZnJvbSBhIHdlYiBwcm9jZXNzIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI2
MzBmM2Q3NDY0Y2M2MmJhM2FmNGZjZTQ5NjA5NTgzOTNlNGIxYzcuLjA2MmYxZTUzNGYzZDM3YzRh
YTViNWQ1NGNkZGM5ZWVkZDM0MzcyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MzksNiAr
NTM5LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9DbGlwYm9hcmQuY3BwCiAgICAg
ZG9tL0NsaXBib2FyZEV2ZW50LmNwcAogICAgIGRvbS9Db21tZW50LmNwcAorICAgIGRvbS9Db21w
b3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3BwCiAg
ICAgZG9tL0NvbnRhaW5lck5vZGUuY3BwCiAgICAgZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmY4MTliM2I3ZjBiODFh
ZjkwOGQ0NGMyMDAzNmY0ZGEzOWU1NmY2Yy4uMTMzYjg1YTk2NzhlM2JhZDg2YzlhNTg3OWM1ZjRm
OWNhMjQzYTZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNzQ4LDYgKzE3
NDgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9h
cmQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vQ29tbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlQWxnb3JpdGhtcy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDFmZGM2OWNmNzNiYjMz
YmEwOWIyNzk3YzQwOWQ3MmRhOWFlN2ViYTcuLjI0ZDdkOTdlZGE4NDZlZTg1N2UwOGNkNjIwZDdk
YTEzYzZkZmM2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTE0LDYgKzUxNCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGRvbS9DbGlwYm9hcmQuY3BwIFwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwIFwK
ICAgICBkb20vQ29tbWVudC5jcHAgXAorICAgIGRvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIu
Y3BwIFwKICAgICBkb20vQ29tcG9zaXRpb25FdmVudC5jcHAgXAogICAgIGRvbS9Db250YWluZXJO
b2RlLmNwcCBcCiAgICAgZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBcCkBAIC0x
NjU1LDYgKzE2NTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuaCBc
CiAgICAgZG9tL0NsaXBib2FyZC5oIFwKICAgICBkb20vQ29tbWVudC5oIFwKKyAgICBkb20vQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggXAogICAgIGRvbS9Db250YWluZXJOb2RlLmggXAogICAg
IGRvbS9DdXN0b21FdmVudC5oIFwKICAgICBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMGM0MjZmN2UwYzE3ZjYzMjkyNzhm
ZjFiZGRkZDVhZjM3ODQ1YzcyOS4uOGMzMjZhMzhkMzMxNmRhYTMzNDg2YjMzZDg1ZjA2M2Y2ZWI5
M2Y5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTY2NSw2ICs2NjUsMTIgQEAgX19aTjdXZWJD
b3JlMjNlbmNvZGVIb3N0TmFtZVdpdGhSYW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCiBfX1pON1dl
YkNvcmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJOM1dURjdIYXNoU2V0SU5TMF82U3RyaW5n
RU5TMF8xMFN0cmluZ0hhc2hFTlMwXzEwSGFzaFRyYWl0c0lTMl9FRUVFCiBfX1pON1dlYkNvcmUy
NEJpbmFyeVByb3BlcnR5TGlzdFdyaXRlcjE3d3JpdGVQcm9wZXJ0eUxpc3RFdgogX19aTjdXZWJD
b3JlMjRDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2UxMXNldFJlc291cmNlRVBOU18xNENhY2hlZFJl
c291cmNlRQorX19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIxMGZpcnN0Q2hp
bGRFdgorX19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIxMW5leHRTaWJsaW5n
RXYKK19fWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyMTJwcmV2aW91c05vZGVF
dgorX19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI4bmV4dE5vZGVFdgorX19a
TjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI5bGFzdENoaWxkRXYKK19fWk43V2Vi
Q29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQzFFUEtOU180Tm9kZUVOUzBfNlBvbGljeUUK
IF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180
Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIx
MU1hcmtlclR5cGVzRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3Jl
bmRlcmVkUmVjdHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggMmEzOGY3NzA5NDk5ZGI4MGI0MGMzYjBkYzAwNmQ1MzQ3Njc0NGQw
YS4uM2IwYTlhZGYzY2Q3NTA5YzYyYTZmNzFmNTAwZjZmYTIzMDQzNTk1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNTg5LDYgKzU4OSw3IEBACiAgICAgICAgICAgICAnZG9tL0NoZWNrZWRSYWRpb0J1
dHRvbnMuaCcsCiAgICAgICAgICAgICAnZG9tL0NsaXBib2FyZC5oJywKICAgICAgICAgICAgICdk
b20vQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgnLAorICAgICAgICAgICAgJ2RvbS9Db21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0NvbnRhaW5lck5vZGUuaCcsCiAg
ICAgICAgICAgICAnZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgnLAogICAgICAgICAg
ICAgJ2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oJywKQEAgLTUwODIsNiArNTA4Myw4IEBACiAgICAg
ICAgICAgICAnZG9tL0NsaXBib2FyZEV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9Db21tZW50
LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0NvbW1lbnQuaCcsCisgICAgICAgICAgICAnZG9tL0Nv
bXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Db21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3Bw
JywKICAgICAgICAgICAgICdkb20vQ29tcG9zaXRpb25FdmVudC5oJywKICAgICAgICAgICAgICdk
b20vQ29udGFpbmVyTm9kZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA1ZTFkZGZhMDdkY2IzNjE5ZTAyNzcwN2IwYTQ5MDc2MDlmMjMz
MTFkLi4xMWVlNjYxZDkwOTIxY2Y5MTliYjc4ZmY4MmUyODkzODc2ZDIxYzMyIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDc5MjYsNiArNDc5
MjYsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXENvbXBvc2l0aW9uRXZlbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBmMjAwOGMzZTA1ZTJiMzk1NDY0ODMxMDI2M2NmNmI3YTcwZDMxZDI3Li44NmMyY2E1MTJj
NmQwZGNkYWI3ZDZmMWFjZjE2OTM4OWM3NzFiYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzY4LDYgKzEzNjgsOCBAQAog
CQk0QTFFNzFBNjE0RTEwNkFDMDA2MjZGOUQgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTFFNzFBNDE0RTEwNkFDMDA2MjZG
OUQgLyogSlNTaGFkb3dSb290LmggKi87IH07CiAJCTRBMzhCRjUwMTRGRTFDMDkwMDYxMjUxMiAv
KiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBMzhCRjRFMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXRE
ZWZsYXRlRnJhbWVyLmNwcCAqLzsgfTsKIAkJNEEzOEJGNTExNEZFMUMwOTAwNjEyNTEyIC8qIFdl
YlNvY2tldERlZmxhdGVGcmFtZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBMzhCRjRGMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRl
RnJhbWVyLmggKi87IH07CisJCTRBNkEwQzVCMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEE2QTBDNTkxNTIzMkYyNDAwQjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5jcHAgKi87IH07CisJCTRBNkEwQzVDMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBNkEwQzVBMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIuaCAqLzsgfTsKIAkJNEE2RTlGQzMxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2
RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwICovOyB9OwogCQk0
QTZFOUZDNDEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzIxM0MxN0QxRDAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0QTZFOUZDNzEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1
cmVTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QTZFOUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAg
Ki87IH07CkBAIC04MzEwLDYgKzgzMTIsOCBAQAogCQk0QTFFNzFBNDE0RTEwNkFDMDA2MjZGOUQg
LyogSlNTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2hh
ZG93Um9vdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTM4QkY0RTE0RkUxQzA5
MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDsgcGF0aCA9IE1v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEEzOEJGNEYxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERl
ZmxhdGVGcmFtZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0
RGVmbGF0ZUZyYW1lci5oOyBwYXRoID0gTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxh
dGVGcmFtZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2QTBDNTkxNTIzMkYy
NDAwQjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTZBMEM1QTE1MjMyRjI0MDBCMDlDNkUgLyogQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVZhbHVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE2RTlGQzIxM0MxN0QxRDAwNDZBN0Y4IC8qIEZv
bnRGZWF0dXJlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEZl
YXR1cmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTZFOUZDNTEzQzE3
RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIwODYzLDYgKzIwODY3LDggQEAKIAkJCQk2NTUwQjY5NzA5OURG
MDI3MDA5MEQ3ODEgLyogQ29tbWVudC5jcHAgKi8sCiAJCQkJNjU1MEI2OTgwOTlERjAyNzAwOTBE
NzgxIC8qIENvbW1lbnQuaCAqLywKIAkJCQk4NTA4OUNDNzBBOThDMjI2MDBBMjc1QUEgLyogQ29t
bWVudC5pZGwgKi8sCisJCQkJNEE2QTBDNTkxNTIzMkYyNDAwQjA5QzZFIC8qIENvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlci5jcHAgKi8sCisJCQkJNEE2QTBDNUExNTIzMkYyNDAwQjA5QzZFIC8qIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlci5oICovLAogCQkJCTc5RjJGNTlFMTA5MTkzOUEwMDBEODdD
QiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk3OUYyRjU5RjEwOTE5MzlBMDAwRDg3
Q0IgLyogQ29tcG9zaXRpb25FdmVudC5oICovLAogCQkJCTc5RjJGNUEwMTA5MTkzOUEwMDBEODdD
QiAvKiBDb21wb3NpdGlvbkV2ZW50LmlkbCAqLywKQEAgLTIxNjg0LDYgKzIxNjkwLDcgQEAKIAkJ
CQlCQ0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU1MEI2QTIwOTlERjAyNzAwOTBENzgxIC8qIENvbW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTM3QzIzNjExMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTRBNkEwQzVDMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTE2MEU2RTFEQTcw
MEJGNjA4OCAvKiBDb21wb3NpdGVBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5
REREMDk5RTY0OTIwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzlGMkY1QTIxMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMjUxNjIsNiArMjUxNjksNyBAQAogCQkJCTM3QzIzNjEwMTA5N0VF
NzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzdDMjM4MjExMDk4Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckFUU1VJ
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3QzIzODIyMTA5OEM4NDIwMEVGOUY3MiAvKiBDb21w
bGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTRBNkEwQzVC
MTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzE2RkUxMTUwRTZFMURBNzAwQkY2MDg4IC8qIENvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUREQzA5OUU2NDkyMDA1NkU1ODEgLyogQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzlGMkY1QTExMDkxOTM5
QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg1NDQwNWExYzBhYWUxYTUzMWEwODEyNzAwOTk5Yjk3MzZiNGEwZTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApAQCAt
MCwwICsxLDMxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
Q29udGVudFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKKyNpbmNsdWRl
ICJTaGFkb3dUcmVlLmgiCisKKyNpZm5kZWYgTkRFQlVHCisjZGVmaW5lIEFTU0VSVF9QUkVDT05E
SVRJT04oKSBhc3NlcnRQcmVjb25kaXRpb24oKQorI2Vsc2UKKyNkZWZpbmUgQVNTRVJUX1BSRUNP
TkRJVElPTigpCisjZW5kaWYKKworI2lmbmRlZiBOREVCVUcKKyNkZWZpbmUgQVNTRVJUX1BPU1RD
T05ESVRJT04oKSBhc3NlcnRQb3N0Y29uZGl0aW9uKCkKKyNlbHNlCisjZGVmaW5lIEFTU0VSVF9Q
T1NUQ09ORElUSU9OKCkKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc1NoYWRvd0hvc3QoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4g
bm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFk
b3dSb290KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU2hhZG93VHJlZSogc2hhZG93VHJlZUZvcihj
b25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUo
KSkKKyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChub2RlKS0+c2hhZG93VHJlZSgpOworICAgIHJl
dHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWVPZlBhcmVu
dChjb25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlICYmIG5vZGUtPnBhcmVudE5vZGUo
KSkKKyAgICAgICAgcmV0dXJuIHNoYWRvd1RyZWVGb3Iobm9kZS0+cGFyZW50Tm9kZSgpKTsKKyAg
ICByZXR1cm4gMDsKK30KKworQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIoY29uc3QgTm9kZSogbm9kZSwgUG9saWN5IHBvbGljeSkKKyAgICA6IG1fbm9k
ZShub2RlKQorICAgICwgbV9wb2xpY3kocG9saWN5KQoreworI2lmbmRlZiBOREVCVUcKKyAgICBh
c3NlcnRQb3N0Y29uZGl0aW9uKCk7CisjZW5kaWYKK30KKworQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6c3RhcnRlZFdpdGhGaXJzdENoaWxkKGNvbnN0
IE5vZGUqIG5vZGUsIFBvbGljeSBwb2xpY3kpCit7CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyIHdhbGtlcihub2RlLCBwb2xpY3kpOworICAgIHdhbGtlci5maXJzdENoaWxkKCk7CisgICAg
cmV0dXJuIHdhbGtlcjsKK30KKworI2lmbmRlZiBOREVCVUcKK3ZvaWQgQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjphc3NlcnRQcmVjb25kaXRpb24oKSBjb25zdAoreworICAgIEFTU0VSVChtX25v
ZGUpOworICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkKKyAgICAgICAgQVNTRVJUKCFt
X25vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBlbHNlCisgICAgICAgIEFTU0VSVCghbV9ub2Rl
LT5pc1NoYWRvd1Jvb3QoKSB8fCB0b1NoYWRvd1Jvb3QobV9ub2RlKS0+aXNZb3VuZ2VzdCgpKTsK
KyAgICAvLyBGSVhNRTogQWRkIGFuIGFzc2VydGlvbiBvbmNlIEluc2VydGlvblBvaW50IGhhdmUg
aXNBY3RpdmUoKSBmdW5jdGlvbi4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODIwMTAKKyAgICAvLyBBU1NFUlQoIWlzSW5zZXJ0aW9uUG9pbnQobV9ub2Rl
KSB8fCAhdG9JbnNlcnRpb25Qb2ludChub2RlKS0+aXNBY3RpdmUoKSk7Cit9CisKK3ZvaWQgQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjphc3NlcnRQb3N0Y29uZGl0aW9uKCkgY29uc3QKK3sKKyAg
ICBpZiAobV9ub2RlKQorICAgICAgICBhc3NlcnRQcmVjb25kaXRpb24oKTsKK30KKyNlbmRpZgor
Cit2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCgpCit7CisgICAgQVNT
RVJUX1BSRUNPTkRJVElPTigpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlQ2hpbGQobV9ub2RlLCBU
cmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkKTsKKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOwor
fQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlRmlyc3RDaGlsZChj
b25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4g
dHJhdmVyc2VDaGlsZChub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkKTsKK30KKwordm9p
ZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Omxhc3RDaGlsZCgpCit7CisgICAgQVNTRVJUX1BS
RUNPTkRJVElPTigpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlTGFzdENoaWxkKG1fbm9kZSk7Cisg
ICAgQVNTRVJUX1BPU1RDT05ESVRJT04oKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjp0cmF2ZXJzZUxhc3RDaGlsZChjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAg
IEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4gdHJhdmVyc2VDaGlsZChub2RlLCBUcmF2ZXJzYWxE
aXJlY3Rpb25CYWNrd2FyZCk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VDaGlsZChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0
aW9uKSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoY2FuQ3Jvc3NVcHBlckJv
dW5kYXJ5KCkpIHsKKyAgICAgICAgU2hhZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVG
b3Iobm9kZSk7CisgICAgICAgIHJldHVybiAoc2hhZG93VHJlZSAmJiBzaGFkb3dUcmVlLT5oYXNT
aGFkb3dSb290KCkpID8gdHJhdmVyc2VMaWdodENoaWxkcmVuKHNoYWRvd1RyZWUtPnlvdW5nZXN0
U2hhZG93Um9vdCgpLCBkaXJlY3Rpb24pCisgICAgICAgICAgICA6IHRyYXZlcnNlTGlnaHRDaGls
ZHJlbihub2RlLCBkaXJlY3Rpb24pOworICAgIH0KKyAgICBpZiAoaXNTaGFkb3dIb3N0KG5vZGUp
KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdHJhdmVyc2VMaWdodENoaWxkcmVuKG5v
ZGUsIGRpcmVjdGlvbik7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJh
dmVyc2VMaWdodENoaWxkcmVuKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBk
aXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChOb2RlKiBjaGlsZCA9IChk
aXJlY3Rpb24gPT0gVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IG5vZGUtPmZpcnN0Q2hpbGQo
KSA6IG5vZGUtPmxhc3RDaGlsZCgpKSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlTm9kZShjaGls
ZCwgZGlyZWN0aW9uKTsKKyAgICByZXR1cm4gMDsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjp0cmF2ZXJzZU5vZGUoY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0
aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKGlzSW5zZXJ0aW9u
UG9pbnQobm9kZSkpIHsKKyAgICAgICAgY29uc3QgSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0KiBz
ZWxlY3Rpb25MaXN0ID0gdG9JbnNlcnRpb25Qb2ludChub2RlKS0+c2VsZWN0aW9ucygpOworICAg
ICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IChkaXJlY3Rpb24gPT0g
VHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IHNlbGVjdGlvbkxpc3QtPmZpcnN0KCkgOiBzZWxl
Y3Rpb25MaXN0LT5sYXN0KCkpKQorICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNlTm9kZShzZWxl
Y3Rpb24tPm5vZGUoKSwgZGlyZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlTGlnaHRD
aGlsZHJlbihub2RlLCBkaXJlY3Rpb24pOworICAgIH0KKyAgICByZXR1cm4gY29uc3RfY2FzdDxO
b2RlKj4obm9kZSk7Cit9CisKK3ZvaWQgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpuZXh0U2li
bGluZygpCit7CisgICAgQVNTRVJUX1BSRUNPTkRJVElPTigpOworICAgIG1fbm9kZSA9IHRyYXZl
cnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobV9ub2RlLCBUcmF2ZXJzYWxEaXJlY3Rp
b25Gb3J3YXJkKTsKKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOworfQorCit2b2lkIENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKK3sKKyAgICBBU1NFUlRfUFJF
Q09ORElUSU9OKCk7CisgICAgbV9ub2RlID0gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRp
b25Qb2ludChtX25vZGUsIFRyYXZlcnNhbERpcmVjdGlvbkJhY2t3YXJkKTsKKyAgICBBU1NFUlRf
UE9TVENPTkRJVElPTigpOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRy
YXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQoY29uc3QgTm9kZSogbm9kZSwgVHJh
dmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgU2hh
ZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBhcmVudChub2RlKTsKKyAgICBpZiAo
IXNoYWRvd1RyZWUpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRUcmVl
KG5vZGUsIGRpcmVjdGlvbik7CisgICAgSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9
IHNoYWRvd1RyZWUtPnNlbGVjdGlvbkZvcihub2RlKTsKKyAgICBpZiAoIXNlbGVjdGlvbikKKyAg
ICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUobm9kZSwgZGlyZWN0aW9u
KTsKKyAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIG5leHRTZWxlY3Rpb24gPSAoZGlyZWN0
aW9uID09IFRyYXZlcnNhbERpcmVjdGlvbkZvcndhcmQgPyBzZWxlY3Rpb24tPm5leHQoKSA6IHNl
bGVjdGlvbi0+cHJldmlvdXMoKSkpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZU5vZGUobmV4dFNl
bGVjdGlvbi0+bm9kZSgpLCBkaXJlY3Rpb24pOworICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdP
ckJhY2tUb0luc2VydGlvblBvaW50KHNlbGVjdGlvbi0+aW5zZXJ0aW9uUG9pbnQoKSwgZGlyZWN0
aW9uKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxp
bmdJbkN1cnJlbnRUcmVlKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJl
Y3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChOb2RlKiBuZXh0ID0gKGRpcmVj
dGlvbiA9PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gbm9kZS0+bmV4dFNpYmxpbmcoKSA6
IG5vZGUtPnByZXZpb3VzU2libGluZygpKSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlTm9kZShu
ZXh0LCBkaXJlY3Rpb24pOworICAgIGlmIChOb2RlKiBuZXh0ID0gdHJhdmVyc2VTaWJsaW5nT3JC
YWNrVG9Zb3VuZ2VyU2hhZG93Um9vdChub2RlLCBkaXJlY3Rpb24pKQorICAgICAgICByZXR1cm4g
bmV4dDsKKyAgICByZXR1cm4gZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudChub2RlLCBkaXJl
Y3Rpb24pOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlU2li
bGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jvb3QoY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2Fs
RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKG5vZGUt
PnBhcmVudE5vZGUoKSAmJiBub2RlLT5wYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKSB7Cisg
ICAgICAgIFNoYWRvd1Jvb3QqIHBhcmVudFNoYWRvd1Jvb3QgPSB0b1NoYWRvd1Jvb3Qobm9kZS0+
cGFyZW50Tm9kZSgpKTsKKyAgICAgICAgaWYgKCFwYXJlbnRTaGFkb3dSb290LT5pc1lvdW5nZXN0
KCkpIHsKKyAgICAgICAgICAgIEluc2VydGlvblBvaW50KiBhc3NpZ25lZEluc2VydGlvblBvaW50
ID0gcGFyZW50U2hhZG93Um9vdC0+YXNzaWduZWRUbygpOworICAgICAgICAgICAgQVNTRVJUKGFz
c2lnbmVkSW5zZXJ0aW9uUG9pbnQpOworICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGlu
Z0luQ3VycmVudFRyZWUoYXNzaWduZWRJbnNlcnRpb25Qb2ludCwgZGlyZWN0aW9uKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjplc2NhcGVGYWxsYmFja0NvbnRlbnRFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUsIFRy
YXZlcnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlm
IChub2RlLT5wYXJlbnROb2RlKCkgJiYgaXNJbnNlcnRpb25Qb2ludChub2RlLT5wYXJlbnROb2Rl
KCkpKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2lu
dChub2RlLT5wYXJlbnROb2RlKCksIGRpcmVjdGlvbik7CisgICAgcmV0dXJuIDA7Cit9CisKK05v
ZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VOb2RlRXNjYXBpbmdGYWxsYmFj
a0NvbnRlbnRzKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5vZGUpOwor
ICAgIGlmIChpc0luc2VydGlvblBvaW50KG5vZGUpKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VQ
YXJlbnROb2RlKG5vZGUpOworICAgIHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihub2RlKTsKK30K
Kwordm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudE5vZGUoKQoreworICAgIEFT
U0VSVF9QUkVDT05ESVRJT04oKTsKKyAgICBtX25vZGUgPSB0cmF2ZXJzZVBhcmVudE5vZGUobV9u
b2RlKTsKKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOworfQorCitOb2RlKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50Tm9kZShjb25zdCBOb2RlKiBub2RlKSBjb25z
dAoreworICAgIGlmICghY2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KCkgJiYgbm9kZS0+aXNTaGFkb3dS
b290KCkpIHsKKyAgICAgICAgQVNTRVJUKHRvU2hhZG93Um9vdChub2RlKS0+aXNZb3VuZ2VzdCgp
KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChTaGFkb3dUcmVlKiBzaGFkb3dU
cmVlID0gc2hhZG93VHJlZU9mUGFyZW50KG5vZGUpKSB7CisgICAgICAgIGlmIChIVE1MQ29udGVu
dFNlbGVjdGlvbiogc2VsZWN0aW9uID0gc2hhZG93VHJlZS0+c2VsZWN0aW9uRm9yKG5vZGUpKQor
ICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNlUGFyZW50Tm9kZShzZWxlY3Rpb24tPmluc2VydGlv
blBvaW50KCkpOworICAgIH0KKyAgICByZXR1cm4gdHJhdmVyc2VQYXJlbnROb2RlSW5DdXJyZW50
VHJlZShub2RlKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJz
ZVBhcmVudE5vZGVJbkN1cnJlbnRUcmVlKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAg
aWYgKE5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHBh
cmVudC0+aXNTaGFkb3dSb290KCkgPyB0cmF2ZXJzZVBhcmVudE5vZGVCYWNrVG9Zb3VuZ2VyU2hh
ZG93Um9vdE9ySG9zdCh0b1NoYWRvd1Jvb3QocGFyZW50KSkgOiB0cmF2ZXJzZU5vZGVFc2NhcGlu
Z0ZhbGxiYWNrQ29udGVudHMocGFyZW50KTsKKyAgICByZXR1cm4gMDsKK30KKworTm9kZSogQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGVCYWNrVG9Zb3VuZ2VyU2hh
ZG93Um9vdE9ySG9zdChjb25zdCBTaGFkb3dSb290KiBzaGFkb3dSb290KSBjb25zdAoreworICAg
IEFTU0VSVChzaGFkb3dSb290KTsKKyAgICBpZiAoc2hhZG93Um9vdC0+aXNZb3VuZ2VzdCgpKSB7
CisgICAgICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkKKyAgICAgICAgICAgIHJldHVy
biBzaGFkb3dSb290LT5ob3N0KCk7CisgICAgICAgIHJldHVybiBjb25zdF9jYXN0PFNoYWRvd1Jv
b3QqPihzaGFkb3dSb290KTsKKyAgICB9CisgICAgSW5zZXJ0aW9uUG9pbnQqIGFzc2lnbmVkSW5z
ZXJ0aW9uUG9pbnQgPSBzaGFkb3dSb290LT5hc3NpZ25lZFRvKCk7CisgICAgQVNTRVJUKGFzc2ln
bmVkSW5zZXJ0aW9uUG9pbnQpOworICAgIHJldHVybiB0cmF2ZXJzZVBhcmVudE5vZGUoYXNzaWdu
ZWRJbnNlcnRpb25Qb2ludCk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VOZXh0U2libGluZyhjb25zdCBOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChub2Rl
KTsKKyAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludChub2Rl
LCBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjp0cmF2ZXJzZVByZXZpb3VzU2libGluZyhjb25zdCBOb2RlKiBub2RlKQorewor
ICAgIEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNl
cnRpb25Qb2ludChub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNrd2FyZCk7Cit9CisKK3ZvaWQg
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpuZXh0Tm9kZSgpCit7CisgICAgQVNTRVJUX1BSRUNP
TkRJVElPTigpOworICAgIGlmIChOb2RlKiBuZXh0ID0gdHJhdmVyc2VGaXJzdENoaWxkKG1fbm9k
ZSkpCisgICAgICAgIG1fbm9kZSA9IG5leHQ7CisgICAgZWxzZSBpZiAoTm9kZSogbmV4dCA9IHRy
YXZlcnNlTmV4dFNpYmxpbmcobV9ub2RlKSkKKyAgICAgICAgbV9ub2RlID0gbmV4dDsKKyAgICBl
bHNlIHsKKyAgICAgICAgY29uc3QgTm9kZSogbiA9IG1fbm9kZTsKKyAgICAgICAgd2hpbGUgKG4g
JiYgIXRyYXZlcnNlTmV4dFNpYmxpbmcobikpCisgICAgICAgICAgICBuID0gdHJhdmVyc2VQYXJl
bnROb2RlKG4pOworICAgICAgICBtX25vZGUgPSBuID8gdHJhdmVyc2VOZXh0U2libGluZyhuKSA6
IDA7CisgICAgfQorICAgIEFTU0VSVF9QT1NUQ09ORElUSU9OKCk7Cit9CisKK3ZvaWQgQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyOjpwcmV2aW91c05vZGUoKQoreworICAgIEFTU0VSVF9QUkVDT05E
SVRJT04oKTsKKyAgICBpZiAoTm9kZSogbiA9IHRyYXZlcnNlUHJldmlvdXNTaWJsaW5nKG1fbm9k
ZSkpIHsKKyAgICAgICAgd2hpbGUgKE5vZGUqIGNoaWxkID0gdHJhdmVyc2VMYXN0Q2hpbGQobikp
CisgICAgICAgICAgICBuID0gY2hpbGQ7CisgICAgICAgIG1fbm9kZSA9IG47CisgICAgfSBlbHNl
CisgICAgICAgIHBhcmVudE5vZGUoKTsKKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOworfQor
Cit9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2NzRkMGFiZGI0YWZkZTMxMzljMDVmY2U5Mjc1NTBiNmI2
MTYzZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyLmgKQEAgLTAsMCArMSwxMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcl9oCisjZGVmaW5lIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcl9oCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTm9kZTsKK2NsYXNzIFNoYWRvd1Jvb3Q7CisKK2NsYXNz
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB7CitwdWJsaWM6CisgICAgZW51bSBQb2xpY3kgewor
ICAgICAgICBDcm9zc1VwcGVyQm91bmRhcnksCisgICAgICAgIERvTm90Q3Jvc3NVcHBlckJvdW5k
YXJ5LAorICAgIH07CisKKyAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIoY29uc3QgTm9kZSos
IFBvbGljeSA9IENyb3NzVXBwZXJCb3VuZGFyeSk7CisKKyAgICAvLyBGb3IgYSBjb21tb24gdXNl
IGNhc2Ugc3VjaCBhczoKKyAgICAvLyBmb3IgKENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxr
ZXIgPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnN0YXJ0ZWRXaXRoRmlyc3RDaGlsZChub2Rl
KTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIubmV4dFNpYmxpbmcoKSkKKyAgICBzdGF0aWMgaW5saW5l
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBzdGFydGVkV2l0aEZpcnN0Q2hpbGQoY29uc3QgTm9k
ZSosIFBvbGljeSA9IENyb3NzVXBwZXJCb3VuZGFyeSk7CisKKyAgICBOb2RlKiBnZXQoKSBjb25z
dCB7IHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihtX25vZGUpOyB9CisKKyAgICB2b2lkIGZpcnN0
Q2hpbGQoKTsKKyAgICB2b2lkIGxhc3RDaGlsZCgpOworCisgICAgdm9pZCBuZXh0U2libGluZygp
OworICAgIHZvaWQgcHJldmlvdXNTaWJsaW5nKCk7CisKKyAgICB2b2lkIHBhcmVudE5vZGUoKTsK
KworICAgIHZvaWQgbmV4dE5vZGUoKTsKKyAgICB2b2lkIHByZXZpb3VzTm9kZSgpOworCitwcml2
YXRlOgorICAgIGVudW0gVHJhdmVyc2FsRGlyZWN0aW9uIHsKKyAgICAgICAgVHJhdmVyc2FsRGly
ZWN0aW9uRm9yd2FyZCwKKyAgICAgICAgVHJhdmVyc2FsRGlyZWN0aW9uQmFja3dhcmQKKyAgICB9
OworCisgICAgYm9vbCBjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSBjb25zdCB7IHJldHVybiBtX3Bv
bGljeSA9PSBDcm9zc1VwcGVyQm91bmRhcnk7IH0KKworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lk
IGFzc2VydFByZWNvbmRpdGlvbigpIGNvbnN0OworICAgIHZvaWQgYXNzZXJ0UG9zdGNvbmRpdGlv
bigpIGNvbnN0OworI2VuZGlmCisKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VOb2RlKGNvbnN0
IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZUxp
Z2h0Q2hpbGRyZW4oY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisKKyAgICBOb2Rl
KiB0cmF2ZXJzZUZpcnN0Q2hpbGQoY29uc3QgTm9kZSopIGNvbnN0OworICAgIE5vZGUqIHRyYXZl
cnNlTGFzdENoaWxkKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAgICBOb2RlKiB0cmF2ZXJzZUNoaWxk
KGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pIGNvbnN0OworICAgIE5vZGUqIHRyYXZl
cnNlUGFyZW50Tm9kZShjb25zdCBOb2RlKikgY29uc3Q7CisKKyAgICBzdGF0aWMgTm9kZSogdHJh
dmVyc2VOZXh0U2libGluZyhjb25zdCBOb2RlKik7CisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNl
UHJldmlvdXNTaWJsaW5nKGNvbnN0IE5vZGUqKTsKKworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJz
ZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJl
Y3Rpb24pOworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRUcmVlKGNv
bnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOworCisgICAgc3RhdGljIE5vZGUqIHRyYXZl
cnNlU2libGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jvb3QoY29uc3QgTm9kZSosIFRyYXZlcnNh
bERpcmVjdGlvbik7CisgICAgc3RhdGljIE5vZGUqIGVzY2FwZUZhbGxiYWNrQ29udGVudEVsZW1l
bnQoY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisKKyAgICBOb2RlKiB0cmF2ZXJz
ZU5vZGVFc2NhcGluZ0ZhbGxiYWNrQ29udGVudHMoY29uc3QgTm9kZSopIGNvbnN0OworICAgIE5v
ZGUqIHRyYXZlcnNlUGFyZW50Tm9kZUluQ3VycmVudFRyZWUoY29uc3QgTm9kZSopIGNvbnN0Owor
ICAgIE5vZGUqIHRyYXZlcnNlUGFyZW50Tm9kZUJhY2tUb1lvdW5nZXJTaGFkb3dSb290T3JIb3N0
KGNvbnN0IFNoYWRvd1Jvb3QqKSBjb25zdDsKKworICAgIGNvbnN0IE5vZGUqIG1fbm9kZTsKKyAg
ICBQb2xpY3kgbV9wb2xpY3k7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBmMmYxMDk4MDQyNDA3NjdkMjUyYTU5Njg1
NDdlNjEyMzU2Njk5NjI5Li4xMDY0YzU4Zjc1ZjcwZTljMjg2N2NhYzExOTFmNGRhN2FmMjBiMjRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDbGllbnRSZWN0Lmgi
CiAjaW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKKyNpbmNsdWRlICJDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXIuaCIKICNpbmNsdWRlICJET01Ob2RlSGlnaGxpZ2h0ZXIuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCkBAIC0xODIsNiArMTgzLDYx
IEBAIGJvb2wgSW50ZXJuYWxzOjphdHRhY2hlZChOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICByZXR1cm4gbm9kZS0+YXR0YWNoZWQoKTsKIH0KIAorTm9kZSogSW50ZXJuYWxzOjpu
ZXh0U2libGluZ0J5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIobm9k
ZSk7CisgICAgd2Fsa2VyLm5leHRTaWJsaW5nKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsK
K30KKworTm9kZSogSW50ZXJuYWxzOjpmaXJzdENoaWxkQnlXYWxrZXIoTm9kZSogbm9kZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIuZmlyc3RDaGlsZCgpOworICAg
IHJldHVybiB3YWxrZXIuZ2V0KCk7Cit9CisKK05vZGUqIEludGVybmFsczo6bGFzdENoaWxkQnlX
YWxrZXIoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFub2RlKSB7
CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAg
ICB9CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxr
ZXIubGFzdENoaWxkKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30KKworTm9kZSogSW50
ZXJuYWxzOjpuZXh0Tm9kZUJ5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxr
ZXIobm9kZSk7CisgICAgd2Fsa2VyLm5leHROb2RlKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQo
KTsKK30KKworTm9kZSogSW50ZXJuYWxzOjpwcmV2aW91c05vZGVCeVdhbGtlcihOb2RlKiBub2Rl
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG5vZGUpOworICAgIHdhbGtlci5wcmV2aW91c05vZGUo
KTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCiBOb2RlKiBJbnRlcm5hbHM6Om5leHRT
aWJsaW5nSW5SZWlmaWVkVHJlZShOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBpZiAoIW5vZGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGEwNjEzYWMy
MTdiODNlYjlmODEzZWZhOTA4NzcxM2QwMGNmOGEzYjguLjc4ZjYxNDdhYTM4NGNiZWJlNmZjNGI4
ZjM4MDUxYmUwMWM5OGU3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtODQs
NiArODQsMTMgQEAgcHVibGljOgogCiAgICAgYm9vbCBhdHRhY2hlZChOb2RlKiwgRXhjZXB0aW9u
Q29kZSYpOwogCisgICAgLy8gRklYTUU6IFJlbmFtZSB0aGVzZSBmdW5jdGlvbnMgaWYgd2Fsa2Vy
IGlzIHByZWZlcmVkLgorICAgIE5vZGUqIG5leHRTaWJsaW5nQnlXYWxrZXIoTm9kZSosIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICBOb2RlKiBmaXJzdENoaWxkQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICBOb2RlKiBsYXN0Q2hpbGRCeVdhbGtlcihOb2RlKiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIE5vZGUqIG5leHROb2RlQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICBOb2RlKiBwcmV2aW91c05vZGVCeVdhbGtlcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwor
CiAgICAgTm9kZSogbmV4dFNpYmxpbmdJblJlaWZpZWRUcmVlKE5vZGUqLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgTm9kZSogZmlyc3RDaGlsZEluUmVpZmllZFRyZWUoTm9kZSosIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBOb2RlKiBsYXN0Q2hpbGRJblJlaWZpZWRUcmVlKE5vZGUqLCBFeGNlcHRpb25D
b2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggN2Q5OGJlYWZlODVj
MDYyNzVjYjA2MjdjMjQ1YmJiMGYzOWQ1M2UxZC4uMmI5NTk0Nzc2ZmU0MWRlMzMzNGJjNTFmNjMx
MDc2ZTc3MGRmNTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTUs
NiArNTUsMTIgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5
SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcgaWQpIHJhaXNl
cyhET01FeGNlcHRpb24pOwogICAgICAgICBib29sZWFuIGlzVmFsaWRDb250ZW50U2VsZWN0KGlu
IEVsZW1lbnQgY29udGVudEVsZW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCisgICAgICAg
IE5vZGUgbmV4dFNpYmxpbmdCeVdhbGtlcihpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRp
b24pOworICAgICAgICBOb2RlIGZpcnN0Q2hpbGRCeVdhbGtlcihpbiBOb2RlIG5vZGUpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBOb2RlIGxhc3RDaGlsZEJ5V2Fsa2VyKGluIE5vZGUg
bm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIE5vZGUgbmV4dE5vZGVCeVdhbGtl
cihpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBOb2RlIHByZXZp
b3VzTm9kZUJ5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisKICAg
ICAgICAgTm9kZSBuZXh0U2libGluZ0luUmVpZmllZFRyZWUoaW4gTm9kZSBub2RlKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgTm9kZSBmaXJzdENoaWxkSW5SZWlmaWVkVHJlZShpbiBO
b2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBOb2RlIGxhc3RDaGlsZElu
UmVpZmllZFRyZWUoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTEyNiw3
ICsxMzIsNyBAQCBtb2R1bGUgd2luZG93IHsKIAogI2lmIGRlZmluZWQoRU5BQkxFX0JBVFRFUllf
U1RBVFVTKSAmJiBFTkFCTEVfQkFUVEVSWV9TVEFUVVMKICAgICAgICAgdm9pZCBzZXRCYXR0ZXJ5
U3RhdHVzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBET01TdHJpbmcgZXZlbnRUeXBlLCBpbiBi
b29sZWFuIGNoYXJnaW5nLCBpbiBkb3VibGUgY2hhcmdpbmdUaW1lLCBpbiBkb3VibGUgZGlzY2hh
cmdpbmdUaW1lLCBpbiBkb3VibGUgbGV2ZWwpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSNlbmRp
ZiAKKyNlbmRpZgogCiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxv
bmcgbnVtYmVyT2ZMaXZlTm9kZXMoKTsKICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0g
dW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVEb2N1bWVudHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRl
ZgppbmRleCBhZGE4ODM3OWJkOTUwYWE1OTlkMGE0ZDEwOTRmMmZkMDM0OTBjM2Q0Li5kNTA0ZjI2
YzFkY2U3MDhkNDEzOWY2YjAxY2QxODE3NDVlNWRjZWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVm
CkBAIC0xODMsNiArMTgzLDEyIEBAIEVYUE9SVFMKICAgICAgICAgP2xhc3RDaGFuZ2VXYXNVc2Vy
RWRpdEBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCiAgICAgICAg
ID9sYXN0Q2hpbGRAUmVpZmllZFRyZWVUcmF2ZXJzYWxAV2ViQ29yZUBAU0FQQVZOb2RlQDJAUEJW
MzJAQFoKICAgICAgICAgP21hcmtlcnNGb3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNv
cmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRvY3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQ
QVZOb2RlQDJAVk1hcmtlclR5cGVzQERvY3VtZW50TWFya2VyQDJAQFoKKyAgICAgICAgP25leHRT
aWJsaW5nQENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBRQUVYWFoKKyAgICAgICAg
Pz8wQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRUBQQlZOb2RlQDFAVzRQb2xp
Y3lAMDFAQFoKKyAgICAgICAgP2ZpcnN0Q2hpbGRAQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdl
YkNvcmVAQFFBRVhYWgorICAgICAgICA/bGFzdENoaWxkQENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ckBXZWJDb3JlQEBRQUVYWFoKKyAgICAgICAgP25leHROb2RlQENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlckBXZWJDb3JlQEBRQUVYWFoKKyAgICAgICAgP3ByZXZpb3VzTm9kZUBDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9uZXh0U2libGluZ0BSZWlmaWVk
VHJlZVRyYXZlcnNhbEBXZWJDb3JlQEBTQVBBVk5vZGVAMkBQQlYzMkBAWgogICAgICAgICA/bnVt
YmVyQFN0cmluZ0BXVEZAQFNBP0FWMTJASUBaCiAgICAgICAgID9udW1iZXJAU3RyaW5nQFdURkBA
U0E/QVYxMkBIQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA5ZWUyZWUx
NzE4ZmYwYTU2Y2Y5ZjFiNTY5MGMzZDI3ZmQ1ZGUzNGFhLi5jYTJlNWUwZjY0YjViNGY4NDk5YTg0
NTBiMDU0MzU1OGY5MjQyOWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBA
IC0xODAsNiArMTgwLDEyIEBAIEVYUE9SVFMKICAgICAgICAgP251bWJlckBTdHJpbmdAV1RGQEBT
QT9BVjEyQEhAWgogICAgICAgICA/b2JzZXJ2ZUZyYW1lQEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ckBXZWJDb3JlQEBJQUVYUEFWRnJhbWVAMkBAWgogICAgICAgICA/b3ZlcnJpZGVVc2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzQFdlYkNvcmVAQFlBWEFCVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdU
RkBAQFoKKyAgICAgICAgP25leHRTaWJsaW5nQENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJD
b3JlQEBRQUVYWFoKKyAgICAgICAgPz8wQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVA
QFFBRUBQQlZOb2RlQDFAVzRQb2xpY3lAMDFAQFoKKyAgICAgICAgP2ZpcnN0Q2hpbGRAQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/bGFzdENoaWxkQENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBRQUVYWFoKKyAgICAgICAgP25leHROb2Rl
QENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBRQUVYWFoKKyAgICAgICAgP3ByZXZp
b3VzTm9kZUBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAg
ID9uZXh0U2libGluZ0BSZWlmaWVkVHJlZVRyYXZlcnNhbEBXZWJDb3JlQEBTQVBBVk5vZGVAMkBQ
QlYzMkBAWgogICAgICAgICA/bnVtYmVyT2ZTY29wZWRIVE1MU3R5bGVDaGlsZHJlbkBOb2RlQFdl
YkNvcmVAQFFCRUlYWgogICAgICAgICA/cGFnZUBEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdl
QDJAWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDUzMjBlOGIzNGQwMDNhNjEwYzNiOWYw
N2Y4ZTQxNTdlNmMwODhlNzUuLjc0M2FmNjZiMDRkMmIyZWViYWU5MWExM2M4ZTJjMjg4ZjcwNTAz
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNzIsNiArNzIsMTIgQEAgX1pON1dlYkNv
cmUyMFJlaWZpZWRUcmVlVHJhdmVyc2FsMTBmaXJzdENoaWxkRVBLTlNfNE5vZGVFOwogX1pON1dl
YkNvcmUyMWdldENhY2hlZERPTVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQS04z
SlNDOUNsYXNzSW5mb0U7CiBfWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNf
N0VsZW1lbnRFajsKIF9aTjdXZWJDb3JlMjJ1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzRXY7CitfWk43
V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyMTBmaXJzdENoaWxkRXY7CitfWk43V2Vi
Q29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyMTFuZXh0U2libGluZ0V2OworX1pON1dlYkNv
cmUyNENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjEycHJldmlvdXNOb2RlRXY7CitfWk43V2ViQ29y
ZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOG5leHROb2RlRXY7CitfWk43V2ViQ29yZTI0Q29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOWxhc3RDaGlsZEV2OworX1pON1dlYkNvcmUyNENvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlckMxRVBLTlNfNE5vZGVFTlMwXzZQb2xpY3lFOwogX1pON1dlYkNvcmUy
NERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVFTlNfMTREb2N1
bWVudE1hcmtlcjExTWFya2VyVHlwZXNFOwogX1pON1dlYkNvcmUzMG92ZXJyaWRlVXNlclByZWZl
cnJlZExhbmd1YWdlc0VSS04zV1RGNlZlY3RvcklOUzBfNlN0cmluZ0VMajBFRUU7CiBfWk43V2Vi
Q29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRVJLTjNXVEY2VmVjdG9ySU5TMF82
U3RyaW5nRUxtMEVFRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMGY3NzRmYmIyOTI0OGZmYWE4MDAwZmM0MzIwM2UxNmJl
ZDA0MGRiLi5lY2YxMTNkYTBkMmI4NmY4ZTRjNDlhY2VmZjE4ZjkzNTY4NjgxZjU2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMjYgIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtTaGFkb3cgRE9NXSBJbnRyb2R1Y2UgQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyIGFzIGEgc3VjY2Vzc29yIG9mIFJlaWZpZWRUcmVlVHJhdmVyc2FsIEFQSXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMDA5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFk
b3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci5odG1sOiBB
ZGRlZC4KKwogMjAxMi0wMy0yOSAgWmVubyBBbGJpc3NlciAgPHplbm9Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBGaWVsZHNldCBkaXNhYmxlZCBhdHRyaWJ1dGUgZG9lcyBub3Qgd29yay4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13
YWxrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2Vk
LXNoYWRvdy10cmVlLXdhbGtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2E4M2VhZTY5NjRh
ZDVhODkxMDI5ZGVhNDQzMWU3NWYxYjc4NTc5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTU2IEBACitUZXN0cyBmb3IgQ29tcG9zZWQgU2hhZG93IERPTSBUcmVl
IFRyYXZlcnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0aGluIERSVAorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworU2hhZG93Um9vdCBzaG91bGQgYmUgdXNlZC4KK0NvbXBvc2VkIFNo
YWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisKK1RyYXZlcnNlIGluIGZvcndhcmQu
CitESVYJIGlkPWEKK0RJVgkgaWQ9YgorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWIK
K0RJVgkgaWQ9YQorCitBIGNvbnRlbnQgZWxlbWVudCBzaG91bGQgc2VsZWN0IGxpZ2h0IGNoaWxk
cmVuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9YgorCURJVgkg
aWQ9YworCURJVgkgaWQ9ZAorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJ
IGlkPWIKK0RJVgkgaWQ9YworRElWCSBpZD1kCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkg
aWQ9ZAorRElWCSBpZD1jCitESVYJIGlkPWIKK0RJVgkgaWQ9YQorCitUZXN0IGZvciBjb250ZW50
IGVsZW1lbnQgc2VsZWN0b3IuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9YQorCURJ
VgkgaWQ9YgorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitUcmF2ZXJzZSBpbiBi
YWNrd2FyZC4KK0RJVgkgaWQ9YQorCitMaWdodCBjaGlsZHJlbiBzaG91bGQgYmUgc2VsZWN0ZWQg
b25seSBhdCBvbmNlLgorQ29tcG9zZWQgU2hhZG93IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlk
PWIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1iCitUcmF2ZXJz
ZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZQorRElWCSBpZD1kCitESVYJIGlkPWMKK0RJVgkgaWQ9
YQorCitBIGNvbnRlbnQgZWxlbWVudCBjYW4gaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4KK0NvbXBv
c2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJRElWCSBpZD1mMQorCURJ
VgkgaWQ9ZjIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1iCitE
SVYJIGlkPWYxCitESVYJIGlkPWYyCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZjIK
K0RJVgkgaWQ9ZjEKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK0ZhbGxiYWNrIGVsZW1lbnRzIHNo
b3VsZCBub3QgYmUgdXNlZCBpZiAgZWxlbWVudCBzZWxlY3RzIGFueSBlbGVtZW50cy4KK0NvbXBv
c2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJRElWCSBpZD1mMQorCURJ
VgkgaWQ9ZjIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1iCitE
SVYJIGlkPWYxCitESVYJIGlkPWYyCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZjIK
K0RJVgkgaWQ9ZjEKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK1Rlc3QgZm9yIE5lc3RlZCBTaGFk
b3dSb290cy4KK0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJ
CURJVgkgaWQ9YworCQlESVYJIGlkPWUKKwkJRElWCSBpZD1kCisJRElWCSBpZD1mCisJRElWCSBp
ZD1oCisJRElWCSBpZD1pCisJRElWCSBpZD1nCisKK1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJ
IGlkPWEKK0RJVgkgaWQ9YgorRElWCSBpZD1jCitESVYJIGlkPWUKK0RJVgkgaWQ9ZAorRElWCSBp
ZD1mCitESVYJIGlkPWgKK0RJVgkgaWQ9aQorRElWCSBpZD1nCitUcmF2ZXJzZSBpbiBiYWNrd2Fy
ZC4KK0RJVgkgaWQ9ZworRElWCSBpZD1pCitESVYJIGlkPWgKK0RJVgkgaWQ9ZgorRElWCSBpZD1k
CitESVYJIGlkPWUKK0RJVgkgaWQ9YworRElWCSBpZD1iCitESVYJIGlkPWEKKworVGVzdCBmb3Ig
TXVsdGlwbGUgU2hhZG93Um9vdHMuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9YQor
CURJVgkgaWQ9ZAorCURJVgkgaWQ9YgorCURJVgkgaWQ9ZgorCURJVgkgaWQ9YworCURJVgkgaWQ9
ZQorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWQKK0RJVgkgaWQ9
YgorRElWCSBpZD1mCitESVYJIGlkPWMKK0RJVgkgaWQ9ZQorVHJhdmVyc2UgaW4gYmFja3dhcmQu
CitESVYJIGlkPWUKK0RJVgkgaWQ9YworRElWCSBpZD1mCitESVYJIGlkPWIKK0RJVgkgaWQ9ZAor
RElWCSBpZD1hCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcG9zZWQt
c2hhZG93LXRyZWUtd2Fsa2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29t
cG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTUzNmMyYzM2Y2FlMmFi
OTRiOWE1YmMwYmU3YzI4YmM3ZWIwMDdhOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbApAQCAtMCww
ICsxLDE2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgZm9y
IENvbXBvc2VkIFNoYWRvdyBET00gVHJlZSBUcmF2ZXJzYWwgQVBJcy4gQ2FuIG9ubHkgcnVuIHdp
dGhpbiBEUlQiKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGR1bXBOb2RlKG5vZGUp
Cit7CisgICAgdmFyIG91dHB1dCA9IG5vZGUubm9kZU5hbWUgKyAiXHQiOworICAgIGlmIChub2Rl
LmlkKQorICAgICAgICBvdXRwdXQgKz0gJyBpZD0nICsgbm9kZS5pZDsKKyAgICBpZiAobm9kZS5j
bGFzc05hbWUpCisgICAgICAgIG91dHB1dCArPSAnIGNsYXNzPScgKyBub2RlLmNsYXNzTmFtZTsK
KyAgICByZXR1cm4gb3V0cHV0OworfQorCitmdW5jdGlvbiBkdW1wQ29tcG9zZWRTaGFkb3dUcmVl
KG5vZGUsIGluZGVudCkKK3sKKyAgICBpbmRlbnQgPSBpbmRlbnQgfHwgIiI7CisgICAgdmFyIG91
dHB1dCA9IGluZGVudCArIGR1bXBOb2RlKG5vZGUpICsgIlxuIjsKKyAgICB2YXIgY2hpbGQ7Cisg
ICAgZm9yIChjaGlsZCA9IGludGVybmFscy5maXJzdENoaWxkQnlXYWxrZXIobm9kZSk7IGNoaWxk
OyBjaGlsZCA9IGludGVybmFscy5uZXh0U2libGluZ0J5V2Fsa2VyKGNoaWxkKSkKKyAgICAgICAg
IG91dHB1dCArPSBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKGNoaWxkLCBpbmRlbnQgKyAiXHQiKTsK
KyAgICByZXR1cm4gb3V0cHV0OworfQorCitmdW5jdGlvbiBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3Qp
Cit7CisgICAgdmFyIGxhc3ROb2RlID0gcm9vdDsKKyAgICB3aGlsZSAoaW50ZXJuYWxzLmxhc3RD
aGlsZEJ5V2Fsa2VyKGxhc3ROb2RlKSkKKyAgICAgICAgbGFzdE5vZGUgPSBpbnRlcm5hbHMubGFz
dENoaWxkQnlXYWxrZXIobGFzdE5vZGUpOworICAgIHJldHVybiBsYXN0Tm9kZTsKK30KKworZnVu
Y3Rpb24gc2hvd0NvbXBvc2VkU2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luRm9yd2FyZChyb290KQor
eworICAgIHZhciBub2RlID0gcm9vdDsKKyAgICB2YXIgbGFzdCA9IGxhc3ROb2RlQnlXYWxrZXIo
cm9vdCk7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgZGVidWcoZHVtcE5vZGUobm9kZSkp
OworICAgICAgICBpZiAobm9kZSA9PSBsYXN0KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IG5vZGUgPSBpbnRlcm5hbHMubmV4dE5vZGVCeVdhbGtlcihub2RlKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNpbmdJbkJhY2t3YXJkKHJvb3Qp
Cit7CisgICAgdmFyIG5vZGUgPSBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpOworICAgIHdoaWxlIChu
b2RlKSB7CisgICAgICAgIGRlYnVnKGR1bXBOb2RlKG5vZGUpKTsKKyAgICAgICAgaWYgKG5vZGUg
PT0gcm9vdCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBub2RlID0gaW50ZXJuYWxzLnBy
ZXZpb3VzTm9kZUJ5V2Fsa2VyKG5vZGUpOworICAgIH0KK30KKworZnVuY3Rpb24gc2hvd0NvbXBv
c2VkU2hhZG93VHJlZShub2RlKQoreworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobm9k
ZSk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworCisgICAgZGVidWcoJ0NvbXBvc2Vk
IFNoYWRvdyBUcmVlOicpOworICAgIGRlYnVnKGR1bXBDb21wb3NlZFNoYWRvd1RyZWUobm9kZSkp
OworCisgICAgZGVidWcoJ1RyYXZlcnNlIGluIGZvcndhcmQuJyk7CisgICAgc2hvd0NvbXBvc2Vk
U2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luRm9yd2FyZChub2RlKTsKKworICAgIGRlYnVnKCdUcmF2
ZXJzZSBpbiBiYWNrd2FyZC4nKTsKKyAgICBzaG93Q29tcG9zZWRTaGFkb3dUcmVlQnlUcmF2ZXJz
aW5nSW5CYWNrd2FyZChub2RlKTsKKworICAgIGRlYnVnKCcnKTsKK30KKworZGVidWcoJ1NoYWRv
d1Jvb3Qgc2hvdWxkIGJlIHVzZWQuJyk7CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSkpLAorICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnYyd9KSkpOworCitkZWJ1ZygnQSBjb250ZW50IGVsZW1lbnQgc2hv
dWxkIHNlbGVjdCBsaWdodCBjaGlsZHJlbicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFk
b3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwKKyAgICAgICAgICAgICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ2MnfSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdkJ30pKSk7CisKK2RlYnVnKCdUZXN0IGZvciBjb250ZW50IGVsZW1lbnQgc2VsZWN0
b3IuJyk7CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2InfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdjb250ZW50JywgeydzZWxlY3QnOiAnLmQnfSkpLAorICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnYyd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2QnfSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSk7
CisKK2RlYnVnKCdMaWdodCBjaGlsZHJlbiBzaG91bGQgYmUgc2VsZWN0ZWQgb25seSBhdCBvbmNl
LicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
Y29udGVudCcsIHsnc2VsZWN0JzogJy5kJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2MnfSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdk
J30pLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSkpOworCitk
ZWJ1ZygnQSBjb250ZW50IGVsZW1lbnQgY2FuIGhhdmUgZmFsbGJhY2sgZWxlbWVudHMuJyk7Citz
aG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30s
CisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2InfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50
JywgeydzZWxlY3QnOiAnLnonfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YxJ30pLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZjInfSkpKSwK
KyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSkpKTsKKworZGVidWco
J0ZhbGxiYWNrIGVsZW1lbnRzIHNob3VsZCBub3QgYmUgdXNlZCBpZiA8Y29udGVudD4gZWxlbWVu
dCBzZWxlY3RzIGFueSBlbGVtZW50cy4nKTsKK3Nob3dDb21wb3NlZFNoYWRvd1RyZWUoCisgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93
Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6ICcuYyd9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnZjEnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdmMid9KSkpLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnYyd9KSkpOworCitkZWJ1ZygnVGVzdCBmb3IgTmVzdGVkIFNoYWRvd1Jvb3Rz
LicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdiJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy
ZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdjb250ZW50JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
ZSd9KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2YnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdj
b250ZW50JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2cnfSkpLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
aCd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2knfSkpKTsKKwor
ZGVidWcoJ1Rlc3QgZm9yIE11bHRpcGxlIFNoYWRvd1Jvb3RzLicpOworc2hvd0NvbXBvc2VkU2hh
ZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAg
ICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSwKKyAg
ICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ3NoYWRvdycpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdl
J30pKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSkpKTsKKwor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9D
aGFuZ2VMb2cKaW5kZXggZTAwYTQ4N2M1ZjRmYzE2Nzc5YWZkYmNjMDgxNzk5ZGY5ZTg2NTM5Yi4u
ZWJjZWNhNzI4MWQyNjU3Yjk2NzEyMDE0MTUxNWY3NTc2ZmZmZDYyMiAxMDA2NDQKLS0tIGEvQ2hh
bmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTAzLTI5ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gSW50
cm9kdWNlIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBhcyBhIHN1Y2Nlc3NvciBvZiBSZWlmaWVk
VHJlZVRyYXZlcnNhbCBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMi0wMy0y
OCAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4KIAogICAgICAgICBb
d3hdIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeCwgbW92ZSBXVEYgYmFjayBpbnRvIEpTQ29yZSB0YXJn
ZXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134739</attachid>
            <date>2012-03-30 00:40:47 -0700</date>
            <delta_ts>2012-04-01 22:43:06 -0700</delta_ts>
            <desc>ready for review</desc>
            <filename>bug-82009-20120330164046.patch</filename>
            <type>text/plain</type>
            <size>47138</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRkN2YyZjNhMjQ0MjRl
YjE4MWUwYjMyZDg3YTYwYTY3YTdhOGI5My4uNjM2NWQzNzEyMGNkNGFmZTZmM2ZhMzE1MGFhM2Uy
ZGY5YTM4MTdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTAzLTI2ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gSW50
cm9kdWNlIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBhcyBhIHN1Y2Nlc3NvciBvZiBSZWlmaWVk
VHJlZVRyYXZlcnNhbCBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBpcyBpbnRlbmRlZCB0byBiZSBhIHN1
Y2Nlc3NvciBvZiBjdXJyZW50IFJlaWZpZWRUcmVlVHJhdmVyc2FsIEFQSXMuCisgICAgICAgIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlciB1c2VzIGEgY3Vyc29yIHBhdHRlcm4gYW5kIHRha2VzIGEg
c3RhcnRpbmcgbm9kZSBpbiBpdHMgY29uc3RydWN0b3IuCisKKyAgICAgICAgQSB0eXBpY2FsIHVz
YWdlIGlzOgorCisgICAgICAgICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2Vy
KG5vZGUpOyB3YWxrZXIuZ2V0KCk7IHdhbGtlci5uZXh0Tm9kZSgpKSB7CisgICAgICAgICAgICAg
ICAgLi4uCisgICAgICAgICAgfQorCisgICAgICAgIEZvbGxvdy11cCBwYXRjaGVzIHdpbGwgdXBk
YXRlIGNsaWVudHMgd2hpY2ggdXNlIGN1cnJlbnQgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJcyBz
byB0aGF0IHRoZXkgdXNlIHRoZSBXYWxrZXIuCisgICAgICAgIE1vcmUgdGVzdHMgd2lsbCBjb21l
IGFsb25nIHdpdGggdGhlc2UgYWN0dWFsIHVzZSBjYXNlcyBpbiBmb2xsb3ctdXAgcGF0Y2hlcy4K
KyAgICAgICAgQWZ0ZXIgdGhhdCwgSSdsbCBnZXQgcmlkIG9mIFJlaWZpZWRUcmVlVHJhdmVyc2Fs
IEFQSXMgaW4gZmF2b3Igb2YgdGhlIFdhbGtlci4KKworICAgICAgICBOb3RlIHRoYXQgJ0NvbXBv
c2VkU2hhZG93VHJlZScgYW5kICdSZWlmaWVkVHJlZScgaGFzIHRoZSBzYW1lIG1lYW5pbmcuCisg
ICAgICAgIEJlY2F1c2UgUmVpZmllZFRyZWUgaXMgbm90IGludHVpdGl2ZSBuYW1lLCB3ZSBhcmUg
c3RhcnRpbmcgdG8gdXNlICdDb21wb3NlZFNoYWRvd1RyZWUnIGZyb20gbm93LgorCisgICAgICAg
IFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAg
ICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6c2hhZG93VHJlZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dUcmVlT2ZQYXJl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjpzdGFydGVkV2l0aEZpcnN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyOjphc3NlcnRQcmVjb25kaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjphc3NlcnRQb3N0Y29uZGl0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlRmlyc3RDaGls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Omxhc3RDaGls
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNl
TGFzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OnRyYXZlcnNlTGlnaHRDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXI6Om5leHRTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRp
b25Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRy
YXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb1lvdW5nZXJTaGFkb3dSb290
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZXNjYXBlRmFs
bGJhY2tDb250ZW50RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OnRyYXZlcnNlTm9kZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyk6CisgICAgICAg
IChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBh
cmVudE5vZGVJbkN1cnJlbnRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnROb2RlQmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhv
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJz
ZU5leHRTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtl
cjo6dHJhdmVyc2VQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyOjpuZXh0Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnByZXZpb3VzTm9kZSk6CisgICAgICAgICogZG9tL0NvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjo6Y2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om5leHRTaWJsaW5nQnlXYWxrZXIp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmZpcnN0
Q2hpbGRCeVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omxhc3RDaGlsZEJ5
V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bmV4dE5vZGVCeVdhbGtlcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDMtMjggIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFNwbGl0IFdlYktpdENTU0tleWZyYW1lUnVs
ZSBpbnRvIGludGVybmFsIGFuZCBDU1NPTSB0eXBlcyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3MjY4MjFkMDk3
NDVmYjgzOTA3YmIxNTQwYjZkOWM5NjkxNDY4MzAxLi45Y2Y3MDllODVmYmU4MTY2NDQzMzU1ODU5
MmFkNzY1MjY2OWRmOTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMjkg
IEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTaGFkb3cgRE9N
XSBJbnRyb2R1Y2UgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIGFzIGEgc3VjY2Vzc29yIG9mIFJl
aWZpZWRUcmVlVHJhdmVyc2FsIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgyMDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJD
RkxpdGUuZGVmOgorCiAyMDEyLTAzLTI4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IGEgY3Jhc2ggYW5kIGFuIGFzc2VydGlvbiB3aGVuIHJlY292
ZXJpbmcgZnJvbSBhIHdlYiBwcm9jZXNzIGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI2
MzBmM2Q3NDY0Y2M2MmJhM2FmNGZjZTQ5NjA5NTgzOTNlNGIxYzcuLjA2MmYxZTUzNGYzZDM3YzRh
YTViNWQ1NGNkZGM5ZWVkZDM0MzcyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MzksNiAr
NTM5LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9DbGlwYm9hcmQuY3BwCiAgICAg
ZG9tL0NsaXBib2FyZEV2ZW50LmNwcAogICAgIGRvbS9Db21tZW50LmNwcAorICAgIGRvbS9Db21w
b3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3BwCiAg
ICAgZG9tL0NvbnRhaW5lck5vZGUuY3BwCiAgICAgZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggZmY4MTliM2I3ZjBiODFh
ZjkwOGQ0NGMyMDAzNmY0ZGEzOWU1NmY2Yy4uMTMzYjg1YTk2NzhlM2JhZDg2YzlhNTg3OWM1ZjRm
OWNhMjQzYTZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xNzQ4LDYgKzE3
NDgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9h
cmQuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9kb20vQ29tbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVudC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Db21wb3NpdGlvbkV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9D
b250YWluZXJOb2RlQWxnb3JpdGhtcy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDFmZGM2OWNmNzNiYjMz
YmEwOWIyNzk3YzQwOWQ3MmRhOWFlN2ViYTcuLjI0ZDdkOTdlZGE4NDZlZTg1N2UwOGNkNjIwZDdk
YTEzYzZkZmM2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTE0LDYgKzUxNCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGRvbS9DbGlwYm9hcmQuY3BwIFwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuY3BwIFwK
ICAgICBkb20vQ29tbWVudC5jcHAgXAorICAgIGRvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIu
Y3BwIFwKICAgICBkb20vQ29tcG9zaXRpb25FdmVudC5jcHAgXAogICAgIGRvbS9Db250YWluZXJO
b2RlLmNwcCBcCiAgICAgZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBcCkBAIC0x
NjU1LDYgKzE2NTYsNyBAQCBIRUFERVJTICs9IFwKICAgICBkb20vQ2xpcGJvYXJkRXZlbnQuaCBc
CiAgICAgZG9tL0NsaXBib2FyZC5oIFwKICAgICBkb20vQ29tbWVudC5oIFwKKyAgICBkb20vQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggXAogICAgIGRvbS9Db250YWluZXJOb2RlLmggXAogICAg
IGRvbS9DdXN0b21FdmVudC5oIFwKICAgICBkb20vZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0
Q2hhbm5lbC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggMGM0MjZmN2UwYzE3ZjYzMjkyNzhm
ZjFiZGRkZDVhZjM3ODQ1YzcyOS4uOGMzMjZhMzhkMzMxNmRhYTMzNDg2YjMzZDg1ZjA2M2Y2ZWI5
M2Y5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTY2NSw2ICs2NjUsMTIgQEAgX19aTjdXZWJD
b3JlMjNlbmNvZGVIb3N0TmFtZVdpdGhSYW5nZUVQOE5TU3RyaW5nOF9OU1JhbmdlCiBfX1pON1dl
YkNvcmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJOM1dURjdIYXNoU2V0SU5TMF82U3RyaW5n
RU5TMF8xMFN0cmluZ0hhc2hFTlMwXzEwSGFzaFRyYWl0c0lTMl9FRUVFCiBfX1pON1dlYkNvcmUy
NEJpbmFyeVByb3BlcnR5TGlzdFdyaXRlcjE3d3JpdGVQcm9wZXJ0eUxpc3RFdgogX19aTjdXZWJD
b3JlMjRDYWNoZWRSZXNvdXJjZUhhbmRsZUJhc2UxMXNldFJlc291cmNlRVBOU18xNENhY2hlZFJl
c291cmNlRQorX19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIxMGZpcnN0Q2hp
bGRFdgorX19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIxMW5leHRTaWJsaW5n
RXYKK19fWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyMTJwcmV2aW91c05vZGVF
dgorX19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI4bmV4dE5vZGVFdgorX19a
TjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI5bGFzdENoaWxkRXYKK19fWk43V2Vi
Q29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQzFFUEtOU180Tm9kZUVOUzBfNlBvbGljeUUK
IF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180
Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIx
MU1hcmtlclR5cGVzRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3Jl
bmRlcmVkUmVjdHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggMmEzOGY3NzA5NDk5ZGI4MGI0MGMzYjBkYzAwNmQ1MzQ3Njc0NGQw
YS4uM2IwYTlhZGYzY2Q3NTA5YzYyYTZmNzFmNTAwZjZmYTIzMDQzNTk1ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNTg5LDYgKzU4OSw3IEBACiAgICAgICAgICAgICAnZG9tL0NoZWNrZWRSYWRpb0J1
dHRvbnMuaCcsCiAgICAgICAgICAgICAnZG9tL0NsaXBib2FyZC5oJywKICAgICAgICAgICAgICdk
b20vQ2xpcGJvYXJkQWNjZXNzUG9saWN5LmgnLAorICAgICAgICAgICAgJ2RvbS9Db21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0NvbnRhaW5lck5vZGUuaCcsCiAg
ICAgICAgICAgICAnZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgnLAogICAgICAgICAg
ICAgJ2RvbS9ET01JbXBsZW1lbnRhdGlvbi5oJywKQEAgLTUwODIsNiArNTA4Myw4IEBACiAgICAg
ICAgICAgICAnZG9tL0NsaXBib2FyZEV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9Db21tZW50
LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0NvbW1lbnQuaCcsCisgICAgICAgICAgICAnZG9tL0Nv
bXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAnLAorICAgICAgICAgICAgJ2RvbS9Db21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCcsCiAgICAgICAgICAgICAnZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3Bw
JywKICAgICAgICAgICAgICdkb20vQ29tcG9zaXRpb25FdmVudC5oJywKICAgICAgICAgICAgICdk
b20vQ29udGFpbmVyTm9kZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA1ZTFkZGZhMDdkY2IzNjE5ZTAyNzcwN2IwYTQ5MDc2MDlmMjMz
MTFkLi4xMWVlNjYxZDkwOTIxY2Y5MTliYjc4ZmY4MmUyODkzODc2ZDIxYzMyIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDc5MjYsNiArNDc5
MjYsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cZG9tXENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXENvbXBvc2l0aW9uRXZlbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBmMjAwOGMzZTA1ZTJiMzk1NDY0ODMxMDI2M2NmNmI3YTcwZDMxZDI3Li44NmMyY2E1MTJj
NmQwZGNkYWI3ZDZmMWFjZjE2OTM4OWM3NzFiYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzY4LDYgKzEzNjgsOCBAQAog
CQk0QTFFNzFBNjE0RTEwNkFDMDA2MjZGOUQgLyogSlNTaGFkb3dSb290LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTFFNzFBNDE0RTEwNkFDMDA2MjZG
OUQgLyogSlNTaGFkb3dSb290LmggKi87IH07CiAJCTRBMzhCRjUwMTRGRTFDMDkwMDYxMjUxMiAv
KiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDRBMzhCRjRFMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXRE
ZWZsYXRlRnJhbWVyLmNwcCAqLzsgfTsKIAkJNEEzOEJGNTExNEZFMUMwOTAwNjEyNTEyIC8qIFdl
YlNvY2tldERlZmxhdGVGcmFtZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDRBMzhCRjRGMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRl
RnJhbWVyLmggKi87IH07CisJCTRBNkEwQzVCMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEE2QTBDNTkxNTIzMkYyNDAwQjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5jcHAgKi87IH07CisJCTRBNkEwQzVDMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDRBNkEwQzVBMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIuaCAqLzsgfTsKIAkJNEE2RTlGQzMxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFs
dWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2
RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuY3BwICovOyB9OwogCQk0
QTZFOUZDNDEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzIxM0MxN0QxRDAwNDZB
N0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0QTZFOUZDNzEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1
cmVTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0QTZFOUZDNTEzQzE3RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAg
Ki87IH07CkBAIC04MzEwLDYgKzgzMTIsOCBAQAogCQk0QTFFNzFBNDE0RTEwNkFDMDA2MjZGOUQg
LyogSlNTaGFkb3dSb290LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2hh
ZG93Um9vdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTM4QkY0RTE0RkUxQzA5
MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDsgcGF0aCA9IE1v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNEEzOEJGNEYxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERl
ZmxhdGVGcmFtZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViU29ja2V0
RGVmbGF0ZUZyYW1lci5oOyBwYXRoID0gTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxh
dGVGcmFtZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2QTBDNTkxNTIzMkYy
NDAwQjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0QTZBMEM1QTE1MjMyRjI0MDBCMDlDNkUgLyogQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0QTZFOUZDMTEzQzE3RDFEMDA0NkE3RjggLyogRm9udEZlYXR1cmVWYWx1ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVZhbHVlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE2RTlGQzIxM0MxN0QxRDAwNDZBN0Y4IC8qIEZv
bnRGZWF0dXJlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udEZl
YXR1cmVWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QTZFOUZDNTEzQzE3
RDU3MDA0NkE3RjggLyogRm9udEZlYXR1cmVTZXR0aW5ncy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGb250RmVhdHVyZVNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIwODYzLDYgKzIwODY3LDggQEAKIAkJCQk2NTUwQjY5NzA5OURG
MDI3MDA5MEQ3ODEgLyogQ29tbWVudC5jcHAgKi8sCiAJCQkJNjU1MEI2OTgwOTlERjAyNzAwOTBE
NzgxIC8qIENvbW1lbnQuaCAqLywKIAkJCQk4NTA4OUNDNzBBOThDMjI2MDBBMjc1QUEgLyogQ29t
bWVudC5pZGwgKi8sCisJCQkJNEE2QTBDNTkxNTIzMkYyNDAwQjA5QzZFIC8qIENvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlci5jcHAgKi8sCisJCQkJNEE2QTBDNUExNTIzMkYyNDAwQjA5QzZFIC8qIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlci5oICovLAogCQkJCTc5RjJGNTlFMTA5MTkzOUEwMDBEODdD
QiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLywKIAkJCQk3OUYyRjU5RjEwOTE5MzlBMDAwRDg3
Q0IgLyogQ29tcG9zaXRpb25FdmVudC5oICovLAogCQkJCTc5RjJGNUEwMTA5MTkzOUEwMDBEODdD
QiAvKiBDb21wb3NpdGlvbkV2ZW50LmlkbCAqLywKQEAgLTIxNjg0LDYgKzIxNjkwLDcgQEAKIAkJ
CQlCQ0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjU1MEI2QTIwOTlERjAyNzAwOTBENzgxIC8qIENvbW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTM3QzIzNjExMTA5N0VFNzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLAorCQkJCTRBNkEwQzVDMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNkZFMTE2MEU2RTFEQTcw
MEJGNjA4OCAvKiBDb21wb3NpdGVBbmltYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5
REREMDk5RTY0OTIwMDU2RTU4MSAvKiBDb21wb3NpdGVFZGl0Q29tbWFuZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzlGMkY1QTIxMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMjUxNjIsNiArMjUxNjksNyBAQAogCQkJCTM3QzIzNjEwMTA5N0VF
NzcwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzdDMjM4MjExMDk4Qzg0MjAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlckFUU1VJ
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3QzIzODIyMTA5OEM4NDIwMEVGOUY3MiAvKiBDb21w
bGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbSBpbiBTb3VyY2VzICovLAorCQkJCTRBNkEwQzVC
MTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzE2RkUxMTUwRTZFMURBNzAwQkY2MDg4IC8qIENvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzMwOUREQzA5OUU2NDkyMDA1NkU1ODEgLyogQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzlGMkY1QTExMDkxOTM5
QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljg1NDQwNWExYzBhYWUxYTUzMWEwODEyNzAwOTk5Yjk3MzZiNGEwZTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcApAQCAt
MCwwICsxLDMxMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCIKKworI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
Q29udGVudFNlbGVjdG9yLmgiCisjaW5jbHVkZSAiSW5zZXJ0aW9uUG9pbnQuaCIKKyNpbmNsdWRl
ICJTaGFkb3dUcmVlLmgiCisKKyNpZm5kZWYgTkRFQlVHCisjZGVmaW5lIEFTU0VSVF9QUkVDT05E
SVRJT04oKSBhc3NlcnRQcmVjb25kaXRpb24oKQorI2Vsc2UKKyNkZWZpbmUgQVNTRVJUX1BSRUNP
TkRJVElPTigpCisjZW5kaWYKKworI2lmbmRlZiBOREVCVUcKKyNkZWZpbmUgQVNTRVJUX1BPU1RD
T05ESVRJT04oKSBhc3NlcnRQb3N0Y29uZGl0aW9uKCkKKyNlbHNlCisjZGVmaW5lIEFTU0VSVF9Q
T1NUQ09ORElUSU9OKCkKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBpc1NoYWRvd0hvc3QoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICByZXR1cm4g
bm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5oYXNTaGFk
b3dSb290KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU2hhZG93VHJlZSogc2hhZG93VHJlZUZvcihj
b25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUo
KSkKKyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChub2RlKS0+c2hhZG93VHJlZSgpOworICAgIHJl
dHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWVPZlBhcmVu
dChjb25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlICYmIG5vZGUtPnBhcmVudE5vZGUo
KSkKKyAgICAgICAgcmV0dXJuIHNoYWRvd1RyZWVGb3Iobm9kZS0+cGFyZW50Tm9kZSgpKTsKKyAg
ICByZXR1cm4gMDsKK30KKworQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIoY29uc3QgTm9kZSogbm9kZSwgUG9saWN5IHBvbGljeSkKKyAgICA6IG1fbm9k
ZShub2RlKQorICAgICwgbV9wb2xpY3kocG9saWN5KQoreworI2lmbmRlZiBOREVCVUcKKyAgICBh
c3NlcnRQb3N0Y29uZGl0aW9uKCk7CisjZW5kaWYKK30KKworQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6c3RhcnRlZFdpdGhGaXJzdENoaWxkKGNvbnN0
IE5vZGUqIG5vZGUsIFBvbGljeSBwb2xpY3kpCit7CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyIHdhbGtlcihub2RlLCBwb2xpY3kpOworICAgIHdhbGtlci5maXJzdENoaWxkKCk7CisgICAg
cmV0dXJuIHdhbGtlcjsKK30KKworI2lmbmRlZiBOREVCVUcKK3ZvaWQgQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjphc3NlcnRQcmVjb25kaXRpb24oKSBjb25zdAoreworICAgIEFTU0VSVChtX25v
ZGUpOworICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkKKyAgICAgICAgQVNTRVJUKCFt
X25vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBlbHNlCisgICAgICAgIEFTU0VSVCghbV9ub2Rl
LT5pc1NoYWRvd1Jvb3QoKSB8fCB0b1NoYWRvd1Jvb3QobV9ub2RlKS0+aXNZb3VuZ2VzdCgpKTsK
KyAgICAvLyBGSVhNRTogQWRkIGFuIGFzc2VydGlvbiBvbmNlIEluc2VydGlvblBvaW50IGhhdmUg
aXNBY3RpdmUoKSBmdW5jdGlvbi4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODIwMTAKKyAgICAvLyBBU1NFUlQoIWlzSW5zZXJ0aW9uUG9pbnQobV9ub2Rl
KSB8fCAhdG9JbnNlcnRpb25Qb2ludChub2RlKS0+aXNBY3RpdmUoKSk7Cit9CisKK3ZvaWQgQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjphc3NlcnRQb3N0Y29uZGl0aW9uKCkgY29uc3QKK3sKKyAg
ICBpZiAobV9ub2RlKQorICAgICAgICBhc3NlcnRQcmVjb25kaXRpb24oKTsKK30KKyNlbmRpZgor
Cit2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCgpCit7CisgICAgQVNT
RVJUX1BSRUNPTkRJVElPTigpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlQ2hpbGQobV9ub2RlLCBU
cmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkKTsKKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOwor
fQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlRmlyc3RDaGlsZChj
b25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4g
dHJhdmVyc2VDaGlsZChub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkKTsKK30KKwordm9p
ZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Omxhc3RDaGlsZCgpCit7CisgICAgQVNTRVJUX1BS
RUNPTkRJVElPTigpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlTGFzdENoaWxkKG1fbm9kZSk7Cisg
ICAgQVNTRVJUX1BPU1RDT05ESVRJT04oKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjp0cmF2ZXJzZUxhc3RDaGlsZChjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAg
IEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4gdHJhdmVyc2VDaGlsZChub2RlLCBUcmF2ZXJzYWxE
aXJlY3Rpb25CYWNrd2FyZCk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VDaGlsZChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0
aW9uKSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoY2FuQ3Jvc3NVcHBlckJv
dW5kYXJ5KCkpIHsKKyAgICAgICAgU2hhZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVG
b3Iobm9kZSk7CisgICAgICAgIHJldHVybiAoc2hhZG93VHJlZSAmJiBzaGFkb3dUcmVlLT5oYXNT
aGFkb3dSb290KCkpID8gdHJhdmVyc2VMaWdodENoaWxkcmVuKHNoYWRvd1RyZWUtPnlvdW5nZXN0
U2hhZG93Um9vdCgpLCBkaXJlY3Rpb24pCisgICAgICAgICAgICA6IHRyYXZlcnNlTGlnaHRDaGls
ZHJlbihub2RlLCBkaXJlY3Rpb24pOworICAgIH0KKyAgICBpZiAoaXNTaGFkb3dIb3N0KG5vZGUp
KQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gdHJhdmVyc2VMaWdodENoaWxkcmVuKG5v
ZGUsIGRpcmVjdGlvbik7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJh
dmVyc2VMaWdodENoaWxkcmVuKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBk
aXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChOb2RlKiBjaGlsZCA9IChk
aXJlY3Rpb24gPT0gVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IG5vZGUtPmZpcnN0Q2hpbGQo
KSA6IG5vZGUtPmxhc3RDaGlsZCgpKSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlTm9kZShjaGls
ZCwgZGlyZWN0aW9uKTsKKyAgICByZXR1cm4gMDsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjp0cmF2ZXJzZU5vZGUoY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0
aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKGlzSW5zZXJ0aW9u
UG9pbnQobm9kZSkpIHsKKyAgICAgICAgY29uc3QgSFRNTENvbnRlbnRTZWxlY3Rpb25MaXN0KiBz
ZWxlY3Rpb25MaXN0ID0gdG9JbnNlcnRpb25Qb2ludChub2RlKS0+c2VsZWN0aW9ucygpOworICAg
ICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IChkaXJlY3Rpb24gPT0g
VHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IHNlbGVjdGlvbkxpc3QtPmZpcnN0KCkgOiBzZWxl
Y3Rpb25MaXN0LT5sYXN0KCkpKQorICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNlTm9kZShzZWxl
Y3Rpb24tPm5vZGUoKSwgZGlyZWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlTGlnaHRD
aGlsZHJlbihub2RlLCBkaXJlY3Rpb24pOworICAgIH0KKyAgICByZXR1cm4gY29uc3RfY2FzdDxO
b2RlKj4obm9kZSk7Cit9CisKK3ZvaWQgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpuZXh0U2li
bGluZygpCit7CisgICAgQVNTRVJUX1BSRUNPTkRJVElPTigpOworICAgIG1fbm9kZSA9IHRyYXZl
cnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobV9ub2RlLCBUcmF2ZXJzYWxEaXJlY3Rp
b25Gb3J3YXJkKTsKKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOworfQorCit2b2lkIENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKK3sKKyAgICBBU1NFUlRfUFJF
Q09ORElUSU9OKCk7CisgICAgbV9ub2RlID0gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRp
b25Qb2ludChtX25vZGUsIFRyYXZlcnNhbERpcmVjdGlvbkJhY2t3YXJkKTsKKyAgICBBU1NFUlRf
UE9TVENPTkRJVElPTigpOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRy
YXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQoY29uc3QgTm9kZSogbm9kZSwgVHJh
dmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgU2hh
ZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBhcmVudChub2RlKTsKKyAgICBpZiAo
IXNoYWRvd1RyZWUpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRUcmVl
KG5vZGUsIGRpcmVjdGlvbik7CisgICAgSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9
IHNoYWRvd1RyZWUtPnNlbGVjdGlvbkZvcihub2RlKTsKKyAgICBpZiAoIXNlbGVjdGlvbikKKyAg
ICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUobm9kZSwgZGlyZWN0aW9u
KTsKKyAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIG5leHRTZWxlY3Rpb24gPSAoZGlyZWN0
aW9uID09IFRyYXZlcnNhbERpcmVjdGlvbkZvcndhcmQgPyBzZWxlY3Rpb24tPm5leHQoKSA6IHNl
bGVjdGlvbi0+cHJldmlvdXMoKSkpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZU5vZGUobmV4dFNl
bGVjdGlvbi0+bm9kZSgpLCBkaXJlY3Rpb24pOworICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdP
ckJhY2tUb0luc2VydGlvblBvaW50KHNlbGVjdGlvbi0+aW5zZXJ0aW9uUG9pbnQoKSwgZGlyZWN0
aW9uKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxp
bmdJbkN1cnJlbnRUcmVlKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJl
Y3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChOb2RlKiBuZXh0ID0gKGRpcmVj
dGlvbiA9PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gbm9kZS0+bmV4dFNpYmxpbmcoKSA6
IG5vZGUtPnByZXZpb3VzU2libGluZygpKSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlTm9kZShu
ZXh0LCBkaXJlY3Rpb24pOworICAgIGlmIChOb2RlKiBuZXh0ID0gdHJhdmVyc2VTaWJsaW5nT3JC
YWNrVG9Zb3VuZ2VyU2hhZG93Um9vdChub2RlLCBkaXJlY3Rpb24pKQorICAgICAgICByZXR1cm4g
bmV4dDsKKyAgICByZXR1cm4gZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudChub2RlLCBkaXJl
Y3Rpb24pOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlU2li
bGluZ09yQmFja1RvWW91bmdlclNoYWRvd1Jvb3QoY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2Fs
RGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKG5vZGUt
PnBhcmVudE5vZGUoKSAmJiBub2RlLT5wYXJlbnROb2RlKCktPmlzU2hhZG93Um9vdCgpKSB7Cisg
ICAgICAgIFNoYWRvd1Jvb3QqIHBhcmVudFNoYWRvd1Jvb3QgPSB0b1NoYWRvd1Jvb3Qobm9kZS0+
cGFyZW50Tm9kZSgpKTsKKyAgICAgICAgaWYgKCFwYXJlbnRTaGFkb3dSb290LT5pc1lvdW5nZXN0
KCkpIHsKKyAgICAgICAgICAgIEluc2VydGlvblBvaW50KiBhc3NpZ25lZEluc2VydGlvblBvaW50
ID0gcGFyZW50U2hhZG93Um9vdC0+YXNzaWduZWRUbygpOworICAgICAgICAgICAgQVNTRVJUKGFz
c2lnbmVkSW5zZXJ0aW9uUG9pbnQpOworICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGlu
Z0luQ3VycmVudFRyZWUoYXNzaWduZWRJbnNlcnRpb25Qb2ludCwgZGlyZWN0aW9uKTsKKyAgICAg
ICAgfQorICAgIH0KKyAgICByZXR1cm4gMDsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjplc2NhcGVGYWxsYmFja0NvbnRlbnRFbGVtZW50KGNvbnN0IE5vZGUqIG5vZGUsIFRy
YXZlcnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlm
IChub2RlLT5wYXJlbnROb2RlKCkgJiYgaXNJbnNlcnRpb25Qb2ludChub2RlLT5wYXJlbnROb2Rl
KCkpKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2lu
dChub2RlLT5wYXJlbnROb2RlKCksIGRpcmVjdGlvbik7CisgICAgcmV0dXJuIDA7Cit9CisKK05v
ZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VOb2RlRXNjYXBpbmdGYWxsYmFj
a0NvbnRlbnRzKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5vZGUpOwor
ICAgIGlmIChpc0luc2VydGlvblBvaW50KG5vZGUpKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VQ
YXJlbnROb2RlKG5vZGUpOworICAgIHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihub2RlKTsKK30K
Kwordm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudE5vZGUoKQoreworICAgIEFT
U0VSVF9QUkVDT05ESVRJT04oKTsKKyAgICBtX25vZGUgPSB0cmF2ZXJzZVBhcmVudE5vZGUobV9u
b2RlKTsKKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOworfQorCitOb2RlKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50Tm9kZShjb25zdCBOb2RlKiBub2RlKSBjb25z
dAoreworICAgIGlmICghY2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KCkgJiYgbm9kZS0+aXNTaGFkb3dS
b290KCkpIHsKKyAgICAgICAgQVNTRVJUKHRvU2hhZG93Um9vdChub2RlKS0+aXNZb3VuZ2VzdCgp
KTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGlmIChTaGFkb3dUcmVlKiBzaGFkb3dU
cmVlID0gc2hhZG93VHJlZU9mUGFyZW50KG5vZGUpKSB7CisgICAgICAgIGlmIChIVE1MQ29udGVu
dFNlbGVjdGlvbiogc2VsZWN0aW9uID0gc2hhZG93VHJlZS0+c2VsZWN0aW9uRm9yKG5vZGUpKQor
ICAgICAgICAgICAgcmV0dXJuIHRyYXZlcnNlUGFyZW50Tm9kZShzZWxlY3Rpb24tPmluc2VydGlv
blBvaW50KCkpOworICAgIH0KKyAgICByZXR1cm4gdHJhdmVyc2VQYXJlbnROb2RlSW5DdXJyZW50
VHJlZShub2RlKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJz
ZVBhcmVudE5vZGVJbkN1cnJlbnRUcmVlKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAg
aWYgKE5vZGUqIHBhcmVudCA9IG5vZGUtPnBhcmVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHBh
cmVudC0+aXNTaGFkb3dSb290KCkgPyB0cmF2ZXJzZVBhcmVudE5vZGVCYWNrVG9Zb3VuZ2VyU2hh
ZG93Um9vdE9ySG9zdCh0b1NoYWRvd1Jvb3QocGFyZW50KSkgOiB0cmF2ZXJzZU5vZGVFc2NhcGlu
Z0ZhbGxiYWNrQ29udGVudHMocGFyZW50KTsKKyAgICByZXR1cm4gMDsKK30KKworTm9kZSogQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudE5vZGVCYWNrVG9Zb3VuZ2VyU2hh
ZG93Um9vdE9ySG9zdChjb25zdCBTaGFkb3dSb290KiBzaGFkb3dSb290KSBjb25zdAoreworICAg
IEFTU0VSVChzaGFkb3dSb290KTsKKyAgICBpZiAoc2hhZG93Um9vdC0+aXNZb3VuZ2VzdCgpKSB7
CisgICAgICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkKKyAgICAgICAgICAgIHJldHVy
biBzaGFkb3dSb290LT5ob3N0KCk7CisgICAgICAgIHJldHVybiBjb25zdF9jYXN0PFNoYWRvd1Jv
b3QqPihzaGFkb3dSb290KTsKKyAgICB9CisgICAgSW5zZXJ0aW9uUG9pbnQqIGFzc2lnbmVkSW5z
ZXJ0aW9uUG9pbnQgPSBzaGFkb3dSb290LT5hc3NpZ25lZFRvKCk7CisgICAgQVNTRVJUKGFzc2ln
bmVkSW5zZXJ0aW9uUG9pbnQpOworICAgIHJldHVybiB0cmF2ZXJzZVBhcmVudE5vZGUoYXNzaWdu
ZWRJbnNlcnRpb25Qb2ludCk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VOZXh0U2libGluZyhjb25zdCBOb2RlKiBub2RlKQoreworICAgIEFTU0VSVChub2Rl
KTsKKyAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludChub2Rl
LCBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjp0cmF2ZXJzZVByZXZpb3VzU2libGluZyhjb25zdCBOb2RlKiBub2RlKQorewor
ICAgIEFTU0VSVChub2RlKTsKKyAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNl
cnRpb25Qb2ludChub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNrd2FyZCk7Cit9CisKK3ZvaWQg
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpuZXh0Tm9kZSgpCit7CisgICAgQVNTRVJUX1BSRUNP
TkRJVElPTigpOworICAgIGlmIChOb2RlKiBuZXh0ID0gdHJhdmVyc2VGaXJzdENoaWxkKG1fbm9k
ZSkpCisgICAgICAgIG1fbm9kZSA9IG5leHQ7CisgICAgZWxzZSBpZiAoTm9kZSogbmV4dCA9IHRy
YXZlcnNlTmV4dFNpYmxpbmcobV9ub2RlKSkKKyAgICAgICAgbV9ub2RlID0gbmV4dDsKKyAgICBl
bHNlIHsKKyAgICAgICAgY29uc3QgTm9kZSogbiA9IG1fbm9kZTsKKyAgICAgICAgd2hpbGUgKG4g
JiYgIXRyYXZlcnNlTmV4dFNpYmxpbmcobikpCisgICAgICAgICAgICBuID0gdHJhdmVyc2VQYXJl
bnROb2RlKG4pOworICAgICAgICBtX25vZGUgPSBuID8gdHJhdmVyc2VOZXh0U2libGluZyhuKSA6
IDA7CisgICAgfQorICAgIEFTU0VSVF9QT1NUQ09ORElUSU9OKCk7Cit9CisKK3ZvaWQgQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyOjpwcmV2aW91c05vZGUoKQoreworICAgIEFTU0VSVF9QUkVDT05E
SVRJT04oKTsKKyAgICBpZiAoTm9kZSogbiA9IHRyYXZlcnNlUHJldmlvdXNTaWJsaW5nKG1fbm9k
ZSkpIHsKKyAgICAgICAgd2hpbGUgKE5vZGUqIGNoaWxkID0gdHJhdmVyc2VMYXN0Q2hpbGQobikp
CisgICAgICAgICAgICBuID0gY2hpbGQ7CisgICAgICAgIG1fbm9kZSA9IG47CisgICAgfSBlbHNl
CisgICAgICAgIHBhcmVudE5vZGUoKTsKKyAgICBBU1NFUlRfUE9TVENPTkRJVElPTigpOworfQor
Cit9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmNDQxZTE5NTllOWE0OTgyZTYzYTU2MWYzM2Y1MmI3Zjgy
Yzc5NzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyLmgKQEAgLTAsMCArMSwxMDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcl9oCisjZGVmaW5lIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcl9oCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTm9kZTsKK2NsYXNzIFNoYWRvd1Jvb3Q7CisKKy8vIEZJ
WE1FOiBNYWtlIHNvbWUgZnVuY3Rpb25zIGlubGluZSB0byBvcHRpbWlzZSB0aGUgcGVyZm9ybWFu
Y2UuCisvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI3MDIKK2Ns
YXNzIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB7CitwdWJsaWM6CisgICAgZW51bSBQb2xpY3kg
eworICAgICAgICBDcm9zc1VwcGVyQm91bmRhcnksCisgICAgICAgIERvTm90Q3Jvc3NVcHBlckJv
dW5kYXJ5LAorICAgIH07CisKKyAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIoY29uc3QgTm9k
ZSosIFBvbGljeSA9IENyb3NzVXBwZXJCb3VuZGFyeSk7CisKKyAgICAvLyBGb3IgYSBjb21tb24g
dXNlIGNhc2Ugc3VjaCBhczoKKyAgICAvLyBmb3IgKENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3
YWxrZXIgPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnN0YXJ0ZWRXaXRoRmlyc3RDaGlsZChu
b2RlKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIubmV4dFNpYmxpbmcoKSkKKyAgICBzdGF0aWMgQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHN0YXJ0ZWRXaXRoRmlyc3RDaGlsZChjb25zdCBOb2RlKiwg
UG9saWN5ID0gQ3Jvc3NVcHBlckJvdW5kYXJ5KTsKKworICAgIE5vZGUqIGdldCgpIGNvbnN0IHsg
cmV0dXJuIGNvbnN0X2Nhc3Q8Tm9kZSo+KG1fbm9kZSk7IH0KKworICAgIHZvaWQgZmlyc3RDaGls
ZCgpOworICAgIHZvaWQgbGFzdENoaWxkKCk7CisKKyAgICB2b2lkIG5leHRTaWJsaW5nKCk7Cisg
ICAgdm9pZCBwcmV2aW91c1NpYmxpbmcoKTsKKworICAgIHZvaWQgcGFyZW50Tm9kZSgpOworCisg
ICAgdm9pZCBuZXh0Tm9kZSgpOworICAgIHZvaWQgcHJldmlvdXNOb2RlKCk7CisKK3ByaXZhdGU6
CisgICAgZW51bSBUcmF2ZXJzYWxEaXJlY3Rpb24geworICAgICAgICBUcmF2ZXJzYWxEaXJlY3Rp
b25Gb3J3YXJkLAorICAgICAgICBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNrd2FyZAorICAgIH07CisK
KyAgICBib29sIGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5
ID09IENyb3NzVXBwZXJCb3VuZGFyeTsgfQorCisjaWZuZGVmIE5ERUJVRworICAgIHZvaWQgYXNz
ZXJ0UHJlY29uZGl0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBhc3NlcnRQb3N0Y29uZGl0aW9uKCkg
Y29uc3Q7CisjZW5kaWYKKworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJzZU5vZGUoY29uc3QgTm9k
ZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlTGlnaHRD
aGlsZHJlbihjb25zdCBOb2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKKworICAgIE5vZGUqIHRy
YXZlcnNlRmlyc3RDaGlsZChjb25zdCBOb2RlKikgY29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VM
YXN0Q2hpbGQoY29uc3QgTm9kZSopIGNvbnN0OworICAgIE5vZGUqIHRyYXZlcnNlQ2hpbGQoY29u
c3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbikgY29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VQ
YXJlbnROb2RlKGNvbnN0IE5vZGUqKSBjb25zdDsKKworICAgIHN0YXRpYyBOb2RlKiB0cmF2ZXJz
ZU5leHRTaWJsaW5nKGNvbnN0IE5vZGUqKTsKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VQcmV2
aW91c1NpYmxpbmcoY29uc3QgTm9kZSopOworCisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlU2li
bGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQoY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlv
bik7CisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUoY29uc3Qg
Tm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VT
aWJsaW5nT3JCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdChjb25zdCBOb2RlKiwgVHJhdmVyc2FsRGly
ZWN0aW9uKTsKKyAgICBzdGF0aWMgTm9kZSogZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudChj
b25zdCBOb2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKKworICAgIE5vZGUqIHRyYXZlcnNlTm9k
ZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyhjb25zdCBOb2RlKikgY29uc3Q7CisgICAgTm9kZSog
dHJhdmVyc2VQYXJlbnROb2RlSW5DdXJyZW50VHJlZShjb25zdCBOb2RlKikgY29uc3Q7CisgICAg
Tm9kZSogdHJhdmVyc2VQYXJlbnROb2RlQmFja1RvWW91bmdlclNoYWRvd1Jvb3RPckhvc3QoY29u
c3QgU2hhZG93Um9vdCopIGNvbnN0OworCisgICAgY29uc3QgTm9kZSogbV9ub2RlOworICAgIFBv
bGljeSBtX3BvbGljeTsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGYyZjEwOTgwNDI0MDc2N2QyNTJhNTk2ODU0N2U2
MTIzNTY2OTk2MjkuLjEwNjRjNThmNzVmNzBlOWMyODY3Y2FjMTE5MWY0ZGE3YWYyMGIyNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNp
bmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgorI2luY2x1ZGUgIkNvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5oIgogI2luY2x1ZGUgIkRPTU5vZGVIaWdobGlnaHRlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIuaCIKQEAgLTE4Miw2ICsxODMsNjEgQEAg
Ym9vbCBJbnRlcm5hbHM6OmF0dGFjaGVkKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ICAgIHJldHVybiBub2RlLT5hdHRhY2hlZCgpOwogfQogCitOb2RlKiBJbnRlcm5hbHM6Om5leHRT
aWJsaW5nQnlXYWxrZXIoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYg
KCFub2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1
cm4gMDsKKyAgICB9CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsK
KyAgICB3YWxrZXIubmV4dFNpYmxpbmcoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQor
CitOb2RlKiBJbnRlcm5hbHM6OmZpcnN0Q2hpbGRCeVdhbGtlcihOb2RlKiBub2RlLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXIgd2Fsa2VyKG5vZGUpOworICAgIHdhbGtlci5maXJzdENoaWxkKCk7CisgICAgcmV0
dXJuIHdhbGtlci5nZXQoKTsKK30KKworTm9kZSogSW50ZXJuYWxzOjpsYXN0Q2hpbGRCeVdhbGtl
cihOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIW5vZGUpIHsKKyAg
ICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0K
KyAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG5vZGUpOworICAgIHdhbGtlci5s
YXN0Q2hpbGQoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitOb2RlKiBJbnRlcm5h
bHM6Om5leHROb2RlQnlXYWxrZXIoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlcihu
b2RlKTsKKyAgICB3YWxrZXIubmV4dE5vZGUoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOwor
fQorCitOb2RlKiBJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIENvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2VyLnByZXZpb3VzTm9kZSgpOwor
ICAgIHJldHVybiB3YWxrZXIuZ2V0KCk7Cit9CisKIE5vZGUqIEludGVybmFsczo6bmV4dFNpYmxp
bmdJblJlaWZpZWRUcmVlKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlm
ICghbm9kZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggYTA2MTNhYzIxN2I4
M2ViOWY4MTNlZmE5MDg3NzEzZDAwY2Y4YTNiOC4uNzhmNjE0N2FhMzg0Y2JlYmU2ZmM0YjhmMzgw
NTFiZTAxYzk4ZTdiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC04NCw2ICs4
NCwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGF0dGFjaGVkKE5vZGUqLCBFeGNlcHRpb25Db2Rl
Jik7CiAKKyAgICAvLyBGSVhNRTogUmVuYW1lIHRoZXNlIGZ1bmN0aW9ucyBpZiB3YWxrZXIgaXMg
cHJlZmVyZWQuCisgICAgTm9kZSogbmV4dFNpYmxpbmdCeVdhbGtlcihOb2RlKiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIE5vZGUqIGZpcnN0Q2hpbGRCeVdhbGtlcihOb2RlKiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIE5vZGUqIGxhc3RDaGlsZEJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7
CisgICAgTm9kZSogbmV4dE5vZGVCeVdhbGtlcihOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IE5vZGUqIHByZXZpb3VzTm9kZUJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CisKICAg
ICBOb2RlKiBuZXh0U2libGluZ0luUmVpZmllZFRyZWUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBOb2RlKiBmaXJzdENoaWxkSW5SZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIE5vZGUqIGxhc3RDaGlsZEluUmVpZmllZFRyZWUoTm9kZSosIEV4Y2VwdGlvbkNvZGUm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA3ZDk4YmVhZmU4NWMwNjI3
NWNiMDYyN2MyNDViYmIwZjM5ZDUzZTFkLi4yYjk1OTQ3NzZmZTQxZGUzMzM0YmM1MWY2MzEwNzZl
NzcwZGY1NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01NSw2ICs1
NSwxMiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50QnlJZElu
U2hhZG93Um9vdChpbiBOb2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIGJvb2xlYW4gaXNWYWxpZENvbnRlbnRTZWxlY3QoaW4gRWxl
bWVudCBjb250ZW50RWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgTm9k
ZSBuZXh0U2libGluZ0J5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CisgICAgICAgIE5vZGUgZmlyc3RDaGlsZEJ5V2Fsa2VyKGluIE5vZGUgbm9kZSkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIE5vZGUgbGFzdENoaWxkQnlXYWxrZXIoaW4gTm9kZSBub2Rl
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBuZXh0Tm9kZUJ5V2Fsa2VyKGlu
IE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIE5vZGUgcHJldmlvdXNO
b2RlQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKwogICAgICAg
ICBOb2RlIG5leHRTaWJsaW5nSW5SZWlmaWVkVHJlZShpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICBOb2RlIGZpcnN0Q2hpbGRJblJlaWZpZWRUcmVlKGluIE5vZGUg
bm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIE5vZGUgbGFzdENoaWxkSW5SZWlm
aWVkVHJlZShpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwpAQCAtMTI2LDcgKzEz
Miw3IEBAIG1vZHVsZSB3aW5kb3cgewogCiAjaWYgZGVmaW5lZChFTkFCTEVfQkFUVEVSWV9TVEFU
VVMpICYmIEVOQUJMRV9CQVRURVJZX1NUQVRVUwogICAgICAgICB2b2lkIHNldEJhdHRlcnlTdGF0
dXMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIERPTVN0cmluZyBldmVudFR5cGUsIGluIGJvb2xl
YW4gY2hhcmdpbmcsIGluIGRvdWJsZSBjaGFyZ2luZ1RpbWUsIGluIGRvdWJsZSBkaXNjaGFyZ2lu
Z1RpbWUsIGluIGRvdWJsZSBsZXZlbCkgcmFpc2VzIChET01FeGNlcHRpb24pOwotI2VuZGlmIAor
I2VuZGlmCiAKICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBu
dW1iZXJPZkxpdmVOb2RlcygpOwogICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNp
Z25lZCBsb25nIG51bWJlck9mTGl2ZURvY3VtZW50cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmlu
ZGV4IGFkYTg4Mzc5YmQ5NTBhYTU5OWQwYTRkMTA5NGYyZmQwMzQ5MGMzZDQuLmQ1MDRmMjZjMWRj
ZTcwOGQ0MTM5ZjZiMDFjZDE4MTc0NWU1ZGNlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAg
LTE4Myw2ICsxODMsMTIgQEAgRVhQT1JUUwogICAgICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0
QEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKICAgICAgICAgP2xh
c3RDaGlsZEBSZWlmaWVkVHJlZVRyYXZlcnNhbEBXZWJDb3JlQEBTQVBBVk5vZGVAMkBQQlYzMkBA
WgogICAgICAgICA/bWFya2Vyc0ZvckBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJAV2ViQ29yZUBA
UUFFP0FWPyRWZWN0b3JAUEFWRG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZAQFBBVk5v
ZGVAMkBWTWFya2VyVHlwZXNARG9jdW1lbnRNYXJrZXJAMkBAWgorICAgICAgICA/bmV4dFNpYmxp
bmdAQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/PzBD
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFFQFBCVk5vZGVAMUBXNFBvbGljeUAw
MUBAWgorICAgICAgICA/Zmlyc3RDaGlsZEBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2ViQ29y
ZUBAUUFFWFhaCisgICAgICAgID9sYXN0Q2hpbGRAQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdl
YkNvcmVAQFFBRVhYWgorICAgICAgICA/bmV4dE5vZGVAQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
QFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/cHJldmlvdXNOb2RlQENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlckBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP25leHRTaWJsaW5nQFJlaWZpZWRUcmVl
VHJhdmVyc2FsQFdlYkNvcmVAQFNBUEFWTm9kZUAyQFBCVjMyQEBaCiAgICAgICAgID9udW1iZXJA
U3RyaW5nQFdURkBAU0E/QVYxMkBJQFoKICAgICAgICAgP251bWJlckBTdHJpbmdAV1RGQEBTQT9B
VjEyQEhAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDllZTJlZTE3MThm
ZjBhNTZjZjlmMWI1NjkwYzNkMjdmZDVkZTM0YWEuLmNhMmU1ZTBmNjRiNWI0Zjg0OTlhODQ1MGIw
NTQzNTU4ZjkyNDI5ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZM
aXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE4
MCw2ICsxODAsMTIgQEAgRVhQT1JUUwogICAgICAgICA/bnVtYmVyQFN0cmluZ0BXVEZAQFNBP0FW
MTJASEBaCiAgICAgICAgID9vYnNlcnZlRnJhbWVARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdl
YkNvcmVAQElBRVhQQVZGcmFtZUAyQEBaCiAgICAgICAgID9vdmVycmlkZVVzZXJQcmVmZXJyZWRM
YW5ndWFnZXNAV2ViQ29yZUBAWUFYQUJWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RGQEBA
WgorICAgICAgICA/bmV4dFNpYmxpbmdAQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVA
QFFBRVhYWgorICAgICAgICA/PzBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFF
QFBCVk5vZGVAMUBXNFBvbGljeUAwMUBAWgorICAgICAgICA/Zmlyc3RDaGlsZEBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFFWFhaCisgICAgICAgID9sYXN0Q2hpbGRAQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/bmV4dE5vZGVAQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/cHJldmlvdXNO
b2RlQENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP25l
eHRTaWJsaW5nQFJlaWZpZWRUcmVlVHJhdmVyc2FsQFdlYkNvcmVAQFNBUEFWTm9kZUAyQFBCVjMy
QEBaCiAgICAgICAgID9udW1iZXJPZlNjb3BlZEhUTUxTdHlsZUNoaWxkcmVuQE5vZGVAV2ViQ29y
ZUBAUUJFSVhaCiAgICAgICAgID9wYWdlQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlBhZ2VAMkBY
WgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggNTMyMGU4YjM0ZDAwM2E2MTBjM2I5ZjA3Zjhl
NDE1N2U2YzA4OGU3NS4uNzQzYWY2NmIwNGQyYjJlZWJhZTkxYTEzYzhlMmMyODhmNzA1MDM3NSAx
MDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC03Miw2ICs3MiwxMiBAQCBfWk43V2ViQ29yZTIw
UmVpZmllZFRyZWVUcmF2ZXJzYWwxMGZpcnN0Q2hpbGRFUEtOU180Tm9kZUU7CiBfWk43V2ViQ29y
ZTIxZ2V0Q2FjaGVkRE9NU3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBLTjNKU0M5
Q2xhc3NJbmZvRTsKIF9aTjdXZWJDb3JlMjJleHRlcm5hbFJlcHJlc2VudGF0aW9uRVBOU183RWxl
bWVudEVqOwogX1pON1dlYkNvcmUyMnVzZXJQcmVmZXJyZWRMYW5ndWFnZXNFdjsKK19aTjdXZWJD
b3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIxMGZpcnN0Q2hpbGRFdjsKK19aTjdXZWJDb3Jl
MjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIxMW5leHRTaWJsaW5nRXY7CitfWk43V2ViQ29yZTI0
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyMTJwcmV2aW91c05vZGVFdjsKK19aTjdXZWJDb3JlMjRD
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXI4bmV4dE5vZGVFdjsKK19aTjdXZWJDb3JlMjRDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXI5bGFzdENoaWxkRXY7CitfWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyQzFFUEtOU180Tm9kZUVOUzBfNlBvbGljeUU7CiBfWk43V2ViQ29yZTI0RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50
TWFya2VyMTFNYXJrZXJUeXBlc0U7CiBfWk43V2ViQ29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVk
TGFuZ3VhZ2VzRVJLTjNXVEY2VmVjdG9ySU5TMF82U3RyaW5nRUxqMEVFRTsKIF9aTjdXZWJDb3Jl
MzBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNFUktOM1dURjZWZWN0b3JJTlMwXzZTdHJp
bmdFTG0wRUVFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDMwZjc3NGZiYjI5MjQ4ZmZhYTgwMDBmYzQzMjAzZTE2YmVkMDQw
ZGIuLmVjZjExM2RhMGQyYjg2ZjhlNGM0OWFjZWZmMThmOTM1Njg2ODFmNTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAxMi0wMy0yNiAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW1NoYWRvdyBET01dIEludHJvZHVjZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIgYXMgYSBzdWNjZXNzb3Igb2YgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMDkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9j
b21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTAzLTI5ICBaZW5vIEFsYmlzc2VyICA8emVub0B3ZWJraXQub3JnPgogCiAgICAg
ICAgIEZpZWxkc2V0IGRpc2FibGVkIGF0dHJpYnV0ZSBkb2VzIG5vdCB3b3JrLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hh
ZG93LXRyZWUtd2Fsa2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTgzZWFlNjk2NGFkNWE4
OTEwMjlkZWE0NDMxZTc1ZjFiNzg1NzlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxNTYgQEAKK1Rlc3RzIGZvciBDb21wb3NlZCBTaGFkb3cgRE9NIFRyZWUgVHJh
dmVyc2FsIEFQSXMuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJUCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitTaGFkb3dSb290IHNob3VsZCBiZSB1c2VkLgorQ29tcG9zZWQgU2hhZG93
IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJ
VgkgaWQ9YQorRElWCSBpZD1iCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9YgorRElW
CSBpZD1hCisKK0EgY29udGVudCBlbGVtZW50IHNob3VsZCBzZWxlY3QgbGlnaHQgY2hpbGRyZW4K
K0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisJRElWCSBpZD1j
CisJRElWCSBpZD1kCisKK1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9
YgorRElWCSBpZD1jCitESVYJIGlkPWQKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgorRElWCSBpZD1k
CitESVYJIGlkPWMKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK1Rlc3QgZm9yIGNvbnRlbnQgZWxl
bWVudCBzZWxlY3Rvci4KK0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBp
ZD1iCisKK1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEKK1RyYXZlcnNlIGluIGJhY2t3
YXJkLgorRElWCSBpZD1hCisKK0xpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSBzZWxlY3RlZCBvbmx5
IGF0IG9uY2UuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9Ygor
CitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIKK1RyYXZlcnNlIGlu
IGJhY2t3YXJkLgorRElWCSBpZD1lCitESVYJIGlkPWQKK0RJVgkgaWQ9YworRElWCSBpZD1hCisK
K0EgY29udGVudCBlbGVtZW50IGNhbiBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgorQ29tcG9zZWQg
U2hhZG93IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKwlESVYJIGlkPWYxCisJRElWCSBp
ZD1mMgorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIKK0RJVgkg
aWQ9ZjEKK0RJVgkgaWQ9ZjIKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgorRElWCSBpZD1mMgorRElW
CSBpZD1mMQorRElWCSBpZD1iCitESVYJIGlkPWEKKworRmFsbGJhY2sgZWxlbWVudHMgc2hvdWxk
IG5vdCBiZSB1c2VkIGlmICBlbGVtZW50IHNlbGVjdHMgYW55IGVsZW1lbnRzLgorQ29tcG9zZWQg
U2hhZG93IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKwlESVYJIGlkPWYxCisJRElWCSBp
ZD1mMgorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIKK0RJVgkg
aWQ9ZjEKK0RJVgkgaWQ9ZjIKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgorRElWCSBpZD1mMgorRElW
CSBpZD1mMQorRElWCSBpZD1iCitESVYJIGlkPWEKKworVGVzdCBmb3IgTmVzdGVkIFNoYWRvd1Jv
b3RzLgorQ29tcG9zZWQgU2hhZG93IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKwkJRElW
CSBpZD1jCisJCURJVgkgaWQ9ZQorCQlESVYJIGlkPWQKKwlESVYJIGlkPWYKKwlESVYJIGlkPWgK
KwlESVYJIGlkPWkKKwlESVYJIGlkPWcKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9
YQorRElWCSBpZD1iCitESVYJIGlkPWMKK0RJVgkgaWQ9ZQorRElWCSBpZD1kCitESVYJIGlkPWYK
K0RJVgkgaWQ9aAorRElWCSBpZD1pCitESVYJIGlkPWcKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgor
RElWCSBpZD1nCitESVYJIGlkPWkKK0RJVgkgaWQ9aAorRElWCSBpZD1mCitESVYJIGlkPWQKK0RJ
VgkgaWQ9ZQorRElWCSBpZD1jCitESVYJIGlkPWIKK0RJVgkgaWQ9YQorCitUZXN0IGZvciBNdWx0
aXBsZSBTaGFkb3dSb290cy4KK0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElW
CSBpZD1kCisJRElWCSBpZD1iCisJRElWCSBpZD1mCisJRElWCSBpZD1jCisJRElWCSBpZD1lCisK
K1RyYXZlcnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9ZAorRElWCSBpZD1iCitE
SVYJIGlkPWYKK0RJVgkgaWQ9YworRElWCSBpZD1lCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJ
VgkgaWQ9ZQorRElWCSBpZD1jCitESVYJIGlkPWYKK0RJVgkgaWQ9YgorRElWCSBpZD1kCitESVYJ
IGlkPWEKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFk
b3ctdHJlZS13YWxrZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wb3Nl
ZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTM2YzJjMzZjYWUyYWI5NGI5
YTViYzBiZTdjMjhiYzdlYjAwN2E4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci5odG1sCkBAIC0wLDAgKzEs
MTYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvc2hhZG93LWRvbS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBmb3IgQ29t
cG9zZWQgU2hhZG93IERPTSBUcmVlIFRyYXZlcnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0aGlu
IERSVCIpOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gZHVtcE5vZGUobm9kZSkKK3sK
KyAgICB2YXIgb3V0cHV0ID0gbm9kZS5ub2RlTmFtZSArICJcdCI7CisgICAgaWYgKG5vZGUuaWQp
CisgICAgICAgIG91dHB1dCArPSAnIGlkPScgKyBub2RlLmlkOworICAgIGlmIChub2RlLmNsYXNz
TmFtZSkKKyAgICAgICAgb3V0cHV0ICs9ICcgY2xhc3M9JyArIG5vZGUuY2xhc3NOYW1lOworICAg
IHJldHVybiBvdXRwdXQ7Cit9CisKK2Z1bmN0aW9uIGR1bXBDb21wb3NlZFNoYWRvd1RyZWUobm9k
ZSwgaW5kZW50KQoreworICAgIGluZGVudCA9IGluZGVudCB8fCAiIjsKKyAgICB2YXIgb3V0cHV0
ID0gaW5kZW50ICsgZHVtcE5vZGUobm9kZSkgKyAiXG4iOworICAgIHZhciBjaGlsZDsKKyAgICBm
b3IgKGNoaWxkID0gaW50ZXJuYWxzLmZpcnN0Q2hpbGRCeVdhbGtlcihub2RlKTsgY2hpbGQ7IGNo
aWxkID0gaW50ZXJuYWxzLm5leHRTaWJsaW5nQnlXYWxrZXIoY2hpbGQpKQorICAgICAgICAgb3V0
cHV0ICs9IGR1bXBDb21wb3NlZFNoYWRvd1RyZWUoY2hpbGQsIGluZGVudCArICJcdCIpOworICAg
IHJldHVybiBvdXRwdXQ7Cit9CisKK2Z1bmN0aW9uIGxhc3ROb2RlQnlXYWxrZXIocm9vdCkKK3sK
KyAgICB2YXIgbGFzdE5vZGUgPSByb290OworICAgIHdoaWxlIChpbnRlcm5hbHMubGFzdENoaWxk
QnlXYWxrZXIobGFzdE5vZGUpKQorICAgICAgICBsYXN0Tm9kZSA9IGludGVybmFscy5sYXN0Q2hp
bGRCeVdhbGtlcihsYXN0Tm9kZSk7CisgICAgcmV0dXJuIGxhc3ROb2RlOworfQorCitmdW5jdGlv
biBzaG93Q29tcG9zZWRTaGFkb3dUcmVlQnlUcmF2ZXJzaW5nSW5Gb3J3YXJkKHJvb3QpCit7Cisg
ICAgdmFyIG5vZGUgPSByb290OworICAgIHZhciBsYXN0ID0gbGFzdE5vZGVCeVdhbGtlcihyb290
KTsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBkZWJ1ZyhkdW1wTm9kZShub2RlKSk7Cisg
ICAgICAgIGlmIChub2RlID09IGxhc3QpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgbm9k
ZSA9IGludGVybmFscy5uZXh0Tm9kZUJ5V2Fsa2VyKG5vZGUpOworICAgIH0KK30KKworZnVuY3Rp
b24gc2hvd0NvbXBvc2VkU2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luQmFja3dhcmQocm9vdCkKK3sK
KyAgICB2YXIgbm9kZSA9IGxhc3ROb2RlQnlXYWxrZXIocm9vdCk7CisgICAgd2hpbGUgKG5vZGUp
IHsKKyAgICAgICAgZGVidWcoZHVtcE5vZGUobm9kZSkpOworICAgICAgICBpZiAobm9kZSA9PSBy
b290KQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIG5vZGUgPSBpbnRlcm5hbHMucHJldmlv
dXNOb2RlQnlXYWxrZXIobm9kZSk7CisgICAgfQorfQorCitmdW5jdGlvbiBzaG93Q29tcG9zZWRT
aGFkb3dUcmVlKG5vZGUpCit7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChub2RlKTsK
KyAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CisKKyAgICBkZWJ1ZygnQ29tcG9zZWQgU2hh
ZG93IFRyZWU6Jyk7CisgICAgZGVidWcoZHVtcENvbXBvc2VkU2hhZG93VHJlZShub2RlKSk7CisK
KyAgICBkZWJ1ZygnVHJhdmVyc2UgaW4gZm9yd2FyZC4nKTsKKyAgICBzaG93Q29tcG9zZWRTaGFk
b3dUcmVlQnlUcmF2ZXJzaW5nSW5Gb3J3YXJkKG5vZGUpOworCisgICAgZGVidWcoJ1RyYXZlcnNl
IGluIGJhY2t3YXJkLicpOworICAgIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNpbmdJ
bkJhY2t3YXJkKG5vZGUpOworCisgICAgZGVidWcoJycpOworfQorCitkZWJ1ZygnU2hhZG93Um9v
dCBzaG91bGQgYmUgdXNlZC4nKTsKK3Nob3dDb21wb3NlZFNoYWRvd1RyZWUoCisgICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdjJ30pKSk7CisKK2RlYnVnKCdBIGNvbnRlbnQgZWxlbWVudCBzaG91bGQg
c2VsZWN0IGxpZ2h0IGNoaWxkcmVuJyk7CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JykpLAorICAgICAgICAgICAgICBjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnYyd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2QnfSkpKTsKKworZGVidWcoJ1Rlc3QgZm9yIGNvbnRlbnQgZWxlbWVudCBzZWxlY3Rvci4n
KTsKK3Nob3dDb21wb3NlZFNoYWRvd1RyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnYid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Nv
bnRlbnQnLCB7J3NlbGVjdCc6ICcuZCd9KSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdjJ30pLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
ZCd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2UnfSkpKTsKKwor
ZGVidWcoJ0xpZ2h0IGNoaWxkcmVuIHNob3VsZCBiZSBzZWxlY3RlZCBvbmx5IGF0IG9uY2UuJyk7
CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdh
J30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2InfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250
ZW50JywgeydzZWxlY3QnOiAnLmQnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdjb250ZW50JykpLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnYyd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSks
CisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30pKSk7CisKK2RlYnVn
KCdBIGNvbnRlbnQgZWxlbWVudCBjYW4gaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4nKTsKK3Nob3dD
b21wb3NlZFNoYWRvd1RyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAg
ICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7
J3NlbGVjdCc6ICcueid9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZjEnfSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmMid9KSkpLAorICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSkpOworCitkZWJ1ZygnRmFs
bGJhY2sgZWxlbWVudHMgc2hvdWxkIG5vdCBiZSB1c2VkIGlmIDxjb250ZW50PiBlbGVtZW50IHNl
bGVjdHMgYW55IGVsZW1lbnRzLicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJy5jJ30sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdm
MSd9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdkaXYnLCB7J2lkJzogJ2YyJ30pKSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdjJ30pKSk7CisKK2RlYnVnKCdUZXN0IGZvciBOZXN0ZWQgU2hhZG93Um9vdHMuJyk7
CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdh
J30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lk
JzogJ2InfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRl
U2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Nv
bnRlbnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdlJ30p
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnZid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRl
bnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnZyd9KSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdoJ30p
LAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnaSd9KSkpOworCitkZWJ1
ZygnVGVzdCBmb3IgTXVsdGlwbGUgU2hhZG93Um9vdHMuJyk7CitzaG93Q29tcG9zZWRTaGFkb3dU
cmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNy
ZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSkpLAorICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnc2hhZG93JyksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2UnfSkp
LAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZid9KSkpOworCis8L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCBlMDBhNDg3YzVmNGZjMTY3NzlhZmRiY2MwODE3OTlkZjllODY1MzliLi5lYmNl
Y2E3MjgxZDI2NTdiOTY3MTIwMTQxNTE1Zjc1NzZmZmZkNjIyIDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDMtMjkgIEhheWF0byBJ
dG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTaGFkb3cgRE9NXSBJbnRyb2R1
Y2UgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIGFzIGEgc3VjY2Vzc29yIG9mIFJlaWZpZWRUcmVl
VHJhdmVyc2FsIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgyMDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTAzLTI4ICBL
ZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPgogCiAgICAgICAgIFt3eF0g
VW5yZXZpZXdlZC4gQnVpbGQgZml4LCBtb3ZlIFdURiBiYWNrIGludG8gSlNDb3JlIHRhcmdldAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135026</attachid>
            <date>2012-04-01 22:43:13 -0700</date>
            <delta_ts>2012-04-02 01:35:45 -0700</delta_ts>
            <desc>try builds</desc>
            <filename>bug-82009-20120402144312.patch</filename>
            <type>text/plain</type>
            <size>46647</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTRkN2YyZjNhMjQ0MjRl
YjE4MWUwYjMyZDg3YTYwYTY3YTdhOGI5My4uMjhmOTQzOTU5MjJiNzg3Y2QwOWY3ZjhhYjJjZmE4
YTkxYTA4N2FhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTAzLTI2ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gSW50
cm9kdWNlIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBhcyBhIHN1Y2Nlc3NvciBvZiBSZWlmaWVk
VHJlZVRyYXZlcnNhbCBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBpcyBpbnRlbmRlZCB0byBiZSBhIHN1
Y2Nlc3NvciBvZiBjdXJyZW50IFJlaWZpZWRUcmVlVHJhdmVyc2FsIEFQSXMuCisgICAgICAgIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlciB1c2VzIGEgY3Vyc29yIHBhdHRlcm4gYW5kIHRha2VzIGEg
c3RhcnRpbmcgbm9kZSBpbiBpdHMgY29uc3RydWN0b3IuCisKKyAgICAgICAgQSB0eXBpY2FsIHVz
YWdlIGlzOgorCisgICAgICAgICAgZm9yIChDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2Vy
KG5vZGUpOyB3YWxrZXIuZ2V0KCk7IHdhbGtlci5uZXh0KCkpIHsKKyAgICAgICAgICAgICAgICAu
Li4KKyAgICAgICAgICB9CisKKyAgICAgICAgRm9sbG93LXVwIHBhdGNoZXMgd2lsbCB1cGRhdGUg
Y2xpZW50cyB3aGljaCB1c2UgY3VycmVudCBSZWlmaWVkVHJlZVRyYXZlcnNhbCBBUElzIHNvIHRo
YXQgdGhleSB1c2UgdGhlIFdhbGtlci4KKyAgICAgICAgTW9yZSB0ZXN0cyB3aWxsIGNvbWUgYWxv
bmcgd2l0aCB0aGVzZSBhY3R1YWwgdXNlIGNhc2VzIGluIGZvbGxvdy11cCBwYXRjaGVzLgorICAg
ICAgICBBZnRlciB0aGF0LCBJJ2xsIGdldCByaWQgb2YgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJ
cyBpbiBmYXZvciBvZiB0aGUgV2Fsa2VyLgorCisgICAgICAgIE5vdGUgdGhhdCAnQ29tcG9zZWRT
aGFkb3dUcmVlJyBhbmQgJ1JlaWZpZWRUcmVlJyBoYXMgdGhlIHNhbWUgbWVhbmluZy4KKyAgICAg
ICAgQmVjYXVzZSBSZWlmaWVkVHJlZSBpcyBub3QgaW50dWl0aXZlIG5hbWUsIHdlIGFyZSBzdGFy
dGluZyB0byB1c2UgJ0NvbXBvc2VkU2hhZG93VHJlZScgZnJvbSBub3cuCisKKyAgICAgICAgVGVz
dDogZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci5odG1sCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAg
ICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmlzU2hhZG93SG9zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpzaGFkb3dUcmVlRm9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNoYWRvd1RyZWVPZlBhcmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OkNvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OmZyb21GaXJzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcjo6Zmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OnRyYXZlcnNlRmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXI6Omxhc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTGFzdENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VDaGlsZCk6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTGlnaHRDaGlsZHJlbik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Om5leHRTaWJsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6cHJldmlvdXNT
aWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJh
dmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRpb25Qb2ludCk6CisgICAgICAgIChXZWJDb3JlOjpD
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxp
bmdPckJhY2tUb1lvdW5nZXJTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlcjo6ZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZUVzY2FwaW5n
RmFsbGJhY2tDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXI6OnBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OnRyYXZlcnNlUGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnRJbkN1cnJlbnRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJlbnRCYWNrVG9Zb3VuZ2VyU2hh
ZG93Um9vdE9ySG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXI6OnRyYXZlcnNlTmV4dFNpYmxpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVByZXZpb3VzU2libGluZyk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Om5leHQpOgorICAgICAgICAoV2ViQ29yZTo6Q29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpwcmV2aW91cyk6CisgICAgICAgICogZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcjo6Y2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjo6YXNzZXJ0UHJlY29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6YXNzZXJ0UG9zdGNvbmRpdGlvbik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpuZXh0U2libGluZ0J5V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpmaXJzdENoaWxkQnlXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpsYXN0Q2hpbGRCeVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6Om5leHROb2RlQnlXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwcmV2
aW91c05vZGVCeVdhbGtlcik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAg
ICAgKEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEy
LTAzLTI4ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBTcGxp
dCBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUgaW50byBpbnRlcm5hbCBhbmQgQ1NTT00gdHlwZXMgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggNzI2ODIxZDA5NzQ1ZmI4MzkwN2JiMTU0MGI2ZDljOTY5MTQ2ODMwMS4uOWNm
NzA5ZTg1ZmJlODE2NjQ0MzM1NTg1OTJhZDc2NTI2NjlkZjk0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDEyLTAzLTI5ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbU2hhZG93IERPTV0gSW50cm9kdWNlIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ciBhcyBhIHN1Y2Nlc3NvciBvZiBSZWlmaWVkVHJlZVRyYXZlcnNhbCBBUElzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjAwOQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgor
ICAgICAgICAqIHdpbi9XZWJLaXQyQ0ZMaXRlLmRlZjoKKwogMjAxMi0wMy0yOCAgQW5kZXJzIENh
cmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIGNyYXNoIGFuZCBh
biBhc3NlcnRpb24gd2hlbiByZWNvdmVyaW5nIGZyb20gYSB3ZWIgcHJvY2VzcyBjcmFzaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCBiNjMwZjNkNzQ2NGNjNjJiYTNhZjRmY2U0OTYwOTU4MzkzZTRi
MWM3Li4wNjJmMWU1MzRmM2QzN2M0YWE1YjVkNTRjZGRjOWVlZGQzNDM3MjRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dApAQCAtNTM5LDYgKzUzOSw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBk
b20vQ2xpcGJvYXJkLmNwcAogICAgIGRvbS9DbGlwYm9hcmRFdmVudC5jcHAKICAgICBkb20vQ29t
bWVudC5jcHAKKyAgICBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcAogICAgIGRvbS9D
b21wb3NpdGlvbkV2ZW50LmNwcAogICAgIGRvbS9Db250YWluZXJOb2RlLmNwcAogICAgIGRvbS9D
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IGZmODE5YjNiN2YwYjgxYWY5MDhkNDRjMjAwMzZmNGRhMzllNTZmNmMuLjEzM2I4NWE5
Njc4ZTNiYWQ4NmM5YTU4NzljNWY0ZjljYTI0M2E2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtMTc0OCw2ICsxNzQ4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUv
ZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9D
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0
aW9uRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRpb25FdmVudC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQppbmRleCAxZmRjNjljZjczYmIzM2JhMDliMjc5N2M0MDlkNzJkYTlhZTdlYmE3Li4yNGQ3ZDk3
ZWRhODQ2ZWU4NTdlMDhjZDYyMGQ3ZGExM2M2ZGZjNmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTUxNCw2
ICs1MTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vQ2xpcGJvYXJkLmNwcCBcCiAgICAgZG9t
L0NsaXBib2FyZEV2ZW50LmNwcCBcCiAgICAgZG9tL0NvbW1lbnQuY3BwIFwKKyAgICBkb20vQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCBcCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3Bw
IFwKICAgICBkb20vQ29udGFpbmVyTm9kZS5jcHAgXAogICAgIGRvbS9Db250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlci5jcHAgXApAQCAtMTY1NSw2ICsxNjU2LDcgQEAgSEVBREVSUyArPSBcCiAgICAg
ZG9tL0NsaXBib2FyZEV2ZW50LmggXAogICAgIGRvbS9DbGlwYm9hcmQuaCBcCiAgICAgZG9tL0Nv
bW1lbnQuaCBcCisgICAgZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oIFwKICAgICBkb20v
Q29udGFpbmVyTm9kZS5oIFwKICAgICBkb20vQ3VzdG9tRXZlbnQuaCBcCiAgICAgZG9tL2RlZmF1
bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4
IDBjNDI2ZjdlMGMxN2Y2MzI5Mjc4ZmYxYmRkZGQ1YWYzNzg0NWM3MjkuLjVjNzg2YTM0ZmRmYWQ1
MGM0YWVjZTExMWM0YjZkNmE0OGFhMDQwMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC02NjUs
NiArNjY1LDEyIEBAIF9fWk43V2ViQ29yZTIzZW5jb2RlSG9zdE5hbWVXaXRoUmFuZ2VFUDhOU1N0
cmluZzhfTlNSYW5nZQogX19aTjdXZWJDb3JlMjNnZXRIb3N0bmFtZXNXaXRoQ29va2llc0VSTjNX
VEY3SGFzaFNldElOUzBfNlN0cmluZ0VOUzBfMTBTdHJpbmdIYXNoRU5TMF8xMEhhc2hUcmFpdHNJ
UzJfRUVFRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRlUHJv
cGVydHlMaXN0RXYKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlMTFzZXRS
ZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKK19fWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyMTBmaXJzdENoaWxkRXYKK19fWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyMTFuZXh0U2libGluZ0V2CitfX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcjRuZXh0RXYKK19fWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOHBy
ZXZpb3VzRXYKK19fWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOWxhc3RDaGls
ZEV2CitfX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckMxRVBLTlNfNE5vZGVF
TlMwXzZQb2xpY3lFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEwbWFy
a2Vyc0ZvckVQTlNfNE5vZGVFTlNfMTREb2N1bWVudE1hcmtlcjExTWFya2VyVHlwZXNFCiBfX1pO
N1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFya2Vyc0VOU18xNERv
Y3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyMjNyZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTBN
YXJrZXJUeXBlRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJhMzhmNzcwOTQ5OWRiODBiNDBjM2IwZGMw
MDZkNTM0NzY3NDRkMGEuLjNiMGE5YWRmM2NkNzUwOWM2MmE2ZjcxZjUwMGY2ZmEyMzA0MzU5NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTU4OSw2ICs1ODksNyBAQAogICAgICAgICAgICAgJ2RvbS9D
aGVja2VkUmFkaW9CdXR0b25zLmgnLAogICAgICAgICAgICAgJ2RvbS9DbGlwYm9hcmQuaCcsCiAg
ICAgICAgICAgICAnZG9tL0NsaXBib2FyZEFjY2Vzc1BvbGljeS5oJywKKyAgICAgICAgICAgICdk
b20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9Db250YWlu
ZXJOb2RlLmgnLAogICAgICAgICAgICAgJ2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5o
JywKICAgICAgICAgICAgICdkb20vRE9NSW1wbGVtZW50YXRpb24uaCcsCkBAIC01MDgyLDYgKzUw
ODMsOCBAQAogICAgICAgICAgICAgJ2RvbS9DbGlwYm9hcmRFdmVudC5oJywKICAgICAgICAgICAg
ICdkb20vQ29tbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Db21tZW50LmgnLAorICAgICAg
ICAgICAgJ2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwJywKKyAgICAgICAgICAgICdk
b20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAgJ2RvbS9Db21wb3Np
dGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0NvbXBvc2l0aW9uRXZlbnQuaCcsCiAg
ICAgICAgICAgICAnZG9tL0NvbnRhaW5lck5vZGUuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNWUxZGRmYTA3ZGNiMzYxOWUwMjc3MDdi
MGE0OTA3NjA5ZjIzMzExZC4uMTFlZTY2MWQ5MDkyMWNmOTE5YmI3OGZmODJlMjg5Mzg3NmQyMWMz
MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAg
LTQ3OTI2LDYgKzQ3OTI2LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXGRvbVxDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxDb21wb3NpdGlvbkV2ZW50LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVD
b25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZjIwMDhjM2UwNWUyYjM5NTQ2NDgzMTAyNjNjZjZiN2E3MGQzMWQy
Ny4uODZjMmNhNTEyYzZkMGRjZGFiN2Q2ZjFhY2YxNjkzODljNzcxYmFjYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM2OCw2
ICsxMzY4LDggQEAKIAkJNEExRTcxQTYxNEUxMDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93Um9vdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEExRTcxQTQx
NEUxMDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93Um9vdC5oICovOyB9OwogCQk0QTM4QkY1MDE0RkUx
QzA5MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTM4QkY0RTE0RkUxQzA5MDA2MTI1MTIg
LyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgKi87IH07CiAJCTRBMzhCRjUxMTRGRTFDMDkw
MDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTM4QkY0RjE0RkUxQzA5MDA2MTI1MTIgLyogV2Vi
U29ja2V0RGVmbGF0ZUZyYW1lci5oICovOyB9OworCQk0QTZBMEM1QjE1MjMyRjI0MDBCMDlDNkUg
LyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkEwQzU5MTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIuY3BwICovOyB9OworCQk0QTZBMEM1QzE1MjMyRjI0MDBCMDlDNkUg
LyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QTZBMEM1QTE1MjMyRjI0MDBCMDlDNkUgLyogQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyLmggKi87IH07CiAJCTRBNkU5RkMzMTNDMTdEMUQwMDQ2QTdGOCAvKiBG
b250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNw
cCAqLzsgfTsKIAkJNEE2RTlGQzQxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFsdWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMy
MTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEE2RTlGQzcxM0MxN0Q1NzAwNDZBN0Y4
IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJl
U2V0dGluZ3MuY3BwICovOyB9OwpAQCAtODMxMCw2ICs4MzEyLDggQEAKIAkJNEExRTcxQTQxNEUx
MDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93Um9vdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1NoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEEz
OEJGNEUxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5j
cHA7IHBhdGggPSBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMzhCRjRGMTRGRTFDMDkwMDYxMjUxMiAv
KiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYlNvY2tldERlZmxhdGVGcmFtZXIuaDsgcGF0aCA9IE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXREZWZsYXRlRnJhbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTRB
NkEwQzU5MTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2QTBDNUExNTIzMkYyNDAw
QjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNEE2RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlVmFs
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEZlYXR1cmVW
YWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNkU5RkMyMTNDMTdEMUQw
MDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZvbnRGZWF0dXJlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEZlYXR1cmVTZXR0aW5ncy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDg2Myw2ICsyMDg2Nyw4IEBACiAJCQkJ
NjU1MEI2OTcwOTlERjAyNzAwOTBENzgxIC8qIENvbW1lbnQuY3BwICovLAogCQkJCTY1NTBCNjk4
MDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50LmggKi8sCiAJCQkJODUwODlDQzcwQTk4QzIyNjAw
QTI3NUFBIC8qIENvbW1lbnQuaWRsICovLAorCQkJCTRBNkEwQzU5MTUyMzJGMjQwMEIwOUM2RSAv
KiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwICovLAorCQkJCTRBNkEwQzVBMTUyMzJGMjQw
MEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCAqLywKIAkJCQk3OUYyRjU5RTEw
OTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5jcHAgKi8sCiAJCQkJNzlGMkY1OUYx
MDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuaCAqLywKIAkJCQk3OUYyRjVBMDEw
OTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5pZGwgKi8sCkBAIC0yMTY4NCw2ICsy
MTY5MCw3IEBACiAJCQkJQkNERDQ1NEUxMjM2Qzk1QzAwOUE3OTg1IC8qIENvbHVtbkluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCTY1NTBCNkEyMDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRl
eHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTZBMEM1QzE1MjMyRjI0MDBCMDlD
NkUgLyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTZG
RTExNjBFNkUxREE3MDBCRjYwODggLyogQ29tcG9zaXRlQW5pbWF0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOURERDA5OUU2NDkyMDA1NkU1ODEgLyogQ29tcG9zaXRlRWRpdENvbW1hbmQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTc5RjJGNUEyMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3Np
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTYyLDYgKzI1MTY5LDcgQEAKIAkJCQkz
N0MyMzYxMDEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTM3QzIzODIxMTA5OEM4NDIwMEVGOUY3MiAvKiBDb21wbGV4VGV4dENv
bnRyb2xsZXJBVFNVSS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0MyMzgyMjEwOThDODQyMDBF
RjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gaW4gU291cmNlcyAqLywK
KwkJCQk0QTZBMEM1QjE1MjMyRjI0MDBCMDlDNkUgLyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNkZFMTE1MEU2RTFEQTcwMEJGNjA4OCAvKiBDb21w
b3NpdGVBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlEREMwOTlFNjQ5MjAw
NTZFNTgxIC8qIENvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc5
RjJGNUExMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZmRjYjlmODllMGQyMTFlMDI3ZDY3ZGU0MWViMWJkNmIxMjBkOWRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdh
bGtlci5jcHAKQEAgLTAsMCArMSwyNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCisKKyNpbmNsdWRlICJFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIkluc2VydGlvblBvaW50
LmgiCisjaW5jbHVkZSAiU2hhZG93VHJlZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
YXRpYyBpbmxpbmUgYm9vbCBpc1NoYWRvd0hvc3QoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBy
ZXR1cm4gbm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVtZW50KG5vZGUpLT5o
YXNTaGFkb3dSb290KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU2hhZG93VHJlZSogc2hhZG93VHJl
ZUZvcihjb25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlICYmIG5vZGUtPmlzRWxlbWVu
dE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChub2RlKS0+c2hhZG93VHJlZSgpOwor
ICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIFNoYWRvd1RyZWUqIHNoYWRvd1RyZWVP
ZlBhcmVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlICYmIG5vZGUtPnBhcmVu
dE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHNoYWRvd1RyZWVGb3Iobm9kZS0+cGFyZW50Tm9kZSgp
KTsKKyAgICByZXR1cm4gMDsKK30KKworQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIoY29uc3QgTm9kZSogbm9kZSwgUG9saWN5IHBvbGljeSkKKyAgICA6
IG1fbm9kZShub2RlKQorICAgICwgbV9wb2xpY3kocG9saWN5KQoreworICAgIGFzc2VydFBvc3Rj
b25kaXRpb24oKTsKK30KKworQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6ZnJvbUZpcnN0Q2hpbGQoY29uc3QgTm9kZSogbm9kZSwgUG9saWN5IHBvbGlj
eSkKK3sKKyAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG5vZGUsIHBvbGljeSk7
CisgICAgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsKKyAgICByZXR1cm4gd2Fsa2VyOworfQorCit2b2lk
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCgpCit7CisgICAgYXNzZXJ0UHJl
Y29uZGl0aW9uKCk7CisgICAgbV9ub2RlID0gdHJhdmVyc2VDaGlsZChtX25vZGUsIFRyYXZlcnNh
bERpcmVjdGlvbkZvcndhcmQpOworICAgIGFzc2VydFBvc3Rjb25kaXRpb24oKTsKK30KKworTm9k
ZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZUZpcnN0Q2hpbGQoY29uc3QgTm9k
ZSogbm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNl
Q2hpbGQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7Cit9CisKK3ZvaWQgQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoKQoreworICAgIGFzc2VydFByZWNvbmRpdGlv
bigpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlTGFzdENoaWxkKG1fbm9kZSk7CisgICAgYXNzZXJ0
UG9zdGNvbmRpdGlvbigpOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRy
YXZlcnNlTGFzdENoaWxkKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7CisgICAgQVNTRVJUKG5v
ZGUpOworICAgIHJldHVybiB0cmF2ZXJzZUNoaWxkKG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbkJh
Y2t3YXJkKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZUNo
aWxkKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0
Cit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChjYW5Dcm9zc1VwcGVyQm91bmRhcnkoKSkg
eworICAgICAgICBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlID0gc2hhZG93VHJlZUZvcihub2RlKTsK
KyAgICAgICAgcmV0dXJuIChzaGFkb3dUcmVlICYmIHNoYWRvd1RyZWUtPmhhc1NoYWRvd1Jvb3Qo
KSkgPyB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oc2hhZG93VHJlZS0+eW91bmdlc3RTaGFkb3dSb290
KCksIGRpcmVjdGlvbikKKyAgICAgICAgICAgIDogdHJhdmVyc2VMaWdodENoaWxkcmVuKG5vZGUs
IGRpcmVjdGlvbik7CisgICAgfQorICAgIGlmIChpc1NoYWRvd0hvc3Qobm9kZSkpCisgICAgICAg
IHJldHVybiAwOworICAgIHJldHVybiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4obm9kZSwgZGlyZWN0
aW9uKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZUxpZ2h0
Q2hpbGRyZW4oY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uIGRpcmVjdGlvbikK
K3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKE5vZGUqIGNoaWxkID0gKGRpcmVjdGlvbiA9
PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gbm9kZS0+Zmlyc3RDaGlsZCgpIDogbm9kZS0+
bGFzdENoaWxkKCkpKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VOb2RlKGNoaWxkLCBkaXJlY3Rp
b24pOworICAgIHJldHVybiAwOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6
OnRyYXZlcnNlTm9kZShjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0
aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoaXNJbnNlcnRpb25Qb2ludChub2Rl
KSkgeworICAgICAgICBjb25zdCBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3QqIHNlbGVjdGlvbkxp
c3QgPSB0b0luc2VydGlvblBvaW50KG5vZGUpLT5zZWxlY3Rpb25zKCk7CisgICAgICAgIGlmIChI
VE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gKGRpcmVjdGlvbiA9PSBUcmF2ZXJzYWxE
aXJlY3Rpb25Gb3J3YXJkID8gc2VsZWN0aW9uTGlzdC0+Zmlyc3QoKSA6IHNlbGVjdGlvbkxpc3Qt
Pmxhc3QoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJhdmVyc2VOb2RlKHNlbGVjdGlvbi0+bm9k
ZSgpLCBkaXJlY3Rpb24pOworICAgICAgICByZXR1cm4gdHJhdmVyc2VMaWdodENoaWxkcmVuKG5v
ZGUsIGRpcmVjdGlvbik7CisgICAgfQorICAgIHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihub2Rl
KTsKK30KKwordm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Om5leHRTaWJsaW5nKCkKK3sK
KyAgICBhc3NlcnRQcmVjb25kaXRpb24oKTsKKyAgICBtX25vZGUgPSB0cmF2ZXJzZVNpYmxpbmdP
ckJhY2tUb0luc2VydGlvblBvaW50KG1fbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7
CisgICAgYXNzZXJ0UG9zdGNvbmRpdGlvbigpOworfQorCit2b2lkIENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKK3sKKyAgICBhc3NlcnRQcmVjb25kaXRpb24oKTsK
KyAgICBtX25vZGUgPSB0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KG1fbm9k
ZSwgVHJhdmVyc2FsRGlyZWN0aW9uQmFja3dhcmQpOworICAgIGFzc2VydFBvc3Rjb25kaXRpb24o
KTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdP
ckJhY2tUb0luc2VydGlvblBvaW50KGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlv
biBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIFNoYWRvd1RyZWUqIHNoYWRv
d1RyZWUgPSBzaGFkb3dUcmVlT2ZQYXJlbnQobm9kZSk7CisgICAgaWYgKCFzaGFkb3dUcmVlKQor
ICAgICAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShub2RlLCBkaXJlY3Rp
b24pOworICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBzaGFkb3dUcmVlLT5z
ZWxlY3Rpb25Gb3Iobm9kZSk7CisgICAgaWYgKCFzZWxlY3Rpb24pCisgICAgICAgIHJldHVybiB0
cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRUcmVlKG5vZGUsIGRpcmVjdGlvbik7CisgICAgaWYgKEhU
TUxDb250ZW50U2VsZWN0aW9uKiBuZXh0U2VsZWN0aW9uID0gKGRpcmVjdGlvbiA9PSBUcmF2ZXJz
YWxEaXJlY3Rpb25Gb3J3YXJkID8gc2VsZWN0aW9uLT5uZXh0KCkgOiBzZWxlY3Rpb24tPnByZXZp
b3VzKCkpKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VOb2RlKG5leHRTZWxlY3Rpb24tPm5vZGUo
KSwgZGlyZWN0aW9uKTsKKyAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9JbnNlcnRp
b25Qb2ludChzZWxlY3Rpb24tPmluc2VydGlvblBvaW50KCksIGRpcmVjdGlvbik7Cit9CisKK05v
ZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJl
ZShjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAg
IEFTU0VSVChub2RlKTsKKyAgICBpZiAoTm9kZSogbmV4dCA9IChkaXJlY3Rpb24gPT0gVHJhdmVy
c2FsRGlyZWN0aW9uRm9yd2FyZCA/IG5vZGUtPm5leHRTaWJsaW5nKCkgOiBub2RlLT5wcmV2aW91
c1NpYmxpbmcoKSkpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZU5vZGUobmV4dCwgZGlyZWN0aW9u
KTsKKyAgICBpZiAoTm9kZSogbmV4dCA9IHRyYXZlcnNlU2libGluZ09yQmFja1RvWW91bmdlclNo
YWRvd1Jvb3Qobm9kZSwgZGlyZWN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5leHQ7CisgICAgcmV0
dXJuIGVzY2FwZUZhbGxiYWNrQ29udGVudEVsZW1lbnQobm9kZSwgZGlyZWN0aW9uKTsKK30KKwor
Tm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb1lv
dW5nZXJTaGFkb3dSb290KGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJl
Y3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChub2RlLT5wYXJlbnROb2RlKCkg
JiYgbm9kZS0+cGFyZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkgeworICAgICAgICBTaGFkb3dS
b290KiBwYXJlbnRTaGFkb3dSb290ID0gdG9TaGFkb3dSb290KG5vZGUtPnBhcmVudE5vZGUoKSk7
CisgICAgICAgIGlmICghcGFyZW50U2hhZG93Um9vdC0+aXNZb3VuZ2VzdCgpKSB7CisgICAgICAg
ICAgICBJbnNlcnRpb25Qb2ludCogYXNzaWduZWRJbnNlcnRpb25Qb2ludCA9IHBhcmVudFNoYWRv
d1Jvb3QtPmFzc2lnbmVkVG8oKTsKKyAgICAgICAgICAgIEFTU0VSVChhc3NpZ25lZEluc2VydGlv
blBvaW50KTsKKyAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRUcmVl
KGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQsIGRpcmVjdGlvbik7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIDA7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZXNjYXBl
RmFsbGJhY2tDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rp
b24gZGlyZWN0aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAobm9kZS0+cGFyZW50
Tm9kZSgpICYmIGlzSW5zZXJ0aW9uUG9pbnQobm9kZS0+cGFyZW50Tm9kZSgpKSkKKyAgICAgICAg
cmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobm9kZS0+cGFyZW50
Tm9kZSgpLCBkaXJlY3Rpb24pOworICAgIHJldHVybiAwOworfQorCitOb2RlKiBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyhjb25z
dCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoaXNJbnNl
cnRpb25Qb2ludChub2RlKSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlUGFyZW50KG5vZGUpOwor
ICAgIHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihub2RlKTsKK30KKwordm9pZCBDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OnBhcmVudCgpCit7CisgICAgYXNzZXJ0UHJlY29uZGl0aW9uKCk7Cisg
ICAgbV9ub2RlID0gdHJhdmVyc2VQYXJlbnQobV9ub2RlKTsKKyAgICBhc3NlcnRQb3N0Y29uZGl0
aW9uKCk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQYXJl
bnQoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBpZiAoIWNhbkNyb3NzVXBwZXJCb3Vu
ZGFyeSgpICYmIG5vZGUtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIEFTU0VSVCh0b1NoYWRv
d1Jvb3Qobm9kZSktPmlzWW91bmdlc3QoKSk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAg
ICBpZiAoU2hhZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBhcmVudChub2RlKSkg
eworICAgICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlvbiA9IHNoYWRvd1Ry
ZWUtPnNlbGVjdGlvbkZvcihub2RlKSkKKyAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVBhcmVu
dChzZWxlY3Rpb24tPmluc2VydGlvblBvaW50KCkpOworICAgIH0KKyAgICByZXR1cm4gdHJhdmVy
c2VQYXJlbnRJbkN1cnJlbnRUcmVlKG5vZGUpOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50SW5DdXJyZW50VHJlZShjb25zdCBOb2RlKiBub2RlKSBj
b25zdAoreworICAgIGlmIChOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnROb2RlKCkpCisgICAg
ICAgIHJldHVybiBwYXJlbnQtPmlzU2hhZG93Um9vdCgpID8gdHJhdmVyc2VQYXJlbnRCYWNrVG9Z
b3VuZ2VyU2hhZG93Um9vdE9ySG9zdCh0b1NoYWRvd1Jvb3QocGFyZW50KSkgOiB0cmF2ZXJzZU5v
ZGVFc2NhcGluZ0ZhbGxiYWNrQ29udGVudHMocGFyZW50KTsKKyAgICByZXR1cm4gMDsKK30KKwor
Tm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVudEJhY2tUb1lvdW5n
ZXJTaGFkb3dSb290T3JIb3N0KGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QpIGNvbnN0Cit7
CisgICAgQVNTRVJUKHNoYWRvd1Jvb3QpOworICAgIGlmIChzaGFkb3dSb290LT5pc1lvdW5nZXN0
KCkpIHsKKyAgICAgICAgaWYgKGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpKQorICAgICAgICAgICAg
cmV0dXJuIHNoYWRvd1Jvb3QtPmhvc3QoKTsKKyAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8U2hh
ZG93Um9vdCo+KHNoYWRvd1Jvb3QpOworICAgIH0KKyAgICBJbnNlcnRpb25Qb2ludCogYXNzaWdu
ZWRJbnNlcnRpb25Qb2ludCA9IHNoYWRvd1Jvb3QtPmFzc2lnbmVkVG8oKTsKKyAgICBBU1NFUlQo
YXNzaWduZWRJbnNlcnRpb25Qb2ludCk7CisgICAgcmV0dXJuIHRyYXZlcnNlUGFyZW50KGFzc2ln
bmVkSW5zZXJ0aW9uUG9pbnQpOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6
OnRyYXZlcnNlTmV4dFNpYmxpbmcoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9k
ZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobm9k
ZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcjo6dHJhdmVyc2VQcmV2aW91c1NpYmxpbmcoY29uc3QgTm9kZSogbm9kZSkKK3sK
KyAgICBBU1NFUlQobm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5z
ZXJ0aW9uUG9pbnQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uQmFja3dhcmQpOworfQorCit2b2lk
IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6bmV4dCgpCit7CisgICAgYXNzZXJ0UHJlY29uZGl0
aW9uKCk7CisgICAgaWYgKE5vZGUqIG5leHQgPSB0cmF2ZXJzZUZpcnN0Q2hpbGQobV9ub2RlKSkK
KyAgICAgICAgbV9ub2RlID0gbmV4dDsKKyAgICBlbHNlIGlmIChOb2RlKiBuZXh0ID0gdHJhdmVy
c2VOZXh0U2libGluZyhtX25vZGUpKQorICAgICAgICBtX25vZGUgPSBuZXh0OworICAgIGVsc2Ug
eworICAgICAgICBjb25zdCBOb2RlKiBuID0gbV9ub2RlOworICAgICAgICB3aGlsZSAobiAmJiAh
dHJhdmVyc2VOZXh0U2libGluZyhuKSkKKyAgICAgICAgICAgIG4gPSB0cmF2ZXJzZVBhcmVudChu
KTsKKyAgICAgICAgbV9ub2RlID0gbiA/IHRyYXZlcnNlTmV4dFNpYmxpbmcobikgOiAwOworICAg
IH0KKyAgICBhc3NlcnRQb3N0Y29uZGl0aW9uKCk7Cit9CisKK3ZvaWQgQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjpwcmV2aW91cygpCit7CisgICAgYXNzZXJ0UHJlY29uZGl0aW9uKCk7CisgICAg
aWYgKE5vZGUqIG4gPSB0cmF2ZXJzZVByZXZpb3VzU2libGluZyhtX25vZGUpKSB7CisgICAgICAg
IHdoaWxlIChOb2RlKiBjaGlsZCA9IHRyYXZlcnNlTGFzdENoaWxkKG4pKQorICAgICAgICAgICAg
biA9IGNoaWxkOworICAgICAgICBtX25vZGUgPSBuOworICAgIH0gZWxzZQorICAgICAgICBwYXJl
bnQoKTsKKyAgICBhc3NlcnRQb3N0Y29uZGl0aW9uKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTc2NmMxYTM2NTAxOTAwODhiOTRkYTJhNDQwYzIwNjI2ZDBkNGE5MgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaApAQCAt
MCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyX2gKKyNkZWZp
bmUgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyX2gKKworI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb2RlOworY2xhc3MgU2hhZG93Um9vdDsK
KworLy8gRklYTUU6IE1ha2Ugc29tZSBmdW5jdGlvbnMgaW5saW5lIHRvIG9wdGltaXNlIHRoZSBw
ZXJmb3JtYW5jZS4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
MjcwMgorY2xhc3MgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHsKK3B1YmxpYzoKKyAgICBlbnVt
IFBvbGljeSB7CisgICAgICAgIENyb3NzVXBwZXJCb3VuZGFyeSwKKyAgICAgICAgRG9Ob3RDcm9z
c1VwcGVyQm91bmRhcnksCisgICAgfTsKKworICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcihj
b25zdCBOb2RlKiwgUG9saWN5ID0gQ3Jvc3NVcHBlckJvdW5kYXJ5KTsKKworICAgIC8vIEZvciBh
IGNvbW1vbiB1c2UgY2FzZSBzdWNoIGFzOgorICAgIC8vIGZvciAoQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyIHdhbGtlciA9IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZnJvbUZpcnN0Q2hpbGQo
bm9kZSk7IHdhbGtlci5nZXQoKTsgd2Fsa2VyLm5leHRTaWJsaW5nKCkpCisgICAgc3RhdGljIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlciBmcm9tRmlyc3RDaGlsZChjb25zdCBOb2RlKiwgUG9saWN5
ID0gQ3Jvc3NVcHBlckJvdW5kYXJ5KTsKKworICAgIE5vZGUqIGdldCgpIGNvbnN0IHsgcmV0dXJu
IGNvbnN0X2Nhc3Q8Tm9kZSo+KG1fbm9kZSk7IH0KKworICAgIHZvaWQgZmlyc3RDaGlsZCgpOwor
ICAgIHZvaWQgbGFzdENoaWxkKCk7CisKKyAgICB2b2lkIG5leHRTaWJsaW5nKCk7CisgICAgdm9p
ZCBwcmV2aW91c1NpYmxpbmcoKTsKKworICAgIHZvaWQgcGFyZW50KCk7CisKKyAgICB2b2lkIG5l
eHQoKTsKKyAgICB2b2lkIHByZXZpb3VzKCk7CisKK3ByaXZhdGU6CisgICAgZW51bSBUcmF2ZXJz
YWxEaXJlY3Rpb24geworICAgICAgICBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkLAorICAgICAg
ICBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNrd2FyZAorICAgIH07CisKKyAgICBib29sIGNhbkNyb3Nz
VXBwZXJCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5ID09IENyb3NzVXBwZXJCb3Vu
ZGFyeTsgfQorCisgICAgdm9pZCBhc3NlcnRQcmVjb25kaXRpb24oKSBjb25zdAorICAgIHsKKyNp
Zm5kZWYgTkRFQlVHCisgICAgICAgIEFTU0VSVChtX25vZGUpOworICAgICAgICBpZiAoY2FuQ3Jv
c3NVcHBlckJvdW5kYXJ5KCkpCisgICAgICAgICAgICBBU1NFUlQoIW1fbm9kZS0+aXNTaGFkb3dS
b290KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBBU1NFUlQoIW1fbm9kZS0+aXNTaGFk
b3dSb290KCkgfHwgdG9TaGFkb3dSb290KG1fbm9kZSktPmlzWW91bmdlc3QoKSk7CisgICAgICAg
IC8vIEZJWE1FOiBBZGQgYW4gYXNzZXJ0aW9uIG9uY2UgSW5zZXJ0aW9uUG9pbnQgaGF2ZSBpc0Fj
dGl2ZSgpIGZ1bmN0aW9uLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODIwMTAKKyAgICAgICAgLy8gQVNTRVJUKCFpc0luc2VydGlvblBvaW50KG1f
bm9kZSkgfHwgIXRvSW5zZXJ0aW9uUG9pbnQobm9kZSktPmlzQWN0aXZlKCkpOworI2VuZGlmCisg
ICAgfQorCisgICAgdm9pZCBhc3NlcnRQb3N0Y29uZGl0aW9uKCkgY29uc3QKKyAgICB7CisjaWZu
ZGVmIE5ERUJVRworICAgICAgICBpZiAobV9ub2RlKQorICAgICAgICAgICAgYXNzZXJ0UHJlY29u
ZGl0aW9uKCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVyc2VOb2Rl
KGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOworICAgIHN0YXRpYyBOb2RlKiB0cmF2
ZXJzZUxpZ2h0Q2hpbGRyZW4oY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisKKyAg
ICBOb2RlKiB0cmF2ZXJzZUZpcnN0Q2hpbGQoY29uc3QgTm9kZSopIGNvbnN0OworICAgIE5vZGUq
IHRyYXZlcnNlTGFzdENoaWxkKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAgICBOb2RlKiB0cmF2ZXJz
ZUNoaWxkKGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pIGNvbnN0OworICAgIE5vZGUq
IHRyYXZlcnNlUGFyZW50KGNvbnN0IE5vZGUqKSBjb25zdDsKKworICAgIHN0YXRpYyBOb2RlKiB0
cmF2ZXJzZU5leHRTaWJsaW5nKGNvbnN0IE5vZGUqKTsKKyAgICBzdGF0aWMgTm9kZSogdHJhdmVy
c2VQcmV2aW91c1NpYmxpbmcoY29uc3QgTm9kZSopOworCisgICAgc3RhdGljIE5vZGUqIHRyYXZl
cnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQoY29uc3QgTm9kZSosIFRyYXZlcnNhbERp
cmVjdGlvbik7CisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlU2libGluZ0luQ3VycmVudFRyZWUo
Y29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisKKyAgICBzdGF0aWMgTm9kZSogdHJh
dmVyc2VTaWJsaW5nT3JCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdChjb25zdCBOb2RlKiwgVHJhdmVy
c2FsRGlyZWN0aW9uKTsKKyAgICBzdGF0aWMgTm9kZSogZXNjYXBlRmFsbGJhY2tDb250ZW50RWxl
bWVudChjb25zdCBOb2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKKworICAgIE5vZGUqIHRyYXZl
cnNlTm9kZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyhjb25zdCBOb2RlKikgY29uc3Q7CisgICAg
Tm9kZSogdHJhdmVyc2VQYXJlbnRJbkN1cnJlbnRUcmVlKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAg
ICBOb2RlKiB0cmF2ZXJzZVBhcmVudEJhY2tUb1lvdW5nZXJTaGFkb3dSb290T3JIb3N0KGNvbnN0
IFNoYWRvd1Jvb3QqKSBjb25zdDsKKworICAgIGNvbnN0IE5vZGUqIG1fbm9kZTsKKyAgICBQb2xp
Y3kgbV9wb2xpY3k7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBmMmYxMDk4MDQyNDA3NjdkMjUyYTU5Njg1NDdlNjEy
MzU2Njk5NjI5Li42ZGMwMzk1ZjZmZDJmZDlmMzMzYjM5MjllY2ZlOGM1MzI5ZjFmMTI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDbGllbnRSZWN0LmgiCiAjaW5j
bHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKKyNpbmNsdWRlICJDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXIuaCIKICNpbmNsdWRlICJET01Ob2RlSGlnaGxpZ2h0ZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCkBAIC0xODIsNiArMTgzLDYxIEBAIGJv
b2wgSW50ZXJuYWxzOjphdHRhY2hlZChOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKICAg
ICByZXR1cm4gbm9kZS0+YXR0YWNoZWQoKTsKIH0KIAorTm9kZSogSW50ZXJuYWxzOjpuZXh0U2li
bGluZ0J5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICgh
bm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgfQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIobm9kZSk7Cisg
ICAgd2Fsa2VyLm5leHRTaWJsaW5nKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30KKwor
Tm9kZSogSW50ZXJuYWxzOjpmaXJzdENoaWxkQnlXYWxrZXIoTm9kZSogbm9kZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgQ29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIuZmlyc3RDaGlsZCgpOworICAgIHJldHVy
biB3YWxrZXIuZ2V0KCk7Cit9CisKK05vZGUqIEludGVybmFsczo6bGFzdENoaWxkQnlXYWxrZXIo
Tm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFub2RlKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9Cisg
ICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIubGFz
dENoaWxkKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30KKworTm9kZSogSW50ZXJuYWxz
OjpuZXh0Tm9kZUJ5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgfQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIobm9k
ZSk7CisgICAgd2Fsa2VyLm5leHQoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdldCgpOworfQorCitO
b2RlKiBJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIENvbXBvc2VkU2hhZG93VHJl
ZVdhbGtlciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2VyLnByZXZpb3VzKCk7CisgICAgcmV0dXJu
IHdhbGtlci5nZXQoKTsKK30KKwogTm9kZSogSW50ZXJuYWxzOjpuZXh0U2libGluZ0luUmVpZmll
ZFRyZWUoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFub2RlKSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBhMDYxM2FjMjE3YjgzZWI5ZjgxM2Vm
YTkwODc3MTNkMDBjZjhhM2I4Li43OGY2MTQ3YWEzODRjYmViZTZmYzRiOGYzODA1MWJlMDFjOThl
N2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTg0LDYgKzg0LDEzIEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgYXR0YWNoZWQoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAg
IC8vIEZJWE1FOiBSZW5hbWUgdGhlc2UgZnVuY3Rpb25zIGlmIHdhbGtlciBpcyBwcmVmZXJlZC4K
KyAgICBOb2RlKiBuZXh0U2libGluZ0J5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgTm9kZSogZmlyc3RDaGlsZEJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CisgICAg
Tm9kZSogbGFzdENoaWxkQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBOb2Rl
KiBuZXh0Tm9kZUJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgTm9kZSogcHJl
dmlvdXNOb2RlQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIE5vZGUqIG5l
eHRTaWJsaW5nSW5SZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIE5vZGUq
IGZpcnN0Q2hpbGRJblJlaWZpZWRUcmVlKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgTm9k
ZSogbGFzdENoaWxkSW5SZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDdkOThiZWFmZTg1YzA2Mjc1Y2IwNjI3YzI0
NWJiYjBmMzlkNTNlMWQuLjJiOTU5NDc3NmZlNDFkZTMzMzRiYzUxZjYzMTA3NmU3NzBkZjU0MDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTU1LDYgKzU1LDEyIEBAIG1v
ZHVsZSB3aW5kb3cgewogICAgICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290
KGluIE5vZGUgc2hhZG93Um9vdCwgaW4gRE9NU3RyaW5nIGlkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgYm9vbGVhbiBpc1ZhbGlkQ29udGVudFNlbGVjdChpbiBFbGVtZW50IGNvbnRl
bnRFbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICBOb2RlIG5leHRTaWJs
aW5nQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
Tm9kZSBmaXJzdENoaWxkQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgTm9kZSBsYXN0Q2hpbGRCeVdhbGtlcihpbiBOb2RlIG5vZGUpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICBOb2RlIG5leHROb2RlQnlXYWxrZXIoaW4gTm9kZSBub2Rl
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBwcmV2aW91c05vZGVCeVdhbGtl
cihpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAgICAgICAgIE5vZGUgbmV4
dFNpYmxpbmdJblJlaWZpZWRUcmVlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgICAgIE5vZGUgZmlyc3RDaGlsZEluUmVpZmllZFRyZWUoaW4gTm9kZSBub2RlKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgTm9kZSBsYXN0Q2hpbGRJblJlaWZpZWRUcmVlKGlu
IE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC0xMjYsNyArMTMyLDcgQEAgbW9k
dWxlIHdpbmRvdyB7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9CQVRURVJZX1NUQVRVUykgJiYgRU5B
QkxFX0JBVFRFUllfU1RBVFVTCiAgICAgICAgIHZvaWQgc2V0QmF0dGVyeVN0YXR1cyhpbiBEb2N1
bWVudCBkb2N1bWVudCwgaW4gRE9NU3RyaW5nIGV2ZW50VHlwZSwgaW4gYm9vbGVhbiBjaGFyZ2lu
ZywgaW4gZG91YmxlIGNoYXJnaW5nVGltZSwgaW4gZG91YmxlIGRpc2NoYXJnaW5nVGltZSwgaW4g
ZG91YmxlIGxldmVsKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0jZW5kaWYgCisjZW5kaWYKIAog
ICAgICAgICBbQ29uZGl0aW9uYWw9SU5TUEVDVE9SXSB1bnNpZ25lZCBsb25nIG51bWJlck9mTGl2
ZU5vZGVzKCk7CiAgICAgICAgIFtDb25kaXRpb25hbD1JTlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcg
bnVtYmVyT2ZMaXZlRG9jdW1lbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggYWRhODgz
NzliZDk1MGFhNTk5ZDBhNGQxMDk0ZjJmZDAzNDkwYzNkNC4uZjBiNzZjYTFlM2FlMzQ2YWNkNjVl
MzE2NmZiNGZmZDFmZTZlZTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTgzLDYgKzE4
MywxMiBAQCBFWFBPUlRTCiAgICAgICAgID9sYXN0Q2hhbmdlV2FzVXNlckVkaXRASFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgogICAgICAgICA/bGFzdENoaWxkQFJl
aWZpZWRUcmVlVHJhdmVyc2FsQFdlYkNvcmVAQFNBUEFWTm9kZUAyQFBCVjMyQEBaCiAgICAgICAg
ID9tYXJrZXJzRm9yQERvY3VtZW50TWFya2VyQ29udHJvbGxlckBXZWJDb3JlQEBRQUU/QVY/JFZl
Y3RvckBQQVZEb2N1bWVudE1hcmtlckBXZWJDb3JlQEAkMEFAQFdURkBAUEFWTm9kZUAyQFZNYXJr
ZXJUeXBlc0BEb2N1bWVudE1hcmtlckAyQEBaCisgICAgICAgID9uZXh0U2libGluZ0BDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFFWFhaCisgICAgICAgID8/MENvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlckBXZWJDb3JlQEBRQUVAUEJWTm9kZUAxQFc0UG9saWN5QDAxQEBaCisgICAg
ICAgID9maXJzdENoaWxkQENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBRQUVYWFoK
KyAgICAgICAgP2xhc3RDaGlsZEBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFF
WFhaCisgICAgICAgID9uZXh0QENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBRQUVY
WFoKKyAgICAgICAgP3ByZXZpb3VzQENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBR
QUVYWFoKICAgICAgICAgP25leHRTaWJsaW5nQFJlaWZpZWRUcmVlVHJhdmVyc2FsQFdlYkNvcmVA
QFNBUEFWTm9kZUAyQFBCVjMyQEBaCiAgICAgICAgID9udW1iZXJAU3RyaW5nQFdURkBAU0E/QVYx
MkBJQFoKICAgICAgICAgP251bWJlckBTdHJpbmdAV1RGQEBTQT9BVjEyQEhAWgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDllZTJlZTE3MThmZjBhNTZjZjlmMWI1NjkwYzNk
MjdmZDVkZTM0YWEuLmRkNmIyY2M5N2QzOTQ1ZmU0NzVlOTUxNzExOGI4ZjZhZjJhODY4MWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE4MCw2ICsxODAsMTIgQEAgRVhQ
T1JUUwogICAgICAgICA/bnVtYmVyQFN0cmluZ0BXVEZAQFNBP0FWMTJASEBaCiAgICAgICAgID9v
YnNlcnZlRnJhbWVARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQElBRVhQQVZGcmFt
ZUAyQEBaCiAgICAgICAgID9vdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNAV2ViQ29yZUBA
WUFYQUJWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RGQEBAWgorICAgICAgICA/bmV4dFNp
YmxpbmdAQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/
PzBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFFQFBCVk5vZGVAMUBXNFBvbGlj
eUAwMUBAWgorICAgICAgICA/Zmlyc3RDaGlsZEBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2Vi
Q29yZUBAUUFFWFhaCisgICAgICAgID9sYXN0Q2hpbGRAQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
QFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/bmV4dEBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJA
V2ViQ29yZUBAUUFFWFhaCisgICAgICAgID9wcmV2aW91c0BDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXJAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9uZXh0U2libGluZ0BSZWlmaWVkVHJlZVRyYXZl
cnNhbEBXZWJDb3JlQEBTQVBBVk5vZGVAMkBQQlYzMkBAWgogICAgICAgICA/bnVtYmVyT2ZTY29w
ZWRIVE1MU3R5bGVDaGlsZHJlbkBOb2RlQFdlYkNvcmVAQFFCRUlYWgogICAgICAgICA/cGFnZUBE
b2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdlQDJAWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmlu
ZGV4IDUzMjBlOGIzNGQwMDNhNjEwYzNiOWYwN2Y4ZTQxNTdlNmMwODhlNzUuLmRmOTQzMDk1MmJl
MGM1YmRmNDdjYzUwOTM4MTdhYTVhZDk0NDI2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpA
QCAtNzIsNiArNzIsMTIgQEAgX1pON1dlYkNvcmUyMFJlaWZpZWRUcmVlVHJhdmVyc2FsMTBmaXJz
dENoaWxkRVBLTlNfNE5vZGVFOwogX1pON1dlYkNvcmUyMWdldENhY2hlZERPTVN0cnVjdHVyZUVQ
TlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQS04zSlNDOUNsYXNzSW5mb0U7CiBfWk43V2ViQ29yZTIy
ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfN0VsZW1lbnRFajsKIF9aTjdXZWJDb3JlMjJ1c2Vy
UHJlZmVycmVkTGFuZ3VhZ2VzRXY7CitfWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyMTBmaXJzdENoaWxkRXY7CitfWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
MTFuZXh0U2libGluZ0V2OworX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjRu
ZXh0RXY7CitfWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOHByZXZpb3VzRXY7
CitfWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOWxhc3RDaGlsZEV2OworX1pO
N1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckMxRVBLTlNfNE5vZGVFTlMwXzZQb2xp
Y3lFOwogX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEwbWFya2Vyc0ZvckVQ
TlNfNE5vZGVFTlNfMTREb2N1bWVudE1hcmtlcjExTWFya2VyVHlwZXNFOwogX1pON1dlYkNvcmUz
MG92ZXJyaWRlVXNlclByZWZlcnJlZExhbmd1YWdlc0VSS04zV1RGNlZlY3RvcklOUzBfNlN0cmlu
Z0VMajBFRUU7CiBfWk43V2ViQ29yZTMwb3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFuZ3VhZ2VzRVJL
TjNXVEY2VmVjdG9ySU5TMF82U3RyaW5nRUxtMEVFRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMGY3NzRmYmIyOTI0OGZm
YWE4MDAwZmM0MzIwM2UxNmJlZDA0MGRiLi5lY2YxMTNkYTBkMmI4NmY4ZTRjNDlhY2VmZjE4Zjkz
NTY4NjgxZjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMjYgIEhheWF0byBJdG8g
IDxoYXlhdG9AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtTaGFkb3cgRE9NXSBJbnRyb2R1Y2Ug
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIGFzIGEgc3VjY2Vzc29yIG9mIFJlaWZpZWRUcmVlVHJh
dmVyc2FsIEFQSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMDA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10
cmVlLXdhbGtlci5odG1sOiBBZGRlZC4KKwogMjAxMi0wMy0yOSAgWmVubyBBbGJpc3NlciAgPHpl
bm9Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaWVsZHNldCBkaXNhYmxlZCBhdHRyaWJ1dGUgZG9l
cyBub3Qgd29yay4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21w
b3NlZC1zaGFkb3ctdHJlZS13YWxrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2E4M2VhZTY5NjRhZDVhODkxMDI5ZGVhNDQzMWU3NWYxYjc4NTc5ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJl
ZS13YWxrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTU2IEBACitUZXN0cyBmb3IgQ29tcG9z
ZWQgU2hhZG93IERPTSBUcmVlIFRyYXZlcnNhbCBBUElzLiBDYW4gb25seSBydW4gd2l0aGluIERS
VAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworU2hhZG93Um9vdCBzaG91bGQgYmUg
dXNlZC4KK0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisKK1Ry
YXZlcnNlIGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9YgorVHJhdmVyc2UgaW4gYmFj
a3dhcmQuCitESVYJIGlkPWIKK0RJVgkgaWQ9YQorCitBIGNvbnRlbnQgZWxlbWVudCBzaG91bGQg
c2VsZWN0IGxpZ2h0IGNoaWxkcmVuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9YQor
CURJVgkgaWQ9YgorCURJVgkgaWQ9YworCURJVgkgaWQ9ZAorCitUcmF2ZXJzZSBpbiBmb3J3YXJk
LgorRElWCSBpZD1hCitESVYJIGlkPWIKK0RJVgkgaWQ9YworRElWCSBpZD1kCitUcmF2ZXJzZSBp
biBiYWNrd2FyZC4KK0RJVgkgaWQ9ZAorRElWCSBpZD1jCitESVYJIGlkPWIKK0RJVgkgaWQ9YQor
CitUZXN0IGZvciBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IuCitDb21wb3NlZCBTaGFkb3cgVHJl
ZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9YgorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBp
ZD1hCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9YQorCitMaWdodCBjaGlsZHJlbiBz
aG91bGQgYmUgc2VsZWN0ZWQgb25seSBhdCBvbmNlLgorQ29tcG9zZWQgU2hhZG93IFRyZWU6CitE
SVYJIGlkPWEKKwlESVYJIGlkPWIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQor
RElWCSBpZD1iCitUcmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZQorRElWCSBpZD1kCitE
SVYJIGlkPWMKK0RJVgkgaWQ9YQorCitBIGNvbnRlbnQgZWxlbWVudCBjYW4gaGF2ZSBmYWxsYmFj
ayBlbGVtZW50cy4KK0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1i
CisJRElWCSBpZD1mMQorCURJVgkgaWQ9ZjIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkg
aWQ9YQorRElWCSBpZD1iCitESVYJIGlkPWYxCitESVYJIGlkPWYyCitUcmF2ZXJzZSBpbiBiYWNr
d2FyZC4KK0RJVgkgaWQ9ZjIKK0RJVgkgaWQ9ZjEKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK0Zh
bGxiYWNrIGVsZW1lbnRzIHNob3VsZCBub3QgYmUgdXNlZCBpZiAgZWxlbWVudCBzZWxlY3RzIGFu
eSBlbGVtZW50cy4KK0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1i
CisJRElWCSBpZD1mMQorCURJVgkgaWQ9ZjIKKworVHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkg
aWQ9YQorRElWCSBpZD1iCitESVYJIGlkPWYxCitESVYJIGlkPWYyCitUcmF2ZXJzZSBpbiBiYWNr
d2FyZC4KK0RJVgkgaWQ9ZjIKK0RJVgkgaWQ9ZjEKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK1Rl
c3QgZm9yIE5lc3RlZCBTaGFkb3dSb290cy4KK0NvbXBvc2VkIFNoYWRvdyBUcmVlOgorRElWCSBp
ZD1hCisJRElWCSBpZD1iCisJCURJVgkgaWQ9YworCQlESVYJIGlkPWUKKwkJRElWCSBpZD1kCisJ
RElWCSBpZD1mCisJRElWCSBpZD1oCisJRElWCSBpZD1pCisJRElWCSBpZD1nCisKK1RyYXZlcnNl
IGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9YgorRElWCSBpZD1jCitESVYJIGlkPWUK
K0RJVgkgaWQ9ZAorRElWCSBpZD1mCitESVYJIGlkPWgKK0RJVgkgaWQ9aQorRElWCSBpZD1nCitU
cmF2ZXJzZSBpbiBiYWNrd2FyZC4KK0RJVgkgaWQ9ZworRElWCSBpZD1pCitESVYJIGlkPWgKK0RJ
VgkgaWQ9ZgorRElWCSBpZD1kCitESVYJIGlkPWUKK0RJVgkgaWQ9YworRElWCSBpZD1iCitESVYJ
IGlkPWEKKworVGVzdCBmb3IgTXVsdGlwbGUgU2hhZG93Um9vdHMuCitDb21wb3NlZCBTaGFkb3cg
VHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9ZAorCURJVgkgaWQ9YgorCURJVgkgaWQ9ZgorCURJ
VgkgaWQ9YworCURJVgkgaWQ9ZQorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitE
SVYJIGlkPWQKK0RJVgkgaWQ9YgorRElWCSBpZD1mCitESVYJIGlkPWMKK0RJVgkgaWQ9ZQorVHJh
dmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWUKK0RJVgkgaWQ9YworRElWCSBpZD1mCitESVYJ
IGlkPWIKK0RJVgkgaWQ9ZAorRElWCSBpZD1hCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTUzNmMyYzM2Y2FlMmFiOTRiOWE1YmMwYmU3YzI4YmM3ZWIwMDdhOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13
YWxrZXIuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYWRvdy1kb20uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbigiVGVzdHMgZm9yIENvbXBvc2VkIFNoYWRvdyBET00gVHJlZSBUcmF2ZXJzYWwgQVBJ
cy4gQ2FuIG9ubHkgcnVuIHdpdGhpbiBEUlQiKTsKKworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0
aW9uIGR1bXBOb2RlKG5vZGUpCit7CisgICAgdmFyIG91dHB1dCA9IG5vZGUubm9kZU5hbWUgKyAi
XHQiOworICAgIGlmIChub2RlLmlkKQorICAgICAgICBvdXRwdXQgKz0gJyBpZD0nICsgbm9kZS5p
ZDsKKyAgICBpZiAobm9kZS5jbGFzc05hbWUpCisgICAgICAgIG91dHB1dCArPSAnIGNsYXNzPScg
KyBub2RlLmNsYXNzTmFtZTsKKyAgICByZXR1cm4gb3V0cHV0OworfQorCitmdW5jdGlvbiBkdW1w
Q29tcG9zZWRTaGFkb3dUcmVlKG5vZGUsIGluZGVudCkKK3sKKyAgICBpbmRlbnQgPSBpbmRlbnQg
fHwgIiI7CisgICAgdmFyIG91dHB1dCA9IGluZGVudCArIGR1bXBOb2RlKG5vZGUpICsgIlxuIjsK
KyAgICB2YXIgY2hpbGQ7CisgICAgZm9yIChjaGlsZCA9IGludGVybmFscy5maXJzdENoaWxkQnlX
YWxrZXIobm9kZSk7IGNoaWxkOyBjaGlsZCA9IGludGVybmFscy5uZXh0U2libGluZ0J5V2Fsa2Vy
KGNoaWxkKSkKKyAgICAgICAgIG91dHB1dCArPSBkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKGNoaWxk
LCBpbmRlbnQgKyAiXHQiKTsKKyAgICByZXR1cm4gb3V0cHV0OworfQorCitmdW5jdGlvbiBsYXN0
Tm9kZUJ5V2Fsa2VyKHJvb3QpCit7CisgICAgdmFyIGxhc3ROb2RlID0gcm9vdDsKKyAgICB3aGls
ZSAoaW50ZXJuYWxzLmxhc3RDaGlsZEJ5V2Fsa2VyKGxhc3ROb2RlKSkKKyAgICAgICAgbGFzdE5v
ZGUgPSBpbnRlcm5hbHMubGFzdENoaWxkQnlXYWxrZXIobGFzdE5vZGUpOworICAgIHJldHVybiBs
YXN0Tm9kZTsKK30KKworZnVuY3Rpb24gc2hvd0NvbXBvc2VkU2hhZG93VHJlZUJ5VHJhdmVyc2lu
Z0luRm9yd2FyZChyb290KQoreworICAgIHZhciBub2RlID0gcm9vdDsKKyAgICB2YXIgbGFzdCA9
IGxhc3ROb2RlQnlXYWxrZXIocm9vdCk7CisgICAgd2hpbGUgKG5vZGUpIHsKKyAgICAgICAgZGVi
dWcoZHVtcE5vZGUobm9kZSkpOworICAgICAgICBpZiAobm9kZSA9PSBsYXN0KQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIG5vZGUgPSBpbnRlcm5hbHMubmV4dE5vZGVCeVdhbGtlcihub2Rl
KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNp
bmdJbkJhY2t3YXJkKHJvb3QpCit7CisgICAgdmFyIG5vZGUgPSBsYXN0Tm9kZUJ5V2Fsa2VyKHJv
b3QpOworICAgIHdoaWxlIChub2RlKSB7CisgICAgICAgIGRlYnVnKGR1bXBOb2RlKG5vZGUpKTsK
KyAgICAgICAgaWYgKG5vZGUgPT0gcm9vdCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBu
b2RlID0gaW50ZXJuYWxzLnByZXZpb3VzTm9kZUJ5V2Fsa2VyKG5vZGUpOworICAgIH0KK30KKwor
ZnVuY3Rpb24gc2hvd0NvbXBvc2VkU2hhZG93VHJlZShub2RlKQoreworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQobm9kZSk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRMZWZ0OworCisg
ICAgZGVidWcoJ0NvbXBvc2VkIFNoYWRvdyBUcmVlOicpOworICAgIGRlYnVnKGR1bXBDb21wb3Nl
ZFNoYWRvd1RyZWUobm9kZSkpOworCisgICAgZGVidWcoJ1RyYXZlcnNlIGluIGZvcndhcmQuJyk7
CisgICAgc2hvd0NvbXBvc2VkU2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luRm9yd2FyZChub2RlKTsK
KworICAgIGRlYnVnKCdUcmF2ZXJzZSBpbiBiYWNrd2FyZC4nKTsKKyAgICBzaG93Q29tcG9zZWRT
aGFkb3dUcmVlQnlUcmF2ZXJzaW5nSW5CYWNrd2FyZChub2RlKTsKKworICAgIGRlYnVnKCcnKTsK
K30KKworZGVidWcoJ1NoYWRvd1Jvb3Qgc2hvdWxkIGJlIHVzZWQuJyk7CitzaG93Q29tcG9zZWRT
aGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAg
ICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSkpLAorICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSkpOworCitkZWJ1ZygnQSBj
b250ZW50IGVsZW1lbnQgc2hvdWxkIHNlbGVjdCBsaWdodCBjaGlsZHJlbicpOworc2hvd0NvbXBv
c2VkU2hhZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAg
ICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwKKyAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSksCisgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pKSk7CisKK2RlYnVnKCdUZXN0IGZvciBjb250
ZW50IGVsZW1lbnQgc2VsZWN0b3IuJyk7CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNy
ZWF0ZURPTSgnZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jv
b3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2InfSksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnLmQnfSkpLAorICAgICAg
ICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSwKKyAgICAgICAgICAgICAgY3Jl
YXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdlJ30pKSk7CisKK2RlYnVnKCdMaWdodCBjaGlsZHJlbiBzaG91bGQgYmUgc2Vs
ZWN0ZWQgb25seSBhdCBvbmNlLicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJy5kJ30pLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpKSwKKyAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSksCisgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdkJ30pLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsn
aWQnOiAnZSd9KSkpOworCitkZWJ1ZygnQSBjb250ZW50IGVsZW1lbnQgY2FuIGhhdmUgZmFsbGJh
Y2sgZWxlbWVudHMuJyk7CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgn
ZGl2JywgeydpZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ2InfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdjb250ZW50JywgeydzZWxlY3QnOiAnLnonfSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YxJ30pLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2Rpdics
IHsnaWQnOiAnZjInfSkpKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2MnfSkpKTsKKworZGVidWcoJ0ZhbGxiYWNrIGVsZW1lbnRzIHNob3VsZCBub3QgYmUgdXNlZCBp
ZiA8Y29udGVudD4gZWxlbWVudCBzZWxlY3RzIGFueSBlbGVtZW50cy4nKTsKK3Nob3dDb21wb3Nl
ZFNoYWRvd1RyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAg
ICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVj
dCc6ICcuYyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnZjEnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmMid9KSkpLAorICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSkpOworCitkZWJ1ZygnVGVzdCBmb3Ig
TmVzdGVkIFNoYWRvd1Jvb3RzLicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVh
dGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290
KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2MnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY3JlYXRlRE9NKCdjb250ZW50JyksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzog
J2QnfSkpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnZSd9KSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YnfSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3JlYXRlRE9NKCdjb250ZW50JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2cnfSkpLAorICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2RpdicsIHsnaWQnOiAnaCd9KSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2knfSkpKTsKKworZGVidWcoJ1Rlc3QgZm9yIE11bHRpcGxlIFNoYWRvd1Jvb3RzLicp
Oworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
YSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdiJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29u
dGVudCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdjJ30pKSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00o
J2RpdicsIHsnaWQnOiAnZCd9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVh
dGVET00oJ3NoYWRvdycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURP
TSgnZGl2JywgeydpZCc6ICdlJ30pKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2YnfSkpKTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZTAwYTQ4N2M1ZjRmYzE2Nzc5YWZkYmNj
MDgxNzk5ZGY5ZTg2NTM5Yi4uZWJjZWNhNzI4MWQyNjU3Yjk2NzEyMDE0MTUxNWY3NTc2ZmZmZDYy
MiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDEyLTAzLTI5ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBbU2hhZG93IERPTV0gSW50cm9kdWNlIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBhcyBhIHN1
Y2Nlc3NvciBvZiBSZWlmaWVkVHJlZVRyYXZlcnNhbCBBUElzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjAwOQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcjoKKwogMjAxMi0wMy0yOCAgS2V2aW4gT2xsaXZpZXIgIDxrZXZpbm9AdGhlb2xsaXZpZXJz
LmNvbT4KIAogICAgICAgICBbd3hdIFVucmV2aWV3ZWQuIEJ1aWxkIGZpeCwgbW92ZSBXVEYgYmFj
ayBpbnRvIEpTQ29yZSB0YXJnZXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135042</attachid>
            <date>2012-04-02 01:35:53 -0700</date>
            <delta_ts>2012-04-02 02:55:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-82009-20120402173551.patch</filename>
            <type>text/plain</type>
            <size>46716</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY2ZTUzYzA2NjRkNDc0
YWEyZTJmMDI4M2ZlNmVkZGZhZjc0NzE4NS4uZDk4YWM2OTQ0ODkwOTAwMzliYjBmNDE4NGZiYjM2
M2ZmZDYzMjQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDEyLTAzLTI2ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93IERPTV0gSW50
cm9kdWNlIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBhcyBhIHN1Y2Nlc3NvciBvZiBSZWlmaWVk
VHJlZVRyYXZlcnNhbCBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4K
KworICAgICAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgaXMgaW50ZW5kZWQgdG8gYmUgYSBz
dWNjZXNzb3Igb2YgY3VycmVudCBSZWlmaWVkVHJlZVRyYXZlcnNhbCBBUElzLgorICAgICAgICBD
b21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgdXNlcyBhIGN1cnNvciBwYXR0ZXJuIGFuZCB0YWtlcyBh
IHN0YXJ0aW5nIG5vZGUgaW4gaXRzIGNvbnN0cnVjdG9yLgorCisgICAgICAgIEEgdHlwaWNhbCB1
c2FnZSBpczoKKworICAgICAgICAgIGZvciAoQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtl
cihub2RlKTsgd2Fsa2VyLmdldCgpOyB3YWxrZXIubmV4dCgpKSB7CisgICAgICAgICAgICAgICAg
Li4uCisgICAgICAgICAgfQorCisgICAgICAgIEZvbGxvdy11cCBwYXRjaGVzIHdpbGwgdXBkYXRl
IGNsaWVudHMgd2hpY2ggdXNlIGN1cnJlbnQgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJcyBzbyB0
aGF0IHRoZXkgdXNlIHRoZSBXYWxrZXIuCisgICAgICAgIE1vcmUgdGVzdHMgd2lsbCBjb21lIGFs
b25nIHdpdGggdGhlc2UgYWN0dWFsIHVzZSBjYXNlcyBpbiBmb2xsb3ctdXAgcGF0Y2hlcy4KKyAg
ICAgICAgQWZ0ZXIgdGhhdCwgSSdsbCBnZXQgcmlkIG9mIFJlaWZpZWRUcmVlVHJhdmVyc2FsIEFQ
SXMgaW4gZmF2b3Igb2YgdGhlIFdhbGtlci4KKworICAgICAgICBOb3RlIHRoYXQgJ0NvbXBvc2Vk
U2hhZG93VHJlZScgYW5kICdSZWlmaWVkVHJlZScgaGFzIHRoZSBzYW1lIG1lYW5pbmcuCisgICAg
ICAgIEJlY2F1c2UgUmVpZmllZFRyZWUgaXMgbm90IGludHVpdGl2ZSBuYW1lLCB3ZSBhcmUgc3Rh
cnRpbmcgdG8gdXNlICdDb21wb3NlZFNoYWRvd1RyZWUnIGZyb20gbm93LgorCisgICAgICAgIFRl
c3Q6IGZhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIuaHRtbAorCisg
ICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToK
KyAgICAgICAgKiBUYXJnZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjppc1NoYWRvd0hvc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6c2hhZG93VHJlZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpzaGFkb3dUcmVlT2ZQYXJlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOjpmcm9tRmlyc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OmZpcnN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOjp0cmF2ZXJzZUZpcnN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZUxhc3RDaGlsZCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlQ2hpbGQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZU5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpuZXh0U2libGlu
Zyk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnByZXZpb3Vz
U2libGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRy
YXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRUcmVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJs
aW5nT3JCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXI6OmVzY2FwZUZhbGxiYWNrQ29udGVudEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZU5vZGVFc2NhcGlu
Z0ZhbGxiYWNrQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVl
V2Fsa2VyOjpwYXJlbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOjp0cmF2ZXJzZVBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50SW5DdXJyZW50VHJlZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50QmFja1RvWW91bmdlclNo
YWRvd1Jvb3RPckhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOjp0cmF2ZXJzZU5leHRTaWJsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2VkU2hh
ZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQcmV2aW91c1NpYmxpbmcpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpuZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6cHJldmlvdXMpOgorICAgICAgICAqIGRvbS9Db21wb3Nl
ZFNoYWRvd1RyZWVXYWxrZXIuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OmNhbkNyb3NzVXBwZXJCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpDb21w
b3NlZFNoYWRvd1RyZWVXYWxrZXI6OmFzc2VydFByZWNvbmRpdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OmFzc2VydFBvc3Rjb25kaXRpb24pOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFs
czo6bmV4dFNpYmxpbmdCeVdhbGtlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6Zmlyc3RDaGlsZEJ5V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6bGFzdENoaWxkQnlXYWxrZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJu
YWxzOjpuZXh0Tm9kZUJ5V2Fsa2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cHJl
dmlvdXNOb2RlQnlXYWxrZXIpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAg
ICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAx
Mi0wNC0wMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDaHJv
bWl1bV0gTW92ZSBhbm90aGVyIGJsb2NrIG9mIGhlYWRlcnMgZnJvbSBXZWJLaXQvY2hyb21pdW0v
cHVibGljL3BsYXRmb3JtIHRvIFBsYXRmb3JtL2Nocm9taXVtL3B1YmxpYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4
IDQ1NWM1ZTljZDNiYTRlZDM2NGJhOGY0NTQ5MmZhY2ZmMWU3NzA0ZDIuLjQxYTM2M2JmY2RmYThm
NTMxY2IxYzJkMjk4MWZlYzM5YTVmNzI1ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMi0wMy0yOSAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
W1NoYWRvdyBET01dIEludHJvZHVjZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgYXMgYSBzdWNj
ZXNzb3Igb2YgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMDkKKworICAgICAgICBSZXZpZXdlZCBieSBE
aW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICog
d2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTA0LTAxICBKb24gTGVlICA8am9ubGVlQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgbm90aWZpY2F0aW9uIHByb3BlcnRpZXMgYW5kIGZ1
bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBjNzEyZTY2YzUxOTFmY2M5MTk2MTNlZmJi
OWYyNjEwYTU3YTJhZDg5Li45ZDdkOTE4ZTViOTIwZTg5Njg2M2JmNjY3OWRlMzEwMDBmNjI2Njdj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNTM5LDYgKzUzOSw3IEBAIFNFVChXZWJDb3JlX1NP
VVJDRVMKICAgICBkb20vQ2xpcGJvYXJkLmNwcAogICAgIGRvbS9DbGlwYm9hcmRFdmVudC5jcHAK
ICAgICBkb20vQ29tbWVudC5jcHAKKyAgICBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNw
cAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmNwcAogICAgIGRvbS9Db250YWluZXJOb2RlLmNw
cAogICAgIGRvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDE5MmM1NDZhNmIxMDQzMmMwMGE2M2NkNTIyNDYzMTJhOTExODdl
MTguLjNiMmY0NzVkYWUyMzA1ZmQ2ZDA1ZWFmZTEyMDc0Yzc0ODEwODI1ZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTc0OSw2ICsxNzQ5LDggQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Db21tZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zaXRp
b25FdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaQppbmRleCAxODg2M2JjODUyYmViZDEyYjk1NzI0YzNiNWM0OTUwMmVkYTAx
OGY5Li43MjJiYzEzYWMxZmY2NWNhZTc0NTFlODIxZTc4YjFhNzRhZWU0MmM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKQEAgLTUxNCw2ICs1MTQsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBkb20vQ2xpcGJvYXJkLmNw
cCBcCiAgICAgZG9tL0NsaXBib2FyZEV2ZW50LmNwcCBcCiAgICAgZG9tL0NvbW1lbnQuY3BwIFwK
KyAgICBkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCBcCiAgICAgZG9tL0NvbXBvc2l0
aW9uRXZlbnQuY3BwIFwKICAgICBkb20vQ29udGFpbmVyTm9kZS5jcHAgXAogICAgIGRvbS9Db250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgXApAQCAtMTY1NSw2ICsxNjU2LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgZG9tL0NsaXBib2FyZEV2ZW50LmggXAogICAgIGRvbS9DbGlwYm9hcmQuaCBc
CiAgICAgZG9tL0NvbW1lbnQuaCBcCisgICAgZG9tL0NvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5o
IFwKICAgICBkb20vQ29udGFpbmVyTm9kZS5oIFwKICAgICBkb20vQ3VzdG9tRXZlbnQuaCBcCiAg
ICAgZG9tL2RlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDU0ZTU5MjUyMmMwMzFiYjk3MDNhZmYwNGE5MzhkNzRhYTNkMjMxZDUuLjJm
YjNjYmUwOGRiZTMwNjIwZjlkY2UzNTRlYzk4NGFiYTg2ZjA3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC02NjYsNiArNjY2LDEyIEBAIF9fWk43V2ViQ29yZTIzZW5jb2RlSG9zdE5hbWVXaXRo
UmFuZ2VFUDhOU1N0cmluZzhfTlNSYW5nZQogX19aTjdXZWJDb3JlMjNnZXRIb3N0bmFtZXNXaXRo
Q29va2llc0VSTjNXVEY3SGFzaFNldElOUzBfNlN0cmluZ0VOUzBfMTBTdHJpbmdIYXNoRU5TMF8x
MEhhc2hUcmFpdHNJUzJfRUVFRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0
ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5k
bGVCYXNlMTFzZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKK19fWk43V2ViQ29yZTI0
Q29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyMTBmaXJzdENoaWxkRXYKK19fWk43V2ViQ29yZTI0Q29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyMTFuZXh0U2libGluZ0V2CitfX1pON1dlYkNvcmUyNENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjRuZXh0RXYKK19fWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyOHByZXZpb3VzRXYKK19fWk43V2ViQ29yZTI0Q29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOWxhc3RDaGlsZEV2CitfX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckMx
RVBLTlNfNE5vZGVFTlMwXzZQb2xpY3lFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29u
dHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVFTlNfMTREb2N1bWVudE1hcmtlcjExTWFya2Vy
VHlwZXNFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFy
a2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyMjNyZW5kZXJlZFJlY3RzRm9yTWFya2Vyc0VOU18xNERvY3Vt
ZW50TWFya2VyMTBNYXJrZXJUeXBlRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDhhNmY3OTE1OGZjOGM0
NjY4MjYwZjAyYTg3ZjliMzViNWVmZjUyOGUuLmU4MTIzNzg3OTQ0MjJkZjE3MTYzZjdhMWY5ZWQy
MDVlZmMyODY0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU5OCw2ICs1OTgsNyBAQAogICAgICAg
ICAgICAgJ2RvbS9DaGVja2VkUmFkaW9CdXR0b25zLmgnLAogICAgICAgICAgICAgJ2RvbS9DbGlw
Ym9hcmQuaCcsCiAgICAgICAgICAgICAnZG9tL0NsaXBib2FyZEFjY2Vzc1BvbGljeS5oJywKKyAg
ICAgICAgICAgICdkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAg
J2RvbS9Db250YWluZXJOb2RlLmgnLAogICAgICAgICAgICAgJ2RvbS9Db250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlci5oJywKICAgICAgICAgICAgICdkb20vRE9NSW1wbGVtZW50YXRpb24uaCcsCkBA
IC01MTEzLDYgKzUxMTQsOCBAQAogICAgICAgICAgICAgJ2RvbS9DbGlwYm9hcmRFdmVudC5oJywK
ICAgICAgICAgICAgICdkb20vQ29tbWVudC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9Db21tZW50
LmgnLAorICAgICAgICAgICAgJ2RvbS9Db21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwJywKKyAg
ICAgICAgICAgICdkb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgnLAogICAgICAgICAgICAg
J2RvbS9Db21wb3NpdGlvbkV2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0NvbXBvc2l0aW9u
RXZlbnQuaCcsCiAgICAgICAgICAgICAnZG9tL0NvbnRhaW5lck5vZGUuY3BwJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNDQxODU2ZGQwMTJm
NzY1Y2VmZDMxY2U3NTU5N2E5YzJkNWY4MTEzMy4uOWUzYTAyODkxOTIyMGFiYTI0MmIxMGIzODQx
NTdhYTFhMGI0NjA0OCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKQEAgLTQ3OTk0LDYgKzQ3OTk0LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIu
Y3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZp
bGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxDb21wb3NpdGlvbkV2ZW50LmNwcCIKIAkJCQk+
CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzZlNmNmNWFlMmQ5YTQ2OWQ4NTFiYzg0ZmU5
ZWQ2NDgyNDk4NGUyNy4uNmY5NWE1MDY4ZjFkOGE4NzNlZjgxNmM5MDQ0OGM3Y2VhOTA1MDVmZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM3Miw2ICsxMzcyLDggQEAKIAkJNEExRTcxQTYxNEUxMDZBQzAwNjI2RjlEIC8qIEpT
U2hhZG93Um9vdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNEExRTcxQTQxNEUxMDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93Um9vdC5oICovOyB9OwogCQk0
QTM4QkY1MDE0RkUxQzA5MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTM4QkY0RTE0RkUx
QzA5MDA2MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAgKi87IH07CiAJCTRBMzhC
RjUxMTRGRTFDMDkwMDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTM4QkY0RjE0RkUxQzA5MDA2
MTI1MTIgLyogV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5oICovOyB9OworCQk0QTZBMEM1QjE1MjMy
RjI0MDBCMDlDNkUgLyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkEwQzU5MTUyMzJGMjQwMEIwOUM2
RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwICovOyB9OworCQk0QTZBMEM1QzE1MjMy
RjI0MDBCMDlDNkUgLyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QTZBMEM1QTE1MjMyRjI0MDBCMDlDNkUg
LyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggKi87IH07CiAJCTRBNkU5RkMzMTNDMTdEMUQw
MDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRBNkU5RkMxMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVh
dHVyZVZhbHVlLmNwcCAqLzsgfTsKIAkJNEE2RTlGQzQxM0MxN0QxRDAwNDZBN0Y4IC8qIEZvbnRG
ZWF0dXJlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRBNkU5RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNEE2RTlGQzcxM0Mx
N0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8q
IEZvbnRGZWF0dXJlU2V0dGluZ3MuY3BwICovOyB9OwpAQCAtODMxOCw2ICs4MzIwLDggQEAKIAkJ
NEExRTcxQTQxNEUxMDZBQzAwNjI2RjlEIC8qIEpTU2hhZG93Um9vdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1NoYWRvd1Jvb3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNEEzOEJGNEUxNEZFMUMwOTAwNjEyNTEyIC8qIFdlYlNvY2tldERlZmxhdGVGcmFt
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViU29ja2V0RGVm
bGF0ZUZyYW1lci5jcHA7IHBhdGggPSBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0
ZUZyYW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBMzhCRjRGMTRGRTFD
MDkwMDYxMjUxMiAvKiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdlYlNvY2tldERlZmxhdGVGcmFtZXIuaDsgcGF0aCA9IE1vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTRBNkEwQzU5MTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNEE2QTBD
NUExNTIzMkYyNDAwQjA5QzZFIC8qIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEE2RTlGQzExM0MxN0QxRDAwNDZBN0Y4IC8qIEZv
bnRGZWF0dXJlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Rm9udEZlYXR1cmVWYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRBNkU5
RkMyMTNDMTdEMUQwMDQ2QTdGOCAvKiBGb250RmVhdHVyZVZhbHVlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRGZWF0dXJlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNEE2RTlGQzUxM0MxN0Q1NzAwNDZBN0Y4IC8qIEZvbnRGZWF0dXJlU2V0dGlu
Z3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udEZlYXR1cmVT
ZXR0aW5ncy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDg3NCw2ICsyMDg3
OCw4IEBACiAJCQkJNjU1MEI2OTcwOTlERjAyNzAwOTBENzgxIC8qIENvbW1lbnQuY3BwICovLAog
CQkJCTY1NTBCNjk4MDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50LmggKi8sCiAJCQkJODUwODlD
QzcwQTk4QzIyNjAwQTI3NUFBIC8qIENvbW1lbnQuaWRsICovLAorCQkJCTRBNkEwQzU5MTUyMzJG
MjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuY3BwICovLAorCQkJCTRBNkEw
QzVBMTUyMzJGMjQwMEIwOUM2RSAvKiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIuaCAqLywKIAkJ
CQk3OUYyRjU5RTEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5jcHAgKi8sCiAJ
CQkJNzlGMkY1OUYxMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuaCAqLywKIAkJ
CQk3OUYyRjVBMDEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5pZGwgKi8sCkBA
IC0yMTY5NSw2ICsyMTcwMSw3IEBACiAJCQkJQkNERDQ1NEUxMjM2Qzk1QzAwOUE3OTg1IC8qIENv
bHVtbkluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNkEyMDk5REYwMjcwMDkwRDc4MSAv
KiBDb21tZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0MyMzYxMTEwOTdFRTc3MDBFRjlGNzIg
LyogQ29tcGxleFRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk0QTZBMEM1QzE1
MjMyRjI0MDBCMDlDNkUgLyogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTZGRTExNjBFNkUxREE3MDBCRjYwODggLyogQ29tcG9zaXRlQW5pbWF0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOURERDA5OUU2NDkyMDA1NkU1ODEgLyogQ29tcG9zaXRl
RWRpdENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc5RjJGNUEyMTA5MTkzOUEwMDBEODdD
QiAvKiBDb21wb3NpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTc0LDYgKzI1MTgx
LDcgQEAKIAkJCQkzN0MyMzYxMDEwOTdFRTc3MDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTM3QzIzODIxMTA5OEM4NDIwMEVGOUY3MiAvKiBD
b21wbGV4VGV4dENvbnRyb2xsZXJBVFNVSS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0MyMzgy
MjEwOThDODQyMDBFRjlGNzIgLyogQ29tcGxleFRleHRDb250cm9sbGVyQ29yZVRleHQubW0gaW4g
U291cmNlcyAqLywKKwkJCQk0QTZBMEM1QjE1MjMyRjI0MDBCMDlDNkUgLyogQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNkZFMTE1MEU2RTFEQTcwMEJG
NjA4OCAvKiBDb21wb3NpdGVBbmltYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlE
REMwOTlFNjQ5MjAwNTZFNTgxIC8qIENvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTc5RjJGNUExMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmRjYjlmODllMGQyMTFlMDI3ZDY3ZGU0MWViMWJk
NmIxMjBkOWRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlci5jcHAKQEAgLTAsMCArMSwyNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCisKKyNpbmNsdWRlICJF
bGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgorI2luY2x1ZGUgIklu
c2VydGlvblBvaW50LmgiCisjaW5jbHVkZSAiU2hhZG93VHJlZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1NoYWRvd0hvc3QoY29uc3QgTm9kZSogbm9k
ZSkKK3sKKyAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYgdG9FbGVt
ZW50KG5vZGUpLT5oYXNTaGFkb3dSb290KCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgU2hhZG93VHJl
ZSogc2hhZG93VHJlZUZvcihjb25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlICYmIG5v
ZGUtPmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHRvRWxlbWVudChub2RlKS0+c2hh
ZG93VHJlZSgpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIFNoYWRvd1RyZWUq
IHNoYWRvd1RyZWVPZlBhcmVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIGlmIChub2RlICYm
IG5vZGUtPnBhcmVudE5vZGUoKSkKKyAgICAgICAgcmV0dXJuIHNoYWRvd1RyZWVGb3Iobm9kZS0+
cGFyZW50Tm9kZSgpKTsKKyAgICByZXR1cm4gMDsKK30KKworQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyOjpDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIoY29uc3QgTm9kZSogbm9kZSwgUG9saWN5IHBv
bGljeSkKKyAgICA6IG1fbm9kZShub2RlKQorICAgICwgbV9wb2xpY3kocG9saWN5KQoreworICAg
IGFzc2VydFBvc3Rjb25kaXRpb24oKTsKK30KKworQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZnJvbUZpcnN0Q2hpbGQoY29uc3QgTm9kZSogbm9kZSwg
UG9saWN5IHBvbGljeSkKK3sKKyAgICBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIgd2Fsa2VyKG5v
ZGUsIHBvbGljeSk7CisgICAgd2Fsa2VyLmZpcnN0Q2hpbGQoKTsKKyAgICByZXR1cm4gd2Fsa2Vy
OworfQorCit2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6Zmlyc3RDaGlsZCgpCit7Cisg
ICAgYXNzZXJ0UHJlY29uZGl0aW9uKCk7CisgICAgbV9ub2RlID0gdHJhdmVyc2VDaGlsZChtX25v
ZGUsIFRyYXZlcnNhbERpcmVjdGlvbkZvcndhcmQpOworICAgIGFzc2VydFBvc3Rjb25kaXRpb24o
KTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZUZpcnN0Q2hp
bGQoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgcmV0
dXJuIHRyYXZlcnNlQ2hpbGQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7Cit9CisK
K3ZvaWQgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpsYXN0Q2hpbGQoKQoreworICAgIGFzc2Vy
dFByZWNvbmRpdGlvbigpOworICAgIG1fbm9kZSA9IHRyYXZlcnNlTGFzdENoaWxkKG1fbm9kZSk7
CisgICAgYXNzZXJ0UG9zdGNvbmRpdGlvbigpOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRvd1Ry
ZWVXYWxrZXI6OnRyYXZlcnNlTGFzdENoaWxkKGNvbnN0IE5vZGUqIG5vZGUpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKG5vZGUpOworICAgIHJldHVybiB0cmF2ZXJzZUNoaWxkKG5vZGUsIFRyYXZlcnNh
bERpcmVjdGlvbkJhY2t3YXJkKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
Ojp0cmF2ZXJzZUNoaWxkKGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERpcmVjdGlvbiBkaXJl
Y3Rpb24pIGNvbnN0Cit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChjYW5Dcm9zc1VwcGVy
Qm91bmRhcnkoKSkgeworICAgICAgICBTaGFkb3dUcmVlKiBzaGFkb3dUcmVlID0gc2hhZG93VHJl
ZUZvcihub2RlKTsKKyAgICAgICAgcmV0dXJuIChzaGFkb3dUcmVlICYmIHNoYWRvd1RyZWUtPmhh
c1NoYWRvd1Jvb3QoKSkgPyB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oc2hhZG93VHJlZS0+eW91bmdl
c3RTaGFkb3dSb290KCksIGRpcmVjdGlvbikKKyAgICAgICAgICAgIDogdHJhdmVyc2VMaWdodENo
aWxkcmVuKG5vZGUsIGRpcmVjdGlvbik7CisgICAgfQorICAgIGlmIChpc1NoYWRvd0hvc3Qobm9k
ZSkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4o
bm9kZSwgZGlyZWN0aW9uKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0
cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oY29uc3QgTm9kZSogbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9u
IGRpcmVjdGlvbikKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgaWYgKE5vZGUqIGNoaWxkID0g
KGRpcmVjdGlvbiA9PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gbm9kZS0+Zmlyc3RDaGls
ZCgpIDogbm9kZS0+bGFzdENoaWxkKCkpKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VOb2RlKGNo
aWxkLCBkaXJlY3Rpb24pOworICAgIHJldHVybiAwOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZShjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJl
Y3Rpb24gZGlyZWN0aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoaXNJbnNlcnRp
b25Qb2ludChub2RlKSkgeworICAgICAgICBjb25zdCBIVE1MQ29udGVudFNlbGVjdGlvbkxpc3Qq
IHNlbGVjdGlvbkxpc3QgPSB0b0luc2VydGlvblBvaW50KG5vZGUpLT5zZWxlY3Rpb25zKCk7Cisg
ICAgICAgIGlmIChIVE1MQ29udGVudFNlbGVjdGlvbiogc2VsZWN0aW9uID0gKGRpcmVjdGlvbiA9
PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gc2VsZWN0aW9uTGlzdC0+Zmlyc3QoKSA6IHNl
bGVjdGlvbkxpc3QtPmxhc3QoKSkpCisgICAgICAgICAgICByZXR1cm4gdHJhdmVyc2VOb2RlKHNl
bGVjdGlvbi0+bm9kZSgpLCBkaXJlY3Rpb24pOworICAgICAgICByZXR1cm4gdHJhdmVyc2VMaWdo
dENoaWxkcmVuKG5vZGUsIGRpcmVjdGlvbik7CisgICAgfQorICAgIHJldHVybiBjb25zdF9jYXN0
PE5vZGUqPihub2RlKTsKK30KKwordm9pZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6Om5leHRT
aWJsaW5nKCkKK3sKKyAgICBhc3NlcnRQcmVjb25kaXRpb24oKTsKKyAgICBtX25vZGUgPSB0cmF2
ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KG1fbm9kZSwgVHJhdmVyc2FsRGlyZWN0
aW9uRm9yd2FyZCk7CisgICAgYXNzZXJ0UG9zdGNvbmRpdGlvbigpOworfQorCit2b2lkIENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjo6cHJldmlvdXNTaWJsaW5nKCkKK3sKKyAgICBhc3NlcnRQcmVj
b25kaXRpb24oKTsKKyAgICBtX25vZGUgPSB0cmF2ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlv
blBvaW50KG1fbm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uQmFja3dhcmQpOworICAgIGFzc2VydFBv
c3Rjb25kaXRpb24oKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2
ZXJzZVNpYmxpbmdPckJhY2tUb0luc2VydGlvblBvaW50KGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZl
cnNhbERpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIFNoYWRv
d1RyZWUqIHNoYWRvd1RyZWUgPSBzaGFkb3dUcmVlT2ZQYXJlbnQobm9kZSk7CisgICAgaWYgKCFz
aGFkb3dUcmVlKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nSW5DdXJyZW50VHJlZShu
b2RlLCBkaXJlY3Rpb24pOworICAgIEhUTUxDb250ZW50U2VsZWN0aW9uKiBzZWxlY3Rpb24gPSBz
aGFkb3dUcmVlLT5zZWxlY3Rpb25Gb3Iobm9kZSk7CisgICAgaWYgKCFzZWxlY3Rpb24pCisgICAg
ICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdJbkN1cnJlbnRUcmVlKG5vZGUsIGRpcmVjdGlvbik7
CisgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0aW9uKiBuZXh0U2VsZWN0aW9uID0gKGRpcmVjdGlv
biA9PSBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3YXJkID8gc2VsZWN0aW9uLT5uZXh0KCkgOiBzZWxl
Y3Rpb24tPnByZXZpb3VzKCkpKQorICAgICAgICByZXR1cm4gdHJhdmVyc2VOb2RlKG5leHRTZWxl
Y3Rpb24tPm5vZGUoKSwgZGlyZWN0aW9uKTsKKyAgICByZXR1cm4gdHJhdmVyc2VTaWJsaW5nT3JC
YWNrVG9JbnNlcnRpb25Qb2ludChzZWxlY3Rpb24tPmluc2VydGlvblBvaW50KCksIGRpcmVjdGlv
bik7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VTaWJsaW5n
SW5DdXJyZW50VHJlZShjb25zdCBOb2RlKiBub2RlLCBUcmF2ZXJzYWxEaXJlY3Rpb24gZGlyZWN0
aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAoTm9kZSogbmV4dCA9IChkaXJlY3Rp
b24gPT0gVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCA/IG5vZGUtPm5leHRTaWJsaW5nKCkgOiBu
b2RlLT5wcmV2aW91c1NpYmxpbmcoKSkpCisgICAgICAgIHJldHVybiB0cmF2ZXJzZU5vZGUobmV4
dCwgZGlyZWN0aW9uKTsKKyAgICBpZiAoTm9kZSogbmV4dCA9IHRyYXZlcnNlU2libGluZ09yQmFj
a1RvWW91bmdlclNoYWRvd1Jvb3Qobm9kZSwgZGlyZWN0aW9uKSkKKyAgICAgICAgcmV0dXJuIG5l
eHQ7CisgICAgcmV0dXJuIGVzY2FwZUZhbGxiYWNrQ29udGVudEVsZW1lbnQobm9kZSwgZGlyZWN0
aW9uKTsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVNpYmxp
bmdPckJhY2tUb1lvdW5nZXJTaGFkb3dSb290KGNvbnN0IE5vZGUqIG5vZGUsIFRyYXZlcnNhbERp
cmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgQVNTRVJUKG5vZGUpOworICAgIGlmIChub2RlLT5w
YXJlbnROb2RlKCkgJiYgbm9kZS0+cGFyZW50Tm9kZSgpLT5pc1NoYWRvd1Jvb3QoKSkgeworICAg
ICAgICBTaGFkb3dSb290KiBwYXJlbnRTaGFkb3dSb290ID0gdG9TaGFkb3dSb290KG5vZGUtPnBh
cmVudE5vZGUoKSk7CisgICAgICAgIGlmICghcGFyZW50U2hhZG93Um9vdC0+aXNZb3VuZ2VzdCgp
KSB7CisgICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogYXNzaWduZWRJbnNlcnRpb25Qb2ludCA9
IHBhcmVudFNoYWRvd1Jvb3QtPmFzc2lnbmVkVG8oKTsKKyAgICAgICAgICAgIEFTU0VSVChhc3Np
Z25lZEluc2VydGlvblBvaW50KTsKKyAgICAgICAgICAgIHJldHVybiB0cmF2ZXJzZVNpYmxpbmdJ
bkN1cnJlbnRUcmVlKGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQsIGRpcmVjdGlvbik7CisgICAgICAg
IH0KKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjo6ZXNjYXBlRmFsbGJhY2tDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiBub2RlLCBUcmF2
ZXJzYWxEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEFTU0VSVChub2RlKTsKKyAgICBpZiAo
bm9kZS0+cGFyZW50Tm9kZSgpICYmIGlzSW5zZXJ0aW9uUG9pbnQobm9kZS0+cGFyZW50Tm9kZSgp
KSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQo
bm9kZS0+cGFyZW50Tm9kZSgpLCBkaXJlY3Rpb24pOworICAgIHJldHVybiAwOworfQorCitOb2Rl
KiBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlTm9kZUVzY2FwaW5nRmFsbGJhY2tD
b250ZW50cyhjb25zdCBOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVChub2RlKTsKKyAg
ICBpZiAoaXNJbnNlcnRpb25Qb2ludChub2RlKSkKKyAgICAgICAgcmV0dXJuIHRyYXZlcnNlUGFy
ZW50KG5vZGUpOworICAgIHJldHVybiBjb25zdF9jYXN0PE5vZGUqPihub2RlKTsKK30KKwordm9p
ZCBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXI6OnBhcmVudCgpCit7CisgICAgYXNzZXJ0UHJlY29u
ZGl0aW9uKCk7CisgICAgbV9ub2RlID0gdHJhdmVyc2VQYXJlbnQobV9ub2RlKTsKKyAgICBhc3Nl
cnRQb3N0Y29uZGl0aW9uKCk7Cit9CisKK05vZGUqIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6
dHJhdmVyc2VQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICBpZiAoIWNhbkNy
b3NzVXBwZXJCb3VuZGFyeSgpICYmIG5vZGUtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgIEFT
U0VSVCh0b1NoYWRvd1Jvb3Qobm9kZSktPmlzWW91bmdlc3QoKSk7CisgICAgICAgIHJldHVybiAw
OworICAgIH0KKyAgICBpZiAoU2hhZG93VHJlZSogc2hhZG93VHJlZSA9IHNoYWRvd1RyZWVPZlBh
cmVudChub2RlKSkgeworICAgICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rpb24qIHNlbGVjdGlv
biA9IHNoYWRvd1RyZWUtPnNlbGVjdGlvbkZvcihub2RlKSkKKyAgICAgICAgICAgIHJldHVybiB0
cmF2ZXJzZVBhcmVudChzZWxlY3Rpb24tPmluc2VydGlvblBvaW50KCkpOworICAgIH0KKyAgICBy
ZXR1cm4gdHJhdmVyc2VQYXJlbnRJbkN1cnJlbnRUcmVlKG5vZGUpOworfQorCitOb2RlKiBDb21w
b3NlZFNoYWRvd1RyZWVXYWxrZXI6OnRyYXZlcnNlUGFyZW50SW5DdXJyZW50VHJlZShjb25zdCBO
b2RlKiBub2RlKSBjb25zdAoreworICAgIGlmIChOb2RlKiBwYXJlbnQgPSBub2RlLT5wYXJlbnRO
b2RlKCkpCisgICAgICAgIHJldHVybiBwYXJlbnQtPmlzU2hhZG93Um9vdCgpID8gdHJhdmVyc2VQ
YXJlbnRCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdE9ySG9zdCh0b1NoYWRvd1Jvb3QocGFyZW50KSkg
OiB0cmF2ZXJzZU5vZGVFc2NhcGluZ0ZhbGxiYWNrQ29udGVudHMocGFyZW50KTsKKyAgICByZXR1
cm4gMDsKK30KKworTm9kZSogQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjp0cmF2ZXJzZVBhcmVu
dEJhY2tUb1lvdW5nZXJTaGFkb3dSb290T3JIb3N0KGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1Jv
b3QpIGNvbnN0Cit7CisgICAgQVNTRVJUKHNoYWRvd1Jvb3QpOworICAgIGlmIChzaGFkb3dSb290
LT5pc1lvdW5nZXN0KCkpIHsKKyAgICAgICAgaWYgKGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHNoYWRvd1Jvb3QtPmhvc3QoKTsKKyAgICAgICAgcmV0dXJuIGNv
bnN0X2Nhc3Q8U2hhZG93Um9vdCo+KHNoYWRvd1Jvb3QpOworICAgIH0KKyAgICBJbnNlcnRpb25Q
b2ludCogYXNzaWduZWRJbnNlcnRpb25Qb2ludCA9IHNoYWRvd1Jvb3QtPmFzc2lnbmVkVG8oKTsK
KyAgICBBU1NFUlQoYXNzaWduZWRJbnNlcnRpb25Qb2ludCk7CisgICAgcmV0dXJuIHRyYXZlcnNl
UGFyZW50KGFzc2lnbmVkSW5zZXJ0aW9uUG9pbnQpOworfQorCitOb2RlKiBDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXI6OnRyYXZlcnNlTmV4dFNpYmxpbmcoY29uc3QgTm9kZSogbm9kZSkKK3sKKyAg
ICBBU1NFUlQobm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0
aW9uUG9pbnQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uRm9yd2FyZCk7Cit9CisKK05vZGUqIENv
bXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6dHJhdmVyc2VQcmV2aW91c1NpYmxpbmcoY29uc3QgTm9k
ZSogbm9kZSkKK3sKKyAgICBBU1NFUlQobm9kZSk7CisgICAgcmV0dXJuIHRyYXZlcnNlU2libGlu
Z09yQmFja1RvSW5zZXJ0aW9uUG9pbnQobm9kZSwgVHJhdmVyc2FsRGlyZWN0aW9uQmFja3dhcmQp
OworfQorCit2b2lkIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6bmV4dCgpCit7CisgICAgYXNz
ZXJ0UHJlY29uZGl0aW9uKCk7CisgICAgaWYgKE5vZGUqIG5leHQgPSB0cmF2ZXJzZUZpcnN0Q2hp
bGQobV9ub2RlKSkKKyAgICAgICAgbV9ub2RlID0gbmV4dDsKKyAgICBlbHNlIGlmIChOb2RlKiBu
ZXh0ID0gdHJhdmVyc2VOZXh0U2libGluZyhtX25vZGUpKQorICAgICAgICBtX25vZGUgPSBuZXh0
OworICAgIGVsc2UgeworICAgICAgICBjb25zdCBOb2RlKiBuID0gbV9ub2RlOworICAgICAgICB3
aGlsZSAobiAmJiAhdHJhdmVyc2VOZXh0U2libGluZyhuKSkKKyAgICAgICAgICAgIG4gPSB0cmF2
ZXJzZVBhcmVudChuKTsKKyAgICAgICAgbV9ub2RlID0gbiA/IHRyYXZlcnNlTmV4dFNpYmxpbmco
bikgOiAwOworICAgIH0KKyAgICBhc3NlcnRQb3N0Y29uZGl0aW9uKCk7Cit9CisKK3ZvaWQgQ29t
cG9zZWRTaGFkb3dUcmVlV2Fsa2VyOjpwcmV2aW91cygpCit7CisgICAgYXNzZXJ0UHJlY29uZGl0
aW9uKCk7CisgICAgaWYgKE5vZGUqIG4gPSB0cmF2ZXJzZVByZXZpb3VzU2libGluZyhtX25vZGUp
KSB7CisgICAgICAgIHdoaWxlIChOb2RlKiBjaGlsZCA9IHRyYXZlcnNlTGFzdENoaWxkKG4pKQor
ICAgICAgICAgICAgbiA9IGNoaWxkOworICAgICAgICBtX25vZGUgPSBuOworICAgIH0gZWxzZQor
ICAgICAgICBwYXJlbnQoKTsKKyAgICBhc3NlcnRQb3N0Y29uZGl0aW9uKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dU
cmVlV2Fsa2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2Vy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTc2NmMxYTM2NTAxOTAwODhiOTRkYTJhNDQwYzIwNjI2ZDBkNGE5Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db21wb3NlZFNoYWRvd1RyZWVX
YWxrZXIuaApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyX2gKKyNkZWZpbmUgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyX2gKKworI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBOb2RlOworY2xhc3Mg
U2hhZG93Um9vdDsKKworLy8gRklYTUU6IE1ha2Ugc29tZSBmdW5jdGlvbnMgaW5saW5lIHRvIG9w
dGltaXNlIHRoZSBwZXJmb3JtYW5jZS4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjcwMgorY2xhc3MgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHsKK3B1Ymxp
YzoKKyAgICBlbnVtIFBvbGljeSB7CisgICAgICAgIENyb3NzVXBwZXJCb3VuZGFyeSwKKyAgICAg
ICAgRG9Ob3RDcm9zc1VwcGVyQm91bmRhcnksCisgICAgfTsKKworICAgIENvbXBvc2VkU2hhZG93
VHJlZVdhbGtlcihjb25zdCBOb2RlKiwgUG9saWN5ID0gQ3Jvc3NVcHBlckJvdW5kYXJ5KTsKKwor
ICAgIC8vIEZvciBhIGNvbW1vbiB1c2UgY2FzZSBzdWNoIGFzOgorICAgIC8vIGZvciAoQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlciA9IENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjo6ZnJv
bUZpcnN0Q2hpbGQobm9kZSk7IHdhbGtlci5nZXQoKTsgd2Fsa2VyLm5leHRTaWJsaW5nKCkpCisg
ICAgc3RhdGljIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBmcm9tRmlyc3RDaGlsZChjb25zdCBO
b2RlKiwgUG9saWN5ID0gQ3Jvc3NVcHBlckJvdW5kYXJ5KTsKKworICAgIE5vZGUqIGdldCgpIGNv
bnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Tm9kZSo+KG1fbm9kZSk7IH0KKworICAgIHZvaWQgZmly
c3RDaGlsZCgpOworICAgIHZvaWQgbGFzdENoaWxkKCk7CisKKyAgICB2b2lkIG5leHRTaWJsaW5n
KCk7CisgICAgdm9pZCBwcmV2aW91c1NpYmxpbmcoKTsKKworICAgIHZvaWQgcGFyZW50KCk7CisK
KyAgICB2b2lkIG5leHQoKTsKKyAgICB2b2lkIHByZXZpb3VzKCk7CisKK3ByaXZhdGU6CisgICAg
ZW51bSBUcmF2ZXJzYWxEaXJlY3Rpb24geworICAgICAgICBUcmF2ZXJzYWxEaXJlY3Rpb25Gb3J3
YXJkLAorICAgICAgICBUcmF2ZXJzYWxEaXJlY3Rpb25CYWNrd2FyZAorICAgIH07CisKKyAgICBi
b29sIGNhbkNyb3NzVXBwZXJCb3VuZGFyeSgpIGNvbnN0IHsgcmV0dXJuIG1fcG9saWN5ID09IENy
b3NzVXBwZXJCb3VuZGFyeTsgfQorCisgICAgdm9pZCBhc3NlcnRQcmVjb25kaXRpb24oKSBjb25z
dAorICAgIHsKKyNpZm5kZWYgTkRFQlVHCisgICAgICAgIEFTU0VSVChtX25vZGUpOworICAgICAg
ICBpZiAoY2FuQ3Jvc3NVcHBlckJvdW5kYXJ5KCkpCisgICAgICAgICAgICBBU1NFUlQoIW1fbm9k
ZS0+aXNTaGFkb3dSb290KCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBBU1NFUlQoIW1f
bm9kZS0+aXNTaGFkb3dSb290KCkgfHwgdG9TaGFkb3dSb290KG1fbm9kZSktPmlzWW91bmdlc3Qo
KSk7CisgICAgICAgIC8vIEZJWE1FOiBBZGQgYW4gYXNzZXJ0aW9uIG9uY2UgSW5zZXJ0aW9uUG9p
bnQgaGF2ZSBpc0FjdGl2ZSgpIGZ1bmN0aW9uLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMTAKKyAgICAgICAgLy8gQVNTRVJUKCFpc0luc2Vy
dGlvblBvaW50KG1fbm9kZSkgfHwgIXRvSW5zZXJ0aW9uUG9pbnQobm9kZSktPmlzQWN0aXZlKCkp
OworI2VuZGlmCisgICAgfQorCisgICAgdm9pZCBhc3NlcnRQb3N0Y29uZGl0aW9uKCkgY29uc3QK
KyAgICB7CisjaWZuZGVmIE5ERUJVRworICAgICAgICBpZiAobV9ub2RlKQorICAgICAgICAgICAg
YXNzZXJ0UHJlY29uZGl0aW9uKCk7CisjZW5kaWYKKyAgICB9CisKKyAgICBzdGF0aWMgTm9kZSog
dHJhdmVyc2VOb2RlKGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pOworICAgIHN0YXRp
YyBOb2RlKiB0cmF2ZXJzZUxpZ2h0Q2hpbGRyZW4oY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVj
dGlvbik7CisKKyAgICBOb2RlKiB0cmF2ZXJzZUZpcnN0Q2hpbGQoY29uc3QgTm9kZSopIGNvbnN0
OworICAgIE5vZGUqIHRyYXZlcnNlTGFzdENoaWxkKGNvbnN0IE5vZGUqKSBjb25zdDsKKyAgICBO
b2RlKiB0cmF2ZXJzZUNoaWxkKGNvbnN0IE5vZGUqLCBUcmF2ZXJzYWxEaXJlY3Rpb24pIGNvbnN0
OworICAgIE5vZGUqIHRyYXZlcnNlUGFyZW50KGNvbnN0IE5vZGUqKSBjb25zdDsKKworICAgIHN0
YXRpYyBOb2RlKiB0cmF2ZXJzZU5leHRTaWJsaW5nKGNvbnN0IE5vZGUqKTsKKyAgICBzdGF0aWMg
Tm9kZSogdHJhdmVyc2VQcmV2aW91c1NpYmxpbmcoY29uc3QgTm9kZSopOworCisgICAgc3RhdGlj
IE5vZGUqIHRyYXZlcnNlU2libGluZ09yQmFja1RvSW5zZXJ0aW9uUG9pbnQoY29uc3QgTm9kZSos
IFRyYXZlcnNhbERpcmVjdGlvbik7CisgICAgc3RhdGljIE5vZGUqIHRyYXZlcnNlU2libGluZ0lu
Q3VycmVudFRyZWUoY29uc3QgTm9kZSosIFRyYXZlcnNhbERpcmVjdGlvbik7CisKKyAgICBzdGF0
aWMgTm9kZSogdHJhdmVyc2VTaWJsaW5nT3JCYWNrVG9Zb3VuZ2VyU2hhZG93Um9vdChjb25zdCBO
b2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKKyAgICBzdGF0aWMgTm9kZSogZXNjYXBlRmFsbGJh
Y2tDb250ZW50RWxlbWVudChjb25zdCBOb2RlKiwgVHJhdmVyc2FsRGlyZWN0aW9uKTsKKworICAg
IE5vZGUqIHRyYXZlcnNlTm9kZUVzY2FwaW5nRmFsbGJhY2tDb250ZW50cyhjb25zdCBOb2RlKikg
Y29uc3Q7CisgICAgTm9kZSogdHJhdmVyc2VQYXJlbnRJbkN1cnJlbnRUcmVlKGNvbnN0IE5vZGUq
KSBjb25zdDsKKyAgICBOb2RlKiB0cmF2ZXJzZVBhcmVudEJhY2tUb1lvdW5nZXJTaGFkb3dSb290
T3JIb3N0KGNvbnN0IFNoYWRvd1Jvb3QqKSBjb25zdDsKKworICAgIGNvbnN0IE5vZGUqIG1fbm9k
ZTsKKyAgICBQb2xpY3kgbV9wb2xpY3k7Cit9OworCit9IC8vIG5hbWVzcGFjZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAxMDhhMzk2NTk3NDIxZTZhMzE4
MWM1MjY4MTFjYTYzOTBhMmQxMTU5Li43YjIxYjU0Mzg5MjkwMDQwMjA4M2QxYTZkODkxZTVmNjM5
MjFhOTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDbGllbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIKKyNpbmNsdWRlICJDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXIuaCIKICNpbmNsdWRlICJET01Ob2RlSGlnaGxpZ2h0ZXIuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCkBAIC0xODcsNiAr
MTg4LDYxIEBAIGJvb2wgSW50ZXJuYWxzOjphdHRhY2hlZChOb2RlKiBub2RlLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICByZXR1cm4gbm9kZS0+YXR0YWNoZWQoKTsKIH0KIAorTm9kZSogSW50ZXJu
YWxzOjpuZXh0U2libGluZ0J5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAg
ICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciB3YWxr
ZXIobm9kZSk7CisgICAgd2Fsa2VyLm5leHRTaWJsaW5nKCk7CisgICAgcmV0dXJuIHdhbGtlci5n
ZXQoKTsKK30KKworTm9kZSogSW50ZXJuYWxzOjpmaXJzdENoaWxkQnlXYWxrZXIoTm9kZSogbm9k
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFub2RlKSB7CisgICAgICAgIGVjID0g
SU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAgICB3YWxrZXIuZmlyc3RDaGlsZCgp
OworICAgIHJldHVybiB3YWxrZXIuZ2V0KCk7Cit9CisKK05vZGUqIEludGVybmFsczo6bGFzdENo
aWxkQnlXYWxrZXIoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFu
b2RlKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisgICAgQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyIHdhbGtlcihub2RlKTsKKyAg
ICB3YWxrZXIubGFzdENoaWxkKCk7CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30KKworTm9k
ZSogSW50ZXJuYWxzOjpuZXh0Tm9kZUJ5V2Fsa2VyKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIENvbXBvc2VkU2hhZG93VHJlZVdhbGtl
ciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2VyLm5leHQoKTsKKyAgICByZXR1cm4gd2Fsa2VyLmdl
dCgpOworfQorCitOb2RlKiBJbnRlcm5hbHM6OnByZXZpb3VzTm9kZUJ5V2Fsa2VyKE5vZGUqIG5v
ZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghbm9kZSkgeworICAgICAgICBlYyA9
IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlciB3YWxrZXIobm9kZSk7CisgICAgd2Fsa2VyLnByZXZpb3VzKCk7
CisgICAgcmV0dXJuIHdhbGtlci5nZXQoKTsKK30KKwogTm9kZSogSW50ZXJuYWxzOjpuZXh0U2li
bGluZ0luUmVpZmllZFRyZWUoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
aWYgKCFub2RlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA4N2I4NzYxYmI0
MzQ2ZjlhMDU4YjAzNmQxNGUzM2MyNjgzYzQ5NWQxLi4zMzBkNWMwOGMwNTBjMWUyY2NiYmRkNTkx
ZDU3ZDkxMzc5NWJlN2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTg0LDYg
Kzg0LDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgYXR0YWNoZWQoTm9kZSosIEV4Y2VwdGlvbkNv
ZGUmKTsKIAorICAgIC8vIEZJWE1FOiBSZW5hbWUgdGhlc2UgZnVuY3Rpb25zIGlmIHdhbGtlciBp
cyBwcmVmZXJlZC4KKyAgICBOb2RlKiBuZXh0U2libGluZ0J5V2Fsa2VyKE5vZGUqLCBFeGNlcHRp
b25Db2RlJik7CisgICAgTm9kZSogZmlyc3RDaGlsZEJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25D
b2RlJik7CisgICAgTm9kZSogbGFzdENoaWxkQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBOb2RlKiBuZXh0Tm9kZUJ5V2Fsa2VyKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgTm9kZSogcHJldmlvdXNOb2RlQnlXYWxrZXIoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKKwog
ICAgIE5vZGUqIG5leHRTaWJsaW5nSW5SZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIE5vZGUqIGZpcnN0Q2hpbGRJblJlaWZpZWRUcmVlKE5vZGUqLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgTm9kZSogbGFzdENoaWxkSW5SZWlmaWVkVHJlZShOb2RlKiwgRXhjZXB0aW9uQ29k
ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDg4MjJlMjVhMjYxYTFk
MjM3YTg2OTZjNTYwZDE3OWIyMmE0Mjc4YTYuLmRkNTRmYTJkZTZlZjBlMWZlZDI2NzNiM2Q4YTdh
MjI4ZmM1OGI2YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTU1LDYg
KzU1LDEyIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlk
SW5TaGFkb3dSb290KGluIE5vZGUgc2hhZG93Um9vdCwgaW4gRE9NU3RyaW5nIGlkKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgYm9vbGVhbiBpc1ZhbGlkQ29udGVudFNlbGVjdChpbiBF
bGVtZW50IGNvbnRlbnRFbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICBO
b2RlIG5leHRTaWJsaW5nQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgTm9kZSBmaXJzdENoaWxkQnlXYWxrZXIoaW4gTm9kZSBub2RlKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBsYXN0Q2hpbGRCeVdhbGtlcihpbiBOb2RlIG5v
ZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBOb2RlIG5leHROb2RlQnlXYWxrZXIo
aW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgTm9kZSBwcmV2aW91
c05vZGVCeVdhbGtlcihpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworCiAgICAg
ICAgIE5vZGUgbmV4dFNpYmxpbmdJblJlaWZpZWRUcmVlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIE5vZGUgZmlyc3RDaGlsZEluUmVpZmllZFRyZWUoaW4gTm9k
ZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgTm9kZSBsYXN0Q2hpbGRJblJl
aWZpZWRUcmVlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC0xMjcsNyAr
MTMzLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9CQVRURVJZX1NU
QVRVUykgJiYgRU5BQkxFX0JBVFRFUllfU1RBVFVTCiAgICAgICAgIHZvaWQgc2V0QmF0dGVyeVN0
YXR1cyhpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gRE9NU3RyaW5nIGV2ZW50VHlwZSwgaW4gYm9v
bGVhbiBjaGFyZ2luZywgaW4gZG91YmxlIGNoYXJnaW5nVGltZSwgaW4gZG91YmxlIGRpc2NoYXJn
aW5nVGltZSwgaW4gZG91YmxlIGxldmVsKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0jZW5kaWYg
CisjZW5kaWYKIAogI2lmIGRlZmluZWQoRU5BQkxFX05FVFdPUktfSU5GTykgJiYgRU5BQkxFX05F
VFdPUktfSU5GTwogICAgICAgICB2b2lkIHNldE5ldHdvcmtJbmZvcm1hdGlvbihpbiBEb2N1bWVu
dCBkb2N1bWVudCwgaW4gRE9NU3RyaW5nIGV2ZW50VHlwZSwgaW4gbG9uZyBiYW5kd2lkdGgsIGlu
IGJvb2xlYW4gbWV0ZXJlZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCmluZGV4IGFkYTg4Mzc5YmQ5NTBhYTU5OWQwYTRkMTA5NGYyZmQwMzQ5MGMzZDQuLmYwYjc2
Y2ExZTNhZTM0NmFjZDY1ZTMxNjZmYjRmZmQxZmU2ZWU4MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5k
ZWYKQEAgLTE4Myw2ICsxODMsMTIgQEAgRVhQT1JUUwogICAgICAgICA/bGFzdENoYW5nZVdhc1Vz
ZXJFZGl0QEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKICAgICAg
ICAgP2xhc3RDaGlsZEBSZWlmaWVkVHJlZVRyYXZlcnNhbEBXZWJDb3JlQEBTQVBBVk5vZGVAMkBQ
QlYzMkBAWgogICAgICAgICA/bWFya2Vyc0ZvckBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJAV2Vi
Q29yZUBAUUFFP0FWPyRWZWN0b3JAUEFWRG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZA
QFBBVk5vZGVAMkBWTWFya2VyVHlwZXNARG9jdW1lbnRNYXJrZXJAMkBAWgorICAgICAgICA/bmV4
dFNpYmxpbmdAQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAg
ICA/PzBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJAV2ViQ29yZUBAUUFFQFBCVk5vZGVAMUBXNFBv
bGljeUAwMUBAWgorICAgICAgICA/Zmlyc3RDaGlsZEBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJA
V2ViQ29yZUBAUUFFWFhaCisgICAgICAgID9sYXN0Q2hpbGRAQ29tcG9zZWRTaGFkb3dUcmVlV2Fs
a2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/bmV4dEBDb21wb3NlZFNoYWRvd1RyZWVXYWxr
ZXJAV2ViQ29yZUBAUUFFWFhaCisgICAgICAgID9wcmV2aW91c0BDb21wb3NlZFNoYWRvd1RyZWVX
YWxrZXJAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9uZXh0U2libGluZ0BSZWlmaWVkVHJlZVRy
YXZlcnNhbEBXZWJDb3JlQEBTQVBBVk5vZGVAMkBQQlYzMkBAWgogICAgICAgICA/bnVtYmVyQFN0
cmluZ0BXVEZAQFNBP0FWMTJASUBaCiAgICAgICAgID9udW1iZXJAU3RyaW5nQFdURkBAU0E/QVYx
MkBIQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBi
L1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA5ZWUyZWUxNzE4ZmYw
YTU2Y2Y5ZjFiNTY5MGMzZDI3ZmQ1ZGUzNGFhLi5kZDZiMmNjOTdkMzk0NWZlNDc1ZTk1MTcxMThi
OGY2YWYyYTg2ODFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0
ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xODAs
NiArMTgwLDEyIEBAIEVYUE9SVFMKICAgICAgICAgP251bWJlckBTdHJpbmdAV1RGQEBTQT9BVjEy
QEhAWgogICAgICAgICA/b2JzZXJ2ZUZyYW1lQEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlckBXZWJD
b3JlQEBJQUVYUEFWRnJhbWVAMkBAWgogICAgICAgICA/b3ZlcnJpZGVVc2VyUHJlZmVycmVkTGFu
Z3VhZ2VzQFdlYkNvcmVAQFlBWEFCVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdURkBAQFoK
KyAgICAgICAgP25leHRTaWJsaW5nQENvbXBvc2VkU2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBR
QUVYWFoKKyAgICAgICAgPz8wQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRUBQ
QlZOb2RlQDFAVzRQb2xpY3lAMDFAQFoKKyAgICAgICAgP2ZpcnN0Q2hpbGRAQ29tcG9zZWRTaGFk
b3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/bGFzdENoaWxkQENvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlckBXZWJDb3JlQEBRQUVYWFoKKyAgICAgICAgP25leHRAQ29tcG9zZWRT
aGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/cHJldmlvdXNAQ29tcG9z
ZWRTaGFkb3dUcmVlV2Fsa2VyQFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/bmV4dFNpYmxpbmdA
UmVpZmllZFRyZWVUcmF2ZXJzYWxAV2ViQ29yZUBAU0FQQVZOb2RlQDJAUEJWMzJAQFoKICAgICAg
ICAgP251bWJlck9mU2NvcGVkSFRNTFN0eWxlQ2hpbGRyZW5ATm9kZUBXZWJDb3JlQEBRQkVJWFoK
ICAgICAgICAgP3BhZ2VARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWUGFnZUAyQFhaCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlcgppbmRleCA1MzIwZThiMzRkMDAzYTYxMGMzYjlmMDdmOGU0MTU3ZTZjMDg4
ZTc1Li5kZjk0MzA5NTJiZTBjNWJkZjQ3Y2M1MDkzODE3YWE1YWQ5NDQyNmE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMv
c3ltYm9scy5maWx0ZXIKQEAgLTcyLDYgKzcyLDEyIEBAIF9aTjdXZWJDb3JlMjBSZWlmaWVkVHJl
ZVRyYXZlcnNhbDEwZmlyc3RDaGlsZEVQS05TXzROb2RlRTsKIF9aTjdXZWJDb3JlMjFnZXRDYWNo
ZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtOM0pTQzlDbGFzc0luZm9F
OwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVtZW50RWo7CiBf
Wk43V2ViQ29yZTIydXNlclByZWZlcnJlZExhbmd1YWdlc0V2OworX1pON1dlYkNvcmUyNENvbXBv
c2VkU2hhZG93VHJlZVdhbGtlcjEwZmlyc3RDaGlsZEV2OworX1pON1dlYkNvcmUyNENvbXBvc2Vk
U2hhZG93VHJlZVdhbGtlcjExbmV4dFNpYmxpbmdFdjsKK19aTjdXZWJDb3JlMjRDb21wb3NlZFNo
YWRvd1RyZWVXYWxrZXI0bmV4dEV2OworX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJlZVdh
bGtlcjhwcmV2aW91c0V2OworX1pON1dlYkNvcmUyNENvbXBvc2VkU2hhZG93VHJlZVdhbGtlcjls
YXN0Q2hpbGRFdjsKK19aTjdXZWJDb3JlMjRDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXJDMUVQS05T
XzROb2RlRU5TMF82UG9saWN5RTsKIF9aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIxMG1hcmtlcnNGb3JFUE5TXzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVz
RTsKIF9aTjdXZWJDb3JlMzBvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXNFUktOM1dURjZW
ZWN0b3JJTlMwXzZTdHJpbmdFTGowRUVFOwogX1pON1dlYkNvcmUzMG92ZXJyaWRlVXNlclByZWZl
cnJlZExhbmd1YWdlc0VSS04zV1RGNlZlY3RvcklOUzBfNlN0cmluZ0VMbTBFRUU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
YWJhMzc1YzIzNjlkYzJlZWU1YzhlNmU5MzQwZGM3OThkNmY5Njk5Yi4uNWViYTlhYTlmNDNhNjQ0
OTRhYzk5ZTlmYzFhMjcyMDg1ZDIwMWE2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAz
LTI2ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93
IERPTV0gSW50cm9kdWNlIENvbXBvc2VkU2hhZG93VHJlZVdhbGtlciBhcyBhIHN1Y2Nlc3NvciBv
ZiBSZWlmaWVkVHJlZVRyYXZlcnNhbCBBUElzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MjAwOQorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJl
ZS13YWxrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
Y29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA0LTAyICBQ
aGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByZWJhc2VsaW5lIGFmdGVyIHIxMTI4MjUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvY29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb21wb3NlZC1zaGFkb3ctdHJlZS13YWxrZXIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhODNlYWU2OTY0YWQ1YTg5MTAyOWRlYTQ0MzFlNzVm
MWI3ODU3OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29tcG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1NiBA
QAorVGVzdHMgZm9yIENvbXBvc2VkIFNoYWRvdyBET00gVHJlZSBUcmF2ZXJzYWwgQVBJcy4gQ2Fu
IG9ubHkgcnVuIHdpdGhpbiBEUlQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1No
YWRvd1Jvb3Qgc2hvdWxkIGJlIHVzZWQuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJVgkgaWQ9
YQorCURJVgkgaWQ9YgorCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlk
PWIKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgorRElWCSBpZD1iCitESVYJIGlkPWEKKworQSBjb250
ZW50IGVsZW1lbnQgc2hvdWxkIHNlbGVjdCBsaWdodCBjaGlsZHJlbgorQ29tcG9zZWQgU2hhZG93
IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKwlESVYJIGlkPWMKKwlESVYJIGlkPWQKKwor
VHJhdmVyc2UgaW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1iCitESVYJIGlkPWMKK0RJ
VgkgaWQ9ZAorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWQKK0RJVgkgaWQ9YworRElW
CSBpZD1iCitESVYJIGlkPWEKKworVGVzdCBmb3IgY29udGVudCBlbGVtZW50IHNlbGVjdG9yLgor
Q29tcG9zZWQgU2hhZG93IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWIKKworVHJhdmVyc2Ug
aW4gZm9yd2FyZC4KK0RJVgkgaWQ9YQorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWEK
KworTGlnaHQgY2hpbGRyZW4gc2hvdWxkIGJlIHNlbGVjdGVkIG9ubHkgYXQgb25jZS4KK0NvbXBv
c2VkIFNoYWRvdyBUcmVlOgorRElWCSBpZD1hCisJRElWCSBpZD1iCisKK1RyYXZlcnNlIGluIGZv
cndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9YgorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJ
IGlkPWUKK0RJVgkgaWQ9ZAorRElWCSBpZD1jCitESVYJIGlkPWEKKworQSBjb250ZW50IGVsZW1l
bnQgY2FuIGhhdmUgZmFsbGJhY2sgZWxlbWVudHMuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJ
VgkgaWQ9YQorCURJVgkgaWQ9YgorCURJVgkgaWQ9ZjEKKwlESVYJIGlkPWYyCisKK1RyYXZlcnNl
IGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9YgorRElWCSBpZD1mMQorRElWCSBpZD1m
MgorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWYyCitESVYJIGlkPWYxCitESVYJIGlk
PWIKK0RJVgkgaWQ9YQorCitGYWxsYmFjayBlbGVtZW50cyBzaG91bGQgbm90IGJlIHVzZWQgaWYg
IGVsZW1lbnQgc2VsZWN0cyBhbnkgZWxlbWVudHMuCitDb21wb3NlZCBTaGFkb3cgVHJlZToKK0RJ
VgkgaWQ9YQorCURJVgkgaWQ9YgorCURJVgkgaWQ9ZjEKKwlESVYJIGlkPWYyCisKK1RyYXZlcnNl
IGluIGZvcndhcmQuCitESVYJIGlkPWEKK0RJVgkgaWQ9YgorRElWCSBpZD1mMQorRElWCSBpZD1m
MgorVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWYyCitESVYJIGlkPWYxCitESVYJIGlk
PWIKK0RJVgkgaWQ9YQorCitUZXN0IGZvciBOZXN0ZWQgU2hhZG93Um9vdHMuCitDb21wb3NlZCBT
aGFkb3cgVHJlZToKK0RJVgkgaWQ9YQorCURJVgkgaWQ9YgorCQlESVYJIGlkPWMKKwkJRElWCSBp
ZD1lCisJCURJVgkgaWQ9ZAorCURJVgkgaWQ9ZgorCURJVgkgaWQ9aAorCURJVgkgaWQ9aQorCURJ
VgkgaWQ9ZworCitUcmF2ZXJzZSBpbiBmb3J3YXJkLgorRElWCSBpZD1hCitESVYJIGlkPWIKK0RJ
VgkgaWQ9YworRElWCSBpZD1lCitESVYJIGlkPWQKK0RJVgkgaWQ9ZgorRElWCSBpZD1oCitESVYJ
IGlkPWkKK0RJVgkgaWQ9ZworVHJhdmVyc2UgaW4gYmFja3dhcmQuCitESVYJIGlkPWcKK0RJVgkg
aWQ9aQorRElWCSBpZD1oCitESVYJIGlkPWYKK0RJVgkgaWQ9ZAorRElWCSBpZD1lCitESVYJIGlk
PWMKK0RJVgkgaWQ9YgorRElWCSBpZD1hCisKK1Rlc3QgZm9yIE11bHRpcGxlIFNoYWRvd1Jvb3Rz
LgorQ29tcG9zZWQgU2hhZG93IFRyZWU6CitESVYJIGlkPWEKKwlESVYJIGlkPWQKKwlESVYJIGlk
PWIKKwlESVYJIGlkPWYKKwlESVYJIGlkPWMKKwlESVYJIGlkPWUKKworVHJhdmVyc2UgaW4gZm9y
d2FyZC4KK0RJVgkgaWQ9YQorRElWCSBpZD1kCitESVYJIGlkPWIKK0RJVgkgaWQ9ZgorRElWCSBp
ZD1jCitESVYJIGlkPWUKK1RyYXZlcnNlIGluIGJhY2t3YXJkLgorRElWCSBpZD1lCitESVYJIGlk
PWMKK0RJVgkgaWQ9ZgorRElWCSBpZD1iCitESVYJIGlkPWQKK0RJVgkgaWQ9YQorCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdhbGtlci5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbXBvc2VkLXNoYWRvdy10cmVlLXdh
bGtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MzZjMmMzNmNhZTJhYjk0YjlhNWJjMGJlN2MyOGJjN2Vi
MDA3YTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29t
cG9zZWQtc2hhZG93LXRyZWUtd2Fsa2VyLmh0bWwKQEAgLTAsMCArMSwxNjIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFkb3ct
ZG9tLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIGZvciBDb21wb3NlZCBTaGFkb3cgRE9N
IFRyZWUgVHJhdmVyc2FsIEFQSXMuIENhbiBvbmx5IHJ1biB3aXRoaW4gRFJUIik7CisKK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworCitmdW5jdGlvbiBkdW1wTm9kZShub2RlKQoreworICAgIHZhciBvdXRwdXQg
PSBub2RlLm5vZGVOYW1lICsgIlx0IjsKKyAgICBpZiAobm9kZS5pZCkKKyAgICAgICAgb3V0cHV0
ICs9ICcgaWQ9JyArIG5vZGUuaWQ7CisgICAgaWYgKG5vZGUuY2xhc3NOYW1lKQorICAgICAgICBv
dXRwdXQgKz0gJyBjbGFzcz0nICsgbm9kZS5jbGFzc05hbWU7CisgICAgcmV0dXJuIG91dHB1dDsK
K30KKworZnVuY3Rpb24gZHVtcENvbXBvc2VkU2hhZG93VHJlZShub2RlLCBpbmRlbnQpCit7Cisg
ICAgaW5kZW50ID0gaW5kZW50IHx8ICIiOworICAgIHZhciBvdXRwdXQgPSBpbmRlbnQgKyBkdW1w
Tm9kZShub2RlKSArICJcbiI7CisgICAgdmFyIGNoaWxkOworICAgIGZvciAoY2hpbGQgPSBpbnRl
cm5hbHMuZmlyc3RDaGlsZEJ5V2Fsa2VyKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbnRlcm5hbHMu
bmV4dFNpYmxpbmdCeVdhbGtlcihjaGlsZCkpCisgICAgICAgICBvdXRwdXQgKz0gZHVtcENvbXBv
c2VkU2hhZG93VHJlZShjaGlsZCwgaW5kZW50ICsgIlx0Iik7CisgICAgcmV0dXJuIG91dHB1dDsK
K30KKworZnVuY3Rpb24gbGFzdE5vZGVCeVdhbGtlcihyb290KQoreworICAgIHZhciBsYXN0Tm9k
ZSA9IHJvb3Q7CisgICAgd2hpbGUgKGludGVybmFscy5sYXN0Q2hpbGRCeVdhbGtlcihsYXN0Tm9k
ZSkpCisgICAgICAgIGxhc3ROb2RlID0gaW50ZXJuYWxzLmxhc3RDaGlsZEJ5V2Fsa2VyKGxhc3RO
b2RlKTsKKyAgICByZXR1cm4gbGFzdE5vZGU7Cit9CisKK2Z1bmN0aW9uIHNob3dDb21wb3NlZFNo
YWRvd1RyZWVCeVRyYXZlcnNpbmdJbkZvcndhcmQocm9vdCkKK3sKKyAgICB2YXIgbm9kZSA9IHJv
b3Q7CisgICAgdmFyIGxhc3QgPSBsYXN0Tm9kZUJ5V2Fsa2VyKHJvb3QpOworICAgIHdoaWxlIChu
b2RlKSB7CisgICAgICAgIGRlYnVnKGR1bXBOb2RlKG5vZGUpKTsKKyAgICAgICAgaWYgKG5vZGUg
PT0gbGFzdCkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBub2RlID0gaW50ZXJuYWxzLm5l
eHROb2RlQnlXYWxrZXIobm9kZSk7CisgICAgfQorfQorCitmdW5jdGlvbiBzaG93Q29tcG9zZWRT
aGFkb3dUcmVlQnlUcmF2ZXJzaW5nSW5CYWNrd2FyZChyb290KQoreworICAgIHZhciBub2RlID0g
bGFzdE5vZGVCeVdhbGtlcihyb290KTsKKyAgICB3aGlsZSAobm9kZSkgeworICAgICAgICBkZWJ1
ZyhkdW1wTm9kZShub2RlKSk7CisgICAgICAgIGlmIChub2RlID09IHJvb3QpCisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgbm9kZSA9IGludGVybmFscy5wcmV2aW91c05vZGVCeVdhbGtlcihu
b2RlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHNob3dDb21wb3NlZFNoYWRvd1RyZWUobm9kZSkK
K3sKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG5vZGUpOworICAgIGRvY3VtZW50LmJv
ZHkub2Zmc2V0TGVmdDsKKworICAgIGRlYnVnKCdDb21wb3NlZCBTaGFkb3cgVHJlZTonKTsKKyAg
ICBkZWJ1ZyhkdW1wQ29tcG9zZWRTaGFkb3dUcmVlKG5vZGUpKTsKKworICAgIGRlYnVnKCdUcmF2
ZXJzZSBpbiBmb3J3YXJkLicpOworICAgIHNob3dDb21wb3NlZFNoYWRvd1RyZWVCeVRyYXZlcnNp
bmdJbkZvcndhcmQobm9kZSk7CisKKyAgICBkZWJ1ZygnVHJhdmVyc2UgaW4gYmFja3dhcmQuJyk7
CisgICAgc2hvd0NvbXBvc2VkU2hhZG93VHJlZUJ5VHJhdmVyc2luZ0luQmFja3dhcmQobm9kZSk7
CisKKyAgICBkZWJ1ZygnJyk7Cit9CisKK2RlYnVnKCdTaGFkb3dSb290IHNob3VsZCBiZSB1c2Vk
LicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQn
OiAnYSd9LAorICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2Jywg
eydpZCc6ICdiJ30pKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2Mn
fSkpKTsKKworZGVidWcoJ0EgY29udGVudCBlbGVtZW50IHNob3VsZCBzZWxlY3QgbGlnaHQgY2hp
bGRyZW4nKTsKK3Nob3dDb21wb3NlZFNoYWRvd1RyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7
J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2Rp
dicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVE
T00oJ2NvbnRlbnQnKSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdj
J30pLAorICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSkpOworCitk
ZWJ1ZygnVGVzdCBmb3IgY29udGVudCBlbGVtZW50IHNlbGVjdG9yLicpOworc2hvd0NvbXBvc2Vk
U2hhZG93VHJlZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAg
ICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0
JzogJy5kJ30pKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSks
CisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pLAorICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSkpOworCitkZWJ1ZygnTGlnaHQgY2hp
bGRyZW4gc2hvdWxkIGJlIHNlbGVjdGVkIG9ubHkgYXQgb25jZS4nKTsKK3Nob3dDb21wb3NlZFNo
YWRvd1RyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAg
ICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRlbnQnLCB7J3NlbGVjdCc6
ICcuZCd9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2NvbnRl
bnQnKSksCisgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pLAorICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZCd9KSwKKyAgICAgICAgICAgICAg
Y3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2UnfSkpKTsKKworZGVidWcoJ0EgY29udGVudCBlbGVt
ZW50IGNhbiBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLicpOworc2hvd0NvbXBvc2VkU2hhZG93VHJl
ZSgKKyAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYSd9LAorICAgICAgICAgICAgICBjcmVh
dGVTaGFkb3dSb290KGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdiJ30pLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcsIHsnc2VsZWN0JzogJy56J30s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2
JywgeydpZCc6ICdmMSd9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YyJ30pKSksCisgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pKSk7CisKK2RlYnVnKCdGYWxsYmFjayBlbGVtZW50cyBz
aG91bGQgbm90IGJlIHVzZWQgaWYgPGNvbnRlbnQ+IGVsZW1lbnQgc2VsZWN0cyBhbnkgZWxlbWVu
dHMuJyk7CitzaG93Q29tcG9zZWRTaGFkb3dUcmVlKAorICAgIGNyZWF0ZURPTSgnZGl2Jywgeydp
ZCc6ICdhJ30sCisgICAgICAgICAgICAgIGNyZWF0ZVNoYWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYn
LCB7J2lkJzogJ2InfSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlRE9N
KCdjb250ZW50JywgeydzZWxlY3QnOiAnLmMnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2YxJ30pLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAn
ZjInfSkpKSwKKyAgICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2MnfSkpKTsK
KworZGVidWcoJ1Rlc3QgZm9yIE5lc3RlZCBTaGFkb3dSb290cy4nKTsKK3Nob3dDb21wb3NlZFNo
YWRvd1RyZWUoCisgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAg
ICAgY3JlYXRlU2hhZG93Um9vdChjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVTaGFkb3dSb290KGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdjJ30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0
ZURPTSgnZGl2JywgeydpZCc6ICdkJ30pKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2UnfSkpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmJ30pLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnY29udGVudCcpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdnJ30pKSwKKyAg
ICAgICAgICAgICAgY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2gnfSksCisgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdpJ30pKSk7CisKK2RlYnVnKCdUZXN0IGZvciBNdWx0
aXBsZSBTaGFkb3dSb290cy4nKTsKK3Nob3dDb21wb3NlZFNoYWRvd1RyZWUoCisgICAgY3JlYXRl
RE9NKCdkaXYnLCB7J2lkJzogJ2EnfSwKKyAgICAgICAgICAgICAgY3JlYXRlU2hhZG93Um9vdChj
cmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYid9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVET00oJ2NvbnRlbnQnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnYyd9KSksCisgICAgICAgICAgICAgIGNyZWF0ZVNo
YWRvd1Jvb3QoY3JlYXRlRE9NKCdkaXYnLCB7J2lkJzogJ2QnfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlYXRlRE9NKCdzaGFkb3cnKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjcmVhdGVET00oJ2RpdicsIHsnaWQnOiAnZSd9KSksCisgICAgICAgICAgICAg
IGNyZWF0ZURPTSgnZGl2JywgeydpZCc6ICdmJ30pKSk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGVhYTMy
YWYxMGU0ZmVhMWI5NGIyYzM5YTM3Y2VhN2I3NjhhNjdkZjguLmYyZWMyMjEwMDg5YTEzNWUwNTkx
NTNjYTc5NzU4MjFhYTY4OGIwNDIgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wMy0yOSAgSGF5YXRvIEl0byAgPGhheWF0b0BjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW1NoYWRvdyBET01dIEludHJvZHVjZSBDb21wb3NlZFNoYWRv
d1RyZWVXYWxrZXIgYXMgYSBzdWNjZXNzb3Igb2YgUmVpZmllZFRyZWVUcmF2ZXJzYWwgQVBJcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIwMDkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCisKKyAgICAgICAgKiBTb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEyLTA0LTAxICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFBlcmYtby1tYXRpYyBidWlsZCBmaXggYWZ0ZXIg
MTEyODI5IGZvciBDaHJvbWl1bS1zdHlsZSB0ZXN0cy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>