<?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>108411</bug_id>
          
          <creation_ts>2013-01-30 18:01:01 -0800</creation_ts>
          <short_desc>TextAutosizing: adjust the maximum difference between cluster text width and its descendant width</short_desc>
          <delta_ts>2013-03-01 02:52:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</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>
          <dependson>108384</dependson>
          <blocked>107300</blocked>
    
    <blocked>109573</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Anton Vayvod">avayvod</reporter>
          <assigned_to name="Anton Vayvod">avayvod</assigned_to>
          <cc>eric</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>johnme</cc>
    
    <cc>kenneth</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>timvolodine</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>820893</commentid>
    <comment_count>0</comment_count>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-01-30 18:01:01 -0800</bug_when>
    <thetext>Adjust the maximum width difference between a narrow descendant and its parent cluster&apos;s text width if the current width difference is less than 50px bigger. This allows layouts like nested comments to be handled better: deep threads are still considered to be a part of the same cluster and the font is boosted equally for all narrow nodes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820896</commentid>
    <comment_count>1</comment_count>
      <attachid>185641</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-01-30 18:04:12 -0800</bug_when>
    <thetext>Created attachment 185641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823367</commentid>
    <comment_count>2</comment_count>
      <attachid>186169</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-01 15:39:58 -0800</bug_when>
    <thetext>Created attachment 186169
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823378</commentid>
    <comment_count>3</comment_count>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-01 15:51:08 -0800</bug_when>
    <thetext>Hey, Julien! Could you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824283</commentid>
    <comment_count>4</comment_count>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-04 05:41:12 -0800</bug_when>
    <thetext>Hi Kenneth, could you, please, take a look? This is the next change to the one you reviewed last week. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824292</commentid>
    <comment_count>5</comment_count>
      <attachid>186169</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-04 05:51:28 -0800</bug_when>
    <thetext>Comment on attachment 186169
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +        This allows layouts like nested comments to be handled better: deep threads are still considered to be a part
&gt; +        of the same cluster and the font is boosted equally for all the arrow nodes.
&gt; +        

I would try to keep the lines at max 100 chars

&gt; Source/WebCore/ChangeLog:3653
&gt; +        * rendering/TextAutosizer.cpp:
&gt; +        (WebCore::TextAutosizingClusterInfo::TextAutosizingClusterInfo):
&gt; +        (TextAutosizingClusterInfo):
&gt; +        (WebCore):
&gt; +        (WebCore::TextAutosizer::processSubtree):
&gt; +        (WebCore::TextAutosizer::processCluster):
&gt; +        (WebCore::TextAutosizer::processContainer):
&gt; +        (WebCore::TextAutosizer::isAutosizingCluster):
&gt; +        (WebCore::TextAutosizer::clusterShouldBeAutosized):
&gt; +        (WebCore::TextAutosizer::measureDescendantTextWidth):
&gt; +        * rendering/TextAutosizer.h:
&gt; +        (WebCore):
&gt; +
&gt;  2013-01-30  Dominik RÃ¶ttsches  &lt;dominik.rottsches@intel.com&gt;

This seems unrelated... there is an entry by Pavel before this!

&gt; Source/WebCore/rendering/TextAutosizer.cpp:54
&gt; +        , maxAllowedDifferenceFromTextWidth(150)

what kind of difference? That is not obvious</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824295</commentid>
    <comment_count>6</comment_count>
      <attachid>186169</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-04 05:58:52 -0800</bug_when>
    <thetext>Comment on attachment 186169
Patch

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

Code looks good and test looks good. Might be good to explain what&apos;s going on slightly more clearly though, as this is a rather subtle patch.

&gt; Source/WebCore/ChangeLog:5
&gt; +        This allows layouts like nested comments to be handled better: deep threads are still considered to be a part

Please make this description more detailed, as the purpose of the patch is somewhat subtle :)

&gt; Source/WebCore/ChangeLog:29
&gt; +        * rendering/TextAutosizer.cpp:

You have 4 copies of the list of changed files. This one, one above (that you&apos;ve filled in), and 2 below, one of which in the middle of pfeldman&apos;s patch. Please remove the last 3.

&gt; Source/WebCore/rendering/TextAutosizer.cpp:60
&gt; +    float maxAllowedDifferenceFromTextWidth;

It might be nice to have some explanation of this property / starting value. There was a comment below (&quot;Upper limit on the difference between the width of the parent block containing all text and that of a narrow child before the child becomes a cluster.&quot;) which gave a reasonable overview (though in this context, I&apos;d probably s/the parent/a cluster&apos;s/ and s/a cluster/a separate cluster/).

&gt; Source/WebCore/rendering/TextAutosizer.cpp:269
&gt; +        const float maxWidthDifferenceDifference = 50;

This comment probably isn&apos;t still accurate (seeing as the variable name changed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824429</commentid>
    <comment_count>7</comment_count>
      <attachid>186169</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-04 09:18:50 -0800</bug_when>
    <thetext>Comment on attachment 186169
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:29
&gt;&gt; +        * rendering/TextAutosizer.cpp:
&gt; 
&gt; You have 4 copies of the list of changed files. This one, one above (that you&apos;ve filled in), and 2 below, one of which in the middle of pfeldman&apos;s patch. Please remove the last 3.

Fixed.

&gt;&gt; Source/WebCore/ChangeLog:3653
&gt;&gt;  2013-01-30  Dominik RÃ¶ttsches  &lt;dominik.rottsches@intel.com&gt;
&gt; 
&gt; This seems unrelated... there is an entry by Pavel before this!

Yep, thanks for catching!

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:54
&gt;&gt; +        , maxAllowedDifferenceFromTextWidth(150)
&gt; 
&gt; what kind of difference? That is not obvious

contentWidth()&apos;s difference between the current RenderObject and blockContainingAllText. Added a comment per John&apos;s comment for the member definition below.
On a second thought, it would make sense to handle updating of this field and comparison in a method of this struct (it could even be a const method and the member could be mutable). What do you think?

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:60
&gt;&gt; +    float maxAllowedDifferenceFromTextWidth;
&gt; 
&gt; It might be nice to have some explanation of this property / starting value. There was a comment below (&quot;Upper limit on the difference between the width of the parent block containing all text and that of a narrow child before the child becomes a cluster.&quot;) which gave a reasonable overview (though in this context, I&apos;d probably s/the parent/a cluster&apos;s/ and s/a cluster/a separate cluster/).

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:269
&gt;&gt; +        const float maxWidthDifferenceDifference = 50;
&gt; 
&gt; This comment probably isn&apos;t still accurate (seeing as the variable name changed).

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824440</commentid>
    <comment_count>8</comment_count>
      <attachid>186399</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-04 09:27:24 -0800</bug_when>
    <thetext>Created attachment 186399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824481</commentid>
    <comment_count>9</comment_count>
      <attachid>186399</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-04 09:56:51 -0800</bug_when>
    <thetext>Comment on attachment 186399
Patch

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

Thanks, that&apos;s a lot clearer.

&gt; Source/WebCore/ChangeLog:3
&gt; +        TextAutosizing: adjust the maximum difference between cluster text width and its descendant width

You have two (slightly different) bug titles?

&gt; Source/WebCore/ChangeLog:7
&gt; +        a separate autosizing cluster. This doesn&apos;t work well for layouts when narrow nodes are

Please include a link to webkit.org/b/105188, which introduced the narrow test (and hence contains further details).

&gt; Source/WebCore/rendering/TextAutosizer.cpp:61
&gt; +    // Upper limit on the difference between the width of a cluster&apos;s block containing all

Nit: s/a cluster&apos;s/the cluster&apos;s/ (my bad!)

&gt; Source/WebCore/rendering/TextAutosizer.cpp:270
&gt; +        // The upper limit on how many pixels the difference between the object width

Nit: s/object/renderer/? Object is a bit vague...

&gt; Source/WebCore/rendering/TextAutosizer.cpp:271
&gt; +        // and its parent cluster width can exceed the current maximum difference

Nit: s/maximum difference/maximum difference by/. Still a little hard to read, but it&apos;s admittedly a complex thing to explain, and I don&apos;t have any immediate suggestions :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824714</commentid>
    <comment_count>10</comment_count>
      <attachid>186399</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 13:42:03 -0800</bug_when>
    <thetext>Comment on attachment 186399
Patch

Attachment 186399 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16365440</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824786</commentid>
    <comment_count>11</comment_count>
      <attachid>186399</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 14:50:25 -0800</bug_when>
    <thetext>Comment on attachment 186399
Patch

Attachment 186399 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16371417</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825441</commentid>
    <comment_count>12</comment_count>
      <attachid>186399</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-05 06:27:52 -0800</bug_when>
    <thetext>Comment on attachment 186399
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:3
&gt;&gt; +        TextAutosizing: adjust the maximum difference between cluster text width and its descendant width
&gt; 
&gt; You have two (slightly different) bug titles?

What can I say? Fixing two bugs with one patch ;)

&gt;&gt; Source/WebCore/ChangeLog:7
&gt;&gt; +        a separate autosizing cluster. This doesn&apos;t work well for layouts when narrow nodes are
&gt; 
&gt; Please include a link to webkit.org/b/105188, which introduced the narrow test (and hence contains further details).

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:61
&gt;&gt; +    // Upper limit on the difference between the width of a cluster&apos;s block containing all
&gt; 
&gt; Nit: s/a cluster&apos;s/the cluster&apos;s/ (my bad!)

I knew it!

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:270
&gt;&gt; +        // The upper limit on how many pixels the difference between the object width
&gt; 
&gt; Nit: s/object/renderer/? Object is a bit vague...

Done.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:271
&gt;&gt; +        // and its parent cluster width can exceed the current maximum difference
&gt; 
&gt; Nit: s/maximum difference/maximum difference by/. Still a little hard to read, but it&apos;s admittedly a complex thing to explain, and I don&apos;t have any immediate suggestions :)

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825449</commentid>
    <comment_count>13</comment_count>
      <attachid>186618</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-05 06:55:56 -0800</bug_when>
    <thetext>Created attachment 186618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825538</commentid>
    <comment_count>14</comment_count>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-05 09:16:53 -0800</bug_when>
    <thetext>Please, take another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825540</commentid>
    <comment_count>15</comment_count>
      <attachid>186618</attachid>
    <who name="John Mellor">johnme</who>
    <bug_when>2013-02-05 09:19:37 -0800</bug_when>
    <thetext>Comment on attachment 186618
Patch

Looks good to me. Kenneth/Julien, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825545</commentid>
    <comment_count>16</comment_count>
      <attachid>186618</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-02-05 09:25:17 -0800</bug_when>
    <thetext>Comment on attachment 186618
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        each time the width difference is not greater than 50px from the previous one. This allows

these are pixels in CSS units right?

&gt; Source/WebCore/rendering/TextAutosizer.cpp:273
&gt; +        const float maxWidthDifferenceDifference = 50;

DifferenceDifference... not really clear...

maxDifferenceFromWidthDifference or differenceFromMaxWidthDifference...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825555</commentid>
    <comment_count>17</comment_count>
      <attachid>186646</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-05 09:32:48 -0800</bug_when>
    <thetext>Created attachment 186646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825558</commentid>
    <comment_count>18</comment_count>
      <attachid>186618</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-05 09:33:57 -0800</bug_when>
    <thetext>Comment on attachment 186618
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        each time the width difference is not greater than 50px from the previous one. This allows
&gt; 
&gt; these are pixels in CSS units right?

Yes, clarified.

&gt;&gt; Source/WebCore/rendering/TextAutosizer.cpp:273
&gt;&gt; +        const float maxWidthDifferenceDifference = 50;
&gt; 
&gt; DifferenceDifference... not really clear...
&gt; 
&gt; maxDifferenceFromWidthDifference or differenceFromMaxWidthDifference...

The latter. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825568</commentid>
    <comment_count>19</comment_count>
      <attachid>186648</attachid>
    <who name="Anton Vayvod">avayvod</who>
    <bug_when>2013-02-05 09:47:45 -0800</bug_when>
    <thetext>Created attachment 186648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825618</commentid>
    <comment_count>20</comment_count>
      <attachid>186648</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 10:38:09 -0800</bug_when>
    <thetext>Comment on attachment 186648
Patch

Clearing flags on attachment: 186648

Committed r141901: &lt;http://trac.webkit.org/changeset/141901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825619</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 10:38:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844989</commentid>
    <comment_count>22</comment_count>
      <attachid>186618</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-01 02:52:06 -0800</bug_when>
    <thetext>Comment on attachment 186618
Patch

Cleared review? from obsolete attachment 186618 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185641</attachid>
            <date>2013-01-30 18:04:12 -0800</date>
            <delta_ts>2013-02-01 15:39:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108411-20130131020056.patch</filename>
            <type>text/plain</type>
            <size>20176</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjNiN2IzMDkyNjZiNzAw
