<?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>65904</bug_id>
          
          <creation_ts>2011-08-09 02:57:43 -0700</creation_ts>
          <short_desc>[Chromium] Implement font shaping with font-feature-settings on Windows</short_desc>
          <delta_ts>2011-10-04 09:53:04 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>63796</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kenichi Ishibashi">bashi</assigned_to>
          <cc>abarth</cc>
    
    <cc>brettw</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>jshin</cc>
    
    <cc>kbr</cc>
    
    <cc>morrita</cc>
    
    <cc>reed</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>448489</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-09 02:57:43 -0700</bug_when>
    <thetext>Implement text shaping with font-feature-settings CSS property.  This bug entry is for Chromium Windows port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450367</commentid>
    <comment_count>1</comment_count>
      <attachid>103754</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-12 02:11:44 -0700</bug_when>
    <thetext>Created attachment 103754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>450368</commentid>
    <comment_count>2</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-08-12 02:14:38 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=103754) [details]
&gt; Patch

This is an WIP patch and is not for review.

Using Uniscribe OpenType APIs for complex text shaping to implement font feature settings.

For now, I enclose the modified part by USE_UNISCRIBE_OPENTYPE macro so that I can handily switch over.
I&apos;d like to get some feedback from someone who are familiar with this area before moving forward on.  Cc&apos;ing people who I can see thier name on ChangeLog and git blame.  Please let me know if there are person who are well suited for review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461114</commentid>
    <comment_count>3</comment_count>
      <attachid>106109</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-02 03:05:38 -0700</bug_when>
    <thetext>Created attachment 106109
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461122</commentid>
    <comment_count>4</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-02 03:16:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created an attachment (id=106109) [details]
&gt; Patch V1

Revised the patch.  Could you guys take a look?

BTW, I couldn&apos;t create the test expectation for css3/font-feature-settings-rendering.html on my Windows machine, even run_webkit_tests.sh said &quot;Writing new expected result ...&quot;.  There was no files on the relevant folder...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462321</commentid>
    <comment_count>5</comment_count>
      <attachid>106375</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-05 18:57:40 -0700</bug_when>
    <thetext>Created attachment 106375
Patch V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462322</commentid>
    <comment_count>6</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-05 19:02:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=106375) [details]
&gt; Patch V2

Added expectations. I&apos;d appreciate if someone could review this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462381</commentid>
    <comment_count>7</comment_count>
      <attachid>106375</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-05 23:43:38 -0700</bug_when>
    <thetext>Comment on attachment 106375
Patch V2

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

&gt; LayoutTests/ChangeLog:12
&gt; +        * platform/chromium/test_expectations.txt: VISTA and WIN7 should pass css3/font-feature-settings-rendering.html.

Why won&apos;t it pass on XP?

&gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.cpp:66
&gt; +static ScriptItemizeOpenTypeFunc sScriptItemizeOpenTypeFunc = 0;
&gt; +static ScriptShapeOpenTypeFunc sScriptShapeOpenTypeFunc = 0;
&gt; +static bool sOpenTypeFunctionsLoaded = false;

The sFooBar naming rule for file-scope variables is not common in WebKit.
Though we don&apos;t have the standard rule for it, some files use &quot;gFooBar&quot; for file-scope variables,
or making them to static data members of a class and use &quot;s_fooBar&quot;.

&gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.cpp:750
&gt; +            memcpy(&amp;shaping.m_visualAttributes[i], &amp;glyphProps[i].sva,
&gt; +                   sizeof(SCRIPT_VISATTR));

I don&apos;t think we need to fold this line.  It&apos;s not so long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462408</commentid>
    <comment_count>8</comment_count>
      <attachid>106396</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-06 00:50:41 -0700</bug_when>
    <thetext>Created attachment 106396
Patch V3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>462410</commentid>
    <comment_count>9</comment_count>
      <attachid>106375</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-06 00:52:32 -0700</bug_when>
    <thetext>Comment on attachment 106375
Patch V2

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

Hi Kent-san,

Thank you so much for taking a look.  Revised the patch.

&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt; +        * platform/chromium/test_expectations.txt: VISTA and WIN7 should pass css3/font-feature-settings-rendering.html.
&gt; 
&gt; Why won&apos;t it pass on XP?

I should have added more detailed description here.  According to the MSDN, Uniscribe OpenType APIs are available on usp10.dll version 1.600 or greater, which is not installed by default on XP. I added description and added PASS to the expectation since usp10.dll version 1.600 or greater can be installed on XP.

&gt;&gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.cpp:66
&gt;&gt; +static bool sOpenTypeFunctionsLoaded = false;
&gt; 
&gt; The sFooBar naming rule for file-scope variables is not common in WebKit.
&gt; Though we don&apos;t have the standard rule for it, some files use &quot;gFooBar&quot; for file-scope variables,
&gt; or making them to static data members of a class and use &quot;s_fooBar&quot;.

Changed from sFooBar to gFooBar style.

&gt;&gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.cpp:750
&gt;&gt; +                   sizeof(SCRIPT_VISATTR));
&gt; 
&gt; I don&apos;t think we need to fold this line.  It&apos;s not so long.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463166</commentid>
    <comment_count>10</comment_count>
      <attachid>106375</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-06 22:46:12 -0700</bug_when>
    <thetext>Comment on attachment 106375
Patch V2

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

&gt;&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt;&gt; +        * platform/chromium/test_expectations.txt: VISTA and WIN7 should pass css3/font-feature-settings-rendering.html.
&gt;&gt; 
&gt;&gt; Why won&apos;t it pass on XP?
&gt; 
&gt; I should have added more detailed description here.  According to the MSDN, Uniscribe OpenType APIs are available on usp10.dll version 1.600 or greater, which is not installed by default on XP. I added description and added PASS to the expectation since usp10.dll version 1.600 or greater can be installed on XP.

Ok, so we should have a separated entry for XP with the WONTFIX keyword, and put it in the &quot;WONTFIX TESTS&quot; section of test_expectations.txt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463167</commentid>
    <comment_count>11</comment_count>
      <attachid>106396</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-09-06 22:47:31 -0700</bug_when>
    <thetext>Comment on attachment 106396
Patch V3

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

&gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.h:52
&gt; +#define UNISCRIBE_HELPER_FEATURES 4

We&apos;d like to avoid to use preprocessor macros for constant values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463203</commentid>
    <comment_count>12</comment_count>
      <attachid>106551</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-07 00:27:43 -0700</bug_when>
    <thetext>Created attachment 106551
Patch V4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463204</commentid>
    <comment_count>13</comment_count>
      <attachid>106375</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-07 00:29:16 -0700</bug_when>
    <thetext>Comment on attachment 106375
Patch V2

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

&gt;&gt;&gt;&gt; LayoutTests/ChangeLog:12
&gt;&gt;&gt;&gt; +        * platform/chromium/test_expectations.txt: VISTA and WIN7 should pass css3/font-feature-settings-rendering.html.
&gt;&gt;&gt; 
&gt;&gt;&gt; Why won&apos;t it pass on XP?
&gt;&gt; 
&gt;&gt; I should have added more detailed description here.  According to the MSDN, Uniscribe OpenType APIs are available on usp10.dll version 1.600 or greater, which is not installed by default on XP. I added description and added PASS to the expectation since usp10.dll version 1.600 or greater can be installed on XP.
&gt; 
&gt; Ok, so we should have a separated entry for XP with the WONTFIX keyword, and put it in the &quot;WONTFIX TESTS&quot; section of test_expectations.txt.

Done. Thank you for letting me know appropriate way to update expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463205</commentid>
    <comment_count>14</comment_count>
      <attachid>106396</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-07 00:29:59 -0700</bug_when>
    <thetext>Comment on attachment 106396
Patch V3

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.h:52
&gt;&gt; +#define UNISCRIBE_HELPER_FEATURES 4
&gt; 
&gt; We&apos;d like to avoid to use preprocessor macros for constant values.

Changed to use constant variables.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474524</commentid>
    <comment_count>15</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-27 23:17:31 -0700</bug_when>
    <thetext>Could someone please review this? Or could you advice me to find the right person for review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475276</commentid>
    <comment_count>16</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-09-29 00:09:05 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Could someone please review this? Or could you advice me to find the right person for review?
Who wrote the original code? If he/she read gives an unofficial review, I&apos;d be happy to rubber-stamp this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475435</commentid>
    <comment_count>17</comment_count>
      <attachid>106551</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-09-29 08:42:35 -0700</bug_when>
    <thetext>Comment on attachment 106551
Patch V4

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

I&apos;m not really qualified to review this code but had one question while looking it over. Perhaps reed could do an unofficial review? If so I would be happy to r+ it.

&gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.cpp:529
&gt; +                            m_scriptTags.remove(i + 1, j);

Is this behavior of removing runs that were tagged SCRIPT_TAG_UNKNOWN specified anywhere? If so, why leave one run in place with that tag? From the documentation it seems that the run can contain glyphs that have shapes (i.e., punctuation) so simply dropping them seems wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>475874</commentid>
    <comment_count>18</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-09-29 21:38:53 -0700</bug_when>
    <thetext>Hi Morrita-san and Kenneth,

Thank you so much offering rubber-stamp r+. I&apos;d appreciate if reed could review the patch.

(In reply to comment #17)
&gt; &gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.cpp:529
&gt; &gt; +                            m_scriptTags.remove(i + 1, j);
&gt; 
&gt; Is this behavior of removing runs that were tagged SCRIPT_TAG_UNKNOWN specified anywhere? If so, why leave one run in place with that tag? From the documentation it seems that the run can contain glyphs that have shapes (i.e., punctuation) so simply dropping them seems wrong.

No, this compacts more than two successive runs which were tagged SCRIPT_TAG_UNKNOWN into one run which is tagged SCRIPT_TAG_UNKNOWN, too. Glyphs contained these runs aren&apos;t discarded.

This is needed for support some OpenType features like &quot;frac&quot; and &quot;afrc&quot; (See http://dev.w3.org/csswg/css3-fonts/#propdef-font-variant-numeric).  As far as I checked, ScriptItemizeOpenType() divides &quot;1/3&quot; into 3 SCRIPT_TAG_UNKNOWN runs.  Since OpenType features are applied for each run, &quot;frac&quot; doesn&apos;t affect when &quot;1/3&quot; divides 3 runs so I added this logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476044</commentid>
    <comment_count>19</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2011-09-30 05:47:54 -0700</bug_when>
    <thetext>Looks fine, though I&apos;m not familiar with these new APIs yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476232</commentid>
    <comment_count>20</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-09-30 12:12:28 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Hi Morrita-san and Kenneth,
&gt; 
&gt; Thank you so much offering rubber-stamp r+. I&apos;d appreciate if reed could review the patch.
&gt; 
&gt; (In reply to comment #17)
&gt; &gt; &gt; Source/WebCore/platform/graphics/chromium/UniscribeHelper.cpp:529
&gt; &gt; &gt; +                            m_scriptTags.remove(i + 1, j);
&gt; &gt; 
&gt; &gt; Is this behavior of removing runs that were tagged SCRIPT_TAG_UNKNOWN specified anywhere? If so, why leave one run in place with that tag? From the documentation it seems that the run can contain glyphs that have shapes (i.e., punctuation) so simply dropping them seems wrong.
&gt; 
&gt; No, this compacts more than two successive runs which were tagged SCRIPT_TAG_UNKNOWN into one run which is tagged SCRIPT_TAG_UNKNOWN, too. Glyphs contained these runs aren&apos;t discarded.

I see. The SCRIPT_ITEMs only contain the starting position of the run.

&gt; This is needed for support some OpenType features like &quot;frac&quot; and &quot;afrc&quot; (See http://dev.w3.org/csswg/css3-fonts/#propdef-font-variant-numeric).  As far as I checked, ScriptItemizeOpenType() divides &quot;1/3&quot; into 3 SCRIPT_TAG_UNKNOWN runs.  Since OpenType features are applied for each run, &quot;frac&quot; doesn&apos;t affect when &quot;1/3&quot; divides 3 runs so I added this logic.

OK.

Based on this and reed&apos;s review, fine with me assuming it&apos;s been tested. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476773</commentid>
    <comment_count>21</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-10-02 22:25:11 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; OK.
&gt; 
&gt; Based on this and reed&apos;s review, fine with me assuming it&apos;s been tested. r=me

Thank you for r+. The patch passed trybots(win,win_layout). However, when I tested the patch on WinXP by hand, I saw the text weren&apos;t rendered correctly. I&apos;m investigating the cause and will revise the patch if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477483</commentid>
    <comment_count>22</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-10-04 01:35:20 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; I saw the text weren&apos;t rendered correctly. I&apos;m investigating the cause and will revise the patch if needed.

The problem I found has no relation with this patch. I can reproduce the problem with Chrome canary on WinXP without applying this patch. I filed the bug (http://crbug.com/98855).

I think the patch has no problem for now. I&apos;ll revise the patch for land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477487</commentid>
    <comment_count>23</comment_count>
      <attachid>109592</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-10-04 01:39:14 -0700</bug_when>
    <thetext>Created attachment 109592
Patch for land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477493</commentid>
    <comment_count>24</comment_count>
      <attachid>109595</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-10-04 01:49:50 -0700</bug_when>
    <thetext>Created attachment 109595
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477511</commentid>
    <comment_count>25</comment_count>
      <attachid>109595</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-04 02:53:34 -0700</bug_when>
    <thetext>Comment on attachment 109595
Patch for landing

Rejecting attachment 109595 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

Last 500 characters of output:
aa34921e6d114d98bc0b887e8db48ffa8658d226
r96579 = 4aaff3436823dc2e71b83a7140d7fee690ff859c
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Updating chromium port dependencies using gclient...

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/9935487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477512</commentid>
    <comment_count>26</comment_count>
      <attachid>109600</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-10-04 03:00:23 -0700</bug_when>
    <thetext>Created attachment 109600
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477517</commentid>
    <comment_count>27</comment_count>
      <attachid>109600</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-04 03:15:13 -0700</bug_when>
    <thetext>Comment on attachment 109600
Patch for landing

Clearing flags on attachment: 109600

Committed r96582: &lt;http://trac.webkit.org/changeset/96582&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477518</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-04 03:15:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>477657</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-04 09:53:04 -0700</bug_when>
    <thetext>This patch cause this test to change behavior:

http://trac.webkit.org/changeset/96602

If that change is a problem, please let me know.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103754</attachid>
            <date>2011-08-12 02:11:44 -0700</date>
            <delta_ts>2011-09-02 03:05:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65904-20110812181142.patch</filename>
            <type>text/plain</type>
            <size>13609</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyOTUwKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMTIgIEtlbmljaGkg
SXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1w
bGVtZW50IGZvbnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cy4gY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwgY292ZXJzIHRo
aXMKKwkJCQljaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9V
bmlzY3JpYmVIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVyOjpm
aWxsUnVucyk6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OnNoYXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6ZmlsbFNoYXBlcyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OnJhbmdlUHJvcGVydGllcyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjb252ZXJ0RmVhdHVyZVRhZyk6CisgICAgICAgIChXZWJDb3JlOjpVbmlz
Y3JpYmVIZWxwZXJUZXh0UnVuOjpyYW5nZVByb3BlcnRpZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uaDoKKwogMjAxMS0wOC0x
MCAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWRE
QjogT3ZlcndyaXRpbmcga2V5IGluIHVuaXF1ZSBpbmRleCBzaG91bGQgYmUgcG9zc2libGUKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhl
bHBlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcAkocmV2aXNpb24gOTI5NDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00MzgsNiArNDM4LDkgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXI6OmZp
bGxSdW5zKCkKIHsKICAgICBIUkVTVUxUIGhyOwogICAgIG1fcnVucy5yZXNpemUoVU5JU0NSSUJF
X0hFTFBFUl9TVEFDS19SVU5TKTsKKyNpZmRlZiBVU0VfVU5JU0NSSUJFX09QRU5UWVBFCisgICAg
bV9zY3JpcHRUYWdzLnJlc2l6ZShVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlMpOworI2VuZGlm
CiAKICAgICBTQ1JJUFRfU1RBVEUgaW5wdXRTdGF0ZTsKICAgICBpbnB1dFN0YXRlLnVCaWRpTGV2
ZWwgPSBtX2lzUnRsOwpAQCAtNDkyLDExICs0OTUsMzQgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXI6
OmZpbGxSdW5zKCkKICAgICAgICAgLy8gSXQgc2VlbXMgdG8gYmUgZG9pbmcgYXQgbGVhc3QgdHdv
IHBhc3NlcywgdGhlIGZpcnN0IHdoZXJlIGl0IHB1dHMgYQogICAgICAgICAvLyBsb3Qgb2YgaW50
ZXJtZWRpYXRlIGRhdGEgaW50byBvdXIgaXRlbXMsIGFuZCB0aGUgc2Vjb25kIHdoZXJlIGl0CiAg
ICAgICAgIC8vIGNvbGxhdGVzIHRoZW0uCisjaWZkZWYgVVNFX1VOSVNDUklCRV9PUEVOVFlQRQor
ICAgICAgICBociA9IFNjcmlwdEl0ZW1pemVPcGVuVHlwZShtX2lucHV0LCBtX2lucHV0TGVuZ3Ro
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1f
cnVucy5zaXplKCkpIC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlu
cHV0Q29udHJvbCwgJmlucHV0U3RhdGUsICZtX3J1bnNbMF0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZtX3NjcmlwdFRhZ3NbMF0sICZudW1iZXJPZkl0ZW1zKTsKKyNlbHNl
CiAgICAgICAgIGhyID0gU2NyaXB0SXRlbWl6ZShtX2lucHV0LCBtX2lucHV0TGVuZ3RoLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihtX3J1bnMuc2l6ZSgpKSAt
IDEsICZpbnB1dENvbnRyb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5wdXRTdGF0
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtX3J1bnNbMF0sICZudW1iZXJPZkl0ZW1z
KTsKKyNlbmRpZgogICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgeworI2lmZGVmIFVTRV9VTklT
Q1JJQkVfT1BFTlRZUEUKKyAgICAgICAgICAgIC8vIFBhY2sgcnVucywgdGhlIHNjcmlwdCB0YWcg
b2Ygd2hpY2ggaXMgU0NSSVBUX1RBR19VTktOT1dOLgorICAgICAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBudW1iZXJPZkl0ZW1zOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAobV9zY3Jp
cHRUYWdzW2ldID09IFNDUklQVF9UQUdfVU5LTk9XTikgeworICAgICAgICAgICAgICAgICAgICBp
bnQgaiA9IDE7CisgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpICsgaiA8IG51bWJlck9mSXRl
bXMgJiYgbV9zY3JpcHRUYWdzW2kgKyBqXSA9PSBTQ1JJUFRfVEFHX1VOS05PV04pCisgICAgICAg
ICAgICAgICAgICAgICAgICArK2o7CisgICAgICAgICAgICAgICAgICAgIGlmICgtLWopIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1fcnVucy5yZW1vdmUoaSArIDEsIGopOworICAgICAgICAg
ICAgICAgICAgICAgICAgbV9zY3JpcHRUYWdzLnJlbW92ZShpICsgMSwgaik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBudW1iZXJPZkl0ZW1zIC09IGo7CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX3NjcmlwdFRh
Z3MucmVzaXplKG51bWJlck9mSXRlbXMpOworI2VuZGlmCiAgICAgICAgICAgICBtX3J1bnMucmVz
aXplKG51bWJlck9mSXRlbXMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTUw
Nyw2ICs1MzMsOSBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMoKQogICAgICAgICB9
CiAgICAgICAgIC8vIFRoZXJlIHdhcyBub3QgZW5vdWdoIGl0ZW1zIGZvciBpdCB0byB3cml0ZSBp
bnRvLCBleHBhbmQuCiAgICAgICAgIG1fcnVucy5yZXNpemUobV9ydW5zLnNpemUoKSAqIDIpOwor
I2lmZGVmIFVTRV9VTklTQ1JJQkVfT1BFTlRZUEUKKyAgICAgICAgbV9zY3JpcHRUYWdzLnJlc2l6
ZShtX3J1bnMuc2l6ZSgpKTsKKyNlbmRpZgogICAgIH0KIH0KIApAQCAtNTE0LDYgKzU0Myw5IEBA
IGJvb2wgVW5pc2NyaWJlSGVscGVyOjpzaGFwZShjb25zdCBVQ2hhcioKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbnQgaXRlbUxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgbnVtR2x5cGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDUklQVF9JVEVN
JiBydW4sCisjaWZkZWYgVVNFX1VOSVNDUklCRV9PUEVOVFlQRQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE9QRU5UWVBFX1RBRyBzY3JpcHRUYWcsCisjZW5kaWYKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTaGFwaW5nJiBzaGFwaW5nKQogewogICAgIEhGT05UIGhmb250ID0gbV9o
Zm9udDsKQEAgLTU0MCw2ICs1NzIsMTAgQEAgYm9vbCBVbmlzY3JpYmVIZWxwZXI6OnNoYXBlKGNv
bnN0IFVDaGFyKgogICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgIHNoYXBpbmcubV9sb2dzLnJl
c2l6ZShpdGVtTGVuZ3RoKTsKICAgICAgICAgc2hhcGluZy5tX2dseXBocy5yZXNpemUobnVtR2x5
cGhzKTsKKyNpZmRlZiBVU0VfVU5JU0NSSUJFX09QRU5UWVBFCisgICAgICAgIHNoYXBpbmcubV9j
aGFyUHJvcHMucmVzaXplKGl0ZW1MZW5ndGgpOworICAgICAgICBzaGFwaW5nLm1fZ2x5cGhQcm9w
cy5yZXNpemUobnVtR2x5cGhzKTsKKyNlbmRpZgogICAgICAgICBzaGFwaW5nLm1fdmlzdWFsQXR0
cmlidXRlcy5yZXNpemUobnVtR2x5cGhzKTsKIAogI2lmZGVmIFBVUklGWQpAQCAtNTYyLDEyICs1
OTgsMjIgQEAgYm9vbCBVbmlzY3JpYmVIZWxwZXI6OnNoYXBlKGNvbnN0IFVDaGFyKgogICAgICAg
ICAgICAgICAgICAgIHNpemVvZihzaGFwaW5nLm1fZ2x5cGhzWzBdKSAqIHNoYXBpbmcubV9nbHlw
aHMuc2l6ZSgpKTsKICNlbmRpZgogCisjaWZkZWYgVVNFX1VOSVNDUklCRV9PUEVOVFlQRQorICAg
ICAgICBURVhUUkFOR0VfUFJPUEVSVElFUyogcmFuZ2VQcm9wcyA9IHJhbmdlUHJvcGVydGllcygp
OworICAgICAgICBociA9IFNjcmlwdFNoYXBlT3BlblR5cGUodGVtcERDLCBzY3JpcHRDYWNoZSwg
JnJ1bi5hLCBzY3JpcHRUYWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAm
aXRlbUxlbmd0aCwgJnJhbmdlUHJvcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByYW5nZVByb3BzID8gMSA6IDAsIGlucHV0LCBpdGVtTGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbnVtR2x5cGhzLCAmc2hhcGluZy5tX2xvZ3NbMF0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2NoYXJQcm9wc1swXSwgJnNoYXBp
bmcubV9nbHlwaHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGlu
Zy5tX2dseXBoUHJvcHNbMF0sICZnZW5lcmF0ZWRHbHlwaHMpOworI2Vsc2UKICAgICAgICAgLy8g
RmlyZWZveCBzZXRzIFNDUklQVF9BTkFMWVNJUy5TQ1JJUFRfU1RBVEUuZkRpc3BsYXlaV0cgdG8g
dHJ1ZQogICAgICAgICAvLyBoZXJlLiBJcyB0aGF0IHdoYXQgd2Ugd2FudD8gSXQgd2lsbCBkaXNw
bGF5IGNvbnRyb2wgY2hhcmFjdGVycy4KICAgICAgICAgaHIgPSBTY3JpcHRTaGFwZSh0ZW1wREMs
IHNjcmlwdENhY2hlLCBpbnB1dCwgaXRlbUxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBudW1HbHlwaHMsICZydW4uYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5t
X2dseXBoc1swXSwgJnNoYXBpbmcubV9sb2dzWzBdLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICZzaGFwaW5nLm1fdmlzdWFsQXR0cmlidXRlc1swXSwgJmdlbmVyYXRlZEdseXBocyk7CisjZW5k
aWYKICAgICAgICAgaWYgKGhyID09IEVfUEVORElORykgewogICAgICAgICAgICAgLy8gQWxsb2Nh
dGUgdGhlIERDLgogICAgICAgICAgICAgdGVtcERDID0gR2V0REMoMCk7CkBAIC02NjQsNiArNzEw
LDEyIEBAIGJvb2wgVW5pc2NyaWJlSGVscGVyOjpzaGFwZShjb25zdCBVQ2hhcioKICAgY2xlYW51
cDoKICAgICBzaGFwaW5nLm1fZ2x5cGhzLnJlc2l6ZShnZW5lcmF0ZWRHbHlwaHMpOwogICAgIHNo
YXBpbmcubV92aXN1YWxBdHRyaWJ1dGVzLnJlc2l6ZShnZW5lcmF0ZWRHbHlwaHMpOworI2lmZGVm
IFVTRV9VTklTQ1JJQkVfT1BFTlRZUEUKKyAgICBzaGFwaW5nLm1fZ2x5cGhQcm9wcy5yZXNpemUo
Z2VuZXJhdGVkR2x5cGhzKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGdlbmVyYXRlZEdseXBo
czsgKytpKQorICAgICAgICBtZW1jcHkoJnNoYXBpbmcubV92aXN1YWxBdHRyaWJ1dGVzW2ldLCAm
c2hhcGluZy5tX2dseXBoUHJvcHNbaV0uc3ZhLAorICAgICAgICAgICAgICAgc2l6ZW9mKFNDUklQ
VF9WSVNBVFRSKSk7CisjZW5kaWYKICAgICBzaGFwaW5nLm1fYWR2YW5jZS5yZXNpemUoZ2VuZXJh
dGVkR2x5cGhzKTsKICAgICBzaGFwaW5nLm1fb2Zmc2V0cy5yZXNpemUoZ2VuZXJhdGVkR2x5cGhz
KTsKICAgICBpZiAodGVtcERDKSB7CkBAIC03MDQsNyArNzU2LDExIEBAIHZvaWQgVW5pc2NyaWJl
SGVscGVyOjpmaWxsU2hhcGVzKCkKICAgICAgICAgLy8gQ29udmVydCBhIHN0cmluZyB0byBhIGds
eXBoIHN0cmluZyB0cnlpbmcgdGhlIHByaW1hcnkgZm9udCwgZm9udHMgaW4KICAgICAgICAgLy8g
dGhlIGZhbGxiYWNrIGxpc3QgYW5kIHRoZW4gc2NyaXB0LXNwZWNpZmljIGxhc3QgcmVzb3J0IGZv
bnQuCiAgICAgICAgIFNoYXBpbmcmIHNoYXBpbmcgPSBtX3NoYXBlc1tpXTsKKyNpZmRlZiBVU0Vf
VU5JU0NSSUJFX09QRU5UWVBFCisgICAgICAgIGlmICghc2hhcGUoJm1faW5wdXRbc3RhcnRJdGVt
XSwgaXRlbUxlbmd0aCwgbnVtR2x5cGhzLCBtX3J1bnNbaV0sIG1fc2NyaXB0VGFnc1tpXSwgc2hh
cGluZykpCisjZWxzZQogICAgICAgICBpZiAoIXNoYXBlKCZtX2lucHV0W3N0YXJ0SXRlbV0sIGl0
ZW1MZW5ndGgsIG51bUdseXBocywgbV9ydW5zW2ldLCBzaGFwaW5nKSkKKyNlbmRpZgogICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gQXQgdGhlIG1vbWVudCwgdGhlIG9ubHkgdGlt
ZSBtX2Rpc2FibGVGb250RmFsbGJhY2sgaXMgc2V0IGlzCkBAIC03MjUsMTIgKzc4MSwyOCBAQCB2
b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFNoYXBlcygpCiAgICAgICAgIEhSRVNVTFQgaHI7CiAg
ICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAgICBzaGFwaW5nLm1fcHJlUGFkZGluZyA9
IDA7CisjaWZkZWYgVVNFX1VOSVNDUklCRV9PUEVOVFlQRQorICAgICAgICAgICAgVEVYVFJBTkdF
X1BST1BFUlRJRVMqIHJhbmdlUHJvcHMgPSByYW5nZVByb3BlcnRpZXMoKTsKKyAgICAgICAgICAg
IGhyID0gU2NyaXB0UGxhY2VPcGVuVHlwZSh0ZW1wREMsIHNoYXBpbmcubV9zY3JpcHRDYWNoZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9ydW5zW2ldLmEsIG1fc2Ny
aXB0VGFnc1tpXSwgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaXRl
bUxlbmd0aCwgJnJhbmdlUHJvcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmFuZ2VQcm9wcyA/IDEgOiAwLCAmbV9pbnB1dFtzdGFydEl0ZW1dLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fbG9nc1swXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2NoYXJQcm9wc1swXSwgaXRlbUxl
bmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2ds
eXBoc1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5t
X2dseXBoUHJvcHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8aW50PihzaGFwaW5nLm1fZ2x5cGhzLnNpemUoKSksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJnNoYXBpbmcubV9hZHZhbmNlWzBdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fb2Zmc2V0c1swXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2FiYyk7CisjZWxzZQogICAg
ICAgICAgICAgaHIgPSBTY3JpcHRQbGFjZSh0ZW1wREMsIHNoYXBpbmcubV9zY3JpcHRDYWNoZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXBpbmcubV9nbHlwaHNbMF0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oc2hhcGluZy5tX2dseXBo
cy5zaXplKCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX3Zpc3Vh
bEF0dHJpYnV0ZXNbMF0sICZtX3J1bnNbaV0uYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJnNoYXBpbmcubV9hZHZhbmNlWzBdLCAmc2hhcGluZy5tX29mZnNldHNbMF0sCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fYWJjKTsKKyNlbmRpZgogICAgICAgICAg
ICAgaWYgKGhyICE9IEVfUEVORElORykKICAgICAgICAgICAgICAgICBicmVhazsKIApAQCAtNzQz
LDYgKzgxNSw5IEBAIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsU2hhcGVzKCkKICAgICAgICAg
ICAgIC8vIFNvbWUgZXJyb3Igd2UgZG9uJ3Qga25vdyBob3cgdG8gaGFuZGxlLiBOdWtlIGFsbCBv
ZiBvdXIgZGF0YQogICAgICAgICAgICAgLy8gc2luY2Ugd2UgY2FuJ3QgZGVhbCB3aXRoIHBhcnRp
YWxseSB2YWxpZCBkYXRhIGxhdGVyLgogICAgICAgICAgICAgbV9ydW5zLmNsZWFyKCk7CisjaWZk
ZWYgVVNFX1VOSVNDUklCRV9PUEVOVFlQRQorICAgICAgICAgICAgbV9zY3JpcHRUYWdzLmNsZWFy
KCk7CisjZW5kaWYKICAgICAgICAgICAgIG1fc2hhcGVzLmNsZWFyKCk7CiAgICAgICAgICAgICBt
X3NjcmVlbk9yZGVyLmNsZWFyKCk7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBl
ci5oCShyZXZpc2lvbiA5Mjk0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw5
IEBACiAjaW5jbHVkZSA8dW5pY29kZS91Y2hhci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IAorLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1hY3JvIHdoZW4gdGhlIHBhdGNoIGdldCByZWFkeSB0
byByZXZpZXcuCisjZGVmaW5lIFVTRV9VTklTQ1JJQkVfT1BFTlRZUEUgVU5JU0NSSUJFX09QRU5U
WVBFCisKIGNsYXNzIFVuaXNjcmliZVRlc3RfVG9vQmlnX1Rlc3Q7ICAvLyBBIGd1bml0IHRlc3Qg
Zm9yIFVuaXNjcmliZUhlbHBlci4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjE0LDYgKzIx
NywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgLy8gVGhpcyBpcyB0aGUgZGVmYXVsdCBpbXBsZW1lbnRh
dGlvbiBhbmQgaXQgZG9lcyBub3QgZG8gYW55dGhpbmcuCiAgICAgdmlydHVhbCB2b2lkIHRyeVRv
UHJlbG9hZEZvbnQoSEZPTlQpIHt9CiAKKyNpZmRlZiBVU0VfVU5JU0NSSUJFX09QRU5UWVBFCisg
ICAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciB0byBhIFRFWFRSQU5HRV9QUk9QRVJUSUVTIHN0cnVj
dHVyZSB3aGljaCBjb250YWlucworICAgIC8vIE9wZW5UeXBlIGZlYXR1cmUgcmVjb3JkcyBnZW5l
cmF0ZWQgZnJvbSBGb250RGVzY3JpcHRpb24uIFJldHVybiB2YWx1ZQorICAgIC8vIGNvdWxkIGJl
IDAuCisgICAgdmlydHVhbCBURVhUUkFOR0VfUFJPUEVSVElFUyogcmFuZ2VQcm9wZXJ0aWVzKCkg
eyByZXR1cm4gMDsgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFVuaXNj
cmliZVRlc3RfVG9vQmlnX1Rlc3Q7CiAKQEAgLTI4MCw2ICsyOTAsMTAgQEAgcHJpdmF0ZToKICAg
ICAgICAgLy8gZ2x5cGhzLCBpbiB3aGljaCBjYXNlIHRoZXJlIHdpbGwgYmUgc2tpcHBlZCBpbmRp
Y2VzIGluIHRoaXMgbGlzdC4KICAgICAgICAgVmVjdG9yPFdPUkQsIFVOSVNDUklCRV9IRUxQRVJf
U1RBQ0tfQ0hBUlM+IG1fbG9nczsKIAorI2lmZGVmIFVTRV9VTklTQ1JJQkVfT1BFTlRZUEUKKyAg
ICAgICAgVmVjdG9yPFNDUklQVF9DSEFSUFJPUCwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFS
Uz4gbV9jaGFyUHJvcHM7CisgICAgICAgIFZlY3RvcjxTQ1JJUFRfR0xZUEhQUk9QLCBVTklTQ1JJ
QkVfSEVMUEVSX1NUQUNLX0NIQVJTPiBtX2dseXBoUHJvcHM7CisjZW5kaWYKICAgICAgICAgLy8g
RmxhZ3MgYW5kIHN1Y2ggZm9yIGVhY2ggZ2x5cGguCiAgICAgICAgIFZlY3RvcjxTQ1JJUFRfVklT
QVRUUiwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gbV92aXN1YWxBdHRyaWJ1dGVzOwog
CkBAIC0zNTgsNyArMzcyLDExIEBAIHByaXZhdGU6CiAgICAgLy8gYnkgfGlucHV0fCBjb21lcyBm
cm9tIFNjcmlwdEl0ZW1pemUgYW5kIGlzIHN1cHBvc2VkIHRvIGNvbnRhaW4KICAgICAvLyBjaGFy
YWN0ZXJzIGJlbG9uZ2luZyB0byBhIHNpbmdsZSBzY3JpcHQgYXNpZGUgZnJvbSBjaGFyYWN0ZXJz
IGNvbW1vbiB0bwogICAgIC8vIGFsbCBzY3JpcHRzIChlLmcuIHNwYWNlKS4KKyNpZmRlZiBVU0Vf
VU5JU0NSSUJFX09QRU5UWVBFCisgICAgYm9vbCBzaGFwZShjb25zdCBVQ2hhciogaW5wdXQsIGlu
dCBpdGVtTGVuZ3RoLCBpbnQgbnVtR2x5cGhzLCBTQ1JJUFRfSVRFTSYgcnVuLCBPUEVOVFlQRV9U
QUcsIFNoYXBpbmcmKTsKKyNlbHNlCiAgICAgYm9vbCBzaGFwZShjb25zdCBVQ2hhciogaW5wdXQs
IGludCBpdGVtTGVuZ3RoLCBpbnQgbnVtR2x5cGhzLCBTQ1JJUFRfSVRFTSYgcnVuLCBTaGFwaW5n
Jik7CisjZW5kaWYKIAogICAgIC8vIEdldHMgV2luZG93cyBmb250IGRhdGEgZm9yIHRoZSBuZXh0
IGJlc3QgZm9udCB0byB0cnkgaW4gdGhlIGxpc3QKICAgICAvLyBvZiBmb250cy4gV2hlbiB0aGVy
ZSdzIG5vIG1vcmUgZm9udCBhdmFpbGFibGUsIHJldHVybnMgZmFsc2UKQEAgLTQxNyw2ICs0MzUs
MTAgQEAgcHJpdmF0ZToKICAgICAvLyBnaXZlcyB0aGUgaW5kZXggaW50byB0aGUgfG1fcnVuc3wg
YW5kIHxtX3NoYXBlc3wgYXJyYXlzIG9mIGVhY2gKICAgICAvLyBzdWJzZXF1ZW50IGl0ZW0uCiAg
ICAgVmVjdG9yPGludCwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TPiBtX3NjcmVlbk9yZGVy
OworCisjaWZkZWYgVVNFX1VOSVNDUklCRV9PUEVOVFlQRQorICAgIFZlY3RvcjxPUEVOVFlQRV9U
QUcsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfUlVOUz4gbV9zY3JpcHRUYWdzOworI2VuZGlmCiB9
OwogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJl
SGVscGVyVGV4dFJ1bi5jcHAJKHJldmlzaW9uIDkyOTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNyw0ICsxMzcsMzIgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXJUZXh0UnVu
OjpyZXNldEZvbnRJbgogICAgIG1fZm9udEluZGV4ID0gMDsKIH0KIAorI2lmZGVmIFVTRV9VTklT
Q1JJQkVfT1BFTlRZUEUKKworc3RhdGljIE9QRU5UWVBFX1RBRyBjb252ZXJ0RmVhdHVyZVRhZyhj
b25zdCBTdHJpbmcmIHRhZykKK3sKKyAgICByZXR1cm4gKCh0YWdbMF0mMHhGRikgfCAoKHRhZ1sx
XSYweEZGKSA8PCA4KSB8ICgodGFnWzJdJjB4RkYpIDw8IDE2KSB8ICgodGFnWzNdJjB4RkYpIDw8
IDI0KSk7Cit9CisKK1RFWFRSQU5HRV9QUk9QRVJUSUVTKiBVbmlzY3JpYmVIZWxwZXJUZXh0UnVu
OjpyYW5nZVByb3BlcnRpZXMoKQoreworICAgIGlmICghbV9mb250KQorICAgICAgICByZXR1cm4g
MDsKKworICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVTZXR0aW5ncyA9IG1fZm9udC0+
Zm9udERlc2NyaXB0aW9uKCkuZmVhdHVyZVNldHRpbmdzKCk7CisgICAgaWYgKCFmZWF0dXJlU2V0
dGluZ3MgfHwgIWZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgpKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIG1fZmVhdHVyZVJlY29yZHMucmVzaXplKGZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgpKTsKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmVhdHVyZVNldHRpbmdzLT5zaXplKCk7ICsraSkg
eworICAgICAgICBtX2ZlYXR1cmVSZWNvcmRzW2ldLmxQYXJhbWV0ZXIgPSBmZWF0dXJlU2V0dGlu
Z3MtPmF0KGkpLnZhbHVlKCk7CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHNbaV0udGFnRmVhdHVy
ZSA9IGNvbnZlcnRGZWF0dXJlVGFnKGZlYXR1cmVTZXR0aW5ncy0+YXQoaSkudGFnKCkpOworICAg
IH0KKyAgICBtX3JhbmdlUHJvcGVydGllcy5wb3RmUmVjb3JkcyA9ICZtX2ZlYXR1cmVSZWNvcmRz
WzBdOworICAgIG1fcmFuZ2VQcm9wZXJ0aWVzLmNvdGZSZWNvcmRzID0gbV9mZWF0dXJlUmVjb3Jk
cy5zaXplKCk7CisKKyAgICByZXR1cm4gJm1fcmFuZ2VQcm9wZXJ0aWVzOworfQorI2VuZGlmCisK
IH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVy
VGV4dFJ1bi5oCShyZXZpc2lvbiA5Mjk0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uaAkod29ya2luZyBjb3B5KQpA
QCAtNjksNiArNjksMTAgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgbmV4dFdpbkZvbnRE
YXRhKEhGT05UKiwgU0NSSVBUX0NBQ0hFKiosIFNDUklQVF9GT05UUFJPUEVSVElFUyoqLCBpbnQq
IGFzY2VudCk7CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0Rm9udEluZGV4KCk7CiAKKyNpZmRlZiBV
U0VfVU5JU0NSSUJFX09QRU5UWVBFCisgICAgdmlydHVhbCBURVhUUkFOR0VfUFJPUEVSVElFUyog
cmFuZ2VQcm9wZXJ0aWVzKCk7CisjZW5kaWYKKwogICAgIC8vIFJlZmVyZW5jZSB0byBXZWJLaXQ6
OkZvbnQgdGhhdCBjb250YWlucyBhbGwgdGhlIGluZm9ybWF0aW9uIGFib3V0IGZvbnRzCiAgICAg
Ly8gd2UgY2FuIHVzZSB0byByZW5kZXIgdGhpcyBpbnB1dCBydW4gb2YgdGV4dC4gIEl0IGlzIHVz
ZWQgaW4KICAgICAvLyBOZXh0V2luRm9udERhdGEgdG8gcmV0cmlldmUgV2luZG93cyBmb250IGRh
dGEgZm9yIGEgc2VyaWVzIG9mCkBAIC04OSw2ICs5MywxMiBAQCBwcml2YXRlOgogCiAgICAgLy8g
SW5kZXggb2YgdGhlIGZhbGxiYWNrIGZvbnQgd2UncmUgY3VycmVudGx5IHVzaW5nIGZvciBOZXh0
V2luRm9udERhdGEuCiAgICAgaW50IG1fZm9udEluZGV4OworCisjaWZkZWYgVVNFX1VOSVNDUklC
RV9PUEVOVFlQRQorI2RlZmluZSBVTklTQ1JJQkVfSEVMUEVSX0ZFQVRVUkVTIDQKKyAgICBURVhU
UkFOR0VfUFJPUEVSVElFUyBtX3JhbmdlUHJvcGVydGllczsKKyAgICBWZWN0b3I8T1BFTlRZUEVf
RkVBVFVSRV9SRUNPUkQsIFVOSVNDUklCRV9IRUxQRVJfRkVBVFVSRVM+IG1fZmVhdHVyZVJlY29y
ZHM7CisjZW5kaWYKIH07CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106109</attachid>
            <date>2011-09-02 03:05:38 -0700</date>
            <delta_ts>2011-09-05 18:57:34 -0700</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug-65904-20110902190536.patch</filename>
            <type>text/plain</type>
            <size>15470</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQzOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NDBkN2JjNGQ2ZjQzYmQz
NjZlYzA0NmYzZTVlMjViZTA3Mzc1NDljLi5lNmNlYTE2MzM2NjM0MmMyZjM2NTIzYTM3MjhkOWEy
NTJmMmZmNzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDktMDIgIEtlbmlj
aGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0g
SW1wbGVtZW50IGZvbnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5k
b3dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkw
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBV
bmlzY3JpYmUncyBPcGVuVHlwZSBBUElzIHRvIHNoYXBlIGNvbXBsZXggdGV4dCB0byBzdXBwb3J0
IC13ZWJraXQtZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwgc2hvdWxk
IHBhc3MgYnkgdGhpcyBwYXRjaC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1VuaXNjcmliZUhlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2FkT3BlblR5cGVG
dW5jdGlvbnMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6VW5p
c2NyaWJlSGVscGVyKTogQ2FsbHMgbG9hZE9wZW5UeXBlRnVuY3Rpb25zIGlmIG5lZWRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMpOiBVc2VzIFNjcmlwdEl0
ZW1pemVPcGVuVHlwZSgpIGlmIHBvc3NpYmxlLgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJl
SGVscGVyOjpzaGFwZSk6IFVzZXMgU2NyaXB0U2hhcGVPcGVuVHlwZSgpIGlmIHBvc3NpYmxlLgor
ICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVyOjpmaWxsU2hhcGVzKTogQWRkcyBPcGVu
VHlwZSBzY3JpcHQgdGFnIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Y29udmVy
dEZlYXR1cmVUYWcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6
c2V0UmFuZ2VQcm9wZXJ0aWVzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpV
bmlzY3JpYmVIZWxwZXJUZXh0UnVuOjpVbmlzY3JpYmVIZWxwZXJUZXh0UnVuKTogQ2FsbHMgc2V0
UmFuZ2VQcm9wZXJ0aWVzKCkuCisKIDIwMTEtMDktMDIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdW1dLMl0gVW5yZXZpZXdlZCBzcGVjdWxhdGl2
ZSBidWlsZGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwCmluZGV4IDM4ZDc0YjdlNzQ4MGFk
NjkwYmUzZTAzMzhjODQzYjdiOGJjNTVhMjEuLjk1NWQ2ZmEzMTJiZjE1MDllMDVmMTQ3MjY5M2Fh
YzJkN2Q0OWRkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcApAQCAtNDEsNiArNDEsNDAg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBUaGUgZnVuY3Rpb24gdHlwZXMgZm9yIFNj
cmlwdEl0ZW1pemVPcGVuVHlwZSgpIGFuZCBTY3JpcHRTaGFwZU9wZW5UeXBlKCkuCisvLyBXZSB3
YW50IHRvIHVzZSB0aGVzZSBmdW5jdGlvbnMgZm9yIE9wZW5UeXBlIGZlYXR1cmUgc3VwcG9ydCwg
YnV0IHdlIGNhbid0CisvLyBjYWxsIHRoZW0gZGlyZWN0bHkgYmVjYXVzZSB1c3AxMC5kbGwgZG9l
cyBub3QgYWx3YXlzIGhhdmUgdGhlbS4KKy8vIEluc3RlYWQsIHdlIHVzZSBHZXRQcm9jQWRkcmVz
cygpIHRvIGNoZWNrIHdoZXRoZXIgd2UgY2FuIGFjdHVhbGx5IHVzZSB0aGVzZQorLy8gZnVuY3Rp
b24uIElmIHdlIGNhbid0IHVzZSB0aGVzZSBmdW5jdGlvbnMsIHdlIHN1YnN0aXR1dGUgU2NyaXB0
SXRlbXplKCkgYW5kCisvLyBTY3JpcHRTaGFwZSgpLgordHlwZWRlZiBIUkVTVUxUIChXSU5BUEkg
KlNjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMpKGNvbnN0IFdDSEFSKiwgaW50LCBpbnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU0NS
SVBUX0NPTlRST0wqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFNDUklQVF9TVEFURSosCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NSSVBUX0lURU0qLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5UWVBFX1RBRyosIGludCop
OwordHlwZWRlZiBIUkVTVUxUIChXSU5BUEkgKlNjcmlwdFNoYXBlT3BlblR5cGVGdW5jKShIREMs
IFNDUklQVF9DQUNIRSosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNDUklQVF9BTkFMWVNJUyosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE9QRU5UWVBFX1RBRywgT1BFTlRZUEVfVEFHLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqLCBURVhUUkFO
R0VfUFJPUEVSVElFUyoqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQsIGNvbnN0IFdDSEFSKiwgaW50LCBpbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdPUkQqLCBTQ1JJUFRfQ0hBUlBST1Aq
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXT1JE
KiwgU0NSSVBUX0dMWVBIUFJPUCosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCopOworCitzdGF0aWMgU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVu
YyBzU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYyA9IDA7CitzdGF0aWMgU2NyaXB0U2hhcGVPcGVu
VHlwZUZ1bmMgc1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jID0gMDsKK3N0YXRpYyBib29sIHNPcGVu
VHlwZUZ1bmN0aW9uc0xvYWRlZCA9IGZhbHNlOworCitzdGF0aWMgdm9pZCBsb2FkT3BlblR5cGVG
dW5jdGlvbnMoKQoreworICAgIEhNT0RVTEUgaE1vZHVsZSA9IEdldE1vZHVsZUhhbmRsZShMInVz
cDEwIik7CisgICAgaWYgKGhNb2R1bGUpIHsKKyAgICAgICAgc1NjcmlwdEl0ZW1pemVPcGVuVHlw
ZUZ1bmMgPSByZWludGVycHJldF9jYXN0PFNjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmM+KEdldFBy
b2NBZGRyZXNzKGhNb2R1bGUsICJTY3JpcHRJdGVtaXplT3BlblR5cGUiKSk7CisgICAgICAgIHNT
Y3JpcHRTaGFwZU9wZW5UeXBlRnVuYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8U2NyaXB0U2hhcGVPcGVu
VHlwZUZ1bmM+KEdldFByb2NBZGRyZXNzKGhNb2R1bGUsICJTY3JpcHRTaGFwZU9wZW5UeXBlIikp
OworICAgIH0KKyAgICBzT3BlblR5cGVGdW5jdGlvbnNMb2FkZWQgPSB0cnVlOworfQorCiAvLyBI
Rk9OVCBpcyB0aGUgJ2luY2FybmF0aW9uJyBvZiAnZXZlcnl0aGluZycgYWJvdXQgZm9udCwgYnV0
IGl0J3MgYW4gb3BhcXVlCiAvLyBoYW5kbGUgYW5kIHdlIGNhbid0IGRpcmVjdGx5IHF1ZXJ5IGl0
IHRvIG1ha2UgYSBuZXcgSEZPTlQgc2hhcmluZwogLy8gaXRzIGNoYXJhY3RlcmlzdGljcyAoaGVp
Z2h0LCBzdHlsZSwgZXRjKSBleGNlcHQgZm9yIGZhbWlseSBuYW1lLgpAQCAtOTIsNiArMTI2LDgg
QEAgVW5pc2NyaWJlSGVscGVyOjpVbmlzY3JpYmVIZWxwZXIoY29uc3QgVUNoYXIqIGlucHV0LAog
CiB7CiAgICAgbV9sb2dmb250LmxmRmFjZU5hbWVbMF0gPSAwOworICAgIGlmICghc09wZW5UeXBl
RnVuY3Rpb25zTG9hZGVkKQorICAgICAgICBsb2FkT3BlblR5cGVGdW5jdGlvbnMoKTsKIH0KIAog
VW5pc2NyaWJlSGVscGVyOjp+VW5pc2NyaWJlSGVscGVyKCkKQEAgLTQzOCw2ICs0NzQsNyBAQCB2
b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMoKQogewogICAgIEhSRVNVTFQgaHI7CiAgICAg
bV9ydW5zLnJlc2l6ZShVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlMpOworICAgIG1fc2NyaXB0
VGFncy5yZXNpemUoVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TKTsKIAogICAgIFNDUklQVF9T
VEFURSBpbnB1dFN0YXRlOwogICAgIGlucHV0U3RhdGUudUJpZGlMZXZlbCA9IG1faXNSdGw7CkBA
IC00OTIsMTAgKzUyOSwzNSBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMoKQogICAg
ICAgICAvLyBJdCBzZWVtcyB0byBiZSBkb2luZyBhdCBsZWFzdCB0d28gcGFzc2VzLCB0aGUgZmly
c3Qgd2hlcmUgaXQgcHV0cyBhCiAgICAgICAgIC8vIGxvdCBvZiBpbnRlcm1lZGlhdGUgZGF0YSBp
bnRvIG91ciBpdGVtcywgYW5kIHRoZSBzZWNvbmQgd2hlcmUgaXQKICAgICAgICAgLy8gY29sbGF0
ZXMgdGhlbS4KLSAgICAgICAgaHIgPSBTY3JpcHRJdGVtaXplKG1faW5wdXQsIG1faW5wdXRMZW5n
dGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fcnVucy5z
aXplKCkpIC0gMSwgJmlucHV0Q29udHJvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZp
bnB1dFN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1fcnVuc1swXSwgJm51bWJl
ck9mSXRlbXMpOworICAgICAgICBpZiAoc1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMpIHsKKyAg
ICAgICAgICAgIGhyID0gc1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMobV9pbnB1dCwgbV9pbnB1
dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
dGljX2Nhc3Q8aW50PihtX3J1bnMuc2l6ZSgpKSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICZpbnB1dENvbnRyb2wsICZpbnB1dFN0YXRlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9ydW5zWzBdLCAmbV9zY3Jp
cHRUYWdzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
bnVtYmVyT2ZJdGVtcyk7CisgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgeworICAgICAg
ICAgICAgICAgIC8vIFBhY2sgY29uc2VjdXRpdmUgcnVucywgdGhlIHNjcmlwdCB0YWcgb2Ygd2hp
Y2ggYXJlCisgICAgICAgICAgICAgICAgLy8gU0NSSVBUX1RBR19VTktOT1dOLCB0byByZWR1Y2Ug
dGhlIG51bWJlciBvZiBydW5zLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bnVtYmVyT2ZJdGVtczsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3NjcmlwdFRh
Z3NbaV0gPT0gU0NSSVBUX1RBR19VTktOT1dOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgaiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSArIGogPCBudW1iZXJP
Zkl0ZW1zICYmIG1fc2NyaXB0VGFnc1tpICsgal0gPT0gU0NSSVBUX1RBR19VTktOT1dOKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgtLWopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3J1bnMucmVtb3ZlKGkgKyAx
LCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdFRhZ3MucmVtb3ZlKGkg
KyAxLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkl0ZW1zIC09IGo7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9zY3JpcHRUYWdzLnJlc2l6ZShudW1iZXJP
Zkl0ZW1zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhy
ID0gU2NyaXB0SXRlbWl6ZShtX2lucHV0LCBtX2lucHV0TGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9ydW5zLnNpemUoKSkgLSAxLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbnB1dENvbnRyb2wsICZpbnB1dFN0YXRlLCAm
bV9ydW5zWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZudW1iZXJPZkl0ZW1z
KTsKKyAgICAgICAgfQogICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgewogICAgICAgICAgICAg
bV9ydW5zLnJlc2l6ZShudW1iZXJPZkl0ZW1zKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTA3
LDYgKzU2OSw3IEBAIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsUnVucygpCiAgICAgICAgIH0K
ICAgICAgICAgLy8gVGhlcmUgd2FzIG5vdCBlbm91Z2ggaXRlbXMgZm9yIGl0IHRvIHdyaXRlIGlu
dG8sIGV4cGFuZC4KICAgICAgICAgbV9ydW5zLnJlc2l6ZShtX3J1bnMuc2l6ZSgpICogMik7Cisg
ICAgICAgIG1fc2NyaXB0VGFncy5yZXNpemUobV9ydW5zLnNpemUoKSk7CiAgICAgfQogfQogCkBA
IC01MTQsMTEgKzU3NywxNCBAQCBib29sIFVuaXNjcmliZUhlbHBlcjo6c2hhcGUoY29uc3QgVUNo
YXIqIGlucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVtTGVuZ3RoLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1HbHlwaHMsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU0NSSVBUX0lURU0mIHJ1biwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBPUEVOVFlQRV9UQUcgc2NyaXB0VGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFNoYXBpbmcmIHNoYXBpbmcpCiB7CiAgICAgSEZPTlQgaGZvbnQgPSBtX2hmb250OwogICAgIFND
UklQVF9DQUNIRSogc2NyaXB0Q2FjaGUgPSBtX3NjcmlwdENhY2hlOwogICAgIFNDUklQVF9GT05U
UFJPUEVSVElFUyogZm9udFByb3BlcnRpZXMgPSBtX2ZvbnRQcm9wZXJ0aWVzOworICAgIFZlY3Rv
cjxTQ1JJUFRfQ0hBUlBST1AsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IGNoYXJQcm9w
czsKKyAgICBWZWN0b3I8U0NSSVBUX0dMWVBIUFJPUCwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19D
SEFSUz4gZ2x5cGhQcm9wczsKICAgICBpbnQgYXNjZW50ID0gbV9hc2NlbnQ7CiAgICAgV09SRCBz
cGFjZUdseXBoID0gbV9zcGFjZUdseXBoOwogICAgIEhEQyB0ZW1wREMgPSAwOwpAQCAtNTQxLDYg
KzYwNyw4IEBAIGJvb2wgVW5pc2NyaWJlSGVscGVyOjpzaGFwZShjb25zdCBVQ2hhciogaW5wdXQs
CiAgICAgICAgIHNoYXBpbmcubV9sb2dzLnJlc2l6ZShpdGVtTGVuZ3RoKTsKICAgICAgICAgc2hh
cGluZy5tX2dseXBocy5yZXNpemUobnVtR2x5cGhzKTsKICAgICAgICAgc2hhcGluZy5tX3Zpc3Vh
bEF0dHJpYnV0ZXMucmVzaXplKG51bUdseXBocyk7CisgICAgICAgIGNoYXJQcm9wcy5yZXNpemUo
aXRlbUxlbmd0aCk7CisgICAgICAgIGdseXBoUHJvcHMucmVzaXplKG51bUdseXBocyk7CiAKICNp
ZmRlZiBQVVJJRlkKICAgICAgICAgLy8gaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVt
L2lzc3Vlcy9kZXRhaWw/aWQ9NTMwOQpAQCAtNTYxLDEzICs2MjksMjMgQEAgYm9vbCBVbmlzY3Jp
YmVIZWxwZXI6OnNoYXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwKICAgICAgICAgWmVyb01lbW9yeSgm
c2hhcGluZy5tX2dseXBoc1swXSwKICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc2hhcGluZy5t
X2dseXBoc1swXSkgKiBzaGFwaW5nLm1fZ2x5cGhzLnNpemUoKSk7CiAjZW5kaWYKLQogICAgICAg
ICAvLyBGaXJlZm94IHNldHMgU0NSSVBUX0FOQUxZU0lTLlNDUklQVF9TVEFURS5mRGlzcGxheVpX
RyB0byB0cnVlCiAgICAgICAgIC8vIGhlcmUuIElzIHRoYXQgd2hhdCB3ZSB3YW50PyBJdCB3aWxs
IGRpc3BsYXkgY29udHJvbCBjaGFyYWN0ZXJzLgotICAgICAgICBociA9IFNjcmlwdFNoYXBlKHRl
bXBEQywgc2NyaXB0Q2FjaGUsIGlucHV0LCBpdGVtTGVuZ3RoLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIG51bUdseXBocywgJnJ1bi5hLAotICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFw
aW5nLm1fZ2x5cGhzWzBdLCAmc2hhcGluZy5tX2xvZ3NbMF0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJnNoYXBpbmcubV92aXN1YWxBdHRyaWJ1dGVzWzBdLCAmZ2VuZXJhdGVkR2x5cGhzKTsK
KyAgICAgICAgaWYgKHNTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYykgeworICAgICAgICAgICAgVEVY
VFJBTkdFX1BST1BFUlRJRVMqIHJhbmdlUHJvcHMgPSBtX2ZlYXR1cmVSZWNvcmRzLnNpemUoKSA/
ICZtX3JhbmdlUHJvcGVydGllcyA6IDA7CisgICAgICAgICAgICBociA9IHNTY3JpcHRTaGFwZU9w
ZW5UeXBlRnVuYyh0ZW1wREMsIHNjcmlwdENhY2hlLCAmcnVuLmEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRUYWcsIDAsICZpdGVtTGVuZ3RoLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJhbmdlUHJvcHMsIHJhbmdl
UHJvcHMgPyAxIDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlucHV0LCBpdGVtTGVuZ3RoLCBudW1HbHlwaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2xvZ3NbMF0sICZjaGFyUHJvcHNbMF0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2dseXBoc1sw
XSwgJmdseXBoUHJvcHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmZ2VuZXJhdGVkR2x5cGhzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhy
ID0gU2NyaXB0U2hhcGUodGVtcERDLCBzY3JpcHRDYWNoZSwgaW5wdXQsIGl0ZW1MZW5ndGgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bUdseXBocywgJnJ1bi5hLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2dseXBoc1swXSwgJnNoYXBpbmcubV9sb2dz
WzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX3Zpc3VhbEF0dHJp
YnV0ZXNbMF0sICZnZW5lcmF0ZWRHbHlwaHMpOworICAgICAgICB9CiAgICAgICAgIGlmIChociA9
PSBFX1BFTkRJTkcpIHsKICAgICAgICAgICAgIC8vIEFsbG9jYXRlIHRoZSBEQy4KICAgICAgICAg
ICAgIHRlbXBEQyA9IEdldERDKDApOwpAQCAtNjY0LDYgKzc0MiwxNCBAQCBib29sIFVuaXNjcmli
ZUhlbHBlcjo6c2hhcGUoY29uc3QgVUNoYXIqIGlucHV0LAogICBjbGVhbnVwOgogICAgIHNoYXBp
bmcubV9nbHlwaHMucmVzaXplKGdlbmVyYXRlZEdseXBocyk7CiAgICAgc2hhcGluZy5tX3Zpc3Vh
bEF0dHJpYnV0ZXMucmVzaXplKGdlbmVyYXRlZEdseXBocyk7CisgICAgLy8gSWYgd2UgdXNlIFNj
cmlwdFNoYXBlT3BlblR5cGUoKSwgdmlzdWFsIGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gZm9yIGVh
Y2gKKyAgICAvLyBjaGFyYWN0ZXJzIGFyZSBzdG9yZWQgaW4gfGdseXBoUHJvcHNbaV0uc3ZhfC4K
KyAgICBpZiAoc1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jKSB7CisgICAgICAgIGZvciAoaW50IGkg
PSAwOyBpIDwgZ2VuZXJhdGVkR2x5cGhzOyArK2kpIHsKKyAgICAgICAgICAgIG1lbWNweSgmc2hh
cGluZy5tX3Zpc3VhbEF0dHJpYnV0ZXNbaV0sICZnbHlwaFByb3BzW2ldLnN2YSwKKyAgICAgICAg
ICAgICAgICAgICBzaXplb2YoU0NSSVBUX1ZJU0FUVFIpKTsKKyAgICAgICAgfQorICAgIH0KICAg
ICBzaGFwaW5nLm1fYWR2YW5jZS5yZXNpemUoZ2VuZXJhdGVkR2x5cGhzKTsKICAgICBzaGFwaW5n
Lm1fb2Zmc2V0cy5yZXNpemUoZ2VuZXJhdGVkR2x5cGhzKTsKICAgICBpZiAodGVtcERDKSB7CkBA
IC03MDQsNyArNzkwLDcgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXI6OmZpbGxTaGFwZXMoKQogICAg
ICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgZ2x5cGggc3RyaW5nIHRyeWluZyB0aGUgcHJp
bWFyeSBmb250LCBmb250cyBpbgogICAgICAgICAvLyB0aGUgZmFsbGJhY2sgbGlzdCBhbmQgdGhl
biBzY3JpcHQtc3BlY2lmaWMgbGFzdCByZXNvcnQgZm9udC4KICAgICAgICAgU2hhcGluZyYgc2hh
cGluZyA9IG1fc2hhcGVzW2ldOwotICAgICAgICBpZiAoIXNoYXBlKCZtX2lucHV0W3N0YXJ0SXRl
bV0sIGl0ZW1MZW5ndGgsIG51bUdseXBocywgbV9ydW5zW2ldLCBzaGFwaW5nKSkKKyAgICAgICAg
aWYgKCFzaGFwZSgmbV9pbnB1dFtzdGFydEl0ZW1dLCBpdGVtTGVuZ3RoLCBudW1HbHlwaHMsIG1f
cnVuc1tpXSwgbV9zY3JpcHRUYWdzW2ldLCBzaGFwaW5nKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIC8vIEF0IHRoZSBtb21lbnQsIHRoZSBvbmx5IHRpbWUgbV9kaXNhYmxlRm9u
dEZhbGxiYWNrIGlzIHNldCBpcwpAQCAtNzQzLDYgKzgyOSw3IEBAIHZvaWQgVW5pc2NyaWJlSGVs
cGVyOjpmaWxsU2hhcGVzKCkKICAgICAgICAgICAgIC8vIFNvbWUgZXJyb3Igd2UgZG9uJ3Qga25v
dyBob3cgdG8gaGFuZGxlLiBOdWtlIGFsbCBvZiBvdXIgZGF0YQogICAgICAgICAgICAgLy8gc2lu
Y2Ugd2UgY2FuJ3QgZGVhbCB3aXRoIHBhcnRpYWxseSB2YWxpZCBkYXRhIGxhdGVyLgogICAgICAg
ICAgICAgbV9ydW5zLmNsZWFyKCk7CisgICAgICAgICAgICBtX3NjcmlwdFRhZ3MuY2xlYXIoKTsK
ICAgICAgICAgICAgIG1fc2hhcGVzLmNsZWFyKCk7CiAgICAgICAgICAgICBtX3NjcmVlbk9yZGVy
LmNsZWFyKCk7CiAgICAgICAgIH0KQEAgLTk1MSw1ICsxMDM4LDI1IEBAIGJvb2wgVW5pc2NyaWJl
SGVscGVyOjpjb250YWluc01pc3NpbmdHbHlwaHMoY29uc3QgU2hhcGluZyYgc2hhcGluZywKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBPUEVOVFlQRV9UQUcgY29udmVydEZlYXR1cmVU
YWcoY29uc3QgU3RyaW5nJiB0YWcpCit7CisgICAgcmV0dXJuICgodGFnWzBdICYgMHhGRikgfCAo
KHRhZ1sxXSAmIDB4RkYpIDw8IDgpIHwgKCh0YWdbMl0gJiAweEZGKSA8PCAxNikgfCAoKHRhZ1sz
XSAmIDB4RkYpIDw8IDI0KSk7Cit9CisKK3ZvaWQgVW5pc2NyaWJlSGVscGVyOjpzZXRSYW5nZVBy
b3BlcnRpZXMoY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdzKQorewor
ICAgIGlmICghZmVhdHVyZVNldHRpbmdzIHx8ICFmZWF0dXJlU2V0dGluZ3MtPnNpemUoKSkgewor
ICAgICAgICBtX2ZlYXR1cmVSZWNvcmRzLnJlc2l6ZSgwKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fZmVhdHVyZVJlY29yZHMucmVzaXplKGZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgp
KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmVhdHVyZVNldHRpbmdzLT5zaXplKCk7
ICsraSkgeworICAgICAgICBtX2ZlYXR1cmVSZWNvcmRzW2ldLmxQYXJhbWV0ZXIgPSBmZWF0dXJl
U2V0dGluZ3MtPmF0KGkpLnZhbHVlKCk7CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHNbaV0udGFn
RmVhdHVyZSA9IGNvbnZlcnRGZWF0dXJlVGFnKGZlYXR1cmVTZXR0aW5ncy0+YXQoaSkudGFnKCkp
OworICAgIH0KKyAgICBtX3JhbmdlUHJvcGVydGllcy5wb3RmUmVjb3JkcyA9ICZtX2ZlYXR1cmVS
ZWNvcmRzWzBdOworICAgIG1fcmFuZ2VQcm9wZXJ0aWVzLmNvdGZSZWNvcmRzID0gbV9mZWF0dXJl
UmVjb3Jkcy5zaXplKCk7Cit9CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxw
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmli
ZUhlbHBlci5oCmluZGV4IDRiY2RiZDZhY2JhMGIwM2RmMjBmZTkyYzNlNGU0MzVhMDlmYjA4Nzcu
Ljk2ODc3NmYzMzMwMzExN2JjOWNiNzZkNjk2MWQzMmU5NjkwODkzMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmli
ZUhlbHBlci5oCkBAIC00NCwxMCArNDQsMTIgQEAgY2xhc3MgVW5pc2NyaWJlVGVzdF9Ub29CaWdf
VGVzdDsgIC8vIEEgZ3VuaXQgdGVzdCBmb3IgVW5pc2NyaWJlSGVscGVyLgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3M7CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7CiAKICNkZWZpbmUgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TIDgKICNkZWZpbmUg
VU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUyAzMgorI2RlZmluZSBVTklTQ1JJQkVfSEVMUEVS
X0ZFQVRVUkVTIDQKIAogLy8gVGhpcyBvYmplY3Qgc2hvdWxkIGJlIHNhZmUgdG8gY3JlYXRlICYg
ZGVzdHJveSBmcmVxdWVudGx5LCBhcyBsb25nIGFzIHRoZQogLy8gY2FsbGVyIHByZXNlcnZlcyB0
aGUgc2NyaXB0X2NhY2hlIHdoZW4gcG9zc2libGUgKHRoaXMgZGF0YSBtYXkgYmUgc2xvdyB0bwpA
QCAtMTU4LDYgKzE2MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZGlzYWJsZUZvbnRGYWxsYmFj
ayA9IHRydWU7CiAgICAgfQogCisgICAgLy8gU2V0IFRFWFRSQU5HRV9QUk9QRVJUSUVTIHN0cnVj
dHVyZSB3aGljaCBjb250YWlucworICAgIC8vIE9wZW5UeXBlIGZlYXR1cmUgcmVjb3JkcyBnZW5l
cmF0ZWQgZnJvbSBGb250RmVhdHVyZVNldHRpbmdzLgorICAgIHZvaWQgc2V0UmFuZ2VQcm9wZXJ0
aWVzKGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqKTsKKwogICAgIC8vIFlvdSBtdXN0IGNhbGwg
dGhpcyBhZnRlciBzZXR0aW5nIGFueSBvcHRpb25zIGJ1dCBiZWZvcmUgZG9pbmcgYW55CiAgICAg
Ly8gb3RoZXIgY2FsbHMgbGlrZSBhc2tpbmcgZm9yIHdpZHRocyBvciBkcmF3aW5nLgogICAgIHZv
aWQgaW5pdCgpCkBAIC0zNTgsNyArMzY0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBieSB8aW5wdXR8
IGNvbWVzIGZyb20gU2NyaXB0SXRlbWl6ZSBhbmQgaXMgc3VwcG9zZWQgdG8gY29udGFpbgogICAg
IC8vIGNoYXJhY3RlcnMgYmVsb25naW5nIHRvIGEgc2luZ2xlIHNjcmlwdCBhc2lkZSBmcm9tIGNo
YXJhY3RlcnMgY29tbW9uIHRvCiAgICAgLy8gYWxsIHNjcmlwdHMgKGUuZy4gc3BhY2UpLgotICAg
IGJvb2wgc2hhcGUoY29uc3QgVUNoYXIqIGlucHV0LCBpbnQgaXRlbUxlbmd0aCwgaW50IG51bUds
eXBocywgU0NSSVBUX0lURU0mIHJ1biwgU2hhcGluZyYpOworICAgIGJvb2wgc2hhcGUoY29uc3Qg
VUNoYXIqIGlucHV0LCBpbnQgaXRlbUxlbmd0aCwgaW50IG51bUdseXBocywgU0NSSVBUX0lURU0m
IHJ1biwgT1BFTlRZUEVfVEFHLCBTaGFwaW5nJik7CiAKICAgICAvLyBHZXRzIFdpbmRvd3MgZm9u
dCBkYXRhIGZvciB0aGUgbmV4dCBiZXN0IGZvbnQgdG8gdHJ5IGluIHRoZSBsaXN0CiAgICAgLy8g
b2YgZm9udHMuIFdoZW4gdGhlcmUncyBubyBtb3JlIGZvbnQgYXZhaWxhYmxlLCByZXR1cm5zIGZh
bHNlCkBAIC00MDgsNiArNDE0LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U0NSSVBUX0lURU0s
IFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfUlVOUz4gbV9ydW5zOwogCiAgICAgVmVjdG9yPFNoYXBp
bmcsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfUlVOUz4gbV9zaGFwZXM7CisgICAgVmVjdG9yPE9Q
RU5UWVBFX1RBRywgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TPiBtX3NjcmlwdFRhZ3M7CiAK
ICAgICAvLyBUaGlzIGlzIGEgbWFwcGluZyBiZXR3ZWVuIHJlYWRpbmcgb3JkZXIgYW5kIHNjcmVl
biBvcmRlciBmb3IgdGhlIGl0ZW1zLgogICAgIC8vIFVuaXNjcmliZSdzIGl0ZW1zIGFycmF5IGFy
ZSBpbiByZWFkaW5nIG9yZGVyLiBGb3IgcmlnaHQtdG8tbGVmdCB0ZXh0LApAQCAtNDE3LDYgKzQy
NCwxMSBAQCBwcml2YXRlOgogICAgIC8vIGdpdmVzIHRoZSBpbmRleCBpbnRvIHRoZSB8bV9ydW5z
fCBhbmQgfG1fc2hhcGVzfCBhcnJheXMgb2YgZWFjaAogICAgIC8vIHN1YnNlcXVlbnQgaXRlbS4K
ICAgICBWZWN0b3I8aW50LCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlM+IG1fc2NyZWVuT3Jk
ZXI7CisKKyAgICAvLyBUaGlzIGNvbnRhaW5zIFVuaXNjcmliZSdzIE9wZW5UeXBlIGZlYXR1cmUg
c2V0dGluZ3MuIFRoaXMgc3RydWN0dXJlCisgICAgLy8gaXMgZmlsbGVkIGJ5IHVzaW5nIFdlYktp
dCdzIHxGb250RmVhdHVyZVNldHRpbmdzfC4KKyAgICBURVhUUkFOR0VfUFJPUEVSVElFUyBtX3Jh
bmdlUHJvcGVydGllczsKKyAgICBWZWN0b3I8T1BFTlRZUEVfRkVBVFVSRV9SRUNPUkQsIFVOSVND
UklCRV9IRUxQRVJfRkVBVFVSRVM+IG1fZmVhdHVyZVJlY29yZHM7CiB9OwogCiB9ICAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcAppbmRl
eCAxNjUwM2U4NGVmMWI2ZWEzNjgzM2EwZGVkZWRjNTZkY2ZlMzcyZGU2Li5hZDlkZDQ5ZDQxNDRi
MTM1YzA1Mzc3NDYyYWFmZDVhMTYxODc3MjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxw
ZXJUZXh0UnVuLmNwcApAQCAtNTMsNiArNTMsNyBAQCBVbmlzY3JpYmVIZWxwZXJUZXh0UnVuOjpV
bmlzY3JpYmVIZWxwZXJUZXh0UnVuKGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBzZXRTcGFjZVdp
ZHRoKGZvbnQuc3BhY2VXaWR0aCgpKTsKICAgICBzZXRXb3JkU3BhY2luZyhmb250LndvcmRTcGFj
aW5nKCkpOwogICAgIHNldEFzY2VudChmb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpOworICAg
IHNldFJhbmdlUHJvcGVydGllcyhmb250LmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5n
cygpKTsKIAogICAgIGluaXQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106375</attachid>
            <date>2011-09-05 18:57:40 -0700</date>
            <delta_ts>2011-09-07 00:29:16 -0700</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug-65904-20110906105739.patch</filename>
            <type>text/plain</type>
            <size>22469</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ1NDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMzFiZWQ4ZWIyOTA0ZTlmMjE4OGNm
NWZjYzA5YzI3MmJkOTYxZDA3Li42NGJiOTIyOWU2ODQwNzNhMzgwOTE3MjE1MGExZjYxYjc5ZmIx
NmNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDktMDUgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50IGZv
bnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAorCisgICAgICAg
IEFkZHMgZXhwZWN0YXRpb25zIG9mIGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmlu
Zy5odG1sIGZvciBDaHJvbWl1bSB3aW4gcG9ydC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQt
ZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVy
aW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0OiBWSVNUQSBhbmQgV0lONyBzaG91bGQgcGFzcyBjc3MzL2ZvbnQt
ZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbC4KKwogMjAxMS0wOS0wNSAgSm9obiBLbm90
dGVuYmVsdCAgPGprbm90dGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBUYWtlIHBhZ2VTY2Fs
ZUZhY3RvciBpbnRvIGFjY291bnQgZm9yIE1vdXNlUmVsYXRlZEV2ZW50cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0
aW5ncy1yZW5kZXJpbmctZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy1leHBlY3RlZC5wbmcK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmE1MzM5NTczNDFkMmViNDJiYjc5NjBhZGVjMzIzOTI2NmRiZjRmYwpHSVQg
YmluYXJ5IHBhdGNoCmxpdGVyYWwgNTA1MAp6Y21lSExZZnpJezh2WD8zQkRYcUxxQyFPMUQoJVdt
NXlCLVQrTGxybTNEdmQrJVQqJTgwd3pGJjBKJGxzKiVsUkIKemlsfCZOOWp6X30wVUlGUGtebktG
Nz5HNU1hTFg0V0clMTd0QT84THh2aTQ3PnYlNWRHeVpka1hiKUk/V28jJm5SCnpKPG9IX25lKVgq
czNAMD4rY3lGTDtCd0B7X20yYUI/TT91JmlGMkBkOW9oMmM3VnA9fkpMZStmJlNCMV5WS05ETQp6
WE12RlB3NGVZP0t0Uys7XnQ0bj1hNV5SKDZCP1FaT0hWeiRLa2RONXB1cD5rKWs2VFZgUkl9TjR9
VmZudCYmWFMKemp7bjh4KDZQV2dpPyM5PVVHVk1KI0x1cF9zQ19kZD9ze0pOPzBFRUZwKndYZER3
aFRUJnh9R2U5c3FqcXlQRStaCnopeTRfZnglYn15SXcxKGR1X2kjKSpVOEMtdD03cGk1UXVmPTZq
R3xuSF9kaXN8N2NpYGgoSFE/Uk4qI2lwNGU0cgp6UjEpJCttYkljRnhRc1Q1UTRGcHQ2MUN2THE/
cXsla3Z6dHAqdiVDU0hBcDlmZyo/ZnpDPGk4a0dWbW5+WWlGbi0KeldvKTFMMTwkNDQ/QGhXZ0x1
RUhJRm5yT3FtTD5QSz50NWJqRDd2SF9OSVZVcHpVb0tvUCpXbUJ3Jmw9Y2NJVCZiCnoxdnY7XkA+
VGdRWE1kWH5BcUBHaSNsREIob0EmQWt4IUtea1kmU2hvNWBwJFBqIUUxPnxDWSh4UX1ySURWRiEx
Uwp6bHA4d1A5Mjx2THZoa2FTPVh2fSljPyhgalMjdlRlbEEyXkhCaklqLXZ4dl5VVjVyNER1MUYq
JHdOYyg3NjBZK2oKeiY2JXJ7bTVzNlpDMmZTbjt9cDRGK1ZZJn1aPD1kWGRUQG54K1BRTjFSOWY/
eVFWWHtHbHZNVkJpR0pOZXdBJjU/Cnp1RFlpTy0mJFpAaEBxfjhoYkg0Knh5d2U9OVQ4SDRMVyFn
YEU7OEZHOGVHfW91bGYybUVQaiorUDRIPnV0UXhnMQp6Y3dkUH1ofld0KWpCaEZJZiZOfCZmdkp+
Y0B6cStEQ1c/VEVLYFA2Nz45Jm48aUBoa2Y7SWVhaWYjcH47U2pqRy0KenJWaEw1XigodjI8dT1N
JCswOFh4eXBBd3BwQWZIX3huc3lpXl4rY1UlJn17M2xNaDB2I0RIT1dyYD5AMShVQjE1Cno3fDk4
MjFBcCpoKnAqYmN4KDxUIW5BKyNjcW9MaHh7KncmUVd3TTNwYTBMeHh1OUVWIWE4fXRTU0p1Klct
K0wqOQp6WGpGQ0p7aWR3QGo3UEN7QlFGST5vPz5uSkdwMUhXK1drcVgpdEhKVzE9RkY2UXtZWEt1
enxrWUUjMHRSRSpLWT0KeiZKUEo/dmlLfjQwTTAhWnFSWT83P2VDOHdednxAd2VmJjtVMXV7WTl0
KkJtNTk5WjdiQCUrZ3UrdSVAQlVDLVYkCnpkeyFZQkReTGRHZ0JyTkVMY0R4JEh2LXx9M2ZZIyRx
YlJuaXYoM0dmcXxVYiVCMz1iXiFgcjdDQWNiVCRAdVQhPgp6Q2VZJV89XykqRTl+Y2xFczMwWGJp
NEU9ZkUrQHt0Kyg9Jjc2QFZCRVgzX0JXIW8pRkd8N0JZUnZMdyRXVVd4YVEKelM8JlBwXlgyPVlp
JURlb2E7aU47TENuMkE8aCQqdDFhJEVDSE5iWiVUZSZVJExwZ1JESTNkS24+PXF4alg4X2peCnpW
dCUrU1ErNVJ1O2B8cWFrdzEwc0JXUnpHMyhxUn1vMmRhKURXZ0xZK1UmUk42SHY5PDhCUVo2Pzlr
OXQ8WnFkOAp6YXZUS0NoKjduQTFOTmF8Izw2Pn1gXmw9cnlwYUF6YnFGRHRWZSkyS0YoSnNaJDtw
SVN2d0pQbV8pOSEjd3RCMjwKekxRdFVeaklAfkpGSUw2IWd5QFRTOUo5TENXbzdseiQzR1IhWCMy
QkpAXzI3dXl7azAzb0BDeFV2dmhtZShTciU9CnpuPnB5R2B9dSlNPiZvYjtrIUNqelJ9OTdMUV5e
WXlnO0sraDMxZWp7T080PVJOOV9EfSpwKjc+O3FNM34tMDVCSgp6aTFpP0dkdSZvQ2NBKmZfdFVG
PU8oTTFsJj1CR01JUzstfCl7T31XPD9mMXhpK3BUfVRyfHVkSG0oZHZONHQ9Um0KemZGYFF5X3NY
ISlWdCpARXp6UW4jRWIkVTh3ZGNBZEhGKT9+JGcxIWhwSTlIdVR4cVAqPE9NRGx7SCVMKjw0VUNA
CnpLX1Z6RkdmaTU5eEtqZVNvOWxxPVdxQjdfe1dJXiNlWUFTKyZReExXaCF1eX11YyVVbj5FRXVa
elIycXVZTkMqWgp6eSRNajlZfmBZfmR0JkIxSl5ISEdJNm15OWY4cyUlQ3lwb1lPaEAoY2NXTkxQ
YyliSms2IVExWmBLUGxMWGd2eygKenA3eWMlckoxaFZvM1hxcjZlJUJfd089O2RjX3RrfW1CRzEm
ZnE/LXZpNnh7LSRRKktRLUI3JXBzZntTP01aJUkzCnokKldxS3QhZE4hNS04Y1p3UFF7Skw1amw8
WHYkYHZZKyM1dnFqI31ZbihUSU5zY0xMdU8jM0hnQSglaVdUKSlMVQp6US1kUH43UGpBflhHJVJY
V0d8dzY8XjY4OExiPH02OVgjXmgpaE49V1klJjNnX3xSPzkyJW5jSClQJjB2ZExwNUIKenBQTEU+
UnJCYWU4bHJ0dktISEAjKTYqdyFHPExlUT1VKHFQakNHcEstVlhQN3R9Um58b2h5MERtLXBWamJz
OzdZCnohbUYlfShZMHgmd0YoajF6aTJ2MjNTSihuNHBoZD1vM2FBeW18ZzNkY0ElKThMeiV0bUZM
RzdWWjRkfWVkQiUpVwp6cGJEcmhgezwqeVVqPHpDcUsqWTN1TVBNdj9lKzZfNmRDOXo0SVdTcTxf
RHNjZlBLcDZMIzlKOGcpaSM4O21HazAKenIpeTgwTE45Q3AtcTUpMzB1Q0tiU3FENT9AQlRZNS1g
Y2E/OGxjPl9JfTQ7ekA9OX0xJlQoZ1hSaEtFQkJaTXdfCnpJZE9vJmlUeT8jbEhHX3Z0LTJTVl81
Y3F5YmxSTD5vVzBjM1kxeiF3ZUs2WTFVUmpyaj9rXk8lSWc8Ml5IQ3Qpdgp6bn4oPXdmVzFjTipI
entqWUwtM3M1QH1LWVdzfGpOZ14yVE4jQzZaaEB5fGlpck9fJWJnK2wxelF6PUt5VkdHOTkKejhn
cnxIUEFXPGhpMFo0JTYwTFd6QlM1YHpFRn5nJCM+aiZTVkYrWX1BMShvWWV9T1dYNW4tN15DfH4k
O2NEUWpeCno1RnhFbSs/cTZfKS1xTyRLPFNlaENePGhQOzUmTUIze0VGbGV7RkwlQSY7YyFuSzI4
aG9xP3J+a0ZwflRXX1RFTgp6cWNwUndtNEJSR3BMQig2NX1UKD1WdjhjSTlXMDB2bDVSSXIxIUhv
aktsU3Y+ISFnQjg1M2VSNDhjJmRicC1ZQ00Kekw9MV44ZTJOQ2xIaDBqP3VGP2FoY09rSVokO0py
eGxqfFI4byg0aS1jPkVVQyYxcThHTlYoPT10SDBFRStWKHNlCnpPMTheZjAhNlg8eGtnSWdUa3tX
STRqd0RgeXBISShGYSlmJndBJUptWmU+Uz83Pm9NQl97aD42X2RDOGYhVilBPwp6JW9Gc2c3UzA1
Uz9kdztMQyorJDRwVUxmaWJrITVwOzdkPzQ1PFBfMWVXQTltcDlyXmlYWV83d2tWR3tCaE0wU2AK
elVxY3VPUEx0KjEoZGpPdytiZ28hWUMxIVRoVSFHfSRJMXpCRntmalhsMzFzNktQZiQldExabSZi
JHJRLWtXe0A7CnpyQE9mPnE/b1hyeSFMSk0zM0VGP2BYcGZmc0ZyNkA0Mm5BNTFifHhPO1hDTk1l
TCVgI1BjbTcrbWJKNkthYTwzJAp6fDAqSXV7NnpyUnxFc3QqJE5nYD5naUZKT3MqUklJblU9a05k
KG89dSg5TCNaY21EPGU/akt5eGRlXyEmb30rVFAKem95Qn0qUW41MiYmPXcwKlI2KnI4WXliPCZJ
IX5GVmF2NlNpT1p8KTEwcD5IPHF+N2d4Rj1HKjIpSkpfNTBjSXB7Cno2JU4zWFhgV051SXtWYFhX
blllV1BzbWo/VCg8PDVCKGVkaHRpWXl9MnlXTzBwcjxiQCNuPDlKXzN8dS1QakJwWQp6Yk82amwq
SzlNQHNWYFFhWHModmIqWl91bCYtRWlLUiREKkI8eUsxKEJeRWYoOWVsZmFON0ZIMWp6UXh0VGQ4
PSEKelBvfClwMDdKTUROZGJVfFF7RWw2enx3RWQlaEcjeW4yX2YmaCVQJXxVY0tANlVpPlpSNH10
bDd1OVJFazBSWXFyCnpudlJweEJ8Izl2c2grMWN6R25afG1qNGdndz4xNko7cWl4PCl7XzdHeTxW
SCkrNkAyVTAkLUVGbmszZEZ2RjN2UgpkOHk4cmRJMVMxNW9YMn5mejVhez9qenByflordGhVYDB0
U0pXMTBXfQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmlu
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vY3NzMy9m
b250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
Y2Y5YTAzZDM0MGRlNmE5YWVmMTY1ZWMzMGQyNmU4MDI4OGRkZTc4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2NzczMvZm9udC1mZWF0dXJlLXNl
dHRpbmdzLXJlbmRlcmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorbGF5ZXIgYXQg
KDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCits
YXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDAp
IHNpemUgODAweDYwMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4
NAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDQwCisgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDc4M3gzOQorICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDIzNTogIlRlc3QgZm9yIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9w
ZXJ0eS4gIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgyMzUsMCkgd2lkdGggNTQ4OiAiVGhlIGZp
cnN0IHdvcmQgb2YgdGhlIGZvbGxvd2luZyB0aHJlZSB3b3JkcyBzaG91bGQgYmUgZGlzcGxheWVk
IGxpa2UgXCJXZWJLaXRcIiwgd2hpbGUgb3RoZXJzIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDIwKSB3aWR0aCAyMTc6ICJzaG91bGQgYmUgZGlzcGxheWVkIGFzIGJsYWNrIGJveGVzLiIKKyAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDU2KSBzaXplIDc4NHgxNworICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMHgxNgorICAgICAgICAgIHRleHQgcnVuIGF0
ICgwLDApIHdpZHRoIDMwOiAiV2ViS2l0IgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
NzMpIHNpemUgNzg0eDE3CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDk2eDE2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTY6ICJXZWJLaXQiCisg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw5MCkgc2l6ZSA3ODR4MTcKKyAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOTZ4MTYKKyAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA5NjogIldlYktpdCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBkYzRhNzNhZDRmZjVjODg2OTQ4
M2QzNDIwYjNjZjBmOGU1YzYzYTc0Li41ZmZjZGNhMjJjZDQ0M2FkNzc2YTY2Yzk0ZTY5ODRmOTNj
M2NlYWQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9l
eHBlY3RhdGlvbnMudHh0CkBAIC0zNTkwLDcgKzM1OTAsNyBAQCBCVUdXSzY1OTUxIFdJTiBERUJV
RyA6IHdlYmF1ZGlvL21peGluZy5odG1sID0gQ1JBU0gKIEJVR1dLNjU5NTEgTElOVVggTUFDIERF
QlVHIDogd2ViYXVkaW8vbWl4aW5nLmh0bWwgPSBDUkFTSCBQQVNTCiBCVUdXSzY1OTUxIExJTlVY
IE1BQyBERUJVRyA6IHdlYmF1ZGlvL3Rlc3QtYmFzaWMuaHRtbCA9IENSQVNIIFBBU1MKIAotQlVH
V0s2Mzc5NiBNQUMgV0lOIDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0
bWwgPSBNSVNTSU5HIEZBSUwKK0JVR1dLNjM3OTYgTUFDIFhQIDogY3NzMy9mb250LWZlYXR1cmUt
c2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwgPSBNSVNTSU5HIEZBSUwKIAogLy8gTmV3IHRlc3QgaW4g
cjkzMDY4CiBCVUdXSzY2MjY4IFdJTiBNQUMgOiBlZGl0aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWlu
ZGljYXRvcnMuaHRtbCA9IFRFWFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMDdmZTc3ZjA0MmE1YmZlZDFjMzBk
MTRjNGQwZmI4YTgyZDMxYWVlLi4yMTczOWEzMmZhY2IwZjczMzg1ZTFiNzg5ODFhNWRkNDgwYjZm
Mjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDktMDUgIEtlbmljaGkgSXNo
aWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVt
ZW50IGZvbnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBVbmlzY3Jp
YmUncyBPcGVuVHlwZSBBUElzIHRvIHNoYXBlIGNvbXBsZXggdGV4dCB0byBzdXBwb3J0IC13ZWJr
aXQtZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwgc2hvdWxkIHBhc3Mg
YnkgdGhpcyBwYXRjaC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Vu
aXNjcmliZUhlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2FkT3BlblR5cGVGdW5jdGlv
bnMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6VW5pc2NyaWJl
SGVscGVyKTogQ2FsbHMgbG9hZE9wZW5UeXBlRnVuY3Rpb25zIGlmIG5lZWRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMpOiBVc2VzIFNjcmlwdEl0ZW1pemVP
cGVuVHlwZSgpIGlmIHBvc3NpYmxlLgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVy
OjpzaGFwZSk6IFVzZXMgU2NyaXB0U2hhcGVPcGVuVHlwZSgpIGlmIHBvc3NpYmxlLgorICAgICAg
ICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVyOjpmaWxsU2hhcGVzKTogQWRkcyBPcGVuVHlwZSBz
Y3JpcHQgdGFnIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEZlYXR1
cmVUYWcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6c2V0UmFu
Z2VQcm9wZXJ0aWVzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3Jp
YmVIZWxwZXJUZXh0UnVuOjpVbmlzY3JpYmVIZWxwZXJUZXh0UnVuKTogQ2FsbHMgc2V0UmFuZ2VQ
cm9wZXJ0aWVzKCkuCisKIDIwMTEtMDktMDUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NDUzNy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Vu
aXNjcmliZUhlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwCmluZGV4IDM4ZDc0YjdlNzQ4MGFkNjkwYmUzZTAzMzhj
ODQzYjdiOGJjNTVhMjEuLjk1NWQ2ZmEzMTJiZjE1MDllMDVmMTQ3MjY5M2FhYzJkN2Q0OWRkYjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Vu
aXNjcmliZUhlbHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcApAQCAtNDEsNiArNDEsNDAgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCisvLyBUaGUgZnVuY3Rpb24gdHlwZXMgZm9yIFNjcmlwdEl0ZW1pemVP
cGVuVHlwZSgpIGFuZCBTY3JpcHRTaGFwZU9wZW5UeXBlKCkuCisvLyBXZSB3YW50IHRvIHVzZSB0
aGVzZSBmdW5jdGlvbnMgZm9yIE9wZW5UeXBlIGZlYXR1cmUgc3VwcG9ydCwgYnV0IHdlIGNhbid0
CisvLyBjYWxsIHRoZW0gZGlyZWN0bHkgYmVjYXVzZSB1c3AxMC5kbGwgZG9lcyBub3QgYWx3YXlz
IGhhdmUgdGhlbS4KKy8vIEluc3RlYWQsIHdlIHVzZSBHZXRQcm9jQWRkcmVzcygpIHRvIGNoZWNr
IHdoZXRoZXIgd2UgY2FuIGFjdHVhbGx5IHVzZSB0aGVzZQorLy8gZnVuY3Rpb24uIElmIHdlIGNh
bid0IHVzZSB0aGVzZSBmdW5jdGlvbnMsIHdlIHN1YnN0aXR1dGUgU2NyaXB0SXRlbXplKCkgYW5k
CisvLyBTY3JpcHRTaGFwZSgpLgordHlwZWRlZiBIUkVTVUxUIChXSU5BUEkgKlNjcmlwdEl0ZW1p
emVPcGVuVHlwZUZ1bmMpKGNvbnN0IFdDSEFSKiwgaW50LCBpbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU0NSSVBUX0NPTlRST0wq
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFNDUklQVF9TVEFURSosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgU0NSSVBUX0lURU0qLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5UWVBFX1RBRyosIGludCopOwordHlwZWRlZiBI
UkVTVUxUIChXSU5BUEkgKlNjcmlwdFNoYXBlT3BlblR5cGVGdW5jKShIREMsIFNDUklQVF9DQUNI
RSosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFND
UklQVF9BTkFMWVNJUyosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE9QRU5UWVBFX1RBRywgT1BFTlRZUEVfVEFHLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqLCBURVhUUkFOR0VfUFJPUEVSVElF
UyoqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQsIGNvbnN0IFdDSEFSKiwgaW50LCBpbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdPUkQqLCBTQ1JJUFRfQ0hBUlBST1AqLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXT1JEKiwgU0NSSVBUX0dM
WVBIUFJPUCosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCopOworCitzdGF0aWMgU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYyBzU2NyaXB0SXRl
bWl6ZU9wZW5UeXBlRnVuYyA9IDA7CitzdGF0aWMgU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMgc1Nj
cmlwdFNoYXBlT3BlblR5cGVGdW5jID0gMDsKK3N0YXRpYyBib29sIHNPcGVuVHlwZUZ1bmN0aW9u
c0xvYWRlZCA9IGZhbHNlOworCitzdGF0aWMgdm9pZCBsb2FkT3BlblR5cGVGdW5jdGlvbnMoKQor
eworICAgIEhNT0RVTEUgaE1vZHVsZSA9IEdldE1vZHVsZUhhbmRsZShMInVzcDEwIik7CisgICAg
aWYgKGhNb2R1bGUpIHsKKyAgICAgICAgc1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMgPSByZWlu
dGVycHJldF9jYXN0PFNjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmM+KEdldFByb2NBZGRyZXNzKGhN
b2R1bGUsICJTY3JpcHRJdGVtaXplT3BlblR5cGUiKSk7CisgICAgICAgIHNTY3JpcHRTaGFwZU9w
ZW5UeXBlRnVuYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8U2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmM+KEdl
dFByb2NBZGRyZXNzKGhNb2R1bGUsICJTY3JpcHRTaGFwZU9wZW5UeXBlIikpOworICAgIH0KKyAg
ICBzT3BlblR5cGVGdW5jdGlvbnNMb2FkZWQgPSB0cnVlOworfQorCiAvLyBIRk9OVCBpcyB0aGUg
J2luY2FybmF0aW9uJyBvZiAnZXZlcnl0aGluZycgYWJvdXQgZm9udCwgYnV0IGl0J3MgYW4gb3Bh
cXVlCiAvLyBoYW5kbGUgYW5kIHdlIGNhbid0IGRpcmVjdGx5IHF1ZXJ5IGl0IHRvIG1ha2UgYSBu
ZXcgSEZPTlQgc2hhcmluZwogLy8gaXRzIGNoYXJhY3RlcmlzdGljcyAoaGVpZ2h0LCBzdHlsZSwg
ZXRjKSBleGNlcHQgZm9yIGZhbWlseSBuYW1lLgpAQCAtOTIsNiArMTI2LDggQEAgVW5pc2NyaWJl
SGVscGVyOjpVbmlzY3JpYmVIZWxwZXIoY29uc3QgVUNoYXIqIGlucHV0LAogCiB7CiAgICAgbV9s
b2dmb250LmxmRmFjZU5hbWVbMF0gPSAwOworICAgIGlmICghc09wZW5UeXBlRnVuY3Rpb25zTG9h
ZGVkKQorICAgICAgICBsb2FkT3BlblR5cGVGdW5jdGlvbnMoKTsKIH0KIAogVW5pc2NyaWJlSGVs
cGVyOjp+VW5pc2NyaWJlSGVscGVyKCkKQEAgLTQzOCw2ICs0NzQsNyBAQCB2b2lkIFVuaXNjcmli
ZUhlbHBlcjo6ZmlsbFJ1bnMoKQogewogICAgIEhSRVNVTFQgaHI7CiAgICAgbV9ydW5zLnJlc2l6
ZShVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlMpOworICAgIG1fc2NyaXB0VGFncy5yZXNpemUo
VU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TKTsKIAogICAgIFNDUklQVF9TVEFURSBpbnB1dFN0
YXRlOwogICAgIGlucHV0U3RhdGUudUJpZGlMZXZlbCA9IG1faXNSdGw7CkBAIC00OTIsMTAgKzUy
OSwzNSBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMoKQogICAgICAgICAvLyBJdCBz
ZWVtcyB0byBiZSBkb2luZyBhdCBsZWFzdCB0d28gcGFzc2VzLCB0aGUgZmlyc3Qgd2hlcmUgaXQg
cHV0cyBhCiAgICAgICAgIC8vIGxvdCBvZiBpbnRlcm1lZGlhdGUgZGF0YSBpbnRvIG91ciBpdGVt
cywgYW5kIHRoZSBzZWNvbmQgd2hlcmUgaXQKICAgICAgICAgLy8gY29sbGF0ZXMgdGhlbS4KLSAg
ICAgICAgaHIgPSBTY3JpcHRJdGVtaXplKG1faW5wdXQsIG1faW5wdXRMZW5ndGgsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fcnVucy5zaXplKCkpIC0gMSwg
JmlucHV0Q29udHJvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbnB1dFN0YXRlLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1fcnVuc1swXSwgJm51bWJlck9mSXRlbXMpOwor
ICAgICAgICBpZiAoc1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMpIHsKKyAgICAgICAgICAgIGhy
ID0gc1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMobV9pbnB1dCwgbV9pbnB1dExlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50
PihtX3J1bnMuc2l6ZSgpKSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICZpbnB1dENvbnRyb2wsICZpbnB1dFN0YXRlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9ydW5zWzBdLCAmbV9zY3JpcHRUYWdzWzBdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbnVtYmVyT2ZJdGVt
cyk7CisgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgeworICAgICAgICAgICAgICAgIC8v
IFBhY2sgY29uc2VjdXRpdmUgcnVucywgdGhlIHNjcmlwdCB0YWcgb2Ygd2hpY2ggYXJlCisgICAg
ICAgICAgICAgICAgLy8gU0NSSVBUX1RBR19VTktOT1dOLCB0byByZWR1Y2UgdGhlIG51bWJlciBv
ZiBydW5zLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVyT2ZJdGVt
czsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3NjcmlwdFRhZ3NbaV0gPT0gU0NS
SVBUX1RBR19VTktOT1dOKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpbnQgaiA9IDE7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSArIGogPCBudW1iZXJPZkl0ZW1zICYmIG1f
c2NyaXB0VGFnc1tpICsgal0gPT0gU0NSSVBUX1RBR19VTktOT1dOKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgtLWopIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX3J1bnMucmVtb3ZlKGkgKyAxLCBqKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdFRhZ3MucmVtb3ZlKGkgKyAxLCBqKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkl0ZW1zIC09IGo7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgbV9zY3JpcHRUYWdzLnJlc2l6ZShudW1iZXJPZkl0ZW1zKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhyID0gU2NyaXB0SXRl
bWl6ZShtX2lucHV0LCBtX2lucHV0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXRpY19jYXN0PGludD4obV9ydW5zLnNpemUoKSkgLSAxLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZpbnB1dENvbnRyb2wsICZpbnB1dFN0YXRlLCAmbV9ydW5zWzBdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZudW1iZXJPZkl0ZW1zKTsKKyAgICAgICAg
fQogICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgewogICAgICAgICAgICAgbV9ydW5zLnJlc2l6
ZShudW1iZXJPZkl0ZW1zKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTA3LDYgKzU2OSw3IEBA
IHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsUnVucygpCiAgICAgICAgIH0KICAgICAgICAgLy8g
VGhlcmUgd2FzIG5vdCBlbm91Z2ggaXRlbXMgZm9yIGl0IHRvIHdyaXRlIGludG8sIGV4cGFuZC4K
ICAgICAgICAgbV9ydW5zLnJlc2l6ZShtX3J1bnMuc2l6ZSgpICogMik7CisgICAgICAgIG1fc2Ny
aXB0VGFncy5yZXNpemUobV9ydW5zLnNpemUoKSk7CiAgICAgfQogfQogCkBAIC01MTQsMTEgKzU3
NywxNCBAQCBib29sIFVuaXNjcmliZUhlbHBlcjo6c2hhcGUoY29uc3QgVUNoYXIqIGlucHV0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVtTGVuZ3RoLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBudW1HbHlwaHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgU0NSSVBUX0lURU0mIHJ1biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUEVOVFlQ
RV9UQUcgc2NyaXB0VGFnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNoYXBpbmcmIHNo
YXBpbmcpCiB7CiAgICAgSEZPTlQgaGZvbnQgPSBtX2hmb250OwogICAgIFNDUklQVF9DQUNIRSog
c2NyaXB0Q2FjaGUgPSBtX3NjcmlwdENhY2hlOwogICAgIFNDUklQVF9GT05UUFJPUEVSVElFUyog
Zm9udFByb3BlcnRpZXMgPSBtX2ZvbnRQcm9wZXJ0aWVzOworICAgIFZlY3RvcjxTQ1JJUFRfQ0hB
UlBST1AsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IGNoYXJQcm9wczsKKyAgICBWZWN0
b3I8U0NSSVBUX0dMWVBIUFJPUCwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gZ2x5cGhQ
cm9wczsKICAgICBpbnQgYXNjZW50ID0gbV9hc2NlbnQ7CiAgICAgV09SRCBzcGFjZUdseXBoID0g
bV9zcGFjZUdseXBoOwogICAgIEhEQyB0ZW1wREMgPSAwOwpAQCAtNTQxLDYgKzYwNyw4IEBAIGJv
b2wgVW5pc2NyaWJlSGVscGVyOjpzaGFwZShjb25zdCBVQ2hhciogaW5wdXQsCiAgICAgICAgIHNo
YXBpbmcubV9sb2dzLnJlc2l6ZShpdGVtTGVuZ3RoKTsKICAgICAgICAgc2hhcGluZy5tX2dseXBo
cy5yZXNpemUobnVtR2x5cGhzKTsKICAgICAgICAgc2hhcGluZy5tX3Zpc3VhbEF0dHJpYnV0ZXMu
cmVzaXplKG51bUdseXBocyk7CisgICAgICAgIGNoYXJQcm9wcy5yZXNpemUoaXRlbUxlbmd0aCk7
CisgICAgICAgIGdseXBoUHJvcHMucmVzaXplKG51bUdseXBocyk7CiAKICNpZmRlZiBQVVJJRlkK
ICAgICAgICAgLy8gaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRh
aWw/aWQ9NTMwOQpAQCAtNTYxLDEzICs2MjksMjMgQEAgYm9vbCBVbmlzY3JpYmVIZWxwZXI6OnNo
YXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwKICAgICAgICAgWmVyb01lbW9yeSgmc2hhcGluZy5tX2ds
eXBoc1swXSwKICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc2hhcGluZy5tX2dseXBoc1swXSkg
KiBzaGFwaW5nLm1fZ2x5cGhzLnNpemUoKSk7CiAjZW5kaWYKLQogICAgICAgICAvLyBGaXJlZm94
IHNldHMgU0NSSVBUX0FOQUxZU0lTLlNDUklQVF9TVEFURS5mRGlzcGxheVpXRyB0byB0cnVlCiAg
ICAgICAgIC8vIGhlcmUuIElzIHRoYXQgd2hhdCB3ZSB3YW50PyBJdCB3aWxsIGRpc3BsYXkgY29u
dHJvbCBjaGFyYWN0ZXJzLgotICAgICAgICBociA9IFNjcmlwdFNoYXBlKHRlbXBEQywgc2NyaXB0
Q2FjaGUsIGlucHV0LCBpdGVtTGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgIG51bUds
eXBocywgJnJ1bi5hLAotICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fZ2x5cGhz
WzBdLCAmc2hhcGluZy5tX2xvZ3NbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXBp
bmcubV92aXN1YWxBdHRyaWJ1dGVzWzBdLCAmZ2VuZXJhdGVkR2x5cGhzKTsKKyAgICAgICAgaWYg
KHNTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYykgeworICAgICAgICAgICAgVEVYVFJBTkdFX1BST1BF
UlRJRVMqIHJhbmdlUHJvcHMgPSBtX2ZlYXR1cmVSZWNvcmRzLnNpemUoKSA/ICZtX3JhbmdlUHJv
cGVydGllcyA6IDA7CisgICAgICAgICAgICBociA9IHNTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYyh0
ZW1wREMsIHNjcmlwdENhY2hlLCAmcnVuLmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzY3JpcHRUYWcsIDAsICZpdGVtTGVuZ3RoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJhbmdlUHJvcHMsIHJhbmdlUHJvcHMgPyAxIDog
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0LCBpdGVt
TGVuZ3RoLCBudW1HbHlwaHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmc2hhcGluZy5tX2xvZ3NbMF0sICZjaGFyUHJvcHNbMF0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2dseXBoc1swXSwgJmdseXBoUHJv
cHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmZ2VuZXJh
dGVkR2x5cGhzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGhyID0gU2NyaXB0U2hh
cGUodGVtcERDLCBzY3JpcHRDYWNoZSwgaW5wdXQsIGl0ZW1MZW5ndGgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG51bUdseXBocywgJnJ1bi5hLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAmc2hhcGluZy5tX2dseXBoc1swXSwgJnNoYXBpbmcubV9sb2dzWzBdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX3Zpc3VhbEF0dHJpYnV0ZXNbMF0sICZn
ZW5lcmF0ZWRHbHlwaHMpOworICAgICAgICB9CiAgICAgICAgIGlmIChociA9PSBFX1BFTkRJTkcp
IHsKICAgICAgICAgICAgIC8vIEFsbG9jYXRlIHRoZSBEQy4KICAgICAgICAgICAgIHRlbXBEQyA9
IEdldERDKDApOwpAQCAtNjY0LDYgKzc0MiwxNCBAQCBib29sIFVuaXNjcmliZUhlbHBlcjo6c2hh
cGUoY29uc3QgVUNoYXIqIGlucHV0LAogICBjbGVhbnVwOgogICAgIHNoYXBpbmcubV9nbHlwaHMu
cmVzaXplKGdlbmVyYXRlZEdseXBocyk7CiAgICAgc2hhcGluZy5tX3Zpc3VhbEF0dHJpYnV0ZXMu
cmVzaXplKGdlbmVyYXRlZEdseXBocyk7CisgICAgLy8gSWYgd2UgdXNlIFNjcmlwdFNoYXBlT3Bl
blR5cGUoKSwgdmlzdWFsIGF0dHJpYnV0ZXMgaW5mb3JtYXRpb24gZm9yIGVhY2gKKyAgICAvLyBj
aGFyYWN0ZXJzIGFyZSBzdG9yZWQgaW4gfGdseXBoUHJvcHNbaV0uc3ZhfC4KKyAgICBpZiAoc1Nj
cmlwdFNoYXBlT3BlblR5cGVGdW5jKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZ2Vu
ZXJhdGVkR2x5cGhzOyArK2kpIHsKKyAgICAgICAgICAgIG1lbWNweSgmc2hhcGluZy5tX3Zpc3Vh
bEF0dHJpYnV0ZXNbaV0sICZnbHlwaFByb3BzW2ldLnN2YSwKKyAgICAgICAgICAgICAgICAgICBz
aXplb2YoU0NSSVBUX1ZJU0FUVFIpKTsKKyAgICAgICAgfQorICAgIH0KICAgICBzaGFwaW5nLm1f
YWR2YW5jZS5yZXNpemUoZ2VuZXJhdGVkR2x5cGhzKTsKICAgICBzaGFwaW5nLm1fb2Zmc2V0cy5y
ZXNpemUoZ2VuZXJhdGVkR2x5cGhzKTsKICAgICBpZiAodGVtcERDKSB7CkBAIC03MDQsNyArNzkw
LDcgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXI6OmZpbGxTaGFwZXMoKQogICAgICAgICAvLyBDb252
ZXJ0IGEgc3RyaW5nIHRvIGEgZ2x5cGggc3RyaW5nIHRyeWluZyB0aGUgcHJpbWFyeSBmb250LCBm
b250cyBpbgogICAgICAgICAvLyB0aGUgZmFsbGJhY2sgbGlzdCBhbmQgdGhlbiBzY3JpcHQtc3Bl
Y2lmaWMgbGFzdCByZXNvcnQgZm9udC4KICAgICAgICAgU2hhcGluZyYgc2hhcGluZyA9IG1fc2hh
cGVzW2ldOwotICAgICAgICBpZiAoIXNoYXBlKCZtX2lucHV0W3N0YXJ0SXRlbV0sIGl0ZW1MZW5n
dGgsIG51bUdseXBocywgbV9ydW5zW2ldLCBzaGFwaW5nKSkKKyAgICAgICAgaWYgKCFzaGFwZSgm
bV9pbnB1dFtzdGFydEl0ZW1dLCBpdGVtTGVuZ3RoLCBudW1HbHlwaHMsIG1fcnVuc1tpXSwgbV9z
Y3JpcHRUYWdzW2ldLCBzaGFwaW5nKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
IC8vIEF0IHRoZSBtb21lbnQsIHRoZSBvbmx5IHRpbWUgbV9kaXNhYmxlRm9udEZhbGxiYWNrIGlz
IHNldCBpcwpAQCAtNzQzLDYgKzgyOSw3IEBAIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsU2hh
cGVzKCkKICAgICAgICAgICAgIC8vIFNvbWUgZXJyb3Igd2UgZG9uJ3Qga25vdyBob3cgdG8gaGFu
ZGxlLiBOdWtlIGFsbCBvZiBvdXIgZGF0YQogICAgICAgICAgICAgLy8gc2luY2Ugd2UgY2FuJ3Qg
ZGVhbCB3aXRoIHBhcnRpYWxseSB2YWxpZCBkYXRhIGxhdGVyLgogICAgICAgICAgICAgbV9ydW5z
LmNsZWFyKCk7CisgICAgICAgICAgICBtX3NjcmlwdFRhZ3MuY2xlYXIoKTsKICAgICAgICAgICAg
IG1fc2hhcGVzLmNsZWFyKCk7CiAgICAgICAgICAgICBtX3NjcmVlbk9yZGVyLmNsZWFyKCk7CiAg
ICAgICAgIH0KQEAgLTk1MSw1ICsxMDM4LDI1IEBAIGJvb2wgVW5pc2NyaWJlSGVscGVyOjpjb250
YWluc01pc3NpbmdHbHlwaHMoY29uc3QgU2hhcGluZyYgc2hhcGluZywKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK3N0YXRpYyBPUEVOVFlQRV9UQUcgY29udmVydEZlYXR1cmVUYWcoY29uc3QgU3Ry
aW5nJiB0YWcpCit7CisgICAgcmV0dXJuICgodGFnWzBdICYgMHhGRikgfCAoKHRhZ1sxXSAmIDB4
RkYpIDw8IDgpIHwgKCh0YWdbMl0gJiAweEZGKSA8PCAxNikgfCAoKHRhZ1szXSAmIDB4RkYpIDw8
IDI0KSk7Cit9CisKK3ZvaWQgVW5pc2NyaWJlSGVscGVyOjpzZXRSYW5nZVByb3BlcnRpZXMoY29u
c3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdzKQoreworICAgIGlmICghZmVh
dHVyZVNldHRpbmdzIHx8ICFmZWF0dXJlU2V0dGluZ3MtPnNpemUoKSkgeworICAgICAgICBtX2Zl
YXR1cmVSZWNvcmRzLnJlc2l6ZSgwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1f
ZmVhdHVyZVJlY29yZHMucmVzaXplKGZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgpKTsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZmVhdHVyZVNldHRpbmdzLT5zaXplKCk7ICsraSkgeworICAg
ICAgICBtX2ZlYXR1cmVSZWNvcmRzW2ldLmxQYXJhbWV0ZXIgPSBmZWF0dXJlU2V0dGluZ3MtPmF0
KGkpLnZhbHVlKCk7CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHNbaV0udGFnRmVhdHVyZSA9IGNv
bnZlcnRGZWF0dXJlVGFnKGZlYXR1cmVTZXR0aW5ncy0+YXQoaSkudGFnKCkpOworICAgIH0KKyAg
ICBtX3JhbmdlUHJvcGVydGllcy5wb3RmUmVjb3JkcyA9ICZtX2ZlYXR1cmVSZWNvcmRzWzBdOwor
ICAgIG1fcmFuZ2VQcm9wZXJ0aWVzLmNvdGZSZWNvcmRzID0gbV9mZWF0dXJlUmVjb3Jkcy5zaXpl
KCk7Cit9CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5oCmlu
ZGV4IDRiY2RiZDZhY2JhMGIwM2RmMjBmZTkyYzNlNGU0MzVhMDlmYjA4NzcuLjk2ODc3NmYzMzMw
MzExN2JjOWNiNzZkNjk2MWQzMmU5NjkwODkzMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5oCkBA
IC00NCwxMCArNDQsMTIgQEAgY2xhc3MgVW5pc2NyaWJlVGVzdF9Ub29CaWdfVGVzdDsgIC8vIEEg
Z3VuaXQgdGVzdCBmb3IgVW5pc2NyaWJlSGVscGVyLgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3M7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKICNk
ZWZpbmUgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TIDgKICNkZWZpbmUgVU5JU0NSSUJFX0hF
TFBFUl9TVEFDS19DSEFSUyAzMgorI2RlZmluZSBVTklTQ1JJQkVfSEVMUEVSX0ZFQVRVUkVTIDQK
IAogLy8gVGhpcyBvYmplY3Qgc2hvdWxkIGJlIHNhZmUgdG8gY3JlYXRlICYgZGVzdHJveSBmcmVx
dWVudGx5LCBhcyBsb25nIGFzIHRoZQogLy8gY2FsbGVyIHByZXNlcnZlcyB0aGUgc2NyaXB0X2Nh
Y2hlIHdoZW4gcG9zc2libGUgKHRoaXMgZGF0YSBtYXkgYmUgc2xvdyB0bwpAQCAtMTU4LDYgKzE2
MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZGlzYWJsZUZvbnRGYWxsYmFjayA9IHRydWU7CiAg
ICAgfQogCisgICAgLy8gU2V0IFRFWFRSQU5HRV9QUk9QRVJUSUVTIHN0cnVjdHVyZSB3aGljaCBj
b250YWlucworICAgIC8vIE9wZW5UeXBlIGZlYXR1cmUgcmVjb3JkcyBnZW5lcmF0ZWQgZnJvbSBG
b250RmVhdHVyZVNldHRpbmdzLgorICAgIHZvaWQgc2V0UmFuZ2VQcm9wZXJ0aWVzKGNvbnN0IEZv
bnRGZWF0dXJlU2V0dGluZ3MqKTsKKwogICAgIC8vIFlvdSBtdXN0IGNhbGwgdGhpcyBhZnRlciBz
ZXR0aW5nIGFueSBvcHRpb25zIGJ1dCBiZWZvcmUgZG9pbmcgYW55CiAgICAgLy8gb3RoZXIgY2Fs
bHMgbGlrZSBhc2tpbmcgZm9yIHdpZHRocyBvciBkcmF3aW5nLgogICAgIHZvaWQgaW5pdCgpCkBA
IC0zNTgsNyArMzY0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBieSB8aW5wdXR8IGNvbWVzIGZyb20g
U2NyaXB0SXRlbWl6ZSBhbmQgaXMgc3VwcG9zZWQgdG8gY29udGFpbgogICAgIC8vIGNoYXJhY3Rl
cnMgYmVsb25naW5nIHRvIGEgc2luZ2xlIHNjcmlwdCBhc2lkZSBmcm9tIGNoYXJhY3RlcnMgY29t
bW9uIHRvCiAgICAgLy8gYWxsIHNjcmlwdHMgKGUuZy4gc3BhY2UpLgotICAgIGJvb2wgc2hhcGUo
Y29uc3QgVUNoYXIqIGlucHV0LCBpbnQgaXRlbUxlbmd0aCwgaW50IG51bUdseXBocywgU0NSSVBU
X0lURU0mIHJ1biwgU2hhcGluZyYpOworICAgIGJvb2wgc2hhcGUoY29uc3QgVUNoYXIqIGlucHV0
LCBpbnQgaXRlbUxlbmd0aCwgaW50IG51bUdseXBocywgU0NSSVBUX0lURU0mIHJ1biwgT1BFTlRZ
UEVfVEFHLCBTaGFwaW5nJik7CiAKICAgICAvLyBHZXRzIFdpbmRvd3MgZm9udCBkYXRhIGZvciB0
aGUgbmV4dCBiZXN0IGZvbnQgdG8gdHJ5IGluIHRoZSBsaXN0CiAgICAgLy8gb2YgZm9udHMuIFdo
ZW4gdGhlcmUncyBubyBtb3JlIGZvbnQgYXZhaWxhYmxlLCByZXR1cm5zIGZhbHNlCkBAIC00MDgs
NiArNDE0LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U0NSSVBUX0lURU0sIFVOSVNDUklCRV9I
RUxQRVJfU1RBQ0tfUlVOUz4gbV9ydW5zOwogCiAgICAgVmVjdG9yPFNoYXBpbmcsIFVOSVNDUklC
RV9IRUxQRVJfU1RBQ0tfUlVOUz4gbV9zaGFwZXM7CisgICAgVmVjdG9yPE9QRU5UWVBFX1RBRywg
VU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TPiBtX3NjcmlwdFRhZ3M7CiAKICAgICAvLyBUaGlz
IGlzIGEgbWFwcGluZyBiZXR3ZWVuIHJlYWRpbmcgb3JkZXIgYW5kIHNjcmVlbiBvcmRlciBmb3Ig
dGhlIGl0ZW1zLgogICAgIC8vIFVuaXNjcmliZSdzIGl0ZW1zIGFycmF5IGFyZSBpbiByZWFkaW5n
IG9yZGVyLiBGb3IgcmlnaHQtdG8tbGVmdCB0ZXh0LApAQCAtNDE3LDYgKzQyNCwxMSBAQCBwcml2
YXRlOgogICAgIC8vIGdpdmVzIHRoZSBpbmRleCBpbnRvIHRoZSB8bV9ydW5zfCBhbmQgfG1fc2hh
cGVzfCBhcnJheXMgb2YgZWFjaAogICAgIC8vIHN1YnNlcXVlbnQgaXRlbS4KICAgICBWZWN0b3I8
aW50LCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlM+IG1fc2NyZWVuT3JkZXI7CisKKyAgICAv
LyBUaGlzIGNvbnRhaW5zIFVuaXNjcmliZSdzIE9wZW5UeXBlIGZlYXR1cmUgc2V0dGluZ3MuIFRo
aXMgc3RydWN0dXJlCisgICAgLy8gaXMgZmlsbGVkIGJ5IHVzaW5nIFdlYktpdCdzIHxGb250RmVh
dHVyZVNldHRpbmdzfC4KKyAgICBURVhUUkFOR0VfUFJPUEVSVElFUyBtX3JhbmdlUHJvcGVydGll
czsKKyAgICBWZWN0b3I8T1BFTlRZUEVfRkVBVFVSRV9SRUNPUkQsIFVOSVNDUklCRV9IRUxQRVJf
RkVBVFVSRVM+IG1fZmVhdHVyZVJlY29yZHM7CiB9OwogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
VW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcAppbmRleCAxNjUwM2U4NGVm
MWI2ZWEzNjgzM2EwZGVkZWRjNTZkY2ZlMzcyZGU2Li5hZDlkZDQ5ZDQxNDRiMTM1YzA1Mzc3NDYy
YWFmZDVhMTYxODc3MjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNw
cApAQCAtNTMsNiArNTMsNyBAQCBVbmlzY3JpYmVIZWxwZXJUZXh0UnVuOjpVbmlzY3JpYmVIZWxw
ZXJUZXh0UnVuKGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBzZXRTcGFjZVdpZHRoKGZvbnQuc3Bh
Y2VXaWR0aCgpKTsKICAgICBzZXRXb3JkU3BhY2luZyhmb250LndvcmRTcGFjaW5nKCkpOwogICAg
IHNldEFzY2VudChmb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpOworICAgIHNldFJhbmdlUHJv
cGVydGllcyhmb250LmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygpKTsKIAogICAg
IGluaXQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106396</attachid>
            <date>2011-09-06 00:50:41 -0700</date>
            <delta_ts>2011-09-07 00:29:59 -0700</delta_ts>
            <desc>Patch V3</desc>
            <filename>bug-65904-20110906165039.patch</filename>
            <type>text/plain</type>
            <size>22540</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ1NDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMzFiZWQ4ZWIyOTA0ZTlmMjE4OGNm
NWZjYzA5YzI3MmJkOTYxZDA3Li5hYjFiOTMwYzgwYjQzNTgxMjNiY2U3MGYxMmY1ZTIwMjZjZmM2
M2FlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDktMDUgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50IGZv
bnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAorCisgICAgICAg
IEFkZHMgZXhwZWN0YXRpb25zIG9mIGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmlu
Zy5odG1sIGZvciBDaHJvbWl1bSB3aW4gcG9ydC4gU2luY2UgVW5pc2NpcmJlIE9wZW5UeXBlIEFQ
SXMgYXJlIG5vdCBhdmFpbGFibGUgb24gV2luWFAgYnkgZGVmYXVsdCwgdGhlIHRlc3QgY291bGQg
ZmFpbCBvbiBXaW5YUC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0OiBWSVNUQSBhbmQgV0lONyBzaG91bGQgcGFzcyBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmcuaHRtbC4KKwogMjAxMS0wOS0wNSAgSm9obiBLbm90dGVuYmVsdCAgPGprbm90
dGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBUYWtlIHBhZ2VTY2FsZUZhY3RvciBpbnRvIGFj
Y291bnQgZm9yIE1vdXNlUmVsYXRlZEV2ZW50cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmct
ZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2NzczMvZm9u
dC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmE1
MzM5NTczNDFkMmViNDJiYjc5NjBhZGVjMzIzOTI2NmRiZjRmYwpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgNTA1MAp6Y21lSExZZnpJezh2WD8zQkRYcUxxQyFPMUQoJVdtNXlCLVQrTGxybTNEdmQr
JVQqJTgwd3pGJjBKJGxzKiVsUkIKemlsfCZOOWp6X30wVUlGUGtebktGNz5HNU1hTFg0V0clMTd0
QT84THh2aTQ3PnYlNWRHeVpka1hiKUk/V28jJm5SCnpKPG9IX25lKVgqczNAMD4rY3lGTDtCd0B7
X20yYUI/TT91JmlGMkBkOW9oMmM3VnA9fkpMZStmJlNCMV5WS05ETQp6WE12RlB3NGVZP0t0Uys7
XnQ0bj1hNV5SKDZCP1FaT0hWeiRLa2RONXB1cD5rKWs2VFZgUkl9TjR9VmZudCYmWFMKemp7bjh4
KDZQV2dpPyM5PVVHVk1KI0x1cF9zQ19kZD9ze0pOPzBFRUZwKndYZER3aFRUJnh9R2U5c3FqcXlQ
RStaCnopeTRfZnglYn15SXcxKGR1X2kjKSpVOEMtdD03cGk1UXVmPTZqR3xuSF9kaXN8N2NpYGgo
SFE/Uk4qI2lwNGU0cgp6UjEpJCttYkljRnhRc1Q1UTRGcHQ2MUN2THE/cXsla3Z6dHAqdiVDU0hB
cDlmZyo/ZnpDPGk4a0dWbW5+WWlGbi0KeldvKTFMMTwkNDQ/QGhXZ0x1RUhJRm5yT3FtTD5QSz50
NWJqRDd2SF9OSVZVcHpVb0tvUCpXbUJ3Jmw9Y2NJVCZiCnoxdnY7XkA+VGdRWE1kWH5BcUBHaSNs
REIob0EmQWt4IUtea1kmU2hvNWBwJFBqIUUxPnxDWSh4UX1ySURWRiExUwp6bHA4d1A5Mjx2THZo
a2FTPVh2fSljPyhgalMjdlRlbEEyXkhCaklqLXZ4dl5VVjVyNER1MUYqJHdOYyg3NjBZK2oKeiY2
JXJ7bTVzNlpDMmZTbjt9cDRGK1ZZJn1aPD1kWGRUQG54K1BRTjFSOWY/eVFWWHtHbHZNVkJpR0pO
ZXdBJjU/Cnp1RFlpTy0mJFpAaEBxfjhoYkg0Knh5d2U9OVQ4SDRMVyFnYEU7OEZHOGVHfW91bGYy
bUVQaiorUDRIPnV0UXhnMQp6Y3dkUH1ofld0KWpCaEZJZiZOfCZmdkp+Y0B6cStEQ1c/VEVLYFA2
Nz45Jm48aUBoa2Y7SWVhaWYjcH47U2pqRy0KenJWaEw1XigodjI8dT1NJCswOFh4eXBBd3BwQWZI
X3huc3lpXl4rY1UlJn17M2xNaDB2I0RIT1dyYD5AMShVQjE1Cno3fDk4MjFBcCpoKnAqYmN4KDxU
IW5BKyNjcW9MaHh7KncmUVd3TTNwYTBMeHh1OUVWIWE4fXRTU0p1KlctK0wqOQp6WGpGQ0p7aWR3
QGo3UEN7QlFGST5vPz5uSkdwMUhXK1drcVgpdEhKVzE9RkY2UXtZWEt1enxrWUUjMHRSRSpLWT0K
eiZKUEo/dmlLfjQwTTAhWnFSWT83P2VDOHdednxAd2VmJjtVMXV7WTl0KkJtNTk5WjdiQCUrZ3Ur
dSVAQlVDLVYkCnpkeyFZQkReTGRHZ0JyTkVMY0R4JEh2LXx9M2ZZIyRxYlJuaXYoM0dmcXxVYiVC
Mz1iXiFgcjdDQWNiVCRAdVQhPgp6Q2VZJV89XykqRTl+Y2xFczMwWGJpNEU9ZkUrQHt0Kyg9Jjc2
QFZCRVgzX0JXIW8pRkd8N0JZUnZMdyRXVVd4YVEKelM8JlBwXlgyPVlpJURlb2E7aU47TENuMkE8
aCQqdDFhJEVDSE5iWiVUZSZVJExwZ1JESTNkS24+PXF4alg4X2peCnpWdCUrU1ErNVJ1O2B8cWFr
dzEwc0JXUnpHMyhxUn1vMmRhKURXZ0xZK1UmUk42SHY5PDhCUVo2PzlrOXQ8WnFkOAp6YXZUS0No
KjduQTFOTmF8Izw2Pn1gXmw9cnlwYUF6YnFGRHRWZSkyS0YoSnNaJDtwSVN2d0pQbV8pOSEjd3RC
MjwKekxRdFVeaklAfkpGSUw2IWd5QFRTOUo5TENXbzdseiQzR1IhWCMyQkpAXzI3dXl7azAzb0BD
eFV2dmhtZShTciU9CnpuPnB5R2B9dSlNPiZvYjtrIUNqelJ9OTdMUV5eWXlnO0sraDMxZWp7T080
PVJOOV9EfSpwKjc+O3FNM34tMDVCSgp6aTFpP0dkdSZvQ2NBKmZfdFVGPU8oTTFsJj1CR01JUzst
fCl7T31XPD9mMXhpK3BUfVRyfHVkSG0oZHZONHQ9Um0KemZGYFF5X3NYISlWdCpARXp6UW4jRWIk
VTh3ZGNBZEhGKT9+JGcxIWhwSTlIdVR4cVAqPE9NRGx7SCVMKjw0VUNACnpLX1Z6RkdmaTU5eEtq
ZVNvOWxxPVdxQjdfe1dJXiNlWUFTKyZReExXaCF1eX11YyVVbj5FRXVaelIycXVZTkMqWgp6eSRN
ajlZfmBZfmR0JkIxSl5ISEdJNm15OWY4cyUlQ3lwb1lPaEAoY2NXTkxQYyliSms2IVExWmBLUGxM
WGd2eygKenA3eWMlckoxaFZvM1hxcjZlJUJfd089O2RjX3RrfW1CRzEmZnE/LXZpNnh7LSRRKktR
LUI3JXBzZntTP01aJUkzCnokKldxS3QhZE4hNS04Y1p3UFF7Skw1amw8WHYkYHZZKyM1dnFqI31Z
bihUSU5zY0xMdU8jM0hnQSglaVdUKSlMVQp6US1kUH43UGpBflhHJVJYV0d8dzY8XjY4OExiPH02
OVgjXmgpaE49V1klJjNnX3xSPzkyJW5jSClQJjB2ZExwNUIKenBQTEU+UnJCYWU4bHJ0dktISEAj
KTYqdyFHPExlUT1VKHFQakNHcEstVlhQN3R9Um58b2h5MERtLXBWamJzOzdZCnohbUYlfShZMHgm
d0YoajF6aTJ2MjNTSihuNHBoZD1vM2FBeW18ZzNkY0ElKThMeiV0bUZMRzdWWjRkfWVkQiUpVwp6
cGJEcmhgezwqeVVqPHpDcUsqWTN1TVBNdj9lKzZfNmRDOXo0SVdTcTxfRHNjZlBLcDZMIzlKOGcp
aSM4O21HazAKenIpeTgwTE45Q3AtcTUpMzB1Q0tiU3FENT9AQlRZNS1gY2E/OGxjPl9JfTQ7ekA9
OX0xJlQoZ1hSaEtFQkJaTXdfCnpJZE9vJmlUeT8jbEhHX3Z0LTJTVl81Y3F5YmxSTD5vVzBjM1kx
eiF3ZUs2WTFVUmpyaj9rXk8lSWc8Ml5IQ3Qpdgp6bn4oPXdmVzFjTipIentqWUwtM3M1QH1LWVdz
fGpOZ14yVE4jQzZaaEB5fGlpck9fJWJnK2wxelF6PUt5VkdHOTkKejhncnxIUEFXPGhpMFo0JTYw
TFd6QlM1YHpFRn5nJCM+aiZTVkYrWX1BMShvWWV9T1dYNW4tN15DfH4kO2NEUWpeCno1RnhFbSs/
cTZfKS1xTyRLPFNlaENePGhQOzUmTUIze0VGbGV7RkwlQSY7YyFuSzI4aG9xP3J+a0ZwflRXX1RF
Tgp6cWNwUndtNEJSR3BMQig2NX1UKD1WdjhjSTlXMDB2bDVSSXIxIUhvaktsU3Y+ISFnQjg1M2VS
NDhjJmRicC1ZQ00Kekw9MV44ZTJOQ2xIaDBqP3VGP2FoY09rSVokO0pyeGxqfFI4byg0aS1jPkVV
QyYxcThHTlYoPT10SDBFRStWKHNlCnpPMTheZjAhNlg8eGtnSWdUa3tXSTRqd0RgeXBISShGYSlm
JndBJUptWmU+Uz83Pm9NQl97aD42X2RDOGYhVilBPwp6JW9Gc2c3UzA1Uz9kdztMQyorJDRwVUxm
aWJrITVwOzdkPzQ1PFBfMWVXQTltcDlyXmlYWV83d2tWR3tCaE0wU2AKelVxY3VPUEx0KjEoZGpP
dytiZ28hWUMxIVRoVSFHfSRJMXpCRntmalhsMzFzNktQZiQldExabSZiJHJRLWtXe0A7CnpyQE9m
PnE/b1hyeSFMSk0zM0VGP2BYcGZmc0ZyNkA0Mm5BNTFifHhPO1hDTk1lTCVgI1BjbTcrbWJKNkth
YTwzJAp6fDAqSXV7NnpyUnxFc3QqJE5nYD5naUZKT3MqUklJblU9a05kKG89dSg5TCNaY21EPGU/
akt5eGRlXyEmb30rVFAKem95Qn0qUW41MiYmPXcwKlI2KnI4WXliPCZJIX5GVmF2NlNpT1p8KTEw
cD5IPHF+N2d4Rj1HKjIpSkpfNTBjSXB7Cno2JU4zWFhgV051SXtWYFhXblllV1BzbWo/VCg8PDVC
KGVkaHRpWXl9MnlXTzBwcjxiQCNuPDlKXzN8dS1QakJwWQp6Yk82amwqSzlNQHNWYFFhWHModmIq
Wl91bCYtRWlLUiREKkI8eUsxKEJeRWYoOWVsZmFON0ZIMWp6UXh0VGQ4PSEKelBvfClwMDdKTURO
ZGJVfFF7RWw2enx3RWQlaEcjeW4yX2YmaCVQJXxVY0tANlVpPlpSNH10bDd1OVJFazBSWXFyCnpu
dlJweEJ8Izl2c2grMWN6R25afG1qNGdndz4xNko7cWl4PCl7XzdHeTxWSCkrNkAyVTAkLUVGbmsz
ZEZ2RjN2UgpkOHk4cmRJMVMxNW9YMn5mejVhez9qenByflordGhVYDB0U0pXMTBXfQoKbGl0ZXJh
bCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0td2luL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0
dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2Y5YTAzZDM0MGRlNmE5
YWVmMTY1ZWMzMGQyNmU4MDI4OGRkZTc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmlu
Zy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4
NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAor
ICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU4NAorICAgICAgUmVuZGVy
QmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDQwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDc4M3gzOQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDIzNTogIlRlc3QgZm9yIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4gIgorICAgICAg
ICAgIHRleHQgcnVuIGF0ICgyMzUsMCkgd2lkdGggNTQ4OiAiVGhlIGZpcnN0IHdvcmQgb2YgdGhl
IGZvbGxvd2luZyB0aHJlZSB3b3JkcyBzaG91bGQgYmUgZGlzcGxheWVkIGxpa2UgXCJXZWJLaXRc
Iiwgd2hpbGUgb3RoZXJzIgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDIwKSB3aWR0aCAyMTc6
ICJzaG91bGQgYmUgZGlzcGxheWVkIGFzIGJsYWNrIGJveGVzLiIKKyAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDU2KSBzaXplIDc4NHgxNworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAzMHgxNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDMw
OiAiV2ViS2l0IgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNzMpIHNpemUgNzg0eDE3
CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDk2eDE2CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTY6ICJXZWJLaXQiCisgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCw5MCkgc2l6ZSA3ODR4MTcKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgwLDApIHNpemUgOTZ4MTYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA5
NjogIldlYktpdCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dAppbmRleCBkYzRhNzNhZDRmZjVjODg2OTQ4M2QzNDIwYjNjZjBmOGU1
YzYzYTc0Li44OWZmMzM4NWIzZDY2MTBiZGM4ZTllMTExYmMyNGMwZWRmZjllZTg4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CkBAIC0zNTkwLDcgKzM1OTAsNyBAQCBCVUdXSzY1OTUxIFdJTiBERUJVRyA6IHdlYmF1ZGlvL21p
eGluZy5odG1sID0gQ1JBU0gKIEJVR1dLNjU5NTEgTElOVVggTUFDIERFQlVHIDogd2ViYXVkaW8v
bWl4aW5nLmh0bWwgPSBDUkFTSCBQQVNTCiBCVUdXSzY1OTUxIExJTlVYIE1BQyBERUJVRyA6IHdl
YmF1ZGlvL3Rlc3QtYmFzaWMuaHRtbCA9IENSQVNIIFBBU1MKIAotQlVHV0s2Mzc5NiBNQUMgV0lO
IDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwgPSBNSVNTSU5HIEZB
SUwKK0JVR1dLNjM3OTYgTUFDIFhQIDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVy
aW5nLmh0bWwgPSBQQVNTIE1JU1NJTkcgRkFJTAogCiAvLyBOZXcgdGVzdCBpbiByOTMwNjgKIEJV
R1dLNjYyNjggV0lOIE1BQyA6IGVkaXRpbmcvZGVsZXRpbmcvcmVnaW9uYWwtaW5kaWNhdG9ycy5o
dG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGIwN2ZlNzdmMDQyYTViZmVkMWMzMGQxNGM0ZDBmYjhh
ODJkMzFhZWUuLjIxNzM5YTMyZmFjYjBmNzMzODVlMWI3ODk4MWE1ZGQ0ODBiNmYyNzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0wOS0wNSAgS2VuaWNoaSBJc2hpYmFzaGkgIDxi
YXNoaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBJbXBsZW1lbnQgZm9udCBz
aGFwaW5nIHdpdGggZm9udC1mZWF0dXJlLXNldHRpbmdzIG9uIFdpbmRvd3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1OTA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFVuaXNjcmliZSdzIE9wZW5U
eXBlIEFQSXMgdG8gc2hhcGUgY29tcGxleCB0ZXh0IHRvIHN1cHBvcnQgLXdlYmtpdC1mb250LWZl
YXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBjc3MzL2Zv
bnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCBzaG91bGQgcGFzcyBieSB0aGlzIHBh
dGNoLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVs
cGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRPcGVuVHlwZUZ1bmN0aW9ucyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVyOjpVbmlzY3JpYmVIZWxwZXIpOiBD
YWxscyBsb2FkT3BlblR5cGVGdW5jdGlvbnMgaWYgbmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6
VW5pc2NyaWJlSGVscGVyOjpmaWxsUnVucyk6IFVzZXMgU2NyaXB0SXRlbWl6ZU9wZW5UeXBlKCkg
aWYgcG9zc2libGUuCisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OnNoYXBlKTog
VXNlcyBTY3JpcHRTaGFwZU9wZW5UeXBlKCkgaWYgcG9zc2libGUuCisgICAgICAgIChXZWJDb3Jl
OjpVbmlzY3JpYmVIZWxwZXI6OmZpbGxTaGFwZXMpOiBBZGRzIE9wZW5UeXBlIHNjcmlwdCB0YWcg
YXMgYW4gYXJndW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0RmVhdHVyZVRhZyk6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVyOjpzZXRSYW5nZVByb3BlcnRp
ZXMpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3Jp
YmVIZWxwZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3Jp
YmVIZWxwZXJUZXh0UnVuLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlclRl
eHRSdW46OlVuaXNjcmliZUhlbHBlclRleHRSdW4pOiBDYWxscyBzZXRSYW5nZVByb3BlcnRpZXMo
KS4KKwogMjAxMS0wOS0wNSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjk0NTM3LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVs
cGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNj
cmliZUhlbHBlci5jcHAKaW5kZXggMzhkNzRiN2U3NDgwYWQ2OTBiZTNlMDMzOGM4NDNiN2I4YmM1
NWEyMS4uM2EyYWIzZmQ4NzVhOTg5MTkxN2VjY2FjMTdmZTVlNDg1ZjYxOTE5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVs
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9V
bmlzY3JpYmVIZWxwZXIuY3BwCkBAIC00MSw2ICs0MSw0MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKKy8vIFRoZSBmdW5jdGlvbiB0eXBlcyBmb3IgU2NyaXB0SXRlbWl6ZU9wZW5UeXBlKCkg
YW5kIFNjcmlwdFNoYXBlT3BlblR5cGUoKS4KKy8vIFdlIHdhbnQgdG8gdXNlIHRoZXNlIGZ1bmN0
aW9ucyBmb3IgT3BlblR5cGUgZmVhdHVyZSBzdXBwb3J0LCBidXQgd2UgY2FuJ3QKKy8vIGNhbGwg
dGhlbSBkaXJlY3RseSBiZWNhdXNlIHVzcDEwLmRsbCBkb2VzIG5vdCBhbHdheXMgaGF2ZSB0aGVt
LgorLy8gSW5zdGVhZCwgd2UgdXNlIEdldFByb2NBZGRyZXNzKCkgdG8gY2hlY2sgd2hldGhlciB3
ZSBjYW4gYWN0dWFsbHkgdXNlIHRoZXNlCisvLyBmdW5jdGlvbi4gSWYgd2UgY2FuJ3QgdXNlIHRo
ZXNlIGZ1bmN0aW9ucywgd2Ugc3Vic3RpdHV0ZSBTY3JpcHRJdGVtemUoKSBhbmQKKy8vIFNjcmlw
dFNoYXBlKCkuCit0eXBlZGVmIEhSRVNVTFQgKFdJTkFQSSAqU2NyaXB0SXRlbWl6ZU9wZW5UeXBl
RnVuYykoY29uc3QgV0NIQVIqLCBpbnQsIGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTQ1JJUFRfQ09OVFJPTCosCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU0NSSVBU
X1NUQVRFKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBTQ1JJUFRfSVRFTSosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgT1BFTlRZUEVfVEFHKiwgaW50Kik7Cit0eXBlZGVmIEhSRVNVTFQgKFdJ
TkFQSSAqU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMpKEhEQywgU0NSSVBUX0NBQ0hFKiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NSSVBUX0FOQUxZ
U0lTKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
T1BFTlRZUEVfVEFHLCBPUEVOVFlQRV9UQUcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCosIFRFWFRSQU5HRV9QUk9QRVJUSUVTKiosCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCwgY29uc3Qg
V0NIQVIqLCBpbnQsIGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgV09SRCosIFNDUklQVF9DSEFSUFJPUCosCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdPUkQqLCBTQ1JJUFRfR0xZUEhQUk9QKiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Kik7
CisKK3N0YXRpYyBTY3JpcHRJdGVtaXplT3BlblR5cGVGdW5jIGdTY3JpcHRJdGVtaXplT3BlblR5
cGVGdW5jID0gMDsKK3N0YXRpYyBTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYyBnU2NyaXB0U2hhcGVP
cGVuVHlwZUZ1bmMgPSAwOworc3RhdGljIGJvb2wgZ09wZW5UeXBlRnVuY3Rpb25zTG9hZGVkID0g
ZmFsc2U7CisKK3N0YXRpYyB2b2lkIGxvYWRPcGVuVHlwZUZ1bmN0aW9ucygpCit7CisgICAgSE1P
RFVMRSBoTW9kdWxlID0gR2V0TW9kdWxlSGFuZGxlKEwidXNwMTAiKTsKKyAgICBpZiAoaE1vZHVs
ZSkgeworICAgICAgICBnU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYyA9IHJlaW50ZXJwcmV0X2Nh
c3Q8U2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYz4oR2V0UHJvY0FkZHJlc3MoaE1vZHVsZSwgIlNj
cmlwdEl0ZW1pemVPcGVuVHlwZSIpKTsKKyAgICAgICAgZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5j
ID0gcmVpbnRlcnByZXRfY2FzdDxTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYz4oR2V0UHJvY0FkZHJl
c3MoaE1vZHVsZSwgIlNjcmlwdFNoYXBlT3BlblR5cGUiKSk7CisgICAgfQorICAgIGdPcGVuVHlw
ZUZ1bmN0aW9uc0xvYWRlZCA9IHRydWU7Cit9CisKIC8vIEhGT05UIGlzIHRoZSAnaW5jYXJuYXRp
b24nIG9mICdldmVyeXRoaW5nJyBhYm91dCBmb250LCBidXQgaXQncyBhbiBvcGFxdWUKIC8vIGhh
bmRsZSBhbmQgd2UgY2FuJ3QgZGlyZWN0bHkgcXVlcnkgaXQgdG8gbWFrZSBhIG5ldyBIRk9OVCBz
aGFyaW5nCiAvLyBpdHMgY2hhcmFjdGVyaXN0aWNzIChoZWlnaHQsIHN0eWxlLCBldGMpIGV4Y2Vw
dCBmb3IgZmFtaWx5IG5hbWUuCkBAIC05Miw2ICsxMjYsOCBAQCBVbmlzY3JpYmVIZWxwZXI6OlVu
aXNjcmliZUhlbHBlcihjb25zdCBVQ2hhciogaW5wdXQsCiAKIHsKICAgICBtX2xvZ2ZvbnQubGZG
YWNlTmFtZVswXSA9IDA7CisgICAgaWYgKCFnT3BlblR5cGVGdW5jdGlvbnNMb2FkZWQpCisgICAg
ICAgIGxvYWRPcGVuVHlwZUZ1bmN0aW9ucygpOwogfQogCiBVbmlzY3JpYmVIZWxwZXI6On5Vbmlz
Y3JpYmVIZWxwZXIoKQpAQCAtNDM4LDYgKzQ3NCw3IEBAIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpm
aWxsUnVucygpCiB7CiAgICAgSFJFU1VMVCBocjsKICAgICBtX3J1bnMucmVzaXplKFVOSVNDUklC
RV9IRUxQRVJfU1RBQ0tfUlVOUyk7CisgICAgbV9zY3JpcHRUYWdzLnJlc2l6ZShVTklTQ1JJQkVf
SEVMUEVSX1NUQUNLX1JVTlMpOwogCiAgICAgU0NSSVBUX1NUQVRFIGlucHV0U3RhdGU7CiAgICAg
aW5wdXRTdGF0ZS51QmlkaUxldmVsID0gbV9pc1J0bDsKQEAgLTQ5MiwxMCArNTI5LDM1IEBAIHZv
aWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsUnVucygpCiAgICAgICAgIC8vIEl0IHNlZW1zIHRvIGJl
IGRvaW5nIGF0IGxlYXN0IHR3byBwYXNzZXMsIHRoZSBmaXJzdCB3aGVyZSBpdCBwdXRzIGEKICAg
ICAgICAgLy8gbG90IG9mIGludGVybWVkaWF0ZSBkYXRhIGludG8gb3VyIGl0ZW1zLCBhbmQgdGhl
IHNlY29uZCB3aGVyZSBpdAogICAgICAgICAvLyBjb2xsYXRlcyB0aGVtLgotICAgICAgICBociA9
IFNjcmlwdEl0ZW1pemUobV9pbnB1dCwgbV9pbnB1dExlbmd0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9ydW5zLnNpemUoKSkgLSAxLCAmaW5wdXRDb250
cm9sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlucHV0U3RhdGUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAmbV9ydW5zWzBdLCAmbnVtYmVyT2ZJdGVtcyk7CisgICAgICAgIGlm
IChnU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYykgeworICAgICAgICAgICAgaHIgPSBnU2NyaXB0
SXRlbWl6ZU9wZW5UeXBlRnVuYyhtX2lucHV0LCBtX2lucHV0TGVuZ3RoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fcnVucy5z
aXplKCkpIC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JmlucHV0Q29udHJvbCwgJmlucHV0U3RhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZtX3J1bnNbMF0sICZtX3NjcmlwdFRhZ3NbMF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZudW1iZXJPZkl0ZW1zKTsKKyAgICAg
ICAgICAgIGlmIChTVUNDRUVERUQoaHIpKSB7CisgICAgICAgICAgICAgICAgLy8gUGFjayBjb25z
ZWN1dGl2ZSBydW5zLCB0aGUgc2NyaXB0IHRhZyBvZiB3aGljaCBhcmUKKyAgICAgICAgICAgICAg
ICAvLyBTQ1JJUFRfVEFHX1VOS05PV04sIHRvIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJ1bnMuCisg
ICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1iZXJPZkl0ZW1zOyArK2kpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc2NyaXB0VGFnc1tpXSA9PSBTQ1JJUFRfVEFHX1VO
S05PV04pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGludCBqID0gMTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdoaWxlIChpICsgaiA8IG51bWJlck9mSXRlbXMgJiYgbV9zY3JpcHRUYWdz
W2kgKyBqXSA9PSBTQ1JJUFRfVEFHX1VOS05PV04pCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKytqOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC0taikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1fcnVucy5yZW1vdmUoaSArIDEsIGopOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fc2NyaXB0VGFncy5yZW1vdmUoaSArIDEsIGopOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG51bWJlck9mSXRlbXMgLT0gajsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBtX3NjcmlwdFRhZ3MucmVzaXplKG51bWJlck9mSXRlbXMpOworICAgICAgICAgICAg
fQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaHIgPSBTY3JpcHRJdGVtaXplKG1faW5w
dXQsIG1faW5wdXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8aW50PihtX3J1bnMuc2l6ZSgpKSAtIDEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJmlucHV0Q29udHJvbCwgJmlucHV0U3RhdGUsICZtX3J1bnNbMF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJm51bWJlck9mSXRlbXMpOworICAgICAgICB9CiAgICAgICAg
IGlmIChTVUNDRUVERUQoaHIpKSB7CiAgICAgICAgICAgICBtX3J1bnMucmVzaXplKG51bWJlck9m
SXRlbXMpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC01MDcsNiArNTY5LDcgQEAgdm9pZCBVbmlz
Y3JpYmVIZWxwZXI6OmZpbGxSdW5zKCkKICAgICAgICAgfQogICAgICAgICAvLyBUaGVyZSB3YXMg
bm90IGVub3VnaCBpdGVtcyBmb3IgaXQgdG8gd3JpdGUgaW50bywgZXhwYW5kLgogICAgICAgICBt
X3J1bnMucmVzaXplKG1fcnVucy5zaXplKCkgKiAyKTsKKyAgICAgICAgbV9zY3JpcHRUYWdzLnJl
c2l6ZShtX3J1bnMuc2l6ZSgpKTsKICAgICB9CiB9CiAKQEAgLTUxNCwxMSArNTc3LDE0IEBAIGJv
b2wgVW5pc2NyaWJlSGVscGVyOjpzaGFwZShjb25zdCBVQ2hhciogaW5wdXQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IGl0ZW1MZW5ndGgsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IG51bUdseXBocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ1JJUFRf
SVRFTSYgcnVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5UWVBFX1RBRyBzY3Jp
cHRUYWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhcGluZyYgc2hhcGluZykKIHsK
ICAgICBIRk9OVCBoZm9udCA9IG1faGZvbnQ7CiAgICAgU0NSSVBUX0NBQ0hFKiBzY3JpcHRDYWNo
ZSA9IG1fc2NyaXB0Q2FjaGU7CiAgICAgU0NSSVBUX0ZPTlRQUk9QRVJUSUVTKiBmb250UHJvcGVy
dGllcyA9IG1fZm9udFByb3BlcnRpZXM7CisgICAgVmVjdG9yPFNDUklQVF9DSEFSUFJPUCwgVU5J
U0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gY2hhclByb3BzOworICAgIFZlY3RvcjxTQ1JJUFRf
R0xZUEhQUk9QLCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJTPiBnbHlwaFByb3BzOwogICAg
IGludCBhc2NlbnQgPSBtX2FzY2VudDsKICAgICBXT1JEIHNwYWNlR2x5cGggPSBtX3NwYWNlR2x5
cGg7CiAgICAgSERDIHRlbXBEQyA9IDA7CkBAIC01NDEsNiArNjA3LDggQEAgYm9vbCBVbmlzY3Jp
YmVIZWxwZXI6OnNoYXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwKICAgICAgICAgc2hhcGluZy5tX2xv
Z3MucmVzaXplKGl0ZW1MZW5ndGgpOwogICAgICAgICBzaGFwaW5nLm1fZ2x5cGhzLnJlc2l6ZShu
dW1HbHlwaHMpOwogICAgICAgICBzaGFwaW5nLm1fdmlzdWFsQXR0cmlidXRlcy5yZXNpemUobnVt
R2x5cGhzKTsKKyAgICAgICAgY2hhclByb3BzLnJlc2l6ZShpdGVtTGVuZ3RoKTsKKyAgICAgICAg
Z2x5cGhQcm9wcy5yZXNpemUobnVtR2x5cGhzKTsKIAogI2lmZGVmIFBVUklGWQogICAgICAgICAv
LyBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01MzA5
CkBAIC01NjEsMTMgKzYyOSwyMyBAQCBib29sIFVuaXNjcmliZUhlbHBlcjo6c2hhcGUoY29uc3Qg
VUNoYXIqIGlucHV0LAogICAgICAgICBaZXJvTWVtb3J5KCZzaGFwaW5nLm1fZ2x5cGhzWzBdLAog
ICAgICAgICAgICAgICAgICAgIHNpemVvZihzaGFwaW5nLm1fZ2x5cGhzWzBdKSAqIHNoYXBpbmcu
bV9nbHlwaHMuc2l6ZSgpKTsKICNlbmRpZgotCiAgICAgICAgIC8vIEZpcmVmb3ggc2V0cyBTQ1JJ
UFRfQU5BTFlTSVMuU0NSSVBUX1NUQVRFLmZEaXNwbGF5WldHIHRvIHRydWUKICAgICAgICAgLy8g
aGVyZS4gSXMgdGhhdCB3aGF0IHdlIHdhbnQ/IEl0IHdpbGwgZGlzcGxheSBjb250cm9sIGNoYXJh
Y3RlcnMuCi0gICAgICAgIGhyID0gU2NyaXB0U2hhcGUodGVtcERDLCBzY3JpcHRDYWNoZSwgaW5w
dXQsIGl0ZW1MZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbnVtR2x5cGhzLCAmcnVu
LmEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXBpbmcubV9nbHlwaHNbMF0sICZzaGFw
aW5nLm1fbG9nc1swXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX3Zpc3Vh
bEF0dHJpYnV0ZXNbMF0sICZnZW5lcmF0ZWRHbHlwaHMpOworICAgICAgICBpZiAoZ1NjcmlwdFNo
YXBlT3BlblR5cGVGdW5jKSB7CisgICAgICAgICAgICBURVhUUkFOR0VfUFJPUEVSVElFUyogcmFu
Z2VQcm9wcyA9IG1fZmVhdHVyZVJlY29yZHMuc2l6ZSgpID8gJm1fcmFuZ2VQcm9wZXJ0aWVzIDog
MDsKKyAgICAgICAgICAgIGhyID0gZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jKHRlbXBEQywgc2Ny
aXB0Q2FjaGUsICZydW4uYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNjcmlwdFRhZywgMCwgJml0ZW1MZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAmcmFuZ2VQcm9wcywgcmFuZ2VQcm9wcyA/IDEgOiAwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQsIGl0ZW1MZW5ndGgsIG51
bUdseXBocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFw
aW5nLm1fbG9nc1swXSwgJmNoYXJQcm9wc1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fZ2x5cGhzWzBdLCAmZ2x5cGhQcm9wc1swXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnZW5lcmF0ZWRHbHlwaHMp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaHIgPSBTY3JpcHRTaGFwZSh0ZW1wREMs
IHNjcmlwdENhY2hlLCBpbnB1dCwgaXRlbUxlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtR2x5cGhzLCAmcnVuLmEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZz
aGFwaW5nLm1fZ2x5cGhzWzBdLCAmc2hhcGluZy5tX2xvZ3NbMF0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZzaGFwaW5nLm1fdmlzdWFsQXR0cmlidXRlc1swXSwgJmdlbmVyYXRlZEds
eXBocyk7CisgICAgICAgIH0KICAgICAgICAgaWYgKGhyID09IEVfUEVORElORykgewogICAgICAg
ICAgICAgLy8gQWxsb2NhdGUgdGhlIERDLgogICAgICAgICAgICAgdGVtcERDID0gR2V0REMoMCk7
CkBAIC02NjQsNiArNzQyLDEyIEBAIGJvb2wgVW5pc2NyaWJlSGVscGVyOjpzaGFwZShjb25zdCBV
Q2hhciogaW5wdXQsCiAgIGNsZWFudXA6CiAgICAgc2hhcGluZy5tX2dseXBocy5yZXNpemUoZ2Vu
ZXJhdGVkR2x5cGhzKTsKICAgICBzaGFwaW5nLm1fdmlzdWFsQXR0cmlidXRlcy5yZXNpemUoZ2Vu
ZXJhdGVkR2x5cGhzKTsKKyAgICAvLyBJZiB3ZSB1c2UgU2NyaXB0U2hhcGVPcGVuVHlwZSgpLCB2
aXN1YWwgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBmb3IgZWFjaAorICAgIC8vIGNoYXJhY3RlcnMg
YXJlIHN0b3JlZCBpbiB8Z2x5cGhQcm9wc1tpXS5zdmF8LgorICAgIGlmIChnU2NyaXB0U2hhcGVP
cGVuVHlwZUZ1bmMpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBnZW5lcmF0ZWRHbHlw
aHM7ICsraSkKKyAgICAgICAgICAgIG1lbWNweSgmc2hhcGluZy5tX3Zpc3VhbEF0dHJpYnV0ZXNb
aV0sICZnbHlwaFByb3BzW2ldLnN2YSwgc2l6ZW9mKFNDUklQVF9WSVNBVFRSKSk7CisgICAgfQog
ICAgIHNoYXBpbmcubV9hZHZhbmNlLnJlc2l6ZShnZW5lcmF0ZWRHbHlwaHMpOwogICAgIHNoYXBp
bmcubV9vZmZzZXRzLnJlc2l6ZShnZW5lcmF0ZWRHbHlwaHMpOwogICAgIGlmICh0ZW1wREMpIHsK
QEAgLTcwNCw3ICs3ODgsNyBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFNoYXBlcygpCiAg
ICAgICAgIC8vIENvbnZlcnQgYSBzdHJpbmcgdG8gYSBnbHlwaCBzdHJpbmcgdHJ5aW5nIHRoZSBw
cmltYXJ5IGZvbnQsIGZvbnRzIGluCiAgICAgICAgIC8vIHRoZSBmYWxsYmFjayBsaXN0IGFuZCB0
aGVuIHNjcmlwdC1zcGVjaWZpYyBsYXN0IHJlc29ydCBmb250LgogICAgICAgICBTaGFwaW5nJiBz
aGFwaW5nID0gbV9zaGFwZXNbaV07Ci0gICAgICAgIGlmICghc2hhcGUoJm1faW5wdXRbc3RhcnRJ
dGVtXSwgaXRlbUxlbmd0aCwgbnVtR2x5cGhzLCBtX3J1bnNbaV0sIHNoYXBpbmcpKQorICAgICAg
ICBpZiAoIXNoYXBlKCZtX2lucHV0W3N0YXJ0SXRlbV0sIGl0ZW1MZW5ndGgsIG51bUdseXBocywg
bV9ydW5zW2ldLCBtX3NjcmlwdFRhZ3NbaV0sIHNoYXBpbmcpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgLy8gQXQgdGhlIG1vbWVudCwgdGhlIG9ubHkgdGltZSBtX2Rpc2FibGVG
b250RmFsbGJhY2sgaXMgc2V0IGlzCkBAIC03NDMsNiArODI3LDcgQEAgdm9pZCBVbmlzY3JpYmVI
ZWxwZXI6OmZpbGxTaGFwZXMoKQogICAgICAgICAgICAgLy8gU29tZSBlcnJvciB3ZSBkb24ndCBr
bm93IGhvdyB0byBoYW5kbGUuIE51a2UgYWxsIG9mIG91ciBkYXRhCiAgICAgICAgICAgICAvLyBz
aW5jZSB3ZSBjYW4ndCBkZWFsIHdpdGggcGFydGlhbGx5IHZhbGlkIGRhdGEgbGF0ZXIuCiAgICAg
ICAgICAgICBtX3J1bnMuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fc2NyaXB0VGFncy5jbGVhcigp
OwogICAgICAgICAgICAgbV9zaGFwZXMuY2xlYXIoKTsKICAgICAgICAgICAgIG1fc2NyZWVuT3Jk
ZXIuY2xlYXIoKTsKICAgICAgICAgfQpAQCAtOTUxLDUgKzEwMzYsMjUgQEAgYm9vbCBVbmlzY3Jp
YmVIZWxwZXI6OmNvbnRhaW5zTWlzc2luZ0dseXBocyhjb25zdCBTaGFwaW5nJiBzaGFwaW5nLAog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIE9QRU5UWVBFX1RBRyBjb252ZXJ0RmVhdHVy
ZVRhZyhjb25zdCBTdHJpbmcmIHRhZykKK3sKKyAgICByZXR1cm4gKCh0YWdbMF0gJiAweEZGKSB8
ICgodGFnWzFdICYgMHhGRikgPDwgOCkgfCAoKHRhZ1syXSAmIDB4RkYpIDw8IDE2KSB8ICgodGFn
WzNdICYgMHhGRikgPDwgMjQpKTsKK30KKwordm9pZCBVbmlzY3JpYmVIZWxwZXI6OnNldFJhbmdl
UHJvcGVydGllcyhjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MpCit7
CisgICAgaWYgKCFmZWF0dXJlU2V0dGluZ3MgfHwgIWZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgpKSB7
CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHMucmVzaXplKDApOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9mZWF0dXJlUmVjb3Jkcy5yZXNpemUoZmVhdHVyZVNldHRpbmdzLT5zaXpl
KCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmZWF0dXJlU2V0dGluZ3MtPnNpemUo
KTsgKytpKSB7CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHNbaV0ubFBhcmFtZXRlciA9IGZlYXR1
cmVTZXR0aW5ncy0+YXQoaSkudmFsdWUoKTsKKyAgICAgICAgbV9mZWF0dXJlUmVjb3Jkc1tpXS50
YWdGZWF0dXJlID0gY29udmVydEZlYXR1cmVUYWcoZmVhdHVyZVNldHRpbmdzLT5hdChpKS50YWco
KSk7CisgICAgfQorICAgIG1fcmFuZ2VQcm9wZXJ0aWVzLnBvdGZSZWNvcmRzID0gJm1fZmVhdHVy
ZVJlY29yZHNbMF07CisgICAgbV9yYW5nZVByb3BlcnRpZXMuY290ZlJlY29yZHMgPSBtX2ZlYXR1
cmVSZWNvcmRzLnNpemUoKTsKK30KIAogfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhl
bHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2Ny
aWJlSGVscGVyLmgKaW5kZXggNGJjZGJkNmFjYmEwYjAzZGYyMGZlOTJjM2U0ZTQzNWEwOWZiMDg3
Ny4uOTY4Nzc2ZjMzMzAzMTE3YmM5Y2I3NmQ2OTYxZDMyZTk2OTA4OTMwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2Ny
aWJlSGVscGVyLmgKQEAgLTQ0LDEwICs0NCwxMiBAQCBjbGFzcyBVbmlzY3JpYmVUZXN0X1Rvb0Jp
Z19UZXN0OyAgLy8gQSBndW5pdCB0ZXN0IGZvciBVbmlzY3JpYmVIZWxwZXIuCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgRm9udEZlYXR1cmVTZXR0aW5nczsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKIAogI2RlZmluZSBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlMgOAogI2RlZmlu
ZSBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJTIDMyCisjZGVmaW5lIFVOSVNDUklCRV9IRUxQ
RVJfRkVBVFVSRVMgNAogCiAvLyBUaGlzIG9iamVjdCBzaG91bGQgYmUgc2FmZSB0byBjcmVhdGUg
JiBkZXN0cm95IGZyZXF1ZW50bHksIGFzIGxvbmcgYXMgdGhlCiAvLyBjYWxsZXIgcHJlc2VydmVz
IHRoZSBzY3JpcHRfY2FjaGUgd2hlbiBwb3NzaWJsZSAodGhpcyBkYXRhIG1heSBiZSBzbG93IHRv
CkBAIC0xNTgsNiArMTYwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9kaXNhYmxlRm9udEZhbGxi
YWNrID0gdHJ1ZTsKICAgICB9CiAKKyAgICAvLyBTZXQgVEVYVFJBTkdFX1BST1BFUlRJRVMgc3Ry
dWN0dXJlIHdoaWNoIGNvbnRhaW5zCisgICAgLy8gT3BlblR5cGUgZmVhdHVyZSByZWNvcmRzIGdl
bmVyYXRlZCBmcm9tIEZvbnRGZWF0dXJlU2V0dGluZ3MuCisgICAgdm9pZCBzZXRSYW5nZVByb3Bl
cnRpZXMoY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyopOworCiAgICAgLy8gWW91IG11c3QgY2Fs
bCB0aGlzIGFmdGVyIHNldHRpbmcgYW55IG9wdGlvbnMgYnV0IGJlZm9yZSBkb2luZyBhbnkKICAg
ICAvLyBvdGhlciBjYWxscyBsaWtlIGFza2luZyBmb3Igd2lkdGhzIG9yIGRyYXdpbmcuCiAgICAg
dm9pZCBpbml0KCkKQEAgLTM1OCw3ICszNjQsNyBAQCBwcml2YXRlOgogICAgIC8vIGJ5IHxpbnB1
dHwgY29tZXMgZnJvbSBTY3JpcHRJdGVtaXplIGFuZCBpcyBzdXBwb3NlZCB0byBjb250YWluCiAg
ICAgLy8gY2hhcmFjdGVycyBiZWxvbmdpbmcgdG8gYSBzaW5nbGUgc2NyaXB0IGFzaWRlIGZyb20g
Y2hhcmFjdGVycyBjb21tb24gdG8KICAgICAvLyBhbGwgc2NyaXB0cyAoZS5nLiBzcGFjZSkuCi0g
ICAgYm9vbCBzaGFwZShjb25zdCBVQ2hhciogaW5wdXQsIGludCBpdGVtTGVuZ3RoLCBpbnQgbnVt
R2x5cGhzLCBTQ1JJUFRfSVRFTSYgcnVuLCBTaGFwaW5nJik7CisgICAgYm9vbCBzaGFwZShjb25z
dCBVQ2hhciogaW5wdXQsIGludCBpdGVtTGVuZ3RoLCBpbnQgbnVtR2x5cGhzLCBTQ1JJUFRfSVRF
TSYgcnVuLCBPUEVOVFlQRV9UQUcsIFNoYXBpbmcmKTsKIAogICAgIC8vIEdldHMgV2luZG93cyBm
b250IGRhdGEgZm9yIHRoZSBuZXh0IGJlc3QgZm9udCB0byB0cnkgaW4gdGhlIGxpc3QKICAgICAv
LyBvZiBmb250cy4gV2hlbiB0aGVyZSdzIG5vIG1vcmUgZm9udCBhdmFpbGFibGUsIHJldHVybnMg
ZmFsc2UKQEAgLTQwOCw2ICs0MTQsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxTQ1JJUFRfSVRF
TSwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TPiBtX3J1bnM7CiAKICAgICBWZWN0b3I8U2hh
cGluZywgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TPiBtX3NoYXBlczsKKyAgICBWZWN0b3I8
T1BFTlRZUEVfVEFHLCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlM+IG1fc2NyaXB0VGFnczsK
IAogICAgIC8vIFRoaXMgaXMgYSBtYXBwaW5nIGJldHdlZW4gcmVhZGluZyBvcmRlciBhbmQgc2Ny
ZWVuIG9yZGVyIGZvciB0aGUgaXRlbXMuCiAgICAgLy8gVW5pc2NyaWJlJ3MgaXRlbXMgYXJyYXkg
YXJlIGluIHJlYWRpbmcgb3JkZXIuIEZvciByaWdodC10by1sZWZ0IHRleHQsCkBAIC00MTcsNiAr
NDI0LDExIEBAIHByaXZhdGU6CiAgICAgLy8gZ2l2ZXMgdGhlIGluZGV4IGludG8gdGhlIHxtX3J1
bnN8IGFuZCB8bV9zaGFwZXN8IGFycmF5cyBvZiBlYWNoCiAgICAgLy8gc3Vic2VxdWVudCBpdGVt
LgogICAgIFZlY3RvcjxpbnQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfUlVOUz4gbV9zY3JlZW5P
cmRlcjsKKworICAgIC8vIFRoaXMgY29udGFpbnMgVW5pc2NyaWJlJ3MgT3BlblR5cGUgZmVhdHVy
ZSBzZXR0aW5ncy4gVGhpcyBzdHJ1Y3R1cmUKKyAgICAvLyBpcyBmaWxsZWQgYnkgdXNpbmcgV2Vi
S2l0J3MgfEZvbnRGZWF0dXJlU2V0dGluZ3N8LgorICAgIFRFWFRSQU5HRV9QUk9QRVJUSUVTIG1f
cmFuZ2VQcm9wZXJ0aWVzOworICAgIFZlY3RvcjxPUEVOVFlQRV9GRUFUVVJFX1JFQ09SRCwgVU5J
U0NSSUJFX0hFTFBFUl9GRUFUVVJFUz4gbV9mZWF0dXJlUmVjb3JkczsKIH07CiAKIH0gIC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uY3BwCmlu
ZGV4IDE2NTAzZTg0ZWYxYjZlYTM2ODMzYTBkZWRlZGM1NmRjZmUzNzJkZTYuLmFkOWRkNDlkNDE0
NGIxMzVjMDUzNzc0NjJhYWZkNWExNjE4NzcyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhl
bHBlclRleHRSdW4uY3BwCkBAIC01Myw2ICs1Myw3IEBAIFVuaXNjcmliZUhlbHBlclRleHRSdW46
OlVuaXNjcmliZUhlbHBlclRleHRSdW4oY29uc3QgVGV4dFJ1biYgcnVuLAogICAgIHNldFNwYWNl
V2lkdGgoZm9udC5zcGFjZVdpZHRoKCkpOwogICAgIHNldFdvcmRTcGFjaW5nKGZvbnQud29yZFNw
YWNpbmcoKSk7CiAgICAgc2V0QXNjZW50KGZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSk7Cisg
ICAgc2V0UmFuZ2VQcm9wZXJ0aWVzKGZvbnQuZm9udERlc2NyaXB0aW9uKCkuZmVhdHVyZVNldHRp
bmdzKCkpOwogCiAgICAgaW5pdCgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106551</attachid>
            <date>2011-09-07 00:27:43 -0700</date>
            <delta_ts>2011-10-04 01:39:07 -0700</delta_ts>
            <desc>Patch V4</desc>
            <filename>bug-65904-20110907162742.patch</filename>
            <type>text/plain</type>
            <size>26871</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQ2NDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMTg0NmQwNjIzZDNiNmNiY2QzNGQ4
MmYwMWU2Mzg3MGI2ZWM0ZTdjLi41MGIzMDA1Y2FlOGVkOWVmZWNiODIwZmJiOGE3MjA1NDViZDFi
YzJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDktMDUgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50IGZv
bnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAorCisgICAgICAg
IEFkZHMgZXhwZWN0YXRpb25zIG9mIGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmlu
Zy5odG1sIGZvciBDaHJvbWl1bSB3aW4gcG9ydC4gU2luY2UgVW5pc2NpcmJlIE9wZW5UeXBlIEFQ
SXMgYXJlIG5vdCBhdmFpbGFibGUgb24gV2luWFAgYnkgZGVmYXVsdCwgdGhlIHRlc3QgY291bGQg
ZmFpbCBvbiBXaW5YUC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0OiBWSVNUQSBhbmQgV0lONyBzaG91bGQgcGFzcyBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmcuaHRtbC4KKwogMjAxMS0wOS0wNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAoU2FmYXJpIDUuMSAtIFRvVCk6IEZpbGUg
aW5wdXQgcmV0YWlucyBpdHMgZmlsZSBpY29uIHdoZW4gdGhlIHZhbHVlIGlzIHJlc2V0CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vY3NzMy9mb250LWZlYXR1
cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmctZXhwZWN0
ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZhNTMzOTU3MzQxZDJlYjQyYmI3OTYwYWRlYzMyMzkyNjZkYmY0
ZmMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUwNTAKemNtZUhMWWZ6SXs4dlg/M0JEWHFMcUMh
TzFEKCVXbTV5Qi1UK0xscm0zRHZkKyVUKiU4MHd6RiYwSiRscyolbFJCCnppbHwmTjlqel99MFVJ
RlBrXm5LRjc+RzVNYUxYNFdHJTE3dEE/OEx4dmk0Nz52JTVkR3laZGtYYilJP1dvIyZuUgp6Sjxv
SF9uZSlYKnMzQDA+K2N5Rkw7QndAe19tMmFCP00/dSZpRjJAZDlvaDJjN1ZwPX5KTGUrZiZTQjFe
VktORE0KelhNdkZQdzRlWT9LdFMrO150NG49YTVeUig2Qj9RWk9IVnokS2tkTjVwdXA+aylrNlRW
YFJJfU40fVZmbnQmJlhTCnpqe244eCg2UFdnaT8jOT1VR1ZNSiNMdXBfc0NfZGQ/c3tKTj8wRUVG
cCp3WGREd2hUVCZ4fUdlOXNxanF5UEUrWgp6KXk0X2Z4JWJ9eUl3MShkdV9pIykqVThDLXQ9N3Bp
NVF1Zj02akd8bkhfZGlzfDdjaWBoKEhRP1JOKiNpcDRlNHIKelIxKSQrbWJJY0Z4UXNUNVE0RnB0
NjFDdkxxP3F7JWt2enRwKnYlQ1NIQXA5ZmcqP2Z6QzxpOGtHVm1ufllpRm4tCnpXbykxTDE8JDQ0
P0BoV2dMdUVISUZuck9xbUw+UEs+dDViakQ3dkhfTklWVXB6VW9Lb1AqV21CdyZsPWNjSVQmYgp6
MXZ2O15APlRnUVhNZFh+QXFAR2kjbERCKG9BJkFreCFLXmtZJlNobzVgcCRQaiFFMT58Q1koeFF9
cklEVkYhMVMKemxwOHdQOTI8dkx2aGthUz1Ydn0pYz8oYGpTI3ZUZWxBMl5IQmpJai12eHZeVVY1
cjREdTFGKiR3TmMoNzYwWStqCnomNiVye201czZaQzJmU247fXA0RitWWSZ9Wjw9ZFhkVEBueCtQ
UU4xUjlmP3lRVlh7R2x2TVZCaUdKTmV3QSY1Pwp6dURZaU8tJiRaQGhAcX44aGJINCp4eXdlPTlU
OEg0TFchZ2BFOzhGRzhlR31vdWxmMm1FUGoqK1A0SD51dFF4ZzEKemN3ZFB9aH5XdClqQmhGSWYm
TnwmZnZKfmNAenErRENXP1RFS2BQNjc+OSZuPGlAaGtmO0llYWlmI3B+O1NqakctCnpyVmhMNV4o
KHYyPHU9TSQrMDhYeHlwQXdwcEFmSF94bnN5aV5eK2NVJSZ9ezNsTWgwdiNESE9XcmA+QDEoVUIx
NQp6N3w5ODIxQXAqaCpwKmJjeCg8VCFuQSsjY3FvTGh4eyp3JlFXd00zcGEwTHh4dTlFViFhOH10
U1NKdSpXLStMKjkKelhqRkNKe2lkd0BqN1BDe0JRRkk+bz8+bkpHcDFIVytXa3FYKXRISlcxPUZG
NlF7WVhLdXp8a1lFIzB0UkUqS1k9CnomSlBKP3ZpS340ME0wIVpxUlk/Nz9lQzh3XnZ8QHdlZiY7
VTF1e1k5dCpCbTU5OVo3YkAlK2d1K3UlQEJVQy1WJAp6ZHshWUJEXkxkR2dCck5FTGNEeCRIdi18
fTNmWSMkcWJSbml2KDNHZnF8VWIlQjM9Yl4hYHI3Q0FjYlQkQHVUIT4KekNlWSVfPV8pKkU5fmNs
RXMzMFhiaTRFPWZFK0B7dCsoPSY3NkBWQkVYM19CVyFvKUZHfDdCWVJ2THckV1VXeGFRCnpTPCZQ
cF5YMj1ZaSVEZW9hO2lOO0xDbjJBPGgkKnQxYSRFQ0hOYlolVGUmVSRMcGdSREkzZEtuPj1xeGpY
OF9qXgp6VnQlK1NRKzVSdTtgfHFha3cxMHNCV1J6RzMocVJ9bzJkYSlEV2dMWStVJlJONkh2OTw4
QlFaNj85azl0PFpxZDgKemF2VEtDaCo3bkExTk5hfCM8Nj59YF5sPXJ5cGFBemJxRkR0VmUpMktG
KEpzWiQ7cElTdndKUG1fKTkhI3d0QjI8CnpMUXRVXmpJQH5KRklMNiFneUBUUzlKOUxDV283bHok
M0dSIVgjMkJKQF8yN3V5e2swM29AQ3hVdnZobWUoU3IlPQp6bj5weUdgfXUpTT4mb2I7ayFDanpS
fTk3TFFeXll5ZztLK2gzMWVqe09PND1STjlfRH0qcCo3PjtxTTN+LTA1QkoKemkxaT9HZHUmb0Nj
QSpmX3RVRj1PKE0xbCY9QkdNSVM7LXwpe099Vzw/ZjF4aStwVH1Ucnx1ZEhtKGR2TjR0PVJtCnpm
RmBReV9zWCEpVnQqQEV6elFuI0ViJFU4d2RjQWRIRik/fiRnMSFocEk5SHVUeHFQKjxPTURse0gl
TCo8NFVDQAp6S19WekZHZmk1OXhLamVTbzlscT1XcUI3X3tXSV4jZVlBUysmUXhMV2ghdXl9dWMl
VW4+RUV1WnpSMnF1WU5DKloKenkkTWo5WX5gWX5kdCZCMUpeSEhHSTZteTlmOHMlJUN5cG9ZT2hA
KGNjV05MUGMpYkprNiFRMVpgS1BsTFhndnsoCnpwN3ljJXJKMWhWbzNYcXI2ZSVCX3dPPTtkY190
a31tQkcxJmZxPy12aTZ4ey0kUSpLUS1CNyVwc2Z7Uz9NWiVJMwp6JCpXcUt0IWROITUtOGNad1BR
e0pMNWpsPFh2JGB2WSsjNXZxaiN9WW4oVElOc2NMTHVPIzNIZ0EoJWlXVCkpTFUKelEtZFB+N1Bq
QX5YRyVSWFdHfHc2PF42ODhMYjx9NjlYI15oKWhOPVdZJSYzZ198Uj85MiVuY0gpUCYwdmRMcDVC
CnpwUExFPlJyQmFlOGxydHZLSEhAIyk2KnchRzxMZVE9VShxUGpDR3BLLVZYUDd0fVJufG9oeTBE
bS1wVmpiczs3WQp6IW1GJX0oWTB4JndGKGoxemkydjIzU0oobjRwaGQ9bzNhQXltfGczZGNBJSk4
THoldG1GTEc3Vlo0ZH1lZEIlKVcKenBiRHJoYHs8KnlVajx6Q3FLKlkzdU1QTXY/ZSs2XzZkQzl6
NElXU3E8X0RzY2ZQS3A2TCM5SjhnKWkjODttR2swCnpyKXk4MExOOUNwLXE1KTMwdUNLYlNxRDU/
QEJUWTUtYGNhPzhsYz5fSX00O3pAPTl9MSZUKGdYUmhLRUJCWk13Xwp6SWRPbyZpVHk/I2xIR192
dC0yU1ZfNWNxeWJsUkw+b1cwYzNZMXohd2VLNlkxVVJqcmo/a15PJUlnPDJeSEN0KXYKem5+KD13
ZlcxY04qSHp7allMLTNzNUB9S1lXc3xqTmdeMlROI0M2WmhAeXxpaXJPXyViZytsMXpRej1LeVZH
Rzk5Cno4Z3J8SFBBVzxoaTBaNCU2MExXekJTNWB6RUZ+ZyQjPmomU1ZGK1l9QTEob1llfU9XWDVu
LTdeQ3x+JDtjRFFqXgp6NUZ4RW0rP3E2XyktcU8kSzxTZWhDXjxoUDs1Jk1CM3tFRmxle0ZMJUEm
O2MhbksyOGhvcT9yfmtGcH5UV19URU4KenFjcFJ3bTRCUkdwTEIoNjV9VCg9VnY4Y0k5VzAwdmw1
UklyMSFIb2pLbFN2PiEhZ0I4NTNlUjQ4YyZkYnAtWUNNCnpMPTFeOGUyTkNsSGgwaj91Rj9haGNP
a0laJDtKcnhsanxSOG8oNGktYz5FVUMmMXE4R05WKD09dEgwRUUrVihzZQp6TzE4XmYwITZYPHhr
Z0lnVGt7V0k0andEYHlwSEkoRmEpZiZ3QSVKbVplPlM/Nz5vTUJfe2g+Nl9kQzhmIVYpQT8KeiVv
RnNnN1MwNVM/ZHc7TEMqKyQ0cFVMZmliayE1cDs3ZD80NTxQXzFlV0E5bXA5cl5pWFlfN3drVkd7
QmhNMFNgCnpVcWN1T1BMdCoxKGRqT3crYmdvIVlDMSFUaFUhR30kSTF6QkZ7ZmpYbDMxczZLUGYk
JXRMWm0mYiRyUS1rV3tAOwp6ckBPZj5xP29YcnkhTEpNMzNFRj9gWHBmZnNGcjZANDJuQTUxYnx4
TztYQ05NZUwlYCNQY203K21iSjZLYWE8MyQKenwwKkl1ezZ6clJ8RXN0KiROZ2A+Z2lGSk9zKlJJ
SW5VPWtOZChvPXUoOUwjWmNtRDxlP2pLeXhkZV8hJm99K1RQCnpveUJ9KlFuNTImJj13MCpSNipy
OFl5YjwmSSF+RlZhdjZTaU9afCkxMHA+SDxxfjdneEY9RyoyKUpKXzUwY0lwewp6NiVOM1hYYFdO
dUl7VmBYV25ZZVdQc21qP1QoPDw1QihlZGh0aVl5fTJ5V08wcHI8YkAjbjw5Sl8zfHUtUGpCcFkK
emJPNmpsKks5TUBzVmBRYVhzKHZiKlpfdWwmLUVpS1IkRCpCPHlLMShCXkVmKDllbGZhTjdGSDFq
elF4dFRkOD0hCnpQb3wpcDA3Sk1ETmRiVXxRe0VsNnp8d0VkJWhHI3luMl9mJmglUCV8VWNLQDZV
aT5aUjR9dGw3dTlSRWswUllxcgp6bnZScHhCfCM5dnNoKzFjekduWnxtajRnZ3c+MTZKO3FpeDwp
e183R3k8VkgpKzZAMlUwJC1FRm5rM2RGdkYzdlIKZDh5OHJkSTFTMTVvWDJ+Zno1YXs/anpwcn5a
K3RoVWAwdFNKVzEwV30KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1y
ZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2lu
L2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmNmOWEwM2QzNDBkZTZhOWFlZjE2NWVjMzBkMjZlODAyODhkZGU3OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1yZW5kZXJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAw
eDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlckJsb2NrIHtIVE1MfSBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXpl
IDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwwKSBzaXplIDc4NHg0MAorICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3ODN4MzkKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMzU6ICJUZXN0IGZvciBmb250LWZlYXR1cmUtc2V0dGlu
Z3MgcHJvcGVydHkuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMjM1LDApIHdpZHRoIDU0ODog
IlRoZSBmaXJzdCB3b3JkIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUgd29yZHMgc2hvdWxkIGJlIGRp
c3BsYXllZCBsaWtlIFwiV2ViS2l0XCIsIHdoaWxlIG90aGVycyIKKyAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwyMCkgd2lkdGggMjE3OiAic2hvdWxkIGJlIGRpc3BsYXllZCBhcyBibGFjayBib3hl
cy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Nikgc2l6ZSA3ODR4MTcKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzB4MTYKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMCwwKSB3aWR0aCAzMDogIldlYktpdCIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9
IGF0ICgwLDczKSBzaXplIDc4NHgxNworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA5NngxNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDk2OiAiV2Vi
S2l0IgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsOTApIHNpemUgNzg0eDE3CisgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDk2eDE2CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggOTY6ICJXZWJLaXQiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggMzJmOWM1YjJiMTdh
MTM0NTM1YWU5YjU5NzFhZmYyYzNjYjdhMjMyOC4uYjA5Zjg2ODY4ZmI3NGY0MDI2NzJmMzMzODU0
ZTUxMzI2MzE0YjAxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtNDYzLDYgKzQ2MywxMCBAQCBXT05URklYIFNLSVAg
OiBmYXN0L2ZyYW1lcy9jcm9zcy1zaXRlLXRoaXMuaHRtbCA9IEZBSUwKIC8vIHRocm93LiAgVjgg
Zm9sbG93cyB0aGUgc3BlYy4KIFdPTlRGSVggU0tJUCA6IGZhc3QvanMvcmVwYXJzaW5nLXNlbWlj
b2xvbi1pbnNlcnRpb24uaHRtbCA9IEZBSUwKIAorLy8gVGhpcyByZXF1aXJlcyB1c3AxMC5kbGwg
dmVyc2lvbiAxLjYwMCBvciBncmVhdGVyIG9uIFdpbmRvd3MgYW5kCisvLyBpdCBpc24ndCBpbnN0
YWxsZWQgb24gWFAgYnkgZGVmYXVsdC4KK1dPTlRGSVggWFAgOiBjc3MzL2ZvbnQtZmVhdHVyZS1z
ZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCA9IFBBU1MgRkFJTAorCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gTElH
SFRUUEQKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNjQyLDcgKzM2NDYsNyBAQCBCVUdXSzY1OTUxIFdJTiBE
RUJVRyA6IHdlYmF1ZGlvL21peGluZy5odG1sID0gQ1JBU0gKIEJVR1dLNjU5NTEgTElOVVggTUFD
IERFQlVHIDogd2ViYXVkaW8vbWl4aW5nLmh0bWwgPSBDUkFTSCBQQVNTCiBCVUdXSzY1OTUxIExJ
TlVYIE1BQyBERUJVRyA6IHdlYmF1ZGlvL3Rlc3QtYmFzaWMuaHRtbCA9IENSQVNIIFBBU1MKIAot
QlVHV0s2Mzc5NiBNQUMgV0lOIDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5n
Lmh0bWwgPSBNSVNTSU5HIEZBSUwKK0JVR1dLNjM3OTYgTUFDIDogY3NzMy9mb250LWZlYXR1cmUt
c2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwgPSBNSVNTSU5HIEZBSUwKIAogLy8gTmV3IHRlc3QgaW4g
cjkzMDY4CiBCVUdXSzY2MjY4IFdJTiBNQUMgOiBlZGl0aW5nL2RlbGV0aW5nL3JlZ2lvbmFsLWlu
ZGljYXRvcnMuaHRtbCA9IFRFWFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYWFmZjc2NjI2ZWNiYzAyMzkxMWU2
MzJiZTUwMDc1OTA2OGU1NDA4Li4wMGI4Mjk4ZGM4MGY2NjdlZDY1YzU4OGYzOWQ0MGUxM2FlNDRh
YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDktMDUgIEtlbmljaGkgSXNo
aWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVt
ZW50IGZvbnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBVbmlzY3Jp
YmUncyBPcGVuVHlwZSBBUElzIHRvIHNoYXBlIGNvbXBsZXggdGV4dCB0byBzdXBwb3J0IC13ZWJr
aXQtZm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwgc2hvdWxkIHBhc3Mg
YnkgdGhpcyBwYXRjaC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Vu
aXNjcmliZUhlbHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2FkT3BlblR5cGVGdW5jdGlv
bnMpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6VW5pc2NyaWJl
SGVscGVyKTogQ2FsbHMgbG9hZE9wZW5UeXBlRnVuY3Rpb25zIGlmIG5lZWRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMpOiBVc2VzIFNjcmlwdEl0ZW1pemVP
cGVuVHlwZSgpIGlmIHBvc3NpYmxlLgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVy
OjpzaGFwZSk6IFVzZXMgU2NyaXB0U2hhcGVPcGVuVHlwZSgpIGlmIHBvc3NpYmxlLgorICAgICAg
ICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVyOjpmaWxsU2hhcGVzKTogQWRkcyBPcGVuVHlwZSBz
Y3JpcHQgdGFnIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEZlYXR1
cmVUYWcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6c2V0UmFu
Z2VQcm9wZXJ0aWVzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3Jp
YmVIZWxwZXJUZXh0UnVuOjpVbmlzY3JpYmVIZWxwZXJUZXh0UnVuKTogQ2FsbHMgc2V0UmFuZ2VQ
cm9wZXJ0aWVzKCkuCisKIDIwMTEtMDktMDYgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXBsYWNlIHVzYWdlcyBvZiBWZWN0b3I8VUNoYXI+IHdp
dGggZXhpc3RpbmcgU3RyaW5nQnVpbGRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5jcHAKaW5kZXgg
NzQyYjhiN2UzZGE5ODM3NzRlZTZkMzlhZDUxMGM5NTFmODQ0ZmRiMy4uNWE5MDFlYzhmZjI4ODdk
Y2ZhY2MwM2I2YzNhZjFhMGIxNTFkNWZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwCkBA
IC00MSw2ICs0MSw0MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIFRoZSBmdW5jdGlv
biB0eXBlcyBmb3IgU2NyaXB0SXRlbWl6ZU9wZW5UeXBlKCkgYW5kIFNjcmlwdFNoYXBlT3BlblR5
cGUoKS4KKy8vIFdlIHdhbnQgdG8gdXNlIHRoZXNlIGZ1bmN0aW9ucyBmb3IgT3BlblR5cGUgZmVh
dHVyZSBzdXBwb3J0LCBidXQgd2UgY2FuJ3QKKy8vIGNhbGwgdGhlbSBkaXJlY3RseSBiZWNhdXNl
IHVzcDEwLmRsbCBkb2VzIG5vdCBhbHdheXMgaGF2ZSB0aGVtLgorLy8gSW5zdGVhZCwgd2UgdXNl
IEdldFByb2NBZGRyZXNzKCkgdG8gY2hlY2sgd2hldGhlciB3ZSBjYW4gYWN0dWFsbHkgdXNlIHRo
ZXNlCisvLyBmdW5jdGlvbi4gSWYgd2UgY2FuJ3QgdXNlIHRoZXNlIGZ1bmN0aW9ucywgd2Ugc3Vi
c3RpdHV0ZSBTY3JpcHRJdGVtemUoKSBhbmQKKy8vIFNjcmlwdFNoYXBlKCkuCit0eXBlZGVmIEhS
RVNVTFQgKFdJTkFQSSAqU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYykoY29uc3QgV0NIQVIqLCBp
bnQsIGludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBTQ1JJUFRfQ09OVFJPTCosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgU0NSSVBUX1NUQVRFKiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ1JJUFRfSVRFTSosCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BFTlRZ
UEVfVEFHKiwgaW50Kik7Cit0eXBlZGVmIEhSRVNVTFQgKFdJTkFQSSAqU2NyaXB0U2hhcGVPcGVu
VHlwZUZ1bmMpKEhEQywgU0NSSVBUX0NBQ0hFKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU0NSSVBUX0FOQUxZU0lTKiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT1BFTlRZUEVfVEFHLCBPUEVOVFlQ
RV9UQUcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCosIFRFWFRSQU5HRV9QUk9QRVJUSUVTKiosCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCwgY29uc3QgV0NIQVIqLCBpbnQsIGludCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV09SRCosIFND
UklQVF9DSEFSUFJPUCosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdPUkQqLCBTQ1JJUFRfR0xZUEhQUk9QKiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50Kik7CisKK3N0YXRpYyBTY3JpcHRJdGVt
aXplT3BlblR5cGVGdW5jIGdTY3JpcHRJdGVtaXplT3BlblR5cGVGdW5jID0gMDsKK3N0YXRpYyBT
Y3JpcHRTaGFwZU9wZW5UeXBlRnVuYyBnU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMgPSAwOworc3Rh
dGljIGJvb2wgZ09wZW5UeXBlRnVuY3Rpb25zTG9hZGVkID0gZmFsc2U7CisKK3N0YXRpYyB2b2lk
IGxvYWRPcGVuVHlwZUZ1bmN0aW9ucygpCit7CisgICAgSE1PRFVMRSBoTW9kdWxlID0gR2V0TW9k
dWxlSGFuZGxlKEwidXNwMTAiKTsKKyAgICBpZiAoaE1vZHVsZSkgeworICAgICAgICBnU2NyaXB0
SXRlbWl6ZU9wZW5UeXBlRnVuYyA9IHJlaW50ZXJwcmV0X2Nhc3Q8U2NyaXB0SXRlbWl6ZU9wZW5U
eXBlRnVuYz4oR2V0UHJvY0FkZHJlc3MoaE1vZHVsZSwgIlNjcmlwdEl0ZW1pemVPcGVuVHlwZSIp
KTsKKyAgICAgICAgZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jID0gcmVpbnRlcnByZXRfY2FzdDxT
Y3JpcHRTaGFwZU9wZW5UeXBlRnVuYz4oR2V0UHJvY0FkZHJlc3MoaE1vZHVsZSwgIlNjcmlwdFNo
YXBlT3BlblR5cGUiKSk7CisgICAgfQorICAgIGdPcGVuVHlwZUZ1bmN0aW9uc0xvYWRlZCA9IHRy
dWU7Cit9CisKIC8vIEhGT05UIGlzIHRoZSAnaW5jYXJuYXRpb24nIG9mICdldmVyeXRoaW5nJyBh
Ym91dCBmb250LCBidXQgaXQncyBhbiBvcGFxdWUKIC8vIGhhbmRsZSBhbmQgd2UgY2FuJ3QgZGly
ZWN0bHkgcXVlcnkgaXQgdG8gbWFrZSBhIG5ldyBIRk9OVCBzaGFyaW5nCiAvLyBpdHMgY2hhcmFj
dGVyaXN0aWNzIChoZWlnaHQsIHN0eWxlLCBldGMpIGV4Y2VwdCBmb3IgZmFtaWx5IG5hbWUuCkBA
IC05Miw2ICsxMjYsOCBAQCBVbmlzY3JpYmVIZWxwZXI6OlVuaXNjcmliZUhlbHBlcihjb25zdCBV
Q2hhciogaW5wdXQsCiAKIHsKICAgICBtX2xvZ2ZvbnQubGZGYWNlTmFtZVswXSA9IDA7CisgICAg
aWYgKCFnT3BlblR5cGVGdW5jdGlvbnNMb2FkZWQpCisgICAgICAgIGxvYWRPcGVuVHlwZUZ1bmN0
aW9ucygpOwogfQogCiBVbmlzY3JpYmVIZWxwZXI6On5VbmlzY3JpYmVIZWxwZXIoKQpAQCAtNDE4
LDcgKzQ1NCw4IEBAIFdPUkQgVW5pc2NyaWJlSGVscGVyOjpmaXJzdEdseXBoRm9yQ2hhcmFjdGVy
KGludCBjaGFyT2Zmc2V0KSBjb25zdAogdm9pZCBVbmlzY3JpYmVIZWxwZXI6OmZpbGxSdW5zKCkK
IHsKICAgICBIUkVTVUxUIGhyOwotICAgIG1fcnVucy5yZXNpemUoVU5JU0NSSUJFX0hFTFBFUl9T
VEFDS19SVU5TKTsKKyAgICBtX3J1bnMucmVzaXplKGNVbmlzY3JpYmVIZWxwZXJTdGFja1J1bnMp
OworICAgIG1fc2NyaXB0VGFncy5yZXNpemUoY1VuaXNjcmliZUhlbHBlclN0YWNrUnVucyk7CiAK
ICAgICBTQ1JJUFRfU1RBVEUgaW5wdXRTdGF0ZTsKICAgICBpbnB1dFN0YXRlLnVCaWRpTGV2ZWwg
PSBtX2lzUnRsOwpAQCAtNDczLDEwICs1MTAsMzUgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXI6OmZp
bGxSdW5zKCkKICAgICAgICAgLy8gSXQgc2VlbXMgdG8gYmUgZG9pbmcgYXQgbGVhc3QgdHdvIHBh
c3NlcywgdGhlIGZpcnN0IHdoZXJlIGl0IHB1dHMgYQogICAgICAgICAvLyBsb3Qgb2YgaW50ZXJt
ZWRpYXRlIGRhdGEgaW50byBvdXIgaXRlbXMsIGFuZCB0aGUgc2Vjb25kIHdoZXJlIGl0CiAgICAg
ICAgIC8vIGNvbGxhdGVzIHRoZW0uCi0gICAgICAgIGhyID0gU2NyaXB0SXRlbWl6ZShtX2lucHV0
LCBtX2lucHV0TGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8
aW50PihtX3J1bnMuc2l6ZSgpKSAtIDEsICZpbnB1dENvbnRyb2wsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAmaW5wdXRTdGF0ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICZtX3J1
bnNbMF0sICZudW1iZXJPZkl0ZW1zKTsKKyAgICAgICAgaWYgKGdTY3JpcHRJdGVtaXplT3BlblR5
cGVGdW5jKSB7CisgICAgICAgICAgICBociA9IGdTY3JpcHRJdGVtaXplT3BlblR5cGVGdW5jKG1f
aW5wdXQsIG1faW5wdXRMZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9ydW5zLnNpemUoKSkgLSAxLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5wdXRDb250cm9sLCAmaW5wdXRT
dGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1fcnVu
c1swXSwgJm1fc2NyaXB0VGFnc1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJm51bWJlck9mSXRlbXMpOworICAgICAgICAgICAgaWYgKFNVQ0NFRURFRCho
cikpIHsKKyAgICAgICAgICAgICAgICAvLyBQYWNrIGNvbnNlY3V0aXZlIHJ1bnMsIHRoZSBzY3Jp
cHQgdGFnIG9mIHdoaWNoIGFyZQorICAgICAgICAgICAgICAgIC8vIFNDUklQVF9UQUdfVU5LTk9X
TiwgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgcnVucy4KKyAgICAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IG51bWJlck9mSXRlbXM7ICsraSkgeworICAgICAgICAgICAgICAgICAgICBp
ZiAobV9zY3JpcHRUYWdzW2ldID09IFNDUklQVF9UQUdfVU5LTk9XTikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGogPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGkg
KyBqIDwgbnVtYmVyT2ZJdGVtcyAmJiBtX3NjcmlwdFRhZ3NbaSArIGpdID09IFNDUklQVF9UQUdf
VU5LTk9XTikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICArK2o7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoLS1qKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9ydW5z
LnJlbW92ZShpICsgMSwgaik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9zY3JpcHRU
YWdzLnJlbW92ZShpICsgMSwgaik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtYmVy
T2ZJdGVtcyAtPSBqOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIG1fc2NyaXB0VGFncy5y
ZXNpemUobnVtYmVyT2ZJdGVtcyk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBociA9IFNjcmlwdEl0ZW1pemUobV9pbnB1dCwgbV9pbnB1dExlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fcnVucy5zaXpl
KCkpIC0gMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmaW5wdXRDb250cm9sLCAm
aW5wdXRTdGF0ZSwgJm1fcnVuc1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
bnVtYmVyT2ZJdGVtcyk7CisgICAgICAgIH0KICAgICAgICAgaWYgKFNVQ0NFRURFRChocikpIHsK
ICAgICAgICAgICAgIG1fcnVucy5yZXNpemUobnVtYmVyT2ZJdGVtcyk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTQ4OCw2ICs1NTAsNyBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMo
KQogICAgICAgICB9CiAgICAgICAgIC8vIFRoZXJlIHdhcyBub3QgZW5vdWdoIGl0ZW1zIGZvciBp
dCB0byB3cml0ZSBpbnRvLCBleHBhbmQuCiAgICAgICAgIG1fcnVucy5yZXNpemUobV9ydW5zLnNp
emUoKSAqIDIpOworICAgICAgICBtX3NjcmlwdFRhZ3MucmVzaXplKG1fcnVucy5zaXplKCkpOwog
ICAgIH0KIH0KIApAQCAtNDk1LDExICs1NTgsMTQgQEAgYm9vbCBVbmlzY3JpYmVIZWxwZXI6OnNo
YXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg
aXRlbUxlbmd0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVtR2x5cGhzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDUklQVF9JVEVNJiBydW4sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgT1BFTlRZUEVfVEFHIHNjcmlwdFRhZywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBTaGFwaW5nJiBzaGFwaW5nKQogewogICAgIEhGT05UIGhmb250ID0gbV9o
Zm9udDsKICAgICBTQ1JJUFRfQ0FDSEUqIHNjcmlwdENhY2hlID0gbV9zY3JpcHRDYWNoZTsKICAg
ICBTQ1JJUFRfRk9OVFBST1BFUlRJRVMqIGZvbnRQcm9wZXJ0aWVzID0gbV9mb250UHJvcGVydGll
czsKKyAgICBWZWN0b3I8U0NSSVBUX0NIQVJQUk9QLCBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFy
cz4gY2hhclByb3BzOworICAgIFZlY3RvcjxTQ1JJUFRfR0xZUEhQUk9QLCBjVW5pc2NyaWJlSGVs
cGVyU3RhY2tDaGFycz4gZ2x5cGhQcm9wczsKICAgICBpbnQgYXNjZW50ID0gbV9hc2NlbnQ7CiAg
ICAgV09SRCBzcGFjZUdseXBoID0gbV9zcGFjZUdseXBoOwogICAgIEhEQyB0ZW1wREMgPSAwOwpA
QCAtNTIyLDYgKzU4OCw4IEBAIGJvb2wgVW5pc2NyaWJlSGVscGVyOjpzaGFwZShjb25zdCBVQ2hh
ciogaW5wdXQsCiAgICAgICAgIHNoYXBpbmcubV9sb2dzLnJlc2l6ZShpdGVtTGVuZ3RoKTsKICAg
ICAgICAgc2hhcGluZy5tX2dseXBocy5yZXNpemUobnVtR2x5cGhzKTsKICAgICAgICAgc2hhcGlu
Zy5tX3Zpc3VhbEF0dHJpYnV0ZXMucmVzaXplKG51bUdseXBocyk7CisgICAgICAgIGNoYXJQcm9w
cy5yZXNpemUoaXRlbUxlbmd0aCk7CisgICAgICAgIGdseXBoUHJvcHMucmVzaXplKG51bUdseXBo
cyk7CiAKICNpZmRlZiBQVVJJRlkKICAgICAgICAgLy8gaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9w
L2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NTMwOQpAQCAtNTQyLDEzICs2MTAsMjMgQEAgYm9v
bCBVbmlzY3JpYmVIZWxwZXI6OnNoYXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwKICAgICAgICAgWmVy
b01lbW9yeSgmc2hhcGluZy5tX2dseXBoc1swXSwKICAgICAgICAgICAgICAgICAgICBzaXplb2Yo
c2hhcGluZy5tX2dseXBoc1swXSkgKiBzaGFwaW5nLm1fZ2x5cGhzLnNpemUoKSk7CiAjZW5kaWYK
LQogICAgICAgICAvLyBGaXJlZm94IHNldHMgU0NSSVBUX0FOQUxZU0lTLlNDUklQVF9TVEFURS5m
RGlzcGxheVpXRyB0byB0cnVlCiAgICAgICAgIC8vIGhlcmUuIElzIHRoYXQgd2hhdCB3ZSB3YW50
PyBJdCB3aWxsIGRpc3BsYXkgY29udHJvbCBjaGFyYWN0ZXJzLgotICAgICAgICBociA9IFNjcmlw
dFNoYXBlKHRlbXBEQywgc2NyaXB0Q2FjaGUsIGlucHV0LCBpdGVtTGVuZ3RoLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIG51bUdseXBocywgJnJ1bi5hLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICZzaGFwaW5nLm1fZ2x5cGhzWzBdLCAmc2hhcGluZy5tX2xvZ3NbMF0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgJnNoYXBpbmcubV92aXN1YWxBdHRyaWJ1dGVzWzBdLCAmZ2VuZXJhdGVk
R2x5cGhzKTsKKyAgICAgICAgaWYgKGdTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYykgeworICAgICAg
ICAgICAgVEVYVFJBTkdFX1BST1BFUlRJRVMqIHJhbmdlUHJvcHMgPSBtX2ZlYXR1cmVSZWNvcmRz
LnNpemUoKSA/ICZtX3JhbmdlUHJvcGVydGllcyA6IDA7CisgICAgICAgICAgICBociA9IGdTY3Jp
cHRTaGFwZU9wZW5UeXBlRnVuYyh0ZW1wREMsIHNjcmlwdENhY2hlLCAmcnVuLmEsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHRUYWcsIDAsICZpdGVtTGVu
Z3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnJhbmdlUHJv
cHMsIHJhbmdlUHJvcHMgPyAxIDogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlucHV0LCBpdGVtTGVuZ3RoLCBudW1HbHlwaHMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2xvZ3NbMF0sICZjaGFyUHJvcHNb
MF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5t
X2dseXBoc1swXSwgJmdseXBoUHJvcHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmZ2VuZXJhdGVkR2x5cGhzKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIGhyID0gU2NyaXB0U2hhcGUodGVtcERDLCBzY3JpcHRDYWNoZSwgaW5wdXQsIGl0ZW1M
ZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bUdseXBocywgJnJ1bi5hLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX2dseXBoc1swXSwgJnNoYXBp
bmcubV9sb2dzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc2hhcGluZy5tX3Zp
c3VhbEF0dHJpYnV0ZXNbMF0sICZnZW5lcmF0ZWRHbHlwaHMpOworICAgICAgICB9CiAgICAgICAg
IGlmIChociA9PSBFX1BFTkRJTkcpIHsKICAgICAgICAgICAgIC8vIEFsbG9jYXRlIHRoZSBEQy4K
ICAgICAgICAgICAgIHRlbXBEQyA9IEdldERDKDApOwpAQCAtNjQ1LDYgKzcyMywxMiBAQCBib29s
IFVuaXNjcmliZUhlbHBlcjo6c2hhcGUoY29uc3QgVUNoYXIqIGlucHV0LAogICBjbGVhbnVwOgog
ICAgIHNoYXBpbmcubV9nbHlwaHMucmVzaXplKGdlbmVyYXRlZEdseXBocyk7CiAgICAgc2hhcGlu
Zy5tX3Zpc3VhbEF0dHJpYnV0ZXMucmVzaXplKGdlbmVyYXRlZEdseXBocyk7CisgICAgLy8gSWYg
d2UgdXNlIFNjcmlwdFNoYXBlT3BlblR5cGUoKSwgdmlzdWFsIGF0dHJpYnV0ZXMgaW5mb3JtYXRp
b24gZm9yIGVhY2gKKyAgICAvLyBjaGFyYWN0ZXJzIGFyZSBzdG9yZWQgaW4gfGdseXBoUHJvcHNb
aV0uc3ZhfC4KKyAgICBpZiAoZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jKSB7CisgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgZ2VuZXJhdGVkR2x5cGhzOyArK2kpCisgICAgICAgICAgICBtZW1j
cHkoJnNoYXBpbmcubV92aXN1YWxBdHRyaWJ1dGVzW2ldLCAmZ2x5cGhQcm9wc1tpXS5zdmEsIHNp
emVvZihTQ1JJUFRfVklTQVRUUikpOworICAgIH0KICAgICBzaGFwaW5nLm1fYWR2YW5jZS5yZXNp
emUoZ2VuZXJhdGVkR2x5cGhzKTsKICAgICBzaGFwaW5nLm1fb2Zmc2V0cy5yZXNpemUoZ2VuZXJh
dGVkR2x5cGhzKTsKICAgICBpZiAodGVtcERDKSB7CkBAIC02NjgsMTEgKzc1MiwxMSBAQCB2b2lk
IFVuaXNjcmliZUhlbHBlcjo6ZmlsbFNoYXBlcygpCiAgICAgICAgICAgICBpdGVtTGVuZ3RoID0g
bV9ydW5zW2kgKyAxXS5pQ2hhclBvcyAtIHN0YXJ0SXRlbTsKIAogICAgICAgICBpbnQgbnVtR2x5
cGhzOwotICAgICAgICBpZiAoaXRlbUxlbmd0aCA8IFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hB
UlMpIHsKKyAgICAgICAgaWYgKGl0ZW1MZW5ndGggPCBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFy
cykgewogICAgICAgICAgICAgLy8gV2UnbGwgc3RhcnQgb3VyIGJ1ZmZlciBzaXplcyB3aXRoIHRo
ZSBjdXJyZW50IHN0YWNrIHNwYWNlCiAgICAgICAgICAgICAvLyBhdmFpbGFibGUgaW4gb3VyIGJ1
ZmZlcnMgaWYgdGhlIGN1cnJlbnQgaW5wdXQgZml0cy4gQXMgbG9uZyBhcwogICAgICAgICAgICAg
Ly8gaXQgZG9lc24ndCBleHBhbmQgcGFzdCB0aGF0IHdlJ2xsIHNhdmUgYSBsb3Qgb2YgdGltZSBt
YWxsb2NpbmcuCi0gICAgICAgICAgICBudW1HbHlwaHMgPSBVTklTQ1JJQkVfSEVMUEVSX1NUQUNL
X0NIQVJTOworICAgICAgICAgICAgbnVtR2x5cGhzID0gY1VuaXNjcmliZUhlbHBlclN0YWNrQ2hh
cnM7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBXaGVuIHRoZSBpbnB1dCBkb2Vz
bid0IGZpdCwgZ2l2ZSB1cCB3aXRoIHRoZSBzdGFjayBzaW5jZSBpdCB3aWxsCiAgICAgICAgICAg
ICAvLyBhbG1vc3Qgc3VyZWx5IG5vdCBiZSBlbm91Z2ggcm9vbSAodW5sZXNzIHRoZSBpbnB1dCBh
Y3R1YWxseQpAQCAtNjg1LDcgKzc2OSw3IEBAIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsU2hh
cGVzKCkKICAgICAgICAgLy8gQ29udmVydCBhIHN0cmluZyB0byBhIGdseXBoIHN0cmluZyB0cnlp
bmcgdGhlIHByaW1hcnkgZm9udCwgZm9udHMgaW4KICAgICAgICAgLy8gdGhlIGZhbGxiYWNrIGxp
c3QgYW5kIHRoZW4gc2NyaXB0LXNwZWNpZmljIGxhc3QgcmVzb3J0IGZvbnQuCiAgICAgICAgIFNo
YXBpbmcmIHNoYXBpbmcgPSBtX3NoYXBlc1tpXTsKLSAgICAgICAgaWYgKCFzaGFwZSgmbV9pbnB1
dFtzdGFydEl0ZW1dLCBpdGVtTGVuZ3RoLCBudW1HbHlwaHMsIG1fcnVuc1tpXSwgc2hhcGluZykp
CisgICAgICAgIGlmICghc2hhcGUoJm1faW5wdXRbc3RhcnRJdGVtXSwgaXRlbUxlbmd0aCwgbnVt
R2x5cGhzLCBtX3J1bnNbaV0sIG1fc2NyaXB0VGFnc1tpXSwgc2hhcGluZykpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAogICAgICAgICAvLyBBdCB0aGUgbW9tZW50LCB0aGUgb25seSB0aW1lIG1f
ZGlzYWJsZUZvbnRGYWxsYmFjayBpcyBzZXQgaXMKQEAgLTcyNCw2ICs4MDgsNyBAQCB2b2lkIFVu
aXNjcmliZUhlbHBlcjo6ZmlsbFNoYXBlcygpCiAgICAgICAgICAgICAvLyBTb21lIGVycm9yIHdl
IGRvbid0IGtub3cgaG93IHRvIGhhbmRsZS4gTnVrZSBhbGwgb2Ygb3VyIGRhdGEKICAgICAgICAg
ICAgIC8vIHNpbmNlIHdlIGNhbid0IGRlYWwgd2l0aCBwYXJ0aWFsbHkgdmFsaWQgZGF0YSBsYXRl
ci4KICAgICAgICAgICAgIG1fcnVucy5jbGVhcigpOworICAgICAgICAgICAgbV9zY3JpcHRUYWdz
LmNsZWFyKCk7CiAgICAgICAgICAgICBtX3NoYXBlcy5jbGVhcigpOwogICAgICAgICAgICAgbV9z
Y3JlZW5PcmRlci5jbGVhcigpOwogICAgICAgICB9CkBAIC05MzIsNSArMTAxNywyNSBAQCBib29s
IFVuaXNjcmliZUhlbHBlcjo6Y29udGFpbnNNaXNzaW5nR2x5cGhzKGNvbnN0IFNoYXBpbmcmIHNo
YXBpbmcsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitzdGF0aWMgT1BFTlRZUEVfVEFHIGNvbnZl
cnRGZWF0dXJlVGFnKGNvbnN0IFN0cmluZyYgdGFnKQoreworICAgIHJldHVybiAoKHRhZ1swXSAm
IDB4RkYpIHwgKCh0YWdbMV0gJiAweEZGKSA8PCA4KSB8ICgodGFnWzJdICYgMHhGRikgPDwgMTYp
IHwgKCh0YWdbM10gJiAweEZGKSA8PCAyNCkpOworfQorCit2b2lkIFVuaXNjcmliZUhlbHBlcjo6
c2V0UmFuZ2VQcm9wZXJ0aWVzKGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVTZXR0
aW5ncykKK3sKKyAgICBpZiAoIWZlYXR1cmVTZXR0aW5ncyB8fCAhZmVhdHVyZVNldHRpbmdzLT5z
aXplKCkpIHsKKyAgICAgICAgbV9mZWF0dXJlUmVjb3Jkcy5yZXNpemUoMCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBtX2ZlYXR1cmVSZWNvcmRzLnJlc2l6ZShmZWF0dXJlU2V0dGlu
Z3MtPnNpemUoKSk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZlYXR1cmVTZXR0aW5n
cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgbV9mZWF0dXJlUmVjb3Jkc1tpXS5sUGFyYW1ldGVy
ID0gZmVhdHVyZVNldHRpbmdzLT5hdChpKS52YWx1ZSgpOworICAgICAgICBtX2ZlYXR1cmVSZWNv
cmRzW2ldLnRhZ0ZlYXR1cmUgPSBjb252ZXJ0RmVhdHVyZVRhZyhmZWF0dXJlU2V0dGluZ3MtPmF0
KGkpLnRhZygpKTsKKyAgICB9CisgICAgbV9yYW5nZVByb3BlcnRpZXMucG90ZlJlY29yZHMgPSAm
bV9mZWF0dXJlUmVjb3Jkc1swXTsKKyAgICBtX3JhbmdlUHJvcGVydGllcy5jb3RmUmVjb3JkcyA9
IG1fZmVhdHVyZVJlY29yZHMuc2l6ZSgpOworfQogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5p
c2NyaWJlSGVscGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9VbmlzY3JpYmVIZWxwZXIuaAppbmRleCA0YmNkYmQ2YWNiYTBiMDNkZjIwZmU5MmMzZTRlNDM1
YTA5ZmIwODc3Li5jOTNkMjczYTNkMDkyYjYxNjVlMWVmOTlkYzkxYThiMWI2MjU4NzdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3Jp
YmVIZWxwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9VbmlzY3JpYmVIZWxwZXIuaApAQCAtNDQsMTAgKzQ0LDEyIEBAIGNsYXNzIFVuaXNjcmliZVRl
c3RfVG9vQmlnX1Rlc3Q7ICAvLyBBIGd1bml0IHRlc3QgZm9yIFVuaXNjcmliZUhlbHBlci4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGb250RmVhdHVyZVNldHRpbmdzOwogY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OwogCi0jZGVmaW5lIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfUlVOUyA4
Ci0jZGVmaW5lIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlMgMzIKK2NvbnN0IHVuc2lnbmVk
IGNVbmlzY3JpYmVIZWxwZXJTdGFja1J1bnMgPSA4OworY29uc3QgdW5zaWduZWQgY1VuaXNjcmli
ZUhlbHBlclN0YWNrQ2hhcnMgPSAzMjsKK2NvbnN0IHVuc2lnbmVkIGNVbmlzY3JpYmVIZWxwZXJG
ZWF0dXJlcyA9IDQ7CiAKIC8vIFRoaXMgb2JqZWN0IHNob3VsZCBiZSBzYWZlIHRvIGNyZWF0ZSAm
IGRlc3Ryb3kgZnJlcXVlbnRseSwgYXMgbG9uZyBhcyB0aGUKIC8vIGNhbGxlciBwcmVzZXJ2ZXMg
dGhlIHNjcmlwdF9jYWNoZSB3aGVuIHBvc3NpYmxlICh0aGlzIGRhdGEgbWF5IGJlIHNsb3cgdG8K
QEAgLTE1OCw2ICsxNjAsMTAgQEAgcHVibGljOgogICAgICAgICBtX2Rpc2FibGVGb250RmFsbGJh
Y2sgPSB0cnVlOwogICAgIH0KIAorICAgIC8vIFNldCBURVhUUkFOR0VfUFJPUEVSVElFUyBzdHJ1
Y3R1cmUgd2hpY2ggY29udGFpbnMKKyAgICAvLyBPcGVuVHlwZSBmZWF0dXJlIHJlY29yZHMgZ2Vu
ZXJhdGVkIGZyb20gRm9udEZlYXR1cmVTZXR0aW5ncy4KKyAgICB2b2lkIHNldFJhbmdlUHJvcGVy
dGllcyhjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKik7CisKICAgICAvLyBZb3UgbXVzdCBjYWxs
IHRoaXMgYWZ0ZXIgc2V0dGluZyBhbnkgb3B0aW9ucyBidXQgYmVmb3JlIGRvaW5nIGFueQogICAg
IC8vIG90aGVyIGNhbGxzIGxpa2UgYXNraW5nIGZvciB3aWR0aHMgb3IgZHJhd2luZy4KICAgICB2
b2lkIGluaXQoKQpAQCAtMjY5LDcgKzI3NSw3IEBAIHByaXZhdGU6CiAKICAgICAgICAgLy8gR2x5
cGggaW5kaWNlcyBpbiB0aGUgZm9udCB1c2VkIHRvIGRpc3BsYXkgdGhpcyBpdGVtLiBUaGVzZSBp
bmRpY2VzCiAgICAgICAgIC8vIGFyZSBpbiBzY3JlZW4gb3JkZXIuCi0gICAgICAgIFZlY3RvcjxX
T1JELCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJTPiBtX2dseXBoczsKKyAgICAgICAgVmVj
dG9yPFdPUkQsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzPiBtX2dseXBoczsKIAogICAgICAg
ICAvLyBGb3IgZWFjaCBpbnB1dCBjaGFyYWN0ZXIsIHRoaXMgdGVsbHMgdXMgdGhlIGZpcnN0IGds
eXBoIGluZGV4IGl0CiAgICAgICAgIC8vIGdlbmVyYXRlZC4gVGhpcyBpcyB0aGUgb25seSBhcnJh
eSB3aXRoIHNpemUgb2YgdGhlIGlucHV0IGNoYXJzLgpAQCAtMjc4LDIwICsyODQsMjAgQEAgcHJp
dmF0ZToKICAgICAgICAgLy8gY2FuIGdlbmVyYXRlIG9uZSBnbHlwaCwgaW4gd2hpY2ggY2FzZSB0
aGVyZSB3aWxsIGJlIGFkamFjZW50CiAgICAgICAgIC8vIGR1cGxpY2F0ZXMgaW4gdGhpcyBsaXN0
LiBPbmUgY2hhcmFjdGVyIGNhbiBhbHNvIGdlbmVyYXRlIG11bHRpcGxlCiAgICAgICAgIC8vIGds
eXBocywgaW4gd2hpY2ggY2FzZSB0aGVyZSB3aWxsIGJlIHNraXBwZWQgaW5kaWNlcyBpbiB0aGlz
IGxpc3QuCi0gICAgICAgIFZlY3RvcjxXT1JELCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJT
PiBtX2xvZ3M7CisgICAgICAgIFZlY3RvcjxXT1JELCBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFy
cz4gbV9sb2dzOwogCiAgICAgICAgIC8vIEZsYWdzIGFuZCBzdWNoIGZvciBlYWNoIGdseXBoLgot
ICAgICAgICBWZWN0b3I8U0NSSVBUX1ZJU0FUVFIsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hB
UlM+IG1fdmlzdWFsQXR0cmlidXRlczsKKyAgICAgICAgVmVjdG9yPFNDUklQVF9WSVNBVFRSLCBj
VW5pc2NyaWJlSGVscGVyU3RhY2tDaGFycz4gbV92aXN1YWxBdHRyaWJ1dGVzOwogCiAgICAgICAg
IC8vIEhvcml6b250YWwgYWR2YW5jZXMgZm9yIGVhY2ggZ2x5cGggbGlzdGVkIGFib3ZlLCB0aGlz
IGlzIGJhc2ljYWxseQogICAgICAgICAvLyBob3cgd2lkZSBlYWNoIGdseXBoIGlzLgotICAgICAg
ICBWZWN0b3I8aW50LCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJTPiBtX2FkdmFuY2U7Cisg
ICAgICAgIFZlY3RvcjxpbnQsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzPiBtX2FkdmFuY2U7
CiAKICAgICAgICAgLy8gVGhpcyBjb250YWlucyBnbHlwaCBvZmZzZXRzLCBmcm9tIHRoZSBub21p
bmFsIHBvc2l0aW9uIG9mIGEgZ2x5cGguCiAgICAgICAgIC8vIEl0IGlzIHVzZWQgdG8gYWRqdXN0
IHRoZSBwb3NpdGlvbnMgb2YgbXVsdGlwbGUgY29tYmluaW5nIGNoYXJhY3RlcnMKICAgICAgICAg
Ly8gYXJvdW5kL2Fib3ZlL2JlbG93IGJhc2UgY2hhcmFjdGVycyBpbiBhIGNvbnRleHQtc2Vuc2l0
aXZlIG1hbm5lciBzbwogICAgICAgICAvLyB0aGF0IHRoZXkgZG9uJ3QgYnVtcCBhZ2FpbnN0IGVh
Y2ggb3RoZXIgYW5kIHRoZSBiYXNlIGNoYXJhY3Rlci4KLSAgICAgICAgVmVjdG9yPEdPRkZTRVQs
IFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fb2Zmc2V0czsKKyAgICAgICAgVmVjdG9y
PEdPRkZTRVQsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzPiBtX29mZnNldHM7CiAKICAgICAg
ICAgLy8gRmlsbGVkIGJ5IGEgY2FsbCB0byBKdXN0aWZ5LCB0aGlzIGlzIGVtcHR5IGZvciBub25q
dXN0aWZpZWQgdGV4dC4KICAgICAgICAgLy8gSWYgbm9uZW1wdHksIHRoaXMgY29udGFpbnMgdGhl
IGFycmF5IG9mIGp1c3RpZnkgY2hhcmFjdGVycyBmb3IgZWFjaApAQCAtMzAwLDcgKzMwNiw3IEBA
IHByaXZhdGU6CiAgICAgICAgIC8vIFRoaXMgaXMgdGhlIHNhbWUgYXMgdGhlIGFkdmFuY2UgYXJy
YXksIGJ1dCB3aXRoIGV4dHJhIHNwYWNlIGFkZGVkCiAgICAgICAgIC8vIGZvciBzb21lIGNoYXJh
Y3RlcnMuIFRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBnbHlwaCdzIHxqdXN0aWZ5fAogICAgICAg
ICAvLyB3aWR0aCBhbmQgaXQncyB8YWR2YW5jZXwgd2lkdGggaXMgdGhlIGV4dHJhIHNwYWNlIGFk
ZGVkLgotICAgICAgICBWZWN0b3I8aW50LCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJTPiBt
X2p1c3RpZnk7CisgICAgICAgIFZlY3RvcjxpbnQsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJz
PiBtX2p1c3RpZnk7CiAKICAgICAgICAgLy8gU2l6aW5nIGluZm9ybWF0aW9uIGZvciB0aGlzIHJ1
bi4gVGhpcyB0cmVhdHMgdGhlIGVudGlyZSBydW4gYXMgYQogICAgICAgICAvLyBjaGFyYWN0ZXIg
d2l0aCBhIHByZWNlZWRpbmcgYWR2YW5jZSwgd2lkdGgsIGFuZCBlbmRpbmcgYWR2YW5jZS4gIFRo
ZQpAQCAtMzU4LDcgKzM2NCw3IEBAIHByaXZhdGU6CiAgICAgLy8gYnkgfGlucHV0fCBjb21lcyBm
cm9tIFNjcmlwdEl0ZW1pemUgYW5kIGlzIHN1cHBvc2VkIHRvIGNvbnRhaW4KICAgICAvLyBjaGFy
YWN0ZXJzIGJlbG9uZ2luZyB0byBhIHNpbmdsZSBzY3JpcHQgYXNpZGUgZnJvbSBjaGFyYWN0ZXJz
IGNvbW1vbiB0bwogICAgIC8vIGFsbCBzY3JpcHRzIChlLmcuIHNwYWNlKS4KLSAgICBib29sIHNo
YXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwgaW50IGl0ZW1MZW5ndGgsIGludCBudW1HbHlwaHMsIFND
UklQVF9JVEVNJiBydW4sIFNoYXBpbmcmKTsKKyAgICBib29sIHNoYXBlKGNvbnN0IFVDaGFyKiBp
bnB1dCwgaW50IGl0ZW1MZW5ndGgsIGludCBudW1HbHlwaHMsIFNDUklQVF9JVEVNJiBydW4sIE9Q
RU5UWVBFX1RBRywgU2hhcGluZyYpOwogCiAgICAgLy8gR2V0cyBXaW5kb3dzIGZvbnQgZGF0YSBm
b3IgdGhlIG5leHQgYmVzdCBmb250IHRvIHRyeSBpbiB0aGUgbGlzdAogICAgIC8vIG9mIGZvbnRz
LiBXaGVuIHRoZXJlJ3Mgbm8gbW9yZSBmb250IGF2YWlsYWJsZSwgcmV0dXJucyBmYWxzZQpAQCAt
NDA1LDkgKzQxMSwxMCBAQCBwcml2YXRlOgogCiAgICAgLy8gVW5pc2NyaWJlIGJyZWFrcyB0aGUg
dGV4dCBpbnRvIFJ1bnMuIFRoZXNlIGFyZSBvbmUgbGVuZ3RoIG9mIHRleHQgdGhhdCBpcwogICAg
IC8vIGluIG9uZSBzY3JpcHQgYW5kIG9uZSBkaXJlY3Rpb24uIFRoaXMgYXJyYXkgaXMgaW4gcmVh
ZGluZyBvcmRlci4KLSAgICBWZWN0b3I8U0NSSVBUX0lURU0sIFVOSVNDUklCRV9IRUxQRVJfU1RB
Q0tfUlVOUz4gbV9ydW5zOworICAgIFZlY3RvcjxTQ1JJUFRfSVRFTSwgY1VuaXNjcmliZUhlbHBl
clN0YWNrUnVucz4gbV9ydW5zOwogCi0gICAgVmVjdG9yPFNoYXBpbmcsIFVOSVNDUklCRV9IRUxQ
RVJfU1RBQ0tfUlVOUz4gbV9zaGFwZXM7CisgICAgVmVjdG9yPFNoYXBpbmcsIGNVbmlzY3JpYmVI
ZWxwZXJTdGFja1J1bnM+IG1fc2hhcGVzOworICAgIFZlY3RvcjxPUEVOVFlQRV9UQUcsIGNVbmlz
Y3JpYmVIZWxwZXJTdGFja1J1bnM+IG1fc2NyaXB0VGFnczsKIAogICAgIC8vIFRoaXMgaXMgYSBt
YXBwaW5nIGJldHdlZW4gcmVhZGluZyBvcmRlciBhbmQgc2NyZWVuIG9yZGVyIGZvciB0aGUgaXRl
bXMuCiAgICAgLy8gVW5pc2NyaWJlJ3MgaXRlbXMgYXJyYXkgYXJlIGluIHJlYWRpbmcgb3JkZXIu
IEZvciByaWdodC10by1sZWZ0IHRleHQsCkBAIC00MTYsNyArNDIzLDEyIEBAIHByaXZhdGU6CiAg
ICAgLy8gYW5kIHBvc2l0aW9ucy4gVGhpcyBsaXN0IGlzIGluIHNjcmVlbiBvcmRlciBmcm9tIGxl
ZnQgdG8gcmlnaHQsIGFuZAogICAgIC8vIGdpdmVzIHRoZSBpbmRleCBpbnRvIHRoZSB8bV9ydW5z
fCBhbmQgfG1fc2hhcGVzfCBhcnJheXMgb2YgZWFjaAogICAgIC8vIHN1YnNlcXVlbnQgaXRlbS4K
LSAgICBWZWN0b3I8aW50LCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlM+IG1fc2NyZWVuT3Jk
ZXI7CisgICAgVmVjdG9yPGludCwgY1VuaXNjcmliZUhlbHBlclN0YWNrUnVucz4gbV9zY3JlZW5P
cmRlcjsKKworICAgIC8vIFRoaXMgY29udGFpbnMgVW5pc2NyaWJlJ3MgT3BlblR5cGUgZmVhdHVy
ZSBzZXR0aW5ncy4gVGhpcyBzdHJ1Y3R1cmUKKyAgICAvLyBpcyBmaWxsZWQgYnkgdXNpbmcgV2Vi
S2l0J3MgfEZvbnRGZWF0dXJlU2V0dGluZ3N8LgorICAgIFRFWFRSQU5HRV9QUk9QRVJUSUVTIG1f
cmFuZ2VQcm9wZXJ0aWVzOworICAgIFZlY3RvcjxPUEVOVFlQRV9GRUFUVVJFX1JFQ09SRCwgY1Vu
aXNjcmliZUhlbHBlckZlYXR1cmVzPiBtX2ZlYXR1cmVSZWNvcmRzOwogfTsKIAogfSAgLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAKaW5k
ZXggMTY1MDNlODRlZjFiNmVhMzY4MzNhMGRlZGVkYzU2ZGNmZTM3MmRlNi4uYWQ5ZGQ0OWQ0MTQ0
YjEzNWMwNTM3NzQ2MmFhZmQ1YTE2MTg3NzIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVs
cGVyVGV4dFJ1bi5jcHAKQEAgLTUzLDYgKzUzLDcgQEAgVW5pc2NyaWJlSGVscGVyVGV4dFJ1bjo6
VW5pc2NyaWJlSGVscGVyVGV4dFJ1bihjb25zdCBUZXh0UnVuJiBydW4sCiAgICAgc2V0U3BhY2VX
aWR0aChmb250LnNwYWNlV2lkdGgoKSk7CiAgICAgc2V0V29yZFNwYWNpbmcoZm9udC53b3JkU3Bh
Y2luZygpKTsKICAgICBzZXRBc2NlbnQoZm9udC5mb250TWV0cmljcygpLmFzY2VudCgpKTsKKyAg
ICBzZXRSYW5nZVByb3BlcnRpZXMoZm9udC5mb250RGVzY3JpcHRpb24oKS5mZWF0dXJlU2V0dGlu
Z3MoKSk7CiAKICAgICBpbml0KCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109592</attachid>
            <date>2011-10-04 01:39:14 -0700</date>
            <delta_ts>2011-10-04 01:49:44 -0700</delta_ts>
            <desc>Patch for land</desc>
            <filename>bug-65904-20111004173912.patch</filename>
            <type>text/plain</type>
            <size>27089</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY1NzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZDRlNjc0NDRiZGMzZmZlZTMwZWJj
OGUzMjgzM2NmYTgzYzVlYmRlLi41NDFmZTkzODI4ZGVlNDgzNjA0NTA2YWVkNmMxZDE3MGMyOTZm
ZWE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAtMDQgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50IGZv
bnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgZXhwZWN0YXRpb25z
IG9mIGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy5odG1sIGZvciBDaHJvbWl1
bSB3aW4gcG9ydC4gU2luY2UgVW5pc2NpcmJlIE9wZW5UeXBlIEFQSXMgYXJlIG5vdCBhdmFpbGFi
bGUgb24gV2luWFAgYnkgZGVmYXVsdCwgdGhlIHRlc3QgY291bGQgZmFpbCBvbiBXaW5YUC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0OiBWSVNUQSBhbmQgV0lONyBzaG91bGQgcGFzcyBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmcuaHRtbC4KKwogMjAxMS0xMC0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85OTczNDg5PiBSRUdSRVNTSU9OIChy
NjY1OTkpOiAtW0RPTU5vZGUgYm91bmRpbmdCb3hdIHJldHVybnMgdGhlIHplcm8gcmVjdCBmb3Ig
U1ZHIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhNTMzOTU3MzQxZDJlYjQyYmI3
OTYwYWRlYzMyMzkyNjZkYmY0ZmMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUwNTAKemNtZUhM
WWZ6SXs4dlg/M0JEWHFMcUMhTzFEKCVXbTV5Qi1UK0xscm0zRHZkKyVUKiU4MHd6RiYwSiRscyol
bFJCCnppbHwmTjlqel99MFVJRlBrXm5LRjc+RzVNYUxYNFdHJTE3dEE/OEx4dmk0Nz52JTVkR3la
ZGtYYilJP1dvIyZuUgp6SjxvSF9uZSlYKnMzQDA+K2N5Rkw7QndAe19tMmFCP00/dSZpRjJAZDlv
aDJjN1ZwPX5KTGUrZiZTQjFeVktORE0KelhNdkZQdzRlWT9LdFMrO150NG49YTVeUig2Qj9RWk9I
VnokS2tkTjVwdXA+aylrNlRWYFJJfU40fVZmbnQmJlhTCnpqe244eCg2UFdnaT8jOT1VR1ZNSiNM
dXBfc0NfZGQ/c3tKTj8wRUVGcCp3WGREd2hUVCZ4fUdlOXNxanF5UEUrWgp6KXk0X2Z4JWJ9eUl3
MShkdV9pIykqVThDLXQ9N3BpNVF1Zj02akd8bkhfZGlzfDdjaWBoKEhRP1JOKiNpcDRlNHIKelIx
KSQrbWJJY0Z4UXNUNVE0RnB0NjFDdkxxP3F7JWt2enRwKnYlQ1NIQXA5ZmcqP2Z6QzxpOGtHVm1u
fllpRm4tCnpXbykxTDE8JDQ0P0BoV2dMdUVISUZuck9xbUw+UEs+dDViakQ3dkhfTklWVXB6VW9L
b1AqV21CdyZsPWNjSVQmYgp6MXZ2O15APlRnUVhNZFh+QXFAR2kjbERCKG9BJkFreCFLXmtZJlNo
bzVgcCRQaiFFMT58Q1koeFF9cklEVkYhMVMKemxwOHdQOTI8dkx2aGthUz1Ydn0pYz8oYGpTI3ZU
ZWxBMl5IQmpJai12eHZeVVY1cjREdTFGKiR3TmMoNzYwWStqCnomNiVye201czZaQzJmU247fXA0
RitWWSZ9Wjw9ZFhkVEBueCtQUU4xUjlmP3lRVlh7R2x2TVZCaUdKTmV3QSY1Pwp6dURZaU8tJiRa
QGhAcX44aGJINCp4eXdlPTlUOEg0TFchZ2BFOzhGRzhlR31vdWxmMm1FUGoqK1A0SD51dFF4ZzEK
emN3ZFB9aH5XdClqQmhGSWYmTnwmZnZKfmNAenErRENXP1RFS2BQNjc+OSZuPGlAaGtmO0llYWlm
I3B+O1NqakctCnpyVmhMNV4oKHYyPHU9TSQrMDhYeHlwQXdwcEFmSF94bnN5aV5eK2NVJSZ9ezNs
TWgwdiNESE9XcmA+QDEoVUIxNQp6N3w5ODIxQXAqaCpwKmJjeCg8VCFuQSsjY3FvTGh4eyp3JlFX
d00zcGEwTHh4dTlFViFhOH10U1NKdSpXLStMKjkKelhqRkNKe2lkd0BqN1BDe0JRRkk+bz8+bkpH
cDFIVytXa3FYKXRISlcxPUZGNlF7WVhLdXp8a1lFIzB0UkUqS1k9CnomSlBKP3ZpS340ME0wIVpx
Ulk/Nz9lQzh3XnZ8QHdlZiY7VTF1e1k5dCpCbTU5OVo3YkAlK2d1K3UlQEJVQy1WJAp6ZHshWUJE
XkxkR2dCck5FTGNEeCRIdi18fTNmWSMkcWJSbml2KDNHZnF8VWIlQjM9Yl4hYHI3Q0FjYlQkQHVU
IT4KekNlWSVfPV8pKkU5fmNsRXMzMFhiaTRFPWZFK0B7dCsoPSY3NkBWQkVYM19CVyFvKUZHfDdC
WVJ2THckV1VXeGFRCnpTPCZQcF5YMj1ZaSVEZW9hO2lOO0xDbjJBPGgkKnQxYSRFQ0hOYlolVGUm
VSRMcGdSREkzZEtuPj1xeGpYOF9qXgp6VnQlK1NRKzVSdTtgfHFha3cxMHNCV1J6RzMocVJ9bzJk
YSlEV2dMWStVJlJONkh2OTw4QlFaNj85azl0PFpxZDgKemF2VEtDaCo3bkExTk5hfCM8Nj59YF5s
PXJ5cGFBemJxRkR0VmUpMktGKEpzWiQ7cElTdndKUG1fKTkhI3d0QjI8CnpMUXRVXmpJQH5KRklM
NiFneUBUUzlKOUxDV283bHokM0dSIVgjMkJKQF8yN3V5e2swM29AQ3hVdnZobWUoU3IlPQp6bj5w
eUdgfXUpTT4mb2I7ayFDanpSfTk3TFFeXll5ZztLK2gzMWVqe09PND1STjlfRH0qcCo3PjtxTTN+
LTA1QkoKemkxaT9HZHUmb0NjQSpmX3RVRj1PKE0xbCY9QkdNSVM7LXwpe099Vzw/ZjF4aStwVH1U
cnx1ZEhtKGR2TjR0PVJtCnpmRmBReV9zWCEpVnQqQEV6elFuI0ViJFU4d2RjQWRIRik/fiRnMSFo
cEk5SHVUeHFQKjxPTURse0glTCo8NFVDQAp6S19WekZHZmk1OXhLamVTbzlscT1XcUI3X3tXSV4j
ZVlBUysmUXhMV2ghdXl9dWMlVW4+RUV1WnpSMnF1WU5DKloKenkkTWo5WX5gWX5kdCZCMUpeSEhH
STZteTlmOHMlJUN5cG9ZT2hAKGNjV05MUGMpYkprNiFRMVpgS1BsTFhndnsoCnpwN3ljJXJKMWhW
bzNYcXI2ZSVCX3dPPTtkY190a31tQkcxJmZxPy12aTZ4ey0kUSpLUS1CNyVwc2Z7Uz9NWiVJMwp6
JCpXcUt0IWROITUtOGNad1BRe0pMNWpsPFh2JGB2WSsjNXZxaiN9WW4oVElOc2NMTHVPIzNIZ0Eo
JWlXVCkpTFUKelEtZFB+N1BqQX5YRyVSWFdHfHc2PF42ODhMYjx9NjlYI15oKWhOPVdZJSYzZ198
Uj85MiVuY0gpUCYwdmRMcDVCCnpwUExFPlJyQmFlOGxydHZLSEhAIyk2KnchRzxMZVE9VShxUGpD
R3BLLVZYUDd0fVJufG9oeTBEbS1wVmpiczs3WQp6IW1GJX0oWTB4JndGKGoxemkydjIzU0oobjRw
aGQ9bzNhQXltfGczZGNBJSk4THoldG1GTEc3Vlo0ZH1lZEIlKVcKenBiRHJoYHs8KnlVajx6Q3FL
KlkzdU1QTXY/ZSs2XzZkQzl6NElXU3E8X0RzY2ZQS3A2TCM5SjhnKWkjODttR2swCnpyKXk4MExO
OUNwLXE1KTMwdUNLYlNxRDU/QEJUWTUtYGNhPzhsYz5fSX00O3pAPTl9MSZUKGdYUmhLRUJCWk13
Xwp6SWRPbyZpVHk/I2xIR192dC0yU1ZfNWNxeWJsUkw+b1cwYzNZMXohd2VLNlkxVVJqcmo/a15P
JUlnPDJeSEN0KXYKem5+KD13ZlcxY04qSHp7allMLTNzNUB9S1lXc3xqTmdeMlROI0M2WmhAeXxp
aXJPXyViZytsMXpRej1LeVZHRzk5Cno4Z3J8SFBBVzxoaTBaNCU2MExXekJTNWB6RUZ+ZyQjPmom
U1ZGK1l9QTEob1llfU9XWDVuLTdeQ3x+JDtjRFFqXgp6NUZ4RW0rP3E2XyktcU8kSzxTZWhDXjxo
UDs1Jk1CM3tFRmxle0ZMJUEmO2MhbksyOGhvcT9yfmtGcH5UV19URU4KenFjcFJ3bTRCUkdwTEIo
NjV9VCg9VnY4Y0k5VzAwdmw1UklyMSFIb2pLbFN2PiEhZ0I4NTNlUjQ4YyZkYnAtWUNNCnpMPTFe
OGUyTkNsSGgwaj91Rj9haGNPa0laJDtKcnhsanxSOG8oNGktYz5FVUMmMXE4R05WKD09dEgwRUUr
VihzZQp6TzE4XmYwITZYPHhrZ0lnVGt7V0k0andEYHlwSEkoRmEpZiZ3QSVKbVplPlM/Nz5vTUJf
e2g+Nl9kQzhmIVYpQT8KeiVvRnNnN1MwNVM/ZHc7TEMqKyQ0cFVMZmliayE1cDs3ZD80NTxQXzFl
V0E5bXA5cl5pWFlfN3drVkd7QmhNMFNgCnpVcWN1T1BMdCoxKGRqT3crYmdvIVlDMSFUaFUhR30k
STF6QkZ7ZmpYbDMxczZLUGYkJXRMWm0mYiRyUS1rV3tAOwp6ckBPZj5xP29YcnkhTEpNMzNFRj9g
WHBmZnNGcjZANDJuQTUxYnx4TztYQ05NZUwlYCNQY203K21iSjZLYWE8MyQKenwwKkl1ezZ6clJ8
RXN0KiROZ2A+Z2lGSk9zKlJJSW5VPWtOZChvPXUoOUwjWmNtRDxlP2pLeXhkZV8hJm99K1RQCnpv
eUJ9KlFuNTImJj13MCpSNipyOFl5YjwmSSF+RlZhdjZTaU9afCkxMHA+SDxxfjdneEY9RyoyKUpK
XzUwY0lwewp6NiVOM1hYYFdOdUl7VmBYV25ZZVdQc21qP1QoPDw1QihlZGh0aVl5fTJ5V08wcHI8
YkAjbjw5Sl8zfHUtUGpCcFkKemJPNmpsKks5TUBzVmBRYVhzKHZiKlpfdWwmLUVpS1IkRCpCPHlL
MShCXkVmKDllbGZhTjdGSDFqelF4dFRkOD0hCnpQb3wpcDA3Sk1ETmRiVXxRe0VsNnp8d0VkJWhH
I3luMl9mJmglUCV8VWNLQDZVaT5aUjR9dGw3dTlSRWswUllxcgp6bnZScHhCfCM5dnNoKzFjekdu
WnxtajRnZ3c+MTZKO3FpeDwpe183R3k8VkgpKzZAMlUwJC1FRm5rM2RGdkYzdlIKZDh5OHJkSTFT
MTVvWDJ+Zno1YXs/anpwcn5aK3RoVWAwdFNKVzEwV30KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQt
ZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNmOWEwM2QzNDBkZTZhOWFlZjE2NWVjMzBkMjZlODAy
ODhkZGU3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTkgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCww
KSBzaXplIDc4NHg0MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3
ODN4MzkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMzU6ICJUZXN0IGZvciBm
b250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MjM1LDApIHdpZHRoIDU0ODogIlRoZSBmaXJzdCB3b3JkIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUg
d29yZHMgc2hvdWxkIGJlIGRpc3BsYXllZCBsaWtlIFwiV2ViS2l0XCIsIHdoaWxlIG90aGVycyIK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyMCkgd2lkdGggMjE3OiAic2hvdWxkIGJlIGRpc3Bs
YXllZCBhcyBibGFjayBib3hlcy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Nikg
c2l6ZSA3ODR4MTcKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzB4
MTYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMDogIldlYktpdCIKKyAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDczKSBzaXplIDc4NHgxNworICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA5NngxNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDk2OiAiV2ViS2l0IgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsOTAp
IHNpemUgNzg0eDE3CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDk2
eDE2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTY6ICJXZWJLaXQiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
aW5kZXggYzhlMThlNmZjNWU5MDdkODUyOGNkYTc4Y2MzOTEwZWQ3NGM2NGY2Ni4uNThmODU5Njdl
ZDkzYWZkYmM5ZWE1MjVlZWUwNzdmMzQwODBhYjkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtNDg2LDYgKzQ4Niwx
MCBAQCBXT05URklYIFNLSVAgOiBmYXN0L2pzL3JlcGFyc2luZy1zZW1pY29sb24taW5zZXJ0aW9u
Lmh0bWwgPSBGQUlMCiBXT05URklYIENQVSBHUFUgOiBwbGF0Zm9ybS9jaHJvbWl1bS9ydWJiZXJi
YW5kaW5nID0gRkFJTAogV09OVEZJWCBDUFUgR1BVIDogcGxhdGZvcm0vY2hyb21pdW0tZ3B1L2Nv
bXBvc2l0aW5nL3J1YmJlcmJhbmRpbmcgPSBJTUFHRQogCisvLyBUaGlzIHJlcXVpcmVzIHVzcDEw
LmRsbCB2ZXJzaW9uIDEuNjAwIG9yIGdyZWF0ZXIgb24gV2luZG93cyBhbmQKKy8vIGl0IGlzbid0
IGluc3RhbGxlZCBvbiBYUCBieSBkZWZhdWx0LgorV09OVEZJWCBYUCA6IGNzczMvZm9udC1mZWF0
dXJlLXNldHRpbmdzLXJlbmRlcmluZy5odG1sID0gUEFTUyBGQUlMCisKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAv
LyBMSUdIVFRQRAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM0NzYsNyArMzQ4MCw3IEBAIEJVR1dLNjU5NTEg
V0lOIERFQlVHIDogd2ViYXVkaW8vbWl4aW5nLmh0bWwgPSBDUkFTSAogQlVHV0s2NTk1MSBMSU5V
WCBNQUMgREVCVUcgOiB3ZWJhdWRpby9taXhpbmcuaHRtbCA9IENSQVNIIFBBU1MKIEJVR1dLNjU5
NTEgTElOVVggTUFDIERFQlVHIDogd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1sID0gQ1JBU0ggUEFT
UwogCi1CVUdXSzYzNzk2IE1BQyBXSU4gOiBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5k
ZXJpbmcuaHRtbCA9IE1JU1NJTkcgRkFJTAorQlVHV0s2Mzc5NiBNQUMgOiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCA9IE1JU1NJTkcgRkFJTAogCiAvLyBOZXcgdGVz
dCBpbiByOTMwNjgKIEJVR1dLNjYyNjggTUFDIENQVS1DRyA6IGVkaXRpbmcvZGVsZXRpbmcvcmVn
aW9uYWwtaW5kaWNhdG9ycy5odG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmYmM0MDE1NGI5YjUy
NmZhYzMxM2IxZTI3MThkZTY1NWI5MjVkZTguLmMzYjhkNGYxZTEyYTQ1ZjYxMGU1ZmExNTYwNjZh
MDZmMjg0MTdhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0xMC0wNCAgS2Vu
aWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVt
XSBJbXBsZW1lbnQgZm9udCBzaGFwaW5nIHdpdGggZm9udC1mZWF0dXJlLXNldHRpbmdzIG9uIFdp
bmRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IFVuaXNjcmliZSdzIE9wZW5UeXBlIEFQSXMgdG8gc2hhcGUgY29tcGxleCB0ZXh0IHRvIHN1cHBv
cnQgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCBzaG91
bGQgcGFzcyBieSB0aGlzIHBhdGNoLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRPcGVuVHlw
ZUZ1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OlVuaXNjcmli
ZUhlbHBlcik6IENhbGxzIGxvYWRPcGVuVHlwZUZ1bmN0aW9ucyBpZiBuZWVkZWQuCisgICAgICAg
IChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OmZpbGxSdW5zKTogVXNlcyBTY3JpcHRJdGVtaXpl
T3BlblR5cGUoKSBpZiBwb3NzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBl
cjo6c2hhcGUpOiBVc2VzIFNjcmlwdFNoYXBlT3BlblR5cGUoKSBpZiBwb3NzaWJsZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6ZmlsbFNoYXBlcyk6IEFkZHMgT3BlblR5cGUg
c2NyaXB0IHRhZyBhcyBhbiBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRGZWF0
dXJlVGFnKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OnNldFJh
bmdlUHJvcGVydGllcyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1VuaXNjcmliZUhlbHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2Ny
aWJlSGVscGVyVGV4dFJ1bjo6VW5pc2NyaWJlSGVscGVyVGV4dFJ1bik6IENhbGxzIHNldFJhbmdl
UHJvcGVydGllcygpLgorCiAyMDExLTEwLTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIE1hYyByZWxlYXNlIGJ1aWxkIGZpeCBhZnRlciByOTY1NjEsIGFuZCBM
ZW9wYXJkIGJ1aWxkIGZpeCBhZnRlciByOTY1NjguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcApp
bmRleCA3NDJiOGI3ZTNkYTk4Mzc3NGVlNmQzOWFkNTEwYzk1MWY4NDRmZGIzLi4wYmEyZGExOGIx
MWI5OWM4NzNjOTI4MWVhMDY1NTc4NzYxYWIzMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5j
cHAKQEAgLTQxLDYgKzQxLDQ0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gVGhlIGZ1
bmN0aW9uIHR5cGVzIGZvciBTY3JpcHRJdGVtaXplT3BlblR5cGUoKSBhbmQgU2NyaXB0U2hhcGVP
cGVuVHlwZSgpLgorLy8gV2Ugd2FudCB0byB1c2UgdGhlc2UgZnVuY3Rpb25zIGZvciBPcGVuVHlw
ZSBmZWF0dXJlIHN1cHBvcnQsIGJ1dCB3ZSBjYW4ndAorLy8gY2FsbCB0aGVtIGRpcmVjdGx5IGJl
Y2F1c2UgdXNwMTAuZGxsIGRvZXMgbm90IGFsd2F5cyBoYXZlIHRoZW0uCisvLyBJbnN0ZWFkLCB3
ZSB1c2UgR2V0UHJvY0FkZHJlc3MoKSB0byBjaGVjayB3aGV0aGVyIHdlIGNhbiBhY3R1YWxseSB1
c2UgdGhlc2UKKy8vIGZ1bmN0aW9uLiBJZiB3ZSBjYW4ndCB1c2UgdGhlc2UgZnVuY3Rpb25zLCB3
ZSBzdWJzdGl0dXRlIFNjcmlwdEl0ZW16ZSgpIGFuZAorLy8gU2NyaXB0U2hhcGUoKS4KK3R5cGVk
ZWYgSFJFU1VMVCAoV0lOQVBJICpTY3JpcHRJdGVtaXplT3BlblR5cGVGdW5jKShjb25zdCBXQ0hB
UiosIGludCwgaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFNDUklQVF9DT05UUk9MKiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTQ1JJUFRfU1RBVEUqLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDUklQVF9JVEVN
KiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP
UEVOVFlQRV9UQUcqLCBpbnQqKTsKK3R5cGVkZWYgSFJFU1VMVCAoV0lOQVBJICpTY3JpcHRTaGFw
ZU9wZW5UeXBlRnVuYykoSERDLCBTQ1JJUFRfQ0FDSEUqLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ1JJUFRfQU5BTFlTSVMqLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUEVOVFlQRV9UQUcsIE9Q
RU5UWVBFX1RBRywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50KiwgVEVYVFJBTkdFX1BST1BFUlRJRVMqKiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBjb25zdCBXQ0hBUiosIGludCwgaW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXT1JE
KiwgU0NSSVBUX0NIQVJQUk9QKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV09SRCosIFNDUklQVF9HTFlQSFBST1AqLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqKTsKKworc3RhdGljIFNjcmlw
dEl0ZW1pemVPcGVuVHlwZUZ1bmMgZ1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMgPSAwOworc3Rh
dGljIFNjcmlwdFNoYXBlT3BlblR5cGVGdW5jIGdTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYyA9IDA7
CitzdGF0aWMgYm9vbCBnT3BlblR5cGVGdW5jdGlvbnNMb2FkZWQgPSBmYWxzZTsKKworc3RhdGlj
IHZvaWQgbG9hZE9wZW5UeXBlRnVuY3Rpb25zKCkKK3sKKyAgICBITU9EVUxFIGhNb2R1bGUgPSBH
ZXRNb2R1bGVIYW5kbGUoTCJ1c3AxMCIpOworICAgIGlmIChoTW9kdWxlKSB7CisgICAgICAgIGdT
Y3JpcHRJdGVtaXplT3BlblR5cGVGdW5jID0gcmVpbnRlcnByZXRfY2FzdDxTY3JpcHRJdGVtaXpl
T3BlblR5cGVGdW5jPihHZXRQcm9jQWRkcmVzcyhoTW9kdWxlLCAiU2NyaXB0SXRlbWl6ZU9wZW5U
eXBlIikpOworICAgICAgICBnU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMgPSByZWludGVycHJldF9j
YXN0PFNjcmlwdFNoYXBlT3BlblR5cGVGdW5jPihHZXRQcm9jQWRkcmVzcyhoTW9kdWxlLCAiU2Ny
aXB0U2hhcGVPcGVuVHlwZSIpKTsKKyAgICB9CisgICAgaWYgKCFnU2NyaXB0SXRlbWl6ZU9wZW5U
eXBlRnVuYyB8fCAhZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jKSB7CisgICAgICAgIGdTY3JpcHRJ
dGVtaXplT3BlblR5cGVGdW5jID0gMDsKKyAgICAgICAgZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5j
ID0gMDsKKyAgICB9CisgICAgZ09wZW5UeXBlRnVuY3Rpb25zTG9hZGVkID0gdHJ1ZTsKK30KKwog
Ly8gSEZPTlQgaXMgdGhlICdpbmNhcm5hdGlvbicgb2YgJ2V2ZXJ5dGhpbmcnIGFib3V0IGZvbnQs
IGJ1dCBpdCdzIGFuIG9wYXF1ZQogLy8gaGFuZGxlIGFuZCB3ZSBjYW4ndCBkaXJlY3RseSBxdWVy
eSBpdCB0byBtYWtlIGEgbmV3IEhGT05UIHNoYXJpbmcKIC8vIGl0cyBjaGFyYWN0ZXJpc3RpY3Mg
KGhlaWdodCwgc3R5bGUsIGV0YykgZXhjZXB0IGZvciBmYW1pbHkgbmFtZS4KQEAgLTkyLDYgKzEz
MCw4IEBAIFVuaXNjcmliZUhlbHBlcjo6VW5pc2NyaWJlSGVscGVyKGNvbnN0IFVDaGFyKiBpbnB1
dCwKIAogewogICAgIG1fbG9nZm9udC5sZkZhY2VOYW1lWzBdID0gMDsKKyAgICBpZiAoIWdPcGVu
VHlwZUZ1bmN0aW9uc0xvYWRlZCkKKyAgICAgICAgbG9hZE9wZW5UeXBlRnVuY3Rpb25zKCk7CiB9
CiAKIFVuaXNjcmliZUhlbHBlcjo6flVuaXNjcmliZUhlbHBlcigpCkBAIC00MTgsNyArNDU4LDgg
QEAgV09SRCBVbmlzY3JpYmVIZWxwZXI6OmZpcnN0R2x5cGhGb3JDaGFyYWN0ZXIoaW50IGNoYXJP
ZmZzZXQpIGNvbnN0CiB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMoKQogewogICAgIEhS
RVNVTFQgaHI7Ci0gICAgbV9ydW5zLnJlc2l6ZShVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlMp
OworICAgIG1fcnVucy5yZXNpemUoY1VuaXNjcmliZUhlbHBlclN0YWNrUnVucyk7CisgICAgbV9z
Y3JpcHRUYWdzLnJlc2l6ZShjVW5pc2NyaWJlSGVscGVyU3RhY2tSdW5zKTsKIAogICAgIFNDUklQ
VF9TVEFURSBpbnB1dFN0YXRlOwogICAgIGlucHV0U3RhdGUudUJpZGlMZXZlbCA9IG1faXNSdGw7
CkBAIC00NzMsMTAgKzUxNCwzNSBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMoKQog
ICAgICAgICAvLyBJdCBzZWVtcyB0byBiZSBkb2luZyBhdCBsZWFzdCB0d28gcGFzc2VzLCB0aGUg
Zmlyc3Qgd2hlcmUgaXQgcHV0cyBhCiAgICAgICAgIC8vIGxvdCBvZiBpbnRlcm1lZGlhdGUgZGF0
YSBpbnRvIG91ciBpdGVtcywgYW5kIHRoZSBzZWNvbmQgd2hlcmUgaXQKICAgICAgICAgLy8gY29s
bGF0ZXMgdGhlbS4KLSAgICAgICAgaHIgPSBTY3JpcHRJdGVtaXplKG1faW5wdXQsIG1faW5wdXRM
ZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fcnVu
cy5zaXplKCkpIC0gMSwgJmlucHV0Q29udHJvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZpbnB1dFN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1fcnVuc1swXSwgJm51
bWJlck9mSXRlbXMpOworICAgICAgICBpZiAoZ1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMpIHsK
KyAgICAgICAgICAgIGhyID0gZ1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMobV9pbnB1dCwgbV9p
bnB1dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8aW50PihtX3J1bnMuc2l6ZSgpKSAtIDEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZpbnB1dENvbnRyb2wsICZpbnB1dFN0YXRlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9ydW5zWzBdLCAmbV9z
Y3JpcHRUYWdzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmbnVtYmVyT2ZJdGVtcyk7CisgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgeworICAg
ICAgICAgICAgICAgIC8vIFBhY2sgY29uc2VjdXRpdmUgcnVucywgdGhlIHNjcmlwdCB0YWcgb2Yg
d2hpY2ggYXJlCisgICAgICAgICAgICAgICAgLy8gU0NSSVBUX1RBR19VTktOT1dOLCB0byByZWR1
Y2UgdGhlIG51bWJlciBvZiBydW5zLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbnVtYmVyT2ZJdGVtczsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3Njcmlw
dFRhZ3NbaV0gPT0gU0NSSVBUX1RBR19VTktOT1dOKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgaiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSArIGogPCBudW1i
ZXJPZkl0ZW1zICYmIG1fc2NyaXB0VGFnc1tpICsgal0gPT0gU0NSSVBUX1RBR19VTktOT1dOKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgtLWopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3J1bnMucmVtb3ZlKGkg
KyAxLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdFRhZ3MucmVtb3Zl
KGkgKyAxLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkl0ZW1zIC09
IGo7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9zY3JpcHRUYWdzLnJlc2l6ZShudW1i
ZXJPZkl0ZW1zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGhyID0gU2NyaXB0SXRlbWl6ZShtX2lucHV0LCBtX2lucHV0TGVuZ3RoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9ydW5zLnNpemUoKSkgLSAxLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbnB1dENvbnRyb2wsICZpbnB1dFN0YXRl
LCAmbV9ydW5zWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZudW1iZXJPZkl0
ZW1zKTsKKyAgICAgICAgfQogICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgewogICAgICAgICAg
ICAgbV9ydW5zLnJlc2l6ZShudW1iZXJPZkl0ZW1zKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
NDg4LDYgKzU1NCw3IEBAIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsUnVucygpCiAgICAgICAg
IH0KICAgICAgICAgLy8gVGhlcmUgd2FzIG5vdCBlbm91Z2ggaXRlbXMgZm9yIGl0IHRvIHdyaXRl
IGludG8sIGV4cGFuZC4KICAgICAgICAgbV9ydW5zLnJlc2l6ZShtX3J1bnMuc2l6ZSgpICogMik7
CisgICAgICAgIG1fc2NyaXB0VGFncy5yZXNpemUobV9ydW5zLnNpemUoKSk7CiAgICAgfQogfQog
CkBAIC00OTUsMTEgKzU2MiwxNCBAQCBib29sIFVuaXNjcmliZUhlbHBlcjo6c2hhcGUoY29uc3Qg
VUNoYXIqIGlucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVtTGVuZ3Ro
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1HbHlwaHMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0NSSVBUX0lURU0mIHJ1biwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBPUEVOVFlQRV9UQUcgc2NyaXB0VGFnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNoYXBpbmcmIHNoYXBpbmcpCiB7CiAgICAgSEZPTlQgaGZvbnQgPSBtX2hmb250OwogICAg
IFNDUklQVF9DQUNIRSogc2NyaXB0Q2FjaGUgPSBtX3NjcmlwdENhY2hlOwogICAgIFNDUklQVF9G
T05UUFJPUEVSVElFUyogZm9udFByb3BlcnRpZXMgPSBtX2ZvbnRQcm9wZXJ0aWVzOworICAgIFZl
Y3RvcjxTQ1JJUFRfQ0hBUlBST1AsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzPiBjaGFyUHJv
cHM7CisgICAgVmVjdG9yPFNDUklQVF9HTFlQSFBST1AsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0No
YXJzPiBnbHlwaFByb3BzOwogICAgIGludCBhc2NlbnQgPSBtX2FzY2VudDsKICAgICBXT1JEIHNw
YWNlR2x5cGggPSBtX3NwYWNlR2x5cGg7CiAgICAgSERDIHRlbXBEQyA9IDA7CkBAIC01MjIsNiAr
NTkyLDggQEAgYm9vbCBVbmlzY3JpYmVIZWxwZXI6OnNoYXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwK
ICAgICAgICAgc2hhcGluZy5tX2xvZ3MucmVzaXplKGl0ZW1MZW5ndGgpOwogICAgICAgICBzaGFw
aW5nLm1fZ2x5cGhzLnJlc2l6ZShudW1HbHlwaHMpOwogICAgICAgICBzaGFwaW5nLm1fdmlzdWFs
QXR0cmlidXRlcy5yZXNpemUobnVtR2x5cGhzKTsKKyAgICAgICAgY2hhclByb3BzLnJlc2l6ZShp
dGVtTGVuZ3RoKTsKKyAgICAgICAgZ2x5cGhQcm9wcy5yZXNpemUobnVtR2x5cGhzKTsKIAogI2lm
ZGVmIFBVUklGWQogICAgICAgICAvLyBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0v
aXNzdWVzL2RldGFpbD9pZD01MzA5CkBAIC01NDIsMTMgKzYxNCwyMyBAQCBib29sIFVuaXNjcmli
ZUhlbHBlcjo6c2hhcGUoY29uc3QgVUNoYXIqIGlucHV0LAogICAgICAgICBaZXJvTWVtb3J5KCZz
aGFwaW5nLm1fZ2x5cGhzWzBdLAogICAgICAgICAgICAgICAgICAgIHNpemVvZihzaGFwaW5nLm1f
Z2x5cGhzWzBdKSAqIHNoYXBpbmcubV9nbHlwaHMuc2l6ZSgpKTsKICNlbmRpZgotCiAgICAgICAg
IC8vIEZpcmVmb3ggc2V0cyBTQ1JJUFRfQU5BTFlTSVMuU0NSSVBUX1NUQVRFLmZEaXNwbGF5WldH
IHRvIHRydWUKICAgICAgICAgLy8gaGVyZS4gSXMgdGhhdCB3aGF0IHdlIHdhbnQ/IEl0IHdpbGwg
ZGlzcGxheSBjb250cm9sIGNoYXJhY3RlcnMuCi0gICAgICAgIGhyID0gU2NyaXB0U2hhcGUodGVt
cERDLCBzY3JpcHRDYWNoZSwgaW5wdXQsIGl0ZW1MZW5ndGgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtR2x5cGhzLCAmcnVuLmEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXBp
bmcubV9nbHlwaHNbMF0sICZzaGFwaW5nLm1fbG9nc1swXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAmc2hhcGluZy5tX3Zpc3VhbEF0dHJpYnV0ZXNbMF0sICZnZW5lcmF0ZWRHbHlwaHMpOwor
ICAgICAgICBpZiAoZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jKSB7CisgICAgICAgICAgICBURVhU
UkFOR0VfUFJPUEVSVElFUyogcmFuZ2VQcm9wcyA9IG1fZmVhdHVyZVJlY29yZHMuc2l6ZSgpID8g
Jm1fcmFuZ2VQcm9wZXJ0aWVzIDogMDsKKyAgICAgICAgICAgIGhyID0gZ1NjcmlwdFNoYXBlT3Bl
blR5cGVGdW5jKHRlbXBEQywgc2NyaXB0Q2FjaGUsICZydW4uYSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdFRhZywgMCwgJml0ZW1MZW5ndGgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmFuZ2VQcm9wcywgcmFuZ2VQ
cm9wcyA/IDEgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW5wdXQsIGl0ZW1MZW5ndGgsIG51bUdseXBocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fbG9nc1swXSwgJmNoYXJQcm9wc1swXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fZ2x5cGhzWzBd
LCAmZ2x5cGhQcm9wc1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZnZW5lcmF0ZWRHbHlwaHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaHIg
PSBTY3JpcHRTaGFwZSh0ZW1wREMsIHNjcmlwdENhY2hlLCBpbnB1dCwgaXRlbUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtR2x5cGhzLCAmcnVuLmEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fZ2x5cGhzWzBdLCAmc2hhcGluZy5tX2xvZ3Nb
MF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fdmlzdWFsQXR0cmli
dXRlc1swXSwgJmdlbmVyYXRlZEdseXBocyk7CisgICAgICAgIH0KICAgICAgICAgaWYgKGhyID09
IEVfUEVORElORykgewogICAgICAgICAgICAgLy8gQWxsb2NhdGUgdGhlIERDLgogICAgICAgICAg
ICAgdGVtcERDID0gR2V0REMoMCk7CkBAIC02NDUsNiArNzI3LDEyIEBAIGJvb2wgVW5pc2NyaWJl
SGVscGVyOjpzaGFwZShjb25zdCBVQ2hhciogaW5wdXQsCiAgIGNsZWFudXA6CiAgICAgc2hhcGlu
Zy5tX2dseXBocy5yZXNpemUoZ2VuZXJhdGVkR2x5cGhzKTsKICAgICBzaGFwaW5nLm1fdmlzdWFs
QXR0cmlidXRlcy5yZXNpemUoZ2VuZXJhdGVkR2x5cGhzKTsKKyAgICAvLyBJZiB3ZSB1c2UgU2Ny
aXB0U2hhcGVPcGVuVHlwZSgpLCB2aXN1YWwgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBmb3IgZWFj
aAorICAgIC8vIGNoYXJhY3RlcnMgYXJlIHN0b3JlZCBpbiB8Z2x5cGhQcm9wc1tpXS5zdmF8Lgor
ICAgIGlmIChnU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBnZW5lcmF0ZWRHbHlwaHM7ICsraSkKKyAgICAgICAgICAgIG1lbWNweSgmc2hhcGlu
Zy5tX3Zpc3VhbEF0dHJpYnV0ZXNbaV0sICZnbHlwaFByb3BzW2ldLnN2YSwgc2l6ZW9mKFNDUklQ
VF9WSVNBVFRSKSk7CisgICAgfQogICAgIHNoYXBpbmcubV9hZHZhbmNlLnJlc2l6ZShnZW5lcmF0
ZWRHbHlwaHMpOwogICAgIHNoYXBpbmcubV9vZmZzZXRzLnJlc2l6ZShnZW5lcmF0ZWRHbHlwaHMp
OwogICAgIGlmICh0ZW1wREMpIHsKQEAgLTY2OCwxMSArNzU2LDExIEBAIHZvaWQgVW5pc2NyaWJl
SGVscGVyOjpmaWxsU2hhcGVzKCkKICAgICAgICAgICAgIGl0ZW1MZW5ndGggPSBtX3J1bnNbaSAr
IDFdLmlDaGFyUG9zIC0gc3RhcnRJdGVtOwogCiAgICAgICAgIGludCBudW1HbHlwaHM7Ci0gICAg
ICAgIGlmIChpdGVtTGVuZ3RoIDwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUykgeworICAg
ICAgICBpZiAoaXRlbUxlbmd0aCA8IGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzKSB7CiAgICAg
ICAgICAgICAvLyBXZSdsbCBzdGFydCBvdXIgYnVmZmVyIHNpemVzIHdpdGggdGhlIGN1cnJlbnQg
c3RhY2sgc3BhY2UKICAgICAgICAgICAgIC8vIGF2YWlsYWJsZSBpbiBvdXIgYnVmZmVycyBpZiB0
aGUgY3VycmVudCBpbnB1dCBmaXRzLiBBcyBsb25nIGFzCiAgICAgICAgICAgICAvLyBpdCBkb2Vz
bid0IGV4cGFuZCBwYXN0IHRoYXQgd2UnbGwgc2F2ZSBhIGxvdCBvZiB0aW1lIG1hbGxvY2luZy4K
LSAgICAgICAgICAgIG51bUdseXBocyA9IFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM7Cisg
ICAgICAgICAgICBudW1HbHlwaHMgPSBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFyczsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGlucHV0IGRvZXNuJ3QgZml0LCBn
aXZlIHVwIHdpdGggdGhlIHN0YWNrIHNpbmNlIGl0IHdpbGwKICAgICAgICAgICAgIC8vIGFsbW9z
dCBzdXJlbHkgbm90IGJlIGVub3VnaCByb29tICh1bmxlc3MgdGhlIGlucHV0IGFjdHVhbGx5CkBA
IC02ODUsNyArNzczLDcgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXI6OmZpbGxTaGFwZXMoKQogICAg
ICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgZ2x5cGggc3RyaW5nIHRyeWluZyB0aGUgcHJp
bWFyeSBmb250LCBmb250cyBpbgogICAgICAgICAvLyB0aGUgZmFsbGJhY2sgbGlzdCBhbmQgdGhl
biBzY3JpcHQtc3BlY2lmaWMgbGFzdCByZXNvcnQgZm9udC4KICAgICAgICAgU2hhcGluZyYgc2hh
cGluZyA9IG1fc2hhcGVzW2ldOwotICAgICAgICBpZiAoIXNoYXBlKCZtX2lucHV0W3N0YXJ0SXRl
bV0sIGl0ZW1MZW5ndGgsIG51bUdseXBocywgbV9ydW5zW2ldLCBzaGFwaW5nKSkKKyAgICAgICAg
aWYgKCFzaGFwZSgmbV9pbnB1dFtzdGFydEl0ZW1dLCBpdGVtTGVuZ3RoLCBudW1HbHlwaHMsIG1f
cnVuc1tpXSwgbV9zY3JpcHRUYWdzW2ldLCBzaGFwaW5nKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIC8vIEF0IHRoZSBtb21lbnQsIHRoZSBvbmx5IHRpbWUgbV9kaXNhYmxlRm9u
dEZhbGxiYWNrIGlzIHNldCBpcwpAQCAtNzI0LDYgKzgxMiw3IEBAIHZvaWQgVW5pc2NyaWJlSGVs
cGVyOjpmaWxsU2hhcGVzKCkKICAgICAgICAgICAgIC8vIFNvbWUgZXJyb3Igd2UgZG9uJ3Qga25v
dyBob3cgdG8gaGFuZGxlLiBOdWtlIGFsbCBvZiBvdXIgZGF0YQogICAgICAgICAgICAgLy8gc2lu
Y2Ugd2UgY2FuJ3QgZGVhbCB3aXRoIHBhcnRpYWxseSB2YWxpZCBkYXRhIGxhdGVyLgogICAgICAg
ICAgICAgbV9ydW5zLmNsZWFyKCk7CisgICAgICAgICAgICBtX3NjcmlwdFRhZ3MuY2xlYXIoKTsK
ICAgICAgICAgICAgIG1fc2hhcGVzLmNsZWFyKCk7CiAgICAgICAgICAgICBtX3NjcmVlbk9yZGVy
LmNsZWFyKCk7CiAgICAgICAgIH0KQEAgLTkzMiw1ICsxMDIxLDI1IEBAIGJvb2wgVW5pc2NyaWJl
SGVscGVyOjpjb250YWluc01pc3NpbmdHbHlwaHMoY29uc3QgU2hhcGluZyYgc2hhcGluZywKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBPUEVOVFlQRV9UQUcgY29udmVydEZlYXR1cmVU
YWcoY29uc3QgU3RyaW5nJiB0YWcpCit7CisgICAgcmV0dXJuICgodGFnWzBdICYgMHhGRikgfCAo
KHRhZ1sxXSAmIDB4RkYpIDw8IDgpIHwgKCh0YWdbMl0gJiAweEZGKSA8PCAxNikgfCAoKHRhZ1sz
XSAmIDB4RkYpIDw8IDI0KSk7Cit9CisKK3ZvaWQgVW5pc2NyaWJlSGVscGVyOjpzZXRSYW5nZVBy
b3BlcnRpZXMoY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdzKQorewor
ICAgIGlmICghZmVhdHVyZVNldHRpbmdzIHx8ICFmZWF0dXJlU2V0dGluZ3MtPnNpemUoKSkgewor
ICAgICAgICBtX2ZlYXR1cmVSZWNvcmRzLnJlc2l6ZSgwKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fZmVhdHVyZVJlY29yZHMucmVzaXplKGZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgp
KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmVhdHVyZVNldHRpbmdzLT5zaXplKCk7
ICsraSkgeworICAgICAgICBtX2ZlYXR1cmVSZWNvcmRzW2ldLmxQYXJhbWV0ZXIgPSBmZWF0dXJl
U2V0dGluZ3MtPmF0KGkpLnZhbHVlKCk7CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHNbaV0udGFn
RmVhdHVyZSA9IGNvbnZlcnRGZWF0dXJlVGFnKGZlYXR1cmVTZXR0aW5ncy0+YXQoaSkudGFnKCkp
OworICAgIH0KKyAgICBtX3JhbmdlUHJvcGVydGllcy5wb3RmUmVjb3JkcyA9ICZtX2ZlYXR1cmVS
ZWNvcmRzWzBdOworICAgIG1fcmFuZ2VQcm9wZXJ0aWVzLmNvdGZSZWNvcmRzID0gbV9mZWF0dXJl
UmVjb3Jkcy5zaXplKCk7Cit9CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxw
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmli
ZUhlbHBlci5oCmluZGV4IDRiY2RiZDZhY2JhMGIwM2RmMjBmZTkyYzNlNGU0MzVhMDlmYjA4Nzcu
LmM5M2QyNzNhM2QwOTJiNjE2NWUxZWY5OWRjOTFhOGIxYjYyNTg3N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmli
ZUhlbHBlci5oCkBAIC00NCwxMCArNDQsMTIgQEAgY2xhc3MgVW5pc2NyaWJlVGVzdF9Ub29CaWdf
VGVzdDsgIC8vIEEgZ3VuaXQgdGVzdCBmb3IgVW5pc2NyaWJlSGVscGVyLgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3M7CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7CiAKLSNkZWZpbmUgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TIDgKLSNkZWZpbmUg
VU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUyAzMgorY29uc3QgdW5zaWduZWQgY1VuaXNjcmli
ZUhlbHBlclN0YWNrUnVucyA9IDg7Citjb25zdCB1bnNpZ25lZCBjVW5pc2NyaWJlSGVscGVyU3Rh
Y2tDaGFycyA9IDMyOworY29uc3QgdW5zaWduZWQgY1VuaXNjcmliZUhlbHBlckZlYXR1cmVzID0g
NDsKIAogLy8gVGhpcyBvYmplY3Qgc2hvdWxkIGJlIHNhZmUgdG8gY3JlYXRlICYgZGVzdHJveSBm
cmVxdWVudGx5LCBhcyBsb25nIGFzIHRoZQogLy8gY2FsbGVyIHByZXNlcnZlcyB0aGUgc2NyaXB0
X2NhY2hlIHdoZW4gcG9zc2libGUgKHRoaXMgZGF0YSBtYXkgYmUgc2xvdyB0bwpAQCAtMTU4LDYg
KzE2MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZGlzYWJsZUZvbnRGYWxsYmFjayA9IHRydWU7
CiAgICAgfQogCisgICAgLy8gU2V0IFRFWFRSQU5HRV9QUk9QRVJUSUVTIHN0cnVjdHVyZSB3aGlj
aCBjb250YWlucworICAgIC8vIE9wZW5UeXBlIGZlYXR1cmUgcmVjb3JkcyBnZW5lcmF0ZWQgZnJv
bSBGb250RmVhdHVyZVNldHRpbmdzLgorICAgIHZvaWQgc2V0UmFuZ2VQcm9wZXJ0aWVzKGNvbnN0
IEZvbnRGZWF0dXJlU2V0dGluZ3MqKTsKKwogICAgIC8vIFlvdSBtdXN0IGNhbGwgdGhpcyBhZnRl
ciBzZXR0aW5nIGFueSBvcHRpb25zIGJ1dCBiZWZvcmUgZG9pbmcgYW55CiAgICAgLy8gb3RoZXIg
Y2FsbHMgbGlrZSBhc2tpbmcgZm9yIHdpZHRocyBvciBkcmF3aW5nLgogICAgIHZvaWQgaW5pdCgp
CkBAIC0yNjksNyArMjc1LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAvLyBHbHlwaCBpbmRpY2Vz
IGluIHRoZSBmb250IHVzZWQgdG8gZGlzcGxheSB0aGlzIGl0ZW0uIFRoZXNlIGluZGljZXMKICAg
ICAgICAgLy8gYXJlIGluIHNjcmVlbiBvcmRlci4KLSAgICAgICAgVmVjdG9yPFdPUkQsIFVOSVND
UklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fZ2x5cGhzOworICAgICAgICBWZWN0b3I8V09SRCwg
Y1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fZ2x5cGhzOwogCiAgICAgICAgIC8vIEZvciBl
YWNoIGlucHV0IGNoYXJhY3RlciwgdGhpcyB0ZWxscyB1cyB0aGUgZmlyc3QgZ2x5cGggaW5kZXgg
aXQKICAgICAgICAgLy8gZ2VuZXJhdGVkLiBUaGlzIGlzIHRoZSBvbmx5IGFycmF5IHdpdGggc2l6
ZSBvZiB0aGUgaW5wdXQgY2hhcnMuCkBAIC0yNzgsMjAgKzI4NCwyMCBAQCBwcml2YXRlOgogICAg
ICAgICAvLyBjYW4gZ2VuZXJhdGUgb25lIGdseXBoLCBpbiB3aGljaCBjYXNlIHRoZXJlIHdpbGwg
YmUgYWRqYWNlbnQKICAgICAgICAgLy8gZHVwbGljYXRlcyBpbiB0aGlzIGxpc3QuIE9uZSBjaGFy
YWN0ZXIgY2FuIGFsc28gZ2VuZXJhdGUgbXVsdGlwbGUKICAgICAgICAgLy8gZ2x5cGhzLCBpbiB3
aGljaCBjYXNlIHRoZXJlIHdpbGwgYmUgc2tpcHBlZCBpbmRpY2VzIGluIHRoaXMgbGlzdC4KLSAg
ICAgICAgVmVjdG9yPFdPUkQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fbG9nczsK
KyAgICAgICAgVmVjdG9yPFdPUkQsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzPiBtX2xvZ3M7
CiAKICAgICAgICAgLy8gRmxhZ3MgYW5kIHN1Y2ggZm9yIGVhY2ggZ2x5cGguCi0gICAgICAgIFZl
Y3RvcjxTQ1JJUFRfVklTQVRUUiwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gbV92aXN1
YWxBdHRyaWJ1dGVzOworICAgICAgICBWZWN0b3I8U0NSSVBUX1ZJU0FUVFIsIGNVbmlzY3JpYmVI
ZWxwZXJTdGFja0NoYXJzPiBtX3Zpc3VhbEF0dHJpYnV0ZXM7CiAKICAgICAgICAgLy8gSG9yaXpv
bnRhbCBhZHZhbmNlcyBmb3IgZWFjaCBnbHlwaCBsaXN0ZWQgYWJvdmUsIHRoaXMgaXMgYmFzaWNh
bGx5CiAgICAgICAgIC8vIGhvdyB3aWRlIGVhY2ggZ2x5cGggaXMuCi0gICAgICAgIFZlY3Rvcjxp
bnQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fYWR2YW5jZTsKKyAgICAgICAgVmVj
dG9yPGludCwgY1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fYWR2YW5jZTsKIAogICAgICAg
ICAvLyBUaGlzIGNvbnRhaW5zIGdseXBoIG9mZnNldHMsIGZyb20gdGhlIG5vbWluYWwgcG9zaXRp
b24gb2YgYSBnbHlwaC4KICAgICAgICAgLy8gSXQgaXMgdXNlZCB0byBhZGp1c3QgdGhlIHBvc2l0
aW9ucyBvZiBtdWx0aXBsZSBjb21iaW5pbmcgY2hhcmFjdGVycwogICAgICAgICAvLyBhcm91bmQv
YWJvdmUvYmVsb3cgYmFzZSBjaGFyYWN0ZXJzIGluIGEgY29udGV4dC1zZW5zaXRpdmUgbWFubmVy
IHNvCiAgICAgICAgIC8vIHRoYXQgdGhleSBkb24ndCBidW1wIGFnYWluc3QgZWFjaCBvdGhlciBh
bmQgdGhlIGJhc2UgY2hhcmFjdGVyLgotICAgICAgICBWZWN0b3I8R09GRlNFVCwgVU5JU0NSSUJF
X0hFTFBFUl9TVEFDS19DSEFSUz4gbV9vZmZzZXRzOworICAgICAgICBWZWN0b3I8R09GRlNFVCwg
Y1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fb2Zmc2V0czsKIAogICAgICAgICAvLyBGaWxs
ZWQgYnkgYSBjYWxsIHRvIEp1c3RpZnksIHRoaXMgaXMgZW1wdHkgZm9yIG5vbmp1c3RpZmllZCB0
ZXh0LgogICAgICAgICAvLyBJZiBub25lbXB0eSwgdGhpcyBjb250YWlucyB0aGUgYXJyYXkgb2Yg
anVzdGlmeSBjaGFyYWN0ZXJzIGZvciBlYWNoCkBAIC0zMDAsNyArMzA2LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgLy8gVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgYWR2YW5jZSBhcnJheSwgYnV0IHdp
dGggZXh0cmEgc3BhY2UgYWRkZWQKICAgICAgICAgLy8gZm9yIHNvbWUgY2hhcmFjdGVycy4gVGhl
IGRpZmZlcmVuY2UgYmV0d2VlbiBhIGdseXBoJ3MgfGp1c3RpZnl8CiAgICAgICAgIC8vIHdpZHRo
IGFuZCBpdCdzIHxhZHZhbmNlfCB3aWR0aCBpcyB0aGUgZXh0cmEgc3BhY2UgYWRkZWQuCi0gICAg
ICAgIFZlY3RvcjxpbnQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fanVzdGlmeTsK
KyAgICAgICAgVmVjdG9yPGludCwgY1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fanVzdGlm
eTsKIAogICAgICAgICAvLyBTaXppbmcgaW5mb3JtYXRpb24gZm9yIHRoaXMgcnVuLiBUaGlzIHRy
ZWF0cyB0aGUgZW50aXJlIHJ1biBhcyBhCiAgICAgICAgIC8vIGNoYXJhY3RlciB3aXRoIGEgcHJl
Y2VlZGluZyBhZHZhbmNlLCB3aWR0aCwgYW5kIGVuZGluZyBhZHZhbmNlLiAgVGhlCkBAIC0zNTgs
NyArMzY0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBieSB8aW5wdXR8IGNvbWVzIGZyb20gU2NyaXB0
SXRlbWl6ZSBhbmQgaXMgc3VwcG9zZWQgdG8gY29udGFpbgogICAgIC8vIGNoYXJhY3RlcnMgYmVs
b25naW5nIHRvIGEgc2luZ2xlIHNjcmlwdCBhc2lkZSBmcm9tIGNoYXJhY3RlcnMgY29tbW9uIHRv
CiAgICAgLy8gYWxsIHNjcmlwdHMgKGUuZy4gc3BhY2UpLgotICAgIGJvb2wgc2hhcGUoY29uc3Qg
VUNoYXIqIGlucHV0LCBpbnQgaXRlbUxlbmd0aCwgaW50IG51bUdseXBocywgU0NSSVBUX0lURU0m
IHJ1biwgU2hhcGluZyYpOworICAgIGJvb2wgc2hhcGUoY29uc3QgVUNoYXIqIGlucHV0LCBpbnQg
aXRlbUxlbmd0aCwgaW50IG51bUdseXBocywgU0NSSVBUX0lURU0mIHJ1biwgT1BFTlRZUEVfVEFH
LCBTaGFwaW5nJik7CiAKICAgICAvLyBHZXRzIFdpbmRvd3MgZm9udCBkYXRhIGZvciB0aGUgbmV4
dCBiZXN0IGZvbnQgdG8gdHJ5IGluIHRoZSBsaXN0CiAgICAgLy8gb2YgZm9udHMuIFdoZW4gdGhl
cmUncyBubyBtb3JlIGZvbnQgYXZhaWxhYmxlLCByZXR1cm5zIGZhbHNlCkBAIC00MDUsOSArNDEx
LDEwIEBAIHByaXZhdGU6CiAKICAgICAvLyBVbmlzY3JpYmUgYnJlYWtzIHRoZSB0ZXh0IGludG8g
UnVucy4gVGhlc2UgYXJlIG9uZSBsZW5ndGggb2YgdGV4dCB0aGF0IGlzCiAgICAgLy8gaW4gb25l
IHNjcmlwdCBhbmQgb25lIGRpcmVjdGlvbi4gVGhpcyBhcnJheSBpcyBpbiByZWFkaW5nIG9yZGVy
LgotICAgIFZlY3RvcjxTQ1JJUFRfSVRFTSwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TPiBt
X3J1bnM7CisgICAgVmVjdG9yPFNDUklQVF9JVEVNLCBjVW5pc2NyaWJlSGVscGVyU3RhY2tSdW5z
PiBtX3J1bnM7CiAKLSAgICBWZWN0b3I8U2hhcGluZywgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19S
VU5TPiBtX3NoYXBlczsKKyAgICBWZWN0b3I8U2hhcGluZywgY1VuaXNjcmliZUhlbHBlclN0YWNr
UnVucz4gbV9zaGFwZXM7CisgICAgVmVjdG9yPE9QRU5UWVBFX1RBRywgY1VuaXNjcmliZUhlbHBl
clN0YWNrUnVucz4gbV9zY3JpcHRUYWdzOwogCiAgICAgLy8gVGhpcyBpcyBhIG1hcHBpbmcgYmV0
d2VlbiByZWFkaW5nIG9yZGVyIGFuZCBzY3JlZW4gb3JkZXIgZm9yIHRoZSBpdGVtcy4KICAgICAv
LyBVbmlzY3JpYmUncyBpdGVtcyBhcnJheSBhcmUgaW4gcmVhZGluZyBvcmRlci4gRm9yIHJpZ2h0
LXRvLWxlZnQgdGV4dCwKQEAgLTQxNiw3ICs0MjMsMTIgQEAgcHJpdmF0ZToKICAgICAvLyBhbmQg
cG9zaXRpb25zLiBUaGlzIGxpc3QgaXMgaW4gc2NyZWVuIG9yZGVyIGZyb20gbGVmdCB0byByaWdo
dCwgYW5kCiAgICAgLy8gZ2l2ZXMgdGhlIGluZGV4IGludG8gdGhlIHxtX3J1bnN8IGFuZCB8bV9z
aGFwZXN8IGFycmF5cyBvZiBlYWNoCiAgICAgLy8gc3Vic2VxdWVudCBpdGVtLgotICAgIFZlY3Rv
cjxpbnQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfUlVOUz4gbV9zY3JlZW5PcmRlcjsKKyAgICBW
ZWN0b3I8aW50LCBjVW5pc2NyaWJlSGVscGVyU3RhY2tSdW5zPiBtX3NjcmVlbk9yZGVyOworCisg
ICAgLy8gVGhpcyBjb250YWlucyBVbmlzY3JpYmUncyBPcGVuVHlwZSBmZWF0dXJlIHNldHRpbmdz
LiBUaGlzIHN0cnVjdHVyZQorICAgIC8vIGlzIGZpbGxlZCBieSB1c2luZyBXZWJLaXQncyB8Rm9u
dEZlYXR1cmVTZXR0aW5nc3wuCisgICAgVEVYVFJBTkdFX1BST1BFUlRJRVMgbV9yYW5nZVByb3Bl
cnRpZXM7CisgICAgVmVjdG9yPE9QRU5UWVBFX0ZFQVRVUkVfUkVDT1JELCBjVW5pc2NyaWJlSGVs
cGVyRmVhdHVyZXM+IG1fZmVhdHVyZVJlY29yZHM7CiB9OwogCiB9ICAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcAppbmRleCAxNjUwM2U4
NGVmMWI2ZWEzNjgzM2EwZGVkZWRjNTZkY2ZlMzcyZGU2Li5hZDlkZDQ5ZDQxNDRiMTM1YzA1Mzc3
NDYyYWFmZDVhMTYxODc3MjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVu
LmNwcApAQCAtNTMsNiArNTMsNyBAQCBVbmlzY3JpYmVIZWxwZXJUZXh0UnVuOjpVbmlzY3JpYmVI
ZWxwZXJUZXh0UnVuKGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBzZXRTcGFjZVdpZHRoKGZvbnQu
c3BhY2VXaWR0aCgpKTsKICAgICBzZXRXb3JkU3BhY2luZyhmb250LndvcmRTcGFjaW5nKCkpOwog
ICAgIHNldEFzY2VudChmb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpOworICAgIHNldFJhbmdl
UHJvcGVydGllcyhmb250LmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygpKTsKIAog
ICAgIGluaXQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109595</attachid>
            <date>2011-10-04 01:49:50 -0700</date>
            <delta_ts>2011-10-04 03:00:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-65904-20111004174948.patch</filename>
            <type>text/plain</type>
            <size>27089</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY1NzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZDRlNjc0NDRiZGMzZmZlZTMwZWJj
OGUzMjgzM2NmYTgzYzVlYmRlLi4zOTkzNzY1MDNkNDJlNzY3M2I3NThiYWQ1NjFkZmZiMWEwNGJm
M2FiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAtMDQgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50IGZv
bnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbAorCisgICAgICAgIEFkZHMgZXhwZWN0YXRpb25z
IG9mIGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy5odG1sIGZvciBDaHJvbWl1
bSB3aW4gcG9ydC4gU2luY2UgVW5pc2NpcmJlIE9wZW5UeXBlIEFQSXMgYXJlIG5vdCBhdmFpbGFi
bGUgb24gV2luWFAgYnkgZGVmYXVsdCwgdGhlIHRlc3QgY291bGQgZmFpbCBvbiBXaW5YUC4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmctZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0OiBWSVNUQSBhbmQgV0lONyBzaG91bGQgcGFzcyBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmcuaHRtbC4KKwogMjAxMS0xMC0wMyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85OTczNDg5PiBSRUdSRVNTSU9OIChy
NjY1OTkpOiAtW0RPTU5vZGUgYm91bmRpbmdCb3hdIHJldHVybnMgdGhlIHplcm8gcmVjdCBmb3Ig
U1ZHIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13
aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnBuZyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5n
cy1yZW5kZXJpbmctZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhNTMzOTU3MzQxZDJlYjQyYmI3
OTYwYWRlYzMyMzkyNjZkYmY0ZmMKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDUwNTAKemNtZUhM
WWZ6SXs4dlg/M0JEWHFMcUMhTzFEKCVXbTV5Qi1UK0xscm0zRHZkKyVUKiU4MHd6RiYwSiRscyol
bFJCCnppbHwmTjlqel99MFVJRlBrXm5LRjc+RzVNYUxYNFdHJTE3dEE/OEx4dmk0Nz52JTVkR3la
ZGtYYilJP1dvIyZuUgp6SjxvSF9uZSlYKnMzQDA+K2N5Rkw7QndAe19tMmFCP00/dSZpRjJAZDlv
aDJjN1ZwPX5KTGUrZiZTQjFeVktORE0KelhNdkZQdzRlWT9LdFMrO150NG49YTVeUig2Qj9RWk9I
VnokS2tkTjVwdXA+aylrNlRWYFJJfU40fVZmbnQmJlhTCnpqe244eCg2UFdnaT8jOT1VR1ZNSiNM
dXBfc0NfZGQ/c3tKTj8wRUVGcCp3WGREd2hUVCZ4fUdlOXNxanF5UEUrWgp6KXk0X2Z4JWJ9eUl3
MShkdV9pIykqVThDLXQ9N3BpNVF1Zj02akd8bkhfZGlzfDdjaWBoKEhRP1JOKiNpcDRlNHIKelIx
KSQrbWJJY0Z4UXNUNVE0RnB0NjFDdkxxP3F7JWt2enRwKnYlQ1NIQXA5ZmcqP2Z6QzxpOGtHVm1u
fllpRm4tCnpXbykxTDE8JDQ0P0BoV2dMdUVISUZuck9xbUw+UEs+dDViakQ3dkhfTklWVXB6VW9L
b1AqV21CdyZsPWNjSVQmYgp6MXZ2O15APlRnUVhNZFh+QXFAR2kjbERCKG9BJkFreCFLXmtZJlNo
bzVgcCRQaiFFMT58Q1koeFF9cklEVkYhMVMKemxwOHdQOTI8dkx2aGthUz1Ydn0pYz8oYGpTI3ZU
ZWxBMl5IQmpJai12eHZeVVY1cjREdTFGKiR3TmMoNzYwWStqCnomNiVye201czZaQzJmU247fXA0
RitWWSZ9Wjw9ZFhkVEBueCtQUU4xUjlmP3lRVlh7R2x2TVZCaUdKTmV3QSY1Pwp6dURZaU8tJiRa
QGhAcX44aGJINCp4eXdlPTlUOEg0TFchZ2BFOzhGRzhlR31vdWxmMm1FUGoqK1A0SD51dFF4ZzEK
emN3ZFB9aH5XdClqQmhGSWYmTnwmZnZKfmNAenErRENXP1RFS2BQNjc+OSZuPGlAaGtmO0llYWlm
I3B+O1NqakctCnpyVmhMNV4oKHYyPHU9TSQrMDhYeHlwQXdwcEFmSF94bnN5aV5eK2NVJSZ9ezNs
TWgwdiNESE9XcmA+QDEoVUIxNQp6N3w5ODIxQXAqaCpwKmJjeCg8VCFuQSsjY3FvTGh4eyp3JlFX
d00zcGEwTHh4dTlFViFhOH10U1NKdSpXLStMKjkKelhqRkNKe2lkd0BqN1BDe0JRRkk+bz8+bkpH
cDFIVytXa3FYKXRISlcxPUZGNlF7WVhLdXp8a1lFIzB0UkUqS1k9CnomSlBKP3ZpS340ME0wIVpx
Ulk/Nz9lQzh3XnZ8QHdlZiY7VTF1e1k5dCpCbTU5OVo3YkAlK2d1K3UlQEJVQy1WJAp6ZHshWUJE
XkxkR2dCck5FTGNEeCRIdi18fTNmWSMkcWJSbml2KDNHZnF8VWIlQjM9Yl4hYHI3Q0FjYlQkQHVU
IT4KekNlWSVfPV8pKkU5fmNsRXMzMFhiaTRFPWZFK0B7dCsoPSY3NkBWQkVYM19CVyFvKUZHfDdC
WVJ2THckV1VXeGFRCnpTPCZQcF5YMj1ZaSVEZW9hO2lOO0xDbjJBPGgkKnQxYSRFQ0hOYlolVGUm
VSRMcGdSREkzZEtuPj1xeGpYOF9qXgp6VnQlK1NRKzVSdTtgfHFha3cxMHNCV1J6RzMocVJ9bzJk
YSlEV2dMWStVJlJONkh2OTw4QlFaNj85azl0PFpxZDgKemF2VEtDaCo3bkExTk5hfCM8Nj59YF5s
PXJ5cGFBemJxRkR0VmUpMktGKEpzWiQ7cElTdndKUG1fKTkhI3d0QjI8CnpMUXRVXmpJQH5KRklM
NiFneUBUUzlKOUxDV283bHokM0dSIVgjMkJKQF8yN3V5e2swM29AQ3hVdnZobWUoU3IlPQp6bj5w
eUdgfXUpTT4mb2I7ayFDanpSfTk3TFFeXll5ZztLK2gzMWVqe09PND1STjlfRH0qcCo3PjtxTTN+
LTA1QkoKemkxaT9HZHUmb0NjQSpmX3RVRj1PKE0xbCY9QkdNSVM7LXwpe099Vzw/ZjF4aStwVH1U
cnx1ZEhtKGR2TjR0PVJtCnpmRmBReV9zWCEpVnQqQEV6elFuI0ViJFU4d2RjQWRIRik/fiRnMSFo
cEk5SHVUeHFQKjxPTURse0glTCo8NFVDQAp6S19WekZHZmk1OXhLamVTbzlscT1XcUI3X3tXSV4j
ZVlBUysmUXhMV2ghdXl9dWMlVW4+RUV1WnpSMnF1WU5DKloKenkkTWo5WX5gWX5kdCZCMUpeSEhH
STZteTlmOHMlJUN5cG9ZT2hAKGNjV05MUGMpYkprNiFRMVpgS1BsTFhndnsoCnpwN3ljJXJKMWhW
bzNYcXI2ZSVCX3dPPTtkY190a31tQkcxJmZxPy12aTZ4ey0kUSpLUS1CNyVwc2Z7Uz9NWiVJMwp6
JCpXcUt0IWROITUtOGNad1BRe0pMNWpsPFh2JGB2WSsjNXZxaiN9WW4oVElOc2NMTHVPIzNIZ0Eo
JWlXVCkpTFUKelEtZFB+N1BqQX5YRyVSWFdHfHc2PF42ODhMYjx9NjlYI15oKWhOPVdZJSYzZ198
Uj85MiVuY0gpUCYwdmRMcDVCCnpwUExFPlJyQmFlOGxydHZLSEhAIyk2KnchRzxMZVE9VShxUGpD
R3BLLVZYUDd0fVJufG9oeTBEbS1wVmpiczs3WQp6IW1GJX0oWTB4JndGKGoxemkydjIzU0oobjRw
aGQ9bzNhQXltfGczZGNBJSk4THoldG1GTEc3Vlo0ZH1lZEIlKVcKenBiRHJoYHs8KnlVajx6Q3FL
KlkzdU1QTXY/ZSs2XzZkQzl6NElXU3E8X0RzY2ZQS3A2TCM5SjhnKWkjODttR2swCnpyKXk4MExO
OUNwLXE1KTMwdUNLYlNxRDU/QEJUWTUtYGNhPzhsYz5fSX00O3pAPTl9MSZUKGdYUmhLRUJCWk13
Xwp6SWRPbyZpVHk/I2xIR192dC0yU1ZfNWNxeWJsUkw+b1cwYzNZMXohd2VLNlkxVVJqcmo/a15P
JUlnPDJeSEN0KXYKem5+KD13ZlcxY04qSHp7allMLTNzNUB9S1lXc3xqTmdeMlROI0M2WmhAeXxp
aXJPXyViZytsMXpRej1LeVZHRzk5Cno4Z3J8SFBBVzxoaTBaNCU2MExXekJTNWB6RUZ+ZyQjPmom
U1ZGK1l9QTEob1llfU9XWDVuLTdeQ3x+JDtjRFFqXgp6NUZ4RW0rP3E2XyktcU8kSzxTZWhDXjxo
UDs1Jk1CM3tFRmxle0ZMJUEmO2MhbksyOGhvcT9yfmtGcH5UV19URU4KenFjcFJ3bTRCUkdwTEIo
NjV9VCg9VnY4Y0k5VzAwdmw1UklyMSFIb2pLbFN2PiEhZ0I4NTNlUjQ4YyZkYnAtWUNNCnpMPTFe
OGUyTkNsSGgwaj91Rj9haGNPa0laJDtKcnhsanxSOG8oNGktYz5FVUMmMXE4R05WKD09dEgwRUUr
VihzZQp6TzE4XmYwITZYPHhrZ0lnVGt7V0k0andEYHlwSEkoRmEpZiZ3QSVKbVplPlM/Nz5vTUJf
e2g+Nl9kQzhmIVYpQT8KeiVvRnNnN1MwNVM/ZHc7TEMqKyQ0cFVMZmliayE1cDs3ZD80NTxQXzFl
V0E5bXA5cl5pWFlfN3drVkd7QmhNMFNgCnpVcWN1T1BMdCoxKGRqT3crYmdvIVlDMSFUaFUhR30k
STF6QkZ7ZmpYbDMxczZLUGYkJXRMWm0mYiRyUS1rV3tAOwp6ckBPZj5xP29YcnkhTEpNMzNFRj9g
WHBmZnNGcjZANDJuQTUxYnx4TztYQ05NZUwlYCNQY203K21iSjZLYWE8MyQKenwwKkl1ezZ6clJ8
RXN0KiROZ2A+Z2lGSk9zKlJJSW5VPWtOZChvPXUoOUwjWmNtRDxlP2pLeXhkZV8hJm99K1RQCnpv
eUJ9KlFuNTImJj13MCpSNipyOFl5YjwmSSF+RlZhdjZTaU9afCkxMHA+SDxxfjdneEY9RyoyKUpK
XzUwY0lwewp6NiVOM1hYYFdOdUl7VmBYV25ZZVdQc21qP1QoPDw1QihlZGh0aVl5fTJ5V08wcHI8
YkAjbjw5Sl8zfHUtUGpCcFkKemJPNmpsKks5TUBzVmBRYVhzKHZiKlpfdWwmLUVpS1IkRCpCPHlL
MShCXkVmKDllbGZhTjdGSDFqelF4dFRkOD0hCnpQb3wpcDA3Sk1ETmRiVXxRe0VsNnp8d0VkJWhH
I3luMl9mJmglUCV8VWNLQDZVaT5aUjR9dGw3dTlSRWswUllxcgp6bnZScHhCfCM5dnNoKzFjekdu
WnxtajRnZ3c+MTZKO3FpeDwpe183R3k8VkgpKzZAMlUwJC1FRm5rM2RGdkYzdlIKZDh5OHJkSTFT
MTVvWDJ+Zno1YXs/anpwcn5aK3RoVWAwdFNKVzEwV30KCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQt
ZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0td2luL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNmOWEwM2QzNDBkZTZhOWFlZjE2NWVjMzBkMjZlODAy
ODhkZGU3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
LXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTkgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3
IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5IHtC
T0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCww
KSBzaXplIDc4NHg0MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA3
ODN4MzkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAyMzU6ICJUZXN0IGZvciBm
b250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MjM1LDApIHdpZHRoIDU0ODogIlRoZSBmaXJzdCB3b3JkIG9mIHRoZSBmb2xsb3dpbmcgdGhyZWUg
d29yZHMgc2hvdWxkIGJlIGRpc3BsYXllZCBsaWtlIFwiV2ViS2l0XCIsIHdoaWxlIG90aGVycyIK
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwyMCkgd2lkdGggMjE3OiAic2hvdWxkIGJlIGRpc3Bs
YXllZCBhcyBibGFjayBib3hlcy4iCisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw1Nikg
c2l6ZSA3ODR4MTcKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzB4
MTYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzMDogIldlYktpdCIKKyAgICAg
IFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDczKSBzaXplIDc4NHgxNworICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA5NngxNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDk2OiAiV2ViS2l0IgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsOTAp
IHNpemUgNzg0eDE3CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDk2
eDE2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggOTY6ICJXZWJLaXQiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
aW5kZXggYzhlMThlNmZjNWU5MDdkODUyOGNkYTc4Y2MzOTEwZWQ3NGM2NGY2Ni4uNThmODU5Njdl
ZDkzYWZkYmM5ZWE1MjVlZWUwNzdmMzQwODBhYjkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtNDg2LDYgKzQ4Niwx
MCBAQCBXT05URklYIFNLSVAgOiBmYXN0L2pzL3JlcGFyc2luZy1zZW1pY29sb24taW5zZXJ0aW9u
Lmh0bWwgPSBGQUlMCiBXT05URklYIENQVSBHUFUgOiBwbGF0Zm9ybS9jaHJvbWl1bS9ydWJiZXJi
YW5kaW5nID0gRkFJTAogV09OVEZJWCBDUFUgR1BVIDogcGxhdGZvcm0vY2hyb21pdW0tZ3B1L2Nv
bXBvc2l0aW5nL3J1YmJlcmJhbmRpbmcgPSBJTUFHRQogCisvLyBUaGlzIHJlcXVpcmVzIHVzcDEw
LmRsbCB2ZXJzaW9uIDEuNjAwIG9yIGdyZWF0ZXIgb24gV2luZG93cyBhbmQKKy8vIGl0IGlzbid0
IGluc3RhbGxlZCBvbiBYUCBieSBkZWZhdWx0LgorV09OVEZJWCBYUCA6IGNzczMvZm9udC1mZWF0
dXJlLXNldHRpbmdzLXJlbmRlcmluZy5odG1sID0gUEFTUyBGQUlMCisKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAv
LyBMSUdIVFRQRAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM0NzYsNyArMzQ4MCw3IEBAIEJVR1dLNjU5NTEg
V0lOIERFQlVHIDogd2ViYXVkaW8vbWl4aW5nLmh0bWwgPSBDUkFTSAogQlVHV0s2NTk1MSBMSU5V
WCBNQUMgREVCVUcgOiB3ZWJhdWRpby9taXhpbmcuaHRtbCA9IENSQVNIIFBBU1MKIEJVR1dLNjU5
NTEgTElOVVggTUFDIERFQlVHIDogd2ViYXVkaW8vdGVzdC1iYXNpYy5odG1sID0gQ1JBU0ggUEFT
UwogCi1CVUdXSzYzNzk2IE1BQyBXSU4gOiBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5k
ZXJpbmcuaHRtbCA9IE1JU1NJTkcgRkFJTAorQlVHV0s2Mzc5NiBNQUMgOiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCA9IE1JU1NJTkcgRkFJTAogCiAvLyBOZXcgdGVz
dCBpbiByOTMwNjgKIEJVR1dLNjYyNjggTUFDIENQVS1DRyA6IGVkaXRpbmcvZGVsZXRpbmcvcmVn
aW9uYWwtaW5kaWNhdG9ycy5odG1sID0gVEVYVApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRmYmM0MDE1NGI5YjUy
NmZhYzMxM2IxZTI3MThkZTY1NWI5MjVkZTguLmMzYjhkNGYxZTEyYTQ1ZjYxMGU1ZmExNTYwNjZh
MDZmMjg0MTdhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMS0xMC0wNCAgS2Vu
aWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVt
XSBJbXBsZW1lbnQgZm9udCBzaGFwaW5nIHdpdGggZm9udC1mZWF0dXJlLXNldHRpbmdzIG9uIFdp
bmRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
OTA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNl
IFVuaXNjcmliZSdzIE9wZW5UeXBlIEFQSXMgdG8gc2hhcGUgY29tcGxleCB0ZXh0IHRvIHN1cHBv
cnQgLXdlYmtpdC1mb250LWZlYXR1cmUtc2V0dGluZ3MgcHJvcGVydHkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCBzaG91
bGQgcGFzcyBieSB0aGlzIHBhdGNoLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRPcGVuVHlw
ZUZ1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OlVuaXNjcmli
ZUhlbHBlcik6IENhbGxzIGxvYWRPcGVuVHlwZUZ1bmN0aW9ucyBpZiBuZWVkZWQuCisgICAgICAg
IChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OmZpbGxSdW5zKTogVXNlcyBTY3JpcHRJdGVtaXpl
T3BlblR5cGUoKSBpZiBwb3NzaWJsZS4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBl
cjo6c2hhcGUpOiBVc2VzIFNjcmlwdFNoYXBlT3BlblR5cGUoKSBpZiBwb3NzaWJsZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6ZmlsbFNoYXBlcyk6IEFkZHMgT3BlblR5cGUg
c2NyaXB0IHRhZyBhcyBhbiBhcmd1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRGZWF0
dXJlVGFnKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpVbmlzY3JpYmVIZWxwZXI6OnNldFJh
bmdlUHJvcGVydGllcyk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1VuaXNjcmliZUhlbHBlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VW5pc2Ny
aWJlSGVscGVyVGV4dFJ1bjo6VW5pc2NyaWJlSGVscGVyVGV4dFJ1bik6IENhbGxzIHNldFJhbmdl
UHJvcGVydGllcygpLgorCiAyMDExLTEwLTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIE1hYyByZWxlYXNlIGJ1aWxkIGZpeCBhZnRlciByOTY1NjEsIGFuZCBM
ZW9wYXJkIGJ1aWxkIGZpeCBhZnRlciByOTY1NjguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVyLmNwcApp
bmRleCA3NDJiOGI3ZTNkYTk4Mzc3NGVlNmQzOWFkNTEwYzk1MWY4NDRmZGIzLi4wYmEyZGExOGIx
MWI5OWM4NzNjOTI4MWVhMDY1NTc4NzYxYWIzMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5j
cHAKQEAgLTQxLDYgKzQxLDQ0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorLy8gVGhlIGZ1
bmN0aW9uIHR5cGVzIGZvciBTY3JpcHRJdGVtaXplT3BlblR5cGUoKSBhbmQgU2NyaXB0U2hhcGVP
cGVuVHlwZSgpLgorLy8gV2Ugd2FudCB0byB1c2UgdGhlc2UgZnVuY3Rpb25zIGZvciBPcGVuVHlw
ZSBmZWF0dXJlIHN1cHBvcnQsIGJ1dCB3ZSBjYW4ndAorLy8gY2FsbCB0aGVtIGRpcmVjdGx5IGJl
Y2F1c2UgdXNwMTAuZGxsIGRvZXMgbm90IGFsd2F5cyBoYXZlIHRoZW0uCisvLyBJbnN0ZWFkLCB3
ZSB1c2UgR2V0UHJvY0FkZHJlc3MoKSB0byBjaGVjayB3aGV0aGVyIHdlIGNhbiBhY3R1YWxseSB1
c2UgdGhlc2UKKy8vIGZ1bmN0aW9uLiBJZiB3ZSBjYW4ndCB1c2UgdGhlc2UgZnVuY3Rpb25zLCB3
ZSBzdWJzdGl0dXRlIFNjcmlwdEl0ZW16ZSgpIGFuZAorLy8gU2NyaXB0U2hhcGUoKS4KK3R5cGVk
ZWYgSFJFU1VMVCAoV0lOQVBJICpTY3JpcHRJdGVtaXplT3BlblR5cGVGdW5jKShjb25zdCBXQ0hB
UiosIGludCwgaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IFNDUklQVF9DT05UUk9MKiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTQ1JJUFRfU1RBVEUqLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDUklQVF9JVEVN
KiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP
UEVOVFlQRV9UQUcqLCBpbnQqKTsKK3R5cGVkZWYgSFJFU1VMVCAoV0lOQVBJICpTY3JpcHRTaGFw
ZU9wZW5UeXBlRnVuYykoSERDLCBTQ1JJUFRfQ0FDSEUqLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTQ1JJUFRfQU5BTFlTSVMqLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUEVOVFlQRV9UQUcsIE9Q
RU5UWVBFX1RBRywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50KiwgVEVYVFJBTkdFX1BST1BFUlRJRVMqKiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50LCBjb25zdCBXQ0hBUiosIGludCwgaW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXT1JE
KiwgU0NSSVBUX0NIQVJQUk9QKiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV09SRCosIFNDUklQVF9HTFlQSFBST1AqLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQqKTsKKworc3RhdGljIFNjcmlw
dEl0ZW1pemVPcGVuVHlwZUZ1bmMgZ1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMgPSAwOworc3Rh
dGljIFNjcmlwdFNoYXBlT3BlblR5cGVGdW5jIGdTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYyA9IDA7
CitzdGF0aWMgYm9vbCBnT3BlblR5cGVGdW5jdGlvbnNMb2FkZWQgPSBmYWxzZTsKKworc3RhdGlj
IHZvaWQgbG9hZE9wZW5UeXBlRnVuY3Rpb25zKCkKK3sKKyAgICBITU9EVUxFIGhNb2R1bGUgPSBH
ZXRNb2R1bGVIYW5kbGUoTCJ1c3AxMCIpOworICAgIGlmIChoTW9kdWxlKSB7CisgICAgICAgIGdT
Y3JpcHRJdGVtaXplT3BlblR5cGVGdW5jID0gcmVpbnRlcnByZXRfY2FzdDxTY3JpcHRJdGVtaXpl
T3BlblR5cGVGdW5jPihHZXRQcm9jQWRkcmVzcyhoTW9kdWxlLCAiU2NyaXB0SXRlbWl6ZU9wZW5U
eXBlIikpOworICAgICAgICBnU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMgPSByZWludGVycHJldF9j
YXN0PFNjcmlwdFNoYXBlT3BlblR5cGVGdW5jPihHZXRQcm9jQWRkcmVzcyhoTW9kdWxlLCAiU2Ny
aXB0U2hhcGVPcGVuVHlwZSIpKTsKKyAgICB9CisgICAgaWYgKCFnU2NyaXB0SXRlbWl6ZU9wZW5U
eXBlRnVuYyB8fCAhZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jKSB7CisgICAgICAgIGdTY3JpcHRJ
dGVtaXplT3BlblR5cGVGdW5jID0gMDsKKyAgICAgICAgZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5j
ID0gMDsKKyAgICB9CisgICAgZ09wZW5UeXBlRnVuY3Rpb25zTG9hZGVkID0gdHJ1ZTsKK30KKwog
Ly8gSEZPTlQgaXMgdGhlICdpbmNhcm5hdGlvbicgb2YgJ2V2ZXJ5dGhpbmcnIGFib3V0IGZvbnQs
IGJ1dCBpdCdzIGFuIG9wYXF1ZQogLy8gaGFuZGxlIGFuZCB3ZSBjYW4ndCBkaXJlY3RseSBxdWVy
eSBpdCB0byBtYWtlIGEgbmV3IEhGT05UIHNoYXJpbmcKIC8vIGl0cyBjaGFyYWN0ZXJpc3RpY3Mg
KGhlaWdodCwgc3R5bGUsIGV0YykgZXhjZXB0IGZvciBmYW1pbHkgbmFtZS4KQEAgLTkyLDYgKzEz
MCw4IEBAIFVuaXNjcmliZUhlbHBlcjo6VW5pc2NyaWJlSGVscGVyKGNvbnN0IFVDaGFyKiBpbnB1
dCwKIAogewogICAgIG1fbG9nZm9udC5sZkZhY2VOYW1lWzBdID0gMDsKKyAgICBpZiAoIWdPcGVu
VHlwZUZ1bmN0aW9uc0xvYWRlZCkKKyAgICAgICAgbG9hZE9wZW5UeXBlRnVuY3Rpb25zKCk7CiB9
CiAKIFVuaXNjcmliZUhlbHBlcjo6flVuaXNjcmliZUhlbHBlcigpCkBAIC00MTgsNyArNDU4LDgg
QEAgV09SRCBVbmlzY3JpYmVIZWxwZXI6OmZpcnN0R2x5cGhGb3JDaGFyYWN0ZXIoaW50IGNoYXJP
ZmZzZXQpIGNvbnN0CiB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMoKQogewogICAgIEhS
RVNVTFQgaHI7Ci0gICAgbV9ydW5zLnJlc2l6ZShVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlMp
OworICAgIG1fcnVucy5yZXNpemUoY1VuaXNjcmliZUhlbHBlclN0YWNrUnVucyk7CisgICAgbV9z
Y3JpcHRUYWdzLnJlc2l6ZShjVW5pc2NyaWJlSGVscGVyU3RhY2tSdW5zKTsKIAogICAgIFNDUklQ
VF9TVEFURSBpbnB1dFN0YXRlOwogICAgIGlucHV0U3RhdGUudUJpZGlMZXZlbCA9IG1faXNSdGw7
CkBAIC00NzMsMTAgKzUxNCwzNSBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMoKQog
ICAgICAgICAvLyBJdCBzZWVtcyB0byBiZSBkb2luZyBhdCBsZWFzdCB0d28gcGFzc2VzLCB0aGUg
Zmlyc3Qgd2hlcmUgaXQgcHV0cyBhCiAgICAgICAgIC8vIGxvdCBvZiBpbnRlcm1lZGlhdGUgZGF0
YSBpbnRvIG91ciBpdGVtcywgYW5kIHRoZSBzZWNvbmQgd2hlcmUgaXQKICAgICAgICAgLy8gY29s
bGF0ZXMgdGhlbS4KLSAgICAgICAgaHIgPSBTY3JpcHRJdGVtaXplKG1faW5wdXQsIG1faW5wdXRM
ZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KG1fcnVu
cy5zaXplKCkpIC0gMSwgJmlucHV0Q29udHJvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZpbnB1dFN0YXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1fcnVuc1swXSwgJm51
bWJlck9mSXRlbXMpOworICAgICAgICBpZiAoZ1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMpIHsK
KyAgICAgICAgICAgIGhyID0gZ1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMobV9pbnB1dCwgbV9p
bnB1dExlbmd0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhdGljX2Nhc3Q8aW50PihtX3J1bnMuc2l6ZSgpKSAtIDEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICZpbnB1dENvbnRyb2wsICZpbnB1dFN0YXRlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9ydW5zWzBdLCAmbV9z
Y3JpcHRUYWdzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAmbnVtYmVyT2ZJdGVtcyk7CisgICAgICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgeworICAg
ICAgICAgICAgICAgIC8vIFBhY2sgY29uc2VjdXRpdmUgcnVucywgdGhlIHNjcmlwdCB0YWcgb2Yg
d2hpY2ggYXJlCisgICAgICAgICAgICAgICAgLy8gU0NSSVBUX1RBR19VTktOT1dOLCB0byByZWR1
Y2UgdGhlIG51bWJlciBvZiBydW5zLgorICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbnVtYmVyT2ZJdGVtczsgKytpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX3Njcmlw
dFRhZ3NbaV0gPT0gU0NSSVBUX1RBR19VTktOT1dOKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgaiA9IDE7CisgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoaSArIGogPCBudW1i
ZXJPZkl0ZW1zICYmIG1fc2NyaXB0VGFnc1tpICsgal0gPT0gU0NSSVBUX1RBR19VTktOT1dOKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrajsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgtLWopIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3J1bnMucmVtb3ZlKGkg
KyAxLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3NjcmlwdFRhZ3MucmVtb3Zl
KGkgKyAxLCBqKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXJPZkl0ZW1zIC09
IGo7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgbV9zY3JpcHRUYWdzLnJlc2l6ZShudW1i
ZXJPZkl0ZW1zKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGhyID0gU2NyaXB0SXRlbWl6ZShtX2lucHV0LCBtX2lucHV0TGVuZ3RoLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9ydW5zLnNpemUoKSkgLSAxLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbnB1dENvbnRyb2wsICZpbnB1dFN0YXRl
LCAmbV9ydW5zWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZudW1iZXJPZkl0
ZW1zKTsKKyAgICAgICAgfQogICAgICAgICBpZiAoU1VDQ0VFREVEKGhyKSkgewogICAgICAgICAg
ICAgbV9ydW5zLnJlc2l6ZShudW1iZXJPZkl0ZW1zKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAt
NDg4LDYgKzU1NCw3IEBAIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsUnVucygpCiAgICAgICAg
IH0KICAgICAgICAgLy8gVGhlcmUgd2FzIG5vdCBlbm91Z2ggaXRlbXMgZm9yIGl0IHRvIHdyaXRl
IGludG8sIGV4cGFuZC4KICAgICAgICAgbV9ydW5zLnJlc2l6ZShtX3J1bnMuc2l6ZSgpICogMik7
CisgICAgICAgIG1fc2NyaXB0VGFncy5yZXNpemUobV9ydW5zLnNpemUoKSk7CiAgICAgfQogfQog
CkBAIC00OTUsMTEgKzU2MiwxNCBAQCBib29sIFVuaXNjcmliZUhlbHBlcjo6c2hhcGUoY29uc3Qg
VUNoYXIqIGlucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpdGVtTGVuZ3Ro
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBudW1HbHlwaHMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU0NSSVBUX0lURU0mIHJ1biwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBPUEVOVFlQRV9UQUcgc2NyaXB0VGFnLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNoYXBpbmcmIHNoYXBpbmcpCiB7CiAgICAgSEZPTlQgaGZvbnQgPSBtX2hmb250OwogICAg
IFNDUklQVF9DQUNIRSogc2NyaXB0Q2FjaGUgPSBtX3NjcmlwdENhY2hlOwogICAgIFNDUklQVF9G
T05UUFJPUEVSVElFUyogZm9udFByb3BlcnRpZXMgPSBtX2ZvbnRQcm9wZXJ0aWVzOworICAgIFZl
Y3RvcjxTQ1JJUFRfQ0hBUlBST1AsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzPiBjaGFyUHJv
cHM7CisgICAgVmVjdG9yPFNDUklQVF9HTFlQSFBST1AsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0No
YXJzPiBnbHlwaFByb3BzOwogICAgIGludCBhc2NlbnQgPSBtX2FzY2VudDsKICAgICBXT1JEIHNw
YWNlR2x5cGggPSBtX3NwYWNlR2x5cGg7CiAgICAgSERDIHRlbXBEQyA9IDA7CkBAIC01MjIsNiAr
NTkyLDggQEAgYm9vbCBVbmlzY3JpYmVIZWxwZXI6OnNoYXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwK
ICAgICAgICAgc2hhcGluZy5tX2xvZ3MucmVzaXplKGl0ZW1MZW5ndGgpOwogICAgICAgICBzaGFw
aW5nLm1fZ2x5cGhzLnJlc2l6ZShudW1HbHlwaHMpOwogICAgICAgICBzaGFwaW5nLm1fdmlzdWFs
QXR0cmlidXRlcy5yZXNpemUobnVtR2x5cGhzKTsKKyAgICAgICAgY2hhclByb3BzLnJlc2l6ZShp
dGVtTGVuZ3RoKTsKKyAgICAgICAgZ2x5cGhQcm9wcy5yZXNpemUobnVtR2x5cGhzKTsKIAogI2lm
ZGVmIFBVUklGWQogICAgICAgICAvLyBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0v
aXNzdWVzL2RldGFpbD9pZD01MzA5CkBAIC01NDIsMTMgKzYxNCwyMyBAQCBib29sIFVuaXNjcmli
ZUhlbHBlcjo6c2hhcGUoY29uc3QgVUNoYXIqIGlucHV0LAogICAgICAgICBaZXJvTWVtb3J5KCZz
aGFwaW5nLm1fZ2x5cGhzWzBdLAogICAgICAgICAgICAgICAgICAgIHNpemVvZihzaGFwaW5nLm1f
Z2x5cGhzWzBdKSAqIHNoYXBpbmcubV9nbHlwaHMuc2l6ZSgpKTsKICNlbmRpZgotCiAgICAgICAg
IC8vIEZpcmVmb3ggc2V0cyBTQ1JJUFRfQU5BTFlTSVMuU0NSSVBUX1NUQVRFLmZEaXNwbGF5WldH
IHRvIHRydWUKICAgICAgICAgLy8gaGVyZS4gSXMgdGhhdCB3aGF0IHdlIHdhbnQ/IEl0IHdpbGwg
ZGlzcGxheSBjb250cm9sIGNoYXJhY3RlcnMuCi0gICAgICAgIGhyID0gU2NyaXB0U2hhcGUodGVt
cERDLCBzY3JpcHRDYWNoZSwgaW5wdXQsIGl0ZW1MZW5ndGgsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgbnVtR2x5cGhzLCAmcnVuLmEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXBp
bmcubV9nbHlwaHNbMF0sICZzaGFwaW5nLm1fbG9nc1swXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAmc2hhcGluZy5tX3Zpc3VhbEF0dHJpYnV0ZXNbMF0sICZnZW5lcmF0ZWRHbHlwaHMpOwor
ICAgICAgICBpZiAoZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jKSB7CisgICAgICAgICAgICBURVhU
UkFOR0VfUFJPUEVSVElFUyogcmFuZ2VQcm9wcyA9IG1fZmVhdHVyZVJlY29yZHMuc2l6ZSgpID8g
Jm1fcmFuZ2VQcm9wZXJ0aWVzIDogMDsKKyAgICAgICAgICAgIGhyID0gZ1NjcmlwdFNoYXBlT3Bl
blR5cGVGdW5jKHRlbXBEQywgc2NyaXB0Q2FjaGUsICZydW4uYSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdFRhZywgMCwgJml0ZW1MZW5ndGgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcmFuZ2VQcm9wcywgcmFuZ2VQ
cm9wcyA/IDEgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW5wdXQsIGl0ZW1MZW5ndGgsIG51bUdseXBocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fbG9nc1swXSwgJmNoYXJQcm9wc1swXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fZ2x5cGhzWzBd
LCAmZ2x5cGhQcm9wc1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZnZW5lcmF0ZWRHbHlwaHMpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaHIg
PSBTY3JpcHRTaGFwZSh0ZW1wREMsIHNjcmlwdENhY2hlLCBpbnB1dCwgaXRlbUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtR2x5cGhzLCAmcnVuLmEsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fZ2x5cGhzWzBdLCAmc2hhcGluZy5tX2xvZ3Nb
MF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzaGFwaW5nLm1fdmlzdWFsQXR0cmli
dXRlc1swXSwgJmdlbmVyYXRlZEdseXBocyk7CisgICAgICAgIH0KICAgICAgICAgaWYgKGhyID09
IEVfUEVORElORykgewogICAgICAgICAgICAgLy8gQWxsb2NhdGUgdGhlIERDLgogICAgICAgICAg
ICAgdGVtcERDID0gR2V0REMoMCk7CkBAIC02NDUsNiArNzI3LDEyIEBAIGJvb2wgVW5pc2NyaWJl
SGVscGVyOjpzaGFwZShjb25zdCBVQ2hhciogaW5wdXQsCiAgIGNsZWFudXA6CiAgICAgc2hhcGlu
Zy5tX2dseXBocy5yZXNpemUoZ2VuZXJhdGVkR2x5cGhzKTsKICAgICBzaGFwaW5nLm1fdmlzdWFs
QXR0cmlidXRlcy5yZXNpemUoZ2VuZXJhdGVkR2x5cGhzKTsKKyAgICAvLyBJZiB3ZSB1c2UgU2Ny
aXB0U2hhcGVPcGVuVHlwZSgpLCB2aXN1YWwgYXR0cmlidXRlcyBpbmZvcm1hdGlvbiBmb3IgZWFj
aAorICAgIC8vIGNoYXJhY3RlcnMgYXJlIHN0b3JlZCBpbiB8Z2x5cGhQcm9wc1tpXS5zdmF8Lgor
ICAgIGlmIChnU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBnZW5lcmF0ZWRHbHlwaHM7ICsraSkKKyAgICAgICAgICAgIG1lbWNweSgmc2hhcGlu
Zy5tX3Zpc3VhbEF0dHJpYnV0ZXNbaV0sICZnbHlwaFByb3BzW2ldLnN2YSwgc2l6ZW9mKFNDUklQ
VF9WSVNBVFRSKSk7CisgICAgfQogICAgIHNoYXBpbmcubV9hZHZhbmNlLnJlc2l6ZShnZW5lcmF0
ZWRHbHlwaHMpOwogICAgIHNoYXBpbmcubV9vZmZzZXRzLnJlc2l6ZShnZW5lcmF0ZWRHbHlwaHMp
OwogICAgIGlmICh0ZW1wREMpIHsKQEAgLTY2OCwxMSArNzU2LDExIEBAIHZvaWQgVW5pc2NyaWJl
SGVscGVyOjpmaWxsU2hhcGVzKCkKICAgICAgICAgICAgIGl0ZW1MZW5ndGggPSBtX3J1bnNbaSAr
IDFdLmlDaGFyUG9zIC0gc3RhcnRJdGVtOwogCiAgICAgICAgIGludCBudW1HbHlwaHM7Ci0gICAg
ICAgIGlmIChpdGVtTGVuZ3RoIDwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUykgeworICAg
ICAgICBpZiAoaXRlbUxlbmd0aCA8IGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzKSB7CiAgICAg
ICAgICAgICAvLyBXZSdsbCBzdGFydCBvdXIgYnVmZmVyIHNpemVzIHdpdGggdGhlIGN1cnJlbnQg
c3RhY2sgc3BhY2UKICAgICAgICAgICAgIC8vIGF2YWlsYWJsZSBpbiBvdXIgYnVmZmVycyBpZiB0
aGUgY3VycmVudCBpbnB1dCBmaXRzLiBBcyBsb25nIGFzCiAgICAgICAgICAgICAvLyBpdCBkb2Vz
bid0IGV4cGFuZCBwYXN0IHRoYXQgd2UnbGwgc2F2ZSBhIGxvdCBvZiB0aW1lIG1hbGxvY2luZy4K
LSAgICAgICAgICAgIG51bUdseXBocyA9IFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM7Cisg
ICAgICAgICAgICBudW1HbHlwaHMgPSBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFyczsKICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIFdoZW4gdGhlIGlucHV0IGRvZXNuJ3QgZml0LCBn
aXZlIHVwIHdpdGggdGhlIHN0YWNrIHNpbmNlIGl0IHdpbGwKICAgICAgICAgICAgIC8vIGFsbW9z
dCBzdXJlbHkgbm90IGJlIGVub3VnaCByb29tICh1bmxlc3MgdGhlIGlucHV0IGFjdHVhbGx5CkBA
IC02ODUsNyArNzczLDcgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXI6OmZpbGxTaGFwZXMoKQogICAg
ICAgICAvLyBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgZ2x5cGggc3RyaW5nIHRyeWluZyB0aGUgcHJp
bWFyeSBmb250LCBmb250cyBpbgogICAgICAgICAvLyB0aGUgZmFsbGJhY2sgbGlzdCBhbmQgdGhl
biBzY3JpcHQtc3BlY2lmaWMgbGFzdCByZXNvcnQgZm9udC4KICAgICAgICAgU2hhcGluZyYgc2hh
cGluZyA9IG1fc2hhcGVzW2ldOwotICAgICAgICBpZiAoIXNoYXBlKCZtX2lucHV0W3N0YXJ0SXRl
bV0sIGl0ZW1MZW5ndGgsIG51bUdseXBocywgbV9ydW5zW2ldLCBzaGFwaW5nKSkKKyAgICAgICAg
aWYgKCFzaGFwZSgmbV9pbnB1dFtzdGFydEl0ZW1dLCBpdGVtTGVuZ3RoLCBudW1HbHlwaHMsIG1f
cnVuc1tpXSwgbV9zY3JpcHRUYWdzW2ldLCBzaGFwaW5nKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIC8vIEF0IHRoZSBtb21lbnQsIHRoZSBvbmx5IHRpbWUgbV9kaXNhYmxlRm9u
dEZhbGxiYWNrIGlzIHNldCBpcwpAQCAtNzI0LDYgKzgxMiw3IEBAIHZvaWQgVW5pc2NyaWJlSGVs
cGVyOjpmaWxsU2hhcGVzKCkKICAgICAgICAgICAgIC8vIFNvbWUgZXJyb3Igd2UgZG9uJ3Qga25v
dyBob3cgdG8gaGFuZGxlLiBOdWtlIGFsbCBvZiBvdXIgZGF0YQogICAgICAgICAgICAgLy8gc2lu
Y2Ugd2UgY2FuJ3QgZGVhbCB3aXRoIHBhcnRpYWxseSB2YWxpZCBkYXRhIGxhdGVyLgogICAgICAg
ICAgICAgbV9ydW5zLmNsZWFyKCk7CisgICAgICAgICAgICBtX3NjcmlwdFRhZ3MuY2xlYXIoKTsK
ICAgICAgICAgICAgIG1fc2hhcGVzLmNsZWFyKCk7CiAgICAgICAgICAgICBtX3NjcmVlbk9yZGVy
LmNsZWFyKCk7CiAgICAgICAgIH0KQEAgLTkzMiw1ICsxMDIxLDI1IEBAIGJvb2wgVW5pc2NyaWJl
SGVscGVyOjpjb250YWluc01pc3NpbmdHbHlwaHMoY29uc3QgU2hhcGluZyYgc2hhcGluZywKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3N0YXRpYyBPUEVOVFlQRV9UQUcgY29udmVydEZlYXR1cmVU
YWcoY29uc3QgU3RyaW5nJiB0YWcpCit7CisgICAgcmV0dXJuICgodGFnWzBdICYgMHhGRikgfCAo
KHRhZ1sxXSAmIDB4RkYpIDw8IDgpIHwgKCh0YWdbMl0gJiAweEZGKSA8PCAxNikgfCAoKHRhZ1sz
XSAmIDB4RkYpIDw8IDI0KSk7Cit9CisKK3ZvaWQgVW5pc2NyaWJlSGVscGVyOjpzZXRSYW5nZVBy
b3BlcnRpZXMoY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdzKQorewor
ICAgIGlmICghZmVhdHVyZVNldHRpbmdzIHx8ICFmZWF0dXJlU2V0dGluZ3MtPnNpemUoKSkgewor
ICAgICAgICBtX2ZlYXR1cmVSZWNvcmRzLnJlc2l6ZSgwKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIG1fZmVhdHVyZVJlY29yZHMucmVzaXplKGZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgp
KTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmVhdHVyZVNldHRpbmdzLT5zaXplKCk7
ICsraSkgeworICAgICAgICBtX2ZlYXR1cmVSZWNvcmRzW2ldLmxQYXJhbWV0ZXIgPSBmZWF0dXJl
U2V0dGluZ3MtPmF0KGkpLnZhbHVlKCk7CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHNbaV0udGFn
RmVhdHVyZSA9IGNvbnZlcnRGZWF0dXJlVGFnKGZlYXR1cmVTZXR0aW5ncy0+YXQoaSkudGFnKCkp
OworICAgIH0KKyAgICBtX3JhbmdlUHJvcGVydGllcy5wb3RmUmVjb3JkcyA9ICZtX2ZlYXR1cmVS
ZWNvcmRzWzBdOworICAgIG1fcmFuZ2VQcm9wZXJ0aWVzLmNvdGZSZWNvcmRzID0gbV9mZWF0dXJl
UmVjb3Jkcy5zaXplKCk7Cit9CiAKIH0gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxw
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmli
ZUhlbHBlci5oCmluZGV4IDRiY2RiZDZhY2JhMGIwM2RmMjBmZTkyYzNlNGU0MzVhMDlmYjA4Nzcu
LmM5M2QyNzNhM2QwOTJiNjE2NWUxZWY5OWRjOTFhOGIxYjYyNTg3N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmli
ZUhlbHBlci5oCkBAIC00NCwxMCArNDQsMTIgQEAgY2xhc3MgVW5pc2NyaWJlVGVzdF9Ub29CaWdf
VGVzdDsgIC8vIEEgZ3VuaXQgdGVzdCBmb3IgVW5pc2NyaWJlSGVscGVyLgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIEZvbnRGZWF0dXJlU2V0dGluZ3M7CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7CiAKLSNkZWZpbmUgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TIDgKLSNkZWZpbmUg
VU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUyAzMgorY29uc3QgdW5zaWduZWQgY1VuaXNjcmli
ZUhlbHBlclN0YWNrUnVucyA9IDg7Citjb25zdCB1bnNpZ25lZCBjVW5pc2NyaWJlSGVscGVyU3Rh
Y2tDaGFycyA9IDMyOworY29uc3QgdW5zaWduZWQgY1VuaXNjcmliZUhlbHBlckZlYXR1cmVzID0g
NDsKIAogLy8gVGhpcyBvYmplY3Qgc2hvdWxkIGJlIHNhZmUgdG8gY3JlYXRlICYgZGVzdHJveSBm
cmVxdWVudGx5LCBhcyBsb25nIGFzIHRoZQogLy8gY2FsbGVyIHByZXNlcnZlcyB0aGUgc2NyaXB0
X2NhY2hlIHdoZW4gcG9zc2libGUgKHRoaXMgZGF0YSBtYXkgYmUgc2xvdyB0bwpAQCAtMTU4LDYg
KzE2MCwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZGlzYWJsZUZvbnRGYWxsYmFjayA9IHRydWU7
CiAgICAgfQogCisgICAgLy8gU2V0IFRFWFRSQU5HRV9QUk9QRVJUSUVTIHN0cnVjdHVyZSB3aGlj
aCBjb250YWlucworICAgIC8vIE9wZW5UeXBlIGZlYXR1cmUgcmVjb3JkcyBnZW5lcmF0ZWQgZnJv
bSBGb250RmVhdHVyZVNldHRpbmdzLgorICAgIHZvaWQgc2V0UmFuZ2VQcm9wZXJ0aWVzKGNvbnN0
IEZvbnRGZWF0dXJlU2V0dGluZ3MqKTsKKwogICAgIC8vIFlvdSBtdXN0IGNhbGwgdGhpcyBhZnRl
ciBzZXR0aW5nIGFueSBvcHRpb25zIGJ1dCBiZWZvcmUgZG9pbmcgYW55CiAgICAgLy8gb3RoZXIg
Y2FsbHMgbGlrZSBhc2tpbmcgZm9yIHdpZHRocyBvciBkcmF3aW5nLgogICAgIHZvaWQgaW5pdCgp
CkBAIC0yNjksNyArMjc1LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICAvLyBHbHlwaCBpbmRpY2Vz
IGluIHRoZSBmb250IHVzZWQgdG8gZGlzcGxheSB0aGlzIGl0ZW0uIFRoZXNlIGluZGljZXMKICAg
ICAgICAgLy8gYXJlIGluIHNjcmVlbiBvcmRlci4KLSAgICAgICAgVmVjdG9yPFdPUkQsIFVOSVND
UklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fZ2x5cGhzOworICAgICAgICBWZWN0b3I8V09SRCwg
Y1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fZ2x5cGhzOwogCiAgICAgICAgIC8vIEZvciBl
YWNoIGlucHV0IGNoYXJhY3RlciwgdGhpcyB0ZWxscyB1cyB0aGUgZmlyc3QgZ2x5cGggaW5kZXgg
aXQKICAgICAgICAgLy8gZ2VuZXJhdGVkLiBUaGlzIGlzIHRoZSBvbmx5IGFycmF5IHdpdGggc2l6
ZSBvZiB0aGUgaW5wdXQgY2hhcnMuCkBAIC0yNzgsMjAgKzI4NCwyMCBAQCBwcml2YXRlOgogICAg
ICAgICAvLyBjYW4gZ2VuZXJhdGUgb25lIGdseXBoLCBpbiB3aGljaCBjYXNlIHRoZXJlIHdpbGwg
YmUgYWRqYWNlbnQKICAgICAgICAgLy8gZHVwbGljYXRlcyBpbiB0aGlzIGxpc3QuIE9uZSBjaGFy
YWN0ZXIgY2FuIGFsc28gZ2VuZXJhdGUgbXVsdGlwbGUKICAgICAgICAgLy8gZ2x5cGhzLCBpbiB3
aGljaCBjYXNlIHRoZXJlIHdpbGwgYmUgc2tpcHBlZCBpbmRpY2VzIGluIHRoaXMgbGlzdC4KLSAg
ICAgICAgVmVjdG9yPFdPUkQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fbG9nczsK
KyAgICAgICAgVmVjdG9yPFdPUkQsIGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzPiBtX2xvZ3M7
CiAKICAgICAgICAgLy8gRmxhZ3MgYW5kIHN1Y2ggZm9yIGVhY2ggZ2x5cGguCi0gICAgICAgIFZl
Y3RvcjxTQ1JJUFRfVklTQVRUUiwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gbV92aXN1
YWxBdHRyaWJ1dGVzOworICAgICAgICBWZWN0b3I8U0NSSVBUX1ZJU0FUVFIsIGNVbmlzY3JpYmVI
ZWxwZXJTdGFja0NoYXJzPiBtX3Zpc3VhbEF0dHJpYnV0ZXM7CiAKICAgICAgICAgLy8gSG9yaXpv
bnRhbCBhZHZhbmNlcyBmb3IgZWFjaCBnbHlwaCBsaXN0ZWQgYWJvdmUsIHRoaXMgaXMgYmFzaWNh
bGx5CiAgICAgICAgIC8vIGhvdyB3aWRlIGVhY2ggZ2x5cGggaXMuCi0gICAgICAgIFZlY3Rvcjxp
bnQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fYWR2YW5jZTsKKyAgICAgICAgVmVj
dG9yPGludCwgY1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fYWR2YW5jZTsKIAogICAgICAg
ICAvLyBUaGlzIGNvbnRhaW5zIGdseXBoIG9mZnNldHMsIGZyb20gdGhlIG5vbWluYWwgcG9zaXRp
b24gb2YgYSBnbHlwaC4KICAgICAgICAgLy8gSXQgaXMgdXNlZCB0byBhZGp1c3QgdGhlIHBvc2l0
aW9ucyBvZiBtdWx0aXBsZSBjb21iaW5pbmcgY2hhcmFjdGVycwogICAgICAgICAvLyBhcm91bmQv
YWJvdmUvYmVsb3cgYmFzZSBjaGFyYWN0ZXJzIGluIGEgY29udGV4dC1zZW5zaXRpdmUgbWFubmVy
IHNvCiAgICAgICAgIC8vIHRoYXQgdGhleSBkb24ndCBidW1wIGFnYWluc3QgZWFjaCBvdGhlciBh
bmQgdGhlIGJhc2UgY2hhcmFjdGVyLgotICAgICAgICBWZWN0b3I8R09GRlNFVCwgVU5JU0NSSUJF
X0hFTFBFUl9TVEFDS19DSEFSUz4gbV9vZmZzZXRzOworICAgICAgICBWZWN0b3I8R09GRlNFVCwg
Y1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fb2Zmc2V0czsKIAogICAgICAgICAvLyBGaWxs
ZWQgYnkgYSBjYWxsIHRvIEp1c3RpZnksIHRoaXMgaXMgZW1wdHkgZm9yIG5vbmp1c3RpZmllZCB0
ZXh0LgogICAgICAgICAvLyBJZiBub25lbXB0eSwgdGhpcyBjb250YWlucyB0aGUgYXJyYXkgb2Yg
anVzdGlmeSBjaGFyYWN0ZXJzIGZvciBlYWNoCkBAIC0zMDAsNyArMzA2LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgLy8gVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgYWR2YW5jZSBhcnJheSwgYnV0IHdp
dGggZXh0cmEgc3BhY2UgYWRkZWQKICAgICAgICAgLy8gZm9yIHNvbWUgY2hhcmFjdGVycy4gVGhl
IGRpZmZlcmVuY2UgYmV0d2VlbiBhIGdseXBoJ3MgfGp1c3RpZnl8CiAgICAgICAgIC8vIHdpZHRo
IGFuZCBpdCdzIHxhZHZhbmNlfCB3aWR0aCBpcyB0aGUgZXh0cmEgc3BhY2UgYWRkZWQuCi0gICAg
ICAgIFZlY3RvcjxpbnQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfQ0hBUlM+IG1fanVzdGlmeTsK
KyAgICAgICAgVmVjdG9yPGludCwgY1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fanVzdGlm
eTsKIAogICAgICAgICAvLyBTaXppbmcgaW5mb3JtYXRpb24gZm9yIHRoaXMgcnVuLiBUaGlzIHRy
ZWF0cyB0aGUgZW50aXJlIHJ1biBhcyBhCiAgICAgICAgIC8vIGNoYXJhY3RlciB3aXRoIGEgcHJl
Y2VlZGluZyBhZHZhbmNlLCB3aWR0aCwgYW5kIGVuZGluZyBhZHZhbmNlLiAgVGhlCkBAIC0zNTgs
NyArMzY0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBieSB8aW5wdXR8IGNvbWVzIGZyb20gU2NyaXB0
SXRlbWl6ZSBhbmQgaXMgc3VwcG9zZWQgdG8gY29udGFpbgogICAgIC8vIGNoYXJhY3RlcnMgYmVs
b25naW5nIHRvIGEgc2luZ2xlIHNjcmlwdCBhc2lkZSBmcm9tIGNoYXJhY3RlcnMgY29tbW9uIHRv
CiAgICAgLy8gYWxsIHNjcmlwdHMgKGUuZy4gc3BhY2UpLgotICAgIGJvb2wgc2hhcGUoY29uc3Qg
VUNoYXIqIGlucHV0LCBpbnQgaXRlbUxlbmd0aCwgaW50IG51bUdseXBocywgU0NSSVBUX0lURU0m
IHJ1biwgU2hhcGluZyYpOworICAgIGJvb2wgc2hhcGUoY29uc3QgVUNoYXIqIGlucHV0LCBpbnQg
aXRlbUxlbmd0aCwgaW50IG51bUdseXBocywgU0NSSVBUX0lURU0mIHJ1biwgT1BFTlRZUEVfVEFH
LCBTaGFwaW5nJik7CiAKICAgICAvLyBHZXRzIFdpbmRvd3MgZm9udCBkYXRhIGZvciB0aGUgbmV4
dCBiZXN0IGZvbnQgdG8gdHJ5IGluIHRoZSBsaXN0CiAgICAgLy8gb2YgZm9udHMuIFdoZW4gdGhl
cmUncyBubyBtb3JlIGZvbnQgYXZhaWxhYmxlLCByZXR1cm5zIGZhbHNlCkBAIC00MDUsOSArNDEx
LDEwIEBAIHByaXZhdGU6CiAKICAgICAvLyBVbmlzY3JpYmUgYnJlYWtzIHRoZSB0ZXh0IGludG8g
UnVucy4gVGhlc2UgYXJlIG9uZSBsZW5ndGggb2YgdGV4dCB0aGF0IGlzCiAgICAgLy8gaW4gb25l
IHNjcmlwdCBhbmQgb25lIGRpcmVjdGlvbi4gVGhpcyBhcnJheSBpcyBpbiByZWFkaW5nIG9yZGVy
LgotICAgIFZlY3RvcjxTQ1JJUFRfSVRFTSwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TPiBt
X3J1bnM7CisgICAgVmVjdG9yPFNDUklQVF9JVEVNLCBjVW5pc2NyaWJlSGVscGVyU3RhY2tSdW5z
PiBtX3J1bnM7CiAKLSAgICBWZWN0b3I8U2hhcGluZywgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19S
VU5TPiBtX3NoYXBlczsKKyAgICBWZWN0b3I8U2hhcGluZywgY1VuaXNjcmliZUhlbHBlclN0YWNr
UnVucz4gbV9zaGFwZXM7CisgICAgVmVjdG9yPE9QRU5UWVBFX1RBRywgY1VuaXNjcmliZUhlbHBl
clN0YWNrUnVucz4gbV9zY3JpcHRUYWdzOwogCiAgICAgLy8gVGhpcyBpcyBhIG1hcHBpbmcgYmV0
d2VlbiByZWFkaW5nIG9yZGVyIGFuZCBzY3JlZW4gb3JkZXIgZm9yIHRoZSBpdGVtcy4KICAgICAv
LyBVbmlzY3JpYmUncyBpdGVtcyBhcnJheSBhcmUgaW4gcmVhZGluZyBvcmRlci4gRm9yIHJpZ2h0
LXRvLWxlZnQgdGV4dCwKQEAgLTQxNiw3ICs0MjMsMTIgQEAgcHJpdmF0ZToKICAgICAvLyBhbmQg
cG9zaXRpb25zLiBUaGlzIGxpc3QgaXMgaW4gc2NyZWVuIG9yZGVyIGZyb20gbGVmdCB0byByaWdo
dCwgYW5kCiAgICAgLy8gZ2l2ZXMgdGhlIGluZGV4IGludG8gdGhlIHxtX3J1bnN8IGFuZCB8bV9z
aGFwZXN8IGFycmF5cyBvZiBlYWNoCiAgICAgLy8gc3Vic2VxdWVudCBpdGVtLgotICAgIFZlY3Rv
cjxpbnQsIFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfUlVOUz4gbV9zY3JlZW5PcmRlcjsKKyAgICBW
ZWN0b3I8aW50LCBjVW5pc2NyaWJlSGVscGVyU3RhY2tSdW5zPiBtX3NjcmVlbk9yZGVyOworCisg
ICAgLy8gVGhpcyBjb250YWlucyBVbmlzY3JpYmUncyBPcGVuVHlwZSBmZWF0dXJlIHNldHRpbmdz
LiBUaGlzIHN0cnVjdHVyZQorICAgIC8vIGlzIGZpbGxlZCBieSB1c2luZyBXZWJLaXQncyB8Rm9u
dEZlYXR1cmVTZXR0aW5nc3wuCisgICAgVEVYVFJBTkdFX1BST1BFUlRJRVMgbV9yYW5nZVByb3Bl
cnRpZXM7CisgICAgVmVjdG9yPE9QRU5UWVBFX0ZFQVRVUkVfUkVDT1JELCBjVW5pc2NyaWJlSGVs
cGVyRmVhdHVyZXM+IG1fZmVhdHVyZVJlY29yZHM7CiB9OwogCiB9ICAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcAppbmRleCAxNjUwM2U4
NGVmMWI2ZWEzNjgzM2EwZGVkZWRjNTZkY2ZlMzcyZGU2Li5hZDlkZDQ5ZDQxNDRiMTM1YzA1Mzc3
NDYyYWFmZDVhMTYxODc3MjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVu
LmNwcApAQCAtNTMsNiArNTMsNyBAQCBVbmlzY3JpYmVIZWxwZXJUZXh0UnVuOjpVbmlzY3JpYmVI
ZWxwZXJUZXh0UnVuKGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICBzZXRTcGFjZVdpZHRoKGZvbnQu
c3BhY2VXaWR0aCgpKTsKICAgICBzZXRXb3JkU3BhY2luZyhmb250LndvcmRTcGFjaW5nKCkpOwog
ICAgIHNldEFzY2VudChmb250LmZvbnRNZXRyaWNzKCkuYXNjZW50KCkpOworICAgIHNldFJhbmdl
UHJvcGVydGllcyhmb250LmZvbnREZXNjcmlwdGlvbigpLmZlYXR1cmVTZXR0aW5ncygpKTsKIAog
ICAgIGluaXQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109600</attachid>
            <date>2011-10-04 03:00:23 -0700</date>
            <delta_ts>2011-10-04 03:15:13 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-65904-20111004190021.patch</filename>
            <type>text/plain</type>
            <size>27091</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTY1NzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhZDRlNjc0NDRiZGMzZmZlZTMwZWJj
OGUzMjgzM2NmYTgzYzVlYmRlLi45MGFmOTA4OWEwM2M2MDYxODQ4NTUwOGE0ZjRkODk1OWMxNDI4
OTBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAtMDQgIEtlbmljaGkgSXNoaWJhc2hp
ICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50IGZv
bnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBXaW5kb3dzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTkwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAgICBBZGRzIGV4cGVjdGF0aW9u
cyBvZiBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCBmb3IgQ2hyb21p
dW0gd2luIHBvcnQuIFNpbmNlIFVuaXNjaXJiZSBPcGVuVHlwZSBBUElzIGFyZSBub3QgYXZhaWxh
YmxlIG9uIFdpblhQIGJ5IGRlZmF1bHQsIHRoZSB0ZXN0IGNvdWxkIGZhaWwgb24gV2luWFAuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGlu
Z3MtcmVuZGVyaW5nLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0td2luL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dDogVklTVEEgYW5kIFdJTjcgc2hvdWxkIHBhc3MgY3NzMy9mb250LWZlYXR1cmUtc2V0dGlu
Z3MtcmVuZGVyaW5nLmh0bWwuCisKIDIwMTEtMTAtMDMgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFw
cGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTk3MzQ4OT4gUkVHUkVTU0lPTiAo
cjY2NTk5KTogLVtET01Ob2RlIGJvdW5kaW5nQm94XSByZXR1cm5zIHRoZSB6ZXJvIHJlY3QgZm9y
IFNWRyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
d2luL2NzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy1leHBlY3RlZC5wbmcgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGlu
Z3MtcmVuZGVyaW5nLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYTUzMzk1NzM0MWQyZWI0MmJi
Nzk2MGFkZWMzMjM5MjY2ZGJmNGZjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA1MDUwCnpjbWVI
TFlmekl7OHZYPzNCRFhxTHFDIU8xRCglV201eUItVCtMbHJtM0R2ZCslVColODB3ekYmMEokbHMq
JWxSQgp6aWx8Jk45anpffTBVSUZQa15uS0Y3Pkc1TWFMWDRXRyUxN3RBPzhMeHZpNDc+diU1ZEd5
WmRrWGIpST9XbyMmblIKeko8b0hfbmUpWCpzM0AwPitjeUZMO0J3QHtfbTJhQj9NP3UmaUYyQGQ5
b2gyYzdWcD1+SkxlK2YmU0IxXlZLTkRNCnpYTXZGUHc0ZVk/S3RTKztedDRuPWE1XlIoNkI/UVpP
SFZ6JEtrZE41cHVwPmspazZUVmBSSX1ONH1WZm50JiZYUwp6antuOHgoNlBXZ2k/Izk9VUdWTUoj
THVwX3NDX2RkP3N7Sk4/MEVFRnAqd1hkRHdoVFQmeH1HZTlzcWpxeVBFK1oKeil5NF9meCVifXlJ
dzEoZHVfaSMpKlU4Qy10PTdwaTVRdWY9NmpHfG5IX2Rpc3w3Y2lgaChIUT9STiojaXA0ZTRyCnpS
MSkkK21iSWNGeFFzVDVRNEZwdDYxQ3ZMcT9xeyVrdnp0cCp2JUNTSEFwOWZnKj9mekM8aThrR1Zt
bn5ZaUZuLQp6V28pMUwxPCQ0ND9AaFdnTHVFSElGbnJPcW1MPlBLPnQ1YmpEN3ZIX05JVlVwelVv
S29QKldtQncmbD1jY0lUJmIKejF2djteQD5UZ1FYTWRYfkFxQEdpI2xEQihvQSZBa3ghS15rWSZT
aG81YHAkUGohRTE+fENZKHhRfXJJRFZGITFTCnpscDh3UDkyPHZMdmhrYVM9WHZ9KWM/KGBqUyN2
VGVsQTJeSEJqSWotdnh2XlVWNXI0RHUxRiokd05jKDc2MFkragp6JjYlcnttNXM2WkMyZlNuO31w
NEYrVlkmfVo8PWRYZFRAbngrUFFOMVI5Zj95UVZYe0dsdk1WQmlHSk5ld0EmNT8KenVEWWlPLSYk
WkBoQHF+OGhiSDQqeHl3ZT05VDhINExXIWdgRTs4Rkc4ZUd9b3VsZjJtRVBqKitQNEg+dXRReGcx
Cnpjd2RQfWh+V3QpakJoRklmJk58JmZ2Sn5jQHpxK0RDVz9URUtgUDY3PjkmbjxpQGhrZjtJZWFp
ZiNwfjtTampHLQp6clZoTDVeKCh2Mjx1PU0kKzA4WHh5cEF3cHBBZkhfeG5zeWleXitjVSUmfXsz
bE1oMHYjREhPV3JgPkAxKFVCMTUKejd8OTgyMUFwKmgqcCpiY3goPFQhbkErI2Nxb0xoeHsqdyZR
V3dNM3BhMEx4eHU5RVYhYTh9dFNTSnUqVy0rTCo5CnpYakZDSntpZHdAajdQQ3tCUUZJPm8/Pm5K
R3AxSFcrV2txWCl0SEpXMT1GRjZRe1lYS3V6fGtZRSMwdFJFKktZPQp6JkpQSj92aUt+NDBNMCFa
cVJZPzc/ZUM4d152fEB3ZWYmO1UxdXtZOXQqQm01OTlaN2JAJStndSt1JUBCVUMtViQKemR7IVlC
RF5MZEdnQnJORUxjRHgkSHYtfH0zZlkjJHFiUm5pdigzR2ZxfFViJUIzPWJeIWByN0NBY2JUJEB1
VCE+CnpDZVklXz1fKSpFOX5jbEVzMzBYYmk0RT1mRStAe3QrKD0mNzZAVkJFWDNfQlchbylGR3w3
QllSdkx3JFdVV3hhUQp6UzwmUHBeWDI9WWklRGVvYTtpTjtMQ24yQTxoJCp0MWEkRUNITmJaJVRl
JlUkTHBnUkRJM2RLbj49cXhqWDhfal4KelZ0JStTUSs1UnU7YHxxYWt3MTBzQldSekczKHFSfW8y
ZGEpRFdnTFkrVSZSTjZIdjk8OEJRWjY/OWs5dDxacWQ4CnphdlRLQ2gqN25BMU5OYXwjPDY+fWBe
bD1yeXBhQXpicUZEdFZlKTJLRihKc1okO3BJU3Z3SlBtXyk5ISN3dEIyPAp6TFF0VV5qSUB+SkZJ
TDYhZ3lAVFM5SjlMQ1dvN2x6JDNHUiFYIzJCSkBfMjd1eXtrMDNvQEN4VXZ2aG1lKFNyJT0Kem4+
cHlHYH11KU0+Jm9iO2shQ2p6Un05N0xRXl5ZeWc7SytoMzFlantPTzQ9Uk45X0R9KnAqNz47cU0z
fi0wNUJKCnppMWk/R2R1Jm9DY0EqZl90VUY9TyhNMWwmPUJHTUlTOy18KXtPfVc8P2YxeGkrcFR9
VHJ8dWRIbShkdk40dD1SbQp6ZkZgUXlfc1ghKVZ0KkBFenpRbiNFYiRVOHdkY0FkSEYpP34kZzEh
aHBJOUh1VHhxUCo8T01EbHtIJUwqPDRVQ0AKektfVnpGR2ZpNTl4S2plU285bHE9V3FCN197V0le
I2VZQVMrJlF4TFdoIXV5fXVjJVVuPkVFdVp6UjJxdVlOQypaCnp5JE1qOVl+YFl+ZHQmQjFKXkhI
R0k2bXk5ZjhzJSVDeXBvWU9oQChjY1dOTFBjKWJKazYhUTFaYEtQbExYZ3Z7KAp6cDd5YyVySjFo
Vm8zWHFyNmUlQl93Tz07ZGNfdGt9bUJHMSZmcT8tdmk2eHstJFEqS1EtQjclcHNme1M/TVolSTMK
eiQqV3FLdCFkTiE1LThjWndQUXtKTDVqbDxYdiRgdlkrIzV2cWojfVluKFRJTnNjTEx1TyMzSGdB
KCVpV1QpKUxVCnpRLWRQfjdQakF+WEclUlhXR3x3NjxeNjg4TGI8fTY5WCNeaCloTj1XWSUmM2df
fFI/OTIlbmNIKVAmMHZkTHA1Qgp6cFBMRT5SckJhZThscnR2S0hIQCMpNip3IUc8TGVRPVUocVBq
Q0dwSy1WWFA3dH1SbnxvaHkwRG0tcFZqYnM7N1kKeiFtRiV9KFkweCZ3RihqMXppMnYyM1NKKG40
cGhkPW8zYUF5bXxnM2RjQSUpOEx6JXRtRkxHN1ZaNGR9ZWRCJSlXCnpwYkRyaGB7PCp5VWo8ekNx
SypZM3VNUE12P2UrNl82ZEM5ejRJV1NxPF9Ec2NmUEtwNkwjOUo4ZylpIzg7bUdrMAp6cil5ODBM
TjlDcC1xNSkzMHVDS2JTcUQ1P0BCVFk1LWBjYT84bGM+X0l9NDt6QD05fTEmVChnWFJoS0VCQlpN
d18KeklkT28maVR5PyNsSEdfdnQtMlNWXzVjcXlibFJMPm9XMGMzWTF6IXdlSzZZMVVSanJqP2te
TyVJZzwyXkhDdCl2Cnpufig9d2ZXMWNOKkh6e2pZTC0zczVAfUtZV3N8ak5nXjJUTiNDNlpoQHl8
aWlyT18lYmcrbDF6UXo9S3lWR0c5OQp6OGdyfEhQQVc8aGkwWjQlNjBMV3pCUzVgekVGfmckIz5q
JlNWRitZfUExKG9ZZX1PV1g1bi03XkN8fiQ7Y0RRal4KejVGeEVtKz9xNl8pLXFPJEs8U2VoQ148
aFA7NSZNQjN7RUZsZXtGTCVBJjtjIW5LMjhob3E/cn5rRnB+VFdfVEVOCnpxY3BSd200QlJHcExC
KDY1fVQoPVZ2OGNJOVcwMHZsNVJJcjEhSG9qS2xTdj4hIWdCODUzZVI0OGMmZGJwLVlDTQp6TD0x
XjhlMk5DbEhoMGo/dUY/YWhjT2tJWiQ7SnJ4bGp8UjhvKDRpLWM+RVVDJjFxOEdOVig9PXRIMEVF
K1Yoc2UKek8xOF5mMCE2WDx4a2dJZ1Rre1dJNGp3RGB5cEhJKEZhKWYmd0ElSm1aZT5TPzc+b01C
X3toPjZfZEM4ZiFWKUE/Cnolb0ZzZzdTMDVTP2R3O0xDKiskNHBVTGZpYmshNXA7N2Q/NDU8UF8x
ZVdBOW1wOXJeaVhZXzd3a1ZHe0JoTTBTYAp6VXFjdU9QTHQqMShkak93K2JnbyFZQzEhVGhVIUd9
JEkxekJGe2ZqWGwzMXM2S1BmJCV0TFptJmIkclEta1d7QDsKenJAT2Y+cT9vWHJ5IUxKTTMzRUY/
YFhwZmZzRnI2QDQybkE1MWJ8eE87WENOTWVMJWAjUGNtNyttYko2S2FhPDMkCnp8MCpJdXs2enJS
fEVzdCokTmdgPmdpRkpPcypSSUluVT1rTmQobz11KDlMI1pjbUQ8ZT9qS3l4ZGVfISZvfStUUAp6
b3lCfSpRbjUyJiY9dzAqUjYqcjhZeWI8JkkhfkZWYXY2U2lPWnwpMTBwPkg8cX43Z3hGPUcqMilK
Sl81MGNJcHsKejYlTjNYWGBXTnVJe1ZgWFduWWVXUHNtaj9UKDw8NUIoZWRodGlZeX0yeVdPMHBy
PGJAI248OUpfM3x1LVBqQnBZCnpiTzZqbCpLOU1Ac1ZgUWFYcyh2YipaX3VsJi1FaUtSJEQqQjx5
SzEoQl5FZig5ZWxmYU43RkgxanpReHRUZDg9IQp6UG98KXAwN0pNRE5kYlV8UXtFbDZ6fHdFZCVo
RyN5bjJfZiZoJVAlfFVjS0A2VWk+WlI0fXRsN3U5UkVrMFJZcXIKem52UnB4QnwjOXZzaCsxY3pH
blp8bWo0Z2d3PjE2SjtxaXg8KXtfN0d5PFZIKSs2QDJVMCQtRUZuazNkRnZGM3ZSCmQ4eThyZEkx
UzE1b1gyfmZ6NWF7P2p6cHJ+Wit0aFVgMHRTSlcxMFd9CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vY3NzMy9mb250
LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLXdpbi9jc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjZjlhMDNkMzQwZGU2YTlhZWYxNjVlYzMwZDI2ZTgw
Mjg4ZGRlNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmll
dyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBS
ZW5kZXJCbG9jayB7SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7
Qk9EWX0gYXQgKDgsOCkgc2l6ZSA3ODR4NTg0CisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAs
MCkgc2l6ZSA3ODR4NDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
NzgzeDM5CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMjM1OiAiVGVzdCBmb3Ig
Zm9udC1mZWF0dXJlLXNldHRpbmdzIHByb3BlcnR5LiAiCisgICAgICAgICAgdGV4dCBydW4gYXQg
KDIzNSwwKSB3aWR0aCA1NDg6ICJUaGUgZmlyc3Qgd29yZCBvZiB0aGUgZm9sbG93aW5nIHRocmVl
IHdvcmRzIHNob3VsZCBiZSBkaXNwbGF5ZWQgbGlrZSBcIldlYktpdFwiLCB3aGlsZSBvdGhlcnMi
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMjApIHdpZHRoIDIxNzogInNob3VsZCBiZSBkaXNw
bGF5ZWQgYXMgYmxhY2sgYm94ZXMuIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsNTYp
IHNpemUgNzg0eDE3CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMw
eDE2CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzA6ICJXZWJLaXQiCisgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCw3Mykgc2l6ZSA3ODR4MTcKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgOTZ4MTYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCA5NjogIldlYktpdCIKKyAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDkw
KSBzaXplIDc4NHgxNworICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA5
NngxNgorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDk2OiAiV2ViS2l0IgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CmluZGV4IGM4ZTE4ZTZmYzVlOTA3ZDg1MjhjZGE3OGNjMzkxMGVkNzRjNjRmNjYuLjU4Zjg1OTY3
ZWQ5M2FmZGJjOWVhNTI1ZWVlMDc3ZjM0MDgwYWI5MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTQ4Niw2ICs0ODYs
MTAgQEAgV09OVEZJWCBTS0lQIDogZmFzdC9qcy9yZXBhcnNpbmctc2VtaWNvbG9uLWluc2VydGlv
bi5odG1sID0gRkFJTAogV09OVEZJWCBDUFUgR1BVIDogcGxhdGZvcm0vY2hyb21pdW0vcnViYmVy
YmFuZGluZyA9IEZBSUwKIFdPTlRGSVggQ1BVIEdQVSA6IHBsYXRmb3JtL2Nocm9taXVtLWdwdS9j
b21wb3NpdGluZy9ydWJiZXJiYW5kaW5nID0gSU1BR0UKIAorLy8gVGhpcyByZXF1aXJlcyB1c3Ax
MC5kbGwgdmVyc2lvbiAxLjYwMCBvciBncmVhdGVyIG9uIFdpbmRvd3MgYW5kCisvLyBpdCBpc24n
dCBpbnN0YWxsZWQgb24gWFAgYnkgZGVmYXVsdC4KK1dPTlRGSVggWFAgOiBjc3MzL2ZvbnQtZmVh
dHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCA9IFBBU1MgRkFJTAorCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
Ly8gTElHSFRUUEQKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNDc2LDcgKzM0ODAsNyBAQCBCVUdXSzY1OTUx
IFdJTiBERUJVRyA6IHdlYmF1ZGlvL21peGluZy5odG1sID0gQ1JBU0gKIEJVR1dLNjU5NTEgTElO
VVggTUFDIERFQlVHIDogd2ViYXVkaW8vbWl4aW5nLmh0bWwgPSBDUkFTSCBQQVNTCiBCVUdXSzY1
OTUxIExJTlVYIE1BQyBERUJVRyA6IHdlYmF1ZGlvL3Rlc3QtYmFzaWMuaHRtbCA9IENSQVNIIFBB
U1MKIAotQlVHV0s2Mzc5NiBNQUMgV0lOIDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVu
ZGVyaW5nLmh0bWwgPSBNSVNTSU5HIEZBSUwKK0JVR1dLNjM3OTYgTUFDIDogY3NzMy9mb250LWZl
YXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwgPSBNSVNTSU5HIEZBSUwKIAogLy8gTmV3IHRl
c3QgaW4gcjkzMDY4CiBCVUdXSzY2MjY4IE1BQyBDUFUtQ0cgOiBlZGl0aW5nL2RlbGV0aW5nL3Jl
Z2lvbmFsLWluZGljYXRvcnMuaHRtbCA9IFRFWFQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZmJjNDAxNTRiOWI1
MjZmYWMzMTNiMWUyNzE4ZGU2NTViOTI1ZGU4Li4yYTk1NTM1MjVmYWQwMTEzNWIwMDkwYWY4MTgz
YmVhZDI4YTdmZjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMTAtMDQgIEtl
bmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1
bV0gSW1wbGVtZW50IGZvbnQgc2hhcGluZyB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBvbiBX
aW5kb3dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NTkwNAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAgICBV
c2UgVW5pc2NyaWJlJ3MgT3BlblR5cGUgQVBJcyB0byBzaGFwZSBjb21wbGV4IHRleHQgdG8gc3Vw
cG9ydCAtd2Via2l0LWZvbnQtZmVhdHVyZS1zZXR0aW5ncyBwcm9wZXJ0eS4KKworICAgICAgICBO
byBuZXcgdGVzdHMuIGNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy5odG1sIHNo
b3VsZCBwYXNzIGJ5IHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9hZE9wZW5U
eXBlRnVuY3Rpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6VW5pc2Ny
aWJlSGVscGVyKTogQ2FsbHMgbG9hZE9wZW5UeXBlRnVuY3Rpb25zIGlmIG5lZWRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6ZmlsbFJ1bnMpOiBVc2VzIFNjcmlwdEl0ZW1p
emVPcGVuVHlwZSgpIGlmIHBvc3NpYmxlLgorICAgICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVs
cGVyOjpzaGFwZSk6IFVzZXMgU2NyaXB0U2hhcGVPcGVuVHlwZSgpIGlmIHBvc3NpYmxlLgorICAg
ICAgICAoV2ViQ29yZTo6VW5pc2NyaWJlSGVscGVyOjpmaWxsU2hhcGVzKTogQWRkcyBPcGVuVHlw
ZSBzY3JpcHQgdGFnIGFzIGFuIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEZl
YXR1cmVUYWcpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlVuaXNjcmliZUhlbHBlcjo6c2V0
UmFuZ2VQcm9wZXJ0aWVzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVW5pc2NyaWJlSGVscGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVW5pc2NyaWJlSGVscGVyVGV4dFJ1bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVbmlz
Y3JpYmVIZWxwZXJUZXh0UnVuOjpVbmlzY3JpYmVIZWxwZXJUZXh0UnVuKTogQ2FsbHMgc2V0UmFu
Z2VQcm9wZXJ0aWVzKCkuCisKIDIwMTEtMTAtMDMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgTWFjIHJlbGVhc2UgYnVpbGQgZml4IGFmdGVyIHI5NjU2MSwgYW5k
IExlb3BhcmQgYnVpbGQgZml4IGFmdGVyIHI5NjU2OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9VbmlzY3JpYmVIZWxwZXIuY3Bw
CmluZGV4IDc0MmI4YjdlM2RhOTgzNzc0ZWU2ZDM5YWQ1MTBjOTUxZjg0NGZkYjMuLjBiYTJkYTE4
YjExYjk5Yzg3M2M5MjgxZWEwNjU1Nzg3NjFhYjMyNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVy
LmNwcApAQCAtNDEsNiArNDEsNDQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBUaGUg
ZnVuY3Rpb24gdHlwZXMgZm9yIFNjcmlwdEl0ZW1pemVPcGVuVHlwZSgpIGFuZCBTY3JpcHRTaGFw
ZU9wZW5UeXBlKCkuCisvLyBXZSB3YW50IHRvIHVzZSB0aGVzZSBmdW5jdGlvbnMgZm9yIE9wZW5U
eXBlIGZlYXR1cmUgc3VwcG9ydCwgYnV0IHdlIGNhbid0CisvLyBjYWxsIHRoZW0gZGlyZWN0bHkg
YmVjYXVzZSB1c3AxMC5kbGwgZG9lcyBub3QgYWx3YXlzIGhhdmUgdGhlbS4KKy8vIEluc3RlYWQs
IHdlIHVzZSBHZXRQcm9jQWRkcmVzcygpIHRvIGNoZWNrIHdoZXRoZXIgd2UgY2FuIGFjdHVhbGx5
IHVzZSB0aGVzZQorLy8gZnVuY3Rpb24uIElmIHdlIGNhbid0IHVzZSB0aGVzZSBmdW5jdGlvbnMs
IHdlIHN1YnN0aXR1dGUgU2NyaXB0SXRlbXplKCkgYW5kCisvLyBTY3JpcHRTaGFwZSgpLgordHlw
ZWRlZiBIUkVTVUxUIChXSU5BUEkgKlNjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMpKGNvbnN0IFdD
SEFSKiwgaW50LCBpbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgU0NSSVBUX0NPTlRST0wqLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFNDUklQVF9TVEFURSosCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU0NSSVBUX0lU
RU0qLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE9QRU5UWVBFX1RBRyosIGludCopOwordHlwZWRlZiBIUkVTVUxUIChXSU5BUEkgKlNjcmlwdFNo
YXBlT3BlblR5cGVGdW5jKShIREMsIFNDUklQVF9DQUNIRSosCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNDUklQVF9BTkFMWVNJUyosCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9QRU5UWVBFX1RBRywg
T1BFTlRZUEVfVEFHLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQqLCBURVhUUkFOR0VfUFJPUEVSVElFUyoqLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQsIGNvbnN0IFdDSEFSKiwgaW50LCBp
bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdP
UkQqLCBTQ1JJUFRfQ0hBUlBST1AqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXT1JEKiwgU0NSSVBUX0dMWVBIUFJPUCosCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCopOworCitzdGF0aWMgU2Ny
aXB0SXRlbWl6ZU9wZW5UeXBlRnVuYyBnU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYyA9IDA7Citz
dGF0aWMgU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMgZ1NjcmlwdFNoYXBlT3BlblR5cGVGdW5jID0g
MDsKK3N0YXRpYyBib29sIGdPcGVuVHlwZUZ1bmN0aW9uc0xvYWRlZCA9IGZhbHNlOworCitzdGF0
aWMgdm9pZCBsb2FkT3BlblR5cGVGdW5jdGlvbnMoKQoreworICAgIEhNT0RVTEUgaE1vZHVsZSA9
IEdldE1vZHVsZUhhbmRsZShMInVzcDEwIik7CisgICAgaWYgKGhNb2R1bGUpIHsKKyAgICAgICAg
Z1NjcmlwdEl0ZW1pemVPcGVuVHlwZUZ1bmMgPSByZWludGVycHJldF9jYXN0PFNjcmlwdEl0ZW1p
emVPcGVuVHlwZUZ1bmM+KEdldFByb2NBZGRyZXNzKGhNb2R1bGUsICJTY3JpcHRJdGVtaXplT3Bl
blR5cGUiKSk7CisgICAgICAgIGdTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYyA9IHJlaW50ZXJwcmV0
X2Nhc3Q8U2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmM+KEdldFByb2NBZGRyZXNzKGhNb2R1bGUsICJT
Y3JpcHRTaGFwZU9wZW5UeXBlIikpOworICAgIH0KKyAgICBpZiAoIWdTY3JpcHRJdGVtaXplT3Bl
blR5cGVGdW5jIHx8ICFnU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMpIHsKKyAgICAgICAgZ1Njcmlw
dEl0ZW1pemVPcGVuVHlwZUZ1bmMgPSAwOworICAgICAgICBnU2NyaXB0U2hhcGVPcGVuVHlwZUZ1
bmMgPSAwOworICAgIH0KKyAgICBnT3BlblR5cGVGdW5jdGlvbnNMb2FkZWQgPSB0cnVlOworfQor
CiAvLyBIRk9OVCBpcyB0aGUgJ2luY2FybmF0aW9uJyBvZiAnZXZlcnl0aGluZycgYWJvdXQgZm9u
dCwgYnV0IGl0J3MgYW4gb3BhcXVlCiAvLyBoYW5kbGUgYW5kIHdlIGNhbid0IGRpcmVjdGx5IHF1
ZXJ5IGl0IHRvIG1ha2UgYSBuZXcgSEZPTlQgc2hhcmluZwogLy8gaXRzIGNoYXJhY3RlcmlzdGlj
cyAoaGVpZ2h0LCBzdHlsZSwgZXRjKSBleGNlcHQgZm9yIGZhbWlseSBuYW1lLgpAQCAtOTIsNiAr
MTMwLDggQEAgVW5pc2NyaWJlSGVscGVyOjpVbmlzY3JpYmVIZWxwZXIoY29uc3QgVUNoYXIqIGlu
cHV0LAogCiB7CiAgICAgbV9sb2dmb250LmxmRmFjZU5hbWVbMF0gPSAwOworICAgIGlmICghZ09w
ZW5UeXBlRnVuY3Rpb25zTG9hZGVkKQorICAgICAgICBsb2FkT3BlblR5cGVGdW5jdGlvbnMoKTsK
IH0KIAogVW5pc2NyaWJlSGVscGVyOjp+VW5pc2NyaWJlSGVscGVyKCkKQEAgLTQxOCw3ICs0NTgs
OCBAQCBXT1JEIFVuaXNjcmliZUhlbHBlcjo6Zmlyc3RHbHlwaEZvckNoYXJhY3RlcihpbnQgY2hh
ck9mZnNldCkgY29uc3QKIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsUnVucygpCiB7CiAgICAg
SFJFU1VMVCBocjsKLSAgICBtX3J1bnMucmVzaXplKFVOSVNDUklCRV9IRUxQRVJfU1RBQ0tfUlVO
Uyk7CisgICAgbV9ydW5zLnJlc2l6ZShjVW5pc2NyaWJlSGVscGVyU3RhY2tSdW5zKTsKKyAgICBt
X3NjcmlwdFRhZ3MucmVzaXplKGNVbmlzY3JpYmVIZWxwZXJTdGFja1J1bnMpOwogCiAgICAgU0NS
SVBUX1NUQVRFIGlucHV0U3RhdGU7CiAgICAgaW5wdXRTdGF0ZS51QmlkaUxldmVsID0gbV9pc1J0
bDsKQEAgLTQ3MywxMCArNTE0LDM1IEBAIHZvaWQgVW5pc2NyaWJlSGVscGVyOjpmaWxsUnVucygp
CiAgICAgICAgIC8vIEl0IHNlZW1zIHRvIGJlIGRvaW5nIGF0IGxlYXN0IHR3byBwYXNzZXMsIHRo
ZSBmaXJzdCB3aGVyZSBpdCBwdXRzIGEKICAgICAgICAgLy8gbG90IG9mIGludGVybWVkaWF0ZSBk
YXRhIGludG8gb3VyIGl0ZW1zLCBhbmQgdGhlIHNlY29uZCB3aGVyZSBpdAogICAgICAgICAvLyBj
b2xsYXRlcyB0aGVtLgotICAgICAgICBociA9IFNjcmlwdEl0ZW1pemUobV9pbnB1dCwgbV9pbnB1
dExlbmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PGludD4obV9y
dW5zLnNpemUoKSkgLSAxLCAmaW5wdXRDb250cm9sLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJmlucHV0U3RhdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAmbV9ydW5zWzBdLCAm
bnVtYmVyT2ZJdGVtcyk7CisgICAgICAgIGlmIChnU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYykg
eworICAgICAgICAgICAgaHIgPSBnU2NyaXB0SXRlbWl6ZU9wZW5UeXBlRnVuYyhtX2lucHV0LCBt
X2lucHV0TGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxpbnQ+KG1fcnVucy5zaXplKCkpIC0gMSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlucHV0Q29udHJvbCwgJmlucHV0U3RhdGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtX3J1bnNbMF0sICZt
X3NjcmlwdFRhZ3NbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICZudW1iZXJPZkl0ZW1zKTsKKyAgICAgICAgICAgIGlmIChTVUNDRUVERUQoaHIpKSB7Cisg
ICAgICAgICAgICAgICAgLy8gUGFjayBjb25zZWN1dGl2ZSBydW5zLCB0aGUgc2NyaXB0IHRhZyBv
ZiB3aGljaCBhcmUKKyAgICAgICAgICAgICAgICAvLyBTQ1JJUFRfVEFHX1VOS05PV04sIHRvIHJl
ZHVjZSB0aGUgbnVtYmVyIG9mIHJ1bnMuCisgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBudW1iZXJPZkl0ZW1zOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fc2Ny
aXB0VGFnc1tpXSA9PSBTQ1JJUFRfVEFHX1VOS05PV04pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBqID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChpICsgaiA8IG51
bWJlck9mSXRlbXMgJiYgbV9zY3JpcHRUYWdzW2kgKyBqXSA9PSBTQ1JJUFRfVEFHX1VOS05PV04p
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytqOworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKC0taikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcnVucy5yZW1vdmUo
aSArIDEsIGopOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2NyaXB0VGFncy5yZW1v
dmUoaSArIDEsIGopOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlck9mSXRlbXMg
LT0gajsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBtX3NjcmlwdFRhZ3MucmVzaXplKG51
bWJlck9mSXRlbXMpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgaHIgPSBTY3JpcHRJdGVtaXplKG1faW5wdXQsIG1faW5wdXRMZW5ndGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihtX3J1bnMuc2l6ZSgpKSAtIDEs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlucHV0Q29udHJvbCwgJmlucHV0U3Rh
dGUsICZtX3J1bnNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm51bWJlck9m
SXRlbXMpOworICAgICAgICB9CiAgICAgICAgIGlmIChTVUNDRUVERUQoaHIpKSB7CiAgICAgICAg
ICAgICBtX3J1bnMucmVzaXplKG51bWJlck9mSXRlbXMpOwogICAgICAgICAgICAgYnJlYWs7CkBA
IC00ODgsNiArNTU0LDcgQEAgdm9pZCBVbmlzY3JpYmVIZWxwZXI6OmZpbGxSdW5zKCkKICAgICAg
ICAgfQogICAgICAgICAvLyBUaGVyZSB3YXMgbm90IGVub3VnaCBpdGVtcyBmb3IgaXQgdG8gd3Jp
dGUgaW50bywgZXhwYW5kLgogICAgICAgICBtX3J1bnMucmVzaXplKG1fcnVucy5zaXplKCkgKiAy
KTsKKyAgICAgICAgbV9zY3JpcHRUYWdzLnJlc2l6ZShtX3J1bnMuc2l6ZSgpKTsKICAgICB9CiB9
CiAKQEAgLTQ5NSwxMSArNTYyLDE0IEBAIGJvb2wgVW5pc2NyaWJlSGVscGVyOjpzaGFwZShjb25z
dCBVQ2hhciogaW5wdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGl0ZW1MZW5n
dGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bUdseXBocywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTQ1JJUFRfSVRFTSYgcnVuLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE9QRU5UWVBFX1RBRyBzY3JpcHRUYWcsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU2hhcGluZyYgc2hhcGluZykKIHsKICAgICBIRk9OVCBoZm9udCA9IG1faGZvbnQ7CiAg
ICAgU0NSSVBUX0NBQ0hFKiBzY3JpcHRDYWNoZSA9IG1fc2NyaXB0Q2FjaGU7CiAgICAgU0NSSVBU
X0ZPTlRQUk9QRVJUSUVTKiBmb250UHJvcGVydGllcyA9IG1fZm9udFByb3BlcnRpZXM7CisgICAg
VmVjdG9yPFNDUklQVF9DSEFSUFJPUCwgY1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IGNoYXJQ
cm9wczsKKyAgICBWZWN0b3I8U0NSSVBUX0dMWVBIUFJPUCwgY1VuaXNjcmliZUhlbHBlclN0YWNr
Q2hhcnM+IGdseXBoUHJvcHM7CiAgICAgaW50IGFzY2VudCA9IG1fYXNjZW50OwogICAgIFdPUkQg
c3BhY2VHbHlwaCA9IG1fc3BhY2VHbHlwaDsKICAgICBIREMgdGVtcERDID0gMDsKQEAgLTUyMiw2
ICs1OTIsOCBAQCBib29sIFVuaXNjcmliZUhlbHBlcjo6c2hhcGUoY29uc3QgVUNoYXIqIGlucHV0
LAogICAgICAgICBzaGFwaW5nLm1fbG9ncy5yZXNpemUoaXRlbUxlbmd0aCk7CiAgICAgICAgIHNo
YXBpbmcubV9nbHlwaHMucmVzaXplKG51bUdseXBocyk7CiAgICAgICAgIHNoYXBpbmcubV92aXN1
YWxBdHRyaWJ1dGVzLnJlc2l6ZShudW1HbHlwaHMpOworICAgICAgICBjaGFyUHJvcHMucmVzaXpl
KGl0ZW1MZW5ndGgpOworICAgICAgICBnbHlwaFByb3BzLnJlc2l6ZShudW1HbHlwaHMpOwogCiAj
aWZkZWYgUFVSSUZZCiAgICAgICAgIC8vIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1
bS9pc3N1ZXMvZGV0YWlsP2lkPTUzMDkKQEAgLTU0MiwxMyArNjE0LDIzIEBAIGJvb2wgVW5pc2Ny
aWJlSGVscGVyOjpzaGFwZShjb25zdCBVQ2hhciogaW5wdXQsCiAgICAgICAgIFplcm9NZW1vcnko
JnNoYXBpbmcubV9nbHlwaHNbMF0sCiAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHNoYXBpbmcu
bV9nbHlwaHNbMF0pICogc2hhcGluZy5tX2dseXBocy5zaXplKCkpOwogI2VuZGlmCi0KICAgICAg
ICAgLy8gRmlyZWZveCBzZXRzIFNDUklQVF9BTkFMWVNJUy5TQ1JJUFRfU1RBVEUuZkRpc3BsYXla
V0cgdG8gdHJ1ZQogICAgICAgICAvLyBoZXJlLiBJcyB0aGF0IHdoYXQgd2Ugd2FudD8gSXQgd2ls
bCBkaXNwbGF5IGNvbnRyb2wgY2hhcmFjdGVycy4KLSAgICAgICAgaHIgPSBTY3JpcHRTaGFwZSh0
ZW1wREMsIHNjcmlwdENhY2hlLCBpbnB1dCwgaXRlbUxlbmd0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBudW1HbHlwaHMsICZydW4uYSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAmc2hh
cGluZy5tX2dseXBoc1swXSwgJnNoYXBpbmcubV9sb2dzWzBdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICZzaGFwaW5nLm1fdmlzdWFsQXR0cmlidXRlc1swXSwgJmdlbmVyYXRlZEdseXBocyk7
CisgICAgICAgIGlmIChnU2NyaXB0U2hhcGVPcGVuVHlwZUZ1bmMpIHsKKyAgICAgICAgICAgIFRF
WFRSQU5HRV9QUk9QRVJUSUVTKiByYW5nZVByb3BzID0gbV9mZWF0dXJlUmVjb3Jkcy5zaXplKCkg
PyAmbV9yYW5nZVByb3BlcnRpZXMgOiAwOworICAgICAgICAgICAgaHIgPSBnU2NyaXB0U2hhcGVP
cGVuVHlwZUZ1bmModGVtcERDLCBzY3JpcHRDYWNoZSwgJnJ1bi5hLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0VGFnLCAwLCAmaXRlbUxlbmd0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyYW5nZVByb3BzLCByYW5n
ZVByb3BzID8gMSA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnB1dCwgaXRlbUxlbmd0aCwgbnVtR2x5cGhzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJnNoYXBpbmcubV9sb2dzWzBdLCAmY2hhclByb3BzWzBdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXBpbmcubV9nbHlwaHNb
MF0sICZnbHlwaFByb3BzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJmdlbmVyYXRlZEdseXBocyk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBo
ciA9IFNjcmlwdFNoYXBlKHRlbXBEQywgc2NyaXB0Q2FjaGUsIGlucHV0LCBpdGVtTGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1HbHlwaHMsICZydW4uYSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJnNoYXBpbmcubV9nbHlwaHNbMF0sICZzaGFwaW5nLm1fbG9n
c1swXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnNoYXBpbmcubV92aXN1YWxBdHRy
aWJ1dGVzWzBdLCAmZ2VuZXJhdGVkR2x5cGhzKTsKKyAgICAgICAgfQogICAgICAgICBpZiAoaHIg
PT0gRV9QRU5ESU5HKSB7CiAgICAgICAgICAgICAvLyBBbGxvY2F0ZSB0aGUgREMuCiAgICAgICAg
ICAgICB0ZW1wREMgPSBHZXREQygwKTsKQEAgLTY0NSw2ICs3MjcsMTIgQEAgYm9vbCBVbmlzY3Jp
YmVIZWxwZXI6OnNoYXBlKGNvbnN0IFVDaGFyKiBpbnB1dCwKICAgY2xlYW51cDoKICAgICBzaGFw
aW5nLm1fZ2x5cGhzLnJlc2l6ZShnZW5lcmF0ZWRHbHlwaHMpOwogICAgIHNoYXBpbmcubV92aXN1
YWxBdHRyaWJ1dGVzLnJlc2l6ZShnZW5lcmF0ZWRHbHlwaHMpOworICAgIC8vIElmIHdlIHVzZSBT
Y3JpcHRTaGFwZU9wZW5UeXBlKCksIHZpc3VhbCBhdHRyaWJ1dGVzIGluZm9ybWF0aW9uIGZvciBl
YWNoCisgICAgLy8gY2hhcmFjdGVycyBhcmUgc3RvcmVkIGluIHxnbHlwaFByb3BzW2ldLnN2YXwu
CisgICAgaWYgKGdTY3JpcHRTaGFwZU9wZW5UeXBlRnVuYykgeworICAgICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGdlbmVyYXRlZEdseXBoczsgKytpKQorICAgICAgICAgICAgbWVtY3B5KCZzaGFw
aW5nLm1fdmlzdWFsQXR0cmlidXRlc1tpXSwgJmdseXBoUHJvcHNbaV0uc3ZhLCBzaXplb2YoU0NS
SVBUX1ZJU0FUVFIpKTsKKyAgICB9CiAgICAgc2hhcGluZy5tX2FkdmFuY2UucmVzaXplKGdlbmVy
YXRlZEdseXBocyk7CiAgICAgc2hhcGluZy5tX29mZnNldHMucmVzaXplKGdlbmVyYXRlZEdseXBo
cyk7CiAgICAgaWYgKHRlbXBEQykgewpAQCAtNjY4LDExICs3NTYsMTEgQEAgdm9pZCBVbmlzY3Jp
YmVIZWxwZXI6OmZpbGxTaGFwZXMoKQogICAgICAgICAgICAgaXRlbUxlbmd0aCA9IG1fcnVuc1tp
ICsgMV0uaUNoYXJQb3MgLSBzdGFydEl0ZW07CiAKICAgICAgICAgaW50IG51bUdseXBoczsKLSAg
ICAgICAgaWYgKGl0ZW1MZW5ndGggPCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJTKSB7Cisg
ICAgICAgIGlmIChpdGVtTGVuZ3RoIDwgY1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnMpIHsKICAg
ICAgICAgICAgIC8vIFdlJ2xsIHN0YXJ0IG91ciBidWZmZXIgc2l6ZXMgd2l0aCB0aGUgY3VycmVu
dCBzdGFjayBzcGFjZQogICAgICAgICAgICAgLy8gYXZhaWxhYmxlIGluIG91ciBidWZmZXJzIGlm
IHRoZSBjdXJyZW50IGlucHV0IGZpdHMuIEFzIGxvbmcgYXMKICAgICAgICAgICAgIC8vIGl0IGRv
ZXNuJ3QgZXhwYW5kIHBhc3QgdGhhdCB3ZSdsbCBzYXZlIGEgbG90IG9mIHRpbWUgbWFsbG9jaW5n
LgotICAgICAgICAgICAgbnVtR2x5cGhzID0gVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUzsK
KyAgICAgICAgICAgIG51bUdseXBocyA9IGNVbmlzY3JpYmVIZWxwZXJTdGFja0NoYXJzOwogICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gV2hlbiB0aGUgaW5wdXQgZG9lc24ndCBmaXQs
IGdpdmUgdXAgd2l0aCB0aGUgc3RhY2sgc2luY2UgaXQgd2lsbAogICAgICAgICAgICAgLy8gYWxt
b3N0IHN1cmVseSBub3QgYmUgZW5vdWdoIHJvb20gKHVubGVzcyB0aGUgaW5wdXQgYWN0dWFsbHkK
QEAgLTY4NSw3ICs3NzMsNyBAQCB2b2lkIFVuaXNjcmliZUhlbHBlcjo6ZmlsbFNoYXBlcygpCiAg
ICAgICAgIC8vIENvbnZlcnQgYSBzdHJpbmcgdG8gYSBnbHlwaCBzdHJpbmcgdHJ5aW5nIHRoZSBw
cmltYXJ5IGZvbnQsIGZvbnRzIGluCiAgICAgICAgIC8vIHRoZSBmYWxsYmFjayBsaXN0IGFuZCB0
aGVuIHNjcmlwdC1zcGVjaWZpYyBsYXN0IHJlc29ydCBmb250LgogICAgICAgICBTaGFwaW5nJiBz
aGFwaW5nID0gbV9zaGFwZXNbaV07Ci0gICAgICAgIGlmICghc2hhcGUoJm1faW5wdXRbc3RhcnRJ
dGVtXSwgaXRlbUxlbmd0aCwgbnVtR2x5cGhzLCBtX3J1bnNbaV0sIHNoYXBpbmcpKQorICAgICAg
ICBpZiAoIXNoYXBlKCZtX2lucHV0W3N0YXJ0SXRlbV0sIGl0ZW1MZW5ndGgsIG51bUdseXBocywg
bV9ydW5zW2ldLCBtX3NjcmlwdFRhZ3NbaV0sIHNoYXBpbmcpKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgLy8gQXQgdGhlIG1vbWVudCwgdGhlIG9ubHkgdGltZSBtX2Rpc2FibGVG
b250RmFsbGJhY2sgaXMgc2V0IGlzCkBAIC03MjQsNiArODEyLDcgQEAgdm9pZCBVbmlzY3JpYmVI
ZWxwZXI6OmZpbGxTaGFwZXMoKQogICAgICAgICAgICAgLy8gU29tZSBlcnJvciB3ZSBkb24ndCBr
bm93IGhvdyB0byBoYW5kbGUuIE51a2UgYWxsIG9mIG91ciBkYXRhCiAgICAgICAgICAgICAvLyBz
aW5jZSB3ZSBjYW4ndCBkZWFsIHdpdGggcGFydGlhbGx5IHZhbGlkIGRhdGEgbGF0ZXIuCiAgICAg
ICAgICAgICBtX3J1bnMuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fc2NyaXB0VGFncy5jbGVhcigp
OwogICAgICAgICAgICAgbV9zaGFwZXMuY2xlYXIoKTsKICAgICAgICAgICAgIG1fc2NyZWVuT3Jk
ZXIuY2xlYXIoKTsKICAgICAgICAgfQpAQCAtOTMyLDUgKzEwMjEsMjUgQEAgYm9vbCBVbmlzY3Jp
YmVIZWxwZXI6OmNvbnRhaW5zTWlzc2luZ0dseXBocyhjb25zdCBTaGFwaW5nJiBzaGFwaW5nLAog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAorc3RhdGljIE9QRU5UWVBFX1RBRyBjb252ZXJ0RmVhdHVy
ZVRhZyhjb25zdCBTdHJpbmcmIHRhZykKK3sKKyAgICByZXR1cm4gKCh0YWdbMF0gJiAweEZGKSB8
ICgodGFnWzFdICYgMHhGRikgPDwgOCkgfCAoKHRhZ1syXSAmIDB4RkYpIDw8IDE2KSB8ICgodGFn
WzNdICYgMHhGRikgPDwgMjQpKTsKK30KKwordm9pZCBVbmlzY3JpYmVIZWxwZXI6OnNldFJhbmdl
UHJvcGVydGllcyhjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MpCit7
CisgICAgaWYgKCFmZWF0dXJlU2V0dGluZ3MgfHwgIWZlYXR1cmVTZXR0aW5ncy0+c2l6ZSgpKSB7
CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHMucmVzaXplKDApOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9mZWF0dXJlUmVjb3Jkcy5yZXNpemUoZmVhdHVyZVNldHRpbmdzLT5zaXpl
KCkpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmZWF0dXJlU2V0dGluZ3MtPnNpemUo
KTsgKytpKSB7CisgICAgICAgIG1fZmVhdHVyZVJlY29yZHNbaV0ubFBhcmFtZXRlciA9IGZlYXR1
cmVTZXR0aW5ncy0+YXQoaSkudmFsdWUoKTsKKyAgICAgICAgbV9mZWF0dXJlUmVjb3Jkc1tpXS50
YWdGZWF0dXJlID0gY29udmVydEZlYXR1cmVUYWcoZmVhdHVyZVNldHRpbmdzLT5hdChpKS50YWco
KSk7CisgICAgfQorICAgIG1fcmFuZ2VQcm9wZXJ0aWVzLnBvdGZSZWNvcmRzID0gJm1fZmVhdHVy
ZVJlY29yZHNbMF07CisgICAgbV9yYW5nZVByb3BlcnRpZXMuY290ZlJlY29yZHMgPSBtX2ZlYXR1
cmVSZWNvcmRzLnNpemUoKTsKK30KIAogfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhl
bHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2Ny
aWJlSGVscGVyLmgKaW5kZXggNGJjZGJkNmFjYmEwYjAzZGYyMGZlOTJjM2U0ZTQzNWEwOWZiMDg3
Ny4uYzkzZDI3M2EzZDA5MmI2MTY1ZTFlZjk5ZGM5MWE4YjFiNjI1ODc3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2NyaWJlSGVscGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVW5pc2Ny
aWJlSGVscGVyLmgKQEAgLTQ0LDEwICs0NCwxMiBAQCBjbGFzcyBVbmlzY3JpYmVUZXN0X1Rvb0Jp
Z19UZXN0OyAgLy8gQSBndW5pdCB0ZXN0IGZvciBVbmlzY3JpYmVIZWxwZXIuCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgRm9udEZlYXR1cmVTZXR0aW5nczsKIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDsKIAotI2RlZmluZSBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlMgOAotI2RlZmlu
ZSBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJTIDMyCitjb25zdCB1bnNpZ25lZCBjVW5pc2Ny
aWJlSGVscGVyU3RhY2tSdW5zID0gODsKK2NvbnN0IHVuc2lnbmVkIGNVbmlzY3JpYmVIZWxwZXJT
dGFja0NoYXJzID0gMzI7Citjb25zdCB1bnNpZ25lZCBjVW5pc2NyaWJlSGVscGVyRmVhdHVyZXMg
PSA0OwogCiAvLyBUaGlzIG9iamVjdCBzaG91bGQgYmUgc2FmZSB0byBjcmVhdGUgJiBkZXN0cm95
IGZyZXF1ZW50bHksIGFzIGxvbmcgYXMgdGhlCiAvLyBjYWxsZXIgcHJlc2VydmVzIHRoZSBzY3Jp
cHRfY2FjaGUgd2hlbiBwb3NzaWJsZSAodGhpcyBkYXRhIG1heSBiZSBzbG93IHRvCkBAIC0xNTgs
NiArMTYwLDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9kaXNhYmxlRm9udEZhbGxiYWNrID0gdHJ1
ZTsKICAgICB9CiAKKyAgICAvLyBTZXQgVEVYVFJBTkdFX1BST1BFUlRJRVMgc3RydWN0dXJlIHdo
aWNoIGNvbnRhaW5zCisgICAgLy8gT3BlblR5cGUgZmVhdHVyZSByZWNvcmRzIGdlbmVyYXRlZCBm
cm9tIEZvbnRGZWF0dXJlU2V0dGluZ3MuCisgICAgdm9pZCBzZXRSYW5nZVByb3BlcnRpZXMoY29u
c3QgRm9udEZlYXR1cmVTZXR0aW5ncyopOworCiAgICAgLy8gWW91IG11c3QgY2FsbCB0aGlzIGFm
dGVyIHNldHRpbmcgYW55IG9wdGlvbnMgYnV0IGJlZm9yZSBkb2luZyBhbnkKICAgICAvLyBvdGhl
ciBjYWxscyBsaWtlIGFza2luZyBmb3Igd2lkdGhzIG9yIGRyYXdpbmcuCiAgICAgdm9pZCBpbml0
KCkKQEAgLTI2OSw3ICsyNzUsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIC8vIEdseXBoIGluZGlj
ZXMgaW4gdGhlIGZvbnQgdXNlZCB0byBkaXNwbGF5IHRoaXMgaXRlbS4gVGhlc2UgaW5kaWNlcwog
ICAgICAgICAvLyBhcmUgaW4gc2NyZWVuIG9yZGVyLgotICAgICAgICBWZWN0b3I8V09SRCwgVU5J
U0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gbV9nbHlwaHM7CisgICAgICAgIFZlY3RvcjxXT1JE
LCBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFycz4gbV9nbHlwaHM7CiAKICAgICAgICAgLy8gRm9y
IGVhY2ggaW5wdXQgY2hhcmFjdGVyLCB0aGlzIHRlbGxzIHVzIHRoZSBmaXJzdCBnbHlwaCBpbmRl
eCBpdAogICAgICAgICAvLyBnZW5lcmF0ZWQuIFRoaXMgaXMgdGhlIG9ubHkgYXJyYXkgd2l0aCBz
aXplIG9mIHRoZSBpbnB1dCBjaGFycy4KQEAgLTI3OCwyMCArMjg0LDIwIEBAIHByaXZhdGU6CiAg
ICAgICAgIC8vIGNhbiBnZW5lcmF0ZSBvbmUgZ2x5cGgsIGluIHdoaWNoIGNhc2UgdGhlcmUgd2ls
bCBiZSBhZGphY2VudAogICAgICAgICAvLyBkdXBsaWNhdGVzIGluIHRoaXMgbGlzdC4gT25lIGNo
YXJhY3RlciBjYW4gYWxzbyBnZW5lcmF0ZSBtdWx0aXBsZQogICAgICAgICAvLyBnbHlwaHMsIGlu
IHdoaWNoIGNhc2UgdGhlcmUgd2lsbCBiZSBza2lwcGVkIGluZGljZXMgaW4gdGhpcyBsaXN0Lgot
ICAgICAgICBWZWN0b3I8V09SRCwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gbV9sb2dz
OworICAgICAgICBWZWN0b3I8V09SRCwgY1VuaXNjcmliZUhlbHBlclN0YWNrQ2hhcnM+IG1fbG9n
czsKIAogICAgICAgICAvLyBGbGFncyBhbmQgc3VjaCBmb3IgZWFjaCBnbHlwaC4KLSAgICAgICAg
VmVjdG9yPFNDUklQVF9WSVNBVFRSLCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX0NIQVJTPiBtX3Zp
c3VhbEF0dHJpYnV0ZXM7CisgICAgICAgIFZlY3RvcjxTQ1JJUFRfVklTQVRUUiwgY1VuaXNjcmli
ZUhlbHBlclN0YWNrQ2hhcnM+IG1fdmlzdWFsQXR0cmlidXRlczsKIAogICAgICAgICAvLyBIb3Jp
em9udGFsIGFkdmFuY2VzIGZvciBlYWNoIGdseXBoIGxpc3RlZCBhYm92ZSwgdGhpcyBpcyBiYXNp
Y2FsbHkKICAgICAgICAgLy8gaG93IHdpZGUgZWFjaCBnbHlwaCBpcy4KLSAgICAgICAgVmVjdG9y
PGludCwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gbV9hZHZhbmNlOworICAgICAgICBW
ZWN0b3I8aW50LCBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFycz4gbV9hZHZhbmNlOwogCiAgICAg
ICAgIC8vIFRoaXMgY29udGFpbnMgZ2x5cGggb2Zmc2V0cywgZnJvbSB0aGUgbm9taW5hbCBwb3Np
dGlvbiBvZiBhIGdseXBoLgogICAgICAgICAvLyBJdCBpcyB1c2VkIHRvIGFkanVzdCB0aGUgcG9z
aXRpb25zIG9mIG11bHRpcGxlIGNvbWJpbmluZyBjaGFyYWN0ZXJzCiAgICAgICAgIC8vIGFyb3Vu
ZC9hYm92ZS9iZWxvdyBiYXNlIGNoYXJhY3RlcnMgaW4gYSBjb250ZXh0LXNlbnNpdGl2ZSBtYW5u
ZXIgc28KICAgICAgICAgLy8gdGhhdCB0aGV5IGRvbid0IGJ1bXAgYWdhaW5zdCBlYWNoIG90aGVy
IGFuZCB0aGUgYmFzZSBjaGFyYWN0ZXIuCi0gICAgICAgIFZlY3RvcjxHT0ZGU0VULCBVTklTQ1JJ
QkVfSEVMUEVSX1NUQUNLX0NIQVJTPiBtX29mZnNldHM7CisgICAgICAgIFZlY3RvcjxHT0ZGU0VU
LCBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFycz4gbV9vZmZzZXRzOwogCiAgICAgICAgIC8vIEZp
bGxlZCBieSBhIGNhbGwgdG8gSnVzdGlmeSwgdGhpcyBpcyBlbXB0eSBmb3Igbm9uanVzdGlmaWVk
IHRleHQuCiAgICAgICAgIC8vIElmIG5vbmVtcHR5LCB0aGlzIGNvbnRhaW5zIHRoZSBhcnJheSBv
ZiBqdXN0aWZ5IGNoYXJhY3RlcnMgZm9yIGVhY2gKQEAgLTMwMCw3ICszMDYsNyBAQCBwcml2YXRl
OgogICAgICAgICAvLyBUaGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBhZHZhbmNlIGFycmF5LCBidXQg
d2l0aCBleHRyYSBzcGFjZSBhZGRlZAogICAgICAgICAvLyBmb3Igc29tZSBjaGFyYWN0ZXJzLiBU
aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgZ2x5cGgncyB8anVzdGlmeXwKICAgICAgICAgLy8gd2lk
dGggYW5kIGl0J3MgfGFkdmFuY2V8IHdpZHRoIGlzIHRoZSBleHRyYSBzcGFjZSBhZGRlZC4KLSAg
ICAgICAgVmVjdG9yPGludCwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19DSEFSUz4gbV9qdXN0aWZ5
OworICAgICAgICBWZWN0b3I8aW50LCBjVW5pc2NyaWJlSGVscGVyU3RhY2tDaGFycz4gbV9qdXN0
aWZ5OwogCiAgICAgICAgIC8vIFNpemluZyBpbmZvcm1hdGlvbiBmb3IgdGhpcyBydW4uIFRoaXMg
dHJlYXRzIHRoZSBlbnRpcmUgcnVuIGFzIGEKICAgICAgICAgLy8gY2hhcmFjdGVyIHdpdGggYSBw
cmVjZWVkaW5nIGFkdmFuY2UsIHdpZHRoLCBhbmQgZW5kaW5nIGFkdmFuY2UuICBUaGUKQEAgLTM1
OCw3ICszNjQsNyBAQCBwcml2YXRlOgogICAgIC8vIGJ5IHxpbnB1dHwgY29tZXMgZnJvbSBTY3Jp
cHRJdGVtaXplIGFuZCBpcyBzdXBwb3NlZCB0byBjb250YWluCiAgICAgLy8gY2hhcmFjdGVycyBi
ZWxvbmdpbmcgdG8gYSBzaW5nbGUgc2NyaXB0IGFzaWRlIGZyb20gY2hhcmFjdGVycyBjb21tb24g
dG8KICAgICAvLyBhbGwgc2NyaXB0cyAoZS5nLiBzcGFjZSkuCi0gICAgYm9vbCBzaGFwZShjb25z
dCBVQ2hhciogaW5wdXQsIGludCBpdGVtTGVuZ3RoLCBpbnQgbnVtR2x5cGhzLCBTQ1JJUFRfSVRF
TSYgcnVuLCBTaGFwaW5nJik7CisgICAgYm9vbCBzaGFwZShjb25zdCBVQ2hhciogaW5wdXQsIGlu
dCBpdGVtTGVuZ3RoLCBpbnQgbnVtR2x5cGhzLCBTQ1JJUFRfSVRFTSYgcnVuLCBPUEVOVFlQRV9U
QUcsIFNoYXBpbmcmKTsKIAogICAgIC8vIEdldHMgV2luZG93cyBmb250IGRhdGEgZm9yIHRoZSBu
ZXh0IGJlc3QgZm9udCB0byB0cnkgaW4gdGhlIGxpc3QKICAgICAvLyBvZiBmb250cy4gV2hlbiB0
aGVyZSdzIG5vIG1vcmUgZm9udCBhdmFpbGFibGUsIHJldHVybnMgZmFsc2UKQEAgLTQwNSw5ICs0
MTEsMTAgQEAgcHJpdmF0ZToKIAogICAgIC8vIFVuaXNjcmliZSBicmVha3MgdGhlIHRleHQgaW50
byBSdW5zLiBUaGVzZSBhcmUgb25lIGxlbmd0aCBvZiB0ZXh0IHRoYXQgaXMKICAgICAvLyBpbiBv
bmUgc2NyaXB0IGFuZCBvbmUgZGlyZWN0aW9uLiBUaGlzIGFycmF5IGlzIGluIHJlYWRpbmcgb3Jk
ZXIuCi0gICAgVmVjdG9yPFNDUklQVF9JVEVNLCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNLX1JVTlM+
IG1fcnVuczsKKyAgICBWZWN0b3I8U0NSSVBUX0lURU0sIGNVbmlzY3JpYmVIZWxwZXJTdGFja1J1
bnM+IG1fcnVuczsKIAotICAgIFZlY3RvcjxTaGFwaW5nLCBVTklTQ1JJQkVfSEVMUEVSX1NUQUNL
X1JVTlM+IG1fc2hhcGVzOworICAgIFZlY3RvcjxTaGFwaW5nLCBjVW5pc2NyaWJlSGVscGVyU3Rh
Y2tSdW5zPiBtX3NoYXBlczsKKyAgICBWZWN0b3I8T1BFTlRZUEVfVEFHLCBjVW5pc2NyaWJlSGVs
cGVyU3RhY2tSdW5zPiBtX3NjcmlwdFRhZ3M7CiAKICAgICAvLyBUaGlzIGlzIGEgbWFwcGluZyBi
ZXR3ZWVuIHJlYWRpbmcgb3JkZXIgYW5kIHNjcmVlbiBvcmRlciBmb3IgdGhlIGl0ZW1zLgogICAg
IC8vIFVuaXNjcmliZSdzIGl0ZW1zIGFycmF5IGFyZSBpbiByZWFkaW5nIG9yZGVyLiBGb3Igcmln
aHQtdG8tbGVmdCB0ZXh0LApAQCAtNDE2LDcgKzQyMywxMiBAQCBwcml2YXRlOgogICAgIC8vIGFu
ZCBwb3NpdGlvbnMuIFRoaXMgbGlzdCBpcyBpbiBzY3JlZW4gb3JkZXIgZnJvbSBsZWZ0IHRvIHJp
Z2h0LCBhbmQKICAgICAvLyBnaXZlcyB0aGUgaW5kZXggaW50byB0aGUgfG1fcnVuc3wgYW5kIHxt
X3NoYXBlc3wgYXJyYXlzIG9mIGVhY2gKICAgICAvLyBzdWJzZXF1ZW50IGl0ZW0uCi0gICAgVmVj
dG9yPGludCwgVU5JU0NSSUJFX0hFTFBFUl9TVEFDS19SVU5TPiBtX3NjcmVlbk9yZGVyOworICAg
IFZlY3RvcjxpbnQsIGNVbmlzY3JpYmVIZWxwZXJTdGFja1J1bnM+IG1fc2NyZWVuT3JkZXI7CisK
KyAgICAvLyBUaGlzIGNvbnRhaW5zIFVuaXNjcmliZSdzIE9wZW5UeXBlIGZlYXR1cmUgc2V0dGlu
Z3MuIFRoaXMgc3RydWN0dXJlCisgICAgLy8gaXMgZmlsbGVkIGJ5IHVzaW5nIFdlYktpdCdzIHxG
b250RmVhdHVyZVNldHRpbmdzfC4KKyAgICBURVhUUkFOR0VfUFJPUEVSVElFUyBtX3JhbmdlUHJv
cGVydGllczsKKyAgICBWZWN0b3I8T1BFTlRZUEVfRkVBVFVSRV9SRUNPUkQsIGNVbmlzY3JpYmVI
ZWxwZXJGZWF0dXJlcz4gbV9mZWF0dXJlUmVjb3JkczsKIH07CiAKIH0gIC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9VbmlzY3JpYmVIZWxwZXJUZXh0UnVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uY3BwCmluZGV4IDE2NTAz
ZTg0ZWYxYjZlYTM2ODMzYTBkZWRlZGM1NmRjZmUzNzJkZTYuLmFkOWRkNDlkNDE0NGIxMzVjMDUz
Nzc0NjJhYWZkNWExNjE4NzcyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRSdW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1VuaXNjcmliZUhlbHBlclRleHRS
dW4uY3BwCkBAIC01Myw2ICs1Myw3IEBAIFVuaXNjcmliZUhlbHBlclRleHRSdW46OlVuaXNjcmli
ZUhlbHBlclRleHRSdW4oY29uc3QgVGV4dFJ1biYgcnVuLAogICAgIHNldFNwYWNlV2lkdGgoZm9u
dC5zcGFjZVdpZHRoKCkpOwogICAgIHNldFdvcmRTcGFjaW5nKGZvbnQud29yZFNwYWNpbmcoKSk7
CiAgICAgc2V0QXNjZW50KGZvbnQuZm9udE1ldHJpY3MoKS5hc2NlbnQoKSk7CisgICAgc2V0UmFu
Z2VQcm9wZXJ0aWVzKGZvbnQuZm9udERlc2NyaXB0aW9uKCkuZmVhdHVyZVNldHRpbmdzKCkpOwog
CiAgICAgaW5pdCgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>