<?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>69631</bug_id>
          
          <creation_ts>2011-10-07 08:45:33 -0700</creation_ts>
          <short_desc>Towards making PopupMenuClient more testable</short_desc>
          <delta_ts>2011-10-14 12:40:34 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>69894</dependson>
          <blocked>66062</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Fady Samuel">fsamuel</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>rjkroege</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>480026</commentid>
    <comment_count>0</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-07 08:45:33 -0700</bug_when>
    <thetext>Towards making PopupMenuClient more testable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480033</commentid>
    <comment_count>1</comment_count>
      <attachid>110151</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-07 08:49:58 -0700</bug_when>
    <thetext>Created attachment 110151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480068</commentid>
    <comment_count>2</comment_count>
      <attachid>110151</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-07 09:29:08 -0700</bug_when>
    <thetext>Comment on attachment 110151
Patch

Attachment 110151 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10007233

New failing tests:
fast/dom/select-element-height.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481787</commentid>
    <comment_count>3</comment_count>
      <attachid>110151</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-11 11:55:01 -0700</bug_when>
    <thetext>Comment on attachment 110151
Patch

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

I like the general pattern, but see comments for nits.

&gt; Source/WebCore/rendering/RenderObject.h:301
&gt; +    virtual PopupMenuClient* popupMenuClient() { return 0; }

popupMenuClient() should only be present in derived classes, not here.

&gt; Source/WebCore/rendering/RenderTextControlSingleLine.cpp:618
&gt; +    return absoluteBoundingBoxRect(true);

Aren&apos;t we using an enum now?

&gt; Source/WebCore/testing/Internals.idl:69
&gt; +        int popupClientPaddingLeft(in Element element) raises (DOMException);
&gt; +        int popupClientPaddingRight(in Element element) raises (DOMException);

Is it really useful to test paddingLeft and paddingRight?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481822</commentid>
    <comment_count>4</comment_count>
      <attachid>110151</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-11 12:27:56 -0700</bug_when>
    <thetext>Comment on attachment 110151
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderObject.h:301
&gt;&gt; +    virtual PopupMenuClient* popupMenuClient() { return 0; }
&gt; 
&gt; popupMenuClient() should only be present in derived classes, not here.

I&apos;m not sure how to get around this. There is an issue with casting and multiple inheritance. RenderMenuList uses multiple inheritance. If I cast RenderObject to PopupMenuClient in Internals.cpp, it might not do the necessary thunking: http://en.wikipedia.org/wiki/Virtual_method_table because it has no idea where the appropriate vtable is. I suppose if I rearrange public RenderDeprecatedFlexibleBox, public ListPopupMenuClient to public ListPopupMenuClient, public RenderDeprecatedFlexibleBox the problem will fix itself (depending on compiler) but this would make the code very sensitive to breakage in the future that will be very hard to debug.

&gt;&gt; Source/WebCore/rendering/RenderTextControlSingleLine.cpp:618
&gt;&gt; +    return absoluteBoundingBoxRect(true);
&gt; 
&gt; Aren&apos;t we using an enum now?

No. The signature is absoluteBoundingBoxRect(bool useTransforms = true),  alternatively there&apos;s an absoluteBoundingBoxRectIgnoringTransforms().

See https://bugs.webkit.org/show_bug.cgi?id=69009

&gt;&gt; Source/WebCore/testing/Internals.idl:69
&gt;&gt; +        int popupClientPaddingRight(in Element element) raises (DOMException);
&gt; 
&gt; Is it really useful to test paddingLeft and paddingRight?

I believe so, at some point you asked me to make sure they take page scale factor into account for this patch:

https://bugs.webkit.org/show_bug.cgi?id=66062</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>481971</commentid>
    <comment_count>5</comment_count>
      <attachid>110592</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-11 15:42:22 -0700</bug_when>
    <thetext>Created attachment 110592
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482000</commentid>
    <comment_count>6</comment_count>
      <attachid>110592</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-10-11 16:11:25 -0700</bug_when>
    <thetext>Comment on attachment 110592
Patch

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

&gt; Source/WebCore/rendering/RenderMenuList.cpp:307
&gt; +    m_popup-&gt;show(boundingBoxRect(), document()-&gt;view(),
&gt;          select-&gt;optionToListIndex(select-&gt;selectedIndex()));

You could unwrap this line.

&gt; Source/WebCore/testing/Internals.cpp:457
&gt; +    return reinterpret_cast&lt;PopupMenuClient*&gt;(object);

This should be a static_cast too.

&gt; Source/WebCore/testing/Internals.cpp:472
&gt; +    return 0;
&gt; +
&gt; +}

Extra blank line.

&gt; Source/WebCore/testing/Internals.h:107
&gt; +    static const PopupMenuClient* toPopupMenuClient(RenderObject*);

I don&apos;t think there&apos;s any benefit in this being a class method. It could just be static in the impl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482017</commentid>
    <comment_count>7</comment_count>
      <attachid>110601</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-11 16:32:44 -0700</bug_when>
    <thetext>Created attachment 110601
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482021</commentid>
    <comment_count>8</comment_count>
      <attachid>110592</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-11 16:34:25 -0700</bug_when>
    <thetext>Comment on attachment 110592
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderMenuList.cpp:307
&gt;&gt;          select-&gt;optionToListIndex(select-&gt;selectedIndex()));
&gt; 
&gt; You could unwrap this line.

Done.

&gt;&gt; Source/WebCore/testing/Internals.cpp:457
&gt;&gt; +    return reinterpret_cast&lt;PopupMenuClient*&gt;(object);
&gt; 
&gt; This should be a static_cast too.

This can&apos;t be a static cast. A PopupMenuClient is not a subclass of RenderObject.

&gt;&gt; Source/WebCore/testing/Internals.cpp:472
&gt;&gt; +}
&gt; 
&gt; Extra blank line.

Done.

&gt;&gt; Source/WebCore/testing/Internals.h:107
&gt;&gt; +    static const PopupMenuClient* toPopupMenuClient(RenderObject*);
&gt; 
&gt; I don&apos;t think there&apos;s any benefit in this being a class method. It could just be static in the impl.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482066</commentid>
    <comment_count>9</comment_count>
      <attachid>110601</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-11 17:18:37 -0700</bug_when>
    <thetext>Comment on attachment 110601
Patch for landing

Clearing flags on attachment: 110601

Committed r97202: &lt;http://trac.webkit.org/changeset/97202&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482068</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-11 17:18:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482121</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 18:12:28 -0700</bug_when>
    <thetext>This patch broke Chromium Windows build. Build fix attempted in http://trac.webkit.org/changeset/97207.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482152</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 19:01:28 -0700</bug_when>
    <thetext>This patch also broke Mac builds:
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Build%29/builds/34669/steps/compile-webkit/logs/stdio

Undefined symbols:
  &quot;__ZN7WebCore9InlineBox14selectionStateEv&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox11nodeAtPointERKNS_14HitTestRequestERNS_13HitTestResultERKNS_8IntPointES8_ii&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox11extractLineEv&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox5paintERNS_9PaintInfoERKNS_8IntPointEii&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox7destroyEPNS_11RenderArenaE&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox14adjustPositionEff&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBoxdlEPvm&quot;, referenced from:
      __ZN7WebCore9InlineBoxD0Ev in Internals.o
  &quot;__ZNK7WebCore9InlineBox14caretMaxOffsetEv&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox22canAccommodateEllipsisEbii&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox10attachLineEv&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox16placeEllipsisBoxEbfffRb&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZN7WebCore9InlineBox10deleteLineEPNS_11RenderArenaE&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o
  &quot;__ZNK7WebCore9InlineBox14caretMinOffsetEv&quot;, referenced from:
      __ZTVN7WebCore9InlineBoxE in Internals.o

I don&apos;t think we wan to expose all these symbols from WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482153</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 19:02:25 -0700</bug_when>
    <thetext>Note, looking at http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Build%29,
changesets listed on http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Build%29/builds/34668 and http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Build%29/builds/34669 are to be blamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482163</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 19:27:06 -0700</bug_when>
    <thetext>Apparently including RenderMenuList.h causes Internals.cpp to use InlineBox&apos;s destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482169</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-11 19:48:09 -0700</bug_when>
    <thetext>Reopen the bug since the patch was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482350</commentid>
    <comment_count>16</comment_count>
      <attachid>110601</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-10-12 04:42:41 -0700</bug_when>
    <thetext>Comment on attachment 110601
Patch for landing

Attachment 110601 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10028827</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>482634</commentid>
    <comment_count>17</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-12 13:03:34 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; This patch also broke Mac builds:
&gt; http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Build%29/builds/34669/steps/compile-webkit/logs/stdio
&gt; 
&gt; Undefined symbols:
&gt;   &quot;__ZN7WebCore9InlineBox14selectionStateEv&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox11nodeAtPointERKNS_14HitTestRequestERNS_13HitTestResultERKNS_8IntPointES8_ii&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox11extractLineEv&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox5paintERNS_9PaintInfoERKNS_8IntPointEii&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox7destroyEPNS_11RenderArenaE&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox14adjustPositionEff&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBoxdlEPvm&quot;, referenced from:
&gt;       __ZN7WebCore9InlineBoxD0Ev in Internals.o
&gt;   &quot;__ZNK7WebCore9InlineBox14caretMaxOffsetEv&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox22canAccommodateEllipsisEbii&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox10attachLineEv&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox16placeEllipsisBoxEbfffRb&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZN7WebCore9InlineBox10deleteLineEPNS_11RenderArenaE&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt;   &quot;__ZNK7WebCore9InlineBox14caretMinOffsetEv&quot;, referenced from:
&gt;       __ZTVN7WebCore9InlineBoxE in Internals.o
&gt; 
&gt; I don&apos;t think we wan to expose all these symbols from WebCore.

Odd this seems to only happen on release builds.  Ryosuke and I had a discussion last night to move access to RenderMenuList to HTMLSelectElement and then export those symbols.. rather than export the symbols above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483579</commentid>
    <comment_count>18</comment_count>
      <attachid>110918</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-13 15:50:25 -0700</bug_when>
    <thetext>Created attachment 110918
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483621</commentid>
    <comment_count>19</comment_count>
      <attachid>110927</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-13 16:25:28 -0700</bug_when>
    <thetext>Created attachment 110927
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483759</commentid>
    <comment_count>20</comment_count>
      <attachid>110955</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-13 22:10:37 -0700</bug_when>
    <thetext>Created attachment 110955
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483764</commentid>
    <comment_count>21</comment_count>
      <attachid>110957</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-13 22:13:04 -0700</bug_when>
    <thetext>Created attachment 110957
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483843</commentid>
    <comment_count>22</comment_count>
      <attachid>110978</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-14 01:37:00 -0700</bug_when>
    <thetext>Created attachment 110978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483973</commentid>
    <comment_count>23</comment_count>
      <attachid>111014</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-14 07:39:40 -0700</bug_when>
    <thetext>Created attachment 111014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484191</commentid>
    <comment_count>24</comment_count>
      <attachid>111054</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-10-14 12:40:34 -0700</bug_when>
    <thetext>Created attachment 111054
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110151</attachid>
            <date>2011-10-07 08:49:58 -0700</date>
            <delta_ts>2011-10-11 15:42:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111007114956.patch</filename>
            <type>text/plain</type>
            <size>19375</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY5MzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NTBlMzQ1YmM2NTE5NTAxNjM5YzZl
YzM5N2VmY2U3ZWRjMTBmMjU0Li42Mjg0YzY1ZWU4ZTJjYmZhNjgxYTc2NzVmMzVlN2ZmZjA4YjA0
ODBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMDcgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9zZWxlY3QtZWxlbWVudC1oZWlnaHQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zZWxlY3QtZWxlbWVudC1oZWlnaHQuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMTAtMDcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgZmFpbGluZyBzdmcgdGVzdCBpbiBHVEsuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zZWxlY3QtZWxlbWVudC1oZWlnaHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2VsZWN0LWVsZW1lbnQtaGVpZ2h0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTNkNzFhNjNiZGE1ZGUxMGU3N2QzYjNiZjg5YzMxNzQy
OGU3ZTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2VsZWN0LWVs
ZW1lbnQtaGVpZ2h0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitQQVNTIHBvcHVwQ2xp
ZW50UGFkZGluZ0xlZnQgaXMgNAorUEFTUyBwb3B1cENsaWVudFBhZGRpbmdSaWdodCBpcyAyCitG
QUlMIGJvdW5kaW5nQm94UmVjdC5sZWZ0IHNob3VsZCBiZSAxMC4gV2FzIDIwLgorRkFJTCBib3Vu
ZGluZ0JveFJlY3QudG9wIHNob3VsZCBiZSAxMC4gV2FzIDIwLgorRkFJTCBib3VuZGluZ0JveFJl
Y3Qud2lkdGggc2hvdWxkIGJlIDg0LiBXYXMgMTY4LgorRkFJTCBib3VuZGluZ0JveFJlY3QuaGVp
Z2h0IHNob3VsZCBiZSAyMC4gV2FzIDQwLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Nl
bGVjdC1lbGVtZW50LWhlaWdodC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2VsZWN0LWVs
ZW1lbnQtaGVpZ2h0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDczNzYxNzY1YzNkYWUzNGJiNzUxMTVhM2Yx
MjEyYzRkMGJhMzk3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Nl
bGVjdC1lbGVtZW50LWhlaWdodC5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzxodG1sPgorICA8aGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICAgICAgPHNl
bGVjdCBpZD0ic2VsZWN0ZWxlbWVudCI+CisgICAgICAgIDxvcHRpb24+RWxlbWVudCAxPC9vcHRp
b24+CisgICAgICAgIDxvcHRpb24+RWxlbWVudCAyPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+
RWxlbWVudCAzPC9vcHRpb24+CisgICAgICA8L3NlbGVjdD4KKyAgICA8L2JvZHk+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgIHZhciBzZWxlY3RFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInNlbGVjdGVsZW1lbnQiKTsKKyAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIHdpbCBmYWlsIGlmIHRoZSBwYWdlIHNjYWxlIGZhY3RvciAhPSAx
LjAKKyAgICAgICAgdmFyIHBhZ2VTY2FsZUZhY3RvciA9IDIuMDsKKyAgICAgICAgZXZlbnRTZW5k
ZXIuc2NhbGVQYWdlQnkocGFnZVNjYWxlRmFjdG9yLCAwLCAwKTsKKworICAgICAgICB2YXIgcG9w
dXBDbGllbnRQYWRkaW5nTGVmdCA9IHdpbmRvdy5pbnRlcm5hbHMucG9wdXBDbGllbnRQYWRkaW5n
TGVmdChzZWxlY3RFbGVtZW50KTsKKyAgICAgICAgdmFyIHBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0
ID0gd2luZG93LmludGVybmFscy5wb3B1cENsaWVudFBhZGRpbmdSaWdodChzZWxlY3RFbGVtZW50
KTsKKyAgICAgICAgdmFyIGJvdW5kaW5nQm94UmVjdCA9IHdpbmRvdy5pbnRlcm5hbHMucG9wdXBD
bGllbnRCb3VuZGluZ0JveFJlY3Qoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZhciBib3VuZGlu
Z0NsaWVudFJlY3QgPSBzZWxlY3RFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAg
ICAgICBzaG91bGRCZSgicG9wdXBDbGllbnRQYWRkaW5nTGVmdCIsICI0Iik7CisgICAgICAgIHNo
b3VsZEJlKCJwb3B1cENsaWVudFBhZGRpbmdSaWdodCIsICIyIik7CisgICAgICAgIHNob3VsZEJl
KCJib3VuZGluZ0JveFJlY3QubGVmdCIsICJib3VuZGluZ0NsaWVudFJlY3QubGVmdCIpOworICAg
ICAgICBzaG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LnRvcCIsICJib3VuZGluZ0NsaWVudFJlY3Qu
dG9wIik7CisgICAgICAgIHNob3VsZEJlKCJib3VuZGluZ0JveFJlY3Qud2lkdGgiLCAiYm91bmRp
bmdDbGllbnRSZWN0LndpZHRoIik7CisgICAgICAgIHNob3VsZEJlKCJib3VuZGluZ0JveFJlY3Qu
aGVpZ2h0IiwgImJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQiKTsKKyAgICAgIH0KKyAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgfQorICAgICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBlZDA5ZmM3MDEwYTdjNGRmMGJmMjcyZTRlMTcxY2Q3ZWNiNDkxZjA0
Li44YWFiMTk0NDI1YWQ5Y2QwZGUwNmVjYTQ3NDY2MTEzZjRhM2JiY2VlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzkgQEAKKzIwMTEtMTAtMDcgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xpZW50IG1vcmUgdGVz
dGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5
NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogZmFzdC9kb20vc2VsZWN0LWVsZW1lbnQtaGVpZ2h0Lmh0bWwKKworICAgICAgICAqIHBsYXRm
b3JtL1BvcHVwTWVudUNsaWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0Ojpib3VuZGluZ0JveFJlY3QpOgorICAgICAg
ICBJbXBsZW1lbnRhdGlvbiBmb3IgUG9wdXBNZW51Q2xpZW50Ojpib3VuZGluZ0JveFJlY3QKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdDo6aXNQb3B1cE1lbnVDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OlJlbmRlck1lbnVMaXN0Ojpwb3B1cE1lbnVDbGll
bnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlck9iamVjdDo6aXNQb3B1cE1lbnVDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyT2JqZWN0Ojpwb3B1cE1lbnVDbGllbnQpOgorICAgICAgICBBbGxvd3MgdXMgdG8gZGV0
ZXJtaW5lZCBpZiBhIHJlbmRlciBub2RlIGltcGxlbWVudHMgUG9wdXBNZW51Q2xpZW50CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmJvdW5kaW5nQm94UmVj
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjppc1BvcHVwTWVu
dUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OnBvcHVwTWVudUNsaWVudCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdMZWZ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6cG9wdXBDbGllbnRQYWRkaW5nUmlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdCk6CisgICAg
ICAgIE1ldGhvZHMgb2YgUG9wdXBNZW51Q2xpZW50IGV4cG9zZWQgdG8gd2luZG93LmludGVybmFs
cy4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorCiAyMDExLTEwLTA3ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0
Lm9yZz4KIAogICAgICAgICBTaHJpbmsgU3R5bGVJbmhlcml0ZWREYXRhLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAppbmRleCBmMzNiOWUyMWI4OTEwNTRkNTQzZTI3
MTg2ZWY0ODI3NTkwMjc3YjY3Li41OWFlYTE1OTRmYmFmNjkxNjliZjM2YzAwN2UyYjJiNDI3NmNh
YTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaApAQCAtMjIs
NiArMjIsNyBAQAogI2lmbmRlZiBQb3B1cE1lbnVDbGllbnRfaAogI2RlZmluZSBQb3B1cE1lbnVD
bGllbnRfaAogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVT
dHlsZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KQEAgLTQ5LDYgKzUwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFi
bGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUG9wdXBNZW51
U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgUG9wdXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgTGF5
b3V0UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgY2xp
ZW50SW5zZXRMZWZ0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0Umln
aHQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50UGFkZGluZ0xlZnQoKSBjb25z
dCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxp
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRl
eCBkNzg5MTg2NTc5ZTgyNjhkOTljYmIyZjJiODQwM2ZmYzYwNGNlMjY5Li5kMzY1ZDRlZmIzM2U2
YzAwOWEzZmRhMWEwNmMwZGY0NjZmYWQzNDZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTMwMiwxMiArMzAyLDcgQEAgdm9pZCBSZW5kZXJNZW51
TGlzdDo6c2hvd1BvcHVwKCkKICAgICBIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9TZWxl
Y3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKICAgICBtX3BvcHVwSXNW
aXNpYmxlID0gdHJ1ZTsKIAotICAgIC8vIENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFu
c2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVzZQotICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2Yg
dGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUgcG9wdXAuCi0gICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0
ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOwotICAgIExheW91
dFJlY3QgYWJzQm91bmRzID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9y
bXMoKTsKLSAgICBhYnNCb3VuZHMuc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExl
ZnQpKTsKLSAgICBtX3BvcHVwLT5zaG93KGFic0JvdW5kcywgZG9jdW1lbnQoKS0+dmlldygpLAor
ICAgIG1fcG9wdXAtPnNob3coYm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50KCktPnZpZXcoKSwK
ICAgICAgICAgc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgo
KSkpOwogfQogCkBAIC01MDEsNiArNDk2LDE2IEBAIFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBSZW5k
ZXJNZW51TGlzdDo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlCiAg
ICAgcmV0dXJuIHdpZGdldC5yZWxlYXNlKCk7CiB9CiAKK0xheW91dFJlY3QgUmVuZGVyTWVudUxp
c3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0Cit7CisgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxl
ZnQgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCisgICAgLy8gdGhlIGFj
dHVhbCB3aWR0aCBvZiB0aGUgZWxlbWVudCB0byBzaXplIHRoZSBwb3B1cC4KKyAgICBGbG9hdFBv
aW50IGFic1RvcExlZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1
ZSk7CisgICAgTGF5b3V0UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEln
bm9yaW5nVHJhbnNmb3JtcygpOworICAgIGFic0JvdW5kcy5zZXRMb2NhdGlvbihyb3VuZGVkSW50
UG9pbnQoYWJzVG9wTGVmdCkpOworICAgIHJldHVybiBhYnNCb3VuZHM7Cit9CisKIGludCBSZW5k
ZXJNZW51TGlzdDo6Y2xpZW50SW5zZXRMZWZ0KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggNzNmOTgxYjE5OTc4
NTVhODliNTVjZWJjMzg2NTBlZjAzZjI2YWE0ZC4uZmM5ZGY4NWJmYzcyZGVkYTQ0ZmUzMWRmYjA0
YWNhNTMyNmNkNTExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmgKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVuZGVyVGV4
dDsKIAogI2lmIEVOQUJMRShOT19MSVNUQk9YX1JFTkRFUklORykKLWNsYXNzIFJlbmRlck1lbnVM
aXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHJpdmF0ZSBMaXN0UG9w
dXBNZW51Q2xpZW50IHsKK2NsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveCwgcHVibGljIExpc3RQb3B1cE1lbnVDbGllbnQgewogI2Vsc2UKLWNs
YXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwg
cHJpdmF0ZSBQb3B1cE1lbnVDbGllbnQgeworY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMg
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LCBwdWJsaWMgUG9wdXBNZW51Q2xpZW50IHsKICNl
bmRpZgogCiBwdWJsaWM6CkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNQb3B1cE1lbnVDbGllbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgdmlydHVhbCBQb3B1cE1lbnVDbGllbnQqIHBvcHVwTWVudUNsaWVudCgpIHsgcmV0dXJuIHRo
aXM7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxk
LCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUNoaWxkKFJlbmRlck9iamVjdCopOwpAQCAtODksNiArOTEsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAg
dmlydHVhbCBQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25z
dDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNvbnN0OworICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIGlu
dCBjbGllbnRJbnNldExlZnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJp
Z2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50UGFkZGluZ0xlZnQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAwZjYwNzk0MzE5YTA3
YjhkZDI4Zjc2OGEzYzYyNzgwZDc1YmRkZjQ2Li5iY2RjODEwMGU3MWE4MDZiYTgwZjE5ZWVhNGMy
ZDFjMWY2YmJlMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBA
IC01Miw2ICs1Miw3IEBAIGNsYXNzIElubGluZUJveDsKIGNsYXNzIElubGluZUZsb3dCb3g7CiBj
bGFzcyBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQ7CiBjbGFzcyBQYXRoOworY2xhc3MgUG9wdXBN
ZW51Q2xpZW50OwogY2xhc3MgUG9zaXRpb247CiBjbGFzcyBSZW5kZXJCb3hNb2RlbE9iamVjdDsK
IGNsYXNzIFJlbmRlcklubGluZTsKQEAgLTI5Niw2ICsyOTcsOCBAQCBwdWJsaWM6CiAjaWYgRU5B
QkxFKE1FVEVSX1RBRykKICAgICB2aXJ0dWFsIGJvb2wgaXNNZXRlcigpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKKyAgICB2aXJ0dWFsIGJvb2wgaXNQb3B1cE1lbnVDbGllbnQoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgUG9wdXBNZW51Q2xpZW50KiBwb3B1
cE1lbnVDbGllbnQoKSB7IHJldHVybiAwOyB9CiAjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZmY5MDc3MGYwOTU1Nzg5MTA3NWRiOTFlMjllMWRmZTc4
NzA0YWZiNi4uMGJjNTAzMGM4OGU4YmJiMjJjZWEyMDVmYTgwZWQwOWM3NjUwY2ZiYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNl
YXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAotICAgIG1fc2VhcmNoUG9w
dXAtPnBvcHVwTWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50
KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5zaG93KGJv
dW5kaW5nQm94UmVjdCgpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsKIH0KIAogdm9pZCBSZW5k
ZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCgpCkBAIC02MTMsNiArNjEzLDExIEBA
IFBvcHVwTWVudVN0eWxlIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bWVudVN0eWxlKCkg
Y29uc3QKICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGUoc3R5bGUoKS0+dmlzaXRlZERlcGVuZGVu
dENvbG9yKENTU1Byb3BlcnR5Q29sb3IpLCBzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3Io
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBzdHlsZSgpLT5mb250KCksIHN0eWxlKCktPnZp
c2liaWxpdHkoKSA9PSBWSVNJQkxFLCBzdHlsZSgpLT5kaXNwbGF5KCkgPT0gTk9ORSwgc3R5bGUo
KS0+dGV4dEluZGVudCgpLCBzdHlsZSgpLT5kaXJlY3Rpb24oKSwgc3R5bGUoKS0+dW5pY29kZUJp
ZGkoKSA9PSBPdmVycmlkZSk7CiB9CiAKK0xheW91dFJlY3QgUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lOjpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBhYnNvbHV0ZUJv
dW5kaW5nQm94UmVjdCh0cnVlKTsKK30KKwogaW50IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6Y2xpZW50SW5zZXRMZWZ0KCkgY29uc3QKIHsKICAgICAvLyBJbnNldCB0aGUgbWVudSBieSB0
aGUgcmFkaXVzIG9mIHRoZSBjYXAgb24gdGhlIGxlZnQgc28gdGhhdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCmluZGV4
IDQ3NGQzNTM2NTliNDk1ZTJjOGZlNmIyNzRlMzI0ZGMwYjE3NDRjMGEuLjU5OWEwMjg5ZTk2M2I0
ZTNjNTI0ZTk1MTQzMzgzYzU3ZTgwOGE0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKQEAgLTU2LDYgKzU2LDgg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udHJvbENsaXAoKSBj
b25zdDsKICAgICB2aXJ0dWFsIExheW91dFJlY3QgY29udHJvbENsaXBSZWN0KGNvbnN0IExheW91
dFBvaW50JikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzUG9wdXBNZW51Q2xpZW50KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgUG9wdXBNZW51Q2xpZW50KiBwb3B1cE1l
bnVDbGllbnQoKSB7IHJldHVybiB0aGlzOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxk
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CkBAIC0xMDAsNiArMTAyLDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0
OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRl
eCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmly
dHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50
SW5zZXRSaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYzkwN2FlODIyNTA4
MDgyMjE2MDQyNTk4MzZmZGQ4ZmFkNzA0YjVjZS4uYjk1OWM0YWViM2U3NDIyNGI5ZGU3NDRhOGUx
NmI5NWU1ZWU0NjllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzUs
MTQgKzM1LDE3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiTm9k
ZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUG9wdXBN
ZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCisjaW5jbHVkZSAiU2VsZWN0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Q29udGVudEVsZW1l
bnQuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCkBAIC0zODIsNCArMzg1LDQ0IEBAIHZvaWQg
SW50ZXJuYWxzOjpzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqIGVsZW1lbnQsIGxvbmcgeCwg
bG9uZyB5LCBsb25nIHcsIGxvCiAgICAgZnJhbWVWaWV3LT5zY3JvbGxFbGVtZW50VG9SZWN0KGVs
ZW1lbnQsIEludFJlY3QoeCwgeSwgdywgaCkpOwogfQogCitpbnQgSW50ZXJuYWxzOjpwb3B1cENs
aWVudFBhZGRpbmdMZWZ0KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAg
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJl
bmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgpKQorICAgICAgICByZXR1cm4gcmVuZGVyZXItPnBv
cHVwTWVudUNsaWVudCgpLT5jbGllbnRQYWRkaW5nTGVmdCgpOworICAgIHJldHVybiAwOworCit9
CisKK2ludCBJbnRlcm5hbHM6OnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQqIGVsZW1l
bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+
cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICByZXR1
cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1l
bnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgpKQor
ICAgICAgICByZXR1cm4gcmVuZGVyZXItPnBvcHVwTWVudUNsaWVudCgpLT5jbGllbnRQYWRkaW5n
UmlnaHQoKTsKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBJbnRl
cm5hbHM6OnBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+cmVuZGVyZXIo
KSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIENs
aWVudFJlY3Q6OmNyZWF0ZSgpOworICAgIH0KKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBSZW5kZXJPYmplY3QqIHJl
bmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICBpZiAocmVuZGVyZXItPmlzUG9wdXBN
ZW51Q2xpZW50KCkpCisgICAgICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVuZGVyZXIt
PnBvcHVwTWVudUNsaWVudCgpLT5ib3VuZGluZ0JveFJlY3QoKSk7CisgICAgcmV0dXJuIENsaWVu
dFJlY3Q6OmNyZWF0ZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRl
eCA1OGI4OWQ1YTNjYjIwNjY2MWM0OTcxNzBhY2I3MzExNTFkZTk3MWViLi41NTJkYjAyNDdlYzZk
OTAzOTY2Y2EwYTM5NDhlZWMxMmUyNGE3ZjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKQEAgLTg4LDYgKzg4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN1Z2dlc3RlZFZhbHVl
KEVsZW1lbnQqIGlucHV0RWxlbWVudCwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgc2Nyb2xsRWxlbWVudFRvUmVjdChFbGVtZW50KiwgbG9uZyB4LCBsb25nIHksIGxv
bmcgdywgbG9uZyBoLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICBpbnQgcG9wdXBDbGllbnRQYWRk
aW5nTGVmdChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIGludCBwb3B1cENsaWVudFBh
ZGRpbmdSaWdodChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8Q2xp
ZW50UmVjdD4gcG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QoRWxlbWVudCosIEV4Y2VwdGlvbkNv
ZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAogICAgIHZvaWQg
cGFpbnRDb250cm9sVGludHMoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggYTY4MzA1YWNhMDYwNjZmODcxZWZhYTk1Yjg5Mzhk
YjczZDk1MTdlNC4uZTE3MTQ2MTBmNzRhMjUxMzNmZmM3M2FiYTM3OTIzMmU4NjEyZDFlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNjQsNiArNjQsMTAgQEAgbW9kdWxl
IHdpbmRvdyB7CiAgICAgICAgIHZvaWQgcGFpbnRDb250cm9sVGludHMoaW4gRG9jdW1lbnQgZG9j
dW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICB2b2lkIHNjcm9sbEVsZW1l
bnRUb1JlY3QoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBsb25nIHgsIGluIGxvbmcgeSwgaW4gbG9u
ZyB3LCBpbiBsb25nIGgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBpbnQgcG9w
dXBDbGllbnRQYWRkaW5nTGVmdChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgaW50IHBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KGluIEVsZW1lbnQgZWxl
bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBDbGllbnRSZWN0IHBvcHVwQ2xp
ZW50Qm91bmRpbmdCb3hSZWN0KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzIChET01FeGNlcHRp
b24pOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggN2RkZTI4ZjYw
NTZlM2ZkMmI5YzAzNmY3OTgwMTBlNmFiMTgwNGQxYS4uZTlhMDQwMjcyNTFlNDM0ZTVhMjFmMTM1
YjVmNjllZTA1ZmYwNjU5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NiBAQAorMjAxMS0xMC0wNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGllbnQgbW9yZSB0ZXN0YWJsZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MzEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9BdXRvZmls
bFBvcHVwTWVudUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkF1dG9maWxsUG9wdXBNZW51
Q2xpZW50Ojpib3VuZGluZ0JveFJlY3QpOgorICAgICAgICAqIHNyYy9BdXRvZmlsbFBvcHVwTWVu
dUNsaWVudC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMpOgorCiAyMDExLTEwLTA3
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByOTY4NzkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKaW5kZXggMzRhMTg0ZjE4
OTdmZGJlMWU3N2M0NThhMzZlYmFhNzczZWRiMTc1NC4uZjc3YjY4YTE2MjBjMGQ0NTNhYTYwZDVk
NTU3MDFhYWQ5Mjk4NWYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcApAQCAtMjE2LDYgKzIxNiwxMyBAQCBpbnQg
QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0CiAgICAg
cmV0dXJuIFJlbmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdS
aWdodChzdHlsZSk7CiB9CiAKK1dlYkNvcmU6OkxheW91dFJlY3QgQXV0b2ZpbGxQb3B1cE1lbnVD
bGllbnQ6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0Cit7CisgICAgaWYgKG1fdGV4dEZpZWxkKQor
ICAgICAgICByZXR1cm4gbV90ZXh0RmllbGQtPmdldFJlY3QoKTsKKyAgICByZXR1cm4gV2ViQ29y
ZTo6TGF5b3V0UmVjdCgpOworfQorCiB2b2lkIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpwb3B1
cERpZEhpZGUoKQogewogICAgIFdlYlZpZXdJbXBsKiB3ZWJWaWV3ID0gZ2V0V2ViVmlldygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xp
ZW50LmgKaW5kZXggN2QyYjk4NWEyYzJjY2UzZDA4OTk3NGMwY2I1OGU2MjY4ZDU4YzdiMy4uOGUy
ZWM4Mzg3N2M0NDUxNjM5ZTY3OWVkMjJlNWEwY2YzNDYzMjQxNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaWZuZGVmIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgQXV0
b2ZpbGxQb3B1cE1lbnVDbGllbnRfaAogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNs
dWRlICJQb3B1cE1lbnVDbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODIsNiAr
ODMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQg
bGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlIGl0
ZW1TdHlsZSh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6
UG9wdXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpM
YXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVu
dEluc2V0TGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGludCBjbGllbnRJ
bnNldFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudFBh
ZGRpbmdMZWZ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAKaW5kZXggZTU0NjFkOGJmMTU2NTk2OWYwMDAyMTkyYTdiNTUzY2ZkNGE3MmE5MC4uZjk5
ZWQ5ZmMwNWFjMjY2M2JiZmZkNmE2MTYzNWMxOWQwZjhkMDRjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjI0MCw3ICsyMjQwLDcgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25zKAogICAgIGlmIChtX2F1dG9maWxs
UG9wdXBTaG93aW5nKSB7CiAgICAgICAgIHJlZnJlc2hBdXRvZmlsbFBvcHVwKCk7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgbV9hdXRvZmlsbFBvcHVwLT5zaG93SW5SZWN0KGZvY3VzZWROb2RlLT5n
ZXRSZWN0KCksIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwgMCk7CisgICAg
ICAgIG1fYXV0b2ZpbGxQb3B1cC0+c2hvd0luUmVjdChtX2F1dG9maWxsUG9wdXBDbGllbnQtPmJv
dW5kaW5nQm94UmVjdCgpLCBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDAp
OwogICAgICAgICBtX2F1dG9maWxsUG9wdXBTaG93aW5nID0gdHJ1ZTsKICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110592</attachid>
            <date>2011-10-11 15:42:22 -0700</date>
            <delta_ts>2011-10-11 16:34:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111011184221.patch</filename>
            <type>text/plain</type>
            <size>20279</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMTY3OGU0NThiODlmZTY0ZTRmNTNl
OGY5MWI1MzhhMDRjOWVmZjA3Li40MDRlODQwZmU5ZWM3OGNjNjdhMGFmZWY2MTJjOGFmM2IzZTVk
ZThjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTEgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0xMC0xMSAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gTWFyayBtb3JlIGZsYWtlcyBhcyBmbGFrZXMuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4M2U4OTFiYjVlMjBmZTA3OWIxNWVkNWYzOTI1ZTg0
YTA4MzUyOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1t
ZW51LWNsaWVudC10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitQQVNTIHBvcHVw
Q2xpZW50UGFkZGluZ0xlZnQgaXMgNAorUEFTUyBwb3B1cENsaWVudFBhZGRpbmdSaWdodCBpcyAy
CitGQUlMIGJvdW5kaW5nQm94UmVjdC5sZWZ0IHNob3VsZCBiZSAxMC4gV2FzIDIwLgorRkFJTCBi
b3VuZGluZ0JveFJlY3QudG9wIHNob3VsZCBiZSAxMC4gV2FzIDIwLgorUEFTUyBib3VuZGluZ0Jv
eFJlY3Qud2lkdGggaXMgYm91bmRpbmdDbGllbnRSZWN0LndpZHRoCitQQVNTIGJvdW5kaW5nQm94
UmVjdC5oZWlnaHQgaXMgYm91bmRpbmdDbGllbnRSZWN0LmhlaWdodAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzM3NjE3NjVj
M2RhZTM0YmI3NTExNWEzZjEyMTJjNGQwYmEzOTc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sCkBAIC0wLDAgKzEsMzgg
QEAKKzxodG1sPgorICA8aGVhZD4KKyAgICA8Ym9keT4KKyAgICAgIDxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgorICAgICAgPHNlbGVjdCBpZD0ic2VsZWN0ZWxlbWVudCI+CisgICAgICAgIDxvcHRp
b24+RWxlbWVudCAxPC9vcHRpb24+CisgICAgICAgIDxvcHRpb24+RWxlbWVudCAyPC9vcHRpb24+
CisgICAgICAgIDxvcHRpb24+RWxlbWVudCAzPC9vcHRpb24+CisgICAgICA8L3NlbGVjdD4KKyAg
ICA8L2JvZHk+CisgICAgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgIHZhciBzZWxlY3RFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbGVjdGVsZW1lbnQiKTsKKyAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdpbCBmYWlsIGlmIHRoZSBwYWdl
IHNjYWxlIGZhY3RvciAhPSAxLjAKKyAgICAgICAgdmFyIHBhZ2VTY2FsZUZhY3RvciA9IDIuMDsK
KyAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkocGFnZVNjYWxlRmFjdG9yLCAwLCAwKTsK
KworICAgICAgICB2YXIgcG9wdXBDbGllbnRQYWRkaW5nTGVmdCA9IHdpbmRvdy5pbnRlcm5hbHMu
cG9wdXBDbGllbnRQYWRkaW5nTGVmdChzZWxlY3RFbGVtZW50KTsKKyAgICAgICAgdmFyIHBvcHVw
Q2xpZW50UGFkZGluZ1JpZ2h0ID0gd2luZG93LmludGVybmFscy5wb3B1cENsaWVudFBhZGRpbmdS
aWdodChzZWxlY3RFbGVtZW50KTsKKyAgICAgICAgdmFyIGJvdW5kaW5nQm94UmVjdCA9IHdpbmRv
dy5pbnRlcm5hbHMucG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3Qoc2VsZWN0RWxlbWVudCk7Cisg
ICAgICAgIHZhciBib3VuZGluZ0NsaWVudFJlY3QgPSBzZWxlY3RFbGVtZW50LmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpOworICAgICAgICBzaG91bGRCZSgicG9wdXBDbGllbnRQYWRkaW5nTGVmdCIs
ICI0Iik7CisgICAgICAgIHNob3VsZEJlKCJwb3B1cENsaWVudFBhZGRpbmdSaWdodCIsICIyIik7
CisgICAgICAgIHNob3VsZEJlKCJib3VuZGluZ0JveFJlY3QubGVmdCIsICJib3VuZGluZ0NsaWVu
dFJlY3QubGVmdCIpOworICAgICAgICBzaG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LnRvcCIsICJi
b3VuZGluZ0NsaWVudFJlY3QudG9wIik7CisgICAgICAgIHNob3VsZEJlKCJib3VuZGluZ0JveFJl
Y3Qud2lkdGgiLCAiYm91bmRpbmdDbGllbnRSZWN0LndpZHRoIik7CisgICAgICAgIHNob3VsZEJl
KCJib3VuZGluZ0JveFJlY3QuaGVpZ2h0IiwgImJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQiKTsK
KyAgICAgIH0KKyAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgfQorICAgICAgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9zY3JpcHQ+
CisgIDwvaGVhZD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MGRjZjViZWQxYjExYzljNmE2MGY2
ZTJhNDE2NDc5YTU5OWZlZjZmLi40ZDVkNWRlYWVkZjU2MGUzYWI3MjFlYjE5NjZmNTYzOGJkZDkz
Y2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTEtMTAtMTEgIEZhZHkgU2FtdWVs
ICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBN
ZW51Q2xpZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkZWQgc29tZSBmdW5jdGlvbnMgdG8gd2luZG93LmludGVybmFscyB0
byBhbGxvdyB0ZXN0aW5nIG9mIHBhcnRzIG9mIFBvcHVwTWVudUNsaWVudC4KKworICAgICAgICBU
ZXN0OiBmYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwKKworICAgICAgICAqIHBs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0Ojpib3VuZGluZ0JveFJlY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTWVudUxpc3Q6OlJlbmRlck1lbnVMaXN0Ojppc1BvcHVwTWVudUNsaWVudCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0Ojppc1BvcHVwTWVudUNsaWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmU6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OmJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjppc1BvcHVwTWVudUNsaWVudCk6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp0b1BvcHVwTWVu
dUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xpZW50UGFkZGlu
Z0xlZnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdS
aWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xpZW50Qm91bmRpbmdC
b3hSZWN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMS0xMC0xMSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogaW1wbGVtZW50IElEQkZhY3RvcnkuY21w
IG1ldGhvZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAppbmRleCBm
MzNiOWUyMWI4OTEwNTRkNTQzZTI3MTg2ZWY0ODI3NTkwMjc3YjY3Li41OWFlYTE1OTRmYmFmNjkx
NjliZjM2YzAwN2UyYjJiNDI3NmNhYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1
cE1lbnVDbGllbnQuaApAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBQb3B1cE1lbnVDbGllbnRf
aAogI2RlZmluZSBQb3B1cE1lbnVDbGllbnRfaAogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIK
ICNpbmNsdWRlICJQb3B1cE1lbnVTdHlsZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQ5LDYgKzUwLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgaW50IGNsaWVudEluc2V0UmlnaHQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgY2xp
ZW50UGFkZGluZ0xlZnQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcAppbmRleCA1N2EzYWQyNDg0NWZlNDkyZWYwYjMzODdhYTljYmQzOWQ3
NGJmNTllLi5mMTI1ODYwNmJmZTI4NGFiMWJhMDZkOGNmNWFmZmE2ZjMzNDYzZDQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTMwMywxMiArMzAz
LDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkKICAgICBIVE1MU2VsZWN0RWxl
bWVudCogc2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2Rl
KCkpKTsKICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsKIAotICAgIC8vIENvbXB1dGUgdGhl
IHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVzZQotICAgIC8v
IHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUgcG9wdXAuCi0gICAg
RmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFs
c2UsIHRydWUpOwotICAgIExheW91dFJlY3QgYWJzQm91bmRzID0gYWJzb2x1dGVCb3VuZGluZ0Jv
eFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKLSAgICBhYnNCb3VuZHMuc2V0TG9jYXRpb24ocm91
bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsKLSAgICBtX3BvcHVwLT5zaG93KGFic0JvdW5kcywg
ZG9jdW1lbnQoKS0+dmlldygpLAorICAgIG1fcG9wdXAtPnNob3coYm91bmRpbmdCb3hSZWN0KCks
IGRvY3VtZW50KCktPnZpZXcoKSwKICAgICAgICAgc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChz
ZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkpOwogfQogCkBAIC01MDYsNiArNTAxLDE2IEBAIFBhc3NS
ZWZQdHI8U2Nyb2xsYmFyPiBSZW5kZXJNZW51TGlzdDo6Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGFi
bGVBcmVhKiBzY3JvbGxhYmxlCiAgICAgcmV0dXJuIHdpZGdldC5yZWxlYXNlKCk7CiB9CiAKK0xh
eW91dFJlY3QgUmVuZGVyTWVudUxpc3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0Cit7CisgICAg
Ly8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBi
dXQgdXNlCisgICAgLy8gdGhlIGFjdHVhbCB3aWR0aCBvZiB0aGUgZWxlbWVudCB0byBzaXplIHRo
ZSBwb3B1cC4KKyAgICBGbG9hdFBvaW50IGFic1RvcExlZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxv
YXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgTGF5b3V0UmVjdCBhYnNCb3VuZHMgPSBhYnNv
bHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpOworICAgIGFic0JvdW5kcy5z
ZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQoYWJzVG9wTGVmdCkpOworICAgIHJldHVybiBhYnNC
b3VuZHM7Cit9CisKIGludCBSZW5kZXJNZW51TGlzdDo6Y2xpZW50SW5zZXRMZWZ0KCkgY29uc3QK
IHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmgKaW5kZXggNzNmOTgxYjE5OTc4NTVhODliNTVjZWJjMzg2NTBlZjAzZjI2YWE0ZC4uZTAwNWM3
YzA0MjhjMmRiZTA2YzFmZGU3MjExZmVkNmY4OTZmZDM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTM5LDkgKzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgUmVuZGVyVGV4dDsKIAogI2lmIEVOQUJMRShOT19MSVNUQk9YX1JFTkRFUklO
RykKLWNsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveCwgcHJpdmF0ZSBMaXN0UG9wdXBNZW51Q2xpZW50IHsKK2NsYXNzIFJlbmRlck1lbnVMaXN0
IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHVibGljIExpc3RQb3B1cE1l
bnVDbGllbnQgewogI2Vsc2UKLWNsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRl
cHJlY2F0ZWRGbGV4aWJsZUJveCwgcHJpdmF0ZSBQb3B1cE1lbnVDbGllbnQgeworY2xhc3MgUmVu
ZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LCBwdWJsaWMg
UG9wdXBNZW51Q2xpZW50IHsKICNlbmRpZgogCiBwdWJsaWM6CkBAIC02MSw2ICs2MSw3IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNNZW51TGlzdCgpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQb3B1cE1lbnVDbGllbnQoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2Jq
ZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApOwogICAgIHZpcnR1
YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QqKTsKQEAgLTg5LDYgKzkwLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgp
IGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxp
c3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBj
b25zdDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQg
Y2xpZW50SW5zZXRSaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdM
ZWZ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXgg
MDVhMjM3MzFkNDgwYTQ5ZDJiMjNjM2EyMzJjOTg2NTM2NmIyMDA2Ni4uZTFiMmRhZDQwZDA5Mzlh
ZWY1YmRiYWI2Zjc2ZjlmNzkzZTJiMTBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaApAQCAtNTIsNiArNTIsNyBAQCBjbGFzcyBJbmxpbmVCb3g7CiBjbGFzcyBJbmxp
bmVGbG93Qm94OwogY2xhc3MgT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xpZW50OwogY2xhc3MgUGF0aDsK
K2NsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIFBvc2l0aW9uOwogY2xhc3MgUmVuZGVyQm94
TW9kZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJJbmxpbmU7CkBAIC0yOTYsNiArMjk3LDcgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShNRVRFUl9UQUcpCiAgICAgdmlydHVhbCBib29sIGlzTWV0ZXIoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCisgICAgdmlydHVhbCBib29sIGlzUG9wdXBN
ZW51Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNpZiBFTkFCTEUoUFJPR1JFU1Nf
VEFHKQogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBmZjkwNzcwZjA5NTU3ODkxMDc1ZGI5MWUy
OWUxZGZlNzg3MDRhZmI2Li41NWE0NjIxYjg1YTU0ZmM3YmI5ZGE5NTg2YWJmZTUxMTJlZmQzOTg4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXAoKQogICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZl
UmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgfQogCi0gICAgbV9z
ZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnNob3coYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSwg
ZG9jdW1lbnQoKS0+dmlldygpLCAtMSk7CisgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCkt
PnNob3coYm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOwogfQogCiB2
b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aGlkZVBvcHVwKCkKQEAgLTYxMyw2ICs2
MTMsMTEgQEAgUG9wdXBNZW51U3R5bGUgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjptZW51
U3R5bGUoKSBjb25zdAogICAgIHJldHVybiBQb3B1cE1lbnVTdHlsZShzdHlsZSgpLT52aXNpdGVk
RGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvciksIHN0eWxlKCktPnZpc2l0ZWREZXBlbmRl
bnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciksIHN0eWxlKCktPmZvbnQoKSwgc3R5
bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUsIHN0eWxlKCktPmRpc3BsYXkoKSA9PSBOT05F
LCBzdHlsZSgpLT50ZXh0SW5kZW50KCksIHN0eWxlKCktPmRpcmVjdGlvbigpLCBzdHlsZSgpLT51
bmljb2RlQmlkaSgpID09IE92ZXJyaWRlKTsKIH0KIAorTGF5b3V0UmVjdCBSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGFi
c29sdXRlQm91bmRpbmdCb3hSZWN0KCk7Cit9CisKIGludCBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OmNsaWVudEluc2V0TGVmdCgpIGNvbnN0CiB7CiAgICAgLy8gSW5zZXQgdGhlIG1lbnUg
YnkgdGhlIHJhZGl1cyBvZiB0aGUgY2FwIG9uIHRoZSBsZWZ0IHNvIHRoYXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApp
bmRleCA0NzRkMzUzNjU5YjQ5NWUyYzhmZTZiMjc0ZTMyNGRjMGIxNzQ0YzBhLi5mMTdmNzEzZTRk
ODQ4YjE4MzI2OTZjY2ZkZWNmZGUxZjQ2MTY4ZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCkBAIC01Niw2ICs1
Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGhhc0NvbnRyb2xDbGlw
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbnRyb2xDbGlwUmVjdChjb25zdCBM
YXlvdXRQb2ludCYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1BvcHVwTWVudUNsaWVudCgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKQEAgLTEwMCw2ICsxMDEsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUodW5zaWduZWQgbGlzdEluZGV4KSBj
b25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgTGF5b3V0UmVjdCBib3VuZGluZ0JveFJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGludCBjbGllbnRJbnNldExlZnQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNl
dFJpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50UGFkZGluZ0xlZnQoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBlMTQ5MzY0NjAwNDM5YjU3
YzA0NjU4NzFlYjk3MWM3NGY1OWQwNjU0Li45Y2FmZGViYThhNGJlZjFjZGY3ZTNkZjc4YjQ5MTU0
NjE2ZGI5NGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC00NCw3ICs0NSw5IEBACiAj
aWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUV2ZW50
LmgiCiAjZW5kaWYKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSYW5n
ZS5oIgorI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2lmIEVOQUJMRShTTU9PVEhfU0NS
T0xMSU5HKQpAQCAtNDM1LDQgKzQzOCw2MyBAQCB2b2lkIEludGVybmFsczo6c2Nyb2xsRWxlbWVu
dFRvUmVjdChFbGVtZW50KiBlbGVtZW50LCBsb25nIHgsIGxvbmcgeSwgbG9uZyB3LCBsbwogICAg
IGZyYW1lVmlldy0+c2Nyb2xsRWxlbWVudFRvUmVjdChlbGVtZW50LCBJbnRSZWN0KHgsIHksIHcs
IGgpKTsKIH0KIAorY29uc3QgUG9wdXBNZW51Q2xpZW50KiBJbnRlcm5hbHM6OnRvUG9wdXBNZW51
Q2xpZW50KFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIEFTU0VSVCghb2JqZWN0IHx8IG9i
amVjdC0+aXNQb3B1cE1lbnVDbGllbnQoKSk7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJl
dHVybiAwOworCisgICAgLy8gU3BlY2lhbCBjYXNlOiBSZW5kZXJNZW51TGlzdCB1c2VzIG11bHRp
cGxlIGluaGVyaXRhbmNlIGFuZCBzbywKKyAgICAvLyBkZXBlbmRpbmcgb24gdGhlIGNvbXBpbGVy
LCB3ZSBtYXkgZW5kIHVwIGluIGEgc2l0dWF0aW9uIHdoZXJlCisgICAgLy8gdGhlIGZpcnN0IHZw
dHIgZG9lcyBub3QgcG9pbnQgdG8gdGhlIFBvcHVwTWVudUNsaWVudCdzIHZ0YWJsZSwKKyAgICAv
LyBhbmQgc28gd2UnZCBlbmQgdXAgY2FsbGluZyB0aGUgd3JvbmcgbWV0aG9kLiBUaHVzLCB3ZSBm
aXJzdCBjYXN0IHRvCisgICAgLy8gUmVuZGVyTWVudUxpc3QgYW5kIHRoZW4gdG8gUG9wdXBNZW51
Q2xpZW50IHdoaWNoIHdpbGwgYXV0b21hZ2ljYWxseQorICAgIC8vIHRha2UgaW50byBhY2NvdW50
IHRodW5raW5nIGlmIG5lY2Vzc2FyeSAodGhlIGNhc3Rpbmcgd2lsbCBhY3R1YWxseSBzaGlmdAor
ICAgIC8vIHRoZSBwb2ludGVyIG92ZXIgdG8gdGhlIFBvcHVwTWVudUNsaWVudCBwYXJ0IG9mIHRo
ZSBvYmplY3QpLgorICAgIGlmIChvYmplY3QtPmlzTWVudUxpc3QoKSkKKyAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFBvcHVwTWVudUNsaWVudCo+KHRvUmVuZGVyTWVudUxpc3Qob2JqZWN0KSk7
CisKKyAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxQb3B1cE1lbnVDbGllbnQqPihvYmplY3Qp
OworfQorCitpbnQgSW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdMZWZ0KEVsZW1lbnQqIGVs
ZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVu
dC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICBy
ZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVs
ZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgp
KQorICAgICAgICByZXR1cm4gdG9Qb3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5jbGllbnRQYWRk
aW5nTGVmdCgpOworICAgIHJldHVybiAwOworCit9CisKK2ludCBJbnRlcm5hbHM6OnBvcHVwQ2xp
ZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAg
UmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJl
bmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgpKQorICAgICAgICByZXR1cm4gdG9Qb3B1cE1lbnVD
bGllbnQocmVuZGVyZXIpLT5jbGllbnRQYWRkaW5nUmlnaHQoKTsKKyAgICByZXR1cm4gMDsKK30K
KworUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBJbnRlcm5hbHM6OnBvcHVwQ2xpZW50Qm91bmRpbmdC
b3hSZWN0KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICgh
ZWxlbWVudCB8fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIENsaWVudFJlY3Q6OmNyZWF0ZSgpOworICAgIH0K
KyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIo
KTsKKyAgICBpZiAocmVuZGVyZXItPmlzUG9wdXBNZW51Q2xpZW50KCkpCisgICAgICAgIHJldHVy
biBDbGllbnRSZWN0OjpjcmVhdGUodG9Qb3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5ib3VuZGlu
Z0JveFJlY3QoKSk7CisgICAgcmV0dXJuIENsaWVudFJlY3Q6OmNyZWF0ZSgpOworfQorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA0MTBiNmVkOGQ3ODQwNDg1ZjM0Y2FjZTg1
ZTk1NzE4ZjE5OTZlZGMzLi42NTgzN2Q4ODU1MmRlNTJlZmMyMjljMWM5MWNkN2E2NjQwZjkwZDBl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTM4LDcgKzM4LDkgQEAgY2xhc3Mg
Q2xpZW50UmVjdDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIE5vZGU7
CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFJlbmRlck9iamVj
dDsKIAogY2xhc3MgSW50ZXJuYWxzIDogcHVibGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxzPiB7CiBw
dWJsaWM6CkBAIC05MiwxMyArOTQsMTcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3VnZ2VzdGVk
VmFsdWUoRWxlbWVudCogaW5wdXRFbGVtZW50LCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqLCBsb25nIHgsIGxvbmcg
eSwgbG9uZyB3LCBsb25nIGgsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIGludCBwb3B1cENsaWVu
dFBhZGRpbmdMZWZ0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgaW50IHBvcHVwQ2xp
ZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0
cjxDbGllbnRSZWN0PiBwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChFbGVtZW50KiwgRXhjZXB0
aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwogCiAgICAg
dm9pZCBwYWludENvbnRyb2xUaW50cyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJp
dmF0ZToKICAgICBJbnRlcm5hbHMoKTsKLQorICAgIHN0YXRpYyBjb25zdCBQb3B1cE1lbnVDbGll
bnQqIHRvUG9wdXBNZW51Q2xpZW50KFJlbmRlck9iamVjdCopOwogICAgIGRvdWJsZSBwYXNzd29y
ZEVjaG9EdXJhdGlvbkluU2Vjb25kc0JhY2t1cDsKICAgICBib29sIHBhc3N3b3JkRWNob0VuYWJs
ZWRCYWNrdXAgOiAxOwogICAgIGJvb2wgcGFzc3dvcmRFY2hvRHVyYXRpb25JblNlY29uZHNCYWNr
ZWRVcCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggOTA5OTg5ZGEy
YTJhMmQ0MmM3ZjlmY2E1MjJjMDc4NTM3NWMxNzc1Zi4uN2NjZTM0NTQwNTU5ZDM1YjQ1NzQyOTZj
ZmViOTNhZTM4ZmZlNjAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAt
NjcsNiArNjcsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgcGFpbnRDb250cm9s
VGludHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAg
ICAgICB2b2lkIHNjcm9sbEVsZW1lbnRUb1JlY3QoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBsb25n
IHgsIGluIGxvbmcgeSwgaW4gbG9uZyB3LCBpbiBsb25nIGgpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKKworICAgICAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5nTGVmdChpbiBFbGVtZW50IGVsZW1l
bnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgaW50IHBvcHVwQ2xpZW50UGFkZGlu
Z1JpZ2h0KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAg
ICBDbGllbnRSZWN0IHBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KGluIEVsZW1lbnQgZWxlbWVu
dCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZGFiYzAwZjE1ZjRmNGVlZWEyYzVjNWRkNDFiMDBiNWM1OTRjZGMwZC4uZTI5
MTBiNDg5YzU3MzBlNzkzOGQ1ZDhhNDU3ZmJmZGI3ODZmMDIzNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMC0xMSAgRmFkeSBTYW11ZWwgIDxmc2Ft
dWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGll
bnQgbW9yZSB0ZXN0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHNyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpib3VuZGluZ0JveFJlY3QpOgorICAgICAgICAq
IHNyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2Vz
dGlvbnMpOgorCiAyMDExLTEwLTEwICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFtNdXRhdGlvbk9ic2VydmVyc10gQWRkIHN0dWIgaW1wbGVtZW50YXRpb24gb2Yg
V2ViS2l0TXV0YXRpb25PYnNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCmluZGV4IDM0YTE4NGYxODk3ZmRiZTFl
NzdjNDU4YTM2ZWJhYTc3M2VkYjE3NTQuLmY3N2I2OGExNjIwYzBkNDUzYWE2MGQ1ZDU1NzAxYWFk
OTI5ODVmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxs
UG9wdXBNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRv
ZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKQEAgLTIxNiw2ICsyMTYsMTMgQEAgaW50IEF1dG9maWxs
UG9wdXBNZW51Q2xpZW50OjpjbGllbnRQYWRkaW5nUmlnaHQoKSBjb25zdAogICAgIHJldHVybiBS
ZW5kZXJUaGVtZTo6ZGVmYXVsdFRoZW1lKCktPnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5
bGUpOwogfQogCitXZWJDb3JlOjpMYXlvdXRSZWN0IEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpi
b3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIGlmIChtX3RleHRGaWVsZCkKKyAgICAgICAg
cmV0dXJuIG1fdGV4dEZpZWxkLT5nZXRSZWN0KCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OkxheW91
dFJlY3QoKTsKK30KKwogdm9pZCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6cG9wdXBEaWRIaWRl
KCkKIHsKICAgICBXZWJWaWV3SW1wbCogd2ViVmlldyA9IGdldFdlYlZpZXcoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCmlu
ZGV4IDdkMmI5ODVhMmMyY2NlM2QwODk5NzRjMGNiNThlNjI2OGQ1OGM3YjMuLjhlMmVjODM4Nzdj
NDQ1MTYzOWU2NzllZDIyZTVhMGNmMzQ2MzI0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaApAQCAtMzEsNiArMzEsNyBA
QAogI2lmbmRlZiBBdXRvZmlsbFBvcHVwTWVudUNsaWVudF9oCiAjZGVmaW5lIEF1dG9maWxsUG9w
dXBNZW51Q2xpZW50X2gKIAorI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiUG9w
dXBNZW51Q2xpZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTgyLDYgKzgzLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVkIGxpc3RJbmRl
eCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUo
dW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBvcHVwTWVu
dVN0eWxlIG1lbnVTdHlsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgV2ViQ29yZTo6TGF5b3V0UmVj
dCBib3VuZGluZ0JveFJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldExl
ZnQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRSaWdo
dCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGludCBjbGllbnRQYWRkaW5nTGVm
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmlu
ZGV4IGQyNTE4ZWQwZDBmOGFjODQ1MTBmY2I2MTFmNzEzNDliNmZhYTg1ZWQuLmU3MWIzMmQ5MzI0
MTBiOWZhNWVhMWMyODZmOGQ2MGU4Yzk0ZmIyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTIyNDEsNyArMjI0MSw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucygKICAgICBpZiAobV9hdXRvZmlsbFBvcHVwU2hv
d2luZykgewogICAgICAgICByZWZyZXNoQXV0b2ZpbGxQb3B1cCgpOwogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIG1fYXV0b2ZpbGxQb3B1cC0+c2hvd0luUmVjdChmb2N1c2VkTm9kZS0+Z2V0UmVjdCgp
LCBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDApOworICAgICAgICBtX2F1
dG9maWxsUG9wdXAtPnNob3dJblJlY3QobV9hdXRvZmlsbFBvcHVwQ2xpZW50LT5ib3VuZGluZ0Jv
eFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKICAgICAg
ICAgbV9hdXRvZmlsbFBvcHVwU2hvd2luZyA9IHRydWU7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110601</attachid>
            <date>2011-10-11 16:32:44 -0700</date>
            <delta_ts>2011-10-13 15:50:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-69631-20111011193242.patch</filename>
            <type>text/plain</type>
            <size>20109</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTcxNzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMTY3OGU0NThiODlmZTY0ZTRmNTNl
OGY5MWI1MzhhMDRjOWVmZjA3Li41OTBlODg4NTExYWVjYjA4Zjk5YzI0MDQwYjlhNTBiZDQ1Njlj
MmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTEgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgICogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMTAtMTEgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbQ2hyb21pdW1dIE1hcmsgbW9yZSBmbGFrZXMgYXMgZmxha2VzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODNlODkxYmI1ZTIwZmUwNzliMTVlZDVmMzkyNWU4NGEw
ODM1Mjk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVu
dS1jbGllbnQtdGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorUEFTUyBwb3B1cENs
aWVudFBhZGRpbmdMZWZ0IGlzIDQKK1BBU1MgcG9wdXBDbGllbnRQYWRkaW5nUmlnaHQgaXMgMgor
RkFJTCBib3VuZGluZ0JveFJlY3QubGVmdCBzaG91bGQgYmUgMTAuIFdhcyAyMC4KK0ZBSUwgYm91
bmRpbmdCb3hSZWN0LnRvcCBzaG91bGQgYmUgMTAuIFdhcyAyMC4KK1BBU1MgYm91bmRpbmdCb3hS
ZWN0LndpZHRoIGlzIGJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aAorUEFTUyBib3VuZGluZ0JveFJl
Y3QuaGVpZ2h0IGlzIGJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDczNzYxNzY1YzNk
YWUzNGJiNzUxMTVhM2YxMjEyYzRkMGJhMzk3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbApAQCAtMCwwICsxLDM4IEBA
Cis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPGJvZHk+CisgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKyAgICAgIDxzZWxlY3QgaWQ9InNlbGVjdGVsZW1lbnQiPgorICAgICAgICA8b3B0aW9u
PkVsZW1lbnQgMTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPkVsZW1lbnQgMjwvb3B0aW9uPgor
ICAgICAgICA8b3B0aW9uPkVsZW1lbnQgMzwvb3B0aW9uPgorICAgICAgPC9zZWxlY3Q+CisgICAg
PC9ib2R5PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgc2VsZWN0RWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3RlbGVtZW50Iik7CisgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykgeworICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWwgZmFpbCBpZiB0aGUgcGFnZSBz
Y2FsZSBmYWN0b3IgIT0gMS4wCisgICAgICAgIHZhciBwYWdlU2NhbGVGYWN0b3IgPSAyLjA7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHBhZ2VTY2FsZUZhY3RvciwgMCwgMCk7CisK
KyAgICAgICAgdmFyIHBvcHVwQ2xpZW50UGFkZGluZ0xlZnQgPSB3aW5kb3cuaW50ZXJuYWxzLnBv
cHVwQ2xpZW50UGFkZGluZ0xlZnQoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZhciBwb3B1cENs
aWVudFBhZGRpbmdSaWdodCA9IHdpbmRvdy5pbnRlcm5hbHMucG9wdXBDbGllbnRQYWRkaW5nUmln
aHQoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZhciBib3VuZGluZ0JveFJlY3QgPSB3aW5kb3cu
aW50ZXJuYWxzLnBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KHNlbGVjdEVsZW1lbnQpOworICAg
ICAgICB2YXIgYm91bmRpbmdDbGllbnRSZWN0ID0gc2VsZWN0RWxlbWVudC5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKKyAgICAgICAgc2hvdWxkQmUoInBvcHVwQ2xpZW50UGFkZGluZ0xlZnQiLCAi
NCIpOworICAgICAgICBzaG91bGRCZSgicG9wdXBDbGllbnRQYWRkaW5nUmlnaHQiLCAiMiIpOwor
ICAgICAgICBzaG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LmxlZnQiLCAiYm91bmRpbmdDbGllbnRS
ZWN0LmxlZnQiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC50b3AiLCAiYm91
bmRpbmdDbGllbnRSZWN0LnRvcCIpOworICAgICAgICBzaG91bGRCZSgiYm91bmRpbmdCb3hSZWN0
LndpZHRoIiwgImJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCIpOworICAgICAgICBzaG91bGRCZSgi
Ym91bmRpbmdCb3hSZWN0LmhlaWdodCIsICJib3VuZGluZ0NsaWVudFJlY3QuaGVpZ2h0Iik7Cisg
ICAgICB9CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIH0KKyAgICAgIHN1Y2Nl
c3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwvc2NyaXB0Pgor
ICA8L2hlYWQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBkY2Y1YmVkMWIxMWM5YzZhNjBmNmUy
YTQxNjQ3OWE1OTlmZWY2Zi4uYWM0YTQwZDVlZmJiN2U1MmZhNmVhNzMxY2FmNDc1NzM4NzhjNzA2
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDExLTEwLTExICBGYWR5IFNhbXVlbCAg
PGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFraW5nIFBvcHVwTWVu
dUNsaWVudCBtb3JlIHRlc3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD02OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4K
KworICAgICAgICBBZGRlZCBzb21lIGZ1bmN0aW9ucyB0byB3aW5kb3cuaW50ZXJuYWxzIHRvIGFs
bG93IHRlc3Rpbmcgb2YgcGFydHMgb2YgUG9wdXBNZW51Q2xpZW50LgorCisgICAgICAgIFRlc3Q6
IGZhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmJvdW5kaW5nQm94UmVjdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJN
ZW51TGlzdDo6UmVuZGVyTWVudUxpc3Q6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6
OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZTo6c2hvd1BvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZTo6Ym91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnRvUG9wdXBNZW51Q2xp
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cG9wdXBDbGllbnRQYWRkaW5nTGVm
dCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0
KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cG9wdXBDbGllbnRCb3VuZGluZ0JveFJl
Y3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaWRsOgorCiAyMDExLTEwLTExICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBpbXBsZW1lbnQgSURCRmFjdG9yeS5jbXAgbWV0
aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oCmluZGV4IGYzM2I5
ZTIxYjg5MTA1NGQ1NDNlMjcxODZlZjQ4Mjc1OTAyNzdiNjcuLjU5YWVhMTU5NGZiYWY2OTE2OWJm
MzZjMDA3ZTJiMmI0Mjc2Y2FhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BvcHVwTWVudUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5oCkBAIC0yMiw2ICsyMiw3IEBACiAjaWZuZGVmIFBvcHVwTWVudUNsaWVudF9oCiAj
ZGVmaW5lIFBvcHVwTWVudUNsaWVudF9oCiAKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2lu
Y2x1ZGUgIlBvcHVwTWVudVN0eWxlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNDksNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBQb3B1cE1lbnVTdHlsZSBpdGVtU3R5bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGludCBjbGllbnRJbnNldExlZnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBp
bnQgY2xpZW50SW5zZXRSaWdodCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRQ
YWRkaW5nTGVmdCgpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwCmluZGV4IDU3YTNhZDI0ODQ1ZmU0OTJlZjBiMzM4N2FhOWNiZDM5ZDc0YmY1
OWUuLjNkNDhkMzZiMDEyZDRhNGU5OTk3NWZmM2ZjNzNkNTg5OWFiOTlhMDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzAzLDEzICszMDMsNyBA
QCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIEhUTUxTZWxlY3RFbGVtZW50
KiBzZWxlY3QgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUoKSkp
OwogICAgIG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwogCi0gICAgLy8gQ29tcHV0ZSB0aGUgdG9w
IGxlZnQgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCi0gICAgLy8gdGhl
IGFjdHVhbCB3aWR0aCBvZiB0aGUgZWxlbWVudCB0byBzaXplIHRoZSBwb3B1cC4KLSAgICBGbG9h
dFBvaW50IGFic1RvcExlZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwg
dHJ1ZSk7Ci0gICAgTGF5b3V0UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVj
dElnbm9yaW5nVHJhbnNmb3JtcygpOwotICAgIGFic0JvdW5kcy5zZXRMb2NhdGlvbihyb3VuZGVk
SW50UG9pbnQoYWJzVG9wTGVmdCkpOwotICAgIG1fcG9wdXAtPnNob3coYWJzQm91bmRzLCBkb2N1
bWVudCgpLT52aWV3KCksCi0gICAgICAgIHNlbGVjdC0+b3B0aW9uVG9MaXN0SW5kZXgoc2VsZWN0
LT5zZWxlY3RlZEluZGV4KCkpKTsKKyAgICBtX3BvcHVwLT5zaG93KGJvdW5kaW5nQm94UmVjdCgp
LCBkb2N1bWVudCgpLT52aWV3KCksIHNlbGVjdC0+b3B0aW9uVG9MaXN0SW5kZXgoc2VsZWN0LT5z
ZWxlY3RlZEluZGV4KCkpKTsKIH0KIAogdm9pZCBSZW5kZXJNZW51TGlzdDo6aGlkZVBvcHVwKCkK
QEAgLTUwNiw2ICs1MDAsMTYgQEAgUGFzc1JlZlB0cjxTY3JvbGxiYXI+IFJlbmRlck1lbnVMaXN0
OjpjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGUKICAgICByZXR1cm4g
d2lkZ2V0LnJlbGVhc2UoKTsKIH0KIAorTGF5b3V0UmVjdCBSZW5kZXJNZW51TGlzdDo6Ym91bmRp
bmdCb3hSZWN0KCkgY29uc3QKK3sKKyAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcg
dHJhbnNmb3JtcyBpbnRvIGFjY291bnQsIGJ1dCB1c2UKKyAgICAvLyB0aGUgYWN0dWFsIHdpZHRo
IG9mIHRoZSBlbGVtZW50IHRvIHNpemUgdGhlIHBvcHVwLgorICAgIEZsb2F0UG9pbnQgYWJzVG9w
TGVmdCA9IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKKyAgICBM
YXlvdXRSZWN0IGFic0JvdW5kcyA9IGFic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFu
c2Zvcm1zKCk7CisgICAgYWJzQm91bmRzLnNldExvY2F0aW9uKHJvdW5kZWRJbnRQb2ludChhYnNU
b3BMZWZ0KSk7CisgICAgcmV0dXJuIGFic0JvdW5kczsKK30KKwogaW50IFJlbmRlck1lbnVMaXN0
OjpjbGllbnRJbnNldExlZnQoKSBjb25zdAogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAppbmRleCA3M2Y5ODFiMTk5Nzg1NWE4OWI1NWNl
YmMzODY1MGVmMDNmMjZhYTRkLi5lMDA1YzdjMDQyOGMyZGJlMDZjMWZkZTcyMTFmZWQ2Zjg5NmZk
MzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApAQCAtMzks
OSArMzksOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZW5kZXJUZXh0OwogCiAjaWYg
RU5BQkxFKE5PX0xJU1RCT1hfUkVOREVSSU5HKQotY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJs
aWMgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LCBwcml2YXRlIExpc3RQb3B1cE1lbnVDbGll
bnQgeworY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94LCBwdWJsaWMgTGlzdFBvcHVwTWVudUNsaWVudCB7CiAjZWxzZQotY2xhc3MgUmVuZGVy
TWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LCBwcml2YXRlIFBv
cHVwTWVudUNsaWVudCB7CitjbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3gsIHB1YmxpYyBQb3B1cE1lbnVDbGllbnQgewogI2VuZGlmCiAKIHB1
YmxpYzoKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBpc01lbnVMaXN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1BvcHVwTWVudUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1
YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJl
Zm9yZUNoaWxkID0gMCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNoaWxkKFJlbmRlck9iamVj
dCopOwpAQCAtODksNiArOTAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNF
bmFibGVkKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVT
dHlsZSBpdGVtU3R5bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFBv
cHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBi
b3VuZGluZ0JveFJlY3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldExlZnQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBpbnQgY2xpZW50UGFkZGluZ0xlZnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAwNWEyMzczMWQ0ODBhNDlkMmIyM2MzYTIzMmM5ODY1
MzY2YjIwMDY2Li5lMWIyZGFkNDBkMDkzOWFlZjViZGJhYjZmNzZmOWY3OTNlMmIxMGE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC01Miw2ICs1Miw3IEBAIGNs
YXNzIElubGluZUJveDsKIGNsYXNzIElubGluZUZsb3dCb3g7CiBjbGFzcyBPdmVybGFwVGVzdFJl
cXVlc3RDbGllbnQ7CiBjbGFzcyBQYXRoOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogY2xhc3Mg
UG9zaXRpb247CiBjbGFzcyBSZW5kZXJCb3hNb2RlbE9iamVjdDsKIGNsYXNzIFJlbmRlcklubGlu
ZTsKQEAgLTI5Niw2ICsyOTcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE1FVEVSX1RBRykKICAg
ICB2aXJ0dWFsIGJvb2wgaXNNZXRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYK
KyAgICB2aXJ0dWFsIGJvb2wgaXNQb3B1cE1lbnVDbGllbnQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogI2lmIEVOQUJMRShQUk9HUkVTU19UQUcpCiAgICAgdmlydHVhbCBib29sIGlzUHJvZ3Jl
c3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4
IGZmOTA3NzBmMDk1NTc4OTEwNzVkYjkxZTI5ZTFkZmU3ODcwNGFmYjYuLjU1YTQ2MjFiODVhNTRm
YzdiYjlkYTk1ODZhYmZlNTExMmVmZDM5ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0xNzQsNyAr
MTc0LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnNob3dQb3B1cCgpCiAg
ICAgICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNl
YXJjaGVzKTsKICAgICB9CiAKLSAgICBtX3NlYXJjaFBvcHVwLT5wb3B1cE1lbnUoKS0+c2hvdyhh
YnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsKKyAgICBt
X3NlYXJjaFBvcHVwLT5wb3B1cE1lbnUoKS0+c2hvdyhib3VuZGluZ0JveFJlY3QoKSwgZG9jdW1l
bnQoKS0+dmlldygpLCAtMSk7CiB9CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
OjpoaWRlUG9wdXAoKQpAQCAtNjEzLDYgKzYxMywxMSBAQCBQb3B1cE1lbnVTdHlsZSBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6Om1lbnVTdHlsZSgpIGNvbnN0CiAgICAgcmV0dXJuIFBvcHVw
TWVudVN0eWxlKHN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9y
KSwgc3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENv
bG9yKSwgc3R5bGUoKS0+Zm9udCgpLCBzdHlsZSgpLT52aXNpYmlsaXR5KCkgPT0gVklTSUJMRSwg
c3R5bGUoKS0+ZGlzcGxheSgpID09IE5PTkUsIHN0eWxlKCktPnRleHRJbmRlbnQoKSwgc3R5bGUo
KS0+ZGlyZWN0aW9uKCksIHN0eWxlKCktPnVuaWNvZGVCaWRpKCkgPT0gT3ZlcnJpZGUpOwogfQog
CitMYXlvdXRSZWN0IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Ym91bmRpbmdCb3hSZWN0
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKTsKK30KKwog
aW50IFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Y2xpZW50SW5zZXRMZWZ0KCkgY29uc3QK
IHsKICAgICAvLyBJbnNldCB0aGUgbWVudSBieSB0aGUgcmFkaXVzIG9mIHRoZSBjYXAgb24gdGhl
IGxlZnQgc28gdGhhdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5oCmluZGV4IDQ3NGQzNTM2NTliNDk1ZTJjOGZlNmIyNzRl
MzI0ZGMwYjE3NDRjMGEuLmYxN2Y3MTNlNGQ4NDhiMTgzMjY5NmNjZmRlY2ZkZTFmNDYxNjhkNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNp
bmdsZUxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lLmgKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgaGFzQ29udHJvbENsaXAoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFJl
Y3QgY29udHJvbENsaXBSZWN0KGNvbnN0IExheW91dFBvaW50JikgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGlzUG9wdXBNZW51Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc1RleHRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpOwpAQCAtMTAw
LDYgKzEwMSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5z
aWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1T
dHlsZSh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5
bGUgbWVudVN0eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94
UmVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0UmlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGlu
dCBjbGllbnRQYWRkaW5nTGVmdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IGUxNDkzNjQ2MDA0MzliNTdjMDQ2NTg3MWViOTcxYzc0ZjU5ZDA2NTQuLjY1Y2Rk
NWNiODI1NjA1YWM3NTk1ZmU2N2Y4OWYzNzI3ZDNkM2VjNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
ICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisj
aW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkludFJl
Y3QuaCIKQEAgLTQ0LDcgKzQ1LDkgQEAKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAjaW5j
bHVkZSAiUGxhdGZvcm1HZXN0dXJlRXZlbnQuaCIKICNlbmRpZgorI2luY2x1ZGUgIlBvcHVwTWVu
dUNsaWVudC5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCisjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3Qu
aCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0
LmgiCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCkBAIC00MzUsNCArNDM4LDYyIEBAIHZv
aWQgSW50ZXJuYWxzOjpzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqIGVsZW1lbnQsIGxvbmcg
eCwgbG9uZyB5LCBsb25nIHcsIGxvCiAgICAgZnJhbWVWaWV3LT5zY3JvbGxFbGVtZW50VG9SZWN0
KGVsZW1lbnQsIEludFJlY3QoeCwgeSwgdywgaCkpOwogfQogCitzdGF0aWMgY29uc3QgUG9wdXBN
ZW51Q2xpZW50KiB0b1BvcHVwTWVudUNsaWVudChSZW5kZXJPYmplY3QqIG9iamVjdCkKK3sKKyAg
ICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzUG9wdXBNZW51Q2xpZW50KCkpOworICAgIGlm
ICghb2JqZWN0KQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIFNwZWNpYWwgY2FzZTogUmVu
ZGVyTWVudUxpc3QgdXNlcyBtdWx0aXBsZSBpbmhlcml0YW5jZSBhbmQgc28sCisgICAgLy8gZGVw
ZW5kaW5nIG9uIHRoZSBjb21waWxlciwgd2UgbWF5IGVuZCB1cCBpbiBhIHNpdHVhdGlvbiB3aGVy
ZQorICAgIC8vIHRoZSBmaXJzdCB2cHRyIGRvZXMgbm90IHBvaW50IHRvIHRoZSBQb3B1cE1lbnVD
bGllbnQncyB2dGFibGUsCisgICAgLy8gYW5kIHNvIHdlJ2QgZW5kIHVwIGNhbGxpbmcgdGhlIHdy
b25nIG1ldGhvZC4gVGh1cywgd2UgZmlyc3QgY2FzdCB0bworICAgIC8vIFJlbmRlck1lbnVMaXN0
IGFuZCB0aGVuIHRvIFBvcHVwTWVudUNsaWVudCB3aGljaCB3aWxsIGF1dG9tYWdpY2FsbHkKKyAg
ICAvLyB0YWtlIGludG8gYWNjb3VudCB0aHVua2luZyBpZiBuZWNlc3NhcnkgKHRoZSBjYXN0aW5n
IHdpbGwgYWN0dWFsbHkgc2hpZnQKKyAgICAvLyB0aGUgcG9pbnRlciBvdmVyIHRvIHRoZSBQb3B1
cE1lbnVDbGllbnQgcGFydCBvZiB0aGUgb2JqZWN0KS4KKyAgICBpZiAob2JqZWN0LT5pc01lbnVM
aXN0KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQb3B1cE1lbnVDbGllbnQqPih0b1Jl
bmRlck1lbnVMaXN0KG9iamVjdCkpOworCisgICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UG9w
dXBNZW51Q2xpZW50Kj4ob2JqZWN0KTsKK30KKworaW50IEludGVybmFsczo6cG9wdXBDbGllbnRQ
YWRkaW5nTGVmdChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBp
ZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOworICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGVsZW1lbnQtPmRvY3Vt
ZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIFJlbmRl
ck9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAgIGlmIChyZW5kZXJl
ci0+aXNQb3B1cE1lbnVDbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHRvUG9wdXBNZW51Q2xpZW50
KHJlbmRlcmVyKS0+Y2xpZW50UGFkZGluZ0xlZnQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50
IEludGVybmFsczo6cG9wdXBDbGllbnRQYWRkaW5nUmlnaHQoRWxlbWVudCogZWxlbWVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5yZW5kZXJl
cigpKSB7CisgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgIHJldHVybiAwOwor
ICAgIH0KKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVudC0+cmVu
ZGVyZXIoKTsKKyAgICBpZiAocmVuZGVyZXItPmlzUG9wdXBNZW51Q2xpZW50KCkpCisgICAgICAg
IHJldHVybiB0b1BvcHVwTWVudUNsaWVudChyZW5kZXJlciktPmNsaWVudFBhZGRpbmdSaWdodCgp
OworICAgIHJldHVybiAwOworfQorCitQYXNzUmVmUHRyPENsaWVudFJlY3Q+IEludGVybmFsczo6
cG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5yZW5kZXJlcigpKSB7Cisg
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gQ2xpZW50UmVj
dDo6Y3JlYXRlKCk7CisgICAgfQorICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIg
PSBlbGVtZW50LT5yZW5kZXJlcigpOworICAgIGlmIChyZW5kZXJlci0+aXNQb3B1cE1lbnVDbGll
bnQoKSkKKyAgICAgICAgcmV0dXJuIENsaWVudFJlY3Q6OmNyZWF0ZSh0b1BvcHVwTWVudUNsaWVu
dChyZW5kZXJlciktPmJvdW5kaW5nQm94UmVjdCgpKTsKKyAgICByZXR1cm4gQ2xpZW50UmVjdDo6
Y3JlYXRlKCk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDQxMGI2
ZWQ4ZDc4NDA0ODVmMzRjYWNlODVlOTU3MThmMTk5NmVkYzMuLmEzZGM5M2RmODBlN2ZhYmM4MmZk
MjBlNDQzZjc1MDkxY2Q1OTg3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAt
MzgsNyArMzgsOSBAQCBjbGFzcyBDbGllbnRSZWN0OwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBF
bGVtZW50OwogY2xhc3MgTm9kZTsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIFJhbmdl
OworY2xhc3MgUmVuZGVyT2JqZWN0OwogCiBjbGFzcyBJbnRlcm5hbHMgOiBwdWJsaWMgUmVmQ291
bnRlZDxJbnRlcm5hbHM+IHsKIHB1YmxpYzoKQEAgLTkyLDYgKzk0LDEwIEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFN1Z2dlc3RlZFZhbHVlKEVsZW1lbnQqIGlucHV0RWxlbWVudCwgY29uc3QgU3Ry
aW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2Nyb2xsRWxlbWVudFRvUmVjdChFbGVt
ZW50KiwgbG9uZyB4LCBsb25nIHksIGxvbmcgdywgbG9uZyBoLCBFeGNlcHRpb25Db2RlJik7CiAK
KyAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5nTGVmdChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIGludCBwb3B1cENsaWVudFBhZGRpbmdSaWdodChFbGVtZW50KiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gcG9wdXBDbGllbnRCb3VuZGluZ0JveFJl
Y3QoRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBp
bnRlcm5hbHNJZDsKIAogICAgIHZvaWQgcGFpbnRDb250cm9sVGludHMoRG9jdW1lbnQqLCBFeGNl
cHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggOTA5OTg5
ZGEyYTJhMmQ0MmM3ZjlmY2E1MjJjMDc4NTM3NWMxNzc1Zi4uN2NjZTM0NTQwNTU5ZDM1YjQ1NzQy
OTZjZmViOTNhZTM4ZmZlNjAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApA
QCAtNjcsNiArNjcsMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgcGFpbnRDb250
cm9sVGludHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAog
ICAgICAgICB2b2lkIHNjcm9sbEVsZW1lbnRUb1JlY3QoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBs
b25nIHgsIGluIGxvbmcgeSwgaW4gbG9uZyB3LCBpbiBsb25nIGgpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKworICAgICAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5nTGVmdChpbiBFbGVtZW50IGVs
ZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgaW50IHBvcHVwQ2xpZW50UGFk
ZGluZ1JpZ2h0KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAg
ICAgICBDbGllbnRSZWN0IHBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KGluIEVsZW1lbnQgZWxl
bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggZGFiYzAwZjE1ZjRmNGVlZWEyYzVjNWRkNDFiMDBiNWM1OTRjZGMwZC4u
NGU1ZWY5N2RlYzgzMjgzNGEyZGJhMDc5NTMzNzNkZmU2NzM0YjNmOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMC0xMSAgRmFkeSBTYW11ZWwgIDxm
c2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVD
bGllbnQgbW9yZSB0ZXN0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njk2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisK
KyAgICAgICAgKiBzcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Ym91bmRpbmdCb3hSZWN0KToKKyAgICAgICAg
KiBzcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBwbHlBdXRvZmlsbFN1Z2dl
c3Rpb25zKToKKwogMjAxMS0xMC0xMCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbTXV0YXRpb25PYnNlcnZlcnNdIEFkZCBzdHViIGltcGxlbWVudGF0aW9uIG9m
IFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcAppbmRleCAzNGExODRmMTg5N2ZkYmUx
ZTc3YzQ1OGEzNmViYWE3NzNlZGIxNzU0Li5mNzdiNjhhMTYyMGMwZDQ1M2FhNjBkNWQ1NTcwMWFh
ZDkyOTg1ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmls
bFBvcHVwTWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0
b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0yMTYsNiArMjE2LDEzIEBAIGludCBBdXRvZmls
bFBvcHVwTWVudUNsaWVudDo6Y2xpZW50UGFkZGluZ1JpZ2h0KCkgY29uc3QKICAgICByZXR1cm4g
UmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KHN0
eWxlKTsKIH0KIAorV2ViQ29yZTo6TGF5b3V0UmVjdCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6
Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKK3sKKyAgICBpZiAobV90ZXh0RmllbGQpCisgICAgICAg
IHJldHVybiBtX3RleHRGaWVsZC0+Z2V0UmVjdCgpOworICAgIHJldHVybiBXZWJDb3JlOjpMYXlv
dXRSZWN0KCk7Cit9CisKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnBvcHVwRGlkSGlk
ZSgpCiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaApp
bmRleCA3ZDJiOTg1YTJjMmNjZTNkMDg5OTc0YzBjYjU4ZTYyNjhkNThjN2IzLi44ZTJlYzgzODc3
YzQ0NTE2MzllNjc5ZWQyMmU1YTBjZjM0NjMyNDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpZm5kZWYgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnRfaAogI2RlZmluZSBBdXRvZmlsbFBv
cHVwTWVudUNsaWVudF9oCiAKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUgIlBv
cHVwTWVudUNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Miw2ICs4Myw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5k
ZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUgaXRlbVN0eWxl
KHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1l
bnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkxheW91dFJl
Y3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRM
ZWZ0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0Umln
aHQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgY2xpZW50UGFkZGluZ0xl
ZnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApp
bmRleCBkMjUxOGVkMGQwZjhhYzg0NTEwZmNiNjExZjcxMzQ5YjZmYWE4NWVkLi5lNzFiMzJkOTMy
NDEwYjlmYTVlYTFjMjg2ZjhkNjBlOGM5NGZiMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yMjQxLDcgKzIyNDEsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMoCiAgICAgaWYgKG1fYXV0b2ZpbGxQb3B1cFNo
b3dpbmcpIHsKICAgICAgICAgcmVmcmVzaEF1dG9maWxsUG9wdXAoKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICBtX2F1dG9maWxsUG9wdXAtPnNob3dJblJlY3QoZm9jdXNlZE5vZGUtPmdldFJlY3Qo
KSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKKyAgICAgICAgbV9h
dXRvZmlsbFBvcHVwLT5zaG93SW5SZWN0KG1fYXV0b2ZpbGxQb3B1cENsaWVudC0+Ym91bmRpbmdC
b3hSZWN0KCksIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwgMCk7CiAgICAg
ICAgIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcgPSB0cnVlOwogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110918</attachid>
            <date>2011-10-13 15:50:25 -0700</date>
            <delta_ts>2011-10-13 16:25:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111013185023.patch</filename>
            <type>text/plain</type>
            <size>31280</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTczNjUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MDFlMGYxZWU2N2M0MTI5MDE3Y2I0
MjY1NGVhZGRkOTY0MWI4NjljLi4wZGZjZGRmNGM4MTAxZmIyZDE4NzRmOTI4YWE1Mzc2MDNlODlh
YmIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0xMC0xMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZWJhc2VsaW5lZCBHVEsgU1ZHIHRlc3QgcmVz
dWx0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQt
dGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVu
dC10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODNlODkxYmI1ZTIwZmUwNzliMTVlZDVm
MzkyNWU4NGEwODM1Mjk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cG9wdXAtbWVudS1jbGllbnQtdGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorUEFT
UyBwb3B1cENsaWVudFBhZGRpbmdMZWZ0IGlzIDQKK1BBU1MgcG9wdXBDbGllbnRQYWRkaW5nUmln
aHQgaXMgMgorRkFJTCBib3VuZGluZ0JveFJlY3QubGVmdCBzaG91bGQgYmUgMTAuIFdhcyAyMC4K
K0ZBSUwgYm91bmRpbmdCb3hSZWN0LnRvcCBzaG91bGQgYmUgMTAuIFdhcyAyMC4KK1BBU1MgYm91
bmRpbmdCb3hSZWN0LndpZHRoIGlzIGJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aAorUEFTUyBib3Vu
ZGluZ0JveFJlY3QuaGVpZ2h0IGlzIGJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcz
NzYxNzY1YzNkYWUzNGJiNzUxMTVhM2YxMjEyYzRkMGJhMzk3OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPGJvZHk+CisgICAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICAgIDxzZWxlY3QgaWQ9InNlbGVjdGVsZW1lbnQiPgorICAgICAg
ICA8b3B0aW9uPkVsZW1lbnQgMTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPkVsZW1lbnQgMjwv
b3B0aW9uPgorICAgICAgICA8b3B0aW9uPkVsZW1lbnQgMzwvb3B0aW9uPgorICAgICAgPC9zZWxl
Y3Q+CisgICAgPC9ib2R5PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgc2VsZWN0RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3RlbGVtZW50Iik7CisgICAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWwgZmFpbCBpZiB0
aGUgcGFnZSBzY2FsZSBmYWN0b3IgIT0gMS4wCisgICAgICAgIHZhciBwYWdlU2NhbGVGYWN0b3Ig
PSAyLjA7CisgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHBhZ2VTY2FsZUZhY3Rvciwg
MCwgMCk7CisKKyAgICAgICAgdmFyIHBvcHVwQ2xpZW50UGFkZGluZ0xlZnQgPSB3aW5kb3cuaW50
ZXJuYWxzLnBvcHVwQ2xpZW50UGFkZGluZ0xlZnQoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZh
ciBwb3B1cENsaWVudFBhZGRpbmdSaWdodCA9IHdpbmRvdy5pbnRlcm5hbHMucG9wdXBDbGllbnRQ
YWRkaW5nUmlnaHQoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZhciBib3VuZGluZ0JveFJlY3Qg
PSB3aW5kb3cuaW50ZXJuYWxzLnBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KHNlbGVjdEVsZW1l
bnQpOworICAgICAgICB2YXIgYm91bmRpbmdDbGllbnRSZWN0ID0gc2VsZWN0RWxlbWVudC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgc2hvdWxkQmUoInBvcHVwQ2xpZW50UGFkZGlu
Z0xlZnQiLCAiNCIpOworICAgICAgICBzaG91bGRCZSgicG9wdXBDbGllbnRQYWRkaW5nUmlnaHQi
LCAiMiIpOworICAgICAgICBzaG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LmxlZnQiLCAiYm91bmRp
bmdDbGllbnRSZWN0LmxlZnQiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC50
b3AiLCAiYm91bmRpbmdDbGllbnRSZWN0LnRvcCIpOworICAgICAgICBzaG91bGRCZSgiYm91bmRp
bmdCb3hSZWN0LndpZHRoIiwgImJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCIpOworICAgICAgICBz
aG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LmhlaWdodCIsICJib3VuZGluZ0NsaWVudFJlY3QuaGVp
Z2h0Iik7CisgICAgICB9CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIH0KKyAg
ICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
c2NyaXB0PgorICA8L2hlYWQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDEwNTFj
MGNlNmQ2MTE4Y2YwNzI3MDhiNmE0MDNhMDE0M2ViMDlmYjkuLjMxOTQ3MmY5MWUxZDU0MTM2ZGMy
YWJjNDJjYjAwNjNmNWQ2YmE2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDM1LDYgKzEw
MzUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vTGlua0hhc2guY3BwCiAg
ICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cAorICAgIHBsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5jcHAKICAgICBwbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCiAg
ICAgcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWNmODhiN2MwN2Ni
YjQxOWFlZDU4YTQ2ZDdlMmU5OGNkYzNiZTczNC4uYmExNGU3NGMzODE1OTMyMGVmMDJmZTkwZDZj
M2M0ZTJjZTkwZGI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDExLTEwLTEzICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFr
aW5nIFBvcHVwTWVudUNsaWVudCBtb3JlIHRlc3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNvbWUgZnVuY3Rpb25zIHRvIHdpbmRvdy5p
bnRlcm5hbHMgdG8gYWxsb3cgdGVzdGluZyBvZiBwYXJ0cyBvZiBQb3B1cE1lbnVDbGllbnQuCisK
KyAgICAgICAgVGVzdDogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1
cE1lbnVDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvUG9wdXBNZW51Q2xp
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVu
dUxpc3Q6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6Ym91
bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdDo6aXNQb3B1cE1l
bnVDbGllbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNQb3B1cE1lbnVDbGllbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpib3VuZGluZ0JveFJlY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aXNQb3B1cE1lbnVDbGllbnQp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6cG9wdXBDbGllbnRQYWRkaW5nTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6cG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTEwLTEz
ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogW0Nocm9taXVtXSBBZGQgYW4gYWJpbGl0eSB0byBsb29rIHVwIGFuZCBleHBs
b3JlIGFuIG9iamVjdCBmcm9tIGEgaGVhcCBwcm9maWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KaW5kZXggMDI0ZDE3MGQ2ZGY3MWNjNzY1YjQ1Zjk5YTA1YjFlYTdlMmJiMWMzYy4uMjkw
Y2YwM2UxNDc0ODVlZmJiM2IxYmFhZDc5N2Q0N2UxMzcxNGNhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC0yODAxLDYgKzI4MDEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BPREludGVydmFsVHJlZS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1RyZWUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUG9wdXBNZW51Q2xpZW50LmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVTdHlsZS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDIw
M2M3YTYyMzJjY2M4OTVkNDdhMjMyZjAyZmMxNmFmNmVlNGU1NDIuLjc5ZGNiNzI4MjY3ZTc1NDFh
MDQ1MTA2NTJkMWQ3MzBiM2Y3ODA4YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNjQsNiAr
MjY0LDcgQEAgX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U1Y2xvc2VFdgogX19aTjdXZWJDb3Jl
MTJJY29uRGF0YWJhc2U5c2V0Q2xpZW50RVBOU18xOEljb25EYXRhYmFzZUNsaWVudEUKIF9fWk43
V2ViQ29yZTEySWNvbkRhdGFiYXNlQzFFdgogX19aTjdXZWJDb3JlMTJKU0RPTVdyYXBwZXIzNHZp
cnR1YWxGdW5jdGlvblRvUHJldmVudFdlYWtWdGFibGVFdgorX19aTjdXZWJDb3JlMTd0b1BvcHVw
TWVudUNsaWVudEVQTlNfMTJSZW5kZXJPYmplY3RFCiBfX1pON1dlYkNvcmUxMlBvcHVwTWVudU1h
Y0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUKIF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTJw
YWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2NpCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDEz
bnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJLTlNfOUZsb2F0U2l6ZUUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpp
bmRleCAzYjg4MTNkMTM0ZTVmMjM2ZDcyNTNmZjFhNzc0MTY3MWFjMzA3NDdjLi5iMjNkZGQ4MTAx
OTZlMTNiODliOTJmY2FlZDc5ZmQ1NjRiYTJhODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MTg1
LDYgKzYxODUsOCBAQAogICAgICAgICAgICAgJ3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmgnLAogICAgICAgICAgICAgJ3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCcsCiAgICAgICAgICAgICAn
dGVzdGluZy9JbnRlcm5hbHMuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vUG9wdXBNZW51Q2xp
ZW50LmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5jcHAnLAogICAg
ICAgICBdLAogICAgICAgICAnd2ViY29yZV9yZXNvdXJjZV9maWxlcyc6IFsKICAgICAgICAgICAg
ICdFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5k
ZXggNDkyN2NmNDdlOTdhZDc4YTRjNGJjZTg3NTQ0N2EzMTQ1YTQwNDdmNi4uZjU0YjVhYWVjYzY3
ZDk2MzNmMGIxYTRiMzc5Nzg4ZGVlYTg4NjQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0xMTA3
NCw2ICsxMTA3NCw3IEBAIF9fWk43V2ViQ29yZTE3SlNBcnJheUJ1ZmZlclZpZXdDMkVQTjNKU0M5
U3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RU4zV1RGCiBfX1pON1dlYkNvcmUzNGpz
V2ViR0xSZW5kZXJpbmdDb250ZXh0U1RBVElDX0RSQVdFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pT
VmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQogX19aTjdXZWJDb3JlNTBqc1dlYkdMUmVuZGVyaW5n
Q29udGV4dFByb3RvdHlwZUZ1bmN0aW9uQnVmZmVyRGF0YUVQTjNKU0M5RXhlY1N0YXRlRQogX19a
TjdXZWJDb3JlMTd0b0FycmF5QnVmZmVyVmlld0VOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3Jl
MTd0b1BvcHVwTWVudUNsaWVudEVQTlNfMTJSZW5kZXJPYmplY3RFCiBfX1pON1dlYkNvcmUyMVdl
YkdMUmVuZGVyaW5nQ29udGV4dDEwYnVmZmVyRGF0YUVqUE5TXzE1QXJyYXlCdWZmZXJWaWV3RWpS
aQogX19aTjdXZWJDb3JlMjFXZWJHTFJlbmRlcmluZ0NvbnRleHQyOHZhbGlkYXRlQnVmZmVyRGF0
YVBhcmFtZXRlcnNFamoKIF9fWk43V2ViQ29yZTExV2ViR0xCdWZmZXIxOWFzc29jaWF0ZUJ1ZmZl
ckRhdGFFUE5TXzE1QXJyYXlCdWZmZXJWaWV3RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBlYjQzMjdkM2Ri
YzdiYzQ2NDFlNTg0ZGEyYTBlODZjNjA2NmYxNDZjLi41ZGU1ZTQ1NzI5NDhlZTU1NmZkYWFkMTUy
YmI5NzhhZDgzNGU5MzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTA3NCw2ICsxMDc0LDcgQEAgU09V
UkNFUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgXAogICAg
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgXAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIFwKKyAgICBwbGF0Zm9ybS9Qb3B1cE1l
bnVDbGllbnQuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBc
CiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCBcCiAgICAgcGxhdGZv
cm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKQEAgLTIxNjAsNiArMjE2MSw3IEBAIEhFQURFUlMgKz0g
XAogICAgIHBsYXRmb3JtL1RpbWVyLmggXAogICAgIHBsYXRmb3JtL1dpZGdldC5oIFwKICAgICBw
bGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaCBcCisgICAgcGxhdGZvcm0vUG9wdXBNZW51Q2xp
ZW50LmggXAogICAgIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBcCiAgICAgcGx1Z2lucy9E
T01NaW1lVHlwZUFycmF5LmggXAogICAgIHBsdWdpbnMvRE9NTWltZVR5cGUuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDA5
MDQ5MTE3OGM3MzNjYTk4YjdiZjRjNGIzNzlmODhlNTEzZDU5MS4uZTczOGIyMTU3MGExMGUyOTIx
ZWQ0ZWE0NzczNDFkNGRjZDRhZTY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTQ3Miw2ICs1NDcyLDcgQEAKIAkJQzZGNDEw
NDcxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50
cnlCYXNlLmNwcCAqLzsgfTsKIAkJQ0EzQkY2N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFu
aW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJ
CUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZD
RTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJQ0FGMDc5MjkxNDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVwTWVudUNs
aWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
QUYwNzkyODE0NDc5NDBFMDAzMkE1QUQgLyogUG9wdXBNZW51Q2xpZW50LmNwcCAqLzsgfTsKIAkJ
Q0QwREJGMDExNDIyNzY4NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1Aw
MDAud2F2IGluIENvcHkgQXVkaW8gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMERCRDIwMTQyMjc1OTUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAx
OTVfVDAwMF9QMDAwLndhdiAqLzsgfTsKIAkJQ0QwREJGMDIxNDIyNzY4NTAwMjgwMjYzIC8qIElS
Q19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMTUud2F2IGluIENvcHkgQXVkaW8gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMERCRDIxMTQyMjc1OTUwMDI4
MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1LndhdiAqLzsgfTsKIAkJQ0Qw
REJGMDMxNDIyNzY4NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMzAu
d2F2IGluIENvcHkgQXVkaW8gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEMERCRDIyMTQyMjc1OTUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVf
VDAwMF9QMDMwLndhdiAqLzsgfTsKQEAgLTEyNzY3LDYgKzEyNzY4LDcgQEAKIAkJQzZGNDEwNDYx
MzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBFbnRyeUJhc2UuY3BwOyBwYXRoID0gZmlsZWFwaS9FbnRyeUJhc2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMg
LyogU2Nyb2xsQW5pbWF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2Nyb2xsQW5pbWF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNC
RjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0FGMDc5MjgxNDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQb3B1cE1lbnVDbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDBEQkQyMDE0MjI3NTk1MDAyODAyNjMg
LyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXYgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7IG5hbWUgPSBJUkNfQ29t
cG9zaXRlX0NfUjAxOTVfVDAwMF9QMDAwLndhdjsgcGF0aCA9IHBsYXRmb3JtL2F1ZGlvL3Jlc291
cmNlcy9JUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDAwLndhdjsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwogCQlDRDBEQkQyMTE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0
ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7IG5hbWUgPSBJUkNfQ29tcG9zaXRlX0NfUjAxOTVf
VDAwMF9QMDE1LndhdjsgcGF0aCA9IHBsYXRmb3JtL2F1ZGlvL3Jlc291cmNlcy9JUkNfQ29tcG9z
aXRlX0NfUjAxOTVfVDAwMF9QMDE1Lndhdjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9Owog
CQlDRDBEQkQyMjE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBf
UDAzMC53YXYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBhdWRpby53YXY7IG5hbWUgPSBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDMwLndhdjsg
cGF0aCA9IHBsYXRmb3JtL2F1ZGlvL3Jlc291cmNlcy9JUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAw
MF9QMDMwLndhdjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwpAQCAtMjAwMzUsNiArMjAw
MzcsNyBAQAogCQkJCUJDQkI4QUI3MTNGMUFGQjAwMDczNERGMCAvKiBQT0RSZWRCbGFja1RyZWUu
aCAqLywKIAkJCQkwNjY4RTE4OTBBREQ5NjI0MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi8sCiAJ
CQkJQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1IC8qIFBvcHVwTWVudUNsaWVudC5oICovLAorCQkJ
CUNBRjA3OTI4MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1lbnVDbGllbnQuY3BwICovLAogCQkJ
CUJDM0JFMTJBMEU5ODA5MkYwMDgzNTU4OCAvKiBQb3B1cE1lbnVTdHlsZS5oICovLAogCQkJCUU0
RDY4Nzc4MEVEN0FFNEYwMDZFQTk3OCAvKiBQdXJnZWFibGVCdWZmZXIuaCAqLywKIAkJCQk3RTMz
Q0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVyZ2VQcmlvcml0eS5oICovLApAQCAtMjc0NTcsNiAr
Mjc0NjAsNyBAQAogCQkJCTMxMDYwMzdBMTQzMjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NG
aWx0ZXJWYWx1ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI5QUNCMjE0MTQzRTc0OTgwMDZCQ0E1
RiAvKiBBY2Nlc3NpYmlsaXR5TW9ja09iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjA5
MDg3RjE0NDRGREIyMDAwMjg5MTcgLyogU2Nyb2xsYmFyVGhlbWUuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQ0FGMDc5MjkxNDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlMjQ4NGEwNjQ2ZDQwZmRjMjQxMGEzY2QyYWZkZTE0ZDljNGUyN2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQu
Y3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUG9wdXBNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgorI2lu
Y2x1ZGUgIlJlbmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IFBv
cHVwTWVudUNsaWVudCogdG9Qb3B1cE1lbnVDbGllbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7
CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1BvcHVwTWVudUNsaWVudCgpKTsKKyAg
ICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBTcGVjaWFsIGNhc2U6
IFJlbmRlck1lbnVMaXN0IHVzZXMgbXVsdGlwbGUgaW5oZXJpdGFuY2UgYW5kIHNvLAorICAgIC8v
IGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIsIHdlIG1heSBlbmQgdXAgaW4gYSBzaXR1YXRpb24g
d2hlcmUKKyAgICAvLyB0aGUgZmlyc3QgdnB0ciBkb2VzIG5vdCBwb2ludCB0byB0aGUgUG9wdXBN
ZW51Q2xpZW50J3MgdnRhYmxlLAorICAgIC8vIGFuZCBzbyB3ZSdkIGVuZCB1cCBjYWxsaW5nIHRo
ZSB3cm9uZyBtZXRob2QuIFRodXMsIHdlIGZpcnN0IGNhc3QgdG8KKyAgICAvLyBSZW5kZXJNZW51
TGlzdCBhbmQgdGhlbiB0byBQb3B1cE1lbnVDbGllbnQgd2hpY2ggd2lsbCBhdXRvbWFnaWNhbGx5
CisgICAgLy8gdGFrZSBpbnRvIGFjY291bnQgdGh1bmtpbmcgaWYgbmVjZXNzYXJ5ICh0aGUgY2Fz
dGluZyB3aWxsIGFjdHVhbGx5IHNoaWZ0CisgICAgLy8gdGhlIHBvaW50ZXIgb3ZlciB0byB0aGUg
UG9wdXBNZW51Q2xpZW50IHBhcnQgb2YgdGhlIG9iamVjdCkuCisgICAgaWYgKG9iamVjdC0+aXNN
ZW51TGlzdCgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UG9wdXBNZW51Q2xpZW50Kj4o
dG9SZW5kZXJNZW51TGlzdChvYmplY3QpKTsKKworICAgIHJldHVybiByZWludGVycHJldF9jYXN0
PFBvcHVwTWVudUNsaWVudCo+KG9iamVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUG9wdXBNZW51Q2xpZW50LmgKaW5kZXggZjMzYjllMjFiODkxMDU0ZDU0M2UyNzE4NmVmNDgy
NzU5MDI3N2I2Ny4uZTQ3ZjhmMDk3NGIyMzFlZTM1ZDQ3MWVjYjJlMTg4MWZhNTNmZTBmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKQEAgLTIyLDYgKzIyLDcg
QEAKICNpZm5kZWYgUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgUG9wdXBNZW51Q2xpZW50X2gK
IAorI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51U3R5bGUuaCIK
ICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0z
MSw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwogY2xhc3MgRm9u
dFNlbGVjdG9yOwogY2xhc3MgSG9zdFdpbmRvdzsKK2NsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNz
IFNjcm9sbGJhcjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogCkBAIC00OSw2ICs1MSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25l
ZCBsaXN0SW5kZXgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVT
dHlsZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgPSAwOwpAQCAtNjksNiArNzIsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xs
YmFyKFNjcm9sbGFibGVBcmVhKiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRy
b2xTaXplKSA9IDA7CiB9OwogCitjb25zdCBQb3B1cE1lbnVDbGllbnQqIHRvUG9wdXBNZW51Q2xp
ZW50KFJlbmRlck9iamVjdCopOworCiAjaWYgRU5BQkxFKE5PX0xJU1RCT1hfUkVOREVSSU5HKQog
Y2xhc3MgTGlzdFBvcHVwTWVudUNsaWVudCA6IHB1YmxpYyBQb3B1cE1lbnVDbGllbnQgewogcHVi
bGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXgg
M2YzNTZhNjhlYzBjZDljY2M0ZWYxZmY5MWQxOTNkZGM2YjZiZTUxMi4uZGRmNWU4YmJhYTAzMzYy
MjVmYTY2NWRmNzgzNTRkMTdjMjc2NTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zMDMsMTMgKzMwMyw3IEBAIHZvaWQgUmVuZGVyTWVudUxp
c3Q6OnNob3dQb3B1cCgpCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0
RWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAgbV9wb3B1cElzVmlz
aWJsZSA9IHRydWU7CiAKLSAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNm
b3JtcyBpbnRvIGFjY291bnQsIGJ1dCB1c2UKLSAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRo
ZSBlbGVtZW50IHRvIHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9
IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKLSAgICBMYXlvdXRS
ZWN0IGFic0JvdW5kcyA9IGFic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1z
KCk7Ci0gICAgYWJzQm91bmRzLnNldExvY2F0aW9uKHJvdW5kZWRJbnRQb2ludChhYnNUb3BMZWZ0
KSk7Ci0gICAgbV9wb3B1cC0+c2hvdyhhYnNCb3VuZHMsIGRvY3VtZW50KCktPnZpZXcoKSwKLSAg
ICAgICAgc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkp
OworICAgIG1fcG9wdXAtPnNob3coYm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50KCktPnZpZXco
KSwgc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkpOwog
fQogCiB2b2lkIFJlbmRlck1lbnVMaXN0OjpoaWRlUG9wdXAoKQpAQCAtNTA2LDYgKzUwMCwxNiBA
QCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gUmVuZGVyTWVudUxpc3Q6OmNyZWF0ZVNjcm9sbGJhcihT
Y3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZQogICAgIHJldHVybiB3aWRnZXQucmVsZWFzZSgpOwog
fQogCitMYXlvdXRSZWN0IFJlbmRlck1lbnVMaXN0Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAor
eworICAgIC8vIENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNj
b3VudCwgYnV0IHVzZQorICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8g
c2l6ZSB0aGUgcG9wdXAuCisgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29s
dXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOworICAgIExheW91dFJlY3QgYWJzQm91bmRz
ID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKKyAgICBhYnNC
b3VuZHMuc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsKKyAgICByZXR1
cm4gYWJzQm91bmRzOworfQorCiBpbnQgUmVuZGVyTWVudUxpc3Q6OmNsaWVudEluc2V0TGVmdCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5oCmluZGV4IDczZjk4MWIxOTk3ODU1YTg5YjU1Y2ViYzM4NjUwZWYwM2YyNmFhNGQu
LmUwMDVjN2MwNDI4YzJkYmUwNmMxZmRlNzIxMWZlZDZmODk2ZmQzNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNsYXNzIFJlbmRlclRleHQ7CiAKICNpZiBFTkFCTEUoTk9fTElTVEJPWF9S
RU5ERVJJTkcpCi1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVk
RmxleGlibGVCb3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CitjbGFzcyBSZW5kZXJN
ZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gsIHB1YmxpYyBMaXN0
UG9wdXBNZW51Q2xpZW50IHsKICNlbHNlCi1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBS
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gsIHByaXZhdGUgUG9wdXBNZW51Q2xpZW50IHsKK2Ns
YXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwg
cHVibGljIFBvcHVwTWVudUNsaWVudCB7CiAjZW5kaWYKIAogcHVibGljOgpAQCAtNjEsNiArNjEs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUG9wdXBNZW51Q2xpZW50
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJl
bmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Kik7CkBAIC04OSw2ICs5MCw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlz
dEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNp
Z25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgbWVudVN0
eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNv
bnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgaW50IGNsaWVudEluc2V0UmlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRQ
YWRkaW5nTGVmdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CmluZGV4IDA1YTIzNzMxZDQ4MGE0OWQyYjIzYzNhMjMyYzk4NjUzNjZiMjAwNjYuLmUxYjJkYWQ0
MGQwOTM5YWVmNWJkYmFiNmY3NmY5Zjc5M2UyYjEwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgSW5saW5lQm94OwogY2xh
c3MgSW5saW5lRmxvd0JveDsKIGNsYXNzIE92ZXJsYXBUZXN0UmVxdWVzdENsaWVudDsKIGNsYXNz
IFBhdGg7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBQb3NpdGlvbjsKIGNsYXNzIFJl
bmRlckJveE1vZGVsT2JqZWN0OwogY2xhc3MgUmVuZGVySW5saW5lOwpAQCAtMjk2LDYgKzI5Nyw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVURVJfVEFHKQogICAgIHZpcnR1YWwgYm9vbCBpc01l
dGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBp
c1BvcHVwTWVudUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgRU5BQkxFKFBS
T0dSRVNTX1RBRykKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZmY5MDc3MGYwOTU1Nzg5MTA3
NWRiOTFlMjllMWRmZTc4NzA0YWZiNi4uNTVhNDYyMWI4NWE1NGZjN2JiOWRhOTU4NmFiZmU1MTEy
ZWZkMzk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFJlbmRl
clRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1
cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAot
ICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hS
ZWN0KCksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVw
TWVudSgpLT5zaG93KGJvdW5kaW5nQm94UmVjdCgpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsK
IH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCgpCkBAIC02
MTMsNiArNjEzLDExIEBAIFBvcHVwTWVudVN0eWxlIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGlu
ZTo6bWVudVN0eWxlKCkgY29uc3QKICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGUoc3R5bGUoKS0+
dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3IpLCBzdHlsZSgpLT52aXNpdGVk
RGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBzdHlsZSgpLT5mb250
KCksIHN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFLCBzdHlsZSgpLT5kaXNwbGF5KCkg
PT0gTk9ORSwgc3R5bGUoKS0+dGV4dEluZGVudCgpLCBzdHlsZSgpLT5kaXJlY3Rpb24oKSwgc3R5
bGUoKS0+dW5pY29kZUJpZGkoKSA9PSBPdmVycmlkZSk7CiB9CiAKK0xheW91dFJlY3QgUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lOjpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIHJl
dHVybiBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOworfQorCiBpbnQgUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpjbGllbnRJbnNldExlZnQoKSBjb25zdAogewogICAgIC8vIEluc2V0IHRo
ZSBtZW51IGJ5IHRoZSByYWRpdXMgb2YgdGhlIGNhcCBvbiB0aGUgbGVmdCBzbyB0aGF0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lLmgKaW5kZXggNDc0ZDM1MzY1OWI0OTVlMmM4ZmU2YjI3NGUzMjRkYzBiMTc0NGMwYS4uZjE3
ZjcxM2U0ZDg0OGIxODMyNjk2Y2NmZGVjZmRlMWY0NjE2OGQ0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAt
NTYsNiArNTYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250
cm9sQ2xpcCgpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb250cm9sQ2xpcFJlY3Qo
Y29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQb3B1cE1lbnVD
bGllbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZp
ZWxkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CkBAIC0xMDAsNiArMTAxLDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNv
bnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJ
bmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xp
ZW50SW5zZXRSaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTE0OTM2NDYw
MDQzOWI1N2MwNDY1ODcxZWI5NzFjNzRmNTlkMDY1NC4uNWZmODgzMzBjMTM3MGQ2YTM4MTBjZjg1
ZWRkOTkyYjM1OGE0ZWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
NDQsNiArNDQsNyBAQAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKICNpbmNsdWRlICJQbGF0
Zm9ybUdlc3R1cmVFdmVudC5oIgogI2VuZGlmCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50Lmgi
CiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJSZW5kZXJUcmVlQXNUZXh0LmgiCkBAIC00MzUsNCArNDM2LDQzIEBAIHZvaWQgSW50ZXJuYWxz
OjpzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqIGVsZW1lbnQsIGxvbmcgeCwgbG9uZyB5LCBs
b25nIHcsIGxvCiAgICAgZnJhbWVWaWV3LT5zY3JvbGxFbGVtZW50VG9SZWN0KGVsZW1lbnQsIElu
dFJlY3QoeCwgeSwgdywgaCkpOwogfQogCitpbnQgSW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRp
bmdMZWZ0KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICgh
ZWxlbWVudCB8fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJTlZBTElEX0FD
Q0VTU19FUlI7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQo
KS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5p
c1BvcHVwTWVudUNsaWVudCgpKQorICAgICAgICByZXR1cm4gdG9Qb3B1cE1lbnVDbGllbnQocmVu
ZGVyZXIpLT5jbGllbnRQYWRkaW5nTGVmdCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgSW50
ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdSaWdodChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkp
IHsKKyAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgcmV0dXJuIDA7CisgICAg
fQorICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJl
cigpOworICAgIGlmIChyZW5kZXJlci0+aXNQb3B1cE1lbnVDbGllbnQoKSkKKyAgICAgICAgcmV0
dXJuIHRvUG9wdXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+Y2xpZW50UGFkZGluZ1JpZ2h0KCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8Q2xpZW50UmVjdD4gSW50ZXJuYWxzOjpwb3B1
cENsaWVudEJvdW5kaW5nQm94UmVjdChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBDbGllbnRSZWN0Ojpj
cmVhdGUoKTsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVs
ZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgp
KQorICAgICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHRvUG9wdXBNZW51Q2xpZW50KHJl
bmRlcmVyKS0+Ym91bmRpbmdCb3hSZWN0KCkpOworICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVh
dGUoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNDEwYjZlZDhk
Nzg0MDQ4NWYzNGNhY2U4NWU5NTcxOGYxOTk2ZWRjMy4uYTNkYzkzZGY4MGU3ZmFiYzgyZmQyMGU0
NDNmNzUwOTFjZDU5ODdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zOCw3
ICszOCw5IEBAIGNsYXNzIENsaWVudFJlY3Q7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBOb2RlOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgUmFuZ2U7Citj
bGFzcyBSZW5kZXJPYmplY3Q7CiAKIGNsYXNzIEludGVybmFscyA6IHB1YmxpYyBSZWZDb3VudGVk
PEludGVybmFscz4gewogcHVibGljOgpAQCAtOTIsNiArOTQsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U3VnZ2VzdGVkVmFsdWUoRWxlbWVudCogaW5wdXRFbGVtZW50LCBjb25zdCBTdHJpbmcm
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQq
LCBsb25nIHgsIGxvbmcgeSwgbG9uZyB3LCBsb25nIGgsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAg
IGludCBwb3B1cENsaWVudFBhZGRpbmdMZWZ0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7Cisg
ICAgaW50IHBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7
CisgICAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChF
bGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVy
bmFsc0lkOwogCiAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhEb2N1bWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5MDk5ODlkYTJh
MmEyZDQyYzdmOWZjYTUyMmMwNzg1Mzc1YzE3NzVmLi43Y2NlMzQ1NDA1NTlkMzViNDU3NDI5NmNm
ZWI5M2FlMzhmZmU2MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC02
Nyw2ICs2NywxMCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBwYWludENvbnRyb2xU
aW50cyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCiAgICAg
ICAgIHZvaWQgc2Nyb2xsRWxlbWVudFRvUmVjdChpbiBFbGVtZW50IGVsZW1lbnQsIGluIGxvbmcg
eCwgaW4gbG9uZyB5LCBpbiBsb25nIHcsIGluIGxvbmcgaCkgcmFpc2VzIChET01FeGNlcHRpb24p
OworCisgICAgICAgIGludCBwb3B1cENsaWVudFBhZGRpbmdMZWZ0KGluIEVsZW1lbnQgZWxlbWVu
dCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5n
UmlnaHQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IENsaWVudFJlY3QgcG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QoaW4gRWxlbWVudCBlbGVtZW50
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA0OTA1Yjg5ZWQ0ZTJkZDMzYWJiY2I3MTU0YWEyMWRlYzhmNTAyYWU4Li4zODcx
NWRiZjViZTg0ZDRlZjdkZGYyM2I2NzFlOThlM2RkNGJlYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEwLTEzICBGYWR5IFNhbXVlbCAgPGZzYW11
ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFraW5nIFBvcHVwTWVudUNsaWVu
dCBtb3JlIHRlc3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgICog
c3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0
aW9ucyk6CisgICAgICAgICogdGVzdHMvUG9wdXBNZW51VGVzdC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlRlc3RQb3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVjdCk6CisKIDIwMTEtMTAtMTMg
IEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENsZWFudXAgb2Yg
SFRNTFNlbGVjdEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcAppbmRleCAzNGExODRmMTg5N2ZkYmUxZTc3YzQ1
OGEzNmViYWE3NzNlZGIxNzU0Li5mNzdiNjhhMTYyMGMwZDQ1M2FhNjBkNWQ1NTcwMWFhZDkyOTg1
ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVw
TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQ
b3B1cE1lbnVDbGllbnQuY3BwCkBAIC0yMTYsNiArMjE2LDEzIEBAIGludCBBdXRvZmlsbFBvcHVw
TWVudUNsaWVudDo6Y2xpZW50UGFkZGluZ1JpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gUmVuZGVy
VGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KHN0eWxlKTsK
IH0KIAorV2ViQ29yZTo6TGF5b3V0UmVjdCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Ym91bmRp
bmdCb3hSZWN0KCkgY29uc3QKK3sKKyAgICBpZiAobV90ZXh0RmllbGQpCisgICAgICAgIHJldHVy
biBtX3RleHRGaWVsZC0+Z2V0UmVjdCgpOworICAgIHJldHVybiBXZWJDb3JlOjpMYXlvdXRSZWN0
KCk7Cit9CisKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnBvcHVwRGlkSGlkZSgpCiB7
CiAgICAgV2ViVmlld0ltcGwqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaAppbmRleCA3
ZDJiOTg1YTJjMmNjZTNkMDg5OTc0YzBjYjU4ZTYyNjhkNThjN2IzLi44ZTJlYzgzODc3YzQ0NTE2
MzllNjc5ZWQyMmU1YTBjZjM0NjMyNDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNp
Zm5kZWYgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnRfaAogI2RlZmluZSBBdXRvZmlsbFBvcHVwTWVu
dUNsaWVudF9oCiAKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2luY2x1ZGUgIlBvcHVwTWVu
dUNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Miw2ICs4Myw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNv
bnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2ln
bmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQb3B1cE1lbnVTdHls
ZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkxheW91dFJlY3QgYm91
bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0UmlnaHQoKSBj
b25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgY2xpZW50UGFkZGluZ0xlZnQoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBk
MjUxOGVkMGQwZjhhYzg0NTEwZmNiNjExZjcxMzQ5YjZmYWE4NWVkLi5lNzFiMzJkOTMyNDEwYjlm
YTVlYTFjMjg2ZjhkNjBlOGM5NGZiMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCkBAIC0yMjQxLDcgKzIyNDEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjph
cHBseUF1dG9maWxsU3VnZ2VzdGlvbnMoCiAgICAgaWYgKG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcp
IHsKICAgICAgICAgcmVmcmVzaEF1dG9maWxsUG9wdXAoKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBtX2F1dG9maWxsUG9wdXAtPnNob3dJblJlY3QoZm9jdXNlZE5vZGUtPmdldFJlY3QoKSwgZm9j
dXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKKyAgICAgICAgbV9hdXRvZmls
bFBvcHVwLT5zaG93SW5SZWN0KG1fYXV0b2ZpbGxQb3B1cENsaWVudC0+Ym91bmRpbmdCb3hSZWN0
KCksIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwgMCk7CiAgICAgICAgIG1f
YXV0b2ZpbGxQb3B1cFNob3dpbmcgPSB0cnVlOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCmluZGV4IGIzOTViOTMwMTdjZGJiMWYx
MjgwMTliYWQxY2M4NDM5NmNjN2EzMTYuLmRjYmM0NDQ3NTMwOTgxMDYxZTVkZmU3NTg1Y2YzMjM0
ZWMyMjQyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBN
ZW51VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVU
ZXN0LmNwcApAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBQb3B1cE1l
bnVTdHlsZShDb2xvcjo6YmxhY2ssIENvbG9yOjp3aGl0ZSwgZm9udCwgdHJ1ZSwgZmFsc2UsIExl
bmd0aCgpLCBUZXh0RGlyZWN0aW9uKCksIGZhbHNlIC8qIGhhcyB0ZXh0IGRpcmVjdGlvbiBvdmVy
cmlkZSAqLyk7CiAgICAgfQogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgbWVudVN0eWxlKCkg
Y29uc3QgeyByZXR1cm4gaXRlbVN0eWxlKDApOyB9CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJv
dW5kaW5nQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFJlY3QoKTsgfQogICAgIHZpcnR1
YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFs
IGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwg
aW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgeyByZXR1cm4gMDsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110927</attachid>
            <date>2011-10-13 16:25:28 -0700</date>
            <delta_ts>2011-10-13 22:10:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111013192526.patch</filename>
            <type>text/plain</type>
            <size>31341</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0MTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMjM3NmI2NGIyNTE2MGY1MzA4OGQ0
MDZiNzk3ZmUyNmY2NTk1OTczLi5lYjlhZjFmZTJjNmQzMjUwOGMwNzQ0ZTEwNDY0MThkNjA0YjEw
ODAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0xMC0xMyAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MDA2OQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQt
dGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVu
dC10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODNlODkxYmI1ZTIwZmUwNzliMTVlZDVm
MzkyNWU4NGEwODM1Mjk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cG9wdXAtbWVudS1jbGllbnQtdGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorUEFT
UyBwb3B1cENsaWVudFBhZGRpbmdMZWZ0IGlzIDQKK1BBU1MgcG9wdXBDbGllbnRQYWRkaW5nUmln
aHQgaXMgMgorRkFJTCBib3VuZGluZ0JveFJlY3QubGVmdCBzaG91bGQgYmUgMTAuIFdhcyAyMC4K
K0ZBSUwgYm91bmRpbmdCb3hSZWN0LnRvcCBzaG91bGQgYmUgMTAuIFdhcyAyMC4KK1BBU1MgYm91
bmRpbmdCb3hSZWN0LndpZHRoIGlzIGJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aAorUEFTUyBib3Vu
ZGluZ0JveFJlY3QuaGVpZ2h0IGlzIGJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcz
NzYxNzY1YzNkYWUzNGJiNzUxMTVhM2YxMjEyYzRkMGJhMzk3OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPGJvZHk+CisgICAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICAgIDxzZWxlY3QgaWQ9InNlbGVjdGVsZW1lbnQiPgorICAgICAg
ICA8b3B0aW9uPkVsZW1lbnQgMTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPkVsZW1lbnQgMjwv
b3B0aW9uPgorICAgICAgICA8b3B0aW9uPkVsZW1lbnQgMzwvb3B0aW9uPgorICAgICAgPC9zZWxl
Y3Q+CisgICAgPC9ib2R5PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgc2VsZWN0RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3RlbGVtZW50Iik7CisgICAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWwgZmFpbCBpZiB0
aGUgcGFnZSBzY2FsZSBmYWN0b3IgIT0gMS4wCisgICAgICAgIHZhciBwYWdlU2NhbGVGYWN0b3Ig
PSAyLjA7CisgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHBhZ2VTY2FsZUZhY3Rvciwg
MCwgMCk7CisKKyAgICAgICAgdmFyIHBvcHVwQ2xpZW50UGFkZGluZ0xlZnQgPSB3aW5kb3cuaW50
ZXJuYWxzLnBvcHVwQ2xpZW50UGFkZGluZ0xlZnQoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZh
ciBwb3B1cENsaWVudFBhZGRpbmdSaWdodCA9IHdpbmRvdy5pbnRlcm5hbHMucG9wdXBDbGllbnRQ
YWRkaW5nUmlnaHQoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZhciBib3VuZGluZ0JveFJlY3Qg
PSB3aW5kb3cuaW50ZXJuYWxzLnBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KHNlbGVjdEVsZW1l
bnQpOworICAgICAgICB2YXIgYm91bmRpbmdDbGllbnRSZWN0ID0gc2VsZWN0RWxlbWVudC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgc2hvdWxkQmUoInBvcHVwQ2xpZW50UGFkZGlu
Z0xlZnQiLCAiNCIpOworICAgICAgICBzaG91bGRCZSgicG9wdXBDbGllbnRQYWRkaW5nUmlnaHQi
LCAiMiIpOworICAgICAgICBzaG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LmxlZnQiLCAiYm91bmRp
bmdDbGllbnRSZWN0LmxlZnQiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC50
b3AiLCAiYm91bmRpbmdDbGllbnRSZWN0LnRvcCIpOworICAgICAgICBzaG91bGRCZSgiYm91bmRp
bmdCb3hSZWN0LndpZHRoIiwgImJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCIpOworICAgICAgICBz
aG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LmhlaWdodCIsICJib3VuZGluZ0NsaWVudFJlY3QuaGVp
Z2h0Iik7CisgICAgICB9CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIH0KKyAg
ICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
c2NyaXB0PgorICA8L2hlYWQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDEwNTFj
MGNlNmQ2MTE4Y2YwNzI3MDhiNmE0MDNhMDE0M2ViMDlmYjkuLjMxOTQ3MmY5MWUxZDU0MTM2ZGMy
YWJjNDJjYjAwNjNmNWQ2YmE2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDM1LDYgKzEw
MzUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vTGlua0hhc2guY3BwCiAg
ICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cAorICAgIHBsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5jcHAKICAgICBwbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCiAg
ICAgcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E1YTg2MmQ4MDAw
MjgwNGZmZGVhMTZhYmMxOWQyNzNjMWNmYjU0OS4uMTVkZDIxNDRkMmIzYTQ1NWFmNjJmYWNkNzU3
MjU1MDY4ZmRiYmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDExLTEwLTEzICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFr
aW5nIFBvcHVwTWVudUNsaWVudCBtb3JlIHRlc3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNvbWUgZnVuY3Rpb25zIHRvIHdpbmRvdy5p
bnRlcm5hbHMgdG8gYWxsb3cgdGVzdGluZyBvZiBwYXJ0cyBvZiBQb3B1cE1lbnVDbGllbnQuCisK
KyAgICAgICAgVGVzdDogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1
cE1lbnVDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvUG9wdXBNZW51Q2xp
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVu
dUxpc3Q6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6Ym91
bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdDo6aXNQb3B1cE1l
bnVDbGllbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNQb3B1cE1lbnVDbGllbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpib3VuZGluZ0JveFJlY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aXNQb3B1cE1lbnVDbGllbnQp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6cG9wdXBDbGllbnRQYWRkaW5nTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6cG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTEwLTEz
ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggTGVvcGFy
ZCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMDI0ZDE3MGQ2ZGY3MWNj
NzY1YjQ1Zjk5YTA1YjFlYTdlMmJiMWMzYy4uMjkwY2YwM2UxNDc0ODVlZmJiM2IxYmFhZDc5N2Q0
N2UxMzcxNGNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yODAxLDYgKzI4
MDEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BP
REludGVydmFsVHJlZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1Ry
ZWUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1
cE1lbnVTdHlsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU0NzNiYTk1NzIyMWViOTg1YjZhOTE2Y2E0Mzcw
MzYzZTNlNTE2ZjAuLjI4OWU3NzdlMjA0MTQzZmRiM2JiMzMzMGUyYTc2OTBjYTViYTlhYmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNjQsNiArMjY0LDcgQEAgX19aTjdXZWJDb3JlMTJJY29u
RGF0YWJhc2U1Y2xvc2VFdgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U5c2V0Q2xpZW50RVBO
U18xOEljb25EYXRhYmFzZUNsaWVudEUKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlQzFFdgog
X19aTjdXZWJDb3JlMTJKU0RPTVdyYXBwZXIzNHZpcnR1YWxGdW5jdGlvblRvUHJldmVudFdlYWtW
dGFibGVFdgorX19aTjdXZWJDb3JlMTd0b1BvcHVwTWVudUNsaWVudEVQTlNfMTJSZW5kZXJPYmpl
Y3RFCiBfX1pON1dlYkNvcmUxMlBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUK
IF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2Np
CiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJL
TlNfOUZsb2F0U2l6ZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzYjg4MTNkMTM0ZTVmMjM2ZDcyNTNm
ZjFhNzc0MTY3MWFjMzA3NDdjLi5iMjNkZGQ4MTAxOTZlMTNiODliOTJmY2FlZDc5ZmQ1NjRiYTJh
ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MTg1LDYgKzYxODUsOCBAQAogICAgICAgICAgICAg
J3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCcsCiAgICAgICAgICAgICAndGVzdGluZy9JbnRlcm5hbHMuaCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL1BvcHVwTWVudUNsaWVudC5jcHAnLAogICAgICAgICBdLAogICAgICAgICAnd2ViY29yZV9y
ZXNvdXJjZV9maWxlcyc6IFsKICAgICAgICAgICAgICdFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3MnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggNDkyN2NmNDdlOTdhZDc4YTRjNGJjZTg3
NTQ0N2EzMTQ1YTQwNDdmNi4uZjU0YjVhYWVjYzY3ZDk2MzNmMGIxYTRiMzc5Nzg4ZGVlYTg4NjQw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0xMTA3NCw2ICsxMTA3NCw3IEBAIF9fWk43V2ViQ29y
ZTE3SlNBcnJheUJ1ZmZlclZpZXdDMkVQTjNKU0M5U3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RU4zV1RGCiBfX1pON1dlYkNvcmUzNGpzV2ViR0xSZW5kZXJpbmdDb250ZXh0U1RBVElD
X0RSQVdFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQog
X19aTjdXZWJDb3JlNTBqc1dlYkdMUmVuZGVyaW5nQ29udGV4dFByb3RvdHlwZUZ1bmN0aW9uQnVm
ZmVyRGF0YUVQTjNKU0M5RXhlY1N0YXRlRQogX19aTjdXZWJDb3JlMTd0b0FycmF5QnVmZmVyVmll
d0VOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTd0b1BvcHVwTWVudUNsaWVudEVQTlNfMTJS
ZW5kZXJPYmplY3RFCiBfX1pON1dlYkNvcmUyMVdlYkdMUmVuZGVyaW5nQ29udGV4dDEwYnVmZmVy
RGF0YUVqUE5TXzE1QXJyYXlCdWZmZXJWaWV3RWpSaQogX19aTjdXZWJDb3JlMjFXZWJHTFJlbmRl
cmluZ0NvbnRleHQyOHZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRlcnNFamoKIF9fWk43V2ViQ29y
ZTExV2ViR0xCdWZmZXIxOWFzc29jaWF0ZUJ1ZmZlckRhdGFFUE5TXzE1QXJyYXlCdWZmZXJWaWV3
RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybwppbmRleCBhOGUzMzMxYzBiN2FhNDRjODBjNDc5NjEwODU2OTBkYjQ4NDkw
YzhjLi4wM2RkYWQwOTEwY2E1OTg1Yjc3N2NmOWIyOWRmZTE5ZDIxMmM2YTdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtMTA3NCw2ICsxMDc0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuY3BwIFwKKyAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwIFwKICAgICBwbGF0Zm9y
bS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcCBcCiAgICAgcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKQEAg
LTIxNjAsNiArMjE2MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL1RpbWVyLmggXAog
ICAgIHBsYXRmb3JtL1dpZGdldC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMu
aCBcCisgICAgcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggXAogICAgIHBsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmggXAogICAgIHBs
dWdpbnMvRE9NTWltZVR5cGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDI0YThmMWM2NjM3YTQzZGM2YTZhMTI1MTA5OGFk
YWQ1MTU1YzEzMS4uOWY5NTBjMTYzODhlYTRhMjI4MzkwZmQ4NDA2ZTI1ODY1Y2FkOTUyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTQ3NSw2ICs1NDc1LDcgQEAKIAkJQzZGNDEwNDcxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5
QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLzsgfTsKIAkJQ0EzQkY2
N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0FGMDc5Mjkx
NDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUYwNzkyODE0NDc5NDBFMDAzMkE1QUQgLyog
UG9wdXBNZW51Q2xpZW50LmNwcCAqLzsgfTsKIAkJQ0QwREJGMDExNDIyNzY4NTAwMjgwMjYzIC8q
IElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMDAud2F2IGluIENvcHkgQXVkaW8gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMERCRDIwMTQyMjc1OTUw
MDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDAwLndhdiAqLzsgfTsKIAkJ
Q0QwREJGMDIxNDIyNzY4NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1Aw
MTUud2F2IGluIENvcHkgQXVkaW8gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMERCRDIxMTQyMjc1OTUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAx
OTVfVDAwMF9QMDE1LndhdiAqLzsgfTsKIAkJQ0QwREJGMDMxNDIyNzY4NTAwMjgwMjYzIC8qIElS
Q19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMzAud2F2IGluIENvcHkgQXVkaW8gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMERCRDIyMTQyMjc1OTUwMDI4
MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDMwLndhdiAqLzsgfTsKQEAgLTEy
NzczLDYgKzEyNzc0LDcgQEAKIAkJQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFbnRyeUJhc2UuY3Bw
OyBwYXRoID0gZmlsZWFwaS9FbnRyeUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Ny
b2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQW5p
bWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0FGMDc5MjgxNDQ3OTQwRTAw
MzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQb3B1cE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDBEQkQyMDE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1Qw
MDBfUDAwMC53YXYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBhdWRpby53YXY7IG5hbWUgPSBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDAwLndh
djsgcGF0aCA9IHBsYXRmb3JtL2F1ZGlvL3Jlc291cmNlcy9JUkNfQ29tcG9zaXRlX0NfUjAxOTVf
VDAwMF9QMDAwLndhdjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlDRDBEQkQyMTE0
MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXYgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7
IG5hbWUgPSBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1LndhdjsgcGF0aCA9IHBsYXRm
b3JtL2F1ZGlvL3Jlc291cmNlcy9JUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1Lndhdjsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlDRDBEQkQyMjE0MjI3NTk1MDAyODAyNjMg
LyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAzMC53YXYgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7IG5hbWUgPSBJUkNfQ29t
cG9zaXRlX0NfUjAxOTVfVDAwMF9QMDMwLndhdjsgcGF0aCA9IHBsYXRmb3JtL2F1ZGlvL3Jlc291
cmNlcy9JUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDMwLndhdjsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwpAQCAtMjAwNDQsNiArMjAwNDYsNyBAQAogCQkJCUJDQkI4QUI3MTNGMUFG
QjAwMDczNERGMCAvKiBQT0RSZWRCbGFja1RyZWUuaCAqLywKIAkJCQkwNjY4RTE4OTBBREQ5NjI0
MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi8sCiAJCQkJQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1
IC8qIFBvcHVwTWVudUNsaWVudC5oICovLAorCQkJCUNBRjA3OTI4MTQ0Nzk0MEUwMDMyQTVBRCAv
KiBQb3B1cE1lbnVDbGllbnQuY3BwICovLAogCQkJCUJDM0JFMTJBMEU5ODA5MkYwMDgzNTU4OCAv
KiBQb3B1cE1lbnVTdHlsZS5oICovLAogCQkJCUU0RDY4Nzc4MEVEN0FFNEYwMDZFQTk3OCAvKiBQ
dXJnZWFibGVCdWZmZXIuaCAqLywKIAkJCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVy
Z2VQcmlvcml0eS5oICovLApAQCAtMjc0NjcsNiArMjc0NzAsNyBAQAogCQkJCTMxMDYwMzdBMTQz
MjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTI5QUNCMjE0MTQzRTc0OTgwMDZCQ0E1RiAvKiBBY2Nlc3NpYmlsaXR5TW9ja09iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjA5MDg3RjE0NDRGREIyMDAwMjg5MTcgLyogU2Ny
b2xsYmFyVGhlbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0FGMDc5MjkxNDQ3OTQwRTAwMzJB
NUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUFGMkQ2QzE0
NDM1RDIxMDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5RkM3QTUwMTQ0NEFGNUYwMEE1RDg2NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bv
cHVwTWVudUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UyNDg0YTA2NDZkNDBmZGMyNDEwYTNjZDJh
ZmRlMTRkOWM0ZTI3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BvcHVwTWVudUNsaWVudC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKworI2luY2x1ZGUgIlJlbmRl
ck1lbnVMaXN0LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY29uc3QgUG9wdXBNZW51Q2xpZW50KiB0b1BvcHVwTWVudUNsaWVudChSZW5kZXJP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzUG9wdXBN
ZW51Q2xpZW50KCkpOworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gMDsKKworICAg
IC8vIFNwZWNpYWwgY2FzZTogUmVuZGVyTWVudUxpc3QgdXNlcyBtdWx0aXBsZSBpbmhlcml0YW5j
ZSBhbmQgc28sCisgICAgLy8gZGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciwgd2UgbWF5IGVuZCB1
cCBpbiBhIHNpdHVhdGlvbiB3aGVyZQorICAgIC8vIHRoZSBmaXJzdCB2cHRyIGRvZXMgbm90IHBv
aW50IHRvIHRoZSBQb3B1cE1lbnVDbGllbnQncyB2dGFibGUsCisgICAgLy8gYW5kIHNvIHdlJ2Qg
ZW5kIHVwIGNhbGxpbmcgdGhlIHdyb25nIG1ldGhvZC4gVGh1cywgd2UgZmlyc3QgY2FzdCB0bwor
ICAgIC8vIFJlbmRlck1lbnVMaXN0IGFuZCB0aGVuIHRvIFBvcHVwTWVudUNsaWVudCB3aGljaCB3
aWxsIGF1dG9tYWdpY2FsbHkKKyAgICAvLyB0YWtlIGludG8gYWNjb3VudCB0aHVua2luZyBpZiBu
ZWNlc3NhcnkgKHRoZSBjYXN0aW5nIHdpbGwgYWN0dWFsbHkgc2hpZnQKKyAgICAvLyB0aGUgcG9p
bnRlciBvdmVyIHRvIHRoZSBQb3B1cE1lbnVDbGllbnQgcGFydCBvZiB0aGUgb2JqZWN0KS4KKyAg
ICBpZiAob2JqZWN0LT5pc01lbnVMaXN0KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQ
b3B1cE1lbnVDbGllbnQqPih0b1JlbmRlck1lbnVMaXN0KG9iamVjdCkpOworCisgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8UG9wdXBNZW51Q2xpZW50Kj4ob2JqZWN0KTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAppbmRleCBmMzNiOWUyMWI4OTEw
NTRkNTQzZTI3MTg2ZWY0ODI3NTkwMjc3YjY3Li5lNDdmOGYwOTc0YjIzMWVlMzVkNDcxZWNiMmUx
ODgxZmE1M2ZlMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1l
bnVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQu
aApAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBQb3B1cE1lbnVDbGllbnRfaAogI2RlZmluZSBQ
b3B1cE1lbnVDbGllbnRfaAogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlICJQ
b3B1cE1lbnVTdHlsZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KQEAgLTMxLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
Q29sb3I7CiBjbGFzcyBGb250U2VsZWN0b3I7CiBjbGFzcyBIb3N0V2luZG93OworY2xhc3MgUmVu
ZGVyT2JqZWN0OwogY2xhc3MgU2Nyb2xsYmFyOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiAKQEAg
LTQ5LDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVu
c2lnbmVkIGxpc3RJbmRleCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUg
aXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUG9w
dXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgTGF5b3V0UmVj
dCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5z
ZXRMZWZ0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0UmlnaHQoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50UGFkZGluZ0xlZnQoKSBjb25zdCA9IDA7
CkBAIC02OSw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xs
YmFyPiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEqLCBTY3JvbGxiYXJPcmllbnRhdGlv
biwgU2Nyb2xsYmFyQ29udHJvbFNpemUpID0gMDsKIH07CiAKK2NvbnN0IFBvcHVwTWVudUNsaWVu
dCogdG9Qb3B1cE1lbnVDbGllbnQoUmVuZGVyT2JqZWN0Kik7CisKICNpZiBFTkFCTEUoTk9fTElT
VEJPWF9SRU5ERVJJTkcpCiBjbGFzcyBMaXN0UG9wdXBNZW51Q2xpZW50IDogcHVibGljIFBvcHVw
TWVudUNsaWVudCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAppbmRleCAzZjM1NmE2OGVjMGNkOWNjYzRlZjFmZjkxZDE5M2RkYzZiNmJlNTEy
Li5kZGY1ZThiYmFhMDMzNjIyNWZhNjY1ZGY3ODM1NGQxN2MyNzY1NjJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTMwMywxMyArMzAzLDcgQEAg
dm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkKICAgICBIVE1MU2VsZWN0RWxlbWVudCog
c2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsK
ICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsKIAotICAgIC8vIENvbXB1dGUgdGhlIHRvcCBs
ZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVzZQotICAgIC8vIHRoZSBh
Y3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUgcG9wdXAuCi0gICAgRmxvYXRQ
b2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRy
dWUpOwotICAgIExheW91dFJlY3QgYWJzQm91bmRzID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJ
Z25vcmluZ1RyYW5zZm9ybXMoKTsKLSAgICBhYnNCb3VuZHMuc2V0TG9jYXRpb24ocm91bmRlZElu
dFBvaW50KGFic1RvcExlZnQpKTsKLSAgICBtX3BvcHVwLT5zaG93KGFic0JvdW5kcywgZG9jdW1l
bnQoKS0+dmlldygpLAotICAgICAgICBzZWxlY3QtPm9wdGlvblRvTGlzdEluZGV4KHNlbGVjdC0+
c2VsZWN0ZWRJbmRleCgpKSk7CisgICAgbV9wb3B1cC0+c2hvdyhib3VuZGluZ0JveFJlY3QoKSwg
ZG9jdW1lbnQoKS0+dmlldygpLCBzZWxlY3QtPm9wdGlvblRvTGlzdEluZGV4KHNlbGVjdC0+c2Vs
ZWN0ZWRJbmRleCgpKSk7CiB9CiAKIHZvaWQgUmVuZGVyTWVudUxpc3Q6OmhpZGVQb3B1cCgpCkBA
IC01MDYsNiArNTAwLDE2IEBAIFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBSZW5kZXJNZW51TGlzdDo6
Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlCiAgICAgcmV0dXJuIHdp
ZGdldC5yZWxlYXNlKCk7CiB9CiAKK0xheW91dFJlY3QgUmVuZGVyTWVudUxpc3Q6OmJvdW5kaW5n
Qm94UmVjdCgpIGNvbnN0Cit7CisgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQgdGFraW5nIHRy
YW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCisgICAgLy8gdGhlIGFjdHVhbCB3aWR0aCBv
ZiB0aGUgZWxlbWVudCB0byBzaXplIHRoZSBwb3B1cC4KKyAgICBGbG9hdFBvaW50IGFic1RvcExl
ZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgTGF5
b3V0UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNm
b3JtcygpOworICAgIGFic0JvdW5kcy5zZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQoYWJzVG9w
TGVmdCkpOworICAgIHJldHVybiBhYnNCb3VuZHM7Cit9CisKIGludCBSZW5kZXJNZW51TGlzdDo6
Y2xpZW50SW5zZXRMZWZ0KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggNzNmOTgxYjE5OTc4NTVhODliNTVjZWJj
Mzg2NTBlZjAzZjI2YWE0ZC4uZTAwNWM3YzA0MjhjMmRiZTA2YzFmZGU3MjExZmVkNmY4OTZmZDM0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTM5LDkg
KzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVuZGVyVGV4dDsKIAogI2lmIEVO
QUJMRShOT19MSVNUQk9YX1JFTkRFUklORykKLWNsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGlj
IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHJpdmF0ZSBMaXN0UG9wdXBNZW51Q2xpZW50
IHsKK2NsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveCwgcHVibGljIExpc3RQb3B1cE1lbnVDbGllbnQgewogI2Vsc2UKLWNsYXNzIFJlbmRlck1l
bnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHJpdmF0ZSBQb3B1
cE1lbnVDbGllbnQgeworY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LCBwdWJsaWMgUG9wdXBNZW51Q2xpZW50IHsKICNlbmRpZgogCiBwdWJs
aWM6CkBAIC02MSw2ICs2MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNQb3B1cE1lbnVDbGllbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZv
cmVDaGlsZCA9IDApOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3Qq
KTsKQEAgLTg5LDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5h
YmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5
bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1
cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91
bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRSaWdodCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMDVhMjM3MzFkNDgwYTQ5ZDJiMjNjM2EyMzJjOTg2NTM2
NmIyMDA2Ni4uZTFiMmRhZDQwZDA5MzlhZWY1YmRiYWI2Zjc2ZjlmNzkzZTJiMTBhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTIsNiArNTIsNyBAQCBjbGFz
cyBJbmxpbmVCb3g7CiBjbGFzcyBJbmxpbmVGbG93Qm94OwogY2xhc3MgT3ZlcmxhcFRlc3RSZXF1
ZXN0Q2xpZW50OwogY2xhc3MgUGF0aDsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIFBv
c2l0aW9uOwogY2xhc3MgUmVuZGVyQm94TW9kZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJJbmxpbmU7
CkBAIC0yOTYsNiArMjk3LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRVRFUl9UQUcpCiAgICAg
dmlydHVhbCBib29sIGlzTWV0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCisg
ICAgdmlydHVhbCBib29sIGlzUG9wdXBNZW51Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBm
ZjkwNzcwZjA5NTU3ODkxMDc1ZGI5MWUyOWUxZGZlNzg3MDRhZmI2Li41NWE0NjIxYjg1YTU0ZmM3
YmI5ZGE5NTg2YWJmZTUxMTJlZmQzOTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMTc0LDcgKzE3
NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXAoKQogICAg
ICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFy
Y2hlcyk7CiAgICAgfQogCi0gICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnNob3coYWJz
b2x1dGVCb3VuZGluZ0JveFJlY3QoKSwgZG9jdW1lbnQoKS0+dmlldygpLCAtMSk7CisgICAgbV9z
ZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnNob3coYm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50
KCktPnZpZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6
aGlkZVBvcHVwKCkKQEAgLTYxMyw2ICs2MTMsMTEgQEAgUG9wdXBNZW51U3R5bGUgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjptZW51U3R5bGUoKSBjb25zdAogICAgIHJldHVybiBQb3B1cE1l
bnVTdHlsZShzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvciks
IHN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xv
ciksIHN0eWxlKCktPmZvbnQoKSwgc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUsIHN0
eWxlKCktPmRpc3BsYXkoKSA9PSBOT05FLCBzdHlsZSgpLT50ZXh0SW5kZW50KCksIHN0eWxlKCkt
PmRpcmVjdGlvbigpLCBzdHlsZSgpLT51bmljb2RlQmlkaSgpID09IE92ZXJyaWRlKTsKIH0KIAor
TGF5b3V0UmVjdCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmJvdW5kaW5nQm94UmVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGFic29sdXRlQm91bmRpbmdCb3hSZWN0KCk7Cit9CisKIGlu
dCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNsaWVudEluc2V0TGVmdCgpIGNvbnN0CiB7
CiAgICAgLy8gSW5zZXQgdGhlIG1lbnUgYnkgdGhlIHJhZGl1cyBvZiB0aGUgY2FwIG9uIHRoZSBs
ZWZ0IHNvIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA0NzRkMzUzNjU5YjQ5NWUyYzhmZTZiMjc0ZTMy
NGRjMGIxNzQ0YzBhLi5mMTdmNzEzZTRkODQ4YjE4MzI2OTZjY2ZkZWNmZGUxZjQ2MTY4ZDQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGhhc0NvbnRyb2xDbGlwKCkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGNvbnRyb2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBpc1BvcHVwTWVudUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKQEAgLTEwMCw2
ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2ln
bmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBpdGVtU3R5
bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxl
IG1lbnVTdHlsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3VuZGluZ0JveFJl
Y3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldExlZnQoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQg
Y2xpZW50UGFkZGluZ0xlZnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCBlMTQ5MzY0NjAwNDM5YjU3YzA0NjU4NzFlYjk3MWM3NGY1OWQwNjU0Li41ZmY4ODMz
MGMxMzcwZDZhMzgxMGNmODVlZGQ5OTJiMzU4YTRlZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRT
KQogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUV2ZW50LmgiCiAjZW5kaWYKKyNpbmNsdWRlICJQ
b3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKQEAgLTQzNSw0ICs0MzYsNDMg
QEAgdm9pZCBJbnRlcm5hbHM6OnNjcm9sbEVsZW1lbnRUb1JlY3QoRWxlbWVudCogZWxlbWVudCwg
bG9uZyB4LCBsb25nIHksIGxvbmcgdywgbG8KICAgICBmcmFtZVZpZXctPnNjcm9sbEVsZW1lbnRU
b1JlY3QoZWxlbWVudCwgSW50UmVjdCh4LCB5LCB3LCBoKSk7CiB9CiAKK2ludCBJbnRlcm5hbHM6
OnBvcHVwQ2xpZW50UGFkZGluZ0xlZnQoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5yZW5kZXJlcigpKSB7CisgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBl
bGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKKyAg
ICBpZiAocmVuZGVyZXItPmlzUG9wdXBNZW51Q2xpZW50KCkpCisgICAgICAgIHJldHVybiB0b1Bv
cHVwTWVudUNsaWVudChyZW5kZXJlciktPmNsaWVudFBhZGRpbmdMZWZ0KCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK2ludCBJbnRlcm5hbHM6OnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQq
IGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8fCAhZWxl
bWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAg
ICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVu
dCgpKQorICAgICAgICByZXR1cm4gdG9Qb3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5jbGllbnRQ
YWRkaW5nUmlnaHQoKTsKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxDbGllbnRSZWN0
PiBJbnRlcm5hbHM6OnBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KEVsZW1lbnQqIGVsZW1lbnQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+cmVu
ZGVyZXIoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0
dXJuIENsaWVudFJlY3Q6OmNyZWF0ZSgpOworICAgIH0KKyAgICBlbGVtZW50LT5kb2N1bWVudCgp
LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICBpZiAocmVuZGVyZXItPmlz
UG9wdXBNZW51Q2xpZW50KCkpCisgICAgICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUodG9Q
b3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5ib3VuZGluZ0JveFJlY3QoKSk7CisgICAgcmV0dXJu
IENsaWVudFJlY3Q6OmNyZWF0ZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA0MTBiNmVkOGQ3ODQwNDg1ZjM0Y2FjZTg1ZTk1NzE4ZjE5OTZlZGMzLi5hM2RjOTNk
ZjgwZTdmYWJjODJmZDIwZTQ0M2Y3NTA5MWNkNTk4N2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTM4LDcgKzM4LDkgQEAgY2xhc3MgQ2xpZW50UmVjdDsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIE5vZGU7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7
CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFJlbmRlck9iamVjdDsKIAogY2xhc3MgSW50ZXJuYWxzIDog
cHVibGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxzPiB7CiBwdWJsaWM6CkBAIC05Miw2ICs5NCwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdWdnZXN0ZWRWYWx1ZShFbGVtZW50KiBpbnB1dEVsZW1l
bnQsIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNjcm9sbEVsZW1l
bnRUb1JlY3QoRWxlbWVudCosIGxvbmcgeCwgbG9uZyB5LCBsb25nIHcsIGxvbmcgaCwgRXhjZXB0
aW9uQ29kZSYpOwogCisgICAgaW50IHBvcHVwQ2xpZW50UGFkZGluZ0xlZnQoRWxlbWVudCosIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5nUmlnaHQoRWxlbWVudCos
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IHBvcHVwQ2xpZW50
Qm91bmRpbmdCb3hSZWN0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogaW50ZXJuYWxzSWQ7CiAKICAgICB2b2lkIHBhaW50Q29udHJvbFRpbnRzKERv
Y3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDkwOTk4OWRhMmEyYTJkNDJjN2Y5ZmNhNTIyYzA3ODUzNzVjMTc3NWYuLjdjY2UzNDU0
MDU1OWQzNWI0NTc0Mjk2Y2ZlYjkzYWUzOGZmZTYwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTY3LDYgKzY3LDEwIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2
b2lkIHBhaW50Q29udHJvbFRpbnRzKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBzY3JvbGxFbGVtZW50VG9SZWN0KGluIEVsZW1lbnQg
ZWxlbWVudCwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIGxvbmcgdywgaW4gbG9uZyBoKSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgaW50IHBvcHVwQ2xpZW50UGFkZGluZ0xlZnQo
aW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGludCBw
b3B1cENsaWVudFBhZGRpbmdSaWdodChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgQ2xpZW50UmVjdCBwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChp
biBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGM0MzQ3YTZkNmQ1YzQ1MjczMzc4ZTM5YzdkYTkz
MWJkZDAyZmY5YTguLjcwZjBmN2Q1YzVhYjBjZWNiM2I4ZmY5ODAwZTg2OGE2NzYxNTc1MjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTAtMTMgIEZh
ZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtp
bmcgUG9wdXBNZW51Q2xpZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Ym91bmRpbmdCb3hS
ZWN0KToKKyAgICAgICAgKiBzcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaDoKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBw
bHlBdXRvZmlsbFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiB0ZXN0cy9Qb3B1cE1lbnVUZXN0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFBvcHVwTWVudUNsaWVudDo6Ym91bmRpbmdCb3hSZWN0
KToKKwogMjAxMS0xMC0xMyAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBBdXRvbWF0aWNhbGx5IHB1bGwgY2xhbmcgb24gYHVwZGF0ZS13ZWJr
aXQgLS1jaHJvbWl1bWAgb24gbWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKaW5kZXggMzRhMTg0ZjE4OTdmZGJlMWU3
N2M0NThhMzZlYmFhNzczZWRiMTc1NC4uZjc3YjY4YTE2MjBjMGQ0NTNhYTYwZDVkNTU3MDFhYWQ5
Mjk4NWYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQ
b3B1cE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9m
aWxsUG9wdXBNZW51Q2xpZW50LmNwcApAQCAtMjE2LDYgKzIxNiwxMyBAQCBpbnQgQXV0b2ZpbGxQ
b3B1cE1lbnVDbGllbnQ6OmNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHls
ZSk7CiB9CiAKK1dlYkNvcmU6OkxheW91dFJlY3QgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmJv
dW5kaW5nQm94UmVjdCgpIGNvbnN0Cit7CisgICAgaWYgKG1fdGV4dEZpZWxkKQorICAgICAgICBy
ZXR1cm4gbV90ZXh0RmllbGQtPmdldFJlY3QoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6TGF5b3V0
UmVjdCgpOworfQorCiB2b2lkIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpwb3B1cERpZEhpZGUo
KQogewogICAgIFdlYlZpZXdJbXBsKiB3ZWJWaWV3ID0gZ2V0V2ViVmlldygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKaW5k
ZXggN2QyYjk4NWEyYzJjY2UzZDA4OTk3NGMwY2I1OGU2MjY4ZDU4YzdiMy4uOGUyZWM4Mzg3N2M0
NDUxNjM5ZTY3OWVkMjJlNWEwY2YzNDYzMjQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaWZuZGVmIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgQXV0b2ZpbGxQb3B1
cE1lbnVDbGllbnRfaAogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlICJQb3B1
cE1lbnVDbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODIsNiArODMsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4
KSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1
bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51
U3R5bGUgbWVudVN0eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpMYXlvdXRSZWN0
IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVm
dCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0
KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5k
ZXggNzIwMTkwN2YwOWM1MTk3ZmVkNzU5Mjk5N2FkYjQzZjg1ZGQxZTNkYi4uYzYwMzBhNGU2YmE1
YWRiOGIwN2FmNmI1N2NjM2FmZTNhOTM5ZTdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjI1OCw3ICsyMjU4LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25zKAogICAgIGlmIChtX2F1dG9maWxsUG9wdXBTaG93
aW5nKSB7CiAgICAgICAgIHJlZnJlc2hBdXRvZmlsbFBvcHVwKCk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgbV9hdXRvZmlsbFBvcHVwLT5zaG93SW5SZWN0KGZvY3VzZWROb2RlLT5nZXRSZWN0KCks
IGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwgMCk7CisgICAgICAgIG1fYXV0
b2ZpbGxQb3B1cC0+c2hvd0luUmVjdChtX2F1dG9maWxsUG9wdXBDbGllbnQtPmJvdW5kaW5nQm94
UmVjdCgpLCBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDApOwogICAgICAg
ICBtX2F1dG9maWxsUG9wdXBTaG93aW5nID0gdHJ1ZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcAppbmRleCBiMzk1YjkzMDE3Y2Ri
YjFmMTI4MDE5YmFkMWNjODQzOTZjYzdhMzE2Li5kY2JjNDQ0NzUzMDk4MTA2MWU1ZGZlNzU4NWNm
MzIzNGVjMjI0Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Bv
cHVwTWVudVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBN
ZW51VGVzdC5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gUG9w
dXBNZW51U3R5bGUoQ29sb3I6OmJsYWNrLCBDb2xvcjo6d2hpdGUsIGZvbnQsIHRydWUsIGZhbHNl
LCBMZW5ndGgoKSwgVGV4dERpcmVjdGlvbigpLCBmYWxzZSAvKiBoYXMgdGV4dCBkaXJlY3Rpb24g
b3ZlcnJpZGUgKi8pOwogICAgIH0KICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIGl0ZW1TdHlsZSgwKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0UmVj
dCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KICAgICB2
aXJ0dWFsIGludCBjbGllbnRJbnNldExlZnQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmly
dHVhbCBpbnQgY2xpZW50SW5zZXRSaWdodCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0
dWFsIGludCBjbGllbnRQYWRkaW5nTGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110955</attachid>
            <date>2011-10-13 22:10:37 -0700</date>
            <delta_ts>2011-10-13 22:12:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111014011035.patch</filename>
            <type>text/plain</type>
            <size>33560</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0MTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMjM3NmI2NGIyNTE2MGY1MzA4OGQ0
MDZiNzk3ZmUyNmY2NTk1OTczLi5lYjlhZjFmZTJjNmQzMjUwOGMwNzQ0ZTEwNDY0MThkNjA0YjEw
ODAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0xMC0xMyAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
MDA2OQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQt
dGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVu
dC10ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODNlODkxYmI1ZTIwZmUwNzliMTVlZDVm
MzkyNWU4NGEwODM1Mjk1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cG9wdXAtbWVudS1jbGllbnQtdGVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorUEFT
UyBwb3B1cENsaWVudFBhZGRpbmdMZWZ0IGlzIDQKK1BBU1MgcG9wdXBDbGllbnRQYWRkaW5nUmln
aHQgaXMgMgorRkFJTCBib3VuZGluZ0JveFJlY3QubGVmdCBzaG91bGQgYmUgMTAuIFdhcyAyMC4K
K0ZBSUwgYm91bmRpbmdCb3hSZWN0LnRvcCBzaG91bGQgYmUgMTAuIFdhcyAyMC4KK1BBU1MgYm91
bmRpbmdCb3hSZWN0LndpZHRoIGlzIGJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aAorUEFTUyBib3Vu
ZGluZ0JveFJlY3QuaGVpZ2h0IGlzIGJvdW5kaW5nQ2xpZW50UmVjdC5oZWlnaHQKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcz
NzYxNzY1YzNkYWUzNGJiNzUxMTVhM2YxMjEyYzRkMGJhMzk3OQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbApAQCAtMCww
ICsxLDM4IEBACis8aHRtbD4KKyAgPGhlYWQ+CisgICAgPGJvZHk+CisgICAgICA8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKyAgICAgIDxzZWxlY3QgaWQ9InNlbGVjdGVsZW1lbnQiPgorICAgICAg
ICA8b3B0aW9uPkVsZW1lbnQgMTwvb3B0aW9uPgorICAgICAgICA8b3B0aW9uPkVsZW1lbnQgMjwv
b3B0aW9uPgorICAgICAgICA8b3B0aW9uPkVsZW1lbnQgMzwvb3B0aW9uPgorICAgICAgPC9zZWxl
Y3Q+CisgICAgPC9ib2R5PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICB2YXIgc2VsZWN0RWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3RlbGVtZW50Iik7CisgICAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWwgZmFpbCBpZiB0
aGUgcGFnZSBzY2FsZSBmYWN0b3IgIT0gMS4wCisgICAgICAgIHZhciBwYWdlU2NhbGVGYWN0b3Ig
PSAyLjA7CisgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHBhZ2VTY2FsZUZhY3Rvciwg
MCwgMCk7CisKKyAgICAgICAgdmFyIHBvcHVwQ2xpZW50UGFkZGluZ0xlZnQgPSB3aW5kb3cuaW50
ZXJuYWxzLnBvcHVwQ2xpZW50UGFkZGluZ0xlZnQoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZh
ciBwb3B1cENsaWVudFBhZGRpbmdSaWdodCA9IHdpbmRvdy5pbnRlcm5hbHMucG9wdXBDbGllbnRQ
YWRkaW5nUmlnaHQoc2VsZWN0RWxlbWVudCk7CisgICAgICAgIHZhciBib3VuZGluZ0JveFJlY3Qg
PSB3aW5kb3cuaW50ZXJuYWxzLnBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KHNlbGVjdEVsZW1l
bnQpOworICAgICAgICB2YXIgYm91bmRpbmdDbGllbnRSZWN0ID0gc2VsZWN0RWxlbWVudC5nZXRC
b3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgc2hvdWxkQmUoInBvcHVwQ2xpZW50UGFkZGlu
Z0xlZnQiLCAiNCIpOworICAgICAgICBzaG91bGRCZSgicG9wdXBDbGllbnRQYWRkaW5nUmlnaHQi
LCAiMiIpOworICAgICAgICBzaG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LmxlZnQiLCAiYm91bmRp
bmdDbGllbnRSZWN0LmxlZnQiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC50
b3AiLCAiYm91bmRpbmdDbGllbnRSZWN0LnRvcCIpOworICAgICAgICBzaG91bGRCZSgiYm91bmRp
bmdCb3hSZWN0LndpZHRoIiwgImJvdW5kaW5nQ2xpZW50UmVjdC53aWR0aCIpOworICAgICAgICBz
aG91bGRCZSgiYm91bmRpbmdCb3hSZWN0LmhlaWdodCIsICJib3VuZGluZ0NsaWVudFJlY3QuaGVp
Z2h0Iik7CisgICAgICB9CisgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIH0KKyAg
ICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorICAgIDwv
c2NyaXB0PgorICA8L2hlYWQ+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDEwNTFj
MGNlNmQ2MTE4Y2YwNzI3MDhiNmE0MDNhMDE0M2ViMDlmYjkuLjMxOTQ3MmY5MWUxZDU0MTM2ZGMy
YWJjNDJjYjAwNjNmNWQ2YmE2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMDM1LDYgKzEw
MzUsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vTGlua0hhc2guY3BwCiAg
ICAgcGxhdGZvcm0vTG9nZ2luZy5jcHAKICAgICBwbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNw
cAorICAgIHBsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5jcHAKICAgICBwbGF0Zm9ybS9SdW50aW1l
QXBwbGljYXRpb25DaGVja3MuY3BwCiAgICAgcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCiAg
ICAgcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E1YTg2MmQ4MDAw
MjgwNGZmZGVhMTZhYmMxOWQyNzNjMWNmYjU0OS4uMTVkZDIxNDRkMmIzYTQ1NWFmNjJmYWNkNzU3
MjU1MDY4ZmRiYmRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDExLTEwLTEzICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFr
aW5nIFBvcHVwTWVudUNsaWVudCBtb3JlIHRlc3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNvbWUgZnVuY3Rpb25zIHRvIHdpbmRvdy5p
bnRlcm5hbHMgdG8gYWxsb3cgdGVzdGluZyBvZiBwYXJ0cyBvZiBQb3B1cE1lbnVDbGllbnQuCisK
KyAgICAgICAgVGVzdDogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgor
ICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAg
ICAgKiBXZWJDb3JlLm9yZGVyOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1
cE1lbnVDbGllbnQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnRvUG9wdXBNZW51Q2xp
ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVu
dUxpc3Q6OnNob3dQb3B1cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6Ym91
bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdDo6aXNQb3B1cE1l
bnVDbGllbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNQb3B1cE1lbnVDbGllbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXApOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpib3VuZGluZ0JveFJlY3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6aXNQb3B1cE1lbnVDbGllbnQp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6cG9wdXBDbGllbnRQYWRkaW5nTGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6OnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6cG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTEwLTEz
ICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggTGVvcGFy
ZCBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMDI0ZDE3MGQ2ZGY3MWNj
NzY1YjQ1Zjk5YTA1YjFlYTdlMmJiMWMzYy4uMjkwY2YwM2UxNDc0ODVlZmJiM2IxYmFhZDc5N2Q0
N2UxMzcxNGNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yODAxLDYgKzI4
MDEsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BP
REludGVydmFsVHJlZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RSZWRCbGFja1Ry
ZWUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BvcHVwTWVudS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1
cE1lbnVTdHlsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdXJnZWFibGVCdWZmZXIu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGU0NzNiYTk1NzIyMWViOTg1YjZhOTE2Y2E0Mzcw
MzYzZTNlNTE2ZjAuLjI4OWU3NzdlMjA0MTQzZmRiM2JiMzMzMGUyYTc2OTBjYTViYTlhYmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNjQsNiArMjY0LDcgQEAgX19aTjdXZWJDb3JlMTJJY29u
RGF0YWJhc2U1Y2xvc2VFdgogX19aTjdXZWJDb3JlMTJJY29uRGF0YWJhc2U5c2V0Q2xpZW50RVBO
U18xOEljb25EYXRhYmFzZUNsaWVudEUKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlQzFFdgog
X19aTjdXZWJDb3JlMTJKU0RPTVdyYXBwZXIzNHZpcnR1YWxGdW5jdGlvblRvUHJldmVudFdlYWtW
dGFibGVFdgorX19aTjdXZWJDb3JlMTd0b1BvcHVwTWVudUNsaWVudEVQTlNfMTJSZW5kZXJPYmpl
Y3RFCiBfX1pON1dlYkNvcmUxMlBvcHVwTWVudU1hY0MxRVBOU18xNVBvcHVwTWVudUNsaWVudEUK
IF9fWk43V2ViQ29yZTEyUHJpbnRDb250ZXh0MTJwYWdlUHJvcGVydHlFUE5TXzVGcmFtZUVQS2Np
CiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4dDEzbnVtYmVyT2ZQYWdlc0VQTlNfNUZyYW1lRVJL
TlNfOUZsb2F0U2l6ZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzYjg4MTNkMTM0ZTVmMjM2ZDcyNTNm
ZjFhNzc0MTY3MWFjMzA3NDdjLi5iMjNkZGQ4MTAxOTZlMTNiODliOTJmY2FlZDc5ZmQ1NjRiYTJh
ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MTg1LDYgKzYxODUsOCBAQAogICAgICAgICAgICAg
J3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCcsCiAgICAgICAgICAgICAndGVzdGluZy9JbnRlcm5hbHMuaCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgnLAorICAgICAgICAgICAgJ3BsYXRm
b3JtL1BvcHVwTWVudUNsaWVudC5jcHAnLAogICAgICAgICBdLAogICAgICAgICAnd2ViY29yZV9y
ZXNvdXJjZV9maWxlcyc6IFsKICAgICAgICAgICAgICdFbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxl
LnN0cmluZ3MnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlciBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggNDkyN2NmNDdlOTdhZDc4YTRjNGJjZTg3
NTQ0N2EzMTQ1YTQwNDdmNi4uZjU0YjVhYWVjYzY3ZDk2MzNmMGIxYTRiMzc5Nzg4ZGVlYTg4NjQw
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0xMTA3NCw2ICsxMTA3NCw3IEBAIF9fWk43V2ViQ29y
ZTE3SlNBcnJheUJ1ZmZlclZpZXdDMkVQTjNKU0M5U3RydWN0dXJlRVBOU18xN0pTRE9NR2xvYmFs
T2JqZWN0RU4zV1RGCiBfX1pON1dlYkNvcmUzNGpzV2ViR0xSZW5kZXJpbmdDb250ZXh0U1RBVElD
X0RSQVdFUE4zSlNDOUV4ZWNTdGF0ZUVOUzBfN0pTVmFsdWVFUktOUzBfMTBJZGVudGlmaWVyRQog
X19aTjdXZWJDb3JlNTBqc1dlYkdMUmVuZGVyaW5nQ29udGV4dFByb3RvdHlwZUZ1bmN0aW9uQnVm
ZmVyRGF0YUVQTjNKU0M5RXhlY1N0YXRlRQogX19aTjdXZWJDb3JlMTd0b0FycmF5QnVmZmVyVmll
d0VOM0pTQzdKU1ZhbHVlRQorX19aTjdXZWJDb3JlMTd0b1BvcHVwTWVudUNsaWVudEVQTlNfMTJS
ZW5kZXJPYmplY3RFCiBfX1pON1dlYkNvcmUyMVdlYkdMUmVuZGVyaW5nQ29udGV4dDEwYnVmZmVy
RGF0YUVqUE5TXzE1QXJyYXlCdWZmZXJWaWV3RWpSaQogX19aTjdXZWJDb3JlMjFXZWJHTFJlbmRl
cmluZ0NvbnRleHQyOHZhbGlkYXRlQnVmZmVyRGF0YVBhcmFtZXRlcnNFamoKIF9fWk43V2ViQ29y
ZTExV2ViR0xCdWZmZXIxOWFzc29jaWF0ZUJ1ZmZlckRhdGFFUE5TXzE1QXJyYXlCdWZmZXJWaWV3
RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybwppbmRleCBhOGUzMzMxYzBiN2FhNDRjODBjNDc5NjEwODU2OTBkYjQ4NDkw
YzhjLi4wM2RkYWQwOTEwY2E1OTg1Yjc3N2NmOWIyOWRmZTE5ZDIxMmM2YTdkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtMTA3NCw2ICsxMDc0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuY3BwIFwKKyAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwIFwKICAgICBwbGF0Zm9y
bS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmNwcCBcCiAgICAgcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKQEAg
LTIxNjAsNiArMjE2MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL1RpbWVyLmggXAog
ICAgIHBsYXRmb3JtL1dpZGdldC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMu
aCBcCisgICAgcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggXAogICAgIHBsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaCBcCiAgICAgcGx1Z2lucy9ET01NaW1lVHlwZUFycmF5LmggXAogICAgIHBs
dWdpbnMvRE9NTWltZVR5cGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDI0YThmMWM2NjM3YTQzZGM2YTZhMTI1MTA5OGFk
YWQ1MTU1YzEzMS4uOWY5NTBjMTYzODhlYTRhMjI4MzkwZmQ4NDA2ZTI1ODY1Y2FkOTUyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTQ3NSw2ICs1NDc1LDcgQEAKIAkJQzZGNDEwNDcxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5
QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NkY0MTA0NjEzMEM2RTg5MDAzOTNERTQgLyogRW50cnlCYXNlLmNwcCAqLzsgfTsKIAkJQ0EzQkY2
N0MxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdCMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5jcHAgKi87IH07CiAJCUNBM0JGNjdFMTBEOTlCQUUwMEU2Q0U1MyAv
KiBTY3JvbGxBbmltYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0FGMDc5Mjkx
NDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQUYwNzkyODE0NDc5NDBFMDAzMkE1QUQgLyog
UG9wdXBNZW51Q2xpZW50LmNwcCAqLzsgfTsKIAkJQ0QwREJGMDExNDIyNzY4NTAwMjgwMjYzIC8q
IElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMDAud2F2IGluIENvcHkgQXVkaW8gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMERCRDIwMTQyMjc1OTUw
MDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDAwLndhdiAqLzsgfTsKIAkJ
Q0QwREJGMDIxNDIyNzY4NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1Aw
MTUud2F2IGluIENvcHkgQXVkaW8gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMERCRDIxMTQyMjc1OTUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAx
OTVfVDAwMF9QMDE1LndhdiAqLzsgfTsKIAkJQ0QwREJGMDMxNDIyNzY4NTAwMjgwMjYzIC8qIElS
Q19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMzAud2F2IGluIENvcHkgQXVkaW8gUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMERCRDIyMTQyMjc1OTUwMDI4
MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDMwLndhdiAqLzsgfTsKQEAgLTEy
NzczLDYgKzEyNzc0LDcgQEAKIAkJQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFz
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBFbnRyeUJhc2UuY3Bw
OyBwYXRoID0gZmlsZWFwaS9FbnRyeUJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Nyb2xsQW5pbWF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDQTNCRjY3RDEwRDk5QkFFMDBFNkNFNTMgLyogU2Ny
b2xsQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Nyb2xsQW5p
bWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0FGMDc5MjgxNDQ3OTQwRTAw
MzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQb3B1cE1lbnVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDBEQkQyMDE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1Qw
MDBfUDAwMC53YXYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBhdWRpby53YXY7IG5hbWUgPSBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDAwLndh
djsgcGF0aCA9IHBsYXRmb3JtL2F1ZGlvL3Jlc291cmNlcy9JUkNfQ29tcG9zaXRlX0NfUjAxOTVf
VDAwMF9QMDAwLndhdjsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlDRDBEQkQyMTE0
MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXYgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7
IG5hbWUgPSBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1LndhdjsgcGF0aCA9IHBsYXRm
b3JtL2F1ZGlvL3Jlc291cmNlcy9JUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1Lndhdjsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQlDRDBEQkQyMjE0MjI3NTk1MDAyODAyNjMg
LyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAzMC53YXYgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhdWRpby53YXY7IG5hbWUgPSBJUkNfQ29t
cG9zaXRlX0NfUjAxOTVfVDAwMF9QMDMwLndhdjsgcGF0aCA9IHBsYXRmb3JtL2F1ZGlvL3Jlc291
cmNlcy9JUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDMwLndhdjsgc291cmNlVHJlZSA9IFNP
VVJDRV9ST09UOyB9OwpAQCAtMjAwNDQsNiArMjAwNDYsNyBAQAogCQkJCUJDQkI4QUI3MTNGMUFG
QjAwMDczNERGMCAvKiBQT0RSZWRCbGFja1RyZWUuaCAqLywKIAkJCQkwNjY4RTE4OTBBREQ5NjI0
MDA0MTI4RTAgLyogUG9wdXBNZW51LmggKi8sCiAJCQkJQUJDMTI4NzYwQjMzQUE2RDAwQzY5M0Q1
IC8qIFBvcHVwTWVudUNsaWVudC5oICovLAorCQkJCUNBRjA3OTI4MTQ0Nzk0MEUwMDMyQTVBRCAv
KiBQb3B1cE1lbnVDbGllbnQuY3BwICovLAogCQkJCUJDM0JFMTJBMEU5ODA5MkYwMDgzNTU4OCAv
KiBQb3B1cE1lbnVTdHlsZS5oICovLAogCQkJCUU0RDY4Nzc4MEVEN0FFNEYwMDZFQTk3OCAvKiBQ
dXJnZWFibGVCdWZmZXIuaCAqLywKIAkJCQk3RTMzQ0QwMDEyN0YzNDBEMDBCRThGMTcgLyogUHVy
Z2VQcmlvcml0eS5oICovLApAQCAtMjc0NjcsNiArMjc0NzAsNyBAQAogCQkJCTMxMDYwMzdBMTQz
MjgxQ0QwMEFCRjRCQSAvKiBET01XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTI5QUNCMjE0MTQzRTc0OTgwMDZCQ0E1RiAvKiBBY2Nlc3NpYmlsaXR5TW9ja09iamVj
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjA5MDg3RjE0NDRGREIyMDAwMjg5MTcgLyogU2Ny
b2xsYmFyVGhlbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0FGMDc5MjkxNDQ3OTQwRTAwMzJB
NUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUFGMkQ2QzE0
NDM1RDIxMDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5RkM3QTUwMTQ0NEFGNUYwMEE1RDg2NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bv
cHVwTWVudUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2UyNDg0YTA2NDZkNDBmZGMyNDEwYTNjZDJh
ZmRlMTRkOWM0ZTI3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1BvcHVwTWVudUNsaWVudC5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKKworI2luY2x1ZGUgIlJlbmRl
ck1lbnVMaXN0LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY29uc3QgUG9wdXBNZW51Q2xpZW50KiB0b1BvcHVwTWVudUNsaWVudChSZW5kZXJP
YmplY3QqIG9iamVjdCkKK3sKKyAgICBBU1NFUlQoIW9iamVjdCB8fCBvYmplY3QtPmlzUG9wdXBN
ZW51Q2xpZW50KCkpOworICAgIGlmICghb2JqZWN0KQorICAgICAgICByZXR1cm4gMDsKKworICAg
IC8vIFNwZWNpYWwgY2FzZTogUmVuZGVyTWVudUxpc3QgdXNlcyBtdWx0aXBsZSBpbmhlcml0YW5j
ZSBhbmQgc28sCisgICAgLy8gZGVwZW5kaW5nIG9uIHRoZSBjb21waWxlciwgd2UgbWF5IGVuZCB1
cCBpbiBhIHNpdHVhdGlvbiB3aGVyZQorICAgIC8vIHRoZSBmaXJzdCB2cHRyIGRvZXMgbm90IHBv
aW50IHRvIHRoZSBQb3B1cE1lbnVDbGllbnQncyB2dGFibGUsCisgICAgLy8gYW5kIHNvIHdlJ2Qg
ZW5kIHVwIGNhbGxpbmcgdGhlIHdyb25nIG1ldGhvZC4gVGh1cywgd2UgZmlyc3QgY2FzdCB0bwor
ICAgIC8vIFJlbmRlck1lbnVMaXN0IGFuZCB0aGVuIHRvIFBvcHVwTWVudUNsaWVudCB3aGljaCB3
aWxsIGF1dG9tYWdpY2FsbHkKKyAgICAvLyB0YWtlIGludG8gYWNjb3VudCB0aHVua2luZyBpZiBu
ZWNlc3NhcnkgKHRoZSBjYXN0aW5nIHdpbGwgYWN0dWFsbHkgc2hpZnQKKyAgICAvLyB0aGUgcG9p
bnRlciBvdmVyIHRvIHRoZSBQb3B1cE1lbnVDbGllbnQgcGFydCBvZiB0aGUgb2JqZWN0KS4KKyAg
ICBpZiAob2JqZWN0LT5pc01lbnVMaXN0KCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxQ
b3B1cE1lbnVDbGllbnQqPih0b1JlbmRlck1lbnVMaXN0KG9iamVjdCkpOworCisgICAgcmV0dXJu
IHJlaW50ZXJwcmV0X2Nhc3Q8UG9wdXBNZW51Q2xpZW50Kj4ob2JqZWN0KTsKK30KKworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuaAppbmRleCBmMzNiOWUyMWI4OTEw
NTRkNTQzZTI3MTg2ZWY0ODI3NTkwMjc3YjY3Li5lNDdmOGYwOTc0YjIzMWVlMzVkNDcxZWNiMmUx
ODgxZmE1M2ZlMGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1l
bnVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQu
aApAQCAtMjIsNiArMjIsNyBAQAogI2lmbmRlZiBQb3B1cE1lbnVDbGllbnRfaAogI2RlZmluZSBQ
b3B1cE1lbnVDbGllbnRfaAogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlICJQ
b3B1cE1lbnVTdHlsZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KQEAgLTMxLDYgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
Q29sb3I7CiBjbGFzcyBGb250U2VsZWN0b3I7CiBjbGFzcyBIb3N0V2luZG93OworY2xhc3MgUmVu
ZGVyT2JqZWN0OwogY2xhc3MgU2Nyb2xsYmFyOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiAKQEAg
LTQ5LDYgKzUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVu
c2lnbmVkIGxpc3RJbmRleCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUg
aXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUG9w
dXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgTGF5b3V0UmVj
dCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5z
ZXRMZWZ0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0UmlnaHQoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50UGFkZGluZ0xlZnQoKSBjb25zdCA9IDA7
CkBAIC02OSw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xs
YmFyPiBjcmVhdGVTY3JvbGxiYXIoU2Nyb2xsYWJsZUFyZWEqLCBTY3JvbGxiYXJPcmllbnRhdGlv
biwgU2Nyb2xsYmFyQ29udHJvbFNpemUpID0gMDsKIH07CiAKK2NvbnN0IFBvcHVwTWVudUNsaWVu
dCogdG9Qb3B1cE1lbnVDbGllbnQoUmVuZGVyT2JqZWN0Kik7CisKICNpZiBFTkFCTEUoTk9fTElT
VEJPWF9SRU5ERVJJTkcpCiBjbGFzcyBMaXN0UG9wdXBNZW51Q2xpZW50IDogcHVibGljIFBvcHVw
TWVudUNsaWVudCB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcAppbmRleCAzZjM1NmE2OGVjMGNkOWNjYzRlZjFmZjkxZDE5M2RkYzZiNmJlNTEy
Li5kZGY1ZThiYmFhMDMzNjIyNWZhNjY1ZGY3ODM1NGQxN2MyNzY1NjJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTMwMywxMyArMzAzLDcgQEAg
dm9pZCBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkKICAgICBIVE1MU2VsZWN0RWxlbWVudCog
c2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsK
ICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsKIAotICAgIC8vIENvbXB1dGUgdGhlIHRvcCBs
ZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVzZQotICAgIC8vIHRoZSBh
Y3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUgcG9wdXAuCi0gICAgRmxvYXRQ
b2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRy
dWUpOwotICAgIExheW91dFJlY3QgYWJzQm91bmRzID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJ
Z25vcmluZ1RyYW5zZm9ybXMoKTsKLSAgICBhYnNCb3VuZHMuc2V0TG9jYXRpb24ocm91bmRlZElu
dFBvaW50KGFic1RvcExlZnQpKTsKLSAgICBtX3BvcHVwLT5zaG93KGFic0JvdW5kcywgZG9jdW1l
bnQoKS0+dmlldygpLAotICAgICAgICBzZWxlY3QtPm9wdGlvblRvTGlzdEluZGV4KHNlbGVjdC0+
c2VsZWN0ZWRJbmRleCgpKSk7CisgICAgbV9wb3B1cC0+c2hvdyhib3VuZGluZ0JveFJlY3QoKSwg
ZG9jdW1lbnQoKS0+dmlldygpLCBzZWxlY3QtPm9wdGlvblRvTGlzdEluZGV4KHNlbGVjdC0+c2Vs
ZWN0ZWRJbmRleCgpKSk7CiB9CiAKIHZvaWQgUmVuZGVyTWVudUxpc3Q6OmhpZGVQb3B1cCgpCkBA
IC01MDYsNiArNTAwLDE2IEBAIFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBSZW5kZXJNZW51TGlzdDo6
Y3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlCiAgICAgcmV0dXJuIHdp
ZGdldC5yZWxlYXNlKCk7CiB9CiAKK0xheW91dFJlY3QgUmVuZGVyTWVudUxpc3Q6OmJvdW5kaW5n
Qm94UmVjdCgpIGNvbnN0Cit7CisgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQgdGFraW5nIHRy
YW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCisgICAgLy8gdGhlIGFjdHVhbCB3aWR0aCBv
ZiB0aGUgZWxlbWVudCB0byBzaXplIHRoZSBwb3B1cC4KKyAgICBGbG9hdFBvaW50IGFic1RvcExl
ZnQgPSBsb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CisgICAgTGF5
b3V0UmVjdCBhYnNCb3VuZHMgPSBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNm
b3JtcygpOworICAgIGFic0JvdW5kcy5zZXRMb2NhdGlvbihyb3VuZGVkSW50UG9pbnQoYWJzVG9w
TGVmdCkpOworICAgIHJldHVybiBhYnNCb3VuZHM7Cit9CisKIGludCBSZW5kZXJNZW51TGlzdDo6
Y2xpZW50SW5zZXRMZWZ0KCkgY29uc3QKIHsKICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggNzNmOTgxYjE5OTc4NTVhODliNTVjZWJj
Mzg2NTBlZjAzZjI2YWE0ZC4uZTAwNWM3YzA0MjhjMmRiZTA2YzFmZGU3MjExZmVkNmY4OTZmZDM0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTM5LDkg
KzM5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVuZGVyVGV4dDsKIAogI2lmIEVO
QUJMRShOT19MSVNUQk9YX1JFTkRFUklORykKLWNsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGlj
IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHJpdmF0ZSBMaXN0UG9wdXBNZW51Q2xpZW50
IHsKK2NsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveCwgcHVibGljIExpc3RQb3B1cE1lbnVDbGllbnQgewogI2Vsc2UKLWNsYXNzIFJlbmRlck1l
bnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHJpdmF0ZSBQb3B1
cE1lbnVDbGllbnQgeworY2xhc3MgUmVuZGVyTWVudUxpc3QgOiBwdWJsaWMgUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LCBwdWJsaWMgUG9wdXBNZW51Q2xpZW50IHsKICNlbmRpZgogCiBwdWJs
aWM6CkBAIC02MSw2ICs2MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNNZW51TGlzdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aXNQb3B1cE1lbnVDbGllbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZv
cmVDaGlsZCA9IDApOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3Qq
KTsKQEAgLTg5LDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5h
YmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5
bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1
cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91
bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkg
Y29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRSaWdodCgpIGNvbnN0OwogICAgIHZp
cnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMDVhMjM3MzFkNDgwYTQ5ZDJiMjNjM2EyMzJjOTg2NTM2
NmIyMDA2Ni4uZTFiMmRhZDQwZDA5MzlhZWY1YmRiYWI2Zjc2ZjlmNzkzZTJiMTBhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTIsNiArNTIsNyBAQCBjbGFz
cyBJbmxpbmVCb3g7CiBjbGFzcyBJbmxpbmVGbG93Qm94OwogY2xhc3MgT3ZlcmxhcFRlc3RSZXF1
ZXN0Q2xpZW50OwogY2xhc3MgUGF0aDsKK2NsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIFBv
c2l0aW9uOwogY2xhc3MgUmVuZGVyQm94TW9kZWxPYmplY3Q7CiBjbGFzcyBSZW5kZXJJbmxpbmU7
CkBAIC0yOTYsNiArMjk3LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRVRFUl9UQUcpCiAgICAg
dmlydHVhbCBib29sIGlzTWV0ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCisg
ICAgdmlydHVhbCBib29sIGlzUG9wdXBNZW51Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICNpZiBFTkFCTEUoUFJPR1JFU1NfVEFHKQogICAgIHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNz
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBm
ZjkwNzcwZjA5NTU3ODkxMDc1ZGI5MWUyOWUxZGZlNzg3MDRhZmI2Li41NWE0NjIxYjg1YTU0ZmM3
YmI5ZGE5NTg2YWJmZTUxMTJlZmQzOTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMTc0LDcgKzE3
NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzaG93UG9wdXAoKQogICAg
ICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFy
Y2hlcyk7CiAgICAgfQogCi0gICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnNob3coYWJz
b2x1dGVCb3VuZGluZ0JveFJlY3QoKSwgZG9jdW1lbnQoKS0+dmlldygpLCAtMSk7CisgICAgbV9z
ZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPnNob3coYm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50
KCktPnZpZXcoKSwgLTEpOwogfQogCiB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6
aGlkZVBvcHVwKCkKQEAgLTYxMyw2ICs2MTMsMTEgQEAgUG9wdXBNZW51U3R5bGUgUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lOjptZW51U3R5bGUoKSBjb25zdAogICAgIHJldHVybiBQb3B1cE1l
bnVTdHlsZShzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvciks
IHN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xv
ciksIHN0eWxlKCktPmZvbnQoKSwgc3R5bGUoKS0+dmlzaWJpbGl0eSgpID09IFZJU0lCTEUsIHN0
eWxlKCktPmRpc3BsYXkoKSA9PSBOT05FLCBzdHlsZSgpLT50ZXh0SW5kZW50KCksIHN0eWxlKCkt
PmRpcmVjdGlvbigpLCBzdHlsZSgpLT51bmljb2RlQmlkaSgpID09IE92ZXJyaWRlKTsKIH0KIAor
TGF5b3V0UmVjdCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmJvdW5kaW5nQm94UmVjdCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGFic29sdXRlQm91bmRpbmdCb3hSZWN0KCk7Cit9CisKIGlu
dCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmNsaWVudEluc2V0TGVmdCgpIGNvbnN0CiB7
CiAgICAgLy8gSW5zZXQgdGhlIG1lbnUgYnkgdGhlIHJhZGl1cyBvZiB0aGUgY2FwIG9uIHRoZSBs
ZWZ0IHNvIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuaAppbmRleCA0NzRkMzUzNjU5YjQ5NWUyYzhmZTZiMjc0ZTMy
NGRjMGIxNzQ0YzBhLi5mMTdmNzEzZTRkODQ4YjE4MzI2OTZjY2ZkZWNmZGUxZjQ2MTY4ZDQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
U2luZ2xlTGluZS5oCkBAIC01Niw2ICs1Niw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIGhhc0NvbnRyb2xDbGlwKCkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGNvbnRyb2xDbGlwUmVjdChjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBpc1BvcHVwTWVudUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKQEAgLTEwMCw2
ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2ln
bmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBpdGVtU3R5
bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxl
IG1lbnVTdHlsZSgpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3VuZGluZ0JveFJl
Y3QoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldExlZnQoKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQg
Y2xpZW50UGFkZGluZ0xlZnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCBlMTQ5MzY0NjAwNDM5YjU3YzA0NjU4NzFlYjk3MWM3NGY1OWQwNjU0Li41ZmY4ODMz
MGMxMzcwZDZhMzgxMGNmODVlZGQ5OTJiMzU4YTRlZTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRT
KQogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUV2ZW50LmgiCiAjZW5kaWYKKyNpbmNsdWRlICJQ
b3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlck9i
amVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKQEAgLTQzNSw0ICs0MzYsNDMg
QEAgdm9pZCBJbnRlcm5hbHM6OnNjcm9sbEVsZW1lbnRUb1JlY3QoRWxlbWVudCogZWxlbWVudCwg
bG9uZyB4LCBsb25nIHksIGxvbmcgdywgbG8KICAgICBmcmFtZVZpZXctPnNjcm9sbEVsZW1lbnRU
b1JlY3QoZWxlbWVudCwgSW50UmVjdCh4LCB5LCB3LCBoKSk7CiB9CiAKK2ludCBJbnRlcm5hbHM6
OnBvcHVwQ2xpZW50UGFkZGluZ0xlZnQoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit7CisgICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5yZW5kZXJlcigpKSB7CisgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBl
bGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKKyAg
ICBpZiAocmVuZGVyZXItPmlzUG9wdXBNZW51Q2xpZW50KCkpCisgICAgICAgIHJldHVybiB0b1Bv
cHVwTWVudUNsaWVudChyZW5kZXJlciktPmNsaWVudFBhZGRpbmdMZWZ0KCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK2ludCBJbnRlcm5hbHM6OnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQq
IGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8fCAhZWxl
bWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAg
ICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9
IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVu
dCgpKQorICAgICAgICByZXR1cm4gdG9Qb3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5jbGllbnRQ
YWRkaW5nUmlnaHQoKTsKKyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxDbGllbnRSZWN0
PiBJbnRlcm5hbHM6OnBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KEVsZW1lbnQqIGVsZW1lbnQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+cmVu
ZGVyZXIoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0
dXJuIENsaWVudFJlY3Q6OmNyZWF0ZSgpOworICAgIH0KKyAgICBlbGVtZW50LT5kb2N1bWVudCgp
LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICBpZiAocmVuZGVyZXItPmlz
UG9wdXBNZW51Q2xpZW50KCkpCisgICAgICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUodG9Q
b3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5ib3VuZGluZ0JveFJlY3QoKSk7CisgICAgcmV0dXJu
IENsaWVudFJlY3Q6OmNyZWF0ZSgpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCA0MTBiNmVkOGQ3ODQwNDg1ZjM0Y2FjZTg1ZTk1NzE4ZjE5OTZlZGMzLi5hM2RjOTNk
ZjgwZTdmYWJjODJmZDIwZTQ0M2Y3NTA5MWNkNTk4N2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTM4LDcgKzM4LDkgQEAgY2xhc3MgQ2xpZW50UmVjdDsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIE5vZGU7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7
CiBjbGFzcyBSYW5nZTsKK2NsYXNzIFJlbmRlck9iamVjdDsKIAogY2xhc3MgSW50ZXJuYWxzIDog
cHVibGljIFJlZkNvdW50ZWQ8SW50ZXJuYWxzPiB7CiBwdWJsaWM6CkBAIC05Miw2ICs5NCwxMCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdWdnZXN0ZWRWYWx1ZShFbGVtZW50KiBpbnB1dEVsZW1l
bnQsIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNjcm9sbEVsZW1l
bnRUb1JlY3QoRWxlbWVudCosIGxvbmcgeCwgbG9uZyB5LCBsb25nIHcsIGxvbmcgaCwgRXhjZXB0
aW9uQ29kZSYpOwogCisgICAgaW50IHBvcHVwQ2xpZW50UGFkZGluZ0xlZnQoRWxlbWVudCosIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5nUmlnaHQoRWxlbWVudCos
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IHBvcHVwQ2xpZW50
Qm91bmRpbmdCb3hSZWN0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogaW50ZXJuYWxzSWQ7CiAKICAgICB2b2lkIHBhaW50Q29udHJvbFRpbnRzKERv
Y3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDkwOTk4OWRhMmEyYTJkNDJjN2Y5ZmNhNTIyYzA3ODUzNzVjMTc3NWYuLjdjY2UzNDU0
MDU1OWQzNWI0NTc0Mjk2Y2ZlYjkzYWUzOGZmZTYwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTY3LDYgKzY3LDEwIEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2
b2lkIHBhaW50Q29udHJvbFRpbnRzKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBzY3JvbGxFbGVtZW50VG9SZWN0KGluIEVsZW1lbnQg
ZWxlbWVudCwgaW4gbG9uZyB4LCBpbiBsb25nIHksIGluIGxvbmcgdywgaW4gbG9uZyBoKSByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgaW50IHBvcHVwQ2xpZW50UGFkZGluZ0xlZnQo
aW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGludCBw
b3B1cENsaWVudFBhZGRpbmdSaWdodChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgQ2xpZW50UmVjdCBwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChp
biBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGM0MzQ3YTZkNmQ1YzQ1MjczMzc4ZTM5YzdkYTkz
MWJkZDAyZmY5YTguLjcwZjBmN2Q1YzVhYjBjZWNiM2I4ZmY5ODAwZTg2OGE2NzYxNTc1MjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTAtMTMgIEZh
ZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtp
bmcgUG9wdXBNZW51Q2xpZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Ym91bmRpbmdCb3hS
ZWN0KToKKyAgICAgICAgKiBzcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaDoKKyAgICAgICAg
KiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXBw
bHlBdXRvZmlsbFN1Z2dlc3Rpb25zKToKKyAgICAgICAgKiB0ZXN0cy9Qb3B1cE1lbnVUZXN0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFBvcHVwTWVudUNsaWVudDo6Ym91bmRpbmdCb3hSZWN0
KToKKwogMjAxMS0xMC0xMyAgTmljbyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBBdXRvbWF0aWNhbGx5IHB1bGwgY2xhbmcgb24gYHVwZGF0ZS13ZWJr
aXQgLS1jaHJvbWl1bWAgb24gbWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKaW5kZXggMzRhMTg0ZjE4OTdmZGJlMWU3
N2M0NThhMzZlYmFhNzczZWRiMTc1NC4uZjc3YjY4YTE2MjBjMGQ0NTNhYTYwZDVkNTU3MDFhYWQ5
Mjk4NWYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQ
b3B1cE1lbnVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9m
aWxsUG9wdXBNZW51Q2xpZW50LmNwcApAQCAtMjE2LDYgKzIxNiwxMyBAQCBpbnQgQXV0b2ZpbGxQ
b3B1cE1lbnVDbGllbnQ6OmNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjpkZWZhdWx0VGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHls
ZSk7CiB9CiAKK1dlYkNvcmU6OkxheW91dFJlY3QgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmJv
dW5kaW5nQm94UmVjdCgpIGNvbnN0Cit7CisgICAgaWYgKG1fdGV4dEZpZWxkKQorICAgICAgICBy
ZXR1cm4gbV90ZXh0RmllbGQtPmdldFJlY3QoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6TGF5b3V0
UmVjdCgpOworfQorCiB2b2lkIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpwb3B1cERpZEhpZGUo
KQogewogICAgIFdlYlZpZXdJbXBsKiB3ZWJWaWV3ID0gZ2V0V2ViVmlldygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKaW5k
ZXggN2QyYjk4NWEyYzJjY2UzZDA4OTk3NGMwY2I1OGU2MjY4ZDU4YzdiMy4uOGUyZWM4Mzg3N2M0
NDUxNjM5ZTY3OWVkMjJlNWEwY2YzNDYzMjQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaWZuZGVmIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgQXV0b2ZpbGxQb3B1
cE1lbnVDbGllbnRfaAogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlICJQb3B1
cE1lbnVDbGllbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODIsNiArODMsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4
KSBjb25zdDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1
bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51
U3R5bGUgbWVudVN0eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpMYXlvdXRSZWN0
IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVm
dCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0
KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5k
ZXggNzIwMTkwN2YwOWM1MTk3ZmVkNzU5Mjk5N2FkYjQzZjg1ZGQxZTNkYi4uYzYwMzBhNGU2YmE1
YWRiOGIwN2FmNmI1N2NjM2FmZTNhOTM5ZTdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjI1OCw3ICsyMjU4LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6YXBwbHlBdXRvZmlsbFN1Z2dlc3Rpb25zKAogICAgIGlmIChtX2F1dG9maWxsUG9wdXBTaG93
aW5nKSB7CiAgICAgICAgIHJlZnJlc2hBdXRvZmlsbFBvcHVwKCk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgbV9hdXRvZmlsbFBvcHVwLT5zaG93SW5SZWN0KGZvY3VzZWROb2RlLT5nZXRSZWN0KCks
IGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwgMCk7CisgICAgICAgIG1fYXV0
b2ZpbGxQb3B1cC0+c2hvd0luUmVjdChtX2F1dG9maWxsUG9wdXBDbGllbnQtPmJvdW5kaW5nQm94
UmVjdCgpLCBmb2N1c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDApOwogICAgICAg
ICBtX2F1dG9maWxsUG9wdXBTaG93aW5nID0gdHJ1ZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcAppbmRleCBiMzk1YjkzMDE3Y2Ri
YjFmMTI4MDE5YmFkMWNjODQzOTZjYzdhMzE2Li5kY2JjNDQ0NzUzMDk4MTA2MWU1ZGZlNzU4NWNm
MzIzNGVjMjI0Mjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Bv
cHVwTWVudVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBN
ZW51VGVzdC5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gUG9w
dXBNZW51U3R5bGUoQ29sb3I6OmJsYWNrLCBDb2xvcjo6d2hpdGUsIGZvbnQsIHRydWUsIGZhbHNl
LCBMZW5ndGgoKSwgVGV4dERpcmVjdGlvbigpLCBmYWxzZSAvKiBoYXMgdGV4dCBkaXJlY3Rpb24g
b3ZlcnJpZGUgKi8pOwogICAgIH0KICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIGl0ZW1TdHlsZSgwKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0UmVj
dCBib3VuZGluZ0JveFJlY3QoKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KICAgICB2
aXJ0dWFsIGludCBjbGllbnRJbnNldExlZnQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmly
dHVhbCBpbnQgY2xpZW50SW5zZXRSaWdodCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0
dWFsIGludCBjbGllbnRQYWRkaW5nTGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAxZGUxMWQzYWUxNmMxYmU4ZTQ4ZDQ5OGI0ZWZiY2ZkMDRmYjA0MjM1Li40NzBjZjA5MjRk
ZmU5ZGVhNWEzNDY4Y2VlNjRjMDcwNTQ0NjQzZmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMTAtMTMgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xpZW50IG1vcmUgdGVzdGFibGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjMxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5k
ZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDExLTEwLTEzICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFdoZWVsIGV2
ZW50IGhhbmRsZXIgY291bnRlciBpcyBpbmNvcnJlY3Qgd2l0aCBQREYgdmlld3MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgppbmRleCA1YWI1NGU5NWNlNThkMDBmMjNjNTlkYjM3ZDE1ODRmYjhhNzNiYjRj
Li5mNDVmMTkyNmFmMzE2NjM0MWQyMDUyMjlhMmE0MmY0NzZhZmRmZWE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmCkBAIC0xNzcsNiArMTc3LDcgQEAgRVhQT1JUUwogICAgICAgICA/dG9KU0BXZWJD
b3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVj
dEAxQFBBVkNsaWVudFJlY3RAMUBAWgogICAgICAgICA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFs
dWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVk5vZGVAMUBA
WgogICAgICAgICA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVA
M0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVlJhbmdlQDFAQFoKKyAgICAgICAgP3RvUG9wdXBN
ZW51Q2xpZW50QFdlYkNvcmVAQFlBUEJWUG9wdXBNZW51Q2xpZW50QDFAUEFWUmVuZGVyT2JqZWN0
QDFAQFoKICAgICAgICAgP3VwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0BEb2N1
bWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3ZpZXdARG9jdW1lbnRAV2ViQ29yZUBAUUJF
UEFWRnJhbWVWaWV3QDJAWFoKICAgICAgICAgP3ZpcnR1YWxGdW5jdGlvblRvUHJldmVudFdlYWtW
dGFibGVASlNET01XcmFwcGVyQFdlYkNvcmVAQE1BRVhYWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJD
RkxpdGUuZGVmCmluZGV4IDdkNzQ2MjkwZTNiM2E5MDNmNDNmNTYwODljN2Y0ZDk5MDFiNmJiOWYu
LmNhN2NjMDcxM2E0ZDU5YTQwMDVlOTliMjhiN2RmYjJmOTAyNDNhZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE3MSw1ICsxNzEsNiBAQCBFWFBPUlRTCiAgICAgICAg
ID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9N
R2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID90b0pTQFdlYkNvcmVAQFlBP0FW
SlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWUmFu
Z2VAMUBAWgogICAgICAgICA/dG9Ob2RlQFdlYkNvcmVAQFlBUEFWTm9kZUAxQFZKU1ZhbHVlQEpT
Q0BAQFoKKyAgICAgICAgP3RvUG9wdXBNZW51Q2xpZW50QFdlYkNvcmVAQFlBUEJWUG9wdXBNZW51
Q2xpZW50QDFAUEFWUmVuZGVyT2JqZWN0QDFAQFoKICAgICAgICAgP3ZpZXdARG9jdW1lbnRAV2Vi
Q29yZUBAUUJFUEFWRnJhbWVWaWV3QDJAWFoKICAgICAgICAgP3ZpcnR1YWxGdW5jdGlvblRvUHJl
dmVudFdlYWtWdGFibGVASlNET01XcmFwcGVyQFdlYkNvcmVAQE1BRVhYWgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110957</attachid>
            <date>2011-10-13 22:13:04 -0700</date>
            <delta_ts>2011-10-14 01:36:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111014011303.patch</filename>
            <type>text/plain</type>
            <size>33555</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0MzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNWRiMmVkMjJmNzA3ZWFjODlkYjE0
OGQ0ODA2OTc4MTI1ZThkNWQwLi5mYWMxYjY2YTM0MjQxMDRhNThkNWNkMGRlMzQ4NzE3ODdmODRl
MTUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0xMC0xMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW0Nocm9taXVtXSBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjgzZTg5MWJiNWUyMGZlMDc5YjE1ZWQ1ZjM5MjVlODRhMDgzNTI5NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50
LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1BBU1MgcG9wdXBDbGllbnRQYWRk
aW5nTGVmdCBpcyA0CitQQVNTIHBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0IGlzIDIKK0ZBSUwgYm91
bmRpbmdCb3hSZWN0LmxlZnQgc2hvdWxkIGJlIDEwLiBXYXMgMjAuCitGQUlMIGJvdW5kaW5nQm94
UmVjdC50b3Agc2hvdWxkIGJlIDEwLiBXYXMgMjAuCitQQVNTIGJvdW5kaW5nQm94UmVjdC53aWR0
aCBpcyBib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgKK1BBU1MgYm91bmRpbmdCb3hSZWN0LmhlaWdo
dCBpcyBib3VuZGluZ0NsaWVudFJlY3QuaGVpZ2h0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9w
dXAtbWVudS1jbGllbnQtdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3Mzc2MTc2NWMzZGFlMzRiYjc1
MTE1YTNmMTIxMmM0ZDBiYTM5NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+
CisgIDxoZWFkPgorICAgIDxib2R5PgorICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
ICAgICA8c2VsZWN0IGlkPSJzZWxlY3RlbGVtZW50Ij4KKyAgICAgICAgPG9wdGlvbj5FbGVtZW50
IDE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5FbGVtZW50IDI8L29wdGlvbj4KKyAgICAgICAg
PG9wdGlvbj5FbGVtZW50IDM8L29wdGlvbj4KKyAgICAgIDwvc2VsZWN0PgorICAgIDwvYm9keT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic2VsZWN0ZWxlbWVudCIpOworICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgd2lsIGZhaWwgaWYgdGhlIHBhZ2Ugc2NhbGUgZmFj
dG9yICE9IDEuMAorICAgICAgICB2YXIgcGFnZVNjYWxlRmFjdG9yID0gMi4wOworICAgICAgICBl
dmVudFNlbmRlci5zY2FsZVBhZ2VCeShwYWdlU2NhbGVGYWN0b3IsIDAsIDApOworCisgICAgICAg
IHZhciBwb3B1cENsaWVudFBhZGRpbmdMZWZ0ID0gd2luZG93LmludGVybmFscy5wb3B1cENsaWVu
dFBhZGRpbmdMZWZ0KHNlbGVjdEVsZW1lbnQpOworICAgICAgICB2YXIgcG9wdXBDbGllbnRQYWRk
aW5nUmlnaHQgPSB3aW5kb3cuaW50ZXJuYWxzLnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KHNlbGVj
dEVsZW1lbnQpOworICAgICAgICB2YXIgYm91bmRpbmdCb3hSZWN0ID0gd2luZG93LmludGVybmFs
cy5wb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChzZWxlY3RFbGVtZW50KTsKKyAgICAgICAgdmFy
IGJvdW5kaW5nQ2xpZW50UmVjdCA9IHNlbGVjdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgICAgIHNob3VsZEJlKCJwb3B1cENsaWVudFBhZGRpbmdMZWZ0IiwgIjQiKTsKKyAg
ICAgICAgc2hvdWxkQmUoInBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0IiwgIjIiKTsKKyAgICAgICAg
c2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC5sZWZ0IiwgImJvdW5kaW5nQ2xpZW50UmVjdC5sZWZ0
Iik7CisgICAgICAgIHNob3VsZEJlKCJib3VuZGluZ0JveFJlY3QudG9wIiwgImJvdW5kaW5nQ2xp
ZW50UmVjdC50b3AiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC53aWR0aCIs
ICJib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5n
Qm94UmVjdC5oZWlnaHQiLCAiYm91bmRpbmdDbGllbnRSZWN0LmhlaWdodCIpOworICAgICAgfQor
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICB9CisgICAgICBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFk
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMDUxYzBjZTZkNjExOGNmMDcyNzA4
YjZhNDAzYTAxNDNlYjA5ZmI5Li4zMTk0NzJmOTFlMWQ1NDEzNmRjMmFiYzQyY2IwMDYzZjVkNmJh
NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAzNSw2ICsxMDM1LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNwcAogICAgIHBsYXRmb3JtL0xvZ2dp
bmcuY3BwCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKyAgICBwbGF0Zm9ybS9Q
b3B1cE1lbnVDbGllbnQuY3BwCiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmNwcAogICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAogICAgIHBsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJkZmNlMzMyMjk2YWYxNjUzMTg2OTgwNjdiNGIx
Mzc0ZDg3NzU0NjYuLmJhYjAxYzNmYjUxYTJjZWY0YmM4MzAwZTUwZjQ4M2E5MjEwY2FkZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMS0xMC0xMyAgRmFkeSBTYW11ZWwgIDxmc2Ft
dWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGll
bnQgbW9yZSB0ZXN0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBzb21lIGZ1bmN0aW9ucyB0byB3aW5kb3cuaW50ZXJuYWxzIHRvIGFsbG93
IHRlc3Rpbmcgb2YgcGFydHMgb2YgUG9wdXBNZW51Q2xpZW50LgorCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRl
cjoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b1BvcHVwTWVudUNsaWVudCk6CisgICAgICAgICog
cGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmJvdW5kaW5nQm94UmVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3Q6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6Ym91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xp
ZW50UGFkZGluZ0xlZnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwb3B1cENsaWVu
dFBhZGRpbmdSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xpZW50
Qm91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMS0xMC0xMyAgTWFyayBIYWhuZW5iZXJn
ICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSB2aXJ0dWFsIGdldENv
bnN0cnVjdERhdGEgdG8gZ2V0Q29uc3RydWN0RGF0YVZpcnR1YWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDAyNGQxNzBkNmRmNzFjYzc2NWI0NWY5OWEwNWIxZWE3ZTJiYjFjM2Mu
LjI5MGNmMDNlMTQ3NDg1ZWZiYjNiMWJhYWQ3OTdkNDdlMTM3MTRjYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMjgwMSw2ICsyODAxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbFRyZWUuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1
cE1lbnVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA5MzhjZDgxOGQwOTA3M2U2YTdkZmRmNmRhODRjZmU0OThjMjRhNGU1Li4wYmNmZTcxOWUwOGY0
MGRlYjc5YzY3MWIxYTBlYzM2NjA4NDU4MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjY0
LDYgKzI2NCw3IEBAIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlNWNsb3NlRXYKIF9fWk43V2Vi
Q29yZTEySWNvbkRhdGFiYXNlOXNldENsaWVudEVQTlNfMThJY29uRGF0YWJhc2VDbGllbnRFCiBf
X1pON1dlYkNvcmUxMkljb25EYXRhYmFzZUMxRXYKIF9fWk43V2ViQ29yZTEySlNET01XcmFwcGVy
MzR2aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxlRXYKK19fWk43V2ViQ29yZTE3dG9Q
b3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdXZWJDb3JlMTJQb3B1cE1l
bnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4
dDEycGFnZVByb3BlcnR5RVBOU181RnJhbWVFUEtjaQogX19aTjdXZWJDb3JlMTJQcmludENvbnRl
eHQxM251bWJlck9mUGFnZXNFUE5TXzVGcmFtZUVSS05TXzlGbG9hdFNpemVFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggM2I4ODEzZDEzNGU1ZjIzNmQ3MjUzZmYxYTc3NDE2NzFhYzMwNzQ3Yy4uYjIzZGRk
ODEwMTk2ZTEzYjg5YjkyZmNhZWQ3OWZkNTY0YmEyYTg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
NjE4NSw2ICs2MTg1LDggQEAKICAgICAgICAgICAgICd0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5oJywKICAgICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFscy5jcHAnLAogICAgICAgICAg
ICAgJ3Rlc3RpbmcvSW50ZXJuYWxzLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwJywK
ICAgICAgICAgXSwKICAgICAgICAgJ3dlYmNvcmVfcmVzb3VyY2VfZmlsZXMnOiBbCiAgICAgICAg
ICAgICAnRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CmluZGV4IDQ5MjdjZjQ3ZTk3YWQ3OGE0YzRiY2U4NzU0NDdhMzE0NWE0MDQ3ZjYuLmY1NGI1YWFl
Y2M2N2Q5NjMzZjBiMWE0YjM3OTc4OGRlZWE4ODY0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAt
MTEwNzQsNiArMTEwNzQsNyBAQCBfX1pON1dlYkNvcmUxN0pTQXJyYXlCdWZmZXJWaWV3QzJFUE4z
SlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURgogX19aTjdXZWJDb3Jl
MzRqc1dlYkdMUmVuZGVyaW5nQ29udGV4dFNUQVRJQ19EUkFXRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTUwanNXZWJHTFJlbmRl
cmluZ0NvbnRleHRQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlckRhdGFFUE4zSlNDOUV4ZWNTdGF0ZUUK
IF9fWk43V2ViQ29yZTE3dG9BcnJheUJ1ZmZlclZpZXdFTjNKU0M3SlNWYWx1ZUUKK19fWk43V2Vi
Q29yZTE3dG9Qb3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdXZWJDb3Jl
MjFXZWJHTFJlbmRlcmluZ0NvbnRleHQxMGJ1ZmZlckRhdGFFalBOU18xNUFycmF5QnVmZmVyVmll
d0VqUmkKIF9fWk43V2ViQ29yZTIxV2ViR0xSZW5kZXJpbmdDb250ZXh0Mjh2YWxpZGF0ZUJ1ZmZl
ckRhdGFQYXJhbWV0ZXJzRWpqCiBfX1pON1dlYkNvcmUxMVdlYkdMQnVmZmVyMTlhc3NvY2lhdGVC
dWZmZXJEYXRhRVBOU18xNUFycmF5QnVmZmVyVmlld0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYThlMzMz
MWMwYjdhYTQ0YzgwYzQ3OTYxMDg1NjkwZGI0ODQ5MGM4Yy4uMDNkZGFkMDkxMGNhNTk4NWI3Nzdj
ZjliMjlkZmUxOWQyMTJjNmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwNzQsNiArMTA3NCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIFwK
ICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBcCisgICAgcGxhdGZvcm0vUG9w
dXBNZW51Q2xpZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5j
cHAgXAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgXAogICAgIHBs
YXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCkBAIC0yMTYwLDYgKzIxNjEsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBwbGF0Zm9ybS9UaW1lci5oIFwKICAgICBwbGF0Zm9ybS9XaWRnZXQuaCBcCiAg
ICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggXAorICAgIHBsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggXAogICAgIHBsdWdp
bnMvRE9NTWltZVR5cGVBcnJheS5oIFwKICAgICBwbHVnaW5zL0RPTU1pbWVUeXBlLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDAyNGE4ZjFjNjYzN2E0M2RjNmE2YTEyNTEwOThhZGFkNTE1NWMxMzEuLjlmOTUwYzE2Mzg4ZWE0
YTIyODM5MGZkODQwNmUyNTg2NWNhZDk1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0NzUsNiArNTQ3NSw3IEBACiAJCUM2
RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8q
IEVudHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovOyB9
OwogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdEMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUNBRjA3OTI5MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1l
bnVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0FGMDc5MjgxNDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgKi87IH07
CiAJCUNEMERCRjAxMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAw
MF9QMDAwLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDBEQkQyMDE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9D
X1IwMTk1X1QwMDBfUDAwMC53YXYgKi87IH07CiAJCUNEMERCRjAyMTQyMjc2ODUwMDI4MDI2MyAv
KiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1LndhdiBpbiBDb3B5IEF1ZGlvIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBEQkQyMTE0MjI3NTk1
MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXYgKi87IH07CiAJ
CUNEMERCRjAzMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9Q
MDMwLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDBEQkQyMjE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1Iw
MTk1X1QwMDBfUDAzMC53YXYgKi87IH07CkBAIC0xMjc3Myw2ICsxMjc3NCw3IEBACiAJCUM2RjQx
MDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRW50cnlCYXNlLmNwcDsgcGF0aCA9IGZpbGVhcGkvRW50cnlCYXNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZD
RTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNBRjA3OTI4MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1lbnVDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9wdXBNZW51Q2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwREJEMjAxNDIyNzU5NTAwMjgw
MjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMDAud2F2ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJD
X0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9y
ZXNvdXJjZXMvSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXY7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKIAkJQ0QwREJEMjExNDIyNzU5NTAwMjgwMjYzIC8qIElSQ19Db21w
b3NpdGVfQ19SMDE5NV9UMDAwX1AwMTUud2F2ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJDX0NvbXBvc2l0ZV9DX1Iw
MTk1X1QwMDBfUDAxNS53YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMvSVJDX0Nv
bXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKIAkJQ0QwREJEMjIxNDIyNzU5NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9U
MDAwX1AwMzAud2F2ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAzMC53
YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMvSVJDX0NvbXBvc2l0ZV9DX1IwMTk1
X1QwMDBfUDAzMC53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTIwMDQ0LDYg
KzIwMDQ2LDcgQEAKIAkJCQlCQ0JCOEFCNzEzRjFBRkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tU
cmVlLmggKi8sCiAJCQkJMDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICov
LAogCQkJCUFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLywK
KwkJCQlDQUYwNzkyODE0NDc5NDBFMDAzMkE1QUQgLyogUG9wdXBNZW51Q2xpZW50LmNwcCAqLywK
IAkJCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJ
CQlFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCiAJCQkJ
N0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLywKQEAgLTI3NDY3
LDYgKzI3NDcwLDcgQEAKIAkJCQkzMTA2MDM3QTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0
Q1NTRmlsdGVyVmFsdWUubW0gaW4gU291cmNlcyAqLywKIAkJCQkyOUFDQjIxNDE0M0U3NDk4MDA2
QkNBNUYgLyogQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYwOTA4N0YxNDQ0RkRCMjAwMDI4OTE3IC8qIFNjcm9sbGJhclRoZW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUNBRjA3OTI5MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1lbnVDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDlBRjJENkMxNDQzNUQyMTAwMTZBNzg0IC8qIERpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUZDN0E1MDE0NDRBRjVG
MDBBNUQ4NjQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlMjQ4NGEwNjQ2ZDQwZmRjMjQxMGEzY2QyYWZkZTE0ZDljNGUyN2EKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0w
LDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG9wdXBN
ZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgorI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IFBvcHVwTWVudUNs
aWVudCogdG9Qb3B1cE1lbnVDbGllbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNT
RVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1BvcHVwTWVudUNsaWVudCgpKTsKKyAgICBpZiAoIW9i
amVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBTcGVjaWFsIGNhc2U6IFJlbmRlck1l
bnVMaXN0IHVzZXMgbXVsdGlwbGUgaW5oZXJpdGFuY2UgYW5kIHNvLAorICAgIC8vIGRlcGVuZGlu
ZyBvbiB0aGUgY29tcGlsZXIsIHdlIG1heSBlbmQgdXAgaW4gYSBzaXR1YXRpb24gd2hlcmUKKyAg
ICAvLyB0aGUgZmlyc3QgdnB0ciBkb2VzIG5vdCBwb2ludCB0byB0aGUgUG9wdXBNZW51Q2xpZW50
J3MgdnRhYmxlLAorICAgIC8vIGFuZCBzbyB3ZSdkIGVuZCB1cCBjYWxsaW5nIHRoZSB3cm9uZyBt
ZXRob2QuIFRodXMsIHdlIGZpcnN0IGNhc3QgdG8KKyAgICAvLyBSZW5kZXJNZW51TGlzdCBhbmQg
dGhlbiB0byBQb3B1cE1lbnVDbGllbnQgd2hpY2ggd2lsbCBhdXRvbWFnaWNhbGx5CisgICAgLy8g
dGFrZSBpbnRvIGFjY291bnQgdGh1bmtpbmcgaWYgbmVjZXNzYXJ5ICh0aGUgY2FzdGluZyB3aWxs
IGFjdHVhbGx5IHNoaWZ0CisgICAgLy8gdGhlIHBvaW50ZXIgb3ZlciB0byB0aGUgUG9wdXBNZW51
Q2xpZW50IHBhcnQgb2YgdGhlIG9iamVjdCkuCisgICAgaWYgKG9iamVjdC0+aXNNZW51TGlzdCgp
KQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UG9wdXBNZW51Q2xpZW50Kj4odG9SZW5kZXJN
ZW51TGlzdChvYmplY3QpKTsKKworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBvcHVwTWVu
dUNsaWVudCo+KG9iamVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBN
ZW51Q2xpZW50LmgKaW5kZXggZjMzYjllMjFiODkxMDU0ZDU0M2UyNzE4NmVmNDgyNzU5MDI3N2I2
Ny4uZTQ3ZjhmMDk3NGIyMzFlZTM1ZDQ3MWVjYjJlMTg4MWZhNTNmZTBmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5k
ZWYgUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgUG9wdXBNZW51Q2xpZW50X2gKIAorI2luY2x1
ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51U3R5bGUuaCIKICNpbmNsdWRl
ICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zMSw2ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwogY2xhc3MgRm9udFNlbGVjdG9y
OwogY2xhc3MgSG9zdFdpbmRvdzsKK2NsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFNjcm9sbGJh
cjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogCkBAIC00OSw2ICs1MSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0SW5k
ZXgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50
IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgPSAwOwpAQCAtNjksNiArNzIsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xsYmFyKFNjcm9s
bGFibGVBcmVhKiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplKSA9
IDA7CiB9OwogCitjb25zdCBQb3B1cE1lbnVDbGllbnQqIHRvUG9wdXBNZW51Q2xpZW50KFJlbmRl
ck9iamVjdCopOworCiAjaWYgRU5BQkxFKE5PX0xJU1RCT1hfUkVOREVSSU5HKQogY2xhc3MgTGlz
dFBvcHVwTWVudUNsaWVudCA6IHB1YmxpYyBQb3B1cE1lbnVDbGllbnQgewogcHVibGljOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggM2YzNTZhNjhl
YzBjZDljY2M0ZWYxZmY5MWQxOTNkZGM2YjZiZTUxMi4uZGRmNWU4YmJhYTAzMzYyMjVmYTY2NWRm
NzgzNTRkMTdjMjc2NTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwCkBAIC0zMDMsMTMgKzMwMyw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQ
b3B1cCgpCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChz
dGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAgbV9wb3B1cElzVmlzaWJsZSA9IHRy
dWU7CiAKLSAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRv
IGFjY291bnQsIGJ1dCB1c2UKLSAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50
IHRvIHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKLSAgICBMYXlvdXRSZWN0IGFic0Jv
dW5kcyA9IGFic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCk7Ci0gICAg
YWJzQm91bmRzLnNldExvY2F0aW9uKHJvdW5kZWRJbnRQb2ludChhYnNUb3BMZWZ0KSk7Ci0gICAg
bV9wb3B1cC0+c2hvdyhhYnNCb3VuZHMsIGRvY3VtZW50KCktPnZpZXcoKSwKLSAgICAgICAgc2Vs
ZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkpOworICAgIG1f
cG9wdXAtPnNob3coYm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50KCktPnZpZXcoKSwgc2VsZWN0
LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkpOwogfQogCiB2b2lk
IFJlbmRlck1lbnVMaXN0OjpoaWRlUG9wdXAoKQpAQCAtNTA2LDYgKzUwMCwxNiBAQCBQYXNzUmVm
UHRyPFNjcm9sbGJhcj4gUmVuZGVyTWVudUxpc3Q6OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxhYmxl
QXJlYSogc2Nyb2xsYWJsZQogICAgIHJldHVybiB3aWRnZXQucmVsZWFzZSgpOwogfQogCitMYXlv
dXRSZWN0IFJlbmRlck1lbnVMaXN0Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIC8v
IENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0
IHVzZQorICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUg
cG9wdXAuCisgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0
UG9pbnQoKSwgZmFsc2UsIHRydWUpOworICAgIExheW91dFJlY3QgYWJzQm91bmRzID0gYWJzb2x1
dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKKyAgICBhYnNCb3VuZHMuc2V0
TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsKKyAgICByZXR1cm4gYWJzQm91
bmRzOworfQorCiBpbnQgUmVuZGVyTWVudUxpc3Q6OmNsaWVudEluc2V0TGVmdCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
CmluZGV4IDczZjk4MWIxOTk3ODU1YTg5YjU1Y2ViYzM4NjUwZWYwM2YyNmFhNGQuLmUwMDVjN2Mw
NDI4YzJkYmUwNmMxZmRlNzIxMWZlZDZmODk2ZmQzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFJlbmRlclRleHQ7CiAKICNpZiBFTkFCTEUoTk9fTElTVEJPWF9SRU5ERVJJTkcp
Ci1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CitjbGFzcyBSZW5kZXJNZW51TGlzdCA6
IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gsIHB1YmxpYyBMaXN0UG9wdXBNZW51
Q2xpZW50IHsKICNlbHNlCi1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3gsIHByaXZhdGUgUG9wdXBNZW51Q2xpZW50IHsKK2NsYXNzIFJlbmRl
ck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHVibGljIFBv
cHVwTWVudUNsaWVudCB7CiAjZW5kaWYKIAogcHVibGljOgpAQCAtNjEsNiArNjEsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUG9wdXBNZW51Q2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVj
dCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Kik7CkBAIC04OSw2ICs5MCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBj
b25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0
SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29u
c3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNs
aWVudEluc2V0UmlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRQYWRkaW5nTGVm
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDA1
YTIzNzMxZDQ4MGE0OWQyYjIzYzNhMjMyYzk4NjUzNjZiMjAwNjYuLmUxYjJkYWQ0MGQwOTM5YWVm
NWJkYmFiNmY3NmY5Zjc5M2UyYjEwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgSW5saW5lQm94OwogY2xhc3MgSW5saW5l
Rmxvd0JveDsKIGNsYXNzIE92ZXJsYXBUZXN0UmVxdWVzdENsaWVudDsKIGNsYXNzIFBhdGg7Citj
bGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBQb3NpdGlvbjsKIGNsYXNzIFJlbmRlckJveE1v
ZGVsT2JqZWN0OwogY2xhc3MgUmVuZGVySW5saW5lOwpAQCAtMjk2LDYgKzI5Nyw3IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoTUVURVJfVEFHKQogICAgIHZpcnR1YWwgYm9vbCBpc01ldGVyKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBpc1BvcHVwTWVu
dUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgRU5BQkxFKFBST0dSRVNTX1RB
RykKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZmY5MDc3MGYwOTU1Nzg5MTA3NWRiOTFlMjll
MWRmZTc4NzA0YWZiNi4uNTVhNDYyMWI4NWE1NGZjN2JiOWRhOTU4NmFiZmU1MTEyZWZkMzk4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJl
Y2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAotICAgIG1fc2Vh
cmNoUG9wdXAtPnBvcHVwTWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hSZWN0KCksIGRv
Y3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5z
aG93KGJvdW5kaW5nQm94UmVjdCgpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsKIH0KIAogdm9p
ZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCgpCkBAIC02MTMsNiArNjEz
LDExIEBAIFBvcHVwTWVudVN0eWxlIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bWVudVN0
eWxlKCkgY29uc3QKICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGUoc3R5bGUoKS0+dmlzaXRlZERl
cGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3IpLCBzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50
Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBzdHlsZSgpLT5mb250KCksIHN0eWxl
KCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFLCBzdHlsZSgpLT5kaXNwbGF5KCkgPT0gTk9ORSwg
c3R5bGUoKS0+dGV4dEluZGVudCgpLCBzdHlsZSgpLT5kaXJlY3Rpb24oKSwgc3R5bGUoKS0+dW5p
Y29kZUJpZGkoKSA9PSBPdmVycmlkZSk7CiB9CiAKK0xheW91dFJlY3QgUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBhYnNv
bHV0ZUJvdW5kaW5nQm94UmVjdCgpOworfQorCiBpbnQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpjbGllbnRJbnNldExlZnQoKSBjb25zdAogewogICAgIC8vIEluc2V0IHRoZSBtZW51IGJ5
IHRoZSByYWRpdXMgb2YgdGhlIGNhcCBvbiB0aGUgbGVmdCBzbyB0aGF0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5k
ZXggNDc0ZDM1MzY1OWI0OTVlMmM4ZmU2YjI3NGUzMjRkYzBiMTc0NGMwYS4uZjE3ZjcxM2U0ZDg0
OGIxODMyNjk2Y2NmZGVjZmRlMWY0NjE2OGQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTYsNiArNTYs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb250cm9sQ2xpcFJlY3QoY29uc3QgTGF5
b3V0UG9pbnQmKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQb3B1cE1lbnVDbGllbnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50Jik7CkBAIC0xMDAsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAg
IHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29u
c3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBp
bnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRS
aWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTE0OTM2NDYwMDQzOWI1N2Mw
NDY1ODcxZWI5NzFjNzRmNTlkMDY1NC4uNWZmODgzMzBjMTM3MGQ2YTM4MTBjZjg1ZWRkOTkyYjM1
OGE0ZWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDQsNiArNDQs
NyBAQAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1
cmVFdmVudC5oIgogI2VuZGlmCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJU
cmVlQXNUZXh0LmgiCkBAIC00MzUsNCArNDM2LDQzIEBAIHZvaWQgSW50ZXJuYWxzOjpzY3JvbGxF
bGVtZW50VG9SZWN0KEVsZW1lbnQqIGVsZW1lbnQsIGxvbmcgeCwgbG9uZyB5LCBsb25nIHcsIGxv
CiAgICAgZnJhbWVWaWV3LT5zY3JvbGxFbGVtZW50VG9SZWN0KGVsZW1lbnQsIEludFJlY3QoeCwg
eSwgdywgaCkpOwogfQogCitpbnQgSW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdMZWZ0KEVs
ZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8
fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVu
dUNsaWVudCgpKQorICAgICAgICByZXR1cm4gdG9Qb3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5j
bGllbnRQYWRkaW5nTGVmdCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgSW50ZXJuYWxzOjpw
b3B1cENsaWVudFBhZGRpbmdSaWdodChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGVs
ZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAg
IGlmIChyZW5kZXJlci0+aXNQb3B1cE1lbnVDbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHRvUG9w
dXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+Y2xpZW50UGFkZGluZ1JpZ2h0KCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK1Bhc3NSZWZQdHI8Q2xpZW50UmVjdD4gSW50ZXJuYWxzOjpwb3B1cENsaWVudEJv
dW5kaW5nQm94UmVjdChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUoKTsK
KyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJl
bmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgpKQorICAgICAg
ICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHRvUG9wdXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+
Ym91bmRpbmdCb3hSZWN0KCkpOworICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUoKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNDEwYjZlZDhkNzg0MDQ4NWYz
NGNhY2U4NWU5NTcxOGYxOTk2ZWRjMy4uYTNkYzkzZGY4MGU3ZmFiYzgyZmQyMGU0NDNmNzUwOTFj
ZDU5ODdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zOCw3ICszOCw5IEBA
IGNsYXNzIENsaWVudFJlY3Q7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFz
cyBOb2RlOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgUmFuZ2U7CitjbGFzcyBSZW5k
ZXJPYmplY3Q7CiAKIGNsYXNzIEludGVybmFscyA6IHB1YmxpYyBSZWZDb3VudGVkPEludGVybmFs
cz4gewogcHVibGljOgpAQCAtOTIsNiArOTQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3Vn
Z2VzdGVkVmFsdWUoRWxlbWVudCogaW5wdXRFbGVtZW50LCBjb25zdCBTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqLCBsb25nIHgs
IGxvbmcgeSwgbG9uZyB3LCBsb25nIGgsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIGludCBwb3B1
cENsaWVudFBhZGRpbmdMZWZ0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgaW50IHBv
cHVwQ2xpZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFz
c1JlZlB0cjxDbGllbnRSZWN0PiBwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChFbGVtZW50Kiwg
RXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwog
CiAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5MDk5ODlkYTJhMmEyZDQyYzdm
OWZjYTUyMmMwNzg1Mzc1YzE3NzVmLi43Y2NlMzQ1NDA1NTlkMzViNDU3NDI5NmNmZWI5M2FlMzhm
ZmU2MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC02Nyw2ICs2Nywx
MCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhpbiBE
b2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQg
c2Nyb2xsRWxlbWVudFRvUmVjdChpbiBFbGVtZW50IGVsZW1lbnQsIGluIGxvbmcgeCwgaW4gbG9u
ZyB5LCBpbiBsb25nIHcsIGluIGxvbmcgaCkgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAg
ICAgIGludCBwb3B1cENsaWVudFBhZGRpbmdMZWZ0KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5nUmlnaHQoaW4g
RWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIENsaWVudFJl
Y3QgcG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBmYjQ4ZDk4ODkwYjc0ODk2Y2E0ZmJlYjM1M2QyZThmZGJiZDdmNTdhLi4yYTk1MjYwMTFhYWQ0
ODRkNGE4MWNmMGU5NTNmYTFmNTQxZTFlNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDExLTEwLTEzICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFraW5nIFBvcHVwTWVudUNsaWVudCBtb3JlIHRl
c3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0b2Zp
bGxQb3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgICogc3JjL0F1dG9m
aWxsUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6Cisg
ICAgICAgICogdGVzdHMvUG9wdXBNZW51VGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RQ
b3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVjdCk6CisKIDIwMTEtMTAtMTMgIEp1bGllbiBD
aGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGxheWVy
WCAvIGxheWVyWSBmcm9tIHRoZSBDaHJvbWl1bSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcAppbmRleCAzNGExODRm
MTg5N2ZkYmUxZTc3YzQ1OGEzNmViYWE3NzNlZGIxNzU0Li5mNzdiNjhhMTYyMGMwZDQ1M2FhNjBk
NWQ1NTcwMWFhZDkyOTg1ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0yMTYsNiArMjE2LDEzIEBAIGlu
dCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Y2xpZW50UGFkZGluZ1JpZ2h0KCkgY29uc3QKICAg
ICByZXR1cm4gUmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGlu
Z1JpZ2h0KHN0eWxlKTsKIH0KIAorV2ViQ29yZTo6TGF5b3V0UmVjdCBBdXRvZmlsbFBvcHVwTWVu
dUNsaWVudDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKK3sKKyAgICBpZiAobV90ZXh0RmllbGQp
CisgICAgICAgIHJldHVybiBtX3RleHRGaWVsZC0+Z2V0UmVjdCgpOworICAgIHJldHVybiBXZWJD
b3JlOjpMYXlvdXRSZWN0KCk7Cit9CisKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnBv
cHVwRGlkSGlkZSgpCiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVu
dUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVD
bGllbnQuaAppbmRleCA3ZDJiOTg1YTJjMmNjZTNkMDg5OTc0YzBjYjU4ZTYyNjhkNThjN2IzLi44
ZTJlYzgzODc3YzQ0NTE2MzllNjc5ZWQyMmU1YTBjZjM0NjMyNDE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKQEAgLTMx
LDYgKzMxLDcgQEAKICNpZm5kZWYgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnRfaAogI2RlZmluZSBB
dXRvZmlsbFBvcHVwTWVudUNsaWVudF9oCiAKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2lu
Y2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Miw2
ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25l
ZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUg
aXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OkxheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xp
ZW50SW5zZXRMZWZ0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVu
dEluc2V0UmlnaHQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgY2xpZW50
UGFkZGluZ0xlZnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAppbmRleCA3MjAxOTA3ZjA5YzUxOTdmZWQ3NTkyOTk3YWRiNDNmODVkZDFlM2RiLi5j
NjAzMGE0ZTZiYTVhZGI4YjA3YWY2YjU3Y2MzYWZlM2E5MzllN2ViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yMjU4LDcgKzIyNTgsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMoCiAgICAgaWYgKG1fYXV0b2Zp
bGxQb3B1cFNob3dpbmcpIHsKICAgICAgICAgcmVmcmVzaEF1dG9maWxsUG9wdXAoKTsKICAgICB9
IGVsc2UgewotICAgICAgICBtX2F1dG9maWxsUG9wdXAtPnNob3dJblJlY3QoZm9jdXNlZE5vZGUt
PmdldFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKKyAg
ICAgICAgbV9hdXRvZmlsbFBvcHVwLT5zaG93SW5SZWN0KG1fYXV0b2ZpbGxQb3B1cENsaWVudC0+
Ym91bmRpbmdCb3hSZWN0KCksIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwg
MCk7CiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcgPSB0cnVlOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCmluZGV4IGIz
OTViOTMwMTdjZGJiMWYxMjgwMTliYWQxY2M4NDM5NmNjN2EzMTYuLmRjYmM0NDQ3NTMwOTgxMDYx
ZTVkZmU3NTg1Y2YzMjM0ZWMyMjQyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcApAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBQb3B1cE1lbnVTdHlsZShDb2xvcjo6YmxhY2ssIENvbG9yOjp3aGl0ZSwgZm9udCwg
dHJ1ZSwgZmFsc2UsIExlbmd0aCgpLCBUZXh0RGlyZWN0aW9uKCksIGZhbHNlIC8qIGhhcyB0ZXh0
IGRpcmVjdGlvbiBvdmVycmlkZSAqLyk7CiAgICAgfQogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5
bGUgbWVudVN0eWxlKCkgY29uc3QgeyByZXR1cm4gaXRlbVN0eWxlKDApOyB9CisgICAgdmlydHVh
bCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFJlY3Qo
KTsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gMDsg
fQogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgeyByZXR1cm4gMDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDk5MmRjYjYxZDhjOTUyMDViOTI1ZTdjN2NiNjFjZThhNDkzZjk5Mzcu
LjdjZTY1MDEzM2EyZjYwMzBiYWNlNjdjYjE4M2E5NzdhMDExNDQwYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMS0xMC0xMyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGllbnQgbW9yZSB0ZXN0
YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdp
bi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTEt
MTAtMTMgIE5heWFuIEt1bWFyIEsgIDxuYXlhbmtrQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBb
R1RLXVtXRUJLSVQyXSBBZGQgV2ViS2l0U2V0dGluZ3MgR1RLKyBBUEkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi5kZWYKaW5kZXggNWFiNTRlOTVjZTU4ZDAwZjIzYzU5ZGIzN2QxNTg0ZmI4YTczYmI0Yy4uZjQ1
ZjE5MjZhZjMxNjYzNDFkMjA1MjI5YTJhNDJmNDc2YWZkZmVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgpAQCAtMTc3LDYgKzE3Nyw3IEBAIEVYUE9SVFMKICAgICAgICAgP3RvSlNAV2ViQ29yZUBA
WUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQ
QVZDbGllbnRSZWN0QDFAQFoKICAgICAgICAgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpT
Q0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAg
ICAgICAgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFW
SlNET01HbG9iYWxPYmplY3RAMUBQQVZSYW5nZUAxQEBaCisgICAgICAgID90b1BvcHVwTWVudUNs
aWVudEBXZWJDb3JlQEBZQVBCVlBvcHVwTWVudUNsaWVudEAxQFBBVlJlbmRlck9iamVjdEAxQEBa
CiAgICAgICAgID91cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNARG9jdW1lbnRA
V2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVkZy
YW1lVmlld0AyQFhaCiAgICAgICAgID92aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxl
QEpTRE9NV3JhcHBlckBXZWJDb3JlQEBNQUVYWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgppbmRleCA3ZDc0NjI5MGUzYjNhOTAzZjQzZjU2MDg5YzdmNGQ5OTAxYjZiYjlmLi5jYTdj
YzA3MTNhNGQ1OWE0MDA1ZTk5YjI4YjdkZmIyZjkwMjQzYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJDRkxpdGUuZGVmCkBAIC0xNzEsNSArMTcxLDYgQEAgRVhQT1JUUwogICAgICAgICA/dG9K
U0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2Jh
bE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFs
dWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVlJhbmdlQDFA
QFoKICAgICAgICAgP3RvTm9kZUBXZWJDb3JlQEBZQVBBVk5vZGVAMUBWSlNWYWx1ZUBKU0NAQEBa
CisgICAgICAgID90b1BvcHVwTWVudUNsaWVudEBXZWJDb3JlQEBZQVBCVlBvcHVwTWVudUNsaWVu
dEAxQFBBVlJlbmRlck9iamVjdEAxQEBaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVA
QFFCRVBBVkZyYW1lVmlld0AyQFhaCiAgICAgICAgID92aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRX
ZWFrVnRhYmxlQEpTRE9NV3JhcHBlckBXZWJDb3JlQEBNQUVYWFoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110978</attachid>
            <date>2011-10-14 01:37:00 -0700</date>
            <delta_ts>2011-10-14 07:39:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111014043659.patch</filename>
            <type>text/plain</type>
            <size>34258</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0MzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNWRiMmVkMjJmNzA3ZWFjODlkYjE0
OGQ0ODA2OTc4MTI1ZThkNWQwLi5mYWMxYjY2YTM0MjQxMDRhNThkNWNkMGRlMzQ4NzE3ODdmODRl
MTUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0xMC0xMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW0Nocm9taXVtXSBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjgzZTg5MWJiNWUyMGZlMDc5YjE1ZWQ1ZjM5MjVlODRhMDgzNTI5NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50
LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1BBU1MgcG9wdXBDbGllbnRQYWRk
aW5nTGVmdCBpcyA0CitQQVNTIHBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0IGlzIDIKK0ZBSUwgYm91
bmRpbmdCb3hSZWN0LmxlZnQgc2hvdWxkIGJlIDEwLiBXYXMgMjAuCitGQUlMIGJvdW5kaW5nQm94
UmVjdC50b3Agc2hvdWxkIGJlIDEwLiBXYXMgMjAuCitQQVNTIGJvdW5kaW5nQm94UmVjdC53aWR0
aCBpcyBib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgKK1BBU1MgYm91bmRpbmdCb3hSZWN0LmhlaWdo
dCBpcyBib3VuZGluZ0NsaWVudFJlY3QuaGVpZ2h0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9w
dXAtbWVudS1jbGllbnQtdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3Mzc2MTc2NWMzZGFlMzRiYjc1
MTE1YTNmMTIxMmM0ZDBiYTM5NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+
CisgIDxoZWFkPgorICAgIDxib2R5PgorICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
ICAgICA8c2VsZWN0IGlkPSJzZWxlY3RlbGVtZW50Ij4KKyAgICAgICAgPG9wdGlvbj5FbGVtZW50
IDE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5FbGVtZW50IDI8L29wdGlvbj4KKyAgICAgICAg
PG9wdGlvbj5FbGVtZW50IDM8L29wdGlvbj4KKyAgICAgIDwvc2VsZWN0PgorICAgIDwvYm9keT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic2VsZWN0ZWxlbWVudCIpOworICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgd2lsIGZhaWwgaWYgdGhlIHBhZ2Ugc2NhbGUgZmFj
dG9yICE9IDEuMAorICAgICAgICB2YXIgcGFnZVNjYWxlRmFjdG9yID0gMi4wOworICAgICAgICBl
dmVudFNlbmRlci5zY2FsZVBhZ2VCeShwYWdlU2NhbGVGYWN0b3IsIDAsIDApOworCisgICAgICAg
IHZhciBwb3B1cENsaWVudFBhZGRpbmdMZWZ0ID0gd2luZG93LmludGVybmFscy5wb3B1cENsaWVu
dFBhZGRpbmdMZWZ0KHNlbGVjdEVsZW1lbnQpOworICAgICAgICB2YXIgcG9wdXBDbGllbnRQYWRk
aW5nUmlnaHQgPSB3aW5kb3cuaW50ZXJuYWxzLnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KHNlbGVj
dEVsZW1lbnQpOworICAgICAgICB2YXIgYm91bmRpbmdCb3hSZWN0ID0gd2luZG93LmludGVybmFs
cy5wb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChzZWxlY3RFbGVtZW50KTsKKyAgICAgICAgdmFy
IGJvdW5kaW5nQ2xpZW50UmVjdCA9IHNlbGVjdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgICAgIHNob3VsZEJlKCJwb3B1cENsaWVudFBhZGRpbmdMZWZ0IiwgIjQiKTsKKyAg
ICAgICAgc2hvdWxkQmUoInBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0IiwgIjIiKTsKKyAgICAgICAg
c2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC5sZWZ0IiwgImJvdW5kaW5nQ2xpZW50UmVjdC5sZWZ0
Iik7CisgICAgICAgIHNob3VsZEJlKCJib3VuZGluZ0JveFJlY3QudG9wIiwgImJvdW5kaW5nQ2xp
ZW50UmVjdC50b3AiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC53aWR0aCIs
ICJib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5n
Qm94UmVjdC5oZWlnaHQiLCAiYm91bmRpbmdDbGllbnRSZWN0LmhlaWdodCIpOworICAgICAgfQor
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICB9CisgICAgICBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFk
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMDUxYzBjZTZkNjExOGNmMDcyNzA4
YjZhNDAzYTAxNDNlYjA5ZmI5Li4zMTk0NzJmOTFlMWQ1NDEzNmRjMmFiYzQyY2IwMDYzZjVkNmJh
NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAzNSw2ICsxMDM1LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNwcAogICAgIHBsYXRmb3JtL0xvZ2dp
bmcuY3BwCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKyAgICBwbGF0Zm9ybS9Q
b3B1cE1lbnVDbGllbnQuY3BwCiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmNwcAogICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAogICAgIHBsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJkZmNlMzMyMjk2YWYxNjUzMTg2OTgwNjdiNGIx
Mzc0ZDg3NzU0NjYuLmJhYjAxYzNmYjUxYTJjZWY0YmM4MzAwZTUwZjQ4M2E5MjEwY2FkZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMS0xMC0xMyAgRmFkeSBTYW11ZWwgIDxmc2Ft
dWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGll
bnQgbW9yZSB0ZXN0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBzb21lIGZ1bmN0aW9ucyB0byB3aW5kb3cuaW50ZXJuYWxzIHRvIGFsbG93
IHRlc3Rpbmcgb2YgcGFydHMgb2YgUG9wdXBNZW51Q2xpZW50LgorCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRl
cjoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b1BvcHVwTWVudUNsaWVudCk6CisgICAgICAgICog
cGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmJvdW5kaW5nQm94UmVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3Q6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6Ym91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xp
ZW50UGFkZGluZ0xlZnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwb3B1cENsaWVu
dFBhZGRpbmdSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xpZW50
Qm91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMS0xMC0xMyAgTWFyayBIYWhuZW5iZXJn
ICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSB2aXJ0dWFsIGdldENv
bnN0cnVjdERhdGEgdG8gZ2V0Q29uc3RydWN0RGF0YVZpcnR1YWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDAyNGQxNzBkNmRmNzFjYzc2NWI0NWY5OWEwNWIxZWE3ZTJiYjFjM2Mu
LjI5MGNmMDNlMTQ3NDg1ZWZiYjNiMWJhYWQ3OTdkNDdlMTM3MTRjYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMjgwMSw2ICsyODAxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbFRyZWUuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1
cE1lbnVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA5MzhjZDgxOGQwOTA3M2U2YTdkZmRmNmRhODRjZmU0OThjMjRhNGU1Li4wYmNmZTcxOWUwOGY0
MGRlYjc5YzY3MWIxYTBlYzM2NjA4NDU4MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjY0
LDYgKzI2NCw3IEBAIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlNWNsb3NlRXYKIF9fWk43V2Vi
Q29yZTEySWNvbkRhdGFiYXNlOXNldENsaWVudEVQTlNfMThJY29uRGF0YWJhc2VDbGllbnRFCiBf
X1pON1dlYkNvcmUxMkljb25EYXRhYmFzZUMxRXYKIF9fWk43V2ViQ29yZTEySlNET01XcmFwcGVy
MzR2aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxlRXYKK19fWk43V2ViQ29yZTE3dG9Q
b3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdXZWJDb3JlMTJQb3B1cE1l
bnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4
dDEycGFnZVByb3BlcnR5RVBOU181RnJhbWVFUEtjaQogX19aTjdXZWJDb3JlMTJQcmludENvbnRl
eHQxM251bWJlck9mUGFnZXNFUE5TXzVGcmFtZUVSS05TXzlGbG9hdFNpemVFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggM2I4ODEzZDEzNGU1ZjIzNmQ3MjUzZmYxYTc3NDE2NzFhYzMwNzQ3Yy4uYjIzZGRk
ODEwMTk2ZTEzYjg5YjkyZmNhZWQ3OWZkNTY0YmEyYTg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
NjE4NSw2ICs2MTg1LDggQEAKICAgICAgICAgICAgICd0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5oJywKICAgICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFscy5jcHAnLAogICAgICAgICAg
ICAgJ3Rlc3RpbmcvSW50ZXJuYWxzLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwJywK
ICAgICAgICAgXSwKICAgICAgICAgJ3dlYmNvcmVfcmVzb3VyY2VfZmlsZXMnOiBbCiAgICAgICAg
ICAgICAnRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CmluZGV4IDQ5MjdjZjQ3ZTk3YWQ3OGE0YzRiY2U4NzU0NDdhMzE0NWE0MDQ3ZjYuLmY1NGI1YWFl
Y2M2N2Q5NjMzZjBiMWE0YjM3OTc4OGRlZWE4ODY0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAt
MTEwNzQsNiArMTEwNzQsNyBAQCBfX1pON1dlYkNvcmUxN0pTQXJyYXlCdWZmZXJWaWV3QzJFUE4z
SlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURgogX19aTjdXZWJDb3Jl
MzRqc1dlYkdMUmVuZGVyaW5nQ29udGV4dFNUQVRJQ19EUkFXRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTUwanNXZWJHTFJlbmRl
cmluZ0NvbnRleHRQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlckRhdGFFUE4zSlNDOUV4ZWNTdGF0ZUUK
IF9fWk43V2ViQ29yZTE3dG9BcnJheUJ1ZmZlclZpZXdFTjNKU0M3SlNWYWx1ZUUKK19fWk43V2Vi
Q29yZTE3dG9Qb3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdXZWJDb3Jl
MjFXZWJHTFJlbmRlcmluZ0NvbnRleHQxMGJ1ZmZlckRhdGFFalBOU18xNUFycmF5QnVmZmVyVmll
d0VqUmkKIF9fWk43V2ViQ29yZTIxV2ViR0xSZW5kZXJpbmdDb250ZXh0Mjh2YWxpZGF0ZUJ1ZmZl
ckRhdGFQYXJhbWV0ZXJzRWpqCiBfX1pON1dlYkNvcmUxMVdlYkdMQnVmZmVyMTlhc3NvY2lhdGVC
dWZmZXJEYXRhRVBOU18xNUFycmF5QnVmZmVyVmlld0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYThlMzMz
MWMwYjdhYTQ0YzgwYzQ3OTYxMDg1NjkwZGI0ODQ5MGM4Yy4uMDNkZGFkMDkxMGNhNTk4NWI3Nzdj
ZjliMjlkZmUxOWQyMTJjNmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwNzQsNiArMTA3NCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIFwK
ICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBcCisgICAgcGxhdGZvcm0vUG9w
dXBNZW51Q2xpZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5j
cHAgXAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgXAogICAgIHBs
YXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCkBAIC0yMTYwLDYgKzIxNjEsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBwbGF0Zm9ybS9UaW1lci5oIFwKICAgICBwbGF0Zm9ybS9XaWRnZXQuaCBcCiAg
ICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggXAorICAgIHBsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggXAogICAgIHBsdWdp
bnMvRE9NTWltZVR5cGVBcnJheS5oIFwKICAgICBwbHVnaW5zL0RPTU1pbWVUeXBlLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDAyNGE4ZjFjNjYzN2E0M2RjNmE2YTEyNTEwOThhZGFkNTE1NWMxMzEuLjlmOTUwYzE2Mzg4ZWE0
YTIyODM5MGZkODQwNmUyNTg2NWNhZDk1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0NzUsNiArNTQ3NSw3IEBACiAJCUM2
RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8q
IEVudHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovOyB9
OwogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdEMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUNBRjA3OTI5MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1l
bnVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0FGMDc5MjgxNDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgKi87IH07
CiAJCUNEMERCRjAxMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAw
MF9QMDAwLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDBEQkQyMDE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9D
X1IwMTk1X1QwMDBfUDAwMC53YXYgKi87IH07CiAJCUNEMERCRjAyMTQyMjc2ODUwMDI4MDI2MyAv
KiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1LndhdiBpbiBDb3B5IEF1ZGlvIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBEQkQyMTE0MjI3NTk1
MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXYgKi87IH07CiAJ
CUNEMERCRjAzMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9Q
MDMwLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDBEQkQyMjE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1Iw
MTk1X1QwMDBfUDAzMC53YXYgKi87IH07CkBAIC0xMjc3Myw2ICsxMjc3NCw3IEBACiAJCUM2RjQx
MDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRW50cnlCYXNlLmNwcDsgcGF0aCA9IGZpbGVhcGkvRW50cnlCYXNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZD
RTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNBRjA3OTI4MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1lbnVDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9wdXBNZW51Q2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwREJEMjAxNDIyNzU5NTAwMjgw
MjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMDAud2F2ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJD
X0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9y
ZXNvdXJjZXMvSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXY7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKIAkJQ0QwREJEMjExNDIyNzU5NTAwMjgwMjYzIC8qIElSQ19Db21w
b3NpdGVfQ19SMDE5NV9UMDAwX1AwMTUud2F2ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJDX0NvbXBvc2l0ZV9DX1Iw
MTk1X1QwMDBfUDAxNS53YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMvSVJDX0Nv
bXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKIAkJQ0QwREJEMjIxNDIyNzU5NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9U
MDAwX1AwMzAud2F2ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAzMC53
YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMvSVJDX0NvbXBvc2l0ZV9DX1IwMTk1
X1QwMDBfUDAzMC53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTIwMDQ0LDYg
KzIwMDQ2LDcgQEAKIAkJCQlCQ0JCOEFCNzEzRjFBRkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tU
cmVlLmggKi8sCiAJCQkJMDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICov
LAogCQkJCUFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLywK
KwkJCQlDQUYwNzkyODE0NDc5NDBFMDAzMkE1QUQgLyogUG9wdXBNZW51Q2xpZW50LmNwcCAqLywK
IAkJCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJ
CQlFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCiAJCQkJ
N0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLywKQEAgLTI3NDY3
LDYgKzI3NDcwLDcgQEAKIAkJCQkzMTA2MDM3QTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0
Q1NTRmlsdGVyVmFsdWUubW0gaW4gU291cmNlcyAqLywKIAkJCQkyOUFDQjIxNDE0M0U3NDk4MDA2
QkNBNUYgLyogQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYwOTA4N0YxNDQ0RkRCMjAwMDI4OTE3IC8qIFNjcm9sbGJhclRoZW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUNBRjA3OTI5MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1lbnVDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDlBRjJENkMxNDQzNUQyMTAwMTZBNzg0IC8qIERpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUZDN0E1MDE0NDRBRjVG
MDBBNUQ4NjQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlMjQ4NGEwNjQ2ZDQwZmRjMjQxMGEzY2QyYWZkZTE0ZDljNGUyN2EKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0w
LDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG9wdXBN
ZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgorI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IFBvcHVwTWVudUNs
aWVudCogdG9Qb3B1cE1lbnVDbGllbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNT
RVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1BvcHVwTWVudUNsaWVudCgpKTsKKyAgICBpZiAoIW9i
amVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBTcGVjaWFsIGNhc2U6IFJlbmRlck1l
bnVMaXN0IHVzZXMgbXVsdGlwbGUgaW5oZXJpdGFuY2UgYW5kIHNvLAorICAgIC8vIGRlcGVuZGlu
ZyBvbiB0aGUgY29tcGlsZXIsIHdlIG1heSBlbmQgdXAgaW4gYSBzaXR1YXRpb24gd2hlcmUKKyAg
ICAvLyB0aGUgZmlyc3QgdnB0ciBkb2VzIG5vdCBwb2ludCB0byB0aGUgUG9wdXBNZW51Q2xpZW50
J3MgdnRhYmxlLAorICAgIC8vIGFuZCBzbyB3ZSdkIGVuZCB1cCBjYWxsaW5nIHRoZSB3cm9uZyBt
ZXRob2QuIFRodXMsIHdlIGZpcnN0IGNhc3QgdG8KKyAgICAvLyBSZW5kZXJNZW51TGlzdCBhbmQg
dGhlbiB0byBQb3B1cE1lbnVDbGllbnQgd2hpY2ggd2lsbCBhdXRvbWFnaWNhbGx5CisgICAgLy8g
dGFrZSBpbnRvIGFjY291bnQgdGh1bmtpbmcgaWYgbmVjZXNzYXJ5ICh0aGUgY2FzdGluZyB3aWxs
IGFjdHVhbGx5IHNoaWZ0CisgICAgLy8gdGhlIHBvaW50ZXIgb3ZlciB0byB0aGUgUG9wdXBNZW51
Q2xpZW50IHBhcnQgb2YgdGhlIG9iamVjdCkuCisgICAgaWYgKG9iamVjdC0+aXNNZW51TGlzdCgp
KQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UG9wdXBNZW51Q2xpZW50Kj4odG9SZW5kZXJN
ZW51TGlzdChvYmplY3QpKTsKKworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBvcHVwTWVu
dUNsaWVudCo+KG9iamVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBN
ZW51Q2xpZW50LmgKaW5kZXggZjMzYjllMjFiODkxMDU0ZDU0M2UyNzE4NmVmNDgyNzU5MDI3N2I2
Ny4uZTQ3ZjhmMDk3NGIyMzFlZTM1ZDQ3MWVjYjJlMTg4MWZhNTNmZTBmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5k
ZWYgUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgUG9wdXBNZW51Q2xpZW50X2gKIAorI2luY2x1
ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51U3R5bGUuaCIKICNpbmNsdWRl
ICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zMSw2ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwogY2xhc3MgRm9udFNlbGVjdG9y
OwogY2xhc3MgSG9zdFdpbmRvdzsKK2NsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFNjcm9sbGJh
cjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogCkBAIC00OSw2ICs1MSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0SW5k
ZXgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50
IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgPSAwOwpAQCAtNjksNiArNzIsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xsYmFyKFNjcm9s
bGFibGVBcmVhKiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplKSA9
IDA7CiB9OwogCitjb25zdCBQb3B1cE1lbnVDbGllbnQqIHRvUG9wdXBNZW51Q2xpZW50KFJlbmRl
ck9iamVjdCopOworCiAjaWYgRU5BQkxFKE5PX0xJU1RCT1hfUkVOREVSSU5HKQogY2xhc3MgTGlz
dFBvcHVwTWVudUNsaWVudCA6IHB1YmxpYyBQb3B1cE1lbnVDbGllbnQgewogcHVibGljOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggM2YzNTZhNjhl
YzBjZDljY2M0ZWYxZmY5MWQxOTNkZGM2YjZiZTUxMi4uZGRmNWU4YmJhYTAzMzYyMjVmYTY2NWRm
NzgzNTRkMTdjMjc2NTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwCkBAIC0zMDMsMTMgKzMwMyw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQ
b3B1cCgpCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChz
dGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAgbV9wb3B1cElzVmlzaWJsZSA9IHRy
dWU7CiAKLSAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRv
IGFjY291bnQsIGJ1dCB1c2UKLSAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50
IHRvIHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKLSAgICBMYXlvdXRSZWN0IGFic0Jv
dW5kcyA9IGFic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCk7Ci0gICAg
YWJzQm91bmRzLnNldExvY2F0aW9uKHJvdW5kZWRJbnRQb2ludChhYnNUb3BMZWZ0KSk7Ci0gICAg
bV9wb3B1cC0+c2hvdyhhYnNCb3VuZHMsIGRvY3VtZW50KCktPnZpZXcoKSwKLSAgICAgICAgc2Vs
ZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkpOworICAgIG1f
cG9wdXAtPnNob3coYm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50KCktPnZpZXcoKSwgc2VsZWN0
LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkpOwogfQogCiB2b2lk
IFJlbmRlck1lbnVMaXN0OjpoaWRlUG9wdXAoKQpAQCAtNTA2LDYgKzUwMCwxNiBAQCBQYXNzUmVm
UHRyPFNjcm9sbGJhcj4gUmVuZGVyTWVudUxpc3Q6OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxhYmxl
QXJlYSogc2Nyb2xsYWJsZQogICAgIHJldHVybiB3aWRnZXQucmVsZWFzZSgpOwogfQogCitMYXlv
dXRSZWN0IFJlbmRlck1lbnVMaXN0Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIC8v
IENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0
IHVzZQorICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUg
cG9wdXAuCisgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0
UG9pbnQoKSwgZmFsc2UsIHRydWUpOworICAgIExheW91dFJlY3QgYWJzQm91bmRzID0gYWJzb2x1
dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKKyAgICBhYnNCb3VuZHMuc2V0
TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsKKyAgICByZXR1cm4gYWJzQm91
bmRzOworfQorCiBpbnQgUmVuZGVyTWVudUxpc3Q6OmNsaWVudEluc2V0TGVmdCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
CmluZGV4IDczZjk4MWIxOTk3ODU1YTg5YjU1Y2ViYzM4NjUwZWYwM2YyNmFhNGQuLmUwMDVjN2Mw
NDI4YzJkYmUwNmMxZmRlNzIxMWZlZDZmODk2ZmQzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFJlbmRlclRleHQ7CiAKICNpZiBFTkFCTEUoTk9fTElTVEJPWF9SRU5ERVJJTkcp
Ci1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CitjbGFzcyBSZW5kZXJNZW51TGlzdCA6
IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gsIHB1YmxpYyBMaXN0UG9wdXBNZW51
Q2xpZW50IHsKICNlbHNlCi1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3gsIHByaXZhdGUgUG9wdXBNZW51Q2xpZW50IHsKK2NsYXNzIFJlbmRl
ck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHVibGljIFBv
cHVwTWVudUNsaWVudCB7CiAjZW5kaWYKIAogcHVibGljOgpAQCAtNjEsNiArNjEsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUG9wdXBNZW51Q2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVj
dCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Kik7CkBAIC04OSw2ICs5MCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBj
b25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0
SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29u
c3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNs
aWVudEluc2V0UmlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRQYWRkaW5nTGVm
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDA1
YTIzNzMxZDQ4MGE0OWQyYjIzYzNhMjMyYzk4NjUzNjZiMjAwNjYuLmUxYjJkYWQ0MGQwOTM5YWVm
NWJkYmFiNmY3NmY5Zjc5M2UyYjEwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgSW5saW5lQm94OwogY2xhc3MgSW5saW5l
Rmxvd0JveDsKIGNsYXNzIE92ZXJsYXBUZXN0UmVxdWVzdENsaWVudDsKIGNsYXNzIFBhdGg7Citj
bGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBQb3NpdGlvbjsKIGNsYXNzIFJlbmRlckJveE1v
ZGVsT2JqZWN0OwogY2xhc3MgUmVuZGVySW5saW5lOwpAQCAtMjk2LDYgKzI5Nyw3IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoTUVURVJfVEFHKQogICAgIHZpcnR1YWwgYm9vbCBpc01ldGVyKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBpc1BvcHVwTWVu
dUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgRU5BQkxFKFBST0dSRVNTX1RB
RykKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZmY5MDc3MGYwOTU1Nzg5MTA3NWRiOTFlMjll
MWRmZTc4NzA0YWZiNi4uNTVhNDYyMWI4NWE1NGZjN2JiOWRhOTU4NmFiZmU1MTEyZWZkMzk4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJl
Y2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAotICAgIG1fc2Vh
cmNoUG9wdXAtPnBvcHVwTWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hSZWN0KCksIGRv
Y3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5z
aG93KGJvdW5kaW5nQm94UmVjdCgpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsKIH0KIAogdm9p
ZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCgpCkBAIC02MTMsNiArNjEz
LDExIEBAIFBvcHVwTWVudVN0eWxlIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bWVudVN0
eWxlKCkgY29uc3QKICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGUoc3R5bGUoKS0+dmlzaXRlZERl
cGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3IpLCBzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50
Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBzdHlsZSgpLT5mb250KCksIHN0eWxl
KCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFLCBzdHlsZSgpLT5kaXNwbGF5KCkgPT0gTk9ORSwg
c3R5bGUoKS0+dGV4dEluZGVudCgpLCBzdHlsZSgpLT5kaXJlY3Rpb24oKSwgc3R5bGUoKS0+dW5p
Y29kZUJpZGkoKSA9PSBPdmVycmlkZSk7CiB9CiAKK0xheW91dFJlY3QgUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBhYnNv
bHV0ZUJvdW5kaW5nQm94UmVjdCgpOworfQorCiBpbnQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpjbGllbnRJbnNldExlZnQoKSBjb25zdAogewogICAgIC8vIEluc2V0IHRoZSBtZW51IGJ5
IHRoZSByYWRpdXMgb2YgdGhlIGNhcCBvbiB0aGUgbGVmdCBzbyB0aGF0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5k
ZXggNDc0ZDM1MzY1OWI0OTVlMmM4ZmU2YjI3NGUzMjRkYzBiMTc0NGMwYS4uZjE3ZjcxM2U0ZDg0
OGIxODMyNjk2Y2NmZGVjZmRlMWY0NjE2OGQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTYsNiArNTYs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb250cm9sQ2xpcFJlY3QoY29uc3QgTGF5
b3V0UG9pbnQmKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQb3B1cE1lbnVDbGllbnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50Jik7CkBAIC0xMDAsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAg
IHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29u
c3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBp
bnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRS
aWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTE0OTM2NDYwMDQzOWI1N2Mw
NDY1ODcxZWI5NzFjNzRmNTlkMDY1NC4uNWZmODgzMzBjMTM3MGQ2YTM4MTBjZjg1ZWRkOTkyYjM1
OGE0ZWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDQsNiArNDQs
NyBAQAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1
cmVFdmVudC5oIgogI2VuZGlmCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJU
cmVlQXNUZXh0LmgiCkBAIC00MzUsNCArNDM2LDQzIEBAIHZvaWQgSW50ZXJuYWxzOjpzY3JvbGxF
bGVtZW50VG9SZWN0KEVsZW1lbnQqIGVsZW1lbnQsIGxvbmcgeCwgbG9uZyB5LCBsb25nIHcsIGxv
CiAgICAgZnJhbWVWaWV3LT5zY3JvbGxFbGVtZW50VG9SZWN0KGVsZW1lbnQsIEludFJlY3QoeCwg
eSwgdywgaCkpOwogfQogCitpbnQgSW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdMZWZ0KEVs
ZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8
fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVu
dUNsaWVudCgpKQorICAgICAgICByZXR1cm4gdG9Qb3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5j
bGllbnRQYWRkaW5nTGVmdCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgSW50ZXJuYWxzOjpw
b3B1cENsaWVudFBhZGRpbmdSaWdodChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGVs
ZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAg
IGlmIChyZW5kZXJlci0+aXNQb3B1cE1lbnVDbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHRvUG9w
dXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+Y2xpZW50UGFkZGluZ1JpZ2h0KCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK1Bhc3NSZWZQdHI8Q2xpZW50UmVjdD4gSW50ZXJuYWxzOjpwb3B1cENsaWVudEJv
dW5kaW5nQm94UmVjdChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUoKTsK
KyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJl
bmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgpKQorICAgICAg
ICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHRvUG9wdXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+
Ym91bmRpbmdCb3hSZWN0KCkpOworICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUoKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNDEwYjZlZDhkNzg0MDQ4NWYz
NGNhY2U4NWU5NTcxOGYxOTk2ZWRjMy4uYTNkYzkzZGY4MGU3ZmFiYzgyZmQyMGU0NDNmNzUwOTFj
ZDU5ODdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zOCw3ICszOCw5IEBA
IGNsYXNzIENsaWVudFJlY3Q7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFz
cyBOb2RlOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgUmFuZ2U7CitjbGFzcyBSZW5k
ZXJPYmplY3Q7CiAKIGNsYXNzIEludGVybmFscyA6IHB1YmxpYyBSZWZDb3VudGVkPEludGVybmFs
cz4gewogcHVibGljOgpAQCAtOTIsNiArOTQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3Vn
Z2VzdGVkVmFsdWUoRWxlbWVudCogaW5wdXRFbGVtZW50LCBjb25zdCBTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqLCBsb25nIHgs
IGxvbmcgeSwgbG9uZyB3LCBsb25nIGgsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIGludCBwb3B1
cENsaWVudFBhZGRpbmdMZWZ0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgaW50IHBv
cHVwQ2xpZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFz
c1JlZlB0cjxDbGllbnRSZWN0PiBwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChFbGVtZW50Kiwg
RXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwog
CiAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5MDk5ODlkYTJhMmEyZDQyYzdm
OWZjYTUyMmMwNzg1Mzc1YzE3NzVmLi43Y2NlMzQ1NDA1NTlkMzViNDU3NDI5NmNmZWI5M2FlMzhm
ZmU2MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC02Nyw2ICs2Nywx
MCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhpbiBE
b2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQg
c2Nyb2xsRWxlbWVudFRvUmVjdChpbiBFbGVtZW50IGVsZW1lbnQsIGluIGxvbmcgeCwgaW4gbG9u
ZyB5LCBpbiBsb25nIHcsIGluIGxvbmcgaCkgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAg
ICAgIGludCBwb3B1cENsaWVudFBhZGRpbmdMZWZ0KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5nUmlnaHQoaW4g
RWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIENsaWVudFJl
Y3QgcG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBmYjQ4ZDk4ODkwYjc0ODk2Y2E0ZmJlYjM1M2QyZThmZGJiZDdmNTdhLi4yYTk1MjYwMTFhYWQ0
ODRkNGE4MWNmMGU5NTNmYTFmNTQxZTFlNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDExLTEwLTEzICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFraW5nIFBvcHVwTWVudUNsaWVudCBtb3JlIHRl
c3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0b2Zp
bGxQb3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgICogc3JjL0F1dG9m
aWxsUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6Cisg
ICAgICAgICogdGVzdHMvUG9wdXBNZW51VGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RQ
b3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVjdCk6CisKIDIwMTEtMTAtMTMgIEp1bGllbiBD
aGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGxheWVy
WCAvIGxheWVyWSBmcm9tIHRoZSBDaHJvbWl1bSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcAppbmRleCAzNGExODRm
MTg5N2ZkYmUxZTc3YzQ1OGEzNmViYWE3NzNlZGIxNzU0Li5mNzdiNjhhMTYyMGMwZDQ1M2FhNjBk
NWQ1NTcwMWFhZDkyOTg1ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0yMTYsNiArMjE2LDEzIEBAIGlu
dCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Y2xpZW50UGFkZGluZ1JpZ2h0KCkgY29uc3QKICAg
ICByZXR1cm4gUmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGlu
Z1JpZ2h0KHN0eWxlKTsKIH0KIAorV2ViQ29yZTo6TGF5b3V0UmVjdCBBdXRvZmlsbFBvcHVwTWVu
dUNsaWVudDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKK3sKKyAgICBpZiAobV90ZXh0RmllbGQp
CisgICAgICAgIHJldHVybiBtX3RleHRGaWVsZC0+Z2V0UmVjdCgpOworICAgIHJldHVybiBXZWJD
b3JlOjpMYXlvdXRSZWN0KCk7Cit9CisKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnBv
cHVwRGlkSGlkZSgpCiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVu
dUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVD
bGllbnQuaAppbmRleCA3ZDJiOTg1YTJjMmNjZTNkMDg5OTc0YzBjYjU4ZTYyNjhkNThjN2IzLi44
ZTJlYzgzODc3YzQ0NTE2MzllNjc5ZWQyMmU1YTBjZjM0NjMyNDE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKQEAgLTMx
LDYgKzMxLDcgQEAKICNpZm5kZWYgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnRfaAogI2RlZmluZSBB
dXRvZmlsbFBvcHVwTWVudUNsaWVudF9oCiAKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2lu
Y2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Miw2
ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25l
ZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUg
aXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OkxheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xp
ZW50SW5zZXRMZWZ0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVu
dEluc2V0UmlnaHQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgY2xpZW50
UGFkZGluZ0xlZnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAppbmRleCA3MjAxOTA3ZjA5YzUxOTdmZWQ3NTkyOTk3YWRiNDNmODVkZDFlM2RiLi5j
NjAzMGE0ZTZiYTVhZGI4YjA3YWY2YjU3Y2MzYWZlM2E5MzllN2ViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yMjU4LDcgKzIyNTgsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMoCiAgICAgaWYgKG1fYXV0b2Zp
bGxQb3B1cFNob3dpbmcpIHsKICAgICAgICAgcmVmcmVzaEF1dG9maWxsUG9wdXAoKTsKICAgICB9
IGVsc2UgewotICAgICAgICBtX2F1dG9maWxsUG9wdXAtPnNob3dJblJlY3QoZm9jdXNlZE5vZGUt
PmdldFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKKyAg
ICAgICAgbV9hdXRvZmlsbFBvcHVwLT5zaG93SW5SZWN0KG1fYXV0b2ZpbGxQb3B1cENsaWVudC0+
Ym91bmRpbmdCb3hSZWN0KCksIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwg
MCk7CiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcgPSB0cnVlOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCmluZGV4IGIz
OTViOTMwMTdjZGJiMWYxMjgwMTliYWQxY2M4NDM5NmNjN2EzMTYuLmRjYmM0NDQ3NTMwOTgxMDYx
ZTVkZmU3NTg1Y2YzMjM0ZWMyMjQyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcApAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBQb3B1cE1lbnVTdHlsZShDb2xvcjo6YmxhY2ssIENvbG9yOjp3aGl0ZSwgZm9udCwg
dHJ1ZSwgZmFsc2UsIExlbmd0aCgpLCBUZXh0RGlyZWN0aW9uKCksIGZhbHNlIC8qIGhhcyB0ZXh0
IGRpcmVjdGlvbiBvdmVycmlkZSAqLyk7CiAgICAgfQogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5
bGUgbWVudVN0eWxlKCkgY29uc3QgeyByZXR1cm4gaXRlbVN0eWxlKDApOyB9CisgICAgdmlydHVh
bCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFJlY3Qo
KTsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gMDsg
fQogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgeyByZXR1cm4gMDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDk5MmRjYjYxZDhjOTUyMDViOTI1ZTdjN2NiNjFjZThhNDkzZjk5Mzcu
LjdjZTY1MDEzM2EyZjYwMzBiYWNlNjdjYjE4M2E5NzdhMDExNDQwYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMS0xMC0xMyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGllbnQgbW9yZSB0ZXN0
YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdp
bi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTEt
MTAtMTMgIE5heWFuIEt1bWFyIEsgIDxuYXlhbmtrQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBb
R1RLXVtXRUJLSVQyXSBBZGQgV2ViS2l0U2V0dGluZ3MgR1RLKyBBUEkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi5kZWYKaW5kZXggNWFiNTRlOTVjZTU4ZDAwZjIzYzU5ZGIzN2QxNTg0ZmI4YTczYmI0Yy4uZjQ1
ZjE5MjZhZjMxNjYzNDFkMjA1MjI5YTJhNDJmNDc2YWZkZmVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgpAQCAtMTc3LDYgKzE3Nyw3IEBAIEVYUE9SVFMKICAgICAgICAgP3RvSlNAV2ViQ29yZUBA
WUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQ
QVZDbGllbnRSZWN0QDFAQFoKICAgICAgICAgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpT
Q0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAg
ICAgICAgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFW
SlNET01HbG9iYWxPYmplY3RAMUBQQVZSYW5nZUAxQEBaCisgICAgICAgID90b1BvcHVwTWVudUNs
aWVudEBXZWJDb3JlQEBZQVBCVlBvcHVwTWVudUNsaWVudEAxQFBBVlJlbmRlck9iamVjdEAxQEBa
CiAgICAgICAgID91cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNARG9jdW1lbnRA
V2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVkZy
YW1lVmlld0AyQFhaCiAgICAgICAgID92aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxl
QEpTRE9NV3JhcHBlckBXZWJDb3JlQEBNQUVYWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgppbmRleCA3ZDc0NjI5MGUzYjNhOTAzZjQzZjU2MDg5YzdmNGQ5OTAxYjZiYjlmLi5jYTdj
YzA3MTNhNGQ1OWE0MDA1ZTk5YjI4YjdkZmIyZjkwMjQzYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJDRkxpdGUuZGVmCkBAIC0xNzEsNSArMTcxLDYgQEAgRVhQT1JUUwogICAgICAgICA/dG9K
U0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2Jh
bE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFs
dWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVlJhbmdlQDFA
QFoKICAgICAgICAgP3RvTm9kZUBXZWJDb3JlQEBZQVBBVk5vZGVAMUBWSlNWYWx1ZUBKU0NAQEBa
CisgICAgICAgID90b1BvcHVwTWVudUNsaWVudEBXZWJDb3JlQEBZQVBCVlBvcHVwTWVudUNsaWVu
dEAxQFBBVlJlbmRlck9iamVjdEAxQEBaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVA
QFFCRVBBVkZyYW1lVmlld0AyQFhaCiAgICAgICAgID92aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRX
ZWFrVnRhYmxlQEpTRE9NV3JhcHBlckBXZWJDb3JlQEBNQUVYWFoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyCmluZGV4IDJmZmJlOTk1NDdiM2I2NGNlYzVlYTFhNDBkZWFhOGM3YzYwZDU3ZTkuLmIwZjgx
ZDY0ODIxOGM4ZmE5YWJmOWFmOGZhOTViNjYzMWFkYjE4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcgpAQCAtNDEsNiArNDEsNyBAQCBfWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRVJLTlNfN0lu
dFJlY3RFOwogX1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0MTd0b0dlbmVyYXRlZFN0cmVhbUV2Owog
X1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0OHRvU3RyZWFtRXY7CiBfWk43V2ViQ29yZTEySlNET01X
cmFwcGVyMzR2aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxlRXY7CitfWk43V2ViQ29y
ZTE3dG9Qb3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RTsKIF9aTks3V2ViQ29yZTEy
UmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEViOwogX1pON1dlYkNvcmUxM2Ny
ZWF0ZVdyYXBwZXJFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNf
NE5vZGVFOwogX1pON1dlYkNvcmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRWk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111014</attachid>
            <date>2011-10-14 07:39:40 -0700</date>
            <delta_ts>2011-10-14 12:40:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111014103938.patch</filename>
            <type>text/plain</type>
            <size>34258</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0MzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNWRiMmVkMjJmNzA3ZWFjODlkYjE0
OGQ0ODA2OTc4MTI1ZThkNWQwLi5mYWMxYjY2YTM0MjQxMDRhNThkNWNkMGRlMzQ4NzE3ODdmODRl
MTUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9wdXBNZW51Q2xp
ZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sOiBB
ZGRlZC4KKwogMjAxMS0xMC0xMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW0Nocm9taXVtXSBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbi4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjgzZTg5MWJiNWUyMGZlMDc5YjE1ZWQ1ZjM5MjVlODRhMDgzNTI5NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50
LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1BBU1MgcG9wdXBDbGllbnRQYWRk
aW5nTGVmdCBpcyA0CitQQVNTIHBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0IGlzIDIKK0ZBSUwgYm91
bmRpbmdCb3hSZWN0LmxlZnQgc2hvdWxkIGJlIDEwLiBXYXMgMjAuCitGQUlMIGJvdW5kaW5nQm94
UmVjdC50b3Agc2hvdWxkIGJlIDEwLiBXYXMgMjAuCitQQVNTIGJvdW5kaW5nQm94UmVjdC53aWR0
aCBpcyBib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgKK1BBU1MgYm91bmRpbmdCb3hSZWN0LmhlaWdo
dCBpcyBib3VuZGluZ0NsaWVudFJlY3QuaGVpZ2h0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9w
dXAtbWVudS1jbGllbnQtdGVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3Mzc2MTc2NWMzZGFlMzRiYjc1
MTE1YTNmMTIxMmM0ZDBiYTM5NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+
CisgIDxoZWFkPgorICAgIDxib2R5PgorICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cisg
ICAgICA8c2VsZWN0IGlkPSJzZWxlY3RlbGVtZW50Ij4KKyAgICAgICAgPG9wdGlvbj5FbGVtZW50
IDE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5FbGVtZW50IDI8L29wdGlvbj4KKyAgICAgICAg
PG9wdGlvbj5FbGVtZW50IDM8L29wdGlvbj4KKyAgICAgIDwvc2VsZWN0PgorICAgIDwvYm9keT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIHNlbGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic2VsZWN0ZWxlbWVudCIpOworICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgd2lsIGZhaWwgaWYgdGhlIHBhZ2Ugc2NhbGUgZmFj
dG9yICE9IDEuMAorICAgICAgICB2YXIgcGFnZVNjYWxlRmFjdG9yID0gMi4wOworICAgICAgICBl
dmVudFNlbmRlci5zY2FsZVBhZ2VCeShwYWdlU2NhbGVGYWN0b3IsIDAsIDApOworCisgICAgICAg
IHZhciBwb3B1cENsaWVudFBhZGRpbmdMZWZ0ID0gd2luZG93LmludGVybmFscy5wb3B1cENsaWVu
dFBhZGRpbmdMZWZ0KHNlbGVjdEVsZW1lbnQpOworICAgICAgICB2YXIgcG9wdXBDbGllbnRQYWRk
aW5nUmlnaHQgPSB3aW5kb3cuaW50ZXJuYWxzLnBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KHNlbGVj
dEVsZW1lbnQpOworICAgICAgICB2YXIgYm91bmRpbmdCb3hSZWN0ID0gd2luZG93LmludGVybmFs
cy5wb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChzZWxlY3RFbGVtZW50KTsKKyAgICAgICAgdmFy
IGJvdW5kaW5nQ2xpZW50UmVjdCA9IHNlbGVjdEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCk7CisgICAgICAgIHNob3VsZEJlKCJwb3B1cENsaWVudFBhZGRpbmdMZWZ0IiwgIjQiKTsKKyAg
ICAgICAgc2hvdWxkQmUoInBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0IiwgIjIiKTsKKyAgICAgICAg
c2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC5sZWZ0IiwgImJvdW5kaW5nQ2xpZW50UmVjdC5sZWZ0
Iik7CisgICAgICAgIHNob3VsZEJlKCJib3VuZGluZ0JveFJlY3QudG9wIiwgImJvdW5kaW5nQ2xp
ZW50UmVjdC50b3AiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC53aWR0aCIs
ICJib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5n
Qm94UmVjdC5oZWlnaHQiLCAiYm91bmRpbmdDbGllbnRSZWN0LmhlaWdodCIpOworICAgICAgfQor
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICB9CisgICAgICBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworICAgIDwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFk
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxMDUxYzBjZTZkNjExOGNmMDcyNzA4
YjZhNDAzYTAxNDNlYjA5ZmI5Li4zMTk0NzJmOTFlMWQ1NDEzNmRjMmFiYzQyY2IwMDYzZjVkNmJh
NjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAzNSw2ICsxMDM1LDcgQEAgU0VUKFdlYkNv
cmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNwcAogICAgIHBsYXRmb3JtL0xvZ2dp
bmcuY3BwCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHAKKyAgICBwbGF0Zm9ybS9Q
b3B1cE1lbnVDbGllbnQuY3BwCiAgICAgcGxhdGZvcm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmNwcAogICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAogICAgIHBsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJkZmNlMzMyMjk2YWYxNjUzMTg2OTgwNjdiNGIx
Mzc0ZDg3NzU0NjYuLmJhYjAxYzNmYjUxYTJjZWY0YmM4MzAwZTUwZjQ4M2E5MjEwY2FkZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMS0xMC0xMyAgRmFkeSBTYW11ZWwgIDxmc2Ft
dWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGll
bnQgbW9yZSB0ZXN0YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCBzb21lIGZ1bmN0aW9ucyB0byB3aW5kb3cuaW50ZXJuYWxzIHRvIGFsbG93
IHRlc3Rpbmcgb2YgcGFydHMgb2YgUG9wdXBNZW51Q2xpZW50LgorCisgICAgICAgIFRlc3Q6IGZh
c3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QuaHRtbAorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRl
cjoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b1BvcHVwTWVudUNsaWVudCk6CisgICAgICAgICog
cGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmJvdW5kaW5nQm94UmVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3Q6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRD
b250cm9sU2luZ2xlTGluZTo6Ym91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmU6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xp
ZW50UGFkZGluZ0xlZnQpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwb3B1cENsaWVu
dFBhZGRpbmdSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xpZW50
Qm91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMS0xMC0xMyAgTWFyayBIYWhuZW5iZXJn
ICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSB2aXJ0dWFsIGdldENv
bnN0cnVjdERhdGEgdG8gZ2V0Q29uc3RydWN0RGF0YVZpcnR1YWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDAyNGQxNzBkNmRmNzFjYzc2NWI0NWY5OWEwNWIxZWE3ZTJiYjFjM2Mu
LjI5MGNmMDNlMTQ3NDg1ZWZiYjNiMWJhYWQ3OTdkNDdlMTM3MTRjYWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQpAQCAtMjgwMSw2ICsyODAxLDcgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRlcnZhbFRyZWUuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1
cE1lbnVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnUuaCBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51U3R5bGUuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRl
eCA5MzhjZDgxOGQwOTA3M2U2YTdkZmRmNmRhODRjZmU0OThjMjRhNGU1Li4wYmNmZTcxOWUwOGY0
MGRlYjc5YzY3MWIxYTBlYzM2NjA4NDU4MmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjY0
LDYgKzI2NCw3IEBAIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlNWNsb3NlRXYKIF9fWk43V2Vi
Q29yZTEySWNvbkRhdGFiYXNlOXNldENsaWVudEVQTlNfMThJY29uRGF0YWJhc2VDbGllbnRFCiBf
X1pON1dlYkNvcmUxMkljb25EYXRhYmFzZUMxRXYKIF9fWk43V2ViQ29yZTEySlNET01XcmFwcGVy
MzR2aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxlRXYKK19fWk43V2ViQ29yZTE3dG9Q
b3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdXZWJDb3JlMTJQb3B1cE1l
bnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pON1dlYkNvcmUxMlByaW50Q29udGV4
dDEycGFnZVByb3BlcnR5RVBOU181RnJhbWVFUEtjaQogX19aTjdXZWJDb3JlMTJQcmludENvbnRl
eHQxM251bWJlck9mUGFnZXNFUE5TXzVGcmFtZUVSS05TXzlGbG9hdFNpemVFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggM2I4ODEzZDEzNGU1ZjIzNmQ3MjUzZmYxYTc3NDE2NzFhYzMwNzQ3Yy4uYjIzZGRk
ODEwMTk2ZTEzYjg5YjkyZmNhZWQ3OWZkNTY0YmEyYTg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
NjE4NSw2ICs2MTg1LDggQEAKICAgICAgICAgICAgICd0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3Vw
cG9ydC5oJywKICAgICAgICAgICAgICd0ZXN0aW5nL0ludGVybmFscy5jcHAnLAogICAgICAgICAg
ICAgJ3Rlc3RpbmcvSW50ZXJuYWxzLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwJywK
ICAgICAgICAgXSwKICAgICAgICAgJ3dlYmNvcmVfcmVzb3VyY2VfZmlsZXMnOiBbCiAgICAgICAg
ICAgICAnRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVy
CmluZGV4IDQ5MjdjZjQ3ZTk3YWQ3OGE0YzRiY2U4NzU0NDdhMzE0NWE0MDQ3ZjYuLmY1NGI1YWFl
Y2M2N2Q5NjMzZjBiMWE0YjM3OTc4OGRlZWE4ODY0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5vcmRlcgpAQCAt
MTEwNzQsNiArMTEwNzQsNyBAQCBfX1pON1dlYkNvcmUxN0pTQXJyYXlCdWZmZXJWaWV3QzJFUE4z
SlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVOM1dURgogX19aTjdXZWJDb3Jl
MzRqc1dlYkdMUmVuZGVyaW5nQ29udGV4dFNUQVRJQ19EUkFXRVBOM0pTQzlFeGVjU3RhdGVFTlMw
XzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43V2ViQ29yZTUwanNXZWJHTFJlbmRl
cmluZ0NvbnRleHRQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlckRhdGFFUE4zSlNDOUV4ZWNTdGF0ZUUK
IF9fWk43V2ViQ29yZTE3dG9BcnJheUJ1ZmZlclZpZXdFTjNKU0M3SlNWYWx1ZUUKK19fWk43V2Vi
Q29yZTE3dG9Qb3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RQogX19aTjdXZWJDb3Jl
MjFXZWJHTFJlbmRlcmluZ0NvbnRleHQxMGJ1ZmZlckRhdGFFalBOU18xNUFycmF5QnVmZmVyVmll
d0VqUmkKIF9fWk43V2ViQ29yZTIxV2ViR0xSZW5kZXJpbmdDb250ZXh0Mjh2YWxpZGF0ZUJ1ZmZl
ckRhdGFQYXJhbWV0ZXJzRWpqCiBfX1pON1dlYkNvcmUxMVdlYkdMQnVmZmVyMTlhc3NvY2lhdGVC
dWZmZXJEYXRhRVBOU18xNUFycmF5QnVmZmVyVmlld0UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggYThlMzMz
MWMwYjdhYTQ0YzgwYzQ3OTYxMDg1NjkwZGI0ODQ5MGM4Yy4uMDNkZGFkMDkxMGNhNTk4NWI3Nzdj
ZjliMjlkZmUxOWQyMTJjNmE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5w
cm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwNzQsNiArMTA3NCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIFwK
ICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBcCisgICAgcGxhdGZvcm0vUG9w
dXBNZW51Q2xpZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhwcmVzc2lvbi5j
cHAgXAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5jcHAgXAogICAgIHBs
YXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCkBAIC0yMTYwLDYgKzIxNjEsNyBAQCBIRUFERVJT
ICs9IFwKICAgICBwbGF0Zm9ybS9UaW1lci5oIFwKICAgICBwbGF0Zm9ybS9XaWRnZXQuaCBcCiAg
ICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggXAorICAgIHBsYXRmb3JtL1BvcHVwTWVu
dUNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggXAogICAgIHBsdWdp
bnMvRE9NTWltZVR5cGVBcnJheS5oIFwKICAgICBwbHVnaW5zL0RPTU1pbWVUeXBlLmggXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDAyNGE4ZjFjNjYzN2E0M2RjNmE2YTEyNTEwOThhZGFkNTE1NWMxMzEuLjlmOTUwYzE2Mzg4ZWE0
YTIyODM5MGZkODQwNmUyNTg2NWNhZDk1MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0NzUsNiArNTQ3NSw3IEBACiAJCUM2
RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEwNDYxMzBDNkU4OTAwMzkzREU0IC8q
IEVudHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3Jv
bGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuY3BwICovOyB9
OwogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Nyb2xsQW5pbWF0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENBM0JGNjdEMTBEOTlCQUUw
MEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCUNBRjA3OTI5MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1l
bnVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0FGMDc5MjgxNDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVwTWVudUNsaWVudC5jcHAgKi87IH07
CiAJCUNEMERCRjAxMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAw
MF9QMDAwLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRDBEQkQyMDE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9D
X1IwMTk1X1QwMDBfUDAwMC53YXYgKi87IH07CiAJCUNEMERCRjAyMTQyMjc2ODUwMDI4MDI2MyAv
KiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1LndhdiBpbiBDb3B5IEF1ZGlvIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBEQkQyMTE0MjI3NTk1
MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXYgKi87IH07CiAJ
CUNEMERCRjAzMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9Q
MDMwLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDBEQkQyMjE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1Iw
MTk1X1QwMDBfUDAzMC53YXYgKi87IH07CkBAIC0xMjc3Myw2ICsxMjc3NCw3IEBACiAJCUM2RjQx
MDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRW50cnlCYXNlLmNwcDsgcGF0aCA9IGZpbGVhcGkvRW50cnlCYXNl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0IxMEQ5OUJBRTAwRTZD
RTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNBRjA3OTI4MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1lbnVDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9wdXBNZW51Q2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwREJEMjAxNDIyNzU5NTAwMjgw
MjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMDAud2F2ICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJD
X0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9y
ZXNvdXJjZXMvSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXY7IHNvdXJjZVRyZWUg
PSBTT1VSQ0VfUk9PVDsgfTsKIAkJQ0QwREJEMjExNDIyNzU5NTAwMjgwMjYzIC8qIElSQ19Db21w
b3NpdGVfQ19SMDE5NV9UMDAwX1AwMTUud2F2ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJDX0NvbXBvc2l0ZV9DX1Iw
MTk1X1QwMDBfUDAxNS53YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMvSVJDX0Nv
bXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKIAkJQ0QwREJEMjIxNDIyNzU5NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9U
MDAwX1AwMzAud2F2ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAzMC53
YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMvSVJDX0NvbXBvc2l0ZV9DX1IwMTk1
X1QwMDBfUDAzMC53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKQEAgLTIwMDQ0LDYg
KzIwMDQ2LDcgQEAKIAkJCQlCQ0JCOEFCNzEzRjFBRkIwMDA3MzRERjAgLyogUE9EUmVkQmxhY2tU
cmVlLmggKi8sCiAJCQkJMDY2OEUxODkwQUREOTYyNDAwNDEyOEUwIC8qIFBvcHVwTWVudS5oICov
LAogCQkJCUFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQb3B1cE1lbnVDbGllbnQuaCAqLywK
KwkJCQlDQUYwNzkyODE0NDc5NDBFMDAzMkE1QUQgLyogUG9wdXBNZW51Q2xpZW50LmNwcCAqLywK
IAkJCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9wdXBNZW51U3R5bGUuaCAqLywKIAkJ
CQlFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2VhYmxlQnVmZmVyLmggKi8sCiAJCQkJ
N0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJpb3JpdHkuaCAqLywKQEAgLTI3NDY3
LDYgKzI3NDcwLDcgQEAKIAkJCQkzMTA2MDM3QTE0MzI4MUNEMDBBQkY0QkEgLyogRE9NV2ViS2l0
Q1NTRmlsdGVyVmFsdWUubW0gaW4gU291cmNlcyAqLywKIAkJCQkyOUFDQjIxNDE0M0U3NDk4MDA2
QkNBNUYgLyogQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYwOTA4N0YxNDQ0RkRCMjAwMDI4OTE3IC8qIFNjcm9sbGJhclRoZW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUNBRjA3OTI5MTQ0Nzk0MEUwMDMyQTVBRCAvKiBQb3B1cE1lbnVDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDlBRjJENkMxNDQzNUQyMTAwMTZBNzg0IC8qIERpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUZDN0E1MDE0NDRBRjVG
MDBBNUQ4NjQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjdlMjQ4NGEwNjQ2ZDQwZmRjMjQxMGEzY2QyYWZkZTE0ZDljNGUyN2EKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0w
LDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUG9wdXBN
ZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgorI2luY2x1ZGUgIlJl
bmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IFBvcHVwTWVudUNs
aWVudCogdG9Qb3B1cE1lbnVDbGllbnQoUmVuZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNT
RVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1BvcHVwTWVudUNsaWVudCgpKTsKKyAgICBpZiAoIW9i
amVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBTcGVjaWFsIGNhc2U6IFJlbmRlck1l
bnVMaXN0IHVzZXMgbXVsdGlwbGUgaW5oZXJpdGFuY2UgYW5kIHNvLAorICAgIC8vIGRlcGVuZGlu
ZyBvbiB0aGUgY29tcGlsZXIsIHdlIG1heSBlbmQgdXAgaW4gYSBzaXR1YXRpb24gd2hlcmUKKyAg
ICAvLyB0aGUgZmlyc3QgdnB0ciBkb2VzIG5vdCBwb2ludCB0byB0aGUgUG9wdXBNZW51Q2xpZW50
J3MgdnRhYmxlLAorICAgIC8vIGFuZCBzbyB3ZSdkIGVuZCB1cCBjYWxsaW5nIHRoZSB3cm9uZyBt
ZXRob2QuIFRodXMsIHdlIGZpcnN0IGNhc3QgdG8KKyAgICAvLyBSZW5kZXJNZW51TGlzdCBhbmQg
dGhlbiB0byBQb3B1cE1lbnVDbGllbnQgd2hpY2ggd2lsbCBhdXRvbWFnaWNhbGx5CisgICAgLy8g
dGFrZSBpbnRvIGFjY291bnQgdGh1bmtpbmcgaWYgbmVjZXNzYXJ5ICh0aGUgY2FzdGluZyB3aWxs
IGFjdHVhbGx5IHNoaWZ0CisgICAgLy8gdGhlIHBvaW50ZXIgb3ZlciB0byB0aGUgUG9wdXBNZW51
Q2xpZW50IHBhcnQgb2YgdGhlIG9iamVjdCkuCisgICAgaWYgKG9iamVjdC0+aXNNZW51TGlzdCgp
KQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UG9wdXBNZW51Q2xpZW50Kj4odG9SZW5kZXJN
ZW51TGlzdChvYmplY3QpKTsKKworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFBvcHVwTWVu
dUNsaWVudCo+KG9iamVjdCk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBN
ZW51Q2xpZW50LmgKaW5kZXggZjMzYjllMjFiODkxMDU0ZDU0M2UyNzE4NmVmNDgyNzU5MDI3N2I2
Ny4uZTQ3ZjhmMDk3NGIyMzFlZTM1ZDQ3MWVjYjJlMTg4MWZhNTNmZTBmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5k
ZWYgUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgUG9wdXBNZW51Q2xpZW50X2gKIAorI2luY2x1
ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51U3R5bGUuaCIKICNpbmNsdWRl
ICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC0zMSw2ICszMiw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwogY2xhc3MgRm9udFNlbGVjdG9y
OwogY2xhc3MgSG9zdFdpbmRvdzsKK2NsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFNjcm9sbGJh
cjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogCkBAIC00OSw2ICs1MSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0SW5k
ZXgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50
IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgPSAwOwpAQCAtNjksNiArNzIsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlU2Nyb2xsYmFyKFNjcm9s
bGFibGVBcmVhKiwgU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplKSA9
IDA7CiB9OwogCitjb25zdCBQb3B1cE1lbnVDbGllbnQqIHRvUG9wdXBNZW51Q2xpZW50KFJlbmRl
ck9iamVjdCopOworCiAjaWYgRU5BQkxFKE5PX0xJU1RCT1hfUkVOREVSSU5HKQogY2xhc3MgTGlz
dFBvcHVwTWVudUNsaWVudCA6IHB1YmxpYyBQb3B1cE1lbnVDbGllbnQgewogcHVibGljOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggM2YzNTZhNjhl
YzBjZDljY2M0ZWYxZmY5MWQxOTNkZGM2YjZiZTUxMi4uZGRmNWU4YmJhYTAzMzYyMjVmYTY2NWRm
NzgzNTRkMTdjMjc2NTYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwCkBAIC0zMDMsMTMgKzMwMyw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQ
b3B1cCgpCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChz
dGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7CiAgICAgbV9wb3B1cElzVmlzaWJsZSA9IHRy
dWU7CiAKLSAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRv
IGFjY291bnQsIGJ1dCB1c2UKLSAgICAvLyB0aGUgYWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50
IHRvIHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9B
YnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVlKTsKLSAgICBMYXlvdXRSZWN0IGFic0Jv
dW5kcyA9IGFic29sdXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCk7Ci0gICAg
YWJzQm91bmRzLnNldExvY2F0aW9uKHJvdW5kZWRJbnRQb2ludChhYnNUb3BMZWZ0KSk7Ci0gICAg
bV9wb3B1cC0+c2hvdyhhYnNCb3VuZHMsIGRvY3VtZW50KCktPnZpZXcoKSwKLSAgICAgICAgc2Vs
ZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkpOworICAgIG1f
cG9wdXAtPnNob3coYm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50KCktPnZpZXcoKSwgc2VsZWN0
LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNlbGVjdGVkSW5kZXgoKSkpOwogfQogCiB2b2lk
IFJlbmRlck1lbnVMaXN0OjpoaWRlUG9wdXAoKQpAQCAtNTA2LDYgKzUwMCwxNiBAQCBQYXNzUmVm
UHRyPFNjcm9sbGJhcj4gUmVuZGVyTWVudUxpc3Q6OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxhYmxl
QXJlYSogc2Nyb2xsYWJsZQogICAgIHJldHVybiB3aWRnZXQucmVsZWFzZSgpOwogfQogCitMYXlv
dXRSZWN0IFJlbmRlck1lbnVMaXN0Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIC8v
IENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0
IHVzZQorICAgIC8vIHRoZSBhY3R1YWwgd2lkdGggb2YgdGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUg
cG9wdXAuCisgICAgRmxvYXRQb2ludCBhYnNUb3BMZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0
UG9pbnQoKSwgZmFsc2UsIHRydWUpOworICAgIExheW91dFJlY3QgYWJzQm91bmRzID0gYWJzb2x1
dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKTsKKyAgICBhYnNCb3VuZHMuc2V0
TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1RvcExlZnQpKTsKKyAgICByZXR1cm4gYWJzQm91
bmRzOworfQorCiBpbnQgUmVuZGVyTWVudUxpc3Q6OmNsaWVudEluc2V0TGVmdCgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
CmluZGV4IDczZjk4MWIxOTk3ODU1YTg5YjU1Y2ViYzM4NjUwZWYwM2YyNmFhNGQuLmUwMDVjN2Mw
NDI4YzJkYmUwNmMxZmRlNzIxMWZlZDZmODk2ZmQzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zOSw5ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIFJlbmRlclRleHQ7CiAKICNpZiBFTkFCTEUoTk9fTElTVEJPWF9SRU5ERVJJTkcp
Ci1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVudCB7CitjbGFzcyBSZW5kZXJNZW51TGlzdCA6
IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gsIHB1YmxpYyBMaXN0UG9wdXBNZW51
Q2xpZW50IHsKICNlbHNlCi1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3gsIHByaXZhdGUgUG9wdXBNZW51Q2xpZW50IHsKK2NsYXNzIFJlbmRl
ck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCwgcHVibGljIFBv
cHVwTWVudUNsaWVudCB7CiAjZW5kaWYKIAogcHVibGljOgpAQCAtNjEsNiArNjEsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzTWVudUxpc3QoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGlzUG9wdXBNZW51Q2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVj
dCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Kik7CkBAIC04OSw2ICs5MCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBj
b25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0
SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29u
c3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNs
aWVudEluc2V0UmlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRQYWRkaW5nTGVm
dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDA1
YTIzNzMxZDQ4MGE0OWQyYjIzYzNhMjMyYzk4NjUzNjZiMjAwNjYuLmUxYjJkYWQ0MGQwOTM5YWVm
NWJkYmFiNmY3NmY5Zjc5M2UyYjEwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xhc3MgSW5saW5lQm94OwogY2xhc3MgSW5saW5l
Rmxvd0JveDsKIGNsYXNzIE92ZXJsYXBUZXN0UmVxdWVzdENsaWVudDsKIGNsYXNzIFBhdGg7Citj
bGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBQb3NpdGlvbjsKIGNsYXNzIFJlbmRlckJveE1v
ZGVsT2JqZWN0OwogY2xhc3MgUmVuZGVySW5saW5lOwpAQCAtMjk2LDYgKzI5Nyw3IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoTUVURVJfVEFHKQogICAgIHZpcnR1YWwgYm9vbCBpc01ldGVyKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgorICAgIHZpcnR1YWwgYm9vbCBpc1BvcHVwTWVu
dUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjaWYgRU5BQkxFKFBST0dSRVNTX1RB
RykKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggZmY5MDc3MGYwOTU1Nzg5MTA3NWRiOTFlMjll
MWRmZTc4NzA0YWZiNi4uNTVhNDYyMWI4NWE1NGZjN2JiOWRhOTU4NmFiZmU1MTEyZWZkMzk4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZS5jcHAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFJlbmRlclRleHRDb250
cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJl
Y2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgIH0KIAotICAgIG1fc2Vh
cmNoUG9wdXAtPnBvcHVwTWVudSgpLT5zaG93KGFic29sdXRlQm91bmRpbmdCb3hSZWN0KCksIGRv
Y3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5z
aG93KGJvdW5kaW5nQm94UmVjdCgpLCBkb2N1bWVudCgpLT52aWV3KCksIC0xKTsKIH0KIAogdm9p
ZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmhpZGVQb3B1cCgpCkBAIC02MTMsNiArNjEz
LDExIEBAIFBvcHVwTWVudVN0eWxlIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6bWVudVN0
eWxlKCkgY29uc3QKICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGUoc3R5bGUoKS0+dmlzaXRlZERl
cGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3IpLCBzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50
Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBzdHlsZSgpLT5mb250KCksIHN0eWxl
KCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFLCBzdHlsZSgpLT5kaXNwbGF5KCkgPT0gTk9ORSwg
c3R5bGUoKS0+dGV4dEluZGVudCgpLCBzdHlsZSgpLT5kaXJlY3Rpb24oKSwgc3R5bGUoKS0+dW5p
Y29kZUJpZGkoKSA9PSBPdmVycmlkZSk7CiB9CiAKK0xheW91dFJlY3QgUmVuZGVyVGV4dENvbnRy
b2xTaW5nbGVMaW5lOjpib3VuZGluZ0JveFJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBhYnNv
bHV0ZUJvdW5kaW5nQm94UmVjdCgpOworfQorCiBpbnQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVM
aW5lOjpjbGllbnRJbnNldExlZnQoKSBjb25zdAogewogICAgIC8vIEluc2V0IHRoZSBtZW51IGJ5
IHRoZSByYWRpdXMgb2YgdGhlIGNhcCBvbiB0aGUgbGVmdCBzbyB0aGF0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5k
ZXggNDc0ZDM1MzY1OWI0OTVlMmM4ZmU2YjI3NGUzMjRkYzBiMTc0NGMwYS4uZjE3ZjcxM2U0ZDg0
OGIxODMyNjk2Y2NmZGVjZmRlMWY0NjE2OGQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuaApAQCAtNTYsNiArNTYs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBjb250cm9sQ2xpcFJlY3QoY29uc3QgTGF5
b3V0UG9pbnQmKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNQb3B1cE1lbnVDbGllbnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIGlzVGV4dEZpZWxkKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50Jik7CkBAIC0xMDAsNiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAg
IHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29u
c3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBp
bnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRS
aWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZTE0OTM2NDYwMDQzOWI1N2Mw
NDY1ODcxZWI5NzFjNzRmNTlkMDY1NC4uNWZmODgzMzBjMTM3MGQ2YTM4MTBjZjg1ZWRkOTkyYjM1
OGE0ZWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDQsNiArNDQs
NyBAQAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1
cmVFdmVudC5oIgogI2VuZGlmCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVk
ZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJU
cmVlQXNUZXh0LmgiCkBAIC00MzUsNCArNDM2LDQzIEBAIHZvaWQgSW50ZXJuYWxzOjpzY3JvbGxF
bGVtZW50VG9SZWN0KEVsZW1lbnQqIGVsZW1lbnQsIGxvbmcgeCwgbG9uZyB5LCBsb25nIHcsIGxv
CiAgICAgZnJhbWVWaWV3LT5zY3JvbGxFbGVtZW50VG9SZWN0KGVsZW1lbnQsIEludFJlY3QoeCwg
eSwgdywgaCkpOwogfQogCitpbnQgSW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdMZWZ0KEVs
ZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZWxlbWVudCB8
fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5k
ZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVu
dUNsaWVudCgpKQorICAgICAgICByZXR1cm4gdG9Qb3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5j
bGllbnRQYWRkaW5nTGVmdCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgSW50ZXJuYWxzOjpw
b3B1cENsaWVudFBhZGRpbmdSaWdodChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGVs
ZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOworICAg
IGlmIChyZW5kZXJlci0+aXNQb3B1cE1lbnVDbGllbnQoKSkKKyAgICAgICAgcmV0dXJuIHRvUG9w
dXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+Y2xpZW50UGFkZGluZ1JpZ2h0KCk7CisgICAgcmV0dXJu
IDA7Cit9CisKK1Bhc3NSZWZQdHI8Q2xpZW50UmVjdD4gSW50ZXJuYWxzOjpwb3B1cENsaWVudEJv
dW5kaW5nQm94UmVjdChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAg
ICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUoKTsK
KyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJl
bmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgpKQorICAgICAg
ICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHRvUG9wdXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+
Ym91bmRpbmdCb3hSZWN0KCkpOworICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUoKTsKK30K
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNDEwYjZlZDhkNzg0MDQ4NWYz
NGNhY2U4NWU5NTcxOGYxOTk2ZWRjMy4uYTNkYzkzZGY4MGU3ZmFiYzgyZmQyMGU0NDNmNzUwOTFj
ZDU5ODdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0zOCw3ICszOCw5IEBA
IGNsYXNzIENsaWVudFJlY3Q7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFz
cyBOb2RlOworY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgUmFuZ2U7CitjbGFzcyBSZW5k
ZXJPYmplY3Q7CiAKIGNsYXNzIEludGVybmFscyA6IHB1YmxpYyBSZWZDb3VudGVkPEludGVybmFs
cz4gewogcHVibGljOgpAQCAtOTIsNiArOTQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3Vn
Z2VzdGVkVmFsdWUoRWxlbWVudCogaW5wdXRFbGVtZW50LCBjb25zdCBTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgdm9pZCBzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqLCBsb25nIHgs
IGxvbmcgeSwgbG9uZyB3LCBsb25nIGgsIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIGludCBwb3B1
cENsaWVudFBhZGRpbmdMZWZ0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgaW50IHBv
cHVwQ2xpZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFz
c1JlZlB0cjxDbGllbnRSZWN0PiBwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChFbGVtZW50Kiwg
RXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwog
CiAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5MDk5ODlkYTJhMmEyZDQyYzdm
OWZjYTUyMmMwNzg1Mzc1YzE3NzVmLi43Y2NlMzQ1NDA1NTlkMzViNDU3NDI5NmNmZWI5M2FlMzhm
ZmU2MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC02Nyw2ICs2Nywx
MCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhpbiBE
b2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQg
c2Nyb2xsRWxlbWVudFRvUmVjdChpbiBFbGVtZW50IGVsZW1lbnQsIGluIGxvbmcgeCwgaW4gbG9u
ZyB5LCBpbiBsb25nIHcsIGluIGxvbmcgaCkgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAg
ICAgIGludCBwb3B1cENsaWVudFBhZGRpbmdMZWZ0KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2Vz
IChET01FeGNlcHRpb24pOworICAgICAgICBpbnQgcG9wdXBDbGllbnRQYWRkaW5nUmlnaHQoaW4g
RWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIENsaWVudFJl
Y3QgcG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3QoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBmYjQ4ZDk4ODkwYjc0ODk2Y2E0ZmJlYjM1M2QyZThmZGJiZDdmNTdhLi4yYTk1MjYwMTFhYWQ0
ODRkNGE4MWNmMGU5NTNmYTFmNTQxZTFlNjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE4IEBACisyMDExLTEwLTEzICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFraW5nIFBvcHVwTWVudUNsaWVudCBtb3JlIHRl
c3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6QXV0b2Zp
bGxQb3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgICogc3JjL0F1dG9m
aWxsUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFwcGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6Cisg
ICAgICAgICogdGVzdHMvUG9wdXBNZW51VGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RQ
b3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVjdCk6CisKIDIwMTEtMTAtMTMgIEp1bGllbiBD
aGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGxheWVy
WCAvIGxheWVyWSBmcm9tIHRoZSBDaHJvbWl1bSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNwcAppbmRleCAzNGExODRm
MTg5N2ZkYmUxZTc3YzQ1OGEzNmViYWE3NzNlZGIxNzU0Li5mNzdiNjhhMTYyMGMwZDQ1M2FhNjBk
NWQ1NTcwMWFhZDkyOTg1ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0yMTYsNiArMjE2LDEzIEBAIGlu
dCBBdXRvZmlsbFBvcHVwTWVudUNsaWVudDo6Y2xpZW50UGFkZGluZ1JpZ2h0KCkgY29uc3QKICAg
ICByZXR1cm4gUmVuZGVyVGhlbWU6OmRlZmF1bHRUaGVtZSgpLT5wb3B1cEludGVybmFsUGFkZGlu
Z1JpZ2h0KHN0eWxlKTsKIH0KIAorV2ViQ29yZTo6TGF5b3V0UmVjdCBBdXRvZmlsbFBvcHVwTWVu
dUNsaWVudDo6Ym91bmRpbmdCb3hSZWN0KCkgY29uc3QKK3sKKyAgICBpZiAobV90ZXh0RmllbGQp
CisgICAgICAgIHJldHVybiBtX3RleHRGaWVsZC0+Z2V0UmVjdCgpOworICAgIHJldHVybiBXZWJD
b3JlOjpMYXlvdXRSZWN0KCk7Cit9CisKIHZvaWQgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OnBv
cHVwRGlkSGlkZSgpCiB7CiAgICAgV2ViVmlld0ltcGwqIHdlYlZpZXcgPSBnZXRXZWJWaWV3KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVu
dUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVD
bGllbnQuaAppbmRleCA3ZDJiOTg1YTJjMmNjZTNkMDg5OTc0YzBjYjU4ZTYyNjhkNThjN2IzLi44
ZTJlYzgzODc3YzQ0NTE2MzllNjc5ZWQyMmU1YTBjZjM0NjMyNDE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKQEAgLTMx
LDYgKzMxLDcgQEAKICNpZm5kZWYgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnRfaAogI2RlZmluZSBB
dXRvZmlsbFBvcHVwTWVudUNsaWVudF9oCiAKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgogI2lu
Y2x1ZGUgIlBvcHVwTWVudUNsaWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04Miw2
ICs4Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNpZ25l
ZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUg
aXRlbVN0eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBXZWJDb3Jl
OjpQb3B1cE1lbnVTdHlsZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OkxheW91dFJlY3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xp
ZW50SW5zZXRMZWZ0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVu
dEluc2V0UmlnaHQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgY2xpZW50
UGFkZGluZ0xlZnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAppbmRleCA3MjAxOTA3ZjA5YzUxOTdmZWQ3NTkyOTk3YWRiNDNmODVkZDFlM2RiLi5j
NjAzMGE0ZTZiYTVhZGI4YjA3YWY2YjU3Y2MzYWZlM2E5MzllN2ViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yMjU4LDcgKzIyNTgsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjphcHBseUF1dG9maWxsU3VnZ2VzdGlvbnMoCiAgICAgaWYgKG1fYXV0b2Zp
bGxQb3B1cFNob3dpbmcpIHsKICAgICAgICAgcmVmcmVzaEF1dG9maWxsUG9wdXAoKTsKICAgICB9
IGVsc2UgewotICAgICAgICBtX2F1dG9maWxsUG9wdXAtPnNob3dJblJlY3QoZm9jdXNlZE5vZGUt
PmdldFJlY3QoKSwgZm9jdXNlZE5vZGUtPm93bmVyRG9jdW1lbnQoKS0+dmlldygpLCAwKTsKKyAg
ICAgICAgbV9hdXRvZmlsbFBvcHVwLT5zaG93SW5SZWN0KG1fYXV0b2ZpbGxQb3B1cENsaWVudC0+
Ym91bmRpbmdCb3hSZWN0KCksIGZvY3VzZWROb2RlLT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwg
MCk7CiAgICAgICAgIG1fYXV0b2ZpbGxQb3B1cFNob3dpbmcgPSB0cnVlOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwCmluZGV4IGIz
OTViOTMwMTdjZGJiMWYxMjgwMTliYWQxY2M4NDM5NmNjN2EzMTYuLmRjYmM0NDQ3NTMwOTgxMDYx
ZTVkZmU3NTg1Y2YzMjM0ZWMyMjQyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcApAQCAtOTgsNiArOTgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBQb3B1cE1lbnVTdHlsZShDb2xvcjo6YmxhY2ssIENvbG9yOjp3aGl0ZSwgZm9udCwg
dHJ1ZSwgZmFsc2UsIExlbmd0aCgpLCBUZXh0RGlyZWN0aW9uKCksIGZhbHNlIC8qIGhhcyB0ZXh0
IGRpcmVjdGlvbiBvdmVycmlkZSAqLyk7CiAgICAgfQogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5
bGUgbWVudVN0eWxlKCkgY29uc3QgeyByZXR1cm4gaXRlbVN0eWxlKDApOyB9CisgICAgdmlydHVh
bCBMYXlvdXRSZWN0IGJvdW5kaW5nQm94UmVjdCgpIGNvbnN0IHsgcmV0dXJuIExheW91dFJlY3Qo
KTsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgeyByZXR1cm4gMDsg
fQogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgeyByZXR1cm4gMDsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDk5MmRjYjYxZDhjOTUyMDViOTI1ZTdjN2NiNjFjZThhNDkzZjk5Mzcu
LjdjZTY1MDEzM2EyZjYwMzBiYWNlNjdjYjE4M2E5NzdhMDExNDQwYjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAxMS0xMC0xMyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGllbnQgbW9yZSB0ZXN0
YWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdp
bi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTEt
MTAtMTMgIE5heWFuIEt1bWFyIEsgIDxuYXlhbmtrQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBb
R1RLXVtXRUJLSVQyXSBBZGQgV2ViS2l0U2V0dGluZ3MgR1RLKyBBUEkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi5kZWYKaW5kZXggNWFiNTRlOTVjZTU4ZDAwZjIzYzU5ZGIzN2QxNTg0ZmI4YTczYmI0Yy4uZjQ1
ZjE5MjZhZjMxNjYzNDFkMjA1MjI5YTJhNDJmNDc2YWZkZmVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgpAQCAtMTc3LDYgKzE3Nyw3IEBAIEVYUE9SVFMKICAgICAgICAgP3RvSlNAV2ViQ29yZUBA
WUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQ
QVZDbGllbnRSZWN0QDFAQFoKICAgICAgICAgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpT
Q0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAg
ICAgICAgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFW
SlNET01HbG9iYWxPYmplY3RAMUBQQVZSYW5nZUAxQEBaCisgICAgICAgID90b1BvcHVwTWVudUNs
aWVudEBXZWJDb3JlQEBZQVBCVlBvcHVwTWVudUNsaWVudEAxQFBBVlJlbmRlck9iamVjdEAxQEBa
CiAgICAgICAgID91cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNARG9jdW1lbnRA
V2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVkZy
YW1lVmlld0AyQFhaCiAgICAgICAgID92aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxl
QEpTRE9NV3JhcHBlckBXZWJDb3JlQEBNQUVYWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgppbmRleCA3ZDc0NjI5MGUzYjNhOTAzZjQzZjU2MDg5YzdmNGQ5OTAxYjZiYjlmLi5jYTdj
YzA3MTNhNGQ1OWE0MDA1ZTk5YjI4YjdkZmIyZjkwMjQzYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDJDRkxpdGUuZGVmCkBAIC0xNzEsNSArMTcxLDYgQEAgRVhQT1JUUwogICAgICAgICA/dG9K
U0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2Jh
bE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFs
dWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVlJhbmdlQDFA
QFoKICAgICAgICAgP3RvTm9kZUBXZWJDb3JlQEBZQVBBVk5vZGVAMUBWSlNWYWx1ZUBKU0NAQEBa
CisgICAgICAgID90b1BvcHVwTWVudUNsaWVudEBXZWJDb3JlQEBZQVBCVlBvcHVwTWVudUNsaWVu
dEAxQFBBVlJlbmRlck9iamVjdEAxQEBaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVA
QFFCRVBBVkZyYW1lVmlld0AyQFhaCiAgICAgICAgID92aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRX
ZWFrVnRhYmxlQEpTRE9NV3JhcHBlckBXZWJDb3JlQEBNQUVYWFoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyCmluZGV4IDJmZmJlOTk1NDdiM2I2NGNlYzVlYTFhNDBkZWFhOGM3YzYwZDU3ZTkuLmIwZjgx
ZDY0ODIxOGM4ZmE5YWJmOWFmOGZhOTViNjYzMWFkYjE4MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcgpAQCAtNDEsNiArNDEsNyBAQCBfWk43V2ViQ29yZTEwQ2xpZW50UmVjdEMxRVJLTlNfN0lu
dFJlY3RFOwogX1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0MTd0b0dlbmVyYXRlZFN0cmVhbUV2Owog
X1pON1dlYkNvcmUxMUV2ZW50VGFyZ2V0OHRvU3RyZWFtRXY7CiBfWk43V2ViQ29yZTEySlNET01X
cmFwcGVyMzR2aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxlRXY7CitfWk43V2ViQ29y
ZTE3dG9Qb3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RTsKIF9aTks3V2ViQ29yZTEy
UmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEViOwogX1pON1dlYkNvcmUxM2Ny
ZWF0ZVdyYXBwZXJFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNf
NE5vZGVFOwogX1pON1dlYkNvcmUxNXNldERPTUV4Y2VwdGlvbkVQTjNKU0M5RXhlY1N0YXRlRWk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111054</attachid>
            <date>2011-10-14 12:40:34 -0700</date>
            <delta_ts>2011-10-14 12:40:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-69631-20111014154033.patch</filename>
            <type>text/plain</type>
            <size>34904</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0NzcKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCA3MmM5YzQxY2JmZDYyNmY1ZTQ3NTY1YzgyYjdiMjE2YTE4NWU2MDZhLi42MDJk
MmJmZjUwNmRlMTNjZjdkNGQ2NjAxZDRkNGExZGE5ZTUyMmQ1IDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMTAtMTQgIEZhZHkgU2Ft
dWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJkcyBtYWtpbmcgUG9w
dXBNZW51Q2xpZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAy
MDExLTEwLTEzICBBcmtvIFNhaGEgIDxhcmtvQG1vdG9yb2xhLmNvbT4KIAogICAgICAgICBNaWNy
b2RhdGE6IEJhc2ljIGltcGxlbWVudGF0aW9uIG9mIGRvY3VtZW50LmdldEl0ZW1zKCkgbWV0aG9k
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDZmMDc3NTA4YmM3MzI4YjJlYjY1ZGI2ZGQ2YzVmYzgzZjNlMGRlMDAuLjNkZThh
YjkxZTViODQwYmNiYzBiZTVkYzZlMWMxOTBhMTQ2NTI0ODMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMS0xMC0xNCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBUb3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGllbnQgbW9yZSB0ZXN0YWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3BvcHVw
LW1lbnUtY2xpZW50LXRlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDExLTEwLTE0ICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmll
d2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3BvcHVwLW1l
bnUtY2xpZW50LXRlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAt
bWVudS1jbGllbnQtdGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgzZTg5MWJiNWUyMGZl
MDc5YjE1ZWQ1ZjM5MjVlODRhMDgzNTI5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1BBU1MgcG9wdXBDbGllbnRQYWRkaW5nTGVmdCBpcyA0CitQQVNTIHBvcHVwQ2xpZW50
UGFkZGluZ1JpZ2h0IGlzIDIKK0ZBSUwgYm91bmRpbmdCb3hSZWN0LmxlZnQgc2hvdWxkIGJlIDEw
LiBXYXMgMjAuCitGQUlMIGJvdW5kaW5nQm94UmVjdC50b3Agc2hvdWxkIGJlIDEwLiBXYXMgMjAu
CitQQVNTIGJvdW5kaW5nQm94UmVjdC53aWR0aCBpcyBib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgK
K1BBU1MgYm91bmRpbmdCb3hSZWN0LmhlaWdodCBpcyBib3VuZGluZ0NsaWVudFJlY3QuaGVpZ2h0
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcG9wdXAtbWVudS1jbGllbnQtdGVzdC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQ3Mzc2MTc2NWMzZGFlMzRiYjc1MTE1YTNmMTIxMmM0ZDBiYTM5NzkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9wb3B1cC1tZW51LWNsaWVudC10ZXN0Lmh0
bWwKQEAgLTAsMCArMSwzOCBAQAorPGh0bWw+CisgIDxoZWFkPgorICAgIDxib2R5PgorICAgICAg
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgICAgICA8c2VsZWN0IGlkPSJzZWxlY3RlbGVtZW50
Ij4KKyAgICAgICAgPG9wdGlvbj5FbGVtZW50IDE8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5F
bGVtZW50IDI8L29wdGlvbj4KKyAgICAgICAgPG9wdGlvbj5FbGVtZW50IDM8L29wdGlvbj4KKyAg
ICAgIDwvc2VsZWN0PgorICAgIDwvYm9keT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgdmFyIHNl
bGVjdEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0ZWxlbWVudCIpOwor
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgd2ls
IGZhaWwgaWYgdGhlIHBhZ2Ugc2NhbGUgZmFjdG9yICE9IDEuMAorICAgICAgICB2YXIgcGFnZVNj
YWxlRmFjdG9yID0gMi4wOworICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeShwYWdlU2Nh
bGVGYWN0b3IsIDAsIDApOworCisgICAgICAgIHZhciBwb3B1cENsaWVudFBhZGRpbmdMZWZ0ID0g
d2luZG93LmludGVybmFscy5wb3B1cENsaWVudFBhZGRpbmdMZWZ0KHNlbGVjdEVsZW1lbnQpOwor
ICAgICAgICB2YXIgcG9wdXBDbGllbnRQYWRkaW5nUmlnaHQgPSB3aW5kb3cuaW50ZXJuYWxzLnBv
cHVwQ2xpZW50UGFkZGluZ1JpZ2h0KHNlbGVjdEVsZW1lbnQpOworICAgICAgICB2YXIgYm91bmRp
bmdCb3hSZWN0ID0gd2luZG93LmludGVybmFscy5wb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChz
ZWxlY3RFbGVtZW50KTsKKyAgICAgICAgdmFyIGJvdW5kaW5nQ2xpZW50UmVjdCA9IHNlbGVjdEVs
ZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIHNob3VsZEJlKCJwb3B1cENs
aWVudFBhZGRpbmdMZWZ0IiwgIjQiKTsKKyAgICAgICAgc2hvdWxkQmUoInBvcHVwQ2xpZW50UGFk
ZGluZ1JpZ2h0IiwgIjIiKTsKKyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC5sZWZ0
IiwgImJvdW5kaW5nQ2xpZW50UmVjdC5sZWZ0Iik7CisgICAgICAgIHNob3VsZEJlKCJib3VuZGlu
Z0JveFJlY3QudG9wIiwgImJvdW5kaW5nQ2xpZW50UmVjdC50b3AiKTsKKyAgICAgICAgc2hvdWxk
QmUoImJvdW5kaW5nQm94UmVjdC53aWR0aCIsICJib3VuZGluZ0NsaWVudFJlY3Qud2lkdGgiKTsK
KyAgICAgICAgc2hvdWxkQmUoImJvdW5kaW5nQm94UmVjdC5oZWlnaHQiLCAiYm91bmRpbmdDbGll
bnRSZWN0LmhlaWdodCIpOworICAgICAgfQorICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICB9CisgICAgICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICAgIDwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCBlMDY0ZWE0MGVkY2EyNDQ3YjA0NjA2ZjAxZjM0MTdlMDMxYzZiMTkwLi41MmQ3YmQxN2E5
NTEyYTU0MmQ3Y2U2NjkwNGJlZGI3NGY3YTRjNWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MTAzNSw2ICsxMDM1LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL0xpbmtI
YXNoLmNwcAogICAgIHBsYXRmb3JtL0xvZ2dpbmcuY3BwCiAgICAgcGxhdGZvcm0vTUlNRVR5cGVS
ZWdpc3RyeS5jcHAKKyAgICBwbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwCiAgICAgcGxhdGZv
cm0vUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcAogICAgIHBsYXRmb3JtL1Njcm9sbEFuaW1h
dG9yLmNwcAogICAgIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY5
NjFlOWQ0MDk0ZGExNTZjMmRmMjkyODIyOGY2YzEyMDg1ZjRlZjAuLmQzMTk4YmUxMWFlMzljYTU2
Y2UwNDk4MjhlMzQxODRlMzAzZGU0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAx
MS0xMC0xNCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBU
b3dhcmRzIG1ha2luZyBQb3B1cE1lbnVDbGllbnQgbW9yZSB0ZXN0YWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njk2MzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBzb21lIGZ1bmN0aW9ucyB0
byB3aW5kb3cuaW50ZXJuYWxzIHRvIGFsbG93IHRlc3Rpbmcgb2YgcGFydHMgb2YgUG9wdXBNZW51
Q2xpZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3BvcHVwLW1lbnUtY2xpZW50LXRlc3Qu
aHRtbAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUu
bGlzdC5hbToKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxh
dGZvcm0vUG9wdXBNZW51Q2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b1Bv
cHVwTWVudUNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVu
dUxpc3Q6OmJvdW5kaW5nQm94UmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3Q6
OmlzUG9wdXBNZW51Q2xpZW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzUG9wdXBNZW51Q2xpZW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6Ym91bmRpbmdCb3hS
ZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OmlzUG9wdXBN
ZW51Q2xpZW50KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xpZW50UGFkZGluZ0xlZnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdSaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnRlcm5hbHM6OnBvcHVwQ2xpZW50Qm91bmRpbmdCb3hSZWN0KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwog
MjAxMS0xMC0xMyAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CiAKICAgICAgICAgTWlj
cm9kYXRhOiBCYXNpYyBpbXBsZW1lbnRhdGlvbiBvZiBkb2N1bWVudC5nZXRJdGVtcygpIG1ldGhv
ZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDE0YWMxNjk3MzJmMzk1YmNjODU4
YmM3ZTY1Y2Y0YjI4ZDA0ZTBmZjYuLjA3MGI4MDUwYmEyMzliMGUxODQxOWJlNWFhNzhmY2M3MDM0
NTc3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMjgwMSw2ICsyODAxLDcg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QT0RJbnRl
cnZhbFRyZWUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUE9EUmVkQmxhY2tUcmVlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Qb3B1cE1lbnVDbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Qb3B1cE1lbnUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51
U3R5bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVyZ2VhYmxlQnVmZmVyLmggXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCAzMDEyZTRkMzBjMDcyNGMyNzIxYWQyZWY2NDM3MzU3ZWY4
ODUzNTNjLi43MDRhNGQ1ZTJjMWM3MzJiZWFhMTBhZjA5MDhkNGZlZDU0MTg5ZDJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtMjY0LDYgKzI2NCw3IEBAIF9fWk43V2ViQ29yZTEySWNvbkRhdGFi
YXNlNWNsb3NlRXYKIF9fWk43V2ViQ29yZTEySWNvbkRhdGFiYXNlOXNldENsaWVudEVQTlNfMThJ
Y29uRGF0YWJhc2VDbGllbnRFCiBfX1pON1dlYkNvcmUxMkljb25EYXRhYmFzZUMxRXYKIF9fWk43
V2ViQ29yZTEySlNET01XcmFwcGVyMzR2aXJ0dWFsRnVuY3Rpb25Ub1ByZXZlbnRXZWFrVnRhYmxl
RXYKK19fWk43V2ViQ29yZTE3dG9Qb3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVyT2JqZWN0RQog
X19aTjdXZWJDb3JlMTJQb3B1cE1lbnVNYWNDMUVQTlNfMTVQb3B1cE1lbnVDbGllbnRFCiBfX1pO
N1dlYkNvcmUxMlByaW50Q29udGV4dDEycGFnZVByb3BlcnR5RVBOU181RnJhbWVFUEtjaQogX19a
TjdXZWJDb3JlMTJQcmludENvbnRleHQxM251bWJlck9mUGFnZXNFUE5TXzVGcmFtZUVSS05TXzlG
bG9hdFNpemVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjE2NTllMTBjNTk1NjQwOWJlZjZhOGI3ZGJl
NmY2ZWQ4NjFhODcxNi4uODQwZDcxNjVjOWU0NGY3YzhmZjc4MDI2NmM2MmQzNzI3NjIyM2ZhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNjE4NSw2ICs2MTg1LDggQEAKICAgICAgICAgICAgICd0ZXN0
aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oJywKICAgICAgICAgICAgICd0ZXN0aW5nL0ludGVy
bmFscy5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RpbmcvSW50ZXJuYWxzLmgnLAorICAgICAgICAg
ICAgJ3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9Q
b3B1cE1lbnVDbGllbnQuY3BwJywKICAgICAgICAgXSwKICAgICAgICAgJ3dlYmNvcmVfcmVzb3Vy
Y2VfZmlsZXMnOiBbCiAgICAgICAgICAgICAnRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJp
bmdzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLm9yZGVyCmluZGV4IDQ5MjdjZjQ3ZTk3YWQ3OGE0YzRiY2U4NzU0NDdh
MzE0NWE0MDQ3ZjYuLmY1NGI1YWFlY2M2N2Q5NjMzZjBiMWE0YjM3OTc4OGRlZWE4ODY0MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5vcmRlcgpAQCAtMTEwNzQsNiArMTEwNzQsNyBAQCBfX1pON1dlYkNvcmUxN0pT
QXJyYXlCdWZmZXJWaWV3QzJFUE4zSlNDOVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVj
dEVOM1dURgogX19aTjdXZWJDb3JlMzRqc1dlYkdMUmVuZGVyaW5nQ29udGV4dFNUQVRJQ19EUkFX
RVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEwSWRlbnRpZmllckUKIF9fWk43
V2ViQ29yZTUwanNXZWJHTFJlbmRlcmluZ0NvbnRleHRQcm90b3R5cGVGdW5jdGlvbkJ1ZmZlckRh
dGFFUE4zSlNDOUV4ZWNTdGF0ZUUKIF9fWk43V2ViQ29yZTE3dG9BcnJheUJ1ZmZlclZpZXdFTjNK
U0M3SlNWYWx1ZUUKK19fWk43V2ViQ29yZTE3dG9Qb3B1cE1lbnVDbGllbnRFUE5TXzEyUmVuZGVy
T2JqZWN0RQogX19aTjdXZWJDb3JlMjFXZWJHTFJlbmRlcmluZ0NvbnRleHQxMGJ1ZmZlckRhdGFF
alBOU18xNUFycmF5QnVmZmVyVmlld0VqUmkKIF9fWk43V2ViQ29yZTIxV2ViR0xSZW5kZXJpbmdD
b250ZXh0Mjh2YWxpZGF0ZUJ1ZmZlckRhdGFQYXJhbWV0ZXJzRWpqCiBfX1pON1dlYkNvcmUxMVdl
YkdMQnVmZmVyMTlhc3NvY2lhdGVCdWZmZXJEYXRhRVBOU18xNUFycmF5QnVmZmVyVmlld0UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KaW5kZXggMzllZDQ2NDQ4OTI5NDY0YTY2OTJlZTk5YTYzY2NmMmQ1MDE5NmM0OC4u
MGNkY2E2NDhhMGZkNWM3NzNmZWY5YTNmYjcxN2MyNTNmNmU4NGEyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTEwNzQsNiArMTA3NCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VIYW5kbGUuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVz
dEJhc2UuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cCBcCisgICAgcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmNwcCBcCiAgICAgcGxhdGZvcm0vdGV4
dC9SZWd1bGFyRXhwcmVzc2lvbi5jcHAgXAogICAgIHBsYXRmb3JtL1J1bnRpbWVBcHBsaWNhdGlv
bkNoZWNrcy5jcHAgXAogICAgIHBsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBcCkBAIC0yMTYx
LDYgKzIxNjIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9UaW1lci5oIFwKICAgICBw
bGF0Zm9ybS9XaWRnZXQuaCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggXAor
ICAgIHBsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIFwKICAgICBwbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmggXAogICAgIHBsdWdpbnMvRE9NTWltZVR5cGVBcnJheS5oIFwKICAgICBwbHVnaW5z
L0RPTU1pbWVUeXBlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDE1OGQzYmE4ZmIwNDliOTZiYjkzNWE4YjY3MzU2OTY2ODk0
Y2QyZDguLmRiZDBjNWJjYjBmMWJhODQ2ZWFkZTc3ZTQ1MzE5ZjhiYjllYTFkMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU0
NzcsNiArNTQ3Nyw3IEBACiAJCUM2RjQxMDQ3MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZGNDEw
NDYxMzBDNkU4OTAwMzkzREU0IC8qIEVudHJ5QmFzZS5jcHAgKi87IH07CiAJCUNBM0JGNjdDMTBE
OTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDQTNCRjY3QjEwRDk5QkFFMDBFNkNFNTMgLyogU2Ny
b2xsQW5pbWF0b3IuY3BwICovOyB9OwogCQlDQTNCRjY3RTEwRDk5QkFFMDBFNkNFNTMgLyogU2Ny
b2xsQW5pbWF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENBM0JGNjdEMTBEOTlCQUUwMEU2Q0U1MyAvKiBTY3JvbGxBbmltYXRvci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNBRjA3OTI5MTQ0Nzk0
MEUwMDMyQTVBRCAvKiBQb3B1cE1lbnVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0FGMDc5MjgxNDQ3OTQwRTAwMzJBNUFEIC8qIFBvcHVw
TWVudUNsaWVudC5jcHAgKi87IH07CiAJCUNEMERCRjAxMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNf
Q29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDAwLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBEQkQyMDE0MjI3NTk1MDAyODAy
NjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXYgKi87IH07CiAJCUNEMERC
RjAyMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNfQ29tcG9zaXRlX0NfUjAxOTVfVDAwMF9QMDE1Lndh
diBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDBEQkQyMTE0MjI3NTk1MDAyODAyNjMgLyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1Qw
MDBfUDAxNS53YXYgKi87IH07CiAJCUNEMERCRjAzMTQyMjc2ODUwMDI4MDI2MyAvKiBJUkNfQ29t
cG9zaXRlX0NfUjAxOTVfVDAwMF9QMDMwLndhdiBpbiBDb3B5IEF1ZGlvIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBEQkQyMjE0MjI3NTk1MDAyODAyNjMg
LyogSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAzMC53YXYgKi87IH07CkBAIC0xMjc3Nyw2
ICsxMjc3OCw3IEBACiAJCUM2RjQxMDQ2MTMwQzZFODkwMDM5M0RFNCAvKiBFbnRyeUJhc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRW50cnlCYXNlLmNwcDsgcGF0
aCA9IGZpbGVhcGkvRW50cnlCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0EzQkY2N0IxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFuaW1hdG9yLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0EzQkY2N0QxMEQ5OUJBRTAwRTZDRTUzIC8qIFNjcm9sbEFu
aW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNBRjA3OTI4MTQ0Nzk0MEUwMDMyQTVB
RCAvKiBQb3B1cE1lbnVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUG9wdXBNZW51Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
Q0QwREJEMjAxNDIyNzU5NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1Aw
MDAud2F2ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
YXVkaW8ud2F2OyBuYW1lID0gSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAwMC53YXY7IHBh
dGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMvSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBf
UDAwMC53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQ0QwREJEMjExNDIyNzU5
NTAwMjgwMjYzIC8qIElSQ19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMTUud2F2ICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXVkaW8ud2F2OyBuYW1l
ID0gSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXY7IHBhdGggPSBwbGF0Zm9ybS9h
dWRpby9yZXNvdXJjZXMvSVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAxNS53YXY7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJQ0QwREJEMjIxNDIyNzU5NTAwMjgwMjYzIC8qIElS
Q19Db21wb3NpdGVfQ19SMDE5NV9UMDAwX1AwMzAud2F2ICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXVkaW8ud2F2OyBuYW1lID0gSVJDX0NvbXBvc2l0
ZV9DX1IwMTk1X1QwMDBfUDAzMC53YXY7IHBhdGggPSBwbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMv
SVJDX0NvbXBvc2l0ZV9DX1IwMTk1X1QwMDBfUDAzMC53YXY7IHNvdXJjZVRyZWUgPSBTT1VSQ0Vf
Uk9PVDsgfTsKQEAgLTIwMDQ4LDYgKzIwMDUwLDcgQEAKIAkJCQlCQ0JCOEFCNzEzRjFBRkIwMDA3
MzRERjAgLyogUE9EUmVkQmxhY2tUcmVlLmggKi8sCiAJCQkJMDY2OEUxODkwQUREOTYyNDAwNDEy
OEUwIC8qIFBvcHVwTWVudS5oICovLAogCQkJCUFCQzEyODc2MEIzM0FBNkQwMEM2OTNENSAvKiBQ
b3B1cE1lbnVDbGllbnQuaCAqLywKKwkJCQlDQUYwNzkyODE0NDc5NDBFMDAzMkE1QUQgLyogUG9w
dXBNZW51Q2xpZW50LmNwcCAqLywKIAkJCQlCQzNCRTEyQTBFOTgwOTJGMDA4MzU1ODggLyogUG9w
dXBNZW51U3R5bGUuaCAqLywKIAkJCQlFNEQ2ODc3ODBFRDdBRTRGMDA2RUE5NzggLyogUHVyZ2Vh
YmxlQnVmZmVyLmggKi8sCiAJCQkJN0UzM0NEMDAxMjdGMzQwRDAwQkU4RjE3IC8qIFB1cmdlUHJp
b3JpdHkuaCAqLywKQEAgLTI3NDczLDYgKzI3NDc2LDcgQEAKIAkJCQkzMTA2MDM3QTE0MzI4MUNE
MDBBQkY0QkEgLyogRE9NV2ViS2l0Q1NTRmlsdGVyVmFsdWUubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyOUFDQjIxNDE0M0U3NDk4MDA2QkNBNUYgLyogQWNjZXNzaWJpbGl0eU1vY2tPYmplY3QuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEYwOTA4N0YxNDQ0RkRCMjAwMDI4OTE3IC8qIFNjcm9sbGJh
clRoZW1lLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNBRjA3OTI5MTQ0Nzk0MEUwMDMyQTVBRCAv
KiBQb3B1cE1lbnVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIzNzVFREExNDQ3OEEw
MTAwRjNDQUU1IC8qIE1pY3JvRGF0YUl0ZW1MaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5
QUYyRDZDMTQ0MzVEMjEwMDE2QTc4NCAvKiBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYWMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNDlGQzdBNTAxNDQ0QUY1RjAwQTVEODY0IC8qIERpc3BsYXlSZWZy
ZXNoTW9uaXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
b3B1cE1lbnVDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlMjQ4NGEwNjQ2ZDQwZmRjMjQxMGEzY2Qy
YWZkZTE0ZDljNGUyN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Qb3B1cE1lbnVDbGllbnQuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCisKKyNpbmNsdWRlICJSZW5k
ZXJNZW51TGlzdC5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NvbnN0IFBvcHVwTWVudUNsaWVudCogdG9Qb3B1cE1lbnVDbGllbnQoUmVuZGVy
T2JqZWN0KiBvYmplY3QpCit7CisgICAgQVNTRVJUKCFvYmplY3QgfHwgb2JqZWN0LT5pc1BvcHVw
TWVudUNsaWVudCgpKTsKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICAvLyBTcGVjaWFsIGNhc2U6IFJlbmRlck1lbnVMaXN0IHVzZXMgbXVsdGlwbGUgaW5oZXJpdGFu
Y2UgYW5kIHNvLAorICAgIC8vIGRlcGVuZGluZyBvbiB0aGUgY29tcGlsZXIsIHdlIG1heSBlbmQg
dXAgaW4gYSBzaXR1YXRpb24gd2hlcmUKKyAgICAvLyB0aGUgZmlyc3QgdnB0ciBkb2VzIG5vdCBw
b2ludCB0byB0aGUgUG9wdXBNZW51Q2xpZW50J3MgdnRhYmxlLAorICAgIC8vIGFuZCBzbyB3ZSdk
IGVuZCB1cCBjYWxsaW5nIHRoZSB3cm9uZyBtZXRob2QuIFRodXMsIHdlIGZpcnN0IGNhc3QgdG8K
KyAgICAvLyBSZW5kZXJNZW51TGlzdCBhbmQgdGhlbiB0byBQb3B1cE1lbnVDbGllbnQgd2hpY2gg
d2lsbCBhdXRvbWFnaWNhbGx5CisgICAgLy8gdGFrZSBpbnRvIGFjY291bnQgdGh1bmtpbmcgaWYg
bmVjZXNzYXJ5ICh0aGUgY2FzdGluZyB3aWxsIGFjdHVhbGx5IHNoaWZ0CisgICAgLy8gdGhlIHBv
aW50ZXIgb3ZlciB0byB0aGUgUG9wdXBNZW51Q2xpZW50IHBhcnQgb2YgdGhlIG9iamVjdCkuCisg
ICAgaWYgKG9iamVjdC0+aXNNZW51TGlzdCgpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
UG9wdXBNZW51Q2xpZW50Kj4odG9SZW5kZXJNZW51TGlzdChvYmplY3QpKTsKKworICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFBvcHVwTWVudUNsaWVudCo+KG9iamVjdCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BvcHVwTWVudUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50LmgKaW5kZXggZjMzYjllMjFiODkx
MDU0ZDU0M2UyNzE4NmVmNDgyNzU5MDI3N2I2Ny4uZTQ3ZjhmMDk3NGIyMzFlZTM1ZDQ3MWVjYjJl
MTg4MWZhNTNmZTBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBN
ZW51Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUG9wdXBNZW51Q2xpZW50
LmgKQEAgLTIyLDYgKzIyLDcgQEAKICNpZm5kZWYgUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUg
UG9wdXBNZW51Q2xpZW50X2gKIAorI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAi
UG9wdXBNZW51U3R5bGUuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CkBAIC0zMSw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENvbG9yOwogY2xhc3MgRm9udFNlbGVjdG9yOwogY2xhc3MgSG9zdFdpbmRvdzsKK2NsYXNzIFJl
bmRlck9iamVjdDsKIGNsYXNzIFNjcm9sbGJhcjsKIGNsYXNzIFNjcm9sbGFibGVBcmVhOwogCkBA
IC00OSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1
bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxl
IGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBv
cHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIExheW91dFJl
Y3QgYm91bmRpbmdCb3hSZWN0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudElu
c2V0TGVmdCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3QgPSAw
OwpAQCAtNjksNiArNzIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9s
bGJhcj4gY3JlYXRlU2Nyb2xsYmFyKFNjcm9sbGFibGVBcmVhKiwgU2Nyb2xsYmFyT3JpZW50YXRp
b24sIFNjcm9sbGJhckNvbnRyb2xTaXplKSA9IDA7CiB9OwogCitjb25zdCBQb3B1cE1lbnVDbGll
bnQqIHRvUG9wdXBNZW51Q2xpZW50KFJlbmRlck9iamVjdCopOworCiAjaWYgRU5BQkxFKE5PX0xJ
U1RCT1hfUkVOREVSSU5HKQogY2xhc3MgTGlzdFBvcHVwTWVudUNsaWVudCA6IHB1YmxpYyBQb3B1
cE1lbnVDbGllbnQgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5jcHAKaW5kZXggM2YzNTZhNjhlYzBjZDljY2M0ZWYxZmY5MWQxOTNkZGM2YjZiZTUx
Mi4uZGRmNWU4YmJhYTAzMzYyMjVmYTY2NWRmNzgzNTRkMTdjMjc2NTYyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zMDMsMTMgKzMwMyw3IEBA
IHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgSFRNTFNlbGVjdEVsZW1lbnQq
IHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7
CiAgICAgbV9wb3B1cElzVmlzaWJsZSA9IHRydWU7CiAKLSAgICAvLyBDb21wdXRlIHRoZSB0b3Ag
bGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQsIGJ1dCB1c2UKLSAgICAvLyB0aGUg
YWN0dWFsIHdpZHRoIG9mIHRoZSBlbGVtZW50IHRvIHNpemUgdGhlIHBvcHVwLgotICAgIEZsb2F0
UG9pbnQgYWJzVG9wTGVmdCA9IGxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0
cnVlKTsKLSAgICBMYXlvdXRSZWN0IGFic0JvdW5kcyA9IGFic29sdXRlQm91bmRpbmdCb3hSZWN0
SWdub3JpbmdUcmFuc2Zvcm1zKCk7Ci0gICAgYWJzQm91bmRzLnNldExvY2F0aW9uKHJvdW5kZWRJ
bnRQb2ludChhYnNUb3BMZWZ0KSk7Ci0gICAgbV9wb3B1cC0+c2hvdyhhYnNCb3VuZHMsIGRvY3Vt
ZW50KCktPnZpZXcoKSwKLSAgICAgICAgc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3Qt
PnNlbGVjdGVkSW5kZXgoKSkpOworICAgIG1fcG9wdXAtPnNob3coYm91bmRpbmdCb3hSZWN0KCks
IGRvY3VtZW50KCktPnZpZXcoKSwgc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChzZWxlY3QtPnNl
bGVjdGVkSW5kZXgoKSkpOwogfQogCiB2b2lkIFJlbmRlck1lbnVMaXN0OjpoaWRlUG9wdXAoKQpA
QCAtNTA2LDYgKzUwMCwxNiBAQCBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gUmVuZGVyTWVudUxpc3Q6
OmNyZWF0ZVNjcm9sbGJhcihTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZQogICAgIHJldHVybiB3
aWRnZXQucmVsZWFzZSgpOwogfQogCitMYXlvdXRSZWN0IFJlbmRlck1lbnVMaXN0Ojpib3VuZGlu
Z0JveFJlY3QoKSBjb25zdAoreworICAgIC8vIENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0
cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVzZQorICAgIC8vIHRoZSBhY3R1YWwgd2lkdGgg
b2YgdGhlIGVsZW1lbnQgdG8gc2l6ZSB0aGUgcG9wdXAuCisgICAgRmxvYXRQb2ludCBhYnNUb3BM
ZWZ0ID0gbG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOworICAgIExh
eW91dFJlY3QgYWJzQm91bmRzID0gYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5z
Zm9ybXMoKTsKKyAgICBhYnNCb3VuZHMuc2V0TG9jYXRpb24ocm91bmRlZEludFBvaW50KGFic1Rv
cExlZnQpKTsKKyAgICByZXR1cm4gYWJzQm91bmRzOworfQorCiBpbnQgUmVuZGVyTWVudUxpc3Q6
OmNsaWVudEluc2V0TGVmdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCmluZGV4IDczZjk4MWIxOTk3ODU1YTg5YjU1Y2Vi
YzM4NjUwZWYwM2YyNmFhNGQuLmUwMDVjN2MwNDI4YzJkYmUwNmMxZmRlNzIxMWZlZDZmODk2ZmQz
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC0zOSw5
ICszOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlbmRlclRleHQ7CiAKICNpZiBF
TkFCTEUoTk9fTElTVEJPWF9SRU5ERVJJTkcpCi1jbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1Ymxp
YyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gsIHByaXZhdGUgTGlzdFBvcHVwTWVudUNsaWVu
dCB7CitjbGFzcyBSZW5kZXJNZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3gsIHB1YmxpYyBMaXN0UG9wdXBNZW51Q2xpZW50IHsKICNlbHNlCi1jbGFzcyBSZW5kZXJN
ZW51TGlzdCA6IHB1YmxpYyBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gsIHByaXZhdGUgUG9w
dXBNZW51Q2xpZW50IHsKK2NsYXNzIFJlbmRlck1lbnVMaXN0IDogcHVibGljIFJlbmRlckRlcHJl
Y2F0ZWRGbGV4aWJsZUJveCwgcHVibGljIFBvcHVwTWVudUNsaWVudCB7CiAjZW5kaWYKIAogcHVi
bGljOgpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBi
b29sIGlzTWVudUxpc3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29s
IGlzUG9wdXBNZW51Q2xpZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVh
bCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVm
b3JlQ2hpbGQgPSAwKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0
Kik7CkBAIC04OSw2ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGl0ZW1Jc0Vu
YWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0
eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9w
dXBNZW51U3R5bGUgbWVudVN0eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGJv
dW5kaW5nQm94UmVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0UmlnaHQoKSBjb25zdDsKICAgICB2
aXJ0dWFsIGludCBjbGllbnRQYWRkaW5nTGVmdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDA1YTIzNzMxZDQ4MGE0OWQyYjIzYzNhMjMyYzk4NjUz
NjZiMjAwNjYuLmUxYjJkYWQ0MGQwOTM5YWVmNWJkYmFiNmY3NmY5Zjc5M2UyYjEwYTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTUyLDYgKzUyLDcgQEAgY2xh
c3MgSW5saW5lQm94OwogY2xhc3MgSW5saW5lRmxvd0JveDsKIGNsYXNzIE92ZXJsYXBUZXN0UmVx
dWVzdENsaWVudDsKIGNsYXNzIFBhdGg7CitjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBQ
b3NpdGlvbjsKIGNsYXNzIFJlbmRlckJveE1vZGVsT2JqZWN0OwogY2xhc3MgUmVuZGVySW5saW5l
OwpAQCAtMjk2LDYgKzI5Nyw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVURVJfVEFHKQogICAg
IHZpcnR1YWwgYm9vbCBpc01ldGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgor
ICAgIHZpcnR1YWwgYm9vbCBpc1BvcHVwTWVudUNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAjaWYgRU5BQkxFKFBST0dSRVNTX1RBRykKICAgICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVz
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXgg
ZmY5MDc3MGYwOTU1Nzg5MTA3NWRiOTFlMjllMWRmZTc4NzA0YWZiNi4uNTVhNDYyMWI4NWE1NGZj
N2JiOWRhOTU4NmFiZmU1MTEyZWZkMzk4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTE3NCw3ICsx
NzQsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c2hvd1BvcHVwKCkKICAg
ICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2Vh
cmNoZXMpOwogICAgIH0KIAotICAgIG1fc2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5zaG93KGFi
c29sdXRlQm91bmRpbmdCb3hSZWN0KCksIGRvY3VtZW50KCktPnZpZXcoKSwgLTEpOworICAgIG1f
c2VhcmNoUG9wdXAtPnBvcHVwTWVudSgpLT5zaG93KGJvdW5kaW5nQm94UmVjdCgpLCBkb2N1bWVu
dCgpLT52aWV3KCksIC0xKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6
OmhpZGVQb3B1cCgpCkBAIC02MTMsNiArNjEzLDExIEBAIFBvcHVwTWVudVN0eWxlIFJlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZTo6bWVudVN0eWxlKCkgY29uc3QKICAgICByZXR1cm4gUG9wdXBN
ZW51U3R5bGUoc3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29sb3Ip
LCBzdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29s
b3IpLCBzdHlsZSgpLT5mb250KCksIHN0eWxlKCktPnZpc2liaWxpdHkoKSA9PSBWSVNJQkxFLCBz
dHlsZSgpLT5kaXNwbGF5KCkgPT0gTk9ORSwgc3R5bGUoKS0+dGV4dEluZGVudCgpLCBzdHlsZSgp
LT5kaXJlY3Rpb24oKSwgc3R5bGUoKS0+dW5pY29kZUJpZGkoKSA9PSBPdmVycmlkZSk7CiB9CiAK
K0xheW91dFJlY3QgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpib3VuZGluZ0JveFJlY3Qo
KSBjb25zdAoreworICAgIHJldHVybiBhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOworfQorCiBp
bnQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpjbGllbnRJbnNldExlZnQoKSBjb25zdAog
ewogICAgIC8vIEluc2V0IHRoZSBtZW51IGJ5IHRoZSByYWRpdXMgb2YgdGhlIGNhcCBvbiB0aGUg
bGVmdCBzbyB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmgKaW5kZXggNDc0ZDM1MzY1OWI0OTVlMmM4ZmU2YjI3NGUz
MjRkYzBiMTc0NGMwYS4uZjE3ZjcxM2U0ZDg0OGIxODMyNjk2Y2NmZGVjZmRlMWY0NjE2OGQ0MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2lu
Z2xlTGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bFNpbmdsZUxpbmUuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0UmVj
dCBjb250cm9sQ2xpcFJlY3QoY29uc3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgaXNQb3B1cE1lbnVDbGllbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzVGV4dEZpZWxkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CkBAIC0xMDAs
NiArMTAxLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXRlbUlzRW5hYmxlZCh1bnNp
Z25lZCBsaXN0SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGUgaXRlbVN0
eWxlKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHls
ZSBtZW51U3R5bGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgYm91bmRpbmdCb3hS
ZWN0KCkgY29uc3Q7CiAgICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRMZWZ0KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBpbnQgY2xpZW50SW5zZXRSaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50
IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggZTE0OTM2NDYwMDQzOWI1N2MwNDY1ODcxZWI5NzFjNzRmNTlkMDY1NC4uNWZmODgz
MzBjMTM3MGQ2YTM4MTBjZjg1ZWRkOTkyYjM1OGE0ZWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5U
UykKICNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVFdmVudC5oIgogI2VuZGlmCisjaW5jbHVkZSAi
UG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJP
YmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCkBAIC00MzUsNCArNDM2LDQz
IEBAIHZvaWQgSW50ZXJuYWxzOjpzY3JvbGxFbGVtZW50VG9SZWN0KEVsZW1lbnQqIGVsZW1lbnQs
IGxvbmcgeCwgbG9uZyB5LCBsb25nIHcsIGxvCiAgICAgZnJhbWVWaWV3LT5zY3JvbGxFbGVtZW50
VG9SZWN0KGVsZW1lbnQsIEludFJlY3QoeCwgeSwgdywgaCkpOwogfQogCitpbnQgSW50ZXJuYWxz
Ojpwb3B1cENsaWVudFBhZGRpbmdMZWZ0KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAg
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7Cisg
ICAgaWYgKHJlbmRlcmVyLT5pc1BvcHVwTWVudUNsaWVudCgpKQorICAgICAgICByZXR1cm4gdG9Q
b3B1cE1lbnVDbGllbnQocmVuZGVyZXIpLT5jbGllbnRQYWRkaW5nTGVmdCgpOworICAgIHJldHVy
biAwOworfQorCitpbnQgSW50ZXJuYWxzOjpwb3B1cENsaWVudFBhZGRpbmdSaWdodChFbGVtZW50
KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVs
ZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAg
ICAgcmV0dXJuIDA7CisgICAgfQorICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIg
PSBlbGVtZW50LT5yZW5kZXJlcigpOworICAgIGlmIChyZW5kZXJlci0+aXNQb3B1cE1lbnVDbGll
bnQoKSkKKyAgICAgICAgcmV0dXJuIHRvUG9wdXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+Y2xpZW50
UGFkZGluZ1JpZ2h0KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8Q2xpZW50UmVj
dD4gSW50ZXJuYWxzOjpwb3B1cENsaWVudEJvdW5kaW5nQm94UmVjdChFbGVtZW50KiBlbGVtZW50
LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPnJl
bmRlcmVyKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJl
dHVybiBDbGllbnRSZWN0OjpjcmVhdGUoKTsKKyAgICB9CisgICAgZWxlbWVudC0+ZG9jdW1lbnQo
KS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKHJlbmRlcmVyLT5p
c1BvcHVwTWVudUNsaWVudCgpKQorICAgICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHRv
UG9wdXBNZW51Q2xpZW50KHJlbmRlcmVyKS0+Ym91bmRpbmdCb3hSZWN0KCkpOworICAgIHJldHVy
biBDbGllbnRSZWN0OjpjcmVhdGUoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKaW5kZXggNDEwYjZlZDhkNzg0MDQ4NWYzNGNhY2U4NWU5NTcxOGYxOTk2ZWRjMy4uYTNkYzkz
ZGY4MGU3ZmFiYzgyZmQyMGU0NDNmNzUwOTFjZDU5ODdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCkBAIC0zOCw3ICszOCw5IEBAIGNsYXNzIENsaWVudFJlY3Q7CiBjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBOb2RlOworY2xhc3MgUG9wdXBNZW51Q2xpZW50
OwogY2xhc3MgUmFuZ2U7CitjbGFzcyBSZW5kZXJPYmplY3Q7CiAKIGNsYXNzIEludGVybmFscyA6
IHB1YmxpYyBSZWZDb3VudGVkPEludGVybmFscz4gewogcHVibGljOgpAQCAtOTIsNiArOTQsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0U3VnZ2VzdGVkVmFsdWUoRWxlbWVudCogaW5wdXRFbGVt
ZW50LCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzY3JvbGxFbGVt
ZW50VG9SZWN0KEVsZW1lbnQqLCBsb25nIHgsIGxvbmcgeSwgbG9uZyB3LCBsb25nIGgsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAorICAgIGludCBwb3B1cENsaWVudFBhZGRpbmdMZWZ0KEVsZW1lbnQqLCBF
eGNlcHRpb25Db2RlJik7CisgICAgaW50IHBvcHVwQ2xpZW50UGFkZGluZ1JpZ2h0KEVsZW1lbnQq
LCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBwb3B1cENsaWVu
dEJvdW5kaW5nQm94UmVjdChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwogCiAgICAgdm9pZCBwYWludENvbnRyb2xUaW50cyhE
b2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAppbmRleCA5MDk5ODlkYTJhMmEyZDQyYzdmOWZjYTUyMmMwNzg1Mzc1YzE3NzVmLi43Y2NlMzQ1
NDA1NTlkMzViNDU3NDI5NmNmZWI5M2FlMzhmZmU2MDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCkBAIC02Nyw2ICs2NywxMCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
dm9pZCBwYWludENvbnRyb2xUaW50cyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01F
eGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQgc2Nyb2xsRWxlbWVudFRvUmVjdChpbiBFbGVtZW50
IGVsZW1lbnQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LCBpbiBsb25nIHcsIGluIGxvbmcgaCkgcmFp
c2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIGludCBwb3B1cENsaWVudFBhZGRpbmdMZWZ0
KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBpbnQg
cG9wdXBDbGllbnRQYWRkaW5nUmlnaHQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIENsaWVudFJlY3QgcG9wdXBDbGllbnRCb3VuZGluZ0JveFJlY3Qo
aW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBkM2RkMmU3NWIwYTljMzg2YTc3ZmVkMDEyNzhi
MzU4OTEwZTU3MGI2Li43ZGNmMDk0N2Q4NjgzNmFiMWJiMzAyMTBjNTlkN2U0OWJhMTVhZGJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEwLTE0ICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRvd2FyZHMgbWFr
aW5nIFBvcHVwTWVudUNsaWVudCBtb3JlIHRlc3RhYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94
UmVjdCk6CisgICAgICAgICogc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50Lmg6CisgICAgICAg
ICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFw
cGx5QXV0b2ZpbGxTdWdnZXN0aW9ucyk6CisgICAgICAgICogdGVzdHMvUG9wdXBNZW51VGVzdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlRlc3RQb3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVj
dCk6CisKIDIwMTEtMTAtMTMgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgogCiAgICAg
ICAgIE1pY3JvZGF0YTogQmFzaWMgaW1wbGVtZW50YXRpb24gb2YgZG9jdW1lbnQuZ2V0SXRlbXMo
KSBtZXRob2QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmls
bFBvcHVwTWVudUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9BdXRvZmls
bFBvcHVwTWVudUNsaWVudC5jcHAKaW5kZXggMzRhMTg0ZjE4OTdmZGJlMWU3N2M0NThhMzZlYmFh
NzczZWRiMTc1NC4uZjc3YjY4YTE2MjBjMGQ0NTNhYTYwZDVkNTU3MDFhYWQ5Mjk4NWYzOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51
Q2xpZW50LmNwcApAQCAtMjE2LDYgKzIxNiwxMyBAQCBpbnQgQXV0b2ZpbGxQb3B1cE1lbnVDbGll
bnQ6OmNsaWVudFBhZGRpbmdSaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpk
ZWZhdWx0VGhlbWUoKS0+cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChzdHlsZSk7CiB9CiAKK1dl
YkNvcmU6OkxheW91dFJlY3QgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQ6OmJvdW5kaW5nQm94UmVj
dCgpIGNvbnN0Cit7CisgICAgaWYgKG1fdGV4dEZpZWxkKQorICAgICAgICByZXR1cm4gbV90ZXh0
RmllbGQtPmdldFJlY3QoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6TGF5b3V0UmVjdCgpOworfQor
CiB2b2lkIEF1dG9maWxsUG9wdXBNZW51Q2xpZW50Ojpwb3B1cERpZEhpZGUoKQogewogICAgIFdl
YlZpZXdJbXBsKiB3ZWJWaWV3ID0gZ2V0V2ViVmlldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0F1dG9maWxsUG9wdXBNZW51Q2xpZW50LmgKaW5kZXggN2QyYjk4NWEy
YzJjY2UzZDA4OTk3NGMwY2I1OGU2MjY4ZDU4YzdiMy4uOGUyZWM4Mzg3N2M0NDUxNjM5ZTY3OWVk
MjJlNWEwY2YzNDYzMjQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
QXV0b2ZpbGxQb3B1cE1lbnVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9BdXRvZmlsbFBvcHVwTWVudUNsaWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIEF1
dG9maWxsUG9wdXBNZW51Q2xpZW50X2gKICNkZWZpbmUgQXV0b2ZpbGxQb3B1cE1lbnVDbGllbnRf
aAogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODIsNiArODMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKICAg
ICB2aXJ0dWFsIFdlYkNvcmU6OlBvcHVwTWVudVN0eWxlIGl0ZW1TdHlsZSh1bnNpZ25lZCBsaXN0
SW5kZXgpIGNvbnN0OwogICAgIHZpcnR1YWwgV2ViQ29yZTo6UG9wdXBNZW51U3R5bGUgbWVudVN0
eWxlKCkgY29uc3Q7CisgICAgdmlydHVhbCBXZWJDb3JlOjpMYXlvdXRSZWN0IGJvdW5kaW5nQm94
UmVjdCgpIGNvbnN0OwogICAgIHZpcnR1YWwgaW50IGNsaWVudEluc2V0TGVmdCgpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGludCBjbGllbnRJbnNldFJpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaW50IGNsaWVudFBhZGRpbmdMZWZ0KCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggNzIwMTkwN2Yw
OWM1MTk3ZmVkNzU5Mjk5N2FkYjQzZjg1ZGQxZTNkYi4uYzYwMzBhNGU2YmE1YWRiOGIwN2FmNmI1
N2NjM2FmZTNhOTM5ZTdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcApAQCAtMjI1OCw3ICsyMjU4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXBwbHlBdXRv
ZmlsbFN1Z2dlc3Rpb25zKAogICAgIGlmIChtX2F1dG9maWxsUG9wdXBTaG93aW5nKSB7CiAgICAg
ICAgIHJlZnJlc2hBdXRvZmlsbFBvcHVwKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9hdXRv
ZmlsbFBvcHVwLT5zaG93SW5SZWN0KGZvY3VzZWROb2RlLT5nZXRSZWN0KCksIGZvY3VzZWROb2Rl
LT5vd25lckRvY3VtZW50KCktPnZpZXcoKSwgMCk7CisgICAgICAgIG1fYXV0b2ZpbGxQb3B1cC0+
c2hvd0luUmVjdChtX2F1dG9maWxsUG9wdXBDbGllbnQtPmJvdW5kaW5nQm94UmVjdCgpLCBmb2N1
c2VkTm9kZS0+b3duZXJEb2N1bWVudCgpLT52aWV3KCksIDApOwogICAgICAgICBtX2F1dG9maWxs
UG9wdXBTaG93aW5nID0gdHJ1ZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNwcAppbmRleCBiMzk1YjkzMDE3Y2RiYjFmMTI4MDE5YmFk
MWNjODQzOTZjYzdhMzE2Li5kY2JjNDQ0NzUzMDk4MTA2MWU1ZGZlNzU4NWNmMzIzNGVjMjI0Mjc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAK
QEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gUG9wdXBNZW51U3R5bGUo
Q29sb3I6OmJsYWNrLCBDb2xvcjo6d2hpdGUsIGZvbnQsIHRydWUsIGZhbHNlLCBMZW5ndGgoKSwg
VGV4dERpcmVjdGlvbigpLCBmYWxzZSAvKiBoYXMgdGV4dCBkaXJlY3Rpb24gb3ZlcnJpZGUgKi8p
OwogICAgIH0KICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlIG1lbnVTdHlsZSgpIGNvbnN0IHsg
cmV0dXJuIGl0ZW1TdHlsZSgwKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBib3VuZGluZ0Jv
eFJlY3QoKSBjb25zdCB7IHJldHVybiBMYXlvdXRSZWN0KCk7IH0KICAgICB2aXJ0dWFsIGludCBj
bGllbnRJbnNldExlZnQoKSBjb25zdCB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpbnQgY2xp
ZW50SW5zZXRSaWdodCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGludCBjbGll
bnRQYWRkaW5nTGVmdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MDg2MGYz
ZmJkMjUyZjM2YzE0ZTE2MTgyNmJlYzA3NWMyNTNiMjg2Li4zOTlmNDk4MjgyODc1ZGVkMjBmZjU1
NzA1MmNkNmQxZWFiMzczOWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAt
MTQgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVG93YXJk
cyBtYWtpbmcgUG9wdXBNZW51Q2xpZW50IG1vcmUgdGVzdGFibGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY5NjMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAg
ICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDExLTEwLTE0ICBOYXlhbiBLdW1hciBLICA8
bmF5YW5ra0Btb3Rvcm9sYS5jb20+CiAKICAgICAgICAgW0dUS10gcjk3NDM4OiBJbmNvbnNpc3Rl
bnQgdXNlIG9mIGZsYXR0ZW5pbmcgdnMgZmxhdHRlcmluZyBpbiBmdW5jdGlvbiBuYW1lcy9jb21t
ZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDVhYjU0ZTk1Y2U1OGQwMGYyM2M1OWRiMzdk
MTU4NGZiOGE3M2JiNGMuLmY0NWYxOTI2YWYzMTY2MzQxZDIwNTIyOWEyYTQyZjQ3NmFmZGZlYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE3Nyw2ICsxNzcsNyBAQCBFWFBPUlRTCiAgICAg
ICAgID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpT
RE9NR2xvYmFsT2JqZWN0QDFAUEFWQ2xpZW50UmVjdEAxQEBaCiAgICAgICAgID90b0pTQFdlYkNv
cmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0
QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NA
QFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWUmFuZ2VAMUBAWgorICAg
ICAgICA/dG9Qb3B1cE1lbnVDbGllbnRAV2ViQ29yZUBAWUFQQlZQb3B1cE1lbnVDbGllbnRAMUBQ
QVZSZW5kZXJPYmplY3RAMUBAWgogICAgICAgICA/dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzQERvY3VtZW50QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/dmlld0BEb2N1bWVu
dEBXZWJDb3JlQEBRQkVQQVZGcmFtZVZpZXdAMkBYWgogICAgICAgICA/dmlydHVhbEZ1bmN0aW9u
VG9QcmV2ZW50V2Vha1Z0YWJsZUBKU0RPTVdyYXBwZXJAV2ViQ29yZUBATUFFWFhaCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggN2Q3NDYyOTBlM2IzYTkwM2Y0M2Y1NjA4OWM3
ZjRkOTkwMWI2YmI5Zi4uY2E3Y2MwNzEzYTRkNTlhNDAwNWU5OWIyOGI3ZGZiMmY5MDI0M2FkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTcxLDUgKzE3MSw2IEBAIEVY
UE9SVFMKICAgICAgICAgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0
YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAgICAgICAgP3RvSlNA
V2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxP
YmplY3RAMUBQQVZSYW5nZUAxQEBaCiAgICAgICAgID90b05vZGVAV2ViQ29yZUBAWUFQQVZOb2Rl
QDFAVkpTVmFsdWVASlNDQEBAWgorICAgICAgICA/dG9Qb3B1cE1lbnVDbGllbnRAV2ViQ29yZUBA
WUFQQlZQb3B1cE1lbnVDbGllbnRAMUBQQVZSZW5kZXJPYmplY3RAMUBAWgogICAgICAgICA/dmll
d0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZGcmFtZVZpZXdAMkBYWgogICAgICAgICA/dmlydHVh
bEZ1bmN0aW9uVG9QcmV2ZW50V2Vha1Z0YWJsZUBKU0RPTVdyYXBwZXJAV2ViQ29yZUBATUFFWFha
CmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAyZmZiZTk5NTQ3YjNiNjRjZWM1ZWExYTQwZGVh
YThjN2M2MGQ1N2U5Li5iMGY4MWQ2NDgyMThjOGZhOWFiZjlhZjhmYTk1YjY2MzFhZGIxODM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTQxLDYgKzQxLDcgQEAgX1pON1dlYkNvcmUxMENs
aWVudFJlY3RDMUVSS05TXzdJbnRSZWN0RTsKIF9aTjdXZWJDb3JlMTFFdmVudFRhcmdldDE3dG9H
ZW5lcmF0ZWRTdHJlYW1FdjsKIF9aTjdXZWJDb3JlMTFFdmVudFRhcmdldDh0b1N0cmVhbUV2Owog
X1pON1dlYkNvcmUxMkpTRE9NV3JhcHBlcjM0dmlydHVhbEZ1bmN0aW9uVG9QcmV2ZW50V2Vha1Z0
YWJsZUV2OworX1pON1dlYkNvcmUxN3RvUG9wdXBNZW51Q2xpZW50RVBOU18xMlJlbmRlck9iamVj
dEU7CiBfWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RF
YjsKIF9aTjdXZWJDb3JlMTNjcmVhdGVXcmFwcGVyRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNE
T01HbG9iYWxPYmplY3RFUE5TXzROb2RlRTsKIF9aTjdXZWJDb3JlMTVzZXRET01FeGNlcHRpb25F
UE4zSlNDOUV4ZWNTdGF0ZUVpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>