ZTI5YzRkMTUyYWIwZWNiYjhmYmIyNmU1Ny4uNTVmN2E4Yzg1ODJiMmRjODU5NWQ5MzcwN2Q4NmFi
MDVkYmFlYzRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDEzLTAxLTMwICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKyAgICAgICAgVGV4dEF1dG9zaXppbmc6
IGFkanVzdCB0aGUgbWF4aW11bSB3aWR0aCBkaWZmZXJlbmNlIGJldHdlZW4gYSBuYXJyb3cgZGVz
Y2VuZGFudCBhbmQgaXRzIHBhcmVudCBjbHVzdGVyJ3MgdGV4dCB3aWR0aAorICAgICAgICBpZiB0
aGUgY3VycmVudCB3aWR0aCBkaWZmZXJlbmNlIGlzIGxlc3MgdGhhbiA1MHB4IGJpZ2dlci4KKyAg
ICAgICAgVGhpcyBhbGxvd3MgbGF5b3V0cyBsaWtlIG5lc3RlZCBjb21tZW50cyB0byBiZSBoYW5k
bGVkIGJldHRlcjogZGVlcCB0aHJlYWRzIGFyZSBzdGlsbCBjb25zaWRlcmVkIHRvIGJlIGEgcGFy
dAorICAgICAgICBvZiB0aGUgc2FtZSBjbHVzdGVyIGFuZCB0aGUgZm9udCBpcyBib29zdGVkIGVx
dWFsbHkgZm9yIGFsbCBuYXJyb3cgbm9kZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg0MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgICAgICAgICBmYXN0L3RleHQtYXV0
b3NpemluZy9uZXN0ZWQtY2hpbGQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRv
c2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbzo6
VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyk6CisKKyAgICAgICAgICAgIEFkZGVkIGEgbmV3IGZp
ZWxkIHRvIHN0b3JlIHRoZSBjdXJyZW50IG1heGltdW0gd2lkdGggZGlmZmVyZW5jZSBmb3IgdGhl
IGNsdXN0ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250
YWluZXIpOiBOb24tY29uc3QgcmVmZXJlbmNlIHBhc3NlZCB0byB0aGUgbWV0aG9kLgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcik6CisKKyAgICAg
ICAgICAgIFVzZXMgdGhlIG5ldyBmaWVsZCB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgbm9k
ZSBpcyBhIHNlcGFyYXRlIGNsdXN0ZXIsCisgICAgICAgICAgICB1cGRhdGVzIHRoZSBtYXhpbXVt
IGFsbG93ZWQgd2lkdGggZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBjbHVzdGVyIGFuZCBpdHMgZGVz
Y2VuZGFudC4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6Y2x1c3RlclNob3Vs
ZEJlQXV0b3NpemVkKTogTm9uLWNvbnN0IHJlZmVyZW5jZSBwYXNzZWQgdG8gdGhlIG1ldGhvZC4K
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6Om1lYXN1cmVEZXNjZW5kYW50VGV4dFdp
ZHRoKTogTm9uLWNvbnN0IHJlZmVyZW5jZSBwYXNzZWQgdG8gdGhlIG1ldGhvZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOiB1cGRhdGVkIG1ldGhvZCBwYXJhbWV0ZXJzLgor
CisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbzo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyk6
CisgICAgICAgIChUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc1N1YnRyZWUpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NsdXN0ZXIpOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDbHVzdGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRBdXRvc2l6ZXI6OmNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0QXV0b3NpemVyOjptZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorCisy
MDEzLTAxLTMwICBBbnRvbiBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBUZXh0QXV0b3NpemluZzogcmVmYWN0b3IgdGhlIGNsdXN0ZXIgcmVsYXRlZCBtZXRob2QgcGFy
YW1ldGVycyBpbnRvIGEgc2luZ2xlIHN0cnVjdC4KKyAgICAgICAgVGhpcyBhbnRpY2lwYXRlcyBh
ZGRpbmcgbW9yZSBjbHVzdGVyIHJlbGF0ZWQgaW5mb3JtYXRpb24gaW4gdGhlIGZvbGxvd2luZyBw
YXRjaGVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA4Mzg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SnVzdCBhIHJlZmFjdG9yaW5nIHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9UZXh0QXV0b3NpemVyLmNwcDogZGVmaW5lIHRoZSBuZXcgc3RydWN0IGFuZCBwYXNzIGl0IHRv
IGV2ZXJ5IG1ldGhvZCBpbnN0ZWFkIG9mCisgICAgICAgIGEgY2x1c3RlciBhbmQgaXRzIGRlc2Nl
bmRhbnQgYmxvY2sgY29udGFpbmluZyBhbGwgdGV4dC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRB
dXRvc2l6aW5nQ2x1c3RlckluZm86OlRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8pOgorICAgICAg
ICAoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0cmVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
QXV0b3NpemVyOjpjbHVzdGVyU2hvdWxkQmVBdXRvc2l6ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEF1dG9zaXplcjo6bWVhc3VyZURlc2NlbmRhbnRUZXh0V2lkdGgpOgorICAgICAgICAqIHJl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmg6IGNoYW5nZSBtZXRob2QgcHJvdG90eXBlcyB0byByZWNl
aXZlIHRoZSBuZXcgc3RydWN0CisgICAgICAgIGFzIGEgcGFyYW1ldGVyIGRlZmluaW5nIGFuIGF1
dG9zaXppbmcgY2x1c3Rlci4KKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm86OlRleHRBdXRv
c2l6aW5nQ2x1c3RlckluZm8pOgorICAgICAgICAoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnBy
b2Nlc3NTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3ND
bHVzdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWlu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rl
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpjbHVzdGVyU2hvdWxkQmVBdXRv
c2l6ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6bWVhc3VyZURlc2NlbmRh
bnRUZXh0V2lkdGgpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKwogMjAxMy0wMS0zMCAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5p
ay5yb3R0c2NoZXNAaW50ZWwuY29tPgogCiAgICAgICAgIFtIYXJmQnV6el0gUmVtb3ZlIHRoZSBI
YXJmQnV6ei1vbGQgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Rl
eHRBdXRvc2l6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIu
Y3BwCmluZGV4IGJlZGUyODQ1YjZjN2U3YzRlMTNkYjM0ZTY3ODU0NWI3NzkzOTA3NmUuLmJkYjVm
YmEwMTQwODMxMjJhM2E1NzUzNTYwNWEzNGMyYTc0ZWQ5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKQEAgLTQ3LDYgKzQ3LDE5IEBAIHN0cnVjdCBUZXh0
QXV0b3NpemluZ1dpbmRvd0luZm8gewogICAgIEludFNpemUgbWluTGF5b3V0U2l6ZTsKIH07CiAK
K3N0cnVjdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvIHsKKyAgICBleHBsaWNpdCBUZXh0QXV0
b3NpemluZ0NsdXN0ZXJJbmZvKFJlbmRlckJsb2NrKiByb290KQorICAgICAgICA6IHJvb3Qocm9v
dCkKKyAgICAgICAgLCBibG9ja0NvbnRhaW5pbmdBbGxUZXh0KDApCisgICAgICAgICwgbWF4QWxs
b3dlZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRoKDE1MCkKKyAgICB7CisgICAgfQorCisgICAgUmVu
ZGVyQmxvY2sqIHJvb3Q7CisgICAgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0Fs
bFRleHQ7CisgICAgZmxvYXQgbWF4QWxsb3dlZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRoOworfTsK
KwogCiBzdGF0aWMgY29uc3QgVmVjdG9yPFF1YWxpZmllZE5hbWU+JiBmb3JtSW5wdXRUYWdzKCkK
IHsKQEAgLTEwNiwyNCArMTE5LDI1IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc1N1YnRy
ZWUoUmVuZGVyT2JqZWN0KiBsYXlvdXRSb290KQogICAgIHdoaWxlIChjbHVzdGVyICYmICFpc0F1
dG9zaXppbmdDbHVzdGVyKGNsdXN0ZXIpKQogICAgICAgICBjbHVzdGVyID0gY2x1c3Rlci0+Y29u
dGFpbmluZ0Jsb2NrKCk7CiAKLSAgICBwcm9jZXNzQ2x1c3RlcihjbHVzdGVyLCBjb250YWluZXIs
IGxheW91dFJvb3QsIHdpbmRvd0luZm8pOworICAgIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8g
Y2x1c3RlckluZm8oY2x1c3Rlcik7CisgICAgcHJvY2Vzc0NsdXN0ZXIoJmNsdXN0ZXJJbmZvLCBj
b250YWluZXIsIGxheW91dFJvb3QsIHdpbmRvd0luZm8pOwogICAgIHJldHVybiB0cnVlOwogfQog
Ci12b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVyKFJlbmRlckJsb2NrKiBjbHVzdGVy
LCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBSZW5kZXJPYmplY3QqIHN1YnRyZWVSb290LCBjb25z
dCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8mIHdpbmRvd0luZm8pCit2b2lkIFRleHRBdXRvc2l6
ZXI6OnByb2Nlc3NDbHVzdGVyKFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXIsIFJl
bmRlckJsb2NrKiBjb250YWluZXIsIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRl
eHRBdXRvc2l6aW5nV2luZG93SW5mbyYgd2luZG93SW5mbykKIHsKICAgICAvLyBNYW55IHBhZ2Vz
IHNldCBhIG1heC13aWR0aCBvbiB0aGVpciBjb250ZW50LiBTbyBlc3BlY2lhbGx5IGZvciB0aGUK
ICAgICAvLyBSZW5kZXJWaWV3LCBpbnN0ZWFkIG9mIGp1c3QgdGFraW5nIHRoZSB3aWR0aCBvZiB8
Y2x1c3Rlcnwgd2UgZmluZAogICAgIC8vIHRoZSBsb3dlc3QgY29tbW9uIGFuY2VzdG9yIG9mIHRo
ZSBmaXJzdCBhbmQgbGFzdCBkZXNjZW5kYW50IHRleHQgbm9kZSBvZgogICAgIC8vIHRoZSBjbHVz
dGVyIChpLmUuIHRoZSBkZWVwZXN0IHdyYXBwZXIgYmxvY2sgdGhhdCBjb250YWlucyBhbGwgdGhl
IHRleHQpLAogICAgIC8vIGFuZCB1c2UgaXRzIHdpZHRoIGluc3RlYWQuCi0gICAgY29uc3QgUmVu
ZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0FsbFRleHQgPSBmaW5kRGVlcGVzdEJsb2NrQ29udGFp
bmluZ0FsbFRleHQoY2x1c3Rlcik7Ci0gICAgZmxvYXQgdGV4dFdpZHRoID0gYmxvY2tDb250YWlu
aW5nQWxsVGV4dC0+Y29udGVudExvZ2ljYWxXaWR0aCgpOworICAgIGNsdXN0ZXItPmJsb2NrQ29u
dGFpbmluZ0FsbFRleHQgPSBmaW5kRGVlcGVzdEJsb2NrQ29udGFpbmluZ0FsbFRleHQoY2x1c3Rl
ci0+cm9vdCk7CisgICAgZmxvYXQgdGV4dFdpZHRoID0gY2x1c3Rlci0+YmxvY2tDb250YWluaW5n
QWxsVGV4dC0+Y29udGVudExvZ2ljYWxXaWR0aCgpOwogCiAgICAgZmxvYXQgbXVsdGlwbGllciA9
IDE7Ci0gICAgaWYgKGNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZChibG9ja0NvbnRhaW5pbmdBbGxU
ZXh0LCB0ZXh0V2lkdGgpKSB7Ci0gICAgICAgIGludCBsb2dpY2FsV2luZG93V2lkdGggPSBjbHVz
dGVyLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gd2luZG93SW5mby53aW5kb3dTaXplLndp
ZHRoKCkgOiB3aW5kb3dJbmZvLndpbmRvd1NpemUuaGVpZ2h0KCk7Ci0gICAgICAgIGludCBsb2dp
Y2FsTGF5b3V0V2lkdGggPSBjbHVzdGVyLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gd2lu
ZG93SW5mby5taW5MYXlvdXRTaXplLndpZHRoKCkgOiB3aW5kb3dJbmZvLm1pbkxheW91dFNpemUu
aGVpZ2h0KCk7CisgICAgaWYgKGNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZCgqY2x1c3RlciwgdGV4
dFdpZHRoKSkgeworICAgICAgICBpbnQgbG9naWNhbFdpbmRvd1dpZHRoID0gY2x1c3Rlci0+cm9v
dC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHdpbmRvd0luZm8ud2luZG93U2l6ZS53aWR0
aCgpIDogd2luZG93SW5mby53aW5kb3dTaXplLmhlaWdodCgpOworICAgICAgICBpbnQgbG9naWNh
bExheW91dFdpZHRoID0gY2x1c3Rlci0+cm9vdC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IHdpbmRvd0luZm8ubWluTGF5b3V0U2l6ZS53aWR0aCgpIDogd2luZG93SW5mby5taW5MYXlvdXRT
aXplLmhlaWdodCgpOwogICAgICAgICAvLyBJZ25vcmUgYm94IHdpZHRoIGluIGV4Y2VzcyBvZiB0
aGUgbGF5b3V0IHdpZHRoLCB0byBhdm9pZCBleHRyZW1lIG11bHRpcGxpZXJzLgogICAgICAgICBm
bG9hdCBsb2dpY2FsQ2x1c3RlcldpZHRoID0gc3RkOjptaW48ZmxvYXQ+KHRleHRXaWR0aCwgbG9n
aWNhbExheW91dFdpZHRoKTsKIApAQCAtMTMyLDEwICsxNDYsMTAgQEAgdm9pZCBUZXh0QXV0b3Np
emVyOjpwcm9jZXNzQ2x1c3RlcihSZW5kZXJCbG9jayogY2x1c3RlciwgUmVuZGVyQmxvY2sqIGNv
bnRhaW5lciwKICAgICAgICAgbXVsdGlwbGllciA9IHN0ZDo6bWF4KDEuMGYsIG11bHRpcGxpZXIp
OwogICAgIH0KIAotICAgIHByb2Nlc3NDb250YWluZXIobXVsdGlwbGllciwgY29udGFpbmVyLCBi
bG9ja0NvbnRhaW5pbmdBbGxUZXh0LCBzdWJ0cmVlUm9vdCwgd2luZG93SW5mbyk7CisgICAgcHJv
Y2Vzc0NvbnRhaW5lcihtdWx0aXBsaWVyLCBjb250YWluZXIsICpjbHVzdGVyLCBzdWJ0cmVlUm9v
dCwgd2luZG93SW5mbyk7CiB9CiAKLXZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5l
cihmbG9hdCBtdWx0aXBsaWVyLCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBSZW5kZXJC
bG9jayogYmxvY2tDb250YWluaW5nQWxsVGV4dCwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCwg
Y29uc3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKQordm9pZCBUZXh0QXV0
b3NpemVyOjpwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBj
b250YWluZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIGNsdXN0ZXIsIFJlbmRlck9iamVj
dCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYgd2luZG93SW5m
bykKIHsKICAgICBBU1NFUlQoaXNBdXRvc2l6aW5nQ29udGFpbmVyKGNvbnRhaW5lcikpOwogCkBA
IC0xNTEsMTAgKzE2NSwxMSBAQCB2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIo
ZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgYwogICAgICAgICAgICAg
Ly8gRklYTUU6IEluY3JlYXNlIGxpc3QgbWFya2VyIHNpemUgcHJvcG9ydGlvbmF0ZWx5LgogICAg
ICAgICB9IGVsc2UgaWYgKGlzQXV0b3NpemluZ0NvbnRhaW5lcihkZXNjZW5kYW50KSkgewogICAg
ICAgICAgICAgUmVuZGVyQmxvY2sqIGRlc2NlbmRhbnRCbG9jayA9IHRvUmVuZGVyQmxvY2soZGVz
Y2VuZGFudCk7Ci0gICAgICAgICAgICBpZiAoaXNBdXRvc2l6aW5nQ2x1c3RlcihkZXNjZW5kYW50
QmxvY2ssIGJsb2NrQ29udGFpbmluZ0FsbFRleHQpKQotICAgICAgICAgICAgICAgIHByb2Nlc3ND
bHVzdGVyKGRlc2NlbmRhbnRCbG9jaywgZGVzY2VuZGFudEJsb2NrLCBkZXNjZW5kYW50QmxvY2ss
IHdpbmRvd0luZm8pOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByb2Nlc3ND
b250YWluZXIobXVsdGlwbGllciwgZGVzY2VuZGFudEJsb2NrLCBibG9ja0NvbnRhaW5pbmdBbGxU
ZXh0LCBkZXNjZW5kYW50QmxvY2ssIHdpbmRvd0luZm8pOworICAgICAgICAgICAgaWYgKGlzQXV0
b3NpemluZ0NsdXN0ZXIoZGVzY2VuZGFudEJsb2NrLCBjbHVzdGVyKSkgeworICAgICAgICAgICAg
ICAgIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8gY2x1c3RlckluZm8oZGVzY2VuZGFudEJsb2Nr
KTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzQ2x1c3RlcigmY2x1c3RlckluZm8sIGRlc2NlbmRh
bnRCbG9jaywgZGVzY2VuZGFudEJsb2NrLCB3aW5kb3dJbmZvKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIHByb2Nlc3NDb250YWluZXIobXVsdGlwbGllciwgZGVzY2VuZGFu
dEJsb2NrLCBjbHVzdGVyLCBkZXNjZW5kYW50QmxvY2ssIHdpbmRvd0luZm8pOwogICAgICAgICB9
CiAgICAgICAgIGRlc2NlbmRhbnQgPSBuZXh0SW5QcmVPcmRlclNraXBwaW5nRGVzY2VuZGFudHNP
ZkNvbnRhaW5lcnMoZGVzY2VuZGFudCwgc3VidHJlZVJvb3QpOwogICAgIH0KQEAgLTIxNyw3ICsy
MzIsNyBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmlzQXV0b3NpemluZ0NvbnRhaW5lcihjb25zdCBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFRleHRB
dXRvc2l6ZXI6OmlzQXV0b3NpemluZ0NsdXN0ZXIoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVy
LCBjb25zdCBSZW5kZXJCbG9jayogcGFyZW50QmxvY2tDb250YWluaW5nQWxsVGV4dCkKK2Jvb2wg
VGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJCbG9jayogcmVu
ZGVyZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIHBhcmVudENsdXN0ZXJJbmZvKQogewog
ICAgIC8vICJBdXRvc2l6aW5nIGNsdXN0ZXJzIiBhcmUgc3BlY2lhbCBhdXRvc2l6aW5nIGNvbnRh
aW5lcnMgd2l0aGluIHdoaWNoIHdlCiAgICAgLy8gd2FudCB0byBlbmZvcmNlIGEgdW5pZm9ybSB0
ZXh0IHNpemUgbXVsdGlwbGllciwgaW4gdGhlIGhvcGVzIG9mIG1ha2luZwpAQCAtMjQzLDE1ICsy
NTgsMjAgQEAgYm9vbCBUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJl
bmRlckJsb2NrKiByZW5kZXJlciwgY29uc3QgUmVuZGUKICAgICAvLyBzaW5jZSB0aGV5IG5lZWQg
c3BlY2lhbCB0cmVhdG1lbnQgZHVlIHRvIHRoZWlyIHdpZHRoLgogICAgIEFTU0VSVChpc0F1dG9z
aXppbmdDb250YWluZXIocmVuZGVyZXIpKTsKIAotICAgIC8vIFVwcGVyIGxpbWl0IG9uIHRoZSBk
aWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBwYXJlbnQgYmxvY2sgY29udGFpbmlu
ZyBhbGwKLSAgICAvLyB0ZXh0IGFuZCB0aGF0IG9mIGEgbmFycm93IGNoaWxkIGJlZm9yZSB0aGUg
Y2hpbGQgYmVjb21lcyBhIGNsdXN0ZXIuCi0gICAgY29uc3QgZmxvYXQgbWF4V2lkdGhEaWZmZXJl
bmNlID0gMjAwOwotCi0gICAgaWYgKHBhcmVudEJsb2NrQ29udGFpbmluZ0FsbFRleHQpIHsKKyAg
ICBpZiAocGFyZW50Q2x1c3RlckluZm8uYmxvY2tDb250YWluaW5nQWxsVGV4dCkgewogICAgICAg
ICBmbG9hdCBjb250ZW50V2lkdGggPSByZW5kZXJlci0+Y29udGVudExvZ2ljYWxXaWR0aCgpOwot
ICAgICAgICBmbG9hdCBjbHVzdGVyVGV4dFdpZHRoID0gcGFyZW50QmxvY2tDb250YWluaW5nQWxs
VGV4dC0+Y29udGVudExvZ2ljYWxXaWR0aCgpOwotICAgICAgICBpZiAoY29udGVudFdpZHRoID4g
Y2x1c3RlclRleHRXaWR0aCB8fCAoY2x1c3RlclRleHRXaWR0aCAtIGNvbnRlbnRXaWR0aCkgPiBt
YXhXaWR0aERpZmZlcmVuY2UpCisgICAgICAgIGZsb2F0IGNsdXN0ZXJUZXh0V2lkdGggPSBwYXJl
bnRDbHVzdGVySW5mby5ibG9ja0NvbnRhaW5pbmdBbGxUZXh0LT5jb250ZW50TG9naWNhbFdpZHRo
KCk7CisgICAgICAgIGlmIChjb250ZW50V2lkdGggPiBjbHVzdGVyVGV4dFdpZHRoKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgLy8gVXBwZXIgbGltaXQgb24gdGhlIGRpZmZl
cmVuY2UgYmV0d2VlbiB0aGUgd2lkdGggb2YgdGhlIHBhcmVudCBibG9jayBjb250YWluaW5nIGFs
bAorICAgICAgICAvLyB0ZXh0IGFuZCB0aGF0IG9mIGEgbmFycm93IGNoaWxkIGJlZm9yZSB0aGUg
Y2hpbGQgYmVjb21lcyBhIGNsdXN0ZXIuCisgICAgICAgIGNvbnN0IGZsb2F0IG1heFdpZHRoRGlm
ZmVyZW5jZURpZmZlcmVuY2UgPSA1MDsKKworICAgICAgICBmbG9hdCB3aWR0aERpZmZlcmVuY2Ug
PSBjbHVzdGVyVGV4dFdpZHRoIC0gY29udGVudFdpZHRoOworICAgICAgICBpZiAod2lkdGhEaWZm
ZXJlbmNlIC0gcGFyZW50Q2x1c3RlckluZm8ubWF4QWxsb3dlZERpZmZlcmVuY2VGcm9tVGV4dFdp
ZHRoID4gbWF4V2lkdGhEaWZmZXJlbmNlRGlmZmVyZW5jZSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICBwYXJlbnRDbHVzdGVySW5mby5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21U
ZXh0V2lkdGggPSBzdGQ6Om1heCh3aWR0aERpZmZlcmVuY2UsIHBhcmVudENsdXN0ZXJJbmZvLm1h
eEFsbG93ZWREaWZmZXJlbmNlRnJvbVRleHRXaWR0aCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJl
bmRlcmVyLT5pc1JlbmRlclZpZXcoKQpAQCAtMjcwLDcgKzI5MCw4IEBAIGJvb2wgVGV4dEF1dG9z
aXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIsIGNv
bnN0IFJlbmRlCiAKIGJvb2wgVGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25z
dCBSZW5kZXJPYmplY3QqIG9iamVjdCkKIHsKLSAgICByZXR1cm4gaXNBdXRvc2l6aW5nQ29udGFp
bmVyKG9iamVjdCkgJiYgaXNBdXRvc2l6aW5nQ2x1c3Rlcih0b1JlbmRlckJsb2NrKG9iamVjdCks
IDApOworICAgIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8gZW1wdHlDbHVzdGVySW5mbygwKTsK
KyAgICByZXR1cm4gaXNBdXRvc2l6aW5nQ29udGFpbmVyKG9iamVjdCkgJiYgaXNBdXRvc2l6aW5n
Q2x1c3Rlcih0b1JlbmRlckJsb2NrKG9iamVjdCksIGVtcHR5Q2x1c3RlckluZm8pOwogfQogCiBi
b29sIFRleHRBdXRvc2l6ZXI6OmNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRl
ckJsb2NrKiBjb250YWluZXIpCkBAIC0zNjQsNyArMzg1LDcgQEAgYm9vbCBUZXh0QXV0b3NpemVy
Ojpjb250ZW50SGVpZ2h0SXNDb25zdHJhaW5lZChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVy
KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBUZXh0QXV0b3NpemVyOjpjbHVzdGVyU2hv
dWxkQmVBdXRvc2l6ZWQoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0FsbFRleHQs
IGZsb2F0IGJsb2NrV2lkdGgpCitib29sIFRleHRBdXRvc2l6ZXI6OmNsdXN0ZXJTaG91bGRCZUF1
dG9zaXplZChUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvJiBjbHVzdGVyLCBmbG9hdCBibG9ja1dp
ZHRoKQogewogICAgIC8vIERvbid0IGF1dG9zaXplIGNsdXN0ZXJzIHRoYXQgY29udGFpbiBsZXNz
IHRoYW4gNCBsaW5lcyBvZiB0ZXh0IChpbgogICAgIC8vIHByYWN0aWNlIGxlc3MgbGluZXMgYXJl
IHJlcXVpcmVkLCBzaW5jZSBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aApAQCAtMzc5LDEzICs0
MDAsMTMgQEAgYm9vbCBUZXh0QXV0b3NpemVyOjpjbHVzdGVyU2hvdWxkQmVBdXRvc2l6ZWQoY29u
c3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0EKICAgICBjb25zdCBmbG9hdCBtaW5MaW5l
c09mVGV4dCA9IDQ7CiAgICAgZmxvYXQgbWluVGV4dFdpZHRoID0gYmxvY2tXaWR0aCAqIG1pbkxp
bmVzT2ZUZXh0OwogICAgIGZsb2F0IHRleHRXaWR0aCA9IDA7Ci0gICAgbWVhc3VyZURlc2NlbmRh
bnRUZXh0V2lkdGgoYmxvY2tDb250YWluaW5nQWxsVGV4dCwgYmxvY2tDb250YWluaW5nQWxsVGV4
dCwgbWluVGV4dFdpZHRoLCB0ZXh0V2lkdGgpOworICAgIG1lYXN1cmVEZXNjZW5kYW50VGV4dFdp
ZHRoKGNsdXN0ZXIuYmxvY2tDb250YWluaW5nQWxsVGV4dCwgY2x1c3RlciwgbWluVGV4dFdpZHRo
LCB0ZXh0V2lkdGgpOwogICAgIGlmICh0ZXh0V2lkdGggPj0gbWluVGV4dFdpZHRoKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgVGV4dEF1dG9zaXpl
cjo6bWVhc3VyZURlc2NlbmRhbnRUZXh0V2lkdGgoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5l
ciwgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0FsbFRleHQsIGZsb2F0IG1pblRl
eHRXaWR0aCwgZmxvYXQmIHRleHRXaWR0aCkKK3ZvaWQgVGV4dEF1dG9zaXplcjo6bWVhc3VyZURl
c2NlbmRhbnRUZXh0V2lkdGgoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyYgY2x1c3RlciwgZmxvYXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4
dFdpZHRoKQogewogICAgIGJvb2wgc2tpcExvY2FsVGV4dCA9ICFjb250YWluZXJTaG91bGRCZUF1
dG9zaXplZChjb250YWluZXIpOwogCkBAIC0zOTUsOCArNDE2LDggQEAgdm9pZCBUZXh0QXV0b3Np
emVyOjptZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aChjb25zdCBSZW5kZXJCbG9jayogY29udGFp
bmVyLCBjb24KICAgICAgICAgICAgIHRleHRXaWR0aCArPSB0b1JlbmRlclRleHQoZGVzY2VuZGFu
dCktPnJlbmRlcmVkVGV4dExlbmd0aCgpICogZGVzY2VuZGFudC0+c3R5bGUoKS0+c3BlY2lmaWVk
Rm9udFNpemUoKTsKICAgICAgICAgfSBlbHNlIGlmIChpc0F1dG9zaXppbmdDb250YWluZXIoZGVz
Y2VuZGFudCkpIHsKICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBkZXNjZW5kYW50QmxvY2sgPSB0
b1JlbmRlckJsb2NrKGRlc2NlbmRhbnQpOwotICAgICAgICAgICAgaWYgKCFpc0F1dG9zaXppbmdD
bHVzdGVyKGRlc2NlbmRhbnRCbG9jaywgYmxvY2tDb250YWluaW5nQWxsVGV4dCkpCi0gICAgICAg
ICAgICAgICAgbWVhc3VyZURlc2NlbmRhbnRUZXh0V2lkdGgoZGVzY2VuZGFudEJsb2NrLCBibG9j
a0NvbnRhaW5pbmdBbGxUZXh0LCBtaW5UZXh0V2lkdGgsIHRleHRXaWR0aCk7CisgICAgICAgICAg
ICBpZiAoIWlzQXV0b3NpemluZ0NsdXN0ZXIoZGVzY2VuZGFudEJsb2NrLCBjbHVzdGVyKSkKKyAg
ICAgICAgICAgICAgICBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aChkZXNjZW5kYW50QmxvY2ss
IGNsdXN0ZXIsIG1pblRleHRXaWR0aCwgdGV4dFdpZHRoKTsKICAgICAgICAgfQogICAgICAgICBp
ZiAodGV4dFdpZHRoID49IG1pblRleHRXaWR0aCkKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCmluZGV4IGUxYzIyYWViOWRiM2JjOTlj
OGI3M2UxYjA2ODljNGY2YTE3MDZjZmEuLjk0ODNmYzZlYWYwZmFiOTFlNjIyZGRmNGUyYTFmZWM5
NDU5NWI3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3Np
emVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAt
MzksNiArMzksNyBAQCBjbGFzcyBSZW5kZXJCbG9jazsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNs
YXNzIFJlbmRlclRleHQ7CiBzdHJ1Y3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvOworc3RydWN0
IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm87CiAKIGNsYXNzIFRleHRBdXRvc2l6ZXIgewogICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFRleHRBdXRvc2l6ZXIpOwpAQCAtNjAsMjEgKzYxLDIxIEBA
IHByaXZhdGU6CiAKICAgICBleHBsaWNpdCBUZXh0QXV0b3NpemVyKERvY3VtZW50Kik7CiAKLSAg
ICB2b2lkIHByb2Nlc3NDbHVzdGVyKFJlbmRlckJsb2NrKiBjbHVzdGVyLCBSZW5kZXJCbG9jayog
Y29udGFpbmVyLCBSZW5kZXJPYmplY3QqIHN1YnRyZWVSb290LCBjb25zdCBUZXh0QXV0b3Npemlu
Z1dpbmRvd0luZm8mKTsKLSAgICB2b2lkIHByb2Nlc3NDb250YWluZXIoZmxvYXQgbXVsdGlwbGll
ciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFp
bmluZ0FsbFRleHQsIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRvc2l6
aW5nV2luZG93SW5mbyYpOworICAgIHZvaWQgcHJvY2Vzc0NsdXN0ZXIoVGV4dEF1dG9zaXppbmdD
bHVzdGVySW5mbyosIFJlbmRlckJsb2NrKiBjb250YWluZXIsIFJlbmRlck9iamVjdCogc3VidHJl
ZVJvb3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYpOworICAgIHZvaWQgcHJvY2Vz
c0NvbnRhaW5lcihmbG9hdCBtdWx0aXBsaWVyLCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBUZXh0
QXV0b3NpemluZ0NsdXN0ZXJJbmZvJiwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCwgY29uc3Qg
VGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJik7CiAKICAgICB2b2lkIHNldE11bHRpcGxpZXIoUmVu
ZGVyT2JqZWN0KiwgZmxvYXQpOwogCiAgICAgc3RhdGljIGJvb2wgaXNBdXRvc2l6aW5nQ29udGFp
bmVyKGNvbnN0IFJlbmRlck9iamVjdCopOwotICAgIHN0YXRpYyBib29sIGlzQXV0b3NpemluZ0Ns
dXN0ZXIoY29uc3QgUmVuZGVyQmxvY2sqLCBjb25zdCBSZW5kZXJCbG9jayogcGFyZW50QmxvY2tD
b250YWluaW5nQWxsVGV4dCk7CisgICAgc3RhdGljIGJvb2wgaXNBdXRvc2l6aW5nQ2x1c3Rlcihj
b25zdCBSZW5kZXJCbG9jayosIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8mIHBhcmVudENsdXN0
ZXJJbmZvKTsKICAgICBzdGF0aWMgYm9vbCBpc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJlbmRl
ck9iamVjdCopOwogCiAgICAgc3RhdGljIGJvb2wgY29udGFpbmVyU2hvdWxkQmVBdXRvc2l6ZWQo
Y29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY29udGFpbmVy
Q29udGFpbnNPbmVPZlRhZ3MoY29uc3QgUmVuZGVyQmxvY2sqIGNsdXN0ZXIsIGNvbnN0IFZlY3Rv
cjxRdWFsaWZpZWROYW1lPiYgdGFncyk7CiAgICAgc3RhdGljIGJvb2wgY29udGFpbmVySXNSb3dP
ZkxpbmtzKGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyKTsKICAgICBzdGF0aWMgYm9vbCBj
b250ZW50SGVpZ2h0SXNDb25zdHJhaW5lZChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyKTsK
LSAgICBzdGF0aWMgYm9vbCBjbHVzdGVyU2hvdWxkQmVBdXRvc2l6ZWQoY29uc3QgUmVuZGVyQmxv
Y2sqIGJsb2NrQ29udGFpbmluZ0FsbFRleHQsIGZsb2F0IGJsb2NrV2lkdGgpOwotICAgIHN0YXRp
YyB2b2lkIG1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250
YWluZXIsIGNvbnN0IFJlbmRlckJsb2NrKiBibG9ja0NvbnRhaW5pbmdBbGxUZXh0LCBmbG9hdCBt
aW5UZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpOworICAgIHN0YXRpYyBib29sIGNsdXN0ZXJT
aG91bGRCZUF1dG9zaXplZChUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvJiwgZmxvYXQgYmxvY2tX
aWR0aCk7CisgICAgc3RhdGljIHZvaWQgbWVhc3VyZURlc2NlbmRhbnRUZXh0V2lkdGgoY29uc3Qg
UmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyYsIGZsb2F0
IG1pblRleHRXaWR0aCwgZmxvYXQmIHRleHRXaWR0aCk7CiAKICAgICAvLyBVc2UgdG8gdHJhdmVy
c2UgdGhlIHRyZWUgb2YgZGVzY2VuZGFudHMsIGV4Y2x1ZGluZyBkZXNjZW5kYW50cyBvZiBjb250
YWluZXJzIChidXQgcmV0dXJuaW5nIHRoZSBjb250YWluZXJzIHRoZW1zZWx2ZXMpLgogICAgIHN0
YXRpYyBSZW5kZXJPYmplY3QqIG5leHRJblByZU9yZGVyU2tpcHBpbmdEZXNjZW5kYW50c09mQ29u
dGFpbmVycyhjb25zdCBSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3QqIHN0YXlXaXRo
aW4pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDkxYzE2YTczNjUwZjIxYWEzNTY0OTM2NmJjODcyZDVkNjRlMWY3ZTYuLjk5
NjFkNjc4N2Q1N2I0MmQxM2U0ZjM0OTY3YjM4MWU3NmJkM2JhYjIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMy0wMS0zMCAgQW50b24gVmF5dm9kICA8YXZheXZvZEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgVGV4dEF1dG9zaXppbmc6IGFkanVzdCB0aGUgbWF4aW11bSBkaWZmZXJlbmNlIGJl
dHdlZW4gY2x1c3RlciB0ZXh0IHdpZHRoIGFuZCBpdHMgZGVzY2VuZGFudCB3aWR0aAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NDExCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0
b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAxLTMw
ICBEb21pbmlrIFLDtnR0c2NoZXMgIDxkb21pbmlrLnJvdHRzY2hlc0BpbnRlbC5jb20+CiAKICAg
ICAgICAgW0VGTF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZlYTlmOTE0NWQ5MzRjZjg0MTk4NjUxMWExMGM5NTkyZmJkYTgyODMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hp
bGQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgor
PHN0eWxlPgoraHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsg
bWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxi
b2R5PgorCis8ZGl2IHN0eWxlPSJmb250LXNpemU6IDIuNXJlbSI+CisgICAgPGRpdiBzdHlsZT0i
d2lkdGg6IDYwMHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8g
NDBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0
ZXIgYXMgdGhlIHBhcmVudCBkaXYuPGJyPgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9y
IGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+
CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDU1MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3Vs
ZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUsIHNpbmNlIGl0J3Mgb25s
eSA1MHB4IG5hcnJvd2VyIHRoYW4gdGhlIHByZXZpb3VzIGNoaWxkIGFuZCB0aGVyZWZvcmUgcmVt
YWlucyB0aGUgcGFydCBvZiB0aGUgc2FtZSBjbHVzdGVyLgorICAgIDwvZGl2PgorICAgIDxkaXYg
c3R5bGU9IndpZHRoOiAzMjBweDsgZm9udC1zaXplOiAxcmVtIj4KKyAgICAgICAgVGhpcyB0ZXh0
IGlzIG5vdCBhdXRvc2l6ZWQgc2luY2UgaXQncyB0b28gbmFycm93IGFuZCBpcyBjb25zaWRlcmVk
IHRvIGJlIGEgc2VwYXJhdGUgYXV0b3NpemluZyBjbHVzdGVyLgorICAgIDwvZGl2PgorPC9kaXY+
CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL25lc3RlZC1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9z
aXppbmcvbmVzdGVkLWNoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjViMTkzZWFiZjE5ZDVhMTllNTA2
NDc4N2JkYmUyN2Y4NGY1ZWEwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
dGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPTgwMCI+Cis8c3R5bGU+CitodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Citib2R5
IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQorPC9zdHls
ZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQodHJ1ZSk7CisgICAgd2luZG93
LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgz
MjAsIDQ4MCk7Cit9IGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlICYmIGNvbnNvbGUud2Fybikgewor
ICAgIGNvbnNvbGUud2FybigiVGhpcyB0ZXN0IGRlcGVuZHMgb24gdGhlIFRleHQgQXV0b3Npemlu
ZyBzZXR0aW5nIGJlaW5nIHRydWUsIHNvIHJ1biBpdCBpbiBEdW1wUmVuZGVyVHJlZSwgb3IgbWFu
dWFsbHkgZW5hYmxlIFRleHQgQXV0b3NpemluZywgYW5kIGVpdGhlciB1c2UgYSBtb2JpbGUgZGV2
aWNlIHdpdGggMzIwcHggZGV2aWNlLXdpZHRoIChsaWtlIE5leHVzIFMgb3IgaVBob25lKSwgb3Ig
ZGVmaW5lIEhBQ0tfRk9SQ0VfVEVYVF9BVVRPU0laSU5HX09OX0RFU0tUT1AuIik7Cit9Cis8L3Nj
cmlwdD4KKworPC9oZWFkPgorPGJvZHk+CisKKzxkaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6
IDYwMHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBj
b21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0ZXIgYXMg
dGhlIHBhcmVudCBkaXYuPGJyPgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwg
Y29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lk
aWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+CisgICAg
PGRpdiBzdHlsZT0id2lkdGg6IDU1MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBh
dXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUsIHNpbmNlIGl0J3Mgb25seSA1MHB4
IG5hcnJvd2VyIHRoYW4gdGhlIHByZXZpb3VzIGNoaWxkIGFuZCB0aGVyZWZvcmUgcmVtYWlucyB0
aGUgcGFydCBvZiB0aGUgc2FtZSBjbHVzdGVyLgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAzMjBweCI+CisgICAgICAgIFRoaXMgdGV4dCBpcyBub3QgYXV0b3NpemVkIHNpbmNl
IGl0J3MgdG9vIG5hcnJvdyBhbmQgaXMgY29uc2lkZXJlZCB0byBiZSBhIHNlcGFyYXRlIGF1dG9z
aXppbmcgY2x1c3Rlci4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186169</attachid>
            <date>2013-02-01 15:39:58 -0800</date>
            <delta_ts>2013-02-04 09:27:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108411-20130201233640.patch</filename>
            <type>text/plain</type>
            <size>13935</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTU4ZWZiOGMyYjcyNDZi
ZDM3NTM1MzRjYWVhNzUwY2JkM2VjZGQ1Yy4uMGNlMzk5MzViMzE1YzY0ZmFhYjFkN2FkYmJmYzhl
NWU4Mjk5ZWZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEzLTAyLTAxICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKyAgICAgICAgVGV4dEF1dG9zaXppbmc6
IGFkanVzdCB0aGUgbWF4aW11bSB3aWR0aCBkaWZmZXJlbmNlIGJldHdlZW4gYSBuYXJyb3cgZGVz
Y2VuZGFudCBhbmQgaXRzIHBhcmVudCBjbHVzdGVyJ3MgdGV4dCB3aWR0aC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODQxMQorCisgICAgICAgIFRo
aXMgYWxsb3dzIGxheW91dHMgbGlrZSBuZXN0ZWQgY29tbWVudHMgdG8gYmUgaGFuZGxlZCBiZXR0
ZXI6IGRlZXAgdGhyZWFkcyBhcmUgc3RpbGwgY29uc2lkZXJlZCB0byBiZSBhIHBhcnQKKyAgICAg
ICAgb2YgdGhlIHNhbWUgY2x1c3RlciBhbmQgdGhlIGZvbnQgaXMgYm9vc3RlZCBlcXVhbGx5IGZv
ciBhbGwgdGhlIGFycm93IG5vZGVzLgorICAgICAgICAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgICAgICAgICBmYXN0L3Rl
eHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1Rl
eHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXppbmdDbHVzdGVy
SW5mbzo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyk6CisKKyAgICAgICAgICAgIEFkZGVkIGEg
bmV3IGZpZWxkIHRvIHN0b3JlIHRoZSBjdXJyZW50IG1heGltdW0gd2lkdGggZGlmZmVyZW5jZSBm
b3IgdGhlIGNsdXN0ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nl
c3NDb250YWluZXIpOiBOb24tY29uc3QgcmVmZXJlbmNlIHBhc3NlZCB0byB0aGUgbWV0aG9kLgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcik6CisK
KyAgICAgICAgICAgIFVzZXMgdGhlIG5ldyBmaWVsZCB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJl
bnQgbm9kZSBpcyBhIHNlcGFyYXRlIGNsdXN0ZXIsCisgICAgICAgICAgICB1cGRhdGVzIHRoZSBt
YXhpbXVtIGFsbG93ZWQgd2lkdGggZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBjbHVzdGVyIGFuZCBp
dHMgZGVzY2VuZGFudC4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6Y2x1c3Rl
clNob3VsZEJlQXV0b3NpemVkKTogTm9uLWNvbnN0IHJlZmVyZW5jZSBwYXNzZWQgdG8gdGhlIG1l
dGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6Om1lYXN1cmVEZXNjZW5kYW50
VGV4dFdpZHRoKTogTm9uLWNvbnN0IHJlZmVyZW5jZSBwYXNzZWQgdG8gdGhlIG1ldGhvZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOiB1cGRhdGVkIG1ldGhvZCBwYXJhbWV0
ZXJzLgorCisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbzo6VGV4dEF1dG9zaXppbmdDbHVzdGVy
SW5mbyk6CisgICAgICAgIChUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc1N1YnRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NsdXN0ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDbHVzdGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OmNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZCk6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjptZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aCk6
CisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorCisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbzo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5m
byk6CisgICAgICAgIChUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0QXV0b3NpemVyOjpjbHVzdGVyU2hvdWxkQmVBdXRvc2l6ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dEF1dG9zaXplcjo6bWVhc3VyZURlc2NlbmRhbnRUZXh0V2lkdGgpOgorICAgICAgICAq
IHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmg6CisKIDIwMTMtMDItMDEgIFBhdmVsIEZlbGRtYW4g
IDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVsYXgg
Z290byBmaWxlIG1hdGNoaW5nIGFnYWluLgpAQCAtMzU4Nyw2ICszNjM3LDE5IEBACiAgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKICAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaDoKIAorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm86OlRleHRBdXRvc2l6aW5nQ2x1
c3RlckluZm8pOgorICAgICAgICAoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NTdWJ0
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpjbHVzdGVyU2hvdWxkQmVBdXRvc2l6ZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6bWVhc3VyZURlc2NlbmRhbnRUZXh0V2lk
dGgpOgorICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmg6CisgICAgICAgIChXZWJD
b3JlKToKKwogMjAxMy0wMS0zMCAgRG9taW5payBSw7Z0dHNjaGVzICA8ZG9taW5pay5yb3R0c2No
ZXNAaW50ZWwuY29tPgogCiAgICAgICAgIFtIYXJmQnV6el0gTmFtaW5nIGZpeGVzIGFmdGVyIHJl
bW92aW5nIG9sZCBIYXJmQnV6eiBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5jcHAKaW5kZXggNjZjNTM0OTEwZGM2YTg5NTIwYTRlNjE3OGQ1NjQyNzU0N2RhYjRk
MS4uNmM0MzMwZmU1MTk5MzBjZDk3Zjk3ZDc5NTIzZDYxNzYzMjlhOGUyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtNTEsMTEgKzUxLDEzIEBAIHN0
cnVjdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvIHsKICAgICBleHBsaWNpdCBUZXh0QXV0b3Np
emluZ0NsdXN0ZXJJbmZvKFJlbmRlckJsb2NrKiByb290KQogICAgICAgICA6IHJvb3Qocm9vdCkK
ICAgICAgICAgLCBibG9ja0NvbnRhaW5pbmdBbGxUZXh0KDApCisgICAgICAgICwgbWF4QWxsb3dl
ZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRoKDE1MCkKICAgICB7CiAgICAgfQogCiAgICAgUmVuZGVy
QmxvY2sqIHJvb3Q7CiAgICAgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0FsbFRl
eHQ7CisgICAgZmxvYXQgbWF4QWxsb3dlZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRoOwogfTsKIAog
CkBAIC0xNDcsNyArMTQ5LDcgQEAgdm9pZCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzQ2x1c3RlcihU
ZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBjbHVzdGVySW5mbywgUmVuZGUKICAgICBwcm9jZXNz
Q29udGFpbmVyKG11bHRpcGxpZXIsIGNvbnRhaW5lciwgY2x1c3RlckluZm8sIHN1YnRyZWVSb290
LCB3aW5kb3dJbmZvKTsKIH0KIAotdm9pZCBUZXh0QXV0b3NpemVyOjpwcm9jZXNzQ29udGFpbmVy
KGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBjb250YWluZXIsIGNvbnN0IFRleHRBdXRv
c2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBSZW5kZXJPYmplY3QqIHN1YnRyZWVSb290
LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8mIHdpbmRvd0luZm8pCit2b2lkIFRleHRB
dXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIoZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxvY2sq
IGNvbnRhaW5lciwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyogY2x1c3RlckluZm8sIFJlbmRl
ck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYgd2lu
ZG93SW5mbykKIHsKICAgICBBU1NFUlQoaXNBdXRvc2l6aW5nQ29udGFpbmVyKGNvbnRhaW5lcikp
OwogCkBAIC0yMzAsNyArMjMyLDcgQEAgYm9vbCBUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdD
b250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJlbmRl
ckJsb2NrKiByZW5kZXJlciwgY29uc3QgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyogcGFyZW50
Q2x1c3RlckluZm8pCitib29sIFRleHRBdXRvc2l6ZXI6OmlzQXV0b3NpemluZ0NsdXN0ZXIoY29u
c3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyLCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBwYXJl
bnRDbHVzdGVySW5mbykKIHsKICAgICAvLyAiQXV0b3NpemluZyBjbHVzdGVycyIgYXJlIHNwZWNp
YWwgYXV0b3NpemluZyBjb250YWluZXJzIHdpdGhpbiB3aGljaCB3ZQogICAgIC8vIHdhbnQgdG8g
ZW5mb3JjZSBhIHVuaWZvcm0gdGV4dCBzaXplIG11bHRpcGxpZXIsIGluIHRoZSBob3BlcyBvZiBt
YWtpbmcKQEAgLTI1NiwxNSArMjU4LDIwIEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6
aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIsIGNvbnN0IFRleHRBCiAgICAg
Ly8gc2luY2UgdGhleSBuZWVkIHNwZWNpYWwgdHJlYXRtZW50IGR1ZSB0byB0aGVpciB3aWR0aC4K
ICAgICBBU1NFUlQoaXNBdXRvc2l6aW5nQ29udGFpbmVyKHJlbmRlcmVyKSk7CiAKLSAgICAvLyBV
cHBlciBsaW1pdCBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aWR0aCBvZiB0aGUgcGFy
ZW50IGJsb2NrIGNvbnRhaW5pbmcgYWxsCi0gICAgLy8gdGV4dCBhbmQgdGhhdCBvZiBhIG5hcnJv
dyBjaGlsZCBiZWZvcmUgdGhlIGNoaWxkIGJlY29tZXMgYSBjbHVzdGVyLgotICAgIGNvbnN0IGZs
b2F0IG1heFdpZHRoRGlmZmVyZW5jZSA9IDIwMDsKLQogICAgIGlmIChwYXJlbnRDbHVzdGVySW5m
by0+YmxvY2tDb250YWluaW5nQWxsVGV4dCkgewogICAgICAgICBmbG9hdCBjb250ZW50V2lkdGgg
PSByZW5kZXJlci0+Y29udGVudExvZ2ljYWxXaWR0aCgpOwogICAgICAgICBmbG9hdCBjbHVzdGVy
VGV4dFdpZHRoID0gcGFyZW50Q2x1c3RlckluZm8tPmJsb2NrQ29udGFpbmluZ0FsbFRleHQtPmNv
bnRlbnRMb2dpY2FsV2lkdGgoKTsKLSAgICAgICAgaWYgKGNvbnRlbnRXaWR0aCA+IGNsdXN0ZXJU
ZXh0V2lkdGggfHwgKGNsdXN0ZXJUZXh0V2lkdGggLSBjb250ZW50V2lkdGgpID4gbWF4V2lkdGhE
aWZmZXJlbmNlKQorICAgICAgICBpZiAoY29udGVudFdpZHRoID4gY2x1c3RlclRleHRXaWR0aCkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIC8vIFVwcGVyIGxpbWl0IG9uIHRo
ZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBwYXJlbnQgYmxvY2sgY29udGFp
bmluZyBhbGwKKyAgICAgICAgLy8gdGV4dCBhbmQgdGhhdCBvZiBhIG5hcnJvdyBjaGlsZCBiZWZv
cmUgdGhlIGNoaWxkIGJlY29tZXMgYSBjbHVzdGVyLgorICAgICAgICBjb25zdCBmbG9hdCBtYXhX
aWR0aERpZmZlcmVuY2VEaWZmZXJlbmNlID0gNTA7CisKKyAgICAgICAgZmxvYXQgd2lkdGhEaWZm
ZXJlbmNlID0gY2x1c3RlclRleHRXaWR0aCAtIGNvbnRlbnRXaWR0aDsKKyAgICAgICAgaWYgKHdp
ZHRoRGlmZmVyZW5jZSAtIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZy
b21UZXh0V2lkdGggPiBtYXhXaWR0aERpZmZlcmVuY2VEaWZmZXJlbmNlKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVy
ZW5jZUZyb21UZXh0V2lkdGggPSBzdGQ6Om1heCh3aWR0aERpZmZlcmVuY2UsIHBhcmVudENsdXN0
ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGgpOwogICAgIH0KIAogICAg
IHJldHVybiByZW5kZXJlci0+aXNSZW5kZXJWaWV3KCkKQEAgLTM3OCw3ICszODUsNyBAQCBib29s
IFRleHRBdXRvc2l6ZXI6OmNvbnRlbnRIZWlnaHRJc0NvbnN0cmFpbmVkKGNvbnN0IFJlbmRlckJs
b2NrKiBjb250YWluZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFRleHRBdXRvc2l6
ZXI6OmNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZChjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJ
bmZvKiBjbHVzdGVySW5mbywgZmxvYXQgYmxvY2tXaWR0aCkKK2Jvb2wgVGV4dEF1dG9zaXplcjo6
Y2x1c3RlclNob3VsZEJlQXV0b3NpemVkKFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0
ZXJJbmZvLCBmbG9hdCBibG9ja1dpZHRoKQogewogICAgIC8vIERvbid0IGF1dG9zaXplIGNsdXN0
ZXJzIHRoYXQgY29udGFpbiBsZXNzIHRoYW4gNCBsaW5lcyBvZiB0ZXh0IChpbgogICAgIC8vIHBy
YWN0aWNlIGxlc3MgbGluZXMgYXJlIHJlcXVpcmVkLCBzaW5jZSBtZWFzdXJlRGVzY2VuZGFudFRl
eHRXaWR0aApAQCAtMzk5LDcgKzQwNiw3IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6Y2x1c3RlclNo
b3VsZEJlQXV0b3NpemVkKGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFRleHRBdXRvc2l6ZXI6Om1lYXN1cmVEZXNjZW5kYW50
VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIsIGNvbnN0IFRleHRBdXRvc2l6
aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0JiB0
ZXh0V2lkdGgpCit2b2lkIFRleHRBdXRvc2l6ZXI6Om1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRo
KGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8q
IGNsdXN0ZXJJbmZvLCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpCiB7CiAg
ICAgYm9vbCBza2lwTG9jYWxUZXh0ID0gIWNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnRh
aW5lcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3Np
emVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCmluZGV4IDMw
MzdiZjIwZGY3NTA5ZDRlYmM4M2U3MDY3ZDYxMGJkY2YzMTNkYTEuLjE2NmUwNTZkMTFiZDNmN2Jk
N2U2MmJlNWUyNTZkZDJlYjNiODRkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRB
dXRvc2l6ZXIuaApAQCAtNjIsMjAgKzYyLDIwIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgVGV4
dEF1dG9zaXplcihEb2N1bWVudCopOwogCiAgICAgdm9pZCBwcm9jZXNzQ2x1c3RlcihUZXh0QXV0
b3NpemluZ0NsdXN0ZXJJbmZvKiwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgUmVuZGVyT2JqZWN0
KiBzdWJ0cmVlUm9vdCwgY29uc3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJik7Ci0gICAgdm9p
ZCBwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBjb250YWlu
ZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBSZW5kZXJPYmplY3QqIHN1YnRy
ZWVSb290LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8mKTsKKyAgICB2b2lkIHByb2Nl
c3NDb250YWluZXIoZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgVGV4
dEF1dG9zaXppbmdDbHVzdGVySW5mbyosIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0
IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYpOwogCiAgICAgdm9pZCBzZXRNdWx0aXBsaWVyKFJl
bmRlck9iamVjdCosIGZsb2F0KTsKIAogICAgIHN0YXRpYyBib29sIGlzQXV0b3NpemluZ0NvbnRh
aW5lcihjb25zdCBSZW5kZXJPYmplY3QqKTsKLSAgICBzdGF0aWMgYm9vbCBpc0F1dG9zaXppbmdD
bHVzdGVyKGNvbnN0IFJlbmRlckJsb2NrKiwgY29uc3QgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5m
byogcGFyZW50Q2x1c3RlckluZm8pOworICAgIHN0YXRpYyBib29sIGlzQXV0b3NpemluZ0NsdXN0
ZXIoY29uc3QgUmVuZGVyQmxvY2sqLCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBwYXJlbnRD
bHVzdGVySW5mbyk7CiAgICAgc3RhdGljIGJvb2wgaXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBS
ZW5kZXJPYmplY3QqKTsKIAogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lclNob3VsZEJlQXV0b3Np
emVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpOwogICAgIHN0YXRpYyBib29sIGNvbnRh
aW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJlbmRlckJsb2NrKiBjbHVzdGVyLCBjb25zdCBW
ZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3MpOwogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lcklz
Um93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJv
b2wgY29udGVudEhlaWdodElzQ29uc3RyYWluZWQoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5l
cik7Ci0gICAgc3RhdGljIGJvb2wgY2x1c3RlclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFRleHRB
dXRvc2l6aW5nQ2x1c3RlckluZm8qLCBmbG9hdCBibG9ja1dpZHRoKTsKLSAgICBzdGF0aWMgdm9p
ZCBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVy
LCBjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiwgZmxvYXQgbWluVGV4dFdpZHRoLCBm
bG9hdCYgdGV4dFdpZHRoKTsKKyAgICBzdGF0aWMgYm9vbCBjbHVzdGVyU2hvdWxkQmVBdXRvc2l6
ZWQoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyosIGZsb2F0IGJsb2NrV2lkdGgpOworICAgIHN0
YXRpYyB2b2lkIG1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBj
b250YWluZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBmbG9hdCBtaW5UZXh0V2lkdGgs
IGZsb2F0JiB0ZXh0V2lkdGgpOwogCiAgICAgLy8gVXNlIHRvIHRyYXZlcnNlIHRoZSB0cmVlIG9m
IGRlc2NlbmRhbnRzLCBleGNsdWRpbmcgZGVzY2VuZGFudHMgb2YgY29udGFpbmVycyAoYnV0IHJl
dHVybmluZyB0aGUgY29udGFpbmVycyB0aGVtc2VsdmVzKS4KICAgICBzdGF0aWMgUmVuZGVyT2Jq
ZWN0KiBuZXh0SW5QcmVPcmRlclNraXBwaW5nRGVzY2VuZGFudHNPZkNvbnRhaW5lcnMoY29uc3Qg
UmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBl
YzY5Nzg5MDVlYjE3YWRjOGYyMDE3NDgzODg4YWU0ZmYzNGM3MjZjLi44OTAxYWIyMTgyMGM3OTVm
ZjM1YmM0NzIwMDE0NzQxMDIwOWY3OWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDIt
MDEgIEFudG9uIFZheXZvZCAgPGF2YXl2b2RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRleHRB
dXRvc2l6aW5nOiBhZGp1c3QgdGhlIG1heGltdW0gZGlmZmVyZW5jZSBiZXR3ZWVuIGNsdXN0ZXIg
dGV4dCB3aWR0aCBhbmQgaXRzIGRlc2NlbmRhbnQgd2lkdGguCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg0MTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyB0aGF0IGNlcnRhaW4gd2lkdGggZGlm
ZmVyZW5jZSBkb2Vzbid0IG1ha2UgZGVzY2VuZGFudHMgc2VwYXJhdGUgY2x1c3RlcnMuCisKKyAg
ICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0bWw6
IEFkZGVkLgorCiAyMDEzLTAyLTAxICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbGF4IGdvdG8gZmlsZSBtYXRjaGluZyBh
Z2Fpbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3Rl
ZC1jaGlsZC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
bmVzdGVkLWNoaWxkLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVhOWY5MTQ1ZDkzNGNmODQx
OTg2NTExYTEwYzk1OTJmYmRhODI4MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmll
d3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+Cis8c3R5bGU+CitodG1sIHsgZm9udC1zaXplOiAx
NnB4OyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRl
bjsgfQorPC9zdHlsZT4KKworPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgc3R5bGU9ImZvbnQtc2l6
ZTogMi41cmVtIj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNjAwcHgiPgorICAgICAgICBUaGlz
IHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBp
dCBpcyBhIHBhcnQgb2YgdGhlIHNhbWUgY2x1c3RlciBhcyB0aGUgcGFyZW50IGRpdi48YnI+Cisg
ICAgICAgIExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2lu
ZyBlbGl0LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9s
b3JlIG1hZ25hIGFsaXF1YS4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTUw
cHgiPgorICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1
dGVkIGZvbnQtc2l6ZSwgc2luY2UgaXQncyBvbmx5IDUwcHggbmFycm93ZXIgdGhhbiB0aGUgcHJl
dmlvdXMgY2hpbGQgYW5kIHRoZXJlZm9yZSByZW1haW5zIHRoZSBwYXJ0IG9mIHRoZSBzYW1lIGNs
dXN0ZXIuCisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDMyMHB4OyBmb250LXNp
emU6IDFyZW0iPgorICAgICAgICBUaGlzIHRleHQgaXMgbm90IGF1dG9zaXplZCBzaW5jZSBpdCdz
IHRvbyBuYXJyb3cgYW5kIGlzIGNvbnNpZGVyZWQgdG8gYmUgYSBzZXBhcmF0ZSBhdXRvc2l6aW5n
IGNsdXN0ZXIuCisgICAgPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yNWIxOTNlYWJmMTlkNWExOWU1MDY0Nzg3YmRiZTI3Zjg0ZjVlYTA4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxk
Lmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ODAwIj4KKzxzdHlsZT4KK2h0
bWwgeyBmb250LXNpemU6IDE2cHg7IH0KK2JvZHkgeyB3aWR0aDogODAwcHg7IG1hcmdpbjogMDsg
b3ZlcmZsb3cteTogaGlkZGVuOyB9Cis8L3N0eWxlPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRleHRBdXRvc2l6
aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFRleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKDMyMCwgNDgwKTsKK30gZWxzZSBpZiAod2luZG93
LmNvbnNvbGUgJiYgY29uc29sZS53YXJuKSB7CisgICAgY29uc29sZS53YXJuKCJUaGlzIHRlc3Qg
ZGVwZW5kcyBvbiB0aGUgVGV4dCBBdXRvc2l6aW5nIHNldHRpbmcgYmVpbmcgdHJ1ZSwgc28gcnVu
IGl0IGluIER1bXBSZW5kZXJUcmVlLCBvciBtYW51YWxseSBlbmFibGUgVGV4dCBBdXRvc2l6aW5n
LCBhbmQgZWl0aGVyIHVzZSBhIG1vYmlsZSBkZXZpY2Ugd2l0aCAzMjBweCBkZXZpY2Utd2lkdGgg
KGxpa2UgTmV4dXMgUyBvciBpUGhvbmUpLCBvciBkZWZpbmUgSEFDS19GT1JDRV9URVhUX0FVVE9T
SVpJTkdfT05fREVTS1RPUC4iKTsKK30KKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keT4KKwor
PGRpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNjAwcHgiPgorICAgICAgICBUaGlzIHRleHQg
c2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVkIGZvbnQtc2l6ZSBhcyBpdCBpcyBh
IHBhcnQgb2YgdGhlIHNhbWUgY2x1c3RlciBhcyB0aGUgcGFyZW50IGRpdi48YnI+CisgICAgICAg
IExvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0
LCBzZWQgZG8gZWl1c21vZCB0ZW1wb3IgaW5jaWRpZHVudCB1dCBsYWJvcmUgZXQgZG9sb3JlIG1h
Z25hIGFsaXF1YS4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IHN0eWxlPSJ3aWR0aDogNTUwcHgiPgor
ICAgICAgICBUaGlzIHRleHQgc2hvdWxkIGJlIGF1dG9zaXplZCB0byA0MHB4IGNvbXB1dGVkIGZv
bnQtc2l6ZSwgc2luY2UgaXQncyBvbmx5IDUwcHggbmFycm93ZXIgdGhhbiB0aGUgcHJldmlvdXMg
Y2hpbGQgYW5kIHRoZXJlZm9yZSByZW1haW5zIHRoZSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0ZXIu
CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDMyMHB4Ij4KKyAgICAgICAgVGhp
cyB0ZXh0IGlzIG5vdCBhdXRvc2l6ZWQgc2luY2UgaXQncyB0b28gbmFycm93IGFuZCBpcyBjb25z
aWRlcmVkIHRvIGJlIGEgc2VwYXJhdGUgYXV0b3NpemluZyBjbHVzdGVyLgorICAgIDwvZGl2Pgor
PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186399</attachid>
            <date>2013-02-04 09:27:24 -0800</date>
            <delta_ts>2013-02-05 06:55:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108411-20130204172403.patch</filename>
            <type>text/plain</type>
            <size>12856</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWRmZDIzN2VhZDZkNGI5
ZmJkNjI4ODM5ZmExOGVkY2RhZGViNjAwOS4uYWRhMzc3MmNhZWEyM2VkYjUwMGM1OTVkMjQ2MDc3
YzBkYmRkOGJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAyLTA0ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKyAgICAgICAgVGV4dEF1dG9zaXppbmc6
IGFkanVzdCB0aGUgbWF4aW11bSB3aWR0aCBkaWZmZXJlbmNlIGJldHdlZW4gYSBuYXJyb3cgZGVz
Y2VuZGFudCBhbmQgaXRzCisgICAgICAgIFRleHRBdXRvc2l6aW5nOiBhZGp1c3QgdGhlIG1heGlt
dW0gZGlmZmVyZW5jZSBiZXR3ZWVuIGNsdXN0ZXIgdGV4dCB3aWR0aCBhbmQgaXRzIGRlc2NlbmRh
bnQgd2lkdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwODQxMQorCisgICAgICAgIEN1cnJlbnRseSwgaWYgYSByZW5kZXIgb2JqZWN0IGlzIG1vcmUg
dGhhbiAyMDBweCBzaG9ydGVyIHRoYW4gaXRzIHBhcmVudCBjbHVzdGVyLCBpdCBiZWNvbWVzCisg
ICAgICAgIGEgc2VwYXJhdGUgYXV0b3NpemluZyBjbHVzdGVyLiBUaGlzIGRvZXNuJ3Qgd29yayB3
ZWxsIGZvciBsYXlvdXRzIHdoZW4gbmFycm93IG5vZGVzIGFyZQorICAgICAgICByZWxhdGVkLCBs
aWtlIG5lc3RlZCBjb21tZW50czogZGVlcGVyIGNvbW1lbnRzIGFyZSBhbGwgc2hvcnRlciB0aGFu
IHRoZSBwYXJlbnQgY2x1c3RlciBhbmQKKyAgICAgICAgYmVjb21lIGF1dG9zaXplZCBkaWZmZXJl
bnRseS4gVG8gYXZvaWQgdGhhdCB0aGUgZGlmZmVyZW5jZSB0aGF0IG1ha2VzIGEgc2hvcnRlciBk
ZXNjZW5kYW50IGEKKyAgICAgICAgbmV3IGF1dG9zaXppbmcgY2x1c3RlciBpcyBhZGp1c3RlZCBl
YWNoIHRpbWUgdGhlIHdpZHRoIGRpZmZlcmVuY2UgaXMgbm90IGdyZWF0ZXIgdGhhbiA1MHB4Cisg
ICAgICAgIGZyb20gdGhlIHByZXZpb3VzIG9uZS4gVGhpcyBhbGxvd3MgbmVzdGVkIGNvbW1lbnRz
LCBmb3IgZXhhbXBsZSwgdG8gcmVtYWluIGEgcGFydCBvZiB0aGUKKyAgICAgICAgcGFyZW50IGNs
dXN0ZXIgYW5kIGJlIGF1dG9zaXplZCB3aXRoIHRoZSBzYW1lIG11bHRpcGxpZXIuCisgICAgICAg
IAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czoK
KyAgICAgICAgICAgICAgICBmYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQuaHRtbAor
CisgICAgICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbzo6VGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyk6
CisKKyAgICAgICAgICAgIEFkZGVkIGEgbmV3IGZpZWxkIHRvIHN0b3JlIHRoZSBjdXJyZW50IG1h
eGltdW0gd2lkdGggZGlmZmVyZW5jZSBmb3IgdGhlIGNsdXN0ZXIuCisKKyAgICAgICAgKFdlYkNv
cmU6OlRleHRBdXRvc2l6ZXI6OmlzQXV0b3NpemluZ0NsdXN0ZXIpOgorCisgICAgICAgICAgICBV
c2VzIHRoZSBuZXcgZmllbGQgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjdXJyZW50IG5vZGUgaXMgYSBz
ZXBhcmF0ZSBjbHVzdGVyLAorICAgICAgICAgICAgdXBkYXRlcyB0aGUgbWF4aW11bSBhbGxvd2Vk
IHdpZHRoIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgY2x1c3RlciBhbmQgaXRzIGRlc2NlbmRhbnQu
CisKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6Y2x1c3RlclNob3VsZEJlQXV0b3NpemVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6ZXI6Om1lYXN1cmVEZXNjZW5kYW50VGV4
dFdpZHRoKToKKworICAgICAgICAgICAgTm9uLWNvbnN0IHJlZmVyZW5jZSBwYXNzZWQgdG8gdGhl
IG1ldGhvZHMgYWJvdmUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oOiB1
cGRhdGVkIG1ldGhvZCBwYXJhbWV0ZXJzLgorCiAyMDEzLTAyLTAzICBLYXNzeSBDb2FuICA8a2Fz
c3ljb2FuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGRzIHVzYWdlIGluc3RydW1lbnRhdGlv
biBmb3IgaW5kZXhlZERCCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4
dEF1dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5j
cHAKaW5kZXggNjZjNTM0OTEwZGM2YTg5NTIwYTRlNjE3OGQ1NjQyNzU0N2RhYjRkMS4uMDM2OWRh
MjUzZWIwODQzNTQyYzA0NDg2ZGFlMjIyZTRhOWYxM2NmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtNTEsMTEgKzUxLDE2IEBAIHN0cnVjdCBUZXh0
QXV0b3NpemluZ0NsdXN0ZXJJbmZvIHsKICAgICBleHBsaWNpdCBUZXh0QXV0b3NpemluZ0NsdXN0
ZXJJbmZvKFJlbmRlckJsb2NrKiByb290KQogICAgICAgICA6IHJvb3Qocm9vdCkKICAgICAgICAg
LCBibG9ja0NvbnRhaW5pbmdBbGxUZXh0KDApCisgICAgICAgICwgbWF4QWxsb3dlZERpZmZlcmVu
Y2VGcm9tVGV4dFdpZHRoKDE1MCkKICAgICB7CiAgICAgfQogCiAgICAgUmVuZGVyQmxvY2sqIHJv
b3Q7CiAgICAgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0FsbFRleHQ7CisKKyAg
ICAvLyBVcHBlciBsaW1pdCBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aWR0aCBvZiBh
IGNsdXN0ZXIncyBibG9jayBjb250YWluaW5nIGFsbAorICAgIC8vIHRleHQgYW5kIHRoYXQgb2Yg
YSBuYXJyb3cgY2hpbGQgYmVmb3JlIHRoZSBjaGlsZCBiZWNvbWVzIGEgc2VwYXJhdGUgY2x1c3Rl
ci4KKyAgICBmbG9hdCBtYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGg7CiB9OwogCiAK
QEAgLTE0Nyw3ICsxNTIsNyBAQCB2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDbHVzdGVyKFRl
eHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBSZW5kZQogICAgIHByb2Nlc3ND
b250YWluZXIobXVsdGlwbGllciwgY29udGFpbmVyLCBjbHVzdGVySW5mbywgc3VidHJlZVJvb3Qs
IHdpbmRvd0luZm8pOwogfQogCi12b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIo
ZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgY29uc3QgVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyogY2x1c3RlckluZm8sIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3Qs
IGNvbnN0IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYgd2luZG93SW5mbykKK3ZvaWQgVGV4dEF1
dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5lcihmbG9hdCBtdWx0aXBsaWVyLCBSZW5kZXJCbG9jayog
Y29udGFpbmVyLCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBjbHVzdGVySW5mbywgUmVuZGVy
T2JqZWN0KiBzdWJ0cmVlUm9vdCwgY29uc3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJiB3aW5k
b3dJbmZvKQogewogICAgIEFTU0VSVChpc0F1dG9zaXppbmdDb250YWluZXIoY29udGFpbmVyKSk7
CiAKQEAgLTIzMCw3ICsyMzUsNyBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmlzQXV0b3NpemluZ0Nv
bnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIHJldHVybiB0cnVlOwog
fQogCi1ib29sIFRleHRBdXRvc2l6ZXI6OmlzQXV0b3NpemluZ0NsdXN0ZXIoY29uc3QgUmVuZGVy
QmxvY2sqIHJlbmRlcmVyLCBjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBwYXJlbnRD
bHVzdGVySW5mbykKK2Jvb2wgVGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25z
dCBSZW5kZXJCbG9jayogcmVuZGVyZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIHBhcmVu
dENsdXN0ZXJJbmZvKQogewogICAgIC8vICJBdXRvc2l6aW5nIGNsdXN0ZXJzIiBhcmUgc3BlY2lh
bCBhdXRvc2l6aW5nIGNvbnRhaW5lcnMgd2l0aGluIHdoaWNoIHdlCiAgICAgLy8gd2FudCB0byBl
bmZvcmNlIGEgdW5pZm9ybSB0ZXh0IHNpemUgbXVsdGlwbGllciwgaW4gdGhlIGhvcGVzIG9mIG1h
a2luZwpAQCAtMjU2LDE1ICsyNjEsMjEgQEAgYm9vbCBUZXh0QXV0b3NpemVyOjppc0F1dG9zaXpp
bmdDbHVzdGVyKGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJlciwgY29uc3QgVGV4dEEKICAgICAv
LyBzaW5jZSB0aGV5IG5lZWQgc3BlY2lhbCB0cmVhdG1lbnQgZHVlIHRvIHRoZWlyIHdpZHRoLgog
ICAgIEFTU0VSVChpc0F1dG9zaXppbmdDb250YWluZXIocmVuZGVyZXIpKTsKIAotICAgIC8vIFVw
cGVyIGxpbWl0IG9uIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBwYXJl
bnQgYmxvY2sgY29udGFpbmluZyBhbGwKLSAgICAvLyB0ZXh0IGFuZCB0aGF0IG9mIGEgbmFycm93
IGNoaWxkIGJlZm9yZSB0aGUgY2hpbGQgYmVjb21lcyBhIGNsdXN0ZXIuCi0gICAgY29uc3QgZmxv
YXQgbWF4V2lkdGhEaWZmZXJlbmNlID0gMjAwOwotCiAgICAgaWYgKHBhcmVudENsdXN0ZXJJbmZv
LT5ibG9ja0NvbnRhaW5pbmdBbGxUZXh0KSB7CiAgICAgICAgIGZsb2F0IGNvbnRlbnRXaWR0aCA9
IHJlbmRlcmVyLT5jb250ZW50TG9naWNhbFdpZHRoKCk7CiAgICAgICAgIGZsb2F0IGNsdXN0ZXJU
ZXh0V2lkdGggPSBwYXJlbnRDbHVzdGVySW5mby0+YmxvY2tDb250YWluaW5nQWxsVGV4dC0+Y29u
dGVudExvZ2ljYWxXaWR0aCgpOwotICAgICAgICBpZiAoY29udGVudFdpZHRoID4gY2x1c3RlclRl
eHRXaWR0aCB8fCAoY2x1c3RlclRleHRXaWR0aCAtIGNvbnRlbnRXaWR0aCkgPiBtYXhXaWR0aERp
ZmZlcmVuY2UpCisgICAgICAgIGlmIChjb250ZW50V2lkdGggPiBjbHVzdGVyVGV4dFdpZHRoKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgLy8gVGhlIHVwcGVyIGxpbWl0IG9u
IGhvdyBtYW55IHBpeGVscyB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBvYmplY3Qgd2lkdGgK
KyAgICAgICAgLy8gYW5kIGl0cyBwYXJlbnQgY2x1c3RlciB3aWR0aCBjYW4gZXhjZWVkIHRoZSBj
dXJyZW50IG1heGltdW0gZGlmZmVyZW5jZQorICAgICAgICAvLyBiZWZvcmUgdGhlIG9iamVjdCBp
cyBjb25zaWRlcmVkIHRvIGJlIGEgc2VwYXJhdGUgYXV0b3NpemluZyBjbHVzdGVyLgorICAgICAg
ICBjb25zdCBmbG9hdCBtYXhXaWR0aERpZmZlcmVuY2VEaWZmZXJlbmNlID0gNTA7CisKKyAgICAg
ICAgZmxvYXQgd2lkdGhEaWZmZXJlbmNlID0gY2x1c3RlclRleHRXaWR0aCAtIGNvbnRlbnRXaWR0
aDsKKyAgICAgICAgaWYgKHdpZHRoRGlmZmVyZW5jZSAtIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhB
bGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGggPiBtYXhXaWR0aERpZmZlcmVuY2VEaWZmZXJl
bmNlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHBhcmVudENsdXN0ZXJJbmZv
LT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGggPSBzdGQ6Om1heCh3aWR0aERpZmZl
cmVuY2UsIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lk
dGgpOwogICAgIH0KIAogICAgIHJldHVybiByZW5kZXJlci0+aXNSZW5kZXJWaWV3KCkKQEAgLTM3
OCw3ICszODksNyBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmNvbnRlbnRIZWlnaHRJc0NvbnN0cmFp
bmVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1ib29sIFRleHRBdXRvc2l6ZXI6OmNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZChjb25zdCBUZXh0
QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBjbHVzdGVySW5mbywgZmxvYXQgYmxvY2tXaWR0aCkKK2Jv
b2wgVGV4dEF1dG9zaXplcjo6Y2x1c3RlclNob3VsZEJlQXV0b3NpemVkKFRleHRBdXRvc2l6aW5n
Q2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBibG9ja1dpZHRoKQogewogICAgIC8vIERv
bid0IGF1dG9zaXplIGNsdXN0ZXJzIHRoYXQgY29udGFpbiBsZXNzIHRoYW4gNCBsaW5lcyBvZiB0
ZXh0IChpbgogICAgIC8vIHByYWN0aWNlIGxlc3MgbGluZXMgYXJlIHJlcXVpcmVkLCBzaW5jZSBt
ZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aApAQCAtMzk5LDcgKzQxMCw3IEBAIGJvb2wgVGV4dEF1
dG9zaXplcjo6Y2x1c3RlclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1
c3RlckluZm8qIGNsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFRleHRBdXRvc2l6ZXI6
Om1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIs
IGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBtaW5U
ZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpCit2b2lkIFRleHRBdXRvc2l6ZXI6Om1lYXN1cmVE
ZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIsIFRleHRBdXRv
c2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0
JiB0ZXh0V2lkdGgpCiB7CiAgICAgYm9vbCBza2lwTG9jYWxUZXh0ID0gIWNvbnRhaW5lclNob3Vs
ZEJlQXV0b3NpemVkKGNvbnRhaW5lcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5oCmluZGV4IDMwMzdiZjIwZGY3NTA5ZDRlYmM4M2U3MDY3ZDYxMGJkY2YzMTNkYTEu
LjE2NmUwNTZkMTFiZDNmN2JkN2U2MmJlNWUyNTZkZDJlYjNiODRkMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtNjIsMjAgKzYyLDIwIEBAIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgVGV4dEF1dG9zaXplcihEb2N1bWVudCopOwogCiAgICAgdm9pZCBwcm9j
ZXNzQ2x1c3RlcihUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiwgUmVuZGVyQmxvY2sqIGNvbnRh
aW5lciwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCwgY29uc3QgVGV4dEF1dG9zaXppbmdXaW5k
b3dJbmZvJik7Ci0gICAgdm9pZCBwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJl
bmRlckJsb2NrKiBjb250YWluZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBS
ZW5kZXJPYmplY3QqIHN1YnRyZWVSb290LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8m
KTsKKyAgICB2b2lkIHByb2Nlc3NDb250YWluZXIoZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxv
Y2sqIGNvbnRhaW5lciwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyosIFJlbmRlck9iamVjdCog
c3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYpOwogCiAgICAgdm9p
ZCBzZXRNdWx0aXBsaWVyKFJlbmRlck9iamVjdCosIGZsb2F0KTsKIAogICAgIHN0YXRpYyBib29s
IGlzQXV0b3NpemluZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqKTsKLSAgICBzdGF0aWMg
Ym9vbCBpc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJlbmRlckJsb2NrKiwgY29uc3QgVGV4dEF1
dG9zaXppbmdDbHVzdGVySW5mbyogcGFyZW50Q2x1c3RlckluZm8pOworICAgIHN0YXRpYyBib29s
IGlzQXV0b3NpemluZ0NsdXN0ZXIoY29uc3QgUmVuZGVyQmxvY2sqLCBUZXh0QXV0b3NpemluZ0Ns
dXN0ZXJJbmZvKiBwYXJlbnRDbHVzdGVySW5mbyk7CiAgICAgc3RhdGljIGJvb2wgaXNBdXRvc2l6
aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKIAogICAgIHN0YXRpYyBib29sIGNvbnRh
aW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpOwogICAg
IHN0YXRpYyBib29sIGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJlbmRlckJsb2Nr
KiBjbHVzdGVyLCBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3MpOwogICAgIHN0YXRp
YyBib29sIGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5l
cik7CiAgICAgc3RhdGljIGJvb2wgY29udGVudEhlaWdodElzQ29uc3RyYWluZWQoY29uc3QgUmVu
ZGVyQmxvY2sqIGNvbnRhaW5lcik7Ci0gICAgc3RhdGljIGJvb2wgY2x1c3RlclNob3VsZEJlQXV0
b3NpemVkKGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBmbG9hdCBibG9ja1dpZHRo
KTsKLSAgICBzdGF0aWMgdm9pZCBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aChjb25zdCBSZW5k
ZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiwgZmxv
YXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4dFdpZHRoKTsKKyAgICBzdGF0aWMgYm9vbCBjbHVz
dGVyU2hvdWxkQmVBdXRvc2l6ZWQoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyosIGZsb2F0IGJs
b2NrV2lkdGgpOworICAgIHN0YXRpYyB2b2lkIG1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNv
bnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBm
bG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpOwogCiAgICAgLy8gVXNlIHRvIHRy
YXZlcnNlIHRoZSB0cmVlIG9mIGRlc2NlbmRhbnRzLCBleGNsdWRpbmcgZGVzY2VuZGFudHMgb2Yg
Y29udGFpbmVycyAoYnV0IHJldHVybmluZyB0aGUgY29udGFpbmVycyB0aGVtc2VsdmVzKS4KICAg
ICBzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0SW5QcmVPcmRlclNraXBwaW5nRGVzY2VuZGFudHNP
ZkNvbnRhaW5lcnMoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5
V2l0aGluKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAyZGViODY3YWZiYWRkMmMzYTUyNWFlM2U2YmRjNmFiNGNlMjU5NWNj
Li5mM2YwMzYwZDgwNGMyMjM2ZmJlOTcyMmY3Mjg1OGQ1OGY4NjAxZGJiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTMtMDItMDQgIEFudG9uIFZheXZvZCAgPGF2YXl2b2RAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFRleHRBdXRvc2l6aW5nOiBhZGp1c3QgdGhlIG1heGltdW0gZGlmZmVyZW5j
ZSBiZXR3ZWVuIGNsdXN0ZXIgdGV4dCB3aWR0aCBhbmQgaXRzIGRlc2NlbmRhbnQgd2lkdGgKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODQxMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIHRoYXQg
Y2VydGFpbiB3aWR0aCBkaWZmZXJlbmNlIGRvZXNuJ3QgbWFrZSBkZXNjZW5kYW50cyBzZXBhcmF0
ZSBjbHVzdGVycy4KKworICAgICAgICAqIGZhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGls
ZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9u
ZXN0ZWQtY2hpbGQuaHRtbDogQWRkZWQuCisKIDIwMTMtMDItMDMgIEhhamltZSBNb3JyaXRhICA8
bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCByZWJh
c2VsaW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9u
ZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL25lc3RlZC1jaGlsZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYTlmOTE0NWQ5MzRj
Zjg0MTk4NjUxMWExMGM5NTkyZmJkYTgyODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbApAQCAtMCww
ICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgoraHRtbCB7IGZvbnQtc2l6
ZTogMTZweDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBo
aWRkZW47IH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSJmb250
LXNpemU6IDIuNXJlbSI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDYwMHB4Ij4KKyAgICAgICAg
VGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUg
YXMgaXQgaXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0ZXIgYXMgdGhlIHBhcmVudCBkaXYuPGJy
PgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlz
aWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0
IGRvbG9yZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6
IDU1MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBj
b21wdXRlZCBmb250LXNpemUsIHNpbmNlIGl0J3Mgb25seSA1MHB4IG5hcnJvd2VyIHRoYW4gdGhl
IHByZXZpb3VzIGNoaWxkIGFuZCB0aGVyZWZvcmUgcmVtYWlucyB0aGUgcGFydCBvZiB0aGUgc2Ft
ZSBjbHVzdGVyLgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAzMjBweDsgZm9u
dC1zaXplOiAxcmVtIj4KKyAgICAgICAgVGhpcyB0ZXh0IGlzIG5vdCBhdXRvc2l6ZWQgc2luY2Ug
aXQncyB0b28gbmFycm93IGFuZCBpcyBjb25zaWRlcmVkIHRvIGJlIGEgc2VwYXJhdGUgYXV0b3Np
emluZyBjbHVzdGVyLgorICAgIDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjViMTkzZWFiZjE5ZDVhMTllNTA2NDc4N2JkYmUyN2Y4NGY1ZWEwOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1j
aGlsZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+Cis8c3R5bGU+
CitodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46
IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0
b3NpemluZ0VuYWJsZWQodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRU
ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4MCk7Cit9IGVsc2UgaWYgKHdp
bmRvdy5jb25zb2xlICYmIGNvbnNvbGUud2FybikgeworICAgIGNvbnNvbGUud2FybigiVGhpcyB0
ZXN0IGRlcGVuZHMgb24gdGhlIFRleHQgQXV0b3NpemluZyBzZXR0aW5nIGJlaW5nIHRydWUsIHNv
IHJ1biBpdCBpbiBEdW1wUmVuZGVyVHJlZSwgb3IgbWFudWFsbHkgZW5hYmxlIFRleHQgQXV0b3Np
emluZywgYW5kIGVpdGhlciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdpdGggMzIwcHggZGV2aWNlLXdp
ZHRoIChsaWtlIE5leHVzIFMgb3IgaVBob25lKSwgb3IgZGVmaW5lIEhBQ0tfRk9SQ0VfVEVYVF9B
VVRPU0laSU5HX09OX0RFU0tUT1AuIik7Cit9Cis8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHk+
CisKKzxkaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDYwMHB4Ij4KKyAgICAgICAgVGhpcyB0
ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQg
aXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0ZXIgYXMgdGhlIHBhcmVudCBkaXYuPGJyPgorICAg
ICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcg
ZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9y
ZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDU1MHB4
Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRl
ZCBmb250LXNpemUsIHNpbmNlIGl0J3Mgb25seSA1MHB4IG5hcnJvd2VyIHRoYW4gdGhlIHByZXZp
b3VzIGNoaWxkIGFuZCB0aGVyZWZvcmUgcmVtYWlucyB0aGUgcGFydCBvZiB0aGUgc2FtZSBjbHVz
dGVyLgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAzMjBweCI+CisgICAgICAg
IFRoaXMgdGV4dCBpcyBub3QgYXV0b3NpemVkIHNpbmNlIGl0J3MgdG9vIG5hcnJvdyBhbmQgaXMg
Y29uc2lkZXJlZCB0byBiZSBhIHNlcGFyYXRlIGF1dG9zaXppbmcgY2x1c3Rlci4KKyAgICA8L2Rp
dj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186618</attachid>
            <date>2013-02-05 06:55:56 -0800</date>
            <delta_ts>2013-03-01 02:52:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108411-20130205145233.patch</filename>
            <type>text/plain</type>
            <size>12874</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdlM2MwNjcwODNmYzlk
YWJmNDUxMzI3ZjNhMjQzZjM0NGJjMDdiYS4uMWYyOWFhMWRiMTgzZWM5NDU0MDBmMmQxMGZlYjA1
NTZjOTU4Mjc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAyLTA1ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBUZXh0QXV0b3Npemlu
ZzogYWRqdXN0IHRoZSBtYXhpbXVtIGRpZmZlcmVuY2UgYmV0d2VlbiBjbHVzdGVyIHRleHQgd2lk
dGggYW5kIGl0cyBkZXNjZW5kYW50CisgICAgICAgIHdpZHRoLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NDExCisKKyAgICAgICAgQ3VycmVudGx5
LCBpZiBhIHJlbmRlciBvYmplY3QgaXMgbW9yZSB0aGFuIDIwMHB4IHNob3J0ZXIgdGhhbiBpdHMg
cGFyZW50IGNsdXN0ZXIsIGl0IGJlY29tZXMKKyAgICAgICAgYSBzZXBhcmF0ZSBhdXRvc2l6aW5n
IGNsdXN0ZXIgKHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1
MTg4KS4gVGhpcworICAgICAgICBkb2Vzbid0IHdvcmsgd2VsbCBmb3IgbGF5b3V0cyB3aGVuIG5h
cnJvdyBub2RlcyBhcmUgcmVsYXRlZCwgbGlrZSBuZXN0ZWQgY29tbWVudHM6IGRlZXBlcgorICAg
ICAgICBjb21tZW50cyBhcmUgYWxsIHNob3J0ZXIgdGhhbiB0aGUgcGFyZW50IGNsdXN0ZXIgYW5k
IGJlY29tZSBhdXRvc2l6ZWQgZGlmZmVyZW50bHkuIFRvIGF2b2lkCisgICAgICAgIHRoYXQgdGhl
IGRpZmZlcmVuY2UgdGhhdCBtYWtlcyBhIHNob3J0ZXIgZGVzY2VuZGFudCBhIG5ldyBhdXRvc2l6
aW5nIGNsdXN0ZXIgaXMgYWRqdXN0ZWQKKyAgICAgICAgZWFjaCB0aW1lIHRoZSB3aWR0aCBkaWZm
ZXJlbmNlIGlzIG5vdCBncmVhdGVyIHRoYW4gNTBweCBmcm9tIHRoZSBwcmV2aW91cyBvbmUuIFRo
aXMgYWxsb3dzCisgICAgICAgIG5lc3RlZCBjb21tZW50cywgZm9yIGV4YW1wbGUsIHRvIHJlbWFp
biBhIHBhcnQgb2YgdGhlIHBhcmVudCBjbHVzdGVyIGFuZCBiZSBhdXRvc2l6ZWQgd2l0aAorICAg
ICAgICB0aGUgc2FtZSBtdWx0aXBsaWVyLgorICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6CisgICAgICAgICAgICAgICAgZmFzdC90
ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9U
ZXh0QXV0b3NpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRBdXRvc2l6aW5nQ2x1c3Rl
ckluZm86OlRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8pOgorCisgICAgICAgICAgICBBZGRlZCBh
IG5ldyBmaWVsZCB0byBzdG9yZSB0aGUgY3VycmVudCBtYXhpbXVtIHdpZHRoIGRpZmZlcmVuY2Ug
Zm9yIHRoZSBjbHVzdGVyLgorCisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjppc0F1
dG9zaXppbmdDbHVzdGVyKToKKworICAgICAgICAgICAgVXNlcyB0aGUgbmV3IGZpZWxkIHRvIGRl
dGVybWluZSBpZiB0aGUgY3VycmVudCBub2RlIGlzIGEgc2VwYXJhdGUgY2x1c3RlciwKKyAgICAg
ICAgICAgIHVwZGF0ZXMgdGhlIG1heGltdW0gYWxsb3dlZCB3aWR0aCBkaWZmZXJlbmNlIGJldHdl
ZW4gdGhlIGNsdXN0ZXIgYW5kIGl0cyBkZXNjZW5kYW50LgorCisgICAgICAgIChXZWJDb3JlOjpU
ZXh0QXV0b3NpemVyOjpwcm9jZXNzQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRB
dXRvc2l6ZXI6OmNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZCk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0QXV0b3NpemVyOjptZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aCk6CisKKyAgICAgICAgICAg
IE5vbi1jb25zdCByZWZlcmVuY2UgcGFzc2VkIHRvIHRoZSBtZXRob2RzIGFib3ZlLgorCisgICAg
ICAgICogcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaDogdXBkYXRlZCBtZXRob2QgcGFyYW1ldGVy
cy4KKwogMjAxMy0wMi0wNSAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MTg2NS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmNwcAppbmRleCA2NmM1MzQ5MTBkYzZhODk1MjBhNGU2
MTc4ZDU2NDI3NTQ3ZGFiNGQxLi4xZTg1NjExNDBhZjk0ZjYwNTk1NTJmY2U2YmY0MTczOTNhNjU3
OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCkBAIC01
MSwxMSArNTEsMTYgQEAgc3RydWN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8gewogICAgIGV4
cGxpY2l0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8oUmVuZGVyQmxvY2sqIHJvb3QpCiAgICAg
ICAgIDogcm9vdChyb290KQogICAgICAgICAsIGJsb2NrQ29udGFpbmluZ0FsbFRleHQoMCkKKyAg
ICAgICAgLCBtYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGgoMTUwKQogICAgIHsKICAg
ICB9CiAKICAgICBSZW5kZXJCbG9jayogcm9vdDsKICAgICBjb25zdCBSZW5kZXJCbG9jayogYmxv
Y2tDb250YWluaW5nQWxsVGV4dDsKKworICAgIC8vIFVwcGVyIGxpbWl0IG9uIHRoZSBkaWZmZXJl
bmNlIGJldHdlZW4gdGhlIHdpZHRoIG9mIHRoZSBjbHVzdGVyJ3MgYmxvY2sgY29udGFpbmluZyBh
bGwKKyAgICAvLyB0ZXh0IGFuZCB0aGF0IG9mIGEgbmFycm93IGNoaWxkIGJlZm9yZSB0aGUgY2hp
bGQgYmVjb21lcyBhIHNlcGFyYXRlIGNsdXN0ZXIuCisgICAgZmxvYXQgbWF4QWxsb3dlZERpZmZl
cmVuY2VGcm9tVGV4dFdpZHRoOwogfTsKIAogCkBAIC0xNDcsNyArMTUyLDcgQEAgdm9pZCBUZXh0
QXV0b3NpemVyOjpwcm9jZXNzQ2x1c3RlcihUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBjbHVz
dGVySW5mbywgUmVuZGUKICAgICBwcm9jZXNzQ29udGFpbmVyKG11bHRpcGxpZXIsIGNvbnRhaW5l
ciwgY2x1c3RlckluZm8sIHN1YnRyZWVSb290LCB3aW5kb3dJbmZvKTsKIH0KIAotdm9pZCBUZXh0
QXV0b3NpemVyOjpwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2Nr
KiBjb250YWluZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZv
LCBSZW5kZXJPYmplY3QqIHN1YnRyZWVSb290LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0lu
Zm8mIHdpbmRvd0luZm8pCit2b2lkIFRleHRBdXRvc2l6ZXI6OnByb2Nlc3NDb250YWluZXIoZmxv
YXQgbXVsdGlwbGllciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgVGV4dEF1dG9zaXppbmdDbHVz
dGVySW5mbyogY2x1c3RlckluZm8sIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRl
eHRBdXRvc2l6aW5nV2luZG93SW5mbyYgd2luZG93SW5mbykKIHsKICAgICBBU1NFUlQoaXNBdXRv
c2l6aW5nQ29udGFpbmVyKGNvbnRhaW5lcikpOwogCkBAIC0yMzAsNyArMjM1LDcgQEAgYm9vbCBU
ZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDb250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJlcikKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBUZXh0QXV0b3NpemVyOjppc0F1
dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJlciwgY29uc3QgVGV4dEF1
dG9zaXppbmdDbHVzdGVySW5mbyogcGFyZW50Q2x1c3RlckluZm8pCitib29sIFRleHRBdXRvc2l6
ZXI6OmlzQXV0b3NpemluZ0NsdXN0ZXIoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyLCBUZXh0
QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBwYXJlbnRDbHVzdGVySW5mbykKIHsKICAgICAvLyAiQXV0
b3NpemluZyBjbHVzdGVycyIgYXJlIHNwZWNpYWwgYXV0b3NpemluZyBjb250YWluZXJzIHdpdGhp
biB3aGljaCB3ZQogICAgIC8vIHdhbnQgdG8gZW5mb3JjZSBhIHVuaWZvcm0gdGV4dCBzaXplIG11
bHRpcGxpZXIsIGluIHRoZSBob3BlcyBvZiBtYWtpbmcKQEAgLTI1NiwxNSArMjYxLDIxIEBAIGJv
b2wgVGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJCbG9jayog
cmVuZGVyZXIsIGNvbnN0IFRleHRBCiAgICAgLy8gc2luY2UgdGhleSBuZWVkIHNwZWNpYWwgdHJl
YXRtZW50IGR1ZSB0byB0aGVpciB3aWR0aC4KICAgICBBU1NFUlQoaXNBdXRvc2l6aW5nQ29udGFp
bmVyKHJlbmRlcmVyKSk7CiAKLSAgICAvLyBVcHBlciBsaW1pdCBvbiB0aGUgZGlmZmVyZW5jZSBi
ZXR3ZWVuIHRoZSB3aWR0aCBvZiB0aGUgcGFyZW50IGJsb2NrIGNvbnRhaW5pbmcgYWxsCi0gICAg
Ly8gdGV4dCBhbmQgdGhhdCBvZiBhIG5hcnJvdyBjaGlsZCBiZWZvcmUgdGhlIGNoaWxkIGJlY29t
ZXMgYSBjbHVzdGVyLgotICAgIGNvbnN0IGZsb2F0IG1heFdpZHRoRGlmZmVyZW5jZSA9IDIwMDsK
LQogICAgIGlmIChwYXJlbnRDbHVzdGVySW5mby0+YmxvY2tDb250YWluaW5nQWxsVGV4dCkgewog
ICAgICAgICBmbG9hdCBjb250ZW50V2lkdGggPSByZW5kZXJlci0+Y29udGVudExvZ2ljYWxXaWR0
aCgpOwogICAgICAgICBmbG9hdCBjbHVzdGVyVGV4dFdpZHRoID0gcGFyZW50Q2x1c3RlckluZm8t
PmJsb2NrQ29udGFpbmluZ0FsbFRleHQtPmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKLSAgICAgICAg
aWYgKGNvbnRlbnRXaWR0aCA+IGNsdXN0ZXJUZXh0V2lkdGggfHwgKGNsdXN0ZXJUZXh0V2lkdGgg
LSBjb250ZW50V2lkdGgpID4gbWF4V2lkdGhEaWZmZXJlbmNlKQorICAgICAgICBpZiAoY29udGVu
dFdpZHRoID4gY2x1c3RlclRleHRXaWR0aCkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgICAgIC8vIFRoZSB1cHBlciBsaW1pdCBvbiBob3cgbWFueSBwaXhlbHMgdGhlIGRpZmZlcmVu
Y2UgYmV0d2VlbiB0aGUgcmVuZGVyZXIgd2lkdGgKKyAgICAgICAgLy8gYW5kIGl0cyBwYXJlbnQg
Y2x1c3RlciB3aWR0aCBjYW4gZXhjZWVkIHRoZSBjdXJyZW50IG1heGltdW0gZGlmZmVyZW5jZSBi
eQorICAgICAgICAvLyBiZWZvcmUgdGhlIG9iamVjdCBpcyBjb25zaWRlcmVkIHRvIGJlIGEgc2Vw
YXJhdGUgYXV0b3NpemluZyBjbHVzdGVyLgorICAgICAgICBjb25zdCBmbG9hdCBtYXhXaWR0aERp
ZmZlcmVuY2VEaWZmZXJlbmNlID0gNTA7CisKKyAgICAgICAgZmxvYXQgd2lkdGhEaWZmZXJlbmNl
ID0gY2x1c3RlclRleHRXaWR0aCAtIGNvbnRlbnRXaWR0aDsKKyAgICAgICAgaWYgKHdpZHRoRGlm
ZmVyZW5jZSAtIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0
V2lkdGggPiBtYXhXaWR0aERpZmZlcmVuY2VEaWZmZXJlbmNlKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZy
b21UZXh0V2lkdGggPSBzdGQ6Om1heCh3aWR0aERpZmZlcmVuY2UsIHBhcmVudENsdXN0ZXJJbmZv
LT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGgpOwogICAgIH0KIAogICAgIHJldHVy
biByZW5kZXJlci0+aXNSZW5kZXJWaWV3KCkKQEAgLTM3OCw3ICszODksNyBAQCBib29sIFRleHRB
dXRvc2l6ZXI6OmNvbnRlbnRIZWlnaHRJc0NvbnN0cmFpbmVkKGNvbnN0IFJlbmRlckJsb2NrKiBj
b250YWluZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFRleHRBdXRvc2l6ZXI6OmNs
dXN0ZXJTaG91bGRCZUF1dG9zaXplZChjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBj
bHVzdGVySW5mbywgZmxvYXQgYmxvY2tXaWR0aCkKK2Jvb2wgVGV4dEF1dG9zaXplcjo6Y2x1c3Rl
clNob3VsZEJlQXV0b3NpemVkKFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZv
LCBmbG9hdCBibG9ja1dpZHRoKQogewogICAgIC8vIERvbid0IGF1dG9zaXplIGNsdXN0ZXJzIHRo
YXQgY29udGFpbiBsZXNzIHRoYW4gNCBsaW5lcyBvZiB0ZXh0IChpbgogICAgIC8vIHByYWN0aWNl
IGxlc3MgbGluZXMgYXJlIHJlcXVpcmVkLCBzaW5jZSBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0
aApAQCAtMzk5LDcgKzQxMCw3IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6Y2x1c3RlclNob3VsZEJl
QXV0b3NpemVkKGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi12b2lkIFRleHRBdXRvc2l6ZXI6Om1lYXN1cmVEZXNjZW5kYW50VGV4dFdp
ZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1
c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lk
dGgpCit2b2lkIFRleHRBdXRvc2l6ZXI6Om1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0
IFJlbmRlckJsb2NrKiBjb250YWluZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0
ZXJJbmZvLCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpCiB7CiAgICAgYm9v
bCBza2lwTG9jYWxUZXh0ID0gIWNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnRhaW5lcik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5oCmluZGV4IDMwMzdiZjIw
ZGY3NTA5ZDRlYmM4M2U3MDY3ZDYxMGJkY2YzMTNkYTEuLjE2NmUwNTZkMTFiZDNmN2JkN2U2MmJl
NWUyNTZkZDJlYjNiODRkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9U
ZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6
ZXIuaApAQCAtNjIsMjAgKzYyLDIwIEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgVGV4dEF1dG9z
aXplcihEb2N1bWVudCopOwogCiAgICAgdm9pZCBwcm9jZXNzQ2x1c3RlcihUZXh0QXV0b3Npemlu
Z0NsdXN0ZXJJbmZvKiwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgUmVuZGVyT2JqZWN0KiBzdWJ0
cmVlUm9vdCwgY29uc3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJik7Ci0gICAgdm9pZCBwcm9j
ZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBjb250YWluZXIsIGNv
bnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBSZW5kZXJPYmplY3QqIHN1YnRyZWVSb290
LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8mKTsKKyAgICB2b2lkIHByb2Nlc3NDb250
YWluZXIoZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgVGV4dEF1dG9z
aXppbmdDbHVzdGVySW5mbyosIFJlbmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRB
dXRvc2l6aW5nV2luZG93SW5mbyYpOwogCiAgICAgdm9pZCBzZXRNdWx0aXBsaWVyKFJlbmRlck9i
amVjdCosIGZsb2F0KTsKIAogICAgIHN0YXRpYyBib29sIGlzQXV0b3NpemluZ0NvbnRhaW5lcihj
b25zdCBSZW5kZXJPYmplY3QqKTsKLSAgICBzdGF0aWMgYm9vbCBpc0F1dG9zaXppbmdDbHVzdGVy
KGNvbnN0IFJlbmRlckJsb2NrKiwgY29uc3QgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyogcGFy
ZW50Q2x1c3RlckluZm8pOworICAgIHN0YXRpYyBib29sIGlzQXV0b3NpemluZ0NsdXN0ZXIoY29u
c3QgUmVuZGVyQmxvY2sqLCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBwYXJlbnRDbHVzdGVy
SW5mbyk7CiAgICAgc3RhdGljIGJvb2wgaXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJP
YmplY3QqKTsKIAogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNv
bnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpOwogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lckNv
bnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJlbmRlckJsb2NrKiBjbHVzdGVyLCBjb25zdCBWZWN0b3I8
UXVhbGlmaWVkTmFtZT4mIHRhZ3MpOwogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lcklzUm93T2ZM
aW5rcyhjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY29u
dGVudEhlaWdodElzQ29uc3RyYWluZWQoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcik7Ci0g
ICAgc3RhdGljIGJvb2wgY2x1c3RlclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFRleHRBdXRvc2l6
aW5nQ2x1c3RlckluZm8qLCBmbG9hdCBibG9ja1dpZHRoKTsKLSAgICBzdGF0aWMgdm9pZCBtZWFz
dXJlRGVzY2VuZGFudFRleHRXaWR0aChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25z
dCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiwgZmxvYXQgbWluVGV4dFdpZHRoLCBmbG9hdCYg
dGV4dFdpZHRoKTsKKyAgICBzdGF0aWMgYm9vbCBjbHVzdGVyU2hvdWxkQmVBdXRvc2l6ZWQoVGV4
dEF1dG9zaXppbmdDbHVzdGVySW5mbyosIGZsb2F0IGJsb2NrV2lkdGgpOworICAgIHN0YXRpYyB2
b2lkIG1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWlu
ZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0
JiB0ZXh0V2lkdGgpOwogCiAgICAgLy8gVXNlIHRvIHRyYXZlcnNlIHRoZSB0cmVlIG9mIGRlc2Nl
bmRhbnRzLCBleGNsdWRpbmcgZGVzY2VuZGFudHMgb2YgY29udGFpbmVycyAoYnV0IHJldHVybmlu
ZyB0aGUgY29udGFpbmVycyB0aGVtc2VsdmVzKS4KICAgICBzdGF0aWMgUmVuZGVyT2JqZWN0KiBu
ZXh0SW5QcmVPcmRlclNraXBwaW5nRGVzY2VuZGFudHNPZkNvbnRhaW5lcnMoY29uc3QgUmVuZGVy
T2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYjRlYzI1
OGZjZGViYjk2Njg0MTc2YWMxODk1NDI3MzMxMjk3YTRjLi5iMjU1M2UzMzU4ZWQxM2U2NzU4YmRl
MzI0ZTJkMDg4ZjY2ODU0NzAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDItMDUgIEFu
dG9uIFZheXZvZCAgPGF2YXl2b2RAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRleHRBdXRvc2l6
aW5nOiBhZGp1c3QgdGhlIG1heGltdW0gZGlmZmVyZW5jZSBiZXR3ZWVuIGNsdXN0ZXIgdGV4dCB3
aWR0aCBhbmQgaXRzIGRlc2NlbmRhbnQKKyAgICAgICAgd2lkdGguCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg0MTEKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyB0aGF0IGNlcnRhaW4gd2lkdGgg
ZGlmZmVyZW5jZSBkb2Vzbid0IG1ha2UgZGVzY2VuZGFudHMgc2VwYXJhdGUgY2x1c3RlcnMuCisK
KyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0
bWw6IEFkZGVkLgorCiAyMDEzLTAyLTA1ICDDgWTDoW0gS2FsbGFpICA8a2FkYW1AaW5mLnUtc3pl
Z2VkLmh1PgogCiAgICAgICAgIFtRdF1bV2syXSBVbnJldmlld2VkIGdhcmRlbmluZy4gQWRkZWQg
cGxhdGZvcm0gc3BlY2lmaWMgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC1leHBlY3RlZC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZlYTlmOTE0NWQ5MzRjZjg0MTk4NjUxMWExMGM5NTkyZmJkYTgyODMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxl
PgoraHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2lu
OiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5Pgor
Cis8ZGl2IHN0eWxlPSJmb250LXNpemU6IDIuNXJlbSI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6
IDYwMHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBj
b21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0ZXIgYXMg
dGhlIHBhcmVudCBkaXYuPGJyPgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwg
Y29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lk
aWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+CisgICAg
PGRpdiBzdHlsZT0id2lkdGg6IDU1MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBh
dXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUsIHNpbmNlIGl0J3Mgb25seSA1MHB4
IG5hcnJvd2VyIHRoYW4gdGhlIHByZXZpb3VzIGNoaWxkIGFuZCB0aGVyZWZvcmUgcmVtYWlucyB0
aGUgcGFydCBvZiB0aGUgc2FtZSBjbHVzdGVyLgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9
IndpZHRoOiAzMjBweDsgZm9udC1zaXplOiAxcmVtIj4KKyAgICAgICAgVGhpcyB0ZXh0IGlzIG5v
dCBhdXRvc2l6ZWQgc2luY2UgaXQncyB0b28gbmFycm93IGFuZCBpcyBjb25zaWRlcmVkIHRvIGJl
IGEgc2VwYXJhdGUgYXV0b3NpemluZyBjbHVzdGVyLgorICAgIDwvZGl2PgorPC9kaXY+CisKKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6
aW5nL25lc3RlZC1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcv
bmVzdGVkLWNoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjViMTkzZWFiZjE5ZDVhMTllNTA2NDc4N2Jk
YmUyN2Y4NGY1ZWEwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1h
dXRvc2l6aW5nL25lc3RlZC1jaGlsZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9Indp
ZHRoPTgwMCI+Cis8c3R5bGU+CitodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Citib2R5IHsgd2lk
dGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQorPC9zdHlsZT4KKwor
PHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQodHJ1ZSk7CisgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4
MCk7Cit9IGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlICYmIGNvbnNvbGUud2FybikgeworICAgIGNv
bnNvbGUud2FybigiVGhpcyB0ZXN0IGRlcGVuZHMgb24gdGhlIFRleHQgQXV0b3NpemluZyBzZXR0
aW5nIGJlaW5nIHRydWUsIHNvIHJ1biBpdCBpbiBEdW1wUmVuZGVyVHJlZSwgb3IgbWFudWFsbHkg
ZW5hYmxlIFRleHQgQXV0b3NpemluZywgYW5kIGVpdGhlciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdp
dGggMzIwcHggZGV2aWNlLXdpZHRoIChsaWtlIE5leHVzIFMgb3IgaVBob25lKSwgb3IgZGVmaW5l
IEhBQ0tfRk9SQ0VfVEVYVF9BVVRPU0laSU5HX09OX0RFU0tUT1AuIik7Cit9Cis8L3NjcmlwdD4K
KworPC9oZWFkPgorPGJvZHk+CisKKzxkaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDYwMHB4
Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRl
ZCBmb250LXNpemUgYXMgaXQgaXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0ZXIgYXMgdGhlIHBh
cmVudCBkaXYuPGJyPgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2Vj
dGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQg
dXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+CisgICAgPGRpdiBz
dHlsZT0id2lkdGg6IDU1MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6
ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUsIHNpbmNlIGl0J3Mgb25seSA1MHB4IG5hcnJv
d2VyIHRoYW4gdGhlIHByZXZpb3VzIGNoaWxkIGFuZCB0aGVyZWZvcmUgcmVtYWlucyB0aGUgcGFy
dCBvZiB0aGUgc2FtZSBjbHVzdGVyLgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRo
OiAzMjBweCI+CisgICAgICAgIFRoaXMgdGV4dCBpcyBub3QgYXV0b3NpemVkIHNpbmNlIGl0J3Mg
dG9vIG5hcnJvdyBhbmQgaXMgY29uc2lkZXJlZCB0byBiZSBhIHNlcGFyYXRlIGF1dG9zaXppbmcg
Y2x1c3Rlci4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186646</attachid>
            <date>2013-02-05 09:32:48 -0800</date>
            <delta_ts>2013-02-05 09:47:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108411-20130205172926.patch</filename>
            <type>text/plain</type>
            <size>12898</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdlM2MwNjcwODNmYzlk
YWJmNDUxMzI3ZjNhMjQzZjM0NGJjMDdiYS4uODMzMGU2YTU5ZTZmZGUyMmNkOWY0MzI5NGZmZjA0
YTZmZThiNmUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAyLTA1ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBUZXh0QXV0b3Npemlu
ZzogYWRqdXN0IHRoZSBtYXhpbXVtIGRpZmZlcmVuY2UgYmV0d2VlbiBjbHVzdGVyIHRleHQgd2lk
dGggYW5kIGl0cyBkZXNjZW5kYW50CisgICAgICAgIHdpZHRoLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NDExCisKKyAgICAgICAgQ3VycmVudGx5
LCBpZiBhIHJlbmRlciBvYmplY3QgaXMgbW9yZSB0aGFuIDIwMCBDU1MgdW5pdHMgc2hvcnRlciB0
aGFuIGl0cyBwYXJlbnQgY2x1c3RlciwgaXQKKyAgICAgICAgYmVjb21lcyBhIHNlcGFyYXRlIGF1
dG9zaXppbmcgY2x1c3RlciAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDUxODgpLgorICAgICAgICBUaGlzIGRvZXNuJ3Qgd29yayB3ZWxsIGZvciBsYXlvdXRz
IHdoZW4gbmFycm93IG5vZGVzIGFyZSByZWxhdGVkLCBsaWtlIG5lc3RlZCBjb21tZW50czoKKyAg
ICAgICAgZGVlcGVyIGNvbW1lbnRzIGFyZSBhbGwgc2hvcnRlciB0aGFuIHRoZSBwYXJlbnQgY2x1
c3RlciBhbmQgYmVjb21lIGF1dG9zaXplZCBkaWZmZXJlbnRseS4gVG8KKyAgICAgICAgYXZvaWQg
dGhhdCB0aGUgZGlmZmVyZW5jZSB0aGF0IG1ha2VzIGEgc2hvcnRlciBkZXNjZW5kYW50IGEgbmV3
IGF1dG9zaXppbmcgY2x1c3RlciBpcworICAgICAgICBhZGp1c3RlZCBlYWNoIHRpbWUgdGhlIHdp
ZHRoIGRpZmZlcmVuY2UgaXMgbm90IGdyZWF0ZXIgdGhhbiA1MCBDU1MgdW5pdHMgZnJvbSB0aGUg
cHJldmlvdXMKKyAgICAgICAgb25lLiBUaGlzIGFsbG93cyBuZXN0ZWQgY29tbWVudHMsIGZvciBl
eGFtcGxlLCB0byByZW1haW4gYSBwYXJ0IG9mIHRoZSBwYXJlbnQgY2x1c3RlciBhbmQgYmUKKyAg
ICAgICAgYXV0b3NpemVkIHdpdGggdGhlIHNhbWUgbXVsdGlwbGllci4KKyAgICAgICAgCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOgorICAgICAg
ICAgICAgICAgIGZhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC5odG1sCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
QXV0b3NpemluZ0NsdXN0ZXJJbmZvOjpUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKToKKworICAg
ICAgICAgICAgQWRkZWQgYSBuZXcgZmllbGQgdG8gc3RvcmUgdGhlIGN1cnJlbnQgbWF4aW11bSB3
aWR0aCBkaWZmZXJlbmNlIGZvciB0aGUgY2x1c3Rlci4KKworICAgICAgICAoV2ViQ29yZTo6VGV4
dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcik6CisKKyAgICAgICAgICAgIFVzZXMgdGhl
IG5ldyBmaWVsZCB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgbm9kZSBpcyBhIHNlcGFyYXRl
IGNsdXN0ZXIsCisgICAgICAgICAgICB1cGRhdGVzIHRoZSBtYXhpbXVtIGFsbG93ZWQgd2lkdGgg
ZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBjbHVzdGVyIGFuZCBpdHMgZGVzY2VuZGFudC4KKworICAg
ICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpjbHVzdGVyU2hvdWxkQmVBdXRvc2l6ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6bWVhc3VyZURlc2NlbmRhbnRUZXh0V2lkdGgp
OgorCisgICAgICAgICAgICBOb24tY29uc3QgcmVmZXJlbmNlIHBhc3NlZCB0byB0aGUgbWV0aG9k
cyBhYm92ZS4KKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVyLmg6IHVwZGF0ZWQg
bWV0aG9kIHBhcmFtZXRlcnMuCisKIDIwMTMtMDItMDUgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5A
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNDE4NjUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAKaW5kZXggNjZjNTM0
OTEwZGM2YTg5NTIwYTRlNjE3OGQ1NjQyNzU0N2RhYjRkMS4uOTFkYmExY2Y1NTE3Yjc0OWQ4ZTIx
Nzk5NjA2MzU2NjdmOGRlZGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0
b3NpemVyLmNwcApAQCAtNTEsMTEgKzUxLDE2IEBAIHN0cnVjdCBUZXh0QXV0b3NpemluZ0NsdXN0
ZXJJbmZvIHsKICAgICBleHBsaWNpdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKFJlbmRlckJs
b2NrKiByb290KQogICAgICAgICA6IHJvb3Qocm9vdCkKICAgICAgICAgLCBibG9ja0NvbnRhaW5p
bmdBbGxUZXh0KDApCisgICAgICAgICwgbWF4QWxsb3dlZERpZmZlcmVuY2VGcm9tVGV4dFdpZHRo
KDE1MCkKICAgICB7CiAgICAgfQogCiAgICAgUmVuZGVyQmxvY2sqIHJvb3Q7CiAgICAgY29uc3Qg
UmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0FsbFRleHQ7CisKKyAgICAvLyBVcHBlciBsaW1p
dCBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aWR0aCBvZiB0aGUgY2x1c3RlcidzIGJs
b2NrIGNvbnRhaW5pbmcgYWxsCisgICAgLy8gdGV4dCBhbmQgdGhhdCBvZiBhIG5hcnJvdyBjaGls
ZCBiZWZvcmUgdGhlIGNoaWxkIGJlY29tZXMgYSBzZXBhcmF0ZSBjbHVzdGVyLgorICAgIGZsb2F0
IG1heEFsbG93ZWREaWZmZXJlbmNlRnJvbVRleHRXaWR0aDsKIH07CiAKIApAQCAtMTQ3LDcgKzE1
Miw3IEBAIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NsdXN0ZXIoVGV4dEF1dG9zaXppbmdD
bHVzdGVySW5mbyogY2x1c3RlckluZm8sIFJlbmRlCiAgICAgcHJvY2Vzc0NvbnRhaW5lcihtdWx0
aXBsaWVyLCBjb250YWluZXIsIGNsdXN0ZXJJbmZvLCBzdWJ0cmVlUm9vdCwgd2luZG93SW5mbyk7
CiB9CiAKLXZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5lcihmbG9hdCBtdWx0aXBs
aWVyLCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJ
bmZvKiBjbHVzdGVySW5mbywgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCwgY29uc3QgVGV4dEF1
dG9zaXppbmdXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKQordm9pZCBUZXh0QXV0b3NpemVyOjpwcm9j
ZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBjb250YWluZXIsIFRl
eHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBSZW5kZXJPYmplY3QqIHN1YnRy
ZWVSb290LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8mIHdpbmRvd0luZm8pCiB7CiAg
ICAgQVNTRVJUKGlzQXV0b3NpemluZ0NvbnRhaW5lcihjb250YWluZXIpKTsKIApAQCAtMjMwLDcg
KzIzNSw3IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ29udGFpbmVyKGNvbnN0
IFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgVGV4
dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJCbG9jayogcmVuZGVy
ZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIHBhcmVudENsdXN0ZXJJbmZvKQor
Ym9vbCBUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJlbmRlckJsb2Nr
KiByZW5kZXJlciwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyogcGFyZW50Q2x1c3RlckluZm8p
CiB7CiAgICAgLy8gIkF1dG9zaXppbmcgY2x1c3RlcnMiIGFyZSBzcGVjaWFsIGF1dG9zaXppbmcg
Y29udGFpbmVycyB3aXRoaW4gd2hpY2ggd2UKICAgICAvLyB3YW50IHRvIGVuZm9yY2UgYSB1bmlm
b3JtIHRleHQgc2l6ZSBtdWx0aXBsaWVyLCBpbiB0aGUgaG9wZXMgb2YgbWFraW5nCkBAIC0yNTYs
MTUgKzI2MSwyMSBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmlzQXV0b3NpemluZ0NsdXN0ZXIoY29u
c3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyLCBjb25zdCBUZXh0QQogICAgIC8vIHNpbmNlIHRoZXkg
bmVlZCBzcGVjaWFsIHRyZWF0bWVudCBkdWUgdG8gdGhlaXIgd2lkdGguCiAgICAgQVNTRVJUKGlz
QXV0b3NpemluZ0NvbnRhaW5lcihyZW5kZXJlcikpOwogCi0gICAgLy8gVXBwZXIgbGltaXQgb24g
dGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2lkdGggb2YgdGhlIHBhcmVudCBibG9jayBjb250
YWluaW5nIGFsbAotICAgIC8vIHRleHQgYW5kIHRoYXQgb2YgYSBuYXJyb3cgY2hpbGQgYmVmb3Jl
IHRoZSBjaGlsZCBiZWNvbWVzIGEgY2x1c3Rlci4KLSAgICBjb25zdCBmbG9hdCBtYXhXaWR0aERp
ZmZlcmVuY2UgPSAyMDA7Ci0KICAgICBpZiAocGFyZW50Q2x1c3RlckluZm8tPmJsb2NrQ29udGFp
bmluZ0FsbFRleHQpIHsKICAgICAgICAgZmxvYXQgY29udGVudFdpZHRoID0gcmVuZGVyZXItPmNv
bnRlbnRMb2dpY2FsV2lkdGgoKTsKICAgICAgICAgZmxvYXQgY2x1c3RlclRleHRXaWR0aCA9IHBh
cmVudENsdXN0ZXJJbmZvLT5ibG9ja0NvbnRhaW5pbmdBbGxUZXh0LT5jb250ZW50TG9naWNhbFdp
ZHRoKCk7Ci0gICAgICAgIGlmIChjb250ZW50V2lkdGggPiBjbHVzdGVyVGV4dFdpZHRoIHx8IChj
bHVzdGVyVGV4dFdpZHRoIC0gY29udGVudFdpZHRoKSA+IG1heFdpZHRoRGlmZmVyZW5jZSkKKyAg
ICAgICAgaWYgKGNvbnRlbnRXaWR0aCA+IGNsdXN0ZXJUZXh0V2lkdGgpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgICAgICAvLyBUaGUgdXBwZXIgbGltaXQgb24gaG93IG1hbnkgcGl4
ZWxzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHJlbmRlcmVyIHdpZHRoCisgICAgICAgIC8v
IGFuZCBpdHMgcGFyZW50IGNsdXN0ZXIgd2lkdGggY2FuIGV4Y2VlZCB0aGUgY3VycmVudCBtYXhp
bXVtIGRpZmZlcmVuY2UgYnkKKyAgICAgICAgLy8gYmVmb3JlIHRoZSBvYmplY3QgaXMgY29uc2lk
ZXJlZCB0byBiZSBhIHNlcGFyYXRlIGF1dG9zaXppbmcgY2x1c3Rlci4KKyAgICAgICAgY29uc3Qg
ZmxvYXQgZGlmZmVyZW5jZUZyb21NYXhXaWR0aERpZmZlcmVuY2UgPSA1MDsKKworICAgICAgICBm
bG9hdCB3aWR0aERpZmZlcmVuY2UgPSBjbHVzdGVyVGV4dFdpZHRoIC0gY29udGVudFdpZHRoOwor
ICAgICAgICBpZiAod2lkdGhEaWZmZXJlbmNlIC0gcGFyZW50Q2x1c3RlckluZm8tPm1heEFsbG93
ZWREaWZmZXJlbmNlRnJvbVRleHRXaWR0aCA+IGRpZmZlcmVuY2VGcm9tTWF4V2lkdGhEaWZmZXJl
bmNlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHBhcmVudENsdXN0ZXJJbmZv
LT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGggPSBzdGQ6Om1heCh3aWR0aERpZmZl
cmVuY2UsIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lk
dGgpOwogICAgIH0KIAogICAgIHJldHVybiByZW5kZXJlci0+aXNSZW5kZXJWaWV3KCkKQEAgLTM3
OCw3ICszODksNyBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmNvbnRlbnRIZWlnaHRJc0NvbnN0cmFp
bmVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1ib29sIFRleHRBdXRvc2l6ZXI6OmNsdXN0ZXJTaG91bGRCZUF1dG9zaXplZChjb25zdCBUZXh0
QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBjbHVzdGVySW5mbywgZmxvYXQgYmxvY2tXaWR0aCkKK2Jv
b2wgVGV4dEF1dG9zaXplcjo6Y2x1c3RlclNob3VsZEJlQXV0b3NpemVkKFRleHRBdXRvc2l6aW5n
Q2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBibG9ja1dpZHRoKQogewogICAgIC8vIERv
bid0IGF1dG9zaXplIGNsdXN0ZXJzIHRoYXQgY29udGFpbiBsZXNzIHRoYW4gNCBsaW5lcyBvZiB0
ZXh0IChpbgogICAgIC8vIHByYWN0aWNlIGxlc3MgbGluZXMgYXJlIHJlcXVpcmVkLCBzaW5jZSBt
ZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aApAQCAtMzk5LDcgKzQxMCw3IEBAIGJvb2wgVGV4dEF1
dG9zaXplcjo6Y2x1c3RlclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1
c3RlckluZm8qIGNsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFRleHRBdXRvc2l6ZXI6
Om1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIs
IGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBtaW5U
ZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpCit2b2lkIFRleHRBdXRvc2l6ZXI6Om1lYXN1cmVE
ZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIsIFRleHRBdXRv
c2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0
JiB0ZXh0V2lkdGgpCiB7CiAgICAgYm9vbCBza2lwTG9jYWxUZXh0ID0gIWNvbnRhaW5lclNob3Vs
ZEJlQXV0b3NpemVkKGNvbnRhaW5lcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5oCmluZGV4IDMwMzdiZjIwZGY3NTA5ZDRlYmM4M2U3MDY3ZDYxMGJkY2YzMTNkYTEu
LjE2NmUwNTZkMTFiZDNmN2JkN2U2MmJlNWUyNTZkZDJlYjNiODRkMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtNjIsMjAgKzYyLDIwIEBAIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgVGV4dEF1dG9zaXplcihEb2N1bWVudCopOwogCiAgICAgdm9pZCBwcm9j
ZXNzQ2x1c3RlcihUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiwgUmVuZGVyQmxvY2sqIGNvbnRh
aW5lciwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCwgY29uc3QgVGV4dEF1dG9zaXppbmdXaW5k
b3dJbmZvJik7Ci0gICAgdm9pZCBwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJl
bmRlckJsb2NrKiBjb250YWluZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBS
ZW5kZXJPYmplY3QqIHN1YnRyZWVSb290LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8m
KTsKKyAgICB2b2lkIHByb2Nlc3NDb250YWluZXIoZmxvYXQgbXVsdGlwbGllciwgUmVuZGVyQmxv
Y2sqIGNvbnRhaW5lciwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyosIFJlbmRlck9iamVjdCog
c3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYpOwogCiAgICAgdm9p
ZCBzZXRNdWx0aXBsaWVyKFJlbmRlck9iamVjdCosIGZsb2F0KTsKIAogICAgIHN0YXRpYyBib29s
IGlzQXV0b3NpemluZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqKTsKLSAgICBzdGF0aWMg
Ym9vbCBpc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJlbmRlckJsb2NrKiwgY29uc3QgVGV4dEF1
dG9zaXppbmdDbHVzdGVySW5mbyogcGFyZW50Q2x1c3RlckluZm8pOworICAgIHN0YXRpYyBib29s
IGlzQXV0b3NpemluZ0NsdXN0ZXIoY29uc3QgUmVuZGVyQmxvY2sqLCBUZXh0QXV0b3NpemluZ0Ns
dXN0ZXJJbmZvKiBwYXJlbnRDbHVzdGVySW5mbyk7CiAgICAgc3RhdGljIGJvb2wgaXNBdXRvc2l6
aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKIAogICAgIHN0YXRpYyBib29sIGNvbnRh
aW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpOwogICAg
IHN0YXRpYyBib29sIGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0IFJlbmRlckJsb2Nr
KiBjbHVzdGVyLCBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3MpOwogICAgIHN0YXRp
YyBib29sIGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5l
cik7CiAgICAgc3RhdGljIGJvb2wgY29udGVudEhlaWdodElzQ29uc3RyYWluZWQoY29uc3QgUmVu
ZGVyQmxvY2sqIGNvbnRhaW5lcik7Ci0gICAgc3RhdGljIGJvb2wgY2x1c3RlclNob3VsZEJlQXV0
b3NpemVkKGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBmbG9hdCBibG9ja1dpZHRo
KTsKLSAgICBzdGF0aWMgdm9pZCBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aChjb25zdCBSZW5k
ZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiwgZmxv
YXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4dFdpZHRoKTsKKyAgICBzdGF0aWMgYm9vbCBjbHVz
dGVyU2hvdWxkQmVBdXRvc2l6ZWQoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyosIGZsb2F0IGJs
b2NrV2lkdGgpOworICAgIHN0YXRpYyB2b2lkIG1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNv
bnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBm
bG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpOwogCiAgICAgLy8gVXNlIHRvIHRy
YXZlcnNlIHRoZSB0cmVlIG9mIGRlc2NlbmRhbnRzLCBleGNsdWRpbmcgZGVzY2VuZGFudHMgb2Yg
Y29udGFpbmVycyAoYnV0IHJldHVybmluZyB0aGUgY29udGFpbmVycyB0aGVtc2VsdmVzKS4KICAg
ICBzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0SW5QcmVPcmRlclNraXBwaW5nRGVzY2VuZGFudHNP
ZkNvbnRhaW5lcnMoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5
V2l0aGluKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAyYjRlYzI1OGZjZGViYjk2Njg0MTc2YWMxODk1NDI3MzMxMjk3YTRj
Li5iMjU1M2UzMzU4ZWQxM2U2NzU4YmRlMzI0ZTJkMDg4ZjY2ODU0NzAwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTMtMDItMDUgIEFudG9uIFZheXZvZCAgPGF2YXl2b2RAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFRleHRBdXRvc2l6aW5nOiBhZGp1c3QgdGhlIG1heGltdW0gZGlmZmVyZW5j
ZSBiZXR3ZWVuIGNsdXN0ZXIgdGV4dCB3aWR0aCBhbmQgaXRzIGRlc2NlbmRhbnQKKyAgICAgICAg
d2lkdGguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDg0MTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
ZXN0cyB0aGF0IGNlcnRhaW4gd2lkdGggZGlmZmVyZW5jZSBkb2Vzbid0IG1ha2UgZGVzY2VuZGFu
dHMgc2VwYXJhdGUgY2x1c3RlcnMuCisKKyAgICAgICAgKiBmYXN0L3RleHQtYXV0b3NpemluZy9u
ZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC90ZXh0LWF1
dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0bWw6IEFkZGVkLgorCiAyMDEzLTAyLTA1ICDDgWTDoW0g
S2FsbGFpICA8a2FkYW1AaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF1bV2syXSBVbnJl
dmlld2VkIGdhcmRlbmluZy4gQWRkZWQgcGxhdGZvcm0gc3BlY2lmaWMgZXhwZWN0ZWQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGls
ZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYTlmOTE0NWQ5MzRjZjg0MTk4NjUxMWExMGM5
NTkyZmJkYTgyODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisKKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250
ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgoraHRtbCB7IGZvbnQtc2l6ZTogMTZweDsgfQorYm9k
eSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVyZmxvdy15OiBoaWRkZW47IH0KKzwvc3R5
bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0eWxlPSJmb250LXNpemU6IDIuNXJlbSI+
CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDYwMHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3Vs
ZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgYSBwYXJ0
IG9mIHRoZSBzYW1lIGNsdXN0ZXIgYXMgdGhlIHBhcmVudCBkaXYuPGJyPgorICAgICAgICBMb3Jl
bSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2Vk
IGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBh
bGlxdWEuCisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDU1MHB4Ij4KKyAgICAg
ICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNp
emUsIHNpbmNlIGl0J3Mgb25seSA1MHB4IG5hcnJvd2VyIHRoYW4gdGhlIHByZXZpb3VzIGNoaWxk
IGFuZCB0aGVyZWZvcmUgcmVtYWlucyB0aGUgcGFydCBvZiB0aGUgc2FtZSBjbHVzdGVyLgorICAg
IDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAzMjBweDsgZm9udC1zaXplOiAxcmVtIj4K
KyAgICAgICAgVGhpcyB0ZXh0IGlzIG5vdCBhdXRvc2l6ZWQgc2luY2UgaXQncyB0b28gbmFycm93
IGFuZCBpcyBjb25zaWRlcmVkIHRvIGJlIGEgc2VwYXJhdGUgYXV0b3NpemluZyBjbHVzdGVyLgor
ICAgIDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVi
MTkzZWFiZjE5ZDVhMTllNTA2NDc4N2JkYmUyN2Y4NGY1ZWEwOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC5odG1sCkBAIC0w
LDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKworPG1ldGEgbmFt
ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+Cis8c3R5bGU+CitodG1sIHsgZm9udC1z
aXplOiAxNnB4OyB9Citib2R5IHsgd2lkdGg6IDgwMHB4OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6
IGhpZGRlbjsgfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQo
dHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRUZXh0QXV0b3NpemluZ1dp
bmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4MCk7Cit9IGVsc2UgaWYgKHdpbmRvdy5jb25zb2xlICYm
IGNvbnNvbGUud2FybikgeworICAgIGNvbnNvbGUud2FybigiVGhpcyB0ZXN0IGRlcGVuZHMgb24g
dGhlIFRleHQgQXV0b3NpemluZyBzZXR0aW5nIGJlaW5nIHRydWUsIHNvIHJ1biBpdCBpbiBEdW1w
UmVuZGVyVHJlZSwgb3IgbWFudWFsbHkgZW5hYmxlIFRleHQgQXV0b3NpemluZywgYW5kIGVpdGhl
ciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdpdGggMzIwcHggZGV2aWNlLXdpZHRoIChsaWtlIE5leHVz
IFMgb3IgaVBob25lKSwgb3IgZGVmaW5lIEhBQ0tfRk9SQ0VfVEVYVF9BVVRPU0laSU5HX09OX0RF
U0tUT1AuIik7Cit9Cis8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHk+CisKKzxkaXY+CisgICAg
PGRpdiBzdHlsZT0id2lkdGg6IDYwMHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBh
dXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUgYXMgaXQgaXMgYSBwYXJ0IG9mIHRo
ZSBzYW1lIGNsdXN0ZXIgYXMgdGhlIHBhcmVudCBkaXYuPGJyPgorICAgICAgICBMb3JlbSBpcHN1
bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVp
dXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEu
CisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDU1MHB4Ij4KKyAgICAgICAgVGhp
cyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNpemUsIHNp
bmNlIGl0J3Mgb25seSA1MHB4IG5hcnJvd2VyIHRoYW4gdGhlIHByZXZpb3VzIGNoaWxkIGFuZCB0
aGVyZWZvcmUgcmVtYWlucyB0aGUgcGFydCBvZiB0aGUgc2FtZSBjbHVzdGVyLgorICAgIDwvZGl2
PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAzMjBweCI+CisgICAgICAgIFRoaXMgdGV4dCBpcyBu
b3QgYXV0b3NpemVkIHNpbmNlIGl0J3MgdG9vIG5hcnJvdyBhbmQgaXMgY29uc2lkZXJlZCB0byBi
ZSBhIHNlcGFyYXRlIGF1dG9zaXppbmcgY2x1c3Rlci4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186648</attachid>
            <date>2013-02-05 09:47:45 -0800</date>
            <delta_ts>2013-02-05 10:38:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108411-20130205174422.patch</filename>
            <type>text/plain</type>
            <size>12922</size>
            <attacher name="Anton Vayvod">avayvod</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdlM2MwNjcwODNmYzlk
YWJmNDUxMzI3ZjNhMjQzZjM0NGJjMDdiYS4uM2Y5ZmM2ZWViMGMwMGVkNTdlNmM0NWQzNjc0ZDQx
MTgyMGNkNGJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAyLTA1ICBBbnRv
biBWYXl2b2QgIDxhdmF5dm9kQGNocm9taXVtLm9yZz4KKworICAgICAgICBUZXh0QXV0b3Npemlu
ZzogYWRqdXN0IHRoZSBtYXhpbXVtIGRpZmZlcmVuY2UgYmV0d2VlbiBjbHVzdGVyIHRleHQgd2lk
dGggYW5kIGl0cyBkZXNjZW5kYW50CisgICAgICAgIHdpZHRoLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4NDExCisKKyAgICAgICAgQ3VycmVudGx5
LCBpZiBhIHJlbmRlciBvYmplY3QgaXMgbW9yZSB0aGFuIDIwMCBDU1MgdW5pdHMgc2hvcnRlciB0
aGFuIGl0cyBwYXJlbnQgY2x1c3RlciwgaXQKKyAgICAgICAgYmVjb21lcyBhIHNlcGFyYXRlIGF1
dG9zaXppbmcgY2x1c3RlciAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDUxODgpLgorICAgICAgICBUaGlzIGRvZXNuJ3Qgd29yayB3ZWxsIGZvciBsYXlvdXRz
IHdoZW4gbmFycm93IG5vZGVzIGFyZSByZWxhdGVkLCBsaWtlIG5lc3RlZCBjb21tZW50czoKKyAg
ICAgICAgZGVlcGVyIGNvbW1lbnRzIGFyZSBhbGwgc2hvcnRlciB0aGFuIHRoZSBwYXJlbnQgY2x1
c3RlciBhbmQgYmVjb21lIGF1dG9zaXplZCBkaWZmZXJlbnRseS4gVG8KKyAgICAgICAgYXZvaWQg
dGhhdCB0aGUgZGlmZmVyZW5jZSB0aGF0IG1ha2VzIGEgc2hvcnRlciBkZXNjZW5kYW50IGEgbmV3
IGF1dG9zaXppbmcgY2x1c3RlciBpcworICAgICAgICBhZGp1c3RlZCBlYWNoIHRpbWUgdGhlIHdp
ZHRoIGRpZmZlcmVuY2UgaXMgbm90IGdyZWF0ZXIgdGhhbiA1MCBDU1MgdW5pdHMgZnJvbSB0aGUg
cHJldmlvdXMKKyAgICAgICAgb25lLiBUaGlzIGFsbG93cyBuZXN0ZWQgY29tbWVudHMsIGZvciBl
eGFtcGxlLCB0byByZW1haW4gYSBwYXJ0IG9mIHRoZSBwYXJlbnQgY2x1c3RlciBhbmQgYmUKKyAg
ICAgICAgYXV0b3NpemVkIHdpdGggdGhlIHNhbWUgbXVsdGlwbGllci4KKyAgICAgICAgCisgICAg
ICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgorCisgICAgICAgIFRl
c3RzOgorICAgICAgICAgICAgICAgIGZhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC5o
dG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvOjpUZXh0QXV0b3NpemluZ0NsdXN0ZXJJ
bmZvKToKKworICAgICAgICAgICAgQWRkZWQgYSBuZXcgZmllbGQgdG8gc3RvcmUgdGhlIGN1cnJl
bnQgbWF4aW11bSB3aWR0aCBkaWZmZXJlbmNlIGZvciB0aGUgY2x1c3Rlci4KKworICAgICAgICAo
V2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcik6CisKKyAgICAgICAg
ICAgIFVzZXMgdGhlIG5ldyBmaWVsZCB0byBkZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgbm9kZSBp
cyBhIHNlcGFyYXRlIGNsdXN0ZXIsCisgICAgICAgICAgICB1cGRhdGVzIHRoZSBtYXhpbXVtIGFs
bG93ZWQgd2lkdGggZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBjbHVzdGVyIGFuZCBpdHMgZGVzY2Vu
ZGFudC4KKworICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5l
cik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0QXV0b3NpemVyOjpjbHVzdGVyU2hvdWxkQmVBdXRv
c2l6ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEF1dG9zaXplcjo6bWVhc3VyZURlc2NlbmRh
bnRUZXh0V2lkdGgpOgorCisgICAgICAgICAgICBOb24tY29uc3QgcmVmZXJlbmNlIHBhc3NlZCB0
byB0aGUgbWV0aG9kcyBhYm92ZS4KKworICAgICAgICAqIHJlbmRlcmluZy9UZXh0QXV0b3NpemVy
Lmg6IHVwZGF0ZWQgbWV0aG9kIHBhcmFtZXRlcnMuCisKIDIwMTMtMDItMDUgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxNDE4NjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1
dG9zaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dEF1dG9zaXplci5jcHAK
aW5kZXggNjZjNTM0OTEwZGM2YTg5NTIwYTRlNjE3OGQ1NjQyNzU0N2RhYjRkMS4uOTFkYmExY2Y1
NTE3Yjc0OWQ4ZTIxNzk5NjA2MzU2NjdmOGRlZGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9UZXh0QXV0b3NpemVyLmNwcApAQCAtNTEsMTEgKzUxLDE2IEBAIHN0cnVjdCBUZXh0QXV0
b3NpemluZ0NsdXN0ZXJJbmZvIHsKICAgICBleHBsaWNpdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJ
bmZvKFJlbmRlckJsb2NrKiByb290KQogICAgICAgICA6IHJvb3Qocm9vdCkKICAgICAgICAgLCBi
bG9ja0NvbnRhaW5pbmdBbGxUZXh0KDApCisgICAgICAgICwgbWF4QWxsb3dlZERpZmZlcmVuY2VG
cm9tVGV4dFdpZHRoKDE1MCkKICAgICB7CiAgICAgfQogCiAgICAgUmVuZGVyQmxvY2sqIHJvb3Q7
CiAgICAgY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrQ29udGFpbmluZ0FsbFRleHQ7CisKKyAgICAv
LyBVcHBlciBsaW1pdCBvbiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSB3aWR0aCBvZiB0aGUg
Y2x1c3RlcidzIGJsb2NrIGNvbnRhaW5pbmcgYWxsCisgICAgLy8gdGV4dCBhbmQgdGhhdCBvZiBh
IG5hcnJvdyBjaGlsZCBiZWZvcmUgdGhlIGNoaWxkIGJlY29tZXMgYSBzZXBhcmF0ZSBjbHVzdGVy
LgorICAgIGZsb2F0IG1heEFsbG93ZWREaWZmZXJlbmNlRnJvbVRleHRXaWR0aDsKIH07CiAKIApA
QCAtMTQ3LDcgKzE1Miw3IEBAIHZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NsdXN0ZXIoVGV4
dEF1dG9zaXppbmdDbHVzdGVySW5mbyogY2x1c3RlckluZm8sIFJlbmRlCiAgICAgcHJvY2Vzc0Nv
bnRhaW5lcihtdWx0aXBsaWVyLCBjb250YWluZXIsIGNsdXN0ZXJJbmZvLCBzdWJ0cmVlUm9vdCwg
d2luZG93SW5mbyk7CiB9CiAKLXZvaWQgVGV4dEF1dG9zaXplcjo6cHJvY2Vzc0NvbnRhaW5lcihm
bG9hdCBtdWx0aXBsaWVyLCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBUZXh0QXV0b3Np
emluZ0NsdXN0ZXJJbmZvKiBjbHVzdGVySW5mbywgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCwg
Y29uc3QgVGV4dEF1dG9zaXppbmdXaW5kb3dJbmZvJiB3aW5kb3dJbmZvKQordm9pZCBUZXh0QXV0
b3NpemVyOjpwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBj
b250YWluZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBSZW5kZXJP
YmplY3QqIHN1YnRyZWVSb290LCBjb25zdCBUZXh0QXV0b3NpemluZ1dpbmRvd0luZm8mIHdpbmRv
d0luZm8pCiB7CiAgICAgQVNTRVJUKGlzQXV0b3NpemluZ0NvbnRhaW5lcihjb250YWluZXIpKTsK
IApAQCAtMjMwLDcgKzIzNSw3IEBAIGJvb2wgVGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ29u
dGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgVGV4dEF1dG9zaXplcjo6aXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJC
bG9jayogcmVuZGVyZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIHBhcmVudENs
dXN0ZXJJbmZvKQorYm9vbCBUZXh0QXV0b3NpemVyOjppc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0
IFJlbmRlckJsb2NrKiByZW5kZXJlciwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyogcGFyZW50
Q2x1c3RlckluZm8pCiB7CiAgICAgLy8gIkF1dG9zaXppbmcgY2x1c3RlcnMiIGFyZSBzcGVjaWFs
IGF1dG9zaXppbmcgY29udGFpbmVycyB3aXRoaW4gd2hpY2ggd2UKICAgICAvLyB3YW50IHRvIGVu
Zm9yY2UgYSB1bmlmb3JtIHRleHQgc2l6ZSBtdWx0aXBsaWVyLCBpbiB0aGUgaG9wZXMgb2YgbWFr
aW5nCkBAIC0yNTYsMTUgKzI2MSwyMSBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmlzQXV0b3Npemlu
Z0NsdXN0ZXIoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyLCBjb25zdCBUZXh0QQogICAgIC8v
IHNpbmNlIHRoZXkgbmVlZCBzcGVjaWFsIHRyZWF0bWVudCBkdWUgdG8gdGhlaXIgd2lkdGguCiAg
ICAgQVNTRVJUKGlzQXV0b3NpemluZ0NvbnRhaW5lcihyZW5kZXJlcikpOwogCi0gICAgLy8gVXBw
ZXIgbGltaXQgb24gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgd2lkdGggb2YgdGhlIHBhcmVu
dCBibG9jayBjb250YWluaW5nIGFsbAotICAgIC8vIHRleHQgYW5kIHRoYXQgb2YgYSBuYXJyb3cg
Y2hpbGQgYmVmb3JlIHRoZSBjaGlsZCBiZWNvbWVzIGEgY2x1c3Rlci4KLSAgICBjb25zdCBmbG9h
dCBtYXhXaWR0aERpZmZlcmVuY2UgPSAyMDA7Ci0KICAgICBpZiAocGFyZW50Q2x1c3RlckluZm8t
PmJsb2NrQ29udGFpbmluZ0FsbFRleHQpIHsKICAgICAgICAgZmxvYXQgY29udGVudFdpZHRoID0g
cmVuZGVyZXItPmNvbnRlbnRMb2dpY2FsV2lkdGgoKTsKICAgICAgICAgZmxvYXQgY2x1c3RlclRl
eHRXaWR0aCA9IHBhcmVudENsdXN0ZXJJbmZvLT5ibG9ja0NvbnRhaW5pbmdBbGxUZXh0LT5jb250
ZW50TG9naWNhbFdpZHRoKCk7Ci0gICAgICAgIGlmIChjb250ZW50V2lkdGggPiBjbHVzdGVyVGV4
dFdpZHRoIHx8IChjbHVzdGVyVGV4dFdpZHRoIC0gY29udGVudFdpZHRoKSA+IG1heFdpZHRoRGlm
ZmVyZW5jZSkKKyAgICAgICAgaWYgKGNvbnRlbnRXaWR0aCA+IGNsdXN0ZXJUZXh0V2lkdGgpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAvLyBUaGUgdXBwZXIgbGltaXQgb24g
aG93IG1hbnkgcGl4ZWxzIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHJlbmRlcmVyIHdpZHRo
CisgICAgICAgIC8vIGFuZCBpdHMgcGFyZW50IGNsdXN0ZXIgd2lkdGggY2FuIGV4Y2VlZCB0aGUg
Y3VycmVudCBtYXhpbXVtIGRpZmZlcmVuY2UgYnkKKyAgICAgICAgLy8gYmVmb3JlIHRoZSBvYmpl
Y3QgaXMgY29uc2lkZXJlZCB0byBiZSBhIHNlcGFyYXRlIGF1dG9zaXppbmcgY2x1c3Rlci4KKyAg
ICAgICAgY29uc3QgZmxvYXQgZGlmZmVyZW5jZUZyb21NYXhXaWR0aERpZmZlcmVuY2UgPSA1MDsK
KworICAgICAgICBmbG9hdCB3aWR0aERpZmZlcmVuY2UgPSBjbHVzdGVyVGV4dFdpZHRoIC0gY29u
dGVudFdpZHRoOworICAgICAgICBpZiAod2lkdGhEaWZmZXJlbmNlIC0gcGFyZW50Q2x1c3Rlcklu
Zm8tPm1heEFsbG93ZWREaWZmZXJlbmNlRnJvbVRleHRXaWR0aCA+IGRpZmZlcmVuY2VGcm9tTWF4
V2lkdGhEaWZmZXJlbmNlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHBhcmVu
dENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5jZUZyb21UZXh0V2lkdGggPSBzdGQ6Om1h
eCh3aWR0aERpZmZlcmVuY2UsIHBhcmVudENsdXN0ZXJJbmZvLT5tYXhBbGxvd2VkRGlmZmVyZW5j
ZUZyb21UZXh0V2lkdGgpOwogICAgIH0KIAogICAgIHJldHVybiByZW5kZXJlci0+aXNSZW5kZXJW
aWV3KCkKQEAgLTM3OCw3ICszODksNyBAQCBib29sIFRleHRBdXRvc2l6ZXI6OmNvbnRlbnRIZWln
aHRJc0NvbnN0cmFpbmVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIpCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1ib29sIFRleHRBdXRvc2l6ZXI6OmNsdXN0ZXJTaG91bGRCZUF1dG9zaXpl
ZChjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBjbHVzdGVySW5mbywgZmxvYXQgYmxv
Y2tXaWR0aCkKK2Jvb2wgVGV4dEF1dG9zaXplcjo6Y2x1c3RlclNob3VsZEJlQXV0b3NpemVkKFRl
eHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBibG9ja1dpZHRoKQog
ewogICAgIC8vIERvbid0IGF1dG9zaXplIGNsdXN0ZXJzIHRoYXQgY29udGFpbiBsZXNzIHRoYW4g
NCBsaW5lcyBvZiB0ZXh0IChpbgogICAgIC8vIHByYWN0aWNlIGxlc3MgbGluZXMgYXJlIHJlcXVp
cmVkLCBzaW5jZSBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0aApAQCAtMzk5LDcgKzQxMCw3IEBA
IGJvb2wgVGV4dEF1dG9zaXplcjo6Y2x1c3RlclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFRleHRB
dXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFRl
eHRBdXRvc2l6ZXI6Om1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2Nr
KiBjb250YWluZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZv
LCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpCit2b2lkIFRleHRBdXRvc2l6
ZXI6Om1lYXN1cmVEZXNjZW5kYW50VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWlu
ZXIsIFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qIGNsdXN0ZXJJbmZvLCBmbG9hdCBtaW5UZXh0
V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpCiB7CiAgICAgYm9vbCBza2lwTG9jYWxUZXh0ID0gIWNv
bnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnRhaW5lcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVGV4dEF1dG9zaXplci5oCmluZGV4IDMwMzdiZjIwZGY3NTA5ZDRlYmM4M2U3MDY3ZDYx
MGJkY2YzMTNkYTEuLjE2NmUwNTZkMTFiZDNmN2JkN2U2MmJlNWUyNTZkZDJlYjNiODRkMzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9UZXh0QXV0b3NpemVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRBdXRvc2l6ZXIuaApAQCAtNjIsMjAgKzYyLDIw
IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgVGV4dEF1dG9zaXplcihEb2N1bWVudCopOwogCiAg
ICAgdm9pZCBwcm9jZXNzQ2x1c3RlcihUZXh0QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiwgUmVuZGVy
QmxvY2sqIGNvbnRhaW5lciwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUm9vdCwgY29uc3QgVGV4dEF1
dG9zaXppbmdXaW5kb3dJbmZvJik7Ci0gICAgdm9pZCBwcm9jZXNzQ29udGFpbmVyKGZsb2F0IG11
bHRpcGxpZXIsIFJlbmRlckJsb2NrKiBjb250YWluZXIsIGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1
c3RlckluZm8qLCBSZW5kZXJPYmplY3QqIHN1YnRyZWVSb290LCBjb25zdCBUZXh0QXV0b3Npemlu
Z1dpbmRvd0luZm8mKTsKKyAgICB2b2lkIHByb2Nlc3NDb250YWluZXIoZmxvYXQgbXVsdGlwbGll
ciwgUmVuZGVyQmxvY2sqIGNvbnRhaW5lciwgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyosIFJl
bmRlck9iamVjdCogc3VidHJlZVJvb3QsIGNvbnN0IFRleHRBdXRvc2l6aW5nV2luZG93SW5mbyYp
OwogCiAgICAgdm9pZCBzZXRNdWx0aXBsaWVyKFJlbmRlck9iamVjdCosIGZsb2F0KTsKIAogICAg
IHN0YXRpYyBib29sIGlzQXV0b3NpemluZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqKTsK
LSAgICBzdGF0aWMgYm9vbCBpc0F1dG9zaXppbmdDbHVzdGVyKGNvbnN0IFJlbmRlckJsb2NrKiwg
Y29uc3QgVGV4dEF1dG9zaXppbmdDbHVzdGVySW5mbyogcGFyZW50Q2x1c3RlckluZm8pOworICAg
IHN0YXRpYyBib29sIGlzQXV0b3NpemluZ0NsdXN0ZXIoY29uc3QgUmVuZGVyQmxvY2sqLCBUZXh0
QXV0b3NpemluZ0NsdXN0ZXJJbmZvKiBwYXJlbnRDbHVzdGVySW5mbyk7CiAgICAgc3RhdGljIGJv
b2wgaXNBdXRvc2l6aW5nQ2x1c3Rlcihjb25zdCBSZW5kZXJPYmplY3QqKTsKIAogICAgIHN0YXRp
YyBib29sIGNvbnRhaW5lclNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFJlbmRlckJsb2NrKiBjb250
YWluZXIpOwogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lckNvbnRhaW5zT25lT2ZUYWdzKGNvbnN0
IFJlbmRlckJsb2NrKiBjbHVzdGVyLCBjb25zdCBWZWN0b3I8UXVhbGlmaWVkTmFtZT4mIHRhZ3Mp
OwogICAgIHN0YXRpYyBib29sIGNvbnRhaW5lcklzUm93T2ZMaW5rcyhjb25zdCBSZW5kZXJPYmpl
Y3QqIGNvbnRhaW5lcik7CiAgICAgc3RhdGljIGJvb2wgY29udGVudEhlaWdodElzQ29uc3RyYWlu
ZWQoY29uc3QgUmVuZGVyQmxvY2sqIGNvbnRhaW5lcik7Ci0gICAgc3RhdGljIGJvb2wgY2x1c3Rl
clNob3VsZEJlQXV0b3NpemVkKGNvbnN0IFRleHRBdXRvc2l6aW5nQ2x1c3RlckluZm8qLCBmbG9h
dCBibG9ja1dpZHRoKTsKLSAgICBzdGF0aWMgdm9pZCBtZWFzdXJlRGVzY2VuZGFudFRleHRXaWR0
aChjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmVyLCBjb25zdCBUZXh0QXV0b3NpemluZ0NsdXN0
ZXJJbmZvKiwgZmxvYXQgbWluVGV4dFdpZHRoLCBmbG9hdCYgdGV4dFdpZHRoKTsKKyAgICBzdGF0
aWMgYm9vbCBjbHVzdGVyU2hvdWxkQmVBdXRvc2l6ZWQoVGV4dEF1dG9zaXppbmdDbHVzdGVySW5m
byosIGZsb2F0IGJsb2NrV2lkdGgpOworICAgIHN0YXRpYyB2b2lkIG1lYXN1cmVEZXNjZW5kYW50
VGV4dFdpZHRoKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluZXIsIFRleHRBdXRvc2l6aW5nQ2x1
c3RlckluZm8qLCBmbG9hdCBtaW5UZXh0V2lkdGgsIGZsb2F0JiB0ZXh0V2lkdGgpOwogCiAgICAg
Ly8gVXNlIHRvIHRyYXZlcnNlIHRoZSB0cmVlIG9mIGRlc2NlbmRhbnRzLCBleGNsdWRpbmcgZGVz
Y2VuZGFudHMgb2YgY29udGFpbmVycyAoYnV0IHJldHVybmluZyB0aGUgY29udGFpbmVycyB0aGVt
c2VsdmVzKS4KICAgICBzdGF0aWMgUmVuZGVyT2JqZWN0KiBuZXh0SW5QcmVPcmRlclNraXBwaW5n
RGVzY2VuZGFudHNPZkNvbnRhaW5lcnMoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVy
T2JqZWN0KiBzdGF5V2l0aGluKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYjRlYzI1OGZjZGViYjk2Njg0MTc2YWMxODk1
NDI3MzMxMjk3YTRjLi44ZTBmYWE2YjRjNjRmNzU3OWYwYjkyMWE4NmQyMzc0YTg4YTg5NmM4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTMtMDItMDUgIEFudG9uIFZheXZvZCAgPGF2YXl2b2RA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFRleHRBdXRvc2l6aW5nOiBhZGp1c3QgdGhlIG1heGlt
dW0gZGlmZmVyZW5jZSBiZXR3ZWVuIGNsdXN0ZXIgdGV4dCB3aWR0aCBhbmQgaXRzIGRlc2NlbmRh
bnQKKyAgICAgICAgd2lkdGguCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDg0MTEKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbi4KKworICAgICAgICBUZXN0cyB0aGF0IGNlcnRhaW4gd2lkdGggZGlmZmVyZW5j
ZSBkb2Vzbid0IG1ha2UgZGVzY2VuZGFudHMgc2VwYXJhdGUgY2x1c3RlcnMuCisKKyAgICAgICAg
KiBmYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNoaWxkLmh0bWw6IEFkZGVk
LgorCiAyMDEzLTAyLTA1ICDDgWTDoW0gS2FsbGFpICA8a2FkYW1AaW5mLnUtc3plZ2VkLmh1Pgog
CiAgICAgICAgIFtRdF1bV2syXSBVbnJldmlld2VkIGdhcmRlbmluZy4gQWRkZWQgcGxhdGZvcm0g
c3BlY2lmaWMgZXhwZWN0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0
b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4
dC1hdXRvc2l6aW5nL25lc3RlZC1jaGlsZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlYTlm
OTE0NWQ5MzRjZjg0MTk4NjUxMWExMGM5NTkyZmJkYTgyODMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQtYXV0b3NpemluZy9uZXN0ZWQtY2hpbGQtZXhwZWN0ZWQuaHRt
bApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisKKzxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD04MDAiPgorPHN0eWxlPgoraHRtbCB7
IGZvbnQtc2l6ZTogMTZweDsgfQorYm9keSB7IHdpZHRoOiA4MDBweDsgbWFyZ2luOiAwOyBvdmVy
Zmxvdy15OiBoaWRkZW47IH0KKzwvc3R5bGU+CisKKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IHN0
eWxlPSJmb250LXNpemU6IDIuNXJlbSI+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDYwMHB4Ij4K
KyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBm
b250LXNpemUgYXMgaXQgaXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0ZXIgYXMgdGhlIHBhcmVu
dCBkaXYuPGJyPgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0
dXIgYWRpcGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQg
bGFib3JlIGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+CisgICAgPGRpdiBzdHls
ZT0id2lkdGg6IDU1MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQg
dG8gNDBweCBjb21wdXRlZCBmb250LXNpemUsIHNpbmNlIGl0J3Mgb25seSA1MHB4IG5hcnJvd2Vy
IHRoYW4gdGhlIHByZXZpb3VzIGNoaWxkIGFuZCB0aGVyZWZvcmUgcmVtYWlucyB0aGUgcGFydCBv
ZiB0aGUgc2FtZSBjbHVzdGVyLgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAz
MjBweDsgZm9udC1zaXplOiAxcmVtIj4KKyAgICAgICAgVGhpcyB0ZXh0IGlzIG5vdCBhdXRvc2l6
ZWQgc2luY2UgaXQncyB0b28gbmFycm93IGFuZCBpcyBjb25zaWRlcmVkIHRvIGJlIGEgc2VwYXJh
dGUgYXV0b3NpemluZyBjbHVzdGVyLgorICAgIDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5nL25lc3Rl
ZC1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0LWF1dG9zaXppbmcvbmVzdGVkLWNo
aWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjViMTkzZWFiZjE5ZDVhMTllNTA2NDc4N2JkYmUyN2Y4NGY1
ZWEwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC1hdXRvc2l6aW5n
L25lc3RlZC1jaGlsZC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKworPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTgwMCI+
Cis8c3R5bGU+CitodG1sIHsgZm9udC1zaXplOiAxNnB4OyB9Citib2R5IHsgd2lkdGg6IDgwMHB4
OyBtYXJnaW46IDA7IG92ZXJmbG93LXk6IGhpZGRlbjsgfQorPC9zdHlsZT4KKworPHNjcmlwdD4K
K2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQodHJ1ZSk7CisgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgzMjAsIDQ4MCk7Cit9IGVs
c2UgaWYgKHdpbmRvdy5jb25zb2xlICYmIGNvbnNvbGUud2FybikgeworICAgIGNvbnNvbGUud2Fy
bigiVGhpcyB0ZXN0IGRlcGVuZHMgb24gdGhlIFRleHQgQXV0b3NpemluZyBzZXR0aW5nIGJlaW5n
IHRydWUsIHNvIHJ1biBpdCBpbiBEdW1wUmVuZGVyVHJlZSwgb3IgbWFudWFsbHkgZW5hYmxlIFRl
eHQgQXV0b3NpemluZywgYW5kIGVpdGhlciB1c2UgYSBtb2JpbGUgZGV2aWNlIHdpdGggMzIwcHgg
ZGV2aWNlLXdpZHRoIChsaWtlIE5leHVzIFMgb3IgaVBob25lKSwgb3IgZGVmaW5lIEhBQ0tfRk9S
Q0VfVEVYVF9BVVRPU0laSU5HX09OX0RFU0tUT1AuIik7Cit9Cis8L3NjcmlwdD4KKworPC9oZWFk
PgorPGJvZHk+CisKKzxkaXY+CisgICAgPGRpdiBzdHlsZT0id2lkdGg6IDYwMHB4Ij4KKyAgICAg
ICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBweCBjb21wdXRlZCBmb250LXNp
emUgYXMgaXQgaXMgYSBwYXJ0IG9mIHRoZSBzYW1lIGNsdXN0ZXIgYXMgdGhlIHBhcmVudCBkaXYu
PGJyPgorICAgICAgICBMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRp
cGlzaWNpbmcgZWxpdCwgc2VkIGRvIGVpdXNtb2QgdGVtcG9yIGluY2lkaWR1bnQgdXQgbGFib3Jl
IGV0IGRvbG9yZSBtYWduYSBhbGlxdWEuCisgICAgPC9kaXY+CisgICAgPGRpdiBzdHlsZT0id2lk
dGg6IDU1MHB4Ij4KKyAgICAgICAgVGhpcyB0ZXh0IHNob3VsZCBiZSBhdXRvc2l6ZWQgdG8gNDBw
eCBjb21wdXRlZCBmb250LXNpemUsIHNpbmNlIGl0J3Mgb25seSA1MHB4IG5hcnJvd2VyIHRoYW4g
dGhlIHByZXZpb3VzIGNoaWxkIGFuZCB0aGVyZWZvcmUgcmVtYWlucyB0aGUgcGFydCBvZiB0aGUg
c2FtZSBjbHVzdGVyLgorICAgIDwvZGl2PgorICAgIDxkaXYgc3R5bGU9IndpZHRoOiAzMjBweCI+
CisgICAgICAgIFRoaXMgdGV4dCBpcyBub3QgYXV0b3NpemVkIHNpbmNlIGl0J3MgdG9vIG5hcnJv
dyBhbmQgaXMgY29uc2lkZXJlZCB0byBiZSBhIHNlcGFyYXRlIGF1dG9zaXppbmcgY2x1c3Rlci4K
KyAgICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>