<?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>105264</bug_id>
          
          <creation_ts>2012-12-18 01:25:55 -0800</creation_ts>
          <short_desc>Percentage min/max width replaced element may incorrectly rendered</short_desc>
          <delta_ts>2012-12-20 17:53:20 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="KyungTae Kim">ktf.kim</reporter>
          <assigned_to name="KyungTae Kim">ktf.kim</assigned_to>
          <cc>d-r</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fmalita</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>793452</commentid>
    <comment_count>0</comment_count>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-18 01:25:55 -0800</bug_when>
    <thetext>If min-width or max-width of replaced element is percentage, and the containing block try to fit to it,
the computation of preferred width of the containing block can be wrong.

In RenderReplaced::computeMaxPreferredLogicalWidth, the &quot;percentage width&quot; case is handled,
but  the &quot;percentage min/max width&quot; is not handled now.

With bug 102784, the bug that the change of &quot;percentage width&quot; image&apos;s intrinsic size is not updated is fixed,
but the &quot;percentage min-width&quot; image is not updated despite re-layout because the not updated preferred width.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793463</commentid>
    <comment_count>1</comment_count>
      <attachid>179904</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-18 01:41:06 -0800</bug_when>
    <thetext>Created attachment 179904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793814</commentid>
    <comment_count>2</comment_count>
      <attachid>179904</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-18 10:42:55 -0800</bug_when>
    <thetext>Comment on attachment 179904
Patch

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

Hmm, my comment was lost.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:448
&gt; -    if (logicalWidth.isPercent())
&gt; +    if (logicalWidth.isPercent() || style()-&gt;logicalMaxWidth().isPercent() || style()-&gt;logicalMinWidth().isPercent())

I don&apos;t think this is correct.  If the width is fixed and the min/max width is a percent, the preferred size is the width.  Basically, we want to treat any percent values as auto when computing the preferred width.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:451
&gt;      // FIXME: We shouldn&apos;t be calling a logical width computing function in preferred

The correct fix is to handle this FIXME. We shouldn&apos;t be calling computeReplacedLogicalWidth, we should be doing our own calculation here (should be similar to the computeReplacedLogicalWidth* methods but have Percent and Calculated fall through to intrinsicLogicalWidth()).  You might even be able to remove the logicalWidth.isPercent() check above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794344</commentid>
    <comment_count>3</comment_count>
      <attachid>180091</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-18 22:05:22 -0800</bug_when>
    <thetext>Created attachment 180091
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794353</commentid>
    <comment_count>4</comment_count>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-18 22:25:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 179904 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179904&amp;action=review
&gt; 
&gt; Hmm, my comment was lost.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderReplaced.cpp:448
&gt; &gt; -    if (logicalWidth.isPercent())
&gt; &gt; +    if (logicalWidth.isPercent() || style()-&gt;logicalMaxWidth().isPercent() || style()-&gt;logicalMinWidth().isPercent())
&gt; 
&gt; I don&apos;t think this is correct.  If the width is fixed and the min/max width is a percent, the preferred size is the width.  Basically, we want to treat any percent values as auto when computing the preferred width.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderReplaced.cpp:451
&gt; &gt;      // FIXME: We shouldn&apos;t be calling a logical width computing function in preferred
&gt; 
&gt; The correct fix is to handle this FIXME. We shouldn&apos;t be calling computeReplacedLogicalWidth, we should be doing our own calculation here (should be similar to the computeReplacedLogicalWidth* methods but have Percent and Calculated fall through to intrinsicLogicalWidth()).  You might even be able to remove the logicalWidth.isPercent() check above.

Because what we want is not to use &quot;percent min width&quot; when calculating preferred width,
I added a parameter for that in computeReplacedLogicalWidth and functions called by it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794381</commentid>
    <comment_count>5</comment_count>
      <attachid>180091</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-18 23:33:40 -0800</bug_when>
    <thetext>Comment on attachment 180091
Patch

Attachment 180091 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15399589</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794404</commentid>
    <comment_count>6</comment_count>
      <attachid>180106</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-19 00:12:45 -0800</bug_when>
    <thetext>Created attachment 180106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794405</commentid>
    <comment_count>7</comment_count>
      <attachid>180107</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-19 00:18:05 -0800</bug_when>
    <thetext>Created attachment 180107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>794796</commentid>
    <comment_count>8</comment_count>
      <attachid>180107</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-19 10:44:13 -0800</bug_when>
    <thetext>Comment on attachment 180107
Patch

I was curious about includeMaxWidth, so I tracked this down to http://trac.webkit.org/changeset/35828 .  It was added for the same reason includeMinWidth is being added.

I think having 2 args is confusing.  Instead, we could have a single enum: ComputePreferred, ComputeActual (default to ComputeActual).  In computeReplacedLogicalWidthRespectingMinMaxWidth, if the enum is ComputePreferred, we can ignore percent min or max widths.

Even with that change, I think RenderReplaced::computeMaxPreferredLogicalWidth is still incorrect.  If the width is a percent but the min-width is greater than the intrinsic logical width, the preferred size should be the min-width.  I guess that&apos;s a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795018</commentid>
    <comment_count>9</comment_count>
      <attachid>180107</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-19 16:16:20 -0800</bug_when>
    <thetext>Comment on attachment 180107
Patch

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

(In reply to comment #8)
&gt; (From update of attachment 180107 [details])
&gt; I was curious about includeMaxWidth, so I tracked this down to http://trac.webkit.org/changeset/35828 .  It was added for the same reason includeMinWidth is being added.
&gt; 
&gt; I think having 2 args is confusing.  Instead, we could have a single enum: ComputePreferred, ComputeActual (default to ComputeActual).  In computeReplacedLogicalWidthRespectingMinMaxWidth, if the enum is ComputePreferred, we can ignore percent min or max widths.
Is separated control really not needed? Some callers use includeMaxWidth differently now.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:-368
&gt; -                return computeReplacedLogicalWidthRespectingMinMaxWidth(roundToInt(round(logicalHeight * intrinsicRatio)));

In here, the includeMaxWidth is always true now.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:-379
&gt; -                    logicalWidth = blockWithWidth-&gt;computeReplacedLogicalWidthRespectingMinMaxWidth(blockWithWidth-&gt;computeReplacedLogicalWidthUsing(MainOrPreferredSize, blockWithWidth-&gt;style()-&gt;logicalWidth()), false);

In here, the includeMaxWidth is always false now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795059</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-19 17:20:33 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Is separated control really not needed? Some callers use includeMaxWidth differently now.

I&apos;m not sure if they need to be separate or if we just have poor test coverage.  Do you know which tests cover these cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795065</commentid>
    <comment_count>11</comment_count>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-19 17:33:36 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Is separated control really not needed? Some callers use includeMaxWidth differently now.
&gt; 
&gt; I&apos;m not sure if they need to be separate or if we just have poor test coverage.  Do you know which tests cover these cases?
As I searched, the code originated from https://bugs.webkit.org/show_bug.cgi?id=15849
And the test cases for that are: 
css2.1/20110323/replaced-intrinsic-ratio-001.htm
css2.1/20110323/replaced-intrinsic-003.htm
css2.1/20110323/block-replaced-height-007.htm
css2.1/20110323/float-replaced-height-007.htm
css2.1/20110323/inline-block-replaced-height-007.htm
css2.1/20110323/inline-replaced-height-007.htm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795073</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-19 17:49:05 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; Is separated control really not needed? Some callers use includeMaxWidth differently now.
&gt; &gt; 
&gt; &gt; I&apos;m not sure if they need to be separate or if we just have poor test coverage.  Do you know which tests cover these cases?
&gt; As I searched, the code originated from https://bugs.webkit.org/show_bug.cgi?id=15849

I don&apos;t see any calls to computeReplacedLogicalWidthRespectingMinMaxWidth with &apos;false&apos; passed in for includeMaxWidth.

There are plenty of calls in computeReplacedLogicalWidth to computeReplacedLogicalWidthRespectingMinMaxWidth that pass in the default value, but those look like bugs.  It seems like you would always want to have the includeMaxWidth arg.

&gt; And the test cases for that are: 
&gt; css2.1/20110323/replaced-intrinsic-ratio-001.htm
&gt; css2.1/20110323/replaced-intrinsic-003.htm
&gt; css2.1/20110323/block-replaced-height-007.htm
&gt; css2.1/20110323/float-replaced-height-007.htm
&gt; css2.1/20110323/inline-block-replaced-height-007.htm
&gt; css2.1/20110323/inline-replaced-height-007.htm

Do these tests start failing if you pass includeMaxWidth through?  grepping those files for max-width returns no results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795081</commentid>
    <comment_count>13</comment_count>
      <attachid>180256</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-19 18:08:00 -0800</bug_when>
    <thetext>Created attachment 180256
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795094</commentid>
    <comment_count>14</comment_count>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-19 18:39:13 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (In reply to comment #10)
&gt; &gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; &gt; Is separated control really not needed? Some callers use includeMaxWidth differently now.
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m not sure if they need to be separate or if we just have poor test coverage.  Do you know which tests cover these cases?
&gt; &gt; As I searched, the code originated from https://bugs.webkit.org/show_bug.cgi?id=15849
&gt; 
&gt; I don&apos;t see any calls to computeReplacedLogicalWidthRespectingMinMaxWidth with &apos;false&apos; passed in for includeMaxWidth.
Actually the call computeReplacedLogicalWidthRespectingMinMaxWidth with &apos;false&apos; is introduced by bug 88437 ,
And I guess he got the &apos;false&apos; from computeIntrinsicLogicalWidth(containingBlock, false) that introduced by bug 15849
Sorry for insufficient information.

&gt; There are plenty of calls in computeReplacedLogicalWidth to computeReplacedLogicalWidthRespectingMinMaxWidth that pass in the default value, but those look like bugs.  It seems like you would always want to have the includeMaxWidth arg.
OK. I just afraid of regression by my patch.

Anyway, I uploaded new patch, I didn&apos;t use enum because I think it can passed by bool,
if enum is better, I&apos;ll modify.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795506</commentid>
    <comment_count>15</comment_count>
      <attachid>180256</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-20 09:50:25 -0800</bug_when>
    <thetext>Comment on attachment 180256
Patch

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

Please use an enum. See http://www.webkit.org/coding/coding-style.html#names-enum-to-bool

&gt; Source/WebCore/rendering/RenderReplaced.cpp:452
&gt;      // FIXME: We shouldn&apos;t be calling a logical width computing function in preferred
&gt;      // logical widths computation as the layout information is probably invalid.

I think this fixes this FIXME. You can remove this comment.

&gt; Source/WebCore/rendering/RenderReplaced.h:35
&gt; +    virtual LayoutUnit computeReplacedLogicalWidth(bool isComputePreferred = false) const;

OVERRIDE

&gt; Source/WebCore/rendering/RenderVideo.h:73
&gt; +    virtual LayoutUnit computeReplacedLogicalWidth(bool isComputePreferred = false) const;

OVERRIDE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795869</commentid>
    <comment_count>16</comment_count>
      <attachid>180424</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-20 15:36:08 -0800</bug_when>
    <thetext>Created attachment 180424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795874</commentid>
    <comment_count>17</comment_count>
      <attachid>180424</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-20 15:42:59 -0800</bug_when>
    <thetext>Comment on attachment 180424
Patch

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

&gt; Source/WebCore/rendering/RenderBox.cpp:2418
&gt; +LayoutUnit RenderBox::computeReplacedLogicalWidth(ComputeType computeType) const

computeType is very vague.  Please use something like shouldComputePreferred for the variable name.

&gt; Source/WebCore/rendering/RenderBox.h:43
&gt; +enum ComputeType { ComputeActual, ComputePreferred  };

I would probably name it something like: enum ComputePreferred { ShouldComputeActual, ShouldComputePreferred };

&gt; Source/WebCore/rendering/RenderReplaced.h:35
&gt; +    virtual LayoutUnit computeReplacedLogicalWidth(ComputeType  = ComputePreferred) const;

OVERRIDE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795900</commentid>
    <comment_count>18</comment_count>
      <attachid>180424</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-20 15:58:29 -0800</bug_when>
    <thetext>Comment on attachment 180424
Patch

Sorry, I mean, please make the changes and you can use &quot;webkit-patch land-safely&quot; to upload the final version without need for another review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795939</commentid>
    <comment_count>19</comment_count>
      <attachid>180438</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-20 16:30:53 -0800</bug_when>
    <thetext>Created attachment 180438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795940</commentid>
    <comment_count>20</comment_count>
      <attachid>180438</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-12-20 16:32:19 -0800</bug_when>
    <thetext>Comment on attachment 180438
Patch

Modify the enum type to enum ShouldComputePreferred { ComputeActual, ComputePreferred };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>795999</commentid>
    <comment_count>21</comment_count>
      <attachid>180438</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-20 17:53:14 -0800</bug_when>
    <thetext>Comment on attachment 180438
Patch

Clearing flags on attachment: 180438

Committed r138332: &lt;http://trac.webkit.org/changeset/138332&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>796000</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-20 17:53:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179904</attachid>
            <date>2012-12-18 01:41:06 -0800</date>
            <delta_ts>2012-12-18 22:05:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105264-20121218183826.patch</filename>
            <type>text/plain</type>
            <size>4609</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3OTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjYxOWEzNjA2ZGZhNDMx
MTM1N2RlY2RiYjdkYjdiZDA2MDEyZjYyMC4uMDcwYzhiNjkzYWQxNmQ5ZTc5M2E1M2UzODJmYTQz
ZTYwNTBlM2I0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTE4ICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWlu
L21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgbWluLXdpZHRo
IG9yIG1heC13aWR0aCBvZiByZXBsYWNlZCBlbGVtZW50IGlzIHBlcmNlbnQsIAorICAgICAgICBq
dXN0IHJldHVybiB0aGUgaW50cmluc2ljV2lkdGggZm9yIHByZWZlcnJlZExvZ2ljYWxXaWR0aCwK
KyAgICAgICAgYmVjYXVzZSB3ZSBjYW5ub3QgcmVzb2x2ZSBpdCBvbiB0aGUgY29udGFpbmluZyBi
bG9jay4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3Jj
LWNoYW5nZS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVNYXhQcmVmZXJyZWRMb2dp
Y2FsV2lkdGgpOgorCiAyMDEyLTEyLTE3ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBh
bnkxMDAubmV0PgogCiAgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNzOiBSZWZhY3RvciBUaWxl
ZEJhY2tpbmdTdG9yZSBjb2RlIGluIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllci4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDYyM2UyZjA3ZDJhYjRm
ZGEyYTFjZjQ5MDliODMwODRiMTIwZjk2N2IuLmU1ZDQ3ZWM2OTEzZTM5YjNkMGQ0ZjJlMzExZjNm
OTQ5MDY3OTNkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcApAQCAtNDQ1LDcgKzQ0NSw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVNYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAogCiAgICAgLy8gV2UgY2Fubm90IHJl
c29sdmUgYW55IHBlcmNlbnQgbG9naWNhbCB3aWR0aCBoZXJlIGFzIHRoZSBhdmFpbGFibGUgbG9n
aWNhbAogICAgIC8vIHdpZHRoIG1heSBub3QgYmUgc2V0IG9uIG91ciBjb250YWluaW5nIGJsb2Nr
LgotICAgIGlmIChsb2dpY2FsV2lkdGguaXNQZXJjZW50KCkpCisgICAgaWYgKGxvZ2ljYWxXaWR0
aC5pc1BlcmNlbnQoKSB8fCBzdHlsZSgpLT5sb2dpY2FsTWF4V2lkdGgoKS5pc1BlcmNlbnQoKSB8
fCBzdHlsZSgpLT5sb2dpY2FsTWluV2lkdGgoKS5pc1BlcmNlbnQoKSkKICAgICAgICAgcmV0dXJu
IGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBi
ZSBjYWxsaW5nIGEgbG9naWNhbCB3aWR0aCBjb21wdXRpbmcgZnVuY3Rpb24gaW4gcHJlZmVycmVk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNTcwMzdkMzNjOTBiN2VmZDM3M2FhMDlhMzE3YWU1NDBjYmU2MTYyNy4uNWRlNDdi
Zjg0N2IyMDgzN2FjMmU5ZWFmZDBlZDBiZjdkYmU5NGZiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDEyLTEyLTE4ICBLeXVuZ1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAg
ICAgIFBlcmNlbnRhZ2UgbWluL21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJl
Y3RseSByZW5kZXJlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA1MjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHRlc3QgdG8gY2hlY2sgd2hlbiB0aGUgc291cmNlIG9mIGltYWdlcyB3aXRoIHBl
cmNlbnRhZ2UgbWluLXdpZHRoIGlzIGNoYW5nZWQuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wZXJj
ZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTEyLTE3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAg
ICBUcmFjayBtZW51IHNob3VsZCBiZSBzb3J0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNzAwY2I2YjYyZmNiNWE3ZWE4MmQ1ODQ4YmUzNTNiNjZjMmJi
YTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGVyY2VudC1taW4t
d2lkdGgtaW1nLXNyYy1jaGFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUwor
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGVyY2VudC1taW4td2lkdGgtaW1n
LXNyYy1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRo
LWltZy1zcmMtY2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAwMWE5YjBjMmZkMGE0ZGYwMDBiMzQ3
Mzc5OTcwNGM2OTMzMzc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKQEAgLTAsMCArMSw0OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgordmFyIGNvbXBsZXRlZCA9IDAsIGZhaWx1cmVzID0gMCwgZmFpbHVyZXNEZXRhaWwg
PSAiIjsgCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KK2Z1bmN0aW9uIHByaW50
UmVzdWx0KCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lclRl
eHQgPSBmYWlsdXJlcyA/ICJGQUlMOiAiICsgZmFpbHVyZXMgKyAiIGNhc2VzIGZhaWxlZFxuIiAr
IGZhaWx1cmVzRGV0YWlsIDogIlBBU1MiOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGltYWdlQ2hlY2tG
b3JNaW4oaW1hZ2UpIHsKKyAgICBpZiAoaW1hZ2Uuc3JjLm1hdGNoKCJncmVlbmJveC0xMDBweC5w
bmciKSAgIT0gbnVsbCkgeworICAgICAgICBpbWFnZS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuYm94
LnBuZyI7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICArK2NvbXBsZXRlZDsKKyAgICAgICAg
aWYgKGltYWdlLndpZHRoICE9IDI1KSB7CisgICAgICAgICAgICArK2ZhaWx1cmVzOyAKKyAgICAg
ICAgICAgIGZhaWx1cmVzRGV0YWlsICs9ICBpbWFnZS5pZCArICI6ICIgKyBpbWFnZS53aWR0aCAr
ICIgKGV4cGVjdGVkOiAiICsgMjUgKyAiKVxuIjsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29t
cGxldGVkID09IDIpCisgICAgICAgICAgICAgcHJpbnRSZXN1bHQoKTsKKyAgICB9Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPHRhYmxl
PgorPHRib2R5PgorPHRyPgorPHRkPgorPGltZyBpZD0icGVyY2VudE1pbldpZHRoSW5UYWJsZSIg
c3R5bGU9Im1pbi13aWR0aDoxMDAlOyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gtMTAwcHgucG5n
IiBvbmxvYWQ9ImltYWdlQ2hlY2tGb3JNaW4odGhpcykiPgorPC90ZD4KKzwvdHI+Cis8L3Rib2R5
PgorPC90YWJsZT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDoyMDBweDtsZWZ0
OjExcHgiPgorPGltZyBpZD0icGVyY2VudE1pbldpZHRoSW5BYnNvbHV0ZSIgc3R5bGU9Im1pbi13
aWR0aDoxMDAlOyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gtMTAwcHgucG5nIiBvbmxvYWQ9Imlt
YWdlQ2hlY2tGb3JNaW4odGhpcykiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180091</attachid>
            <date>2012-12-18 22:05:22 -0800</date>
            <delta_ts>2012-12-19 00:12:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105264-20121219150242.patch</filename>
            <type>text/plain</type>
            <size>14132</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTFlZjk4NTNjZWE4YTJk
NGRjNTY3YjQ5N2U5MDRmZDVmNDdhOWQyYi4uNDIyZWE4ZTdmN2ZhZjExM2Q4Mjk4MzIwYTgwMjEy
YzJmMDM4MTJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEyLTE4ICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWlu
L21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBkbyBu
b3QgaW5jbHVkZSBwZXJjZW50YWdlIG1pbiB3aWR0aCBpbiBwcmVmZXJyZWQgbG9naWNhbCB3aWR0
aCBjYWxjdWxhdGlvbiwKKyAgICAgICAgYmVjYXVzZSB3ZSBjYW5ub3QgcmVzb2x2ZSBpdCBmb3Ig
cHJlZmVycmVkIHdpZHRoLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgpOgorICAgICAgICBBZGQgaW5jbHVkZU1pbldpZHRoIHBhcmFtZXRlci4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGlu
Z01pbk1heFdpZHRoKToKKyAgICAgICAgQWRkIGluY2x1ZGVNaW5XaWR0aCBwYXJhbWV0ZXIuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIEFk
ZCBpbmNsdWRlTWluV2lkdGggcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVNYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgpOgorICAgICAgICBOb3QgdG8g
aW5jbHVkZU1pbldpZHRoIGlmIG1pbiB3aWR0aCBpcyBwZXJjZW50IHR5cGUuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgIChSZW5kZXJSZXBsYWNlZCk6CisK
IDIwMTItMTItMTggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgRnJlZSBvbmUgYml0IGluIFJlbmRlck9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcAppbmRleCA1ZTBmMGY3OWZlNGU1OTIwZDBkNzFkODk3NjM5ZGJiNjEz
OTA1MzZkLi5hNjdkNTMxYWJhYzc1MGYyNDBkOThlN2I3MzM0Y2NlODFlODcxM2MzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMjQxNSwxNCArMjQxNSwxNCBAQCBM
YXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbnN0
IExlbmd0aCYgaGVpZ2h0KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUxheW91dFVu
aXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4
V2lkdGgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNh
bFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoLCBib29sIGluY2x1ZGVNaW5XaWR0aCkgY29uc3QK
IHsKLSAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1h
eFdpZHRoKGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJlZFNp
emUsIHN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICByZXR1
cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJlZFNpemUsIHN0eWxlKCkt
PmxvZ2ljYWxXaWR0aCgpKSwgaW5jbHVkZU1heFdpZHRoLCBpbmNsdWRlTWluV2lkdGgpOwogfQog
Ci1MYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVj
dGluZ01pbk1heFdpZHRoKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBib29sIGluY2x1ZGVNYXhX
aWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIGJvb2wg
aW5jbHVkZU1heFdpZHRoLCBib29sIGluY2x1ZGVNaW5XaWR0aCkgY29uc3QKIHsKLSAgICBMYXlv
dXRVbml0IG1pbkxvZ2ljYWxXaWR0aCA9IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5n
KE1pblNpemUsIHN0eWxlKCktPmxvZ2ljYWxNaW5XaWR0aCgpKTsKKyAgICBMYXlvdXRVbml0IG1p
bkxvZ2ljYWxXaWR0aCA9ICFpbmNsdWRlTWluV2lkdGggfHwgc3R5bGUoKS0+bG9naWNhbE1pbldp
ZHRoKCkuaXNVbmRlZmluZWQoKSA/IGxvZ2ljYWxXaWR0aCA6IGNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aFVzaW5nKE1pblNpemUsIHN0eWxlKCktPmxvZ2ljYWxNaW5XaWR0aCgpKTsKICAgICBM
YXlvdXRVbml0IG1heExvZ2ljYWxXaWR0aCA9ICFpbmNsdWRlTWF4V2lkdGggfHwgc3R5bGUoKS0+
bG9naWNhbE1heFdpZHRoKCkuaXNVbmRlZmluZWQoKSA/IGxvZ2ljYWxXaWR0aCA6IGNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1heFNpemUsIHN0eWxlKCktPmxvZ2ljYWxNYXhXaWR0
aCgpKTsKICAgICByZXR1cm4gbWF4KG1pbkxvZ2ljYWxXaWR0aCwgbWluKGxvZ2ljYWxXaWR0aCwg
bWF4TG9naWNhbFdpZHRoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5k
ZXggZWMzYmQ2ZDlmOGIwNWQwNGFkOTE2YjZmZjNmMzE1NDY5NDgyNThkNi4uNTJjNGQyNjc3YmMw
MjY2MTk4NmE5ZTZlMGJiOWMzYzQzNmFjYzQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guaApAQCAtNDE0LDExICs0MTQsMTEgQEAgcHVibGljOgogICAgIExheW91dFVuaXQgY29t
cHV0ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KFNpemVUeXBlLCBjb25zdCBMZW5ndGgmIGhlaWdodCk7
CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ29udGVudEFuZFNjcm9sbGJhckxvZ2ljYWxIZWlnaHRV
c2luZyhTaXplVHlwZSwgY29uc3QgTGVuZ3RoJiBoZWlnaHQpIGNvbnN0OwogICAgIExheW91dFVu
aXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoU2l6ZVR5cGUsIExlbmd0aCB3aWR0
aCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNw
ZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIGJvb2wgaW5jbHVkZU1h
eFdpZHRoID0gdHJ1ZSkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIGJv
b2wgaW5jbHVkZU1heFdpZHRoID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTWluV2lkdGggPSB0cnVlKSBj
b25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhT
aXplVHlwZSwgTGVuZ3RoIGhlaWdodCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVw
bGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChMYXlvdXRVbml0IGxvZ2lj
YWxIZWlnaHQpIGNvbnN0OwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0OworICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRl
TWF4V2lkdGggPSB0cnVlLCBib29sIGluY2x1ZGVNaW5XaWR0aCA9IHRydWUpIGNvbnN0OwogICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7
CiAKICAgICBzdGF0aWMgYm9vbCBwZXJjZW50YWdlTG9naWNhbEhlaWdodElzUmVzb2x2YWJsZUZy
b21CbG9jayhjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2NrLCBib29sIG91dE9mRmxv
d1Bvc2l0aW9uZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKaW5kZXggNjIzZTJmMDdkMmFiNGZkYTJhMWNmNDkwOWI4MzA4NGIxMjBmOTY3Yi4uNTQ0ZWU1
ZWEzOTg5ZWVkNmY4M2U4Y2JjZTZhNmQzZDg5NzVhNjhlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zMzcsMTAgKzMzNywxMCBAQCB2b2lkIFJl
bmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNpemUm
IGludHJpbnNpY1NpemUsCiAgICAgaW50cmluc2ljUmF0aW8gPSBpbnRyaW5zaWNTaXplLndpZHRo
KCkgLyBpbnRyaW5zaWNTaXplLmhlaWdodCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclJlcGxh
Y2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNv
bnN0CitMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lk
dGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgsIGJvb2wgaW5jbHVkZU1pbldpZHRoKSBjb25zdAogewog
ICAgIGlmIChzdHlsZSgpLT5sb2dpY2FsV2lkdGgoKS5pc1NwZWNpZmllZCgpKQotICAgICAgICBy
ZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJlZFNpemUsIHN0eWxl
KCktPmxvZ2ljYWxXaWR0aCgpKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICAgICAgcmV0dXJuIGNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb21wdXRlUmVw
bGFjZWRMb2dpY2FsV2lkdGhVc2luZyhNYWluT3JQcmVmZXJyZWRTaXplLCBzdHlsZSgpLT5sb2dp
Y2FsV2lkdGgoKSksIGluY2x1ZGVNYXhXaWR0aCwgaW5jbHVkZU1pbldpZHRoKTsKIAogICAgIFJl
bmRlckJveCogY29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCk7CiAKQEAgLTM1
Niw3ICszNTYsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbgogCiAgICAgICAgIC8vIElmICdo
ZWlnaHQnIGFuZCAnd2lkdGgnIGJvdGggaGF2ZSBjb21wdXRlZCB2YWx1ZXMgb2YgJ2F1dG8nIGFu
ZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBhbiBpbnRyaW5zaWMgd2lkdGgsIHRoZW4gdGhhdCBpbnRy
aW5zaWMgd2lkdGggaXMgdGhlIHVzZWQgdmFsdWUgb2YgJ3dpZHRoJy4KICAgICAgICAgaWYgKGhl
aWdodElzQXV0byAmJiBoYXNJbnRyaW5zaWNXaWR0aCkKLSAgICAgICAgICAgIHJldHVybiBjb21w
dXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29uc3RyYWluZWRT
aXplLndpZHRoKCksIGluY2x1ZGVNYXhXaWR0aCk7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0
ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbnN0cmFpbmVkU2l6
ZS53aWR0aCgpLCBpbmNsdWRlTWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiAKICAgICAgICAg
Ym9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgPSAhaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSAmJiBj
b25zdHJhaW5lZFNpemUuaGVpZ2h0KCkgPiAwOwogICAgICAgICBpZiAoaW50cmluc2ljUmF0aW8g
fHwgaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkgewpAQCAtMzY1LDcgKzM2NSw3IEBAIExheW91
dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGlu
Y2x1ZGVNYXhXaWR0aCkgY29uCiAgICAgICAgICAgICAvLyBvZiAnd2lkdGgnIGlzOiAodXNlZCBo
ZWlnaHQpICogKGludHJpbnNpYyByYXRpbykKICAgICAgICAgICAgIGlmIChpbnRyaW5zaWNSYXRp
byAmJiAoKGhlaWdodElzQXV0byAmJiAhaGFzSW50cmluc2ljV2lkdGggJiYgaGFzSW50cmluc2lj
SGVpZ2h0KSB8fCAhaGVpZ2h0SXNBdXRvKSkgewogICAgICAgICAgICAgICAgIExheW91dFVuaXQg
bG9naWNhbEhlaWdodCA9IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1h
eFdpZHRoKHJvdW5kVG9JbnQocm91bmQobG9naWNhbEhlaWdodCAqIGludHJpbnNpY1JhdGlvKSkp
OworICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNw
ZWN0aW5nTWluTWF4V2lkdGgocm91bmRUb0ludChyb3VuZChsb2dpY2FsSGVpZ2h0ICogaW50cmlu
c2ljUmF0aW8pKSwgaW5jbHVkZU1heFdpZHRoLCBpbmNsdWRlTWluV2lkdGgpOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICAvLyBJZiAnaGVpZ2h0JyBhbmQgJ3dpZHRoJyBib3RoIGhhdmUg
Y29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1lbnQgaGFzIGFuIGludHJpbnNp
YyByYXRpbyBidXQgbm8gaW50cmluc2ljIGhlaWdodCBvciB3aWR0aCwgdGhlbiB0aGUgdXNlZCB2
YWx1ZSBvZgpAQCAtMzc2LDcgKzM3Niw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uCiAgICAg
ICAgICAgICAgICAgLy8gJ21hcmdpbi1sZWZ0JyArICdib3JkZXItbGVmdC13aWR0aCcgKyAncGFk
ZGluZy1sZWZ0JyArICd3aWR0aCcgKyAncGFkZGluZy1yaWdodCcgKyAnYm9yZGVyLXJpZ2h0LXdp
ZHRoJyArICdtYXJnaW4tcmlnaHQnID0gd2lkdGggb2YgY29udGFpbmluZyBibG9jawogICAgICAg
ICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoOwogICAgICAgICAgICAgICAgIGlmIChS
ZW5kZXJCbG9jayogYmxvY2tXaXRoV2lkdGggPSBmaXJzdENvbnRhaW5pbmdCbG9ja1dpdGhMb2dp
Y2FsV2lkdGgodGhpcykpCi0gICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCA9IGJsb2Nr
V2l0aFdpZHRoLT5jb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lk
dGgoYmxvY2tXaXRoV2lkdGgtPmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5P
clByZWZlcnJlZFNpemUsIGJsb2NrV2l0aFdpZHRoLT5zdHlsZSgpLT5sb2dpY2FsV2lkdGgoKSks
IGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gYmxvY2tXaXRoV2lk
dGgtPmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChibG9j
a1dpdGhXaWR0aC0+Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJlZmVy
cmVkU2l6ZSwgYmxvY2tXaXRoV2lkdGgtPnN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpKSwgZmFsc2Us
IGluY2x1ZGVNaW5XaWR0aCk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
ICAgICBsb2dpY2FsV2lkdGggPSBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbFdp
ZHRoKCk7CiAKQEAgLTM4NiwxMyArMzg2LDEzIEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6
OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uCiAg
ICAgICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gbWF4PExheW91dFVuaXQ+KDAsIGxvZ2ljYWxX
aWR0aCAtIChtYXJnaW5TdGFydCArIG1hcmdpbkVuZCArICh3aWR0aCgpIC0gY2xpZW50V2lkdGgo
KSkpKTsKICAgICAgICAgICAgICAgICBpZiAoaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkKICAg
ICAgICAgICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoICogY29uc3RyYWlu
ZWRTaXplLndpZHRoKCkgLyAxMDA7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChsb2dpY2FsV2lkdGgsIGluY2x1
ZGVNYXhXaWR0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChsb2dpY2FsV2lkdGgsIGluY2x1ZGVNYXhXaWR0
aCwgaW5jbHVkZU1pbldpZHRoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAg
IC8vIE90aGVyd2lzZSwgaWYgJ3dpZHRoJyBoYXMgYSBjb21wdXRlZCB2YWx1ZSBvZiAnYXV0bycs
IGFuZCB0aGUgZWxlbWVudCBoYXMgYW4gaW50cmluc2ljIHdpZHRoLCB0aGVuIHRoYXQgaW50cmlu
c2ljIHdpZHRoIGlzIHRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcuCiAgICAgICAgIGlmIChoYXNJ
bnRyaW5zaWNXaWR0aCkKLSAgICAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29uc3RyYWluZWRTaXplLndpZHRoKCksIGluY2x1
ZGVNYXhXaWR0aCk7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbnN0cmFpbmVkU2l6ZS53aWR0aCgpLCBpbmNsdWRl
TWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiAKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiAn
d2lkdGgnIGhhcyBhIGNvbXB1dGVkIHZhbHVlIG9mICdhdXRvJywgYnV0IG5vbmUgb2YgdGhlIGNv
bmRpdGlvbnMgYWJvdmUgYXJlIG1ldCwgdGhlbiB0aGUgdXNlZCB2YWx1ZSBvZiAnd2lkdGgnIGJl
Y29tZXMgMzAwcHguIElmIDMwMHB4IGlzIHRvbwogICAgICAgICAvLyB3aWRlIHRvIGZpdCB0aGUg
ZGV2aWNlLCBVQXMgc2hvdWxkIHVzZSB0aGUgd2lkdGggb2YgdGhlIGxhcmdlc3QgcmVjdGFuZ2xl
IHRoYXQgaGFzIGEgMjoxIHJhdGlvIGFuZCBmaXRzIHRoZSBkZXZpY2UgaW5zdGVhZC4KQEAgLTQw
MSw3ICs0MDEsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbgogICAgICAgICAvLyBoYXMgbm8g
aW50cmluc2ljIHNpemUsIHdoaWNoIGlzIHdyb25nIHBlciBDU1MgMi4xLCBidXQgbWF0Y2hlcyBv
dXIgYmVoYXZpb3Igc2luY2UgYSBsb25nIHRpbWUuCiAgICAgfQogCi0gICAgcmV0dXJuIGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChpbnRyaW5zaWNMb2dp
Y2FsV2lkdGgoKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGludHJpbnNpY0xvZ2ljYWxXaWR0aCgp
LCBpbmNsdWRlTWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiB9CiAKIExheW91dFVuaXQgUmVu
ZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdApAQCAtNDUw
LDcgKzQ1MCw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVNYXhQcmVmZXJy
ZWRMb2dpY2FsV2lkdGgoKSBjb25zdAogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBiZSBj
YWxsaW5nIGEgbG9naWNhbCB3aWR0aCBjb21wdXRpbmcgZnVuY3Rpb24gaW4gcHJlZmVycmVkCiAg
ICAgLy8gbG9naWNhbCB3aWR0aHMgY29tcHV0YXRpb24gYXMgdGhlIGxheW91dCBpbmZvcm1hdGlv
biBpcyBwcm9iYWJseSBpbnZhbGlkLgotICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgoZmFsc2UpOworICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoZmFs
c2UsICFzdHlsZSgpLT5sb2dpY2FsTWluV2lkdGgoKS5pc1BlcmNlbnQoKSk7CiB9CiAKIHZvaWQg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYzY5ODYxNjZhMGU5NDIxZTg1
NGViNmM5MWQ5MDI3MzIzNzcyN2ZjNi4uYWUwMmU0NzcwNDFhOThmYzRlOTFlZDExMWZkZDgyZjI0
Mzk2NjlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKQEAg
LTMyLDcgKzMyLDcgQEAgcHVibGljOgogICAgIFJlbmRlclJlcGxhY2VkKE5vZGUqLCBjb25zdCBM
YXlvdXRTaXplJiBpbnRyaW5zaWNTaXplKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSZXBsYWNlZCgp
OwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChi
b29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0cnVl
LCBib29sIGluY2x1ZGVNaW5XaWR0aCA9IHRydWUpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAKICAgICBib29sIGhh
c1JlcGxhY2VkTG9naWNhbFdpZHRoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWE5NzZlMzAzZmU5OGJiNWFi
ZjA2ZjUwNWFhNjFkYjgxM2FlN2ZkNC4uYTQxMzVjYjc2ZTkzZGI0NDQzMGZkNzhlODBjNzUxM2Uz
ZmViOGZiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE4ICBLeXVuZ1RhZSBLaW0g
IDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWluL21heCB3aWR0
aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgdG8gY2hlY2sgd2hl
biB0aGUgc291cmNlIG9mIGltYWdlcyB3aXRoIHBlcmNlbnRhZ2UgbWluLXdpZHRoIGlzIGNoYW5n
ZWQuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5n
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTE4ICBEb21pbmljIE1h
enpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIEFYOiBhcmlhLWNvbnRyb2xz
LXdpdGgtdGFicyBzaG91bGQgcnVuIG9uIENocm9taXVtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcwMGNiNmI2MmZjYjVhN2VhODJkNTg0OGJlMzUzYjY2
YzJiYmE1YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQt
bWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BB
U1MKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRo
LWltZy1zcmMtY2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wZXJjZW50LW1pbi13
aWR0aC1pbWctc3JjLWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMDFhOWIwYzJmZDBhNGRmMDAw
YjM0NzM3OTk3MDRjNjkzMzM3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS5odG1sCkBAIC0wLDAgKzEsNDgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KK3ZhciBjb21wbGV0ZWQgPSAwLCBmYWlsdXJlcyA9IDAsIGZhaWx1cmVzRGV0
YWlsID0gIiI7IAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CitmdW5jdGlvbiBw
cmludFJlc3VsdCgpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5u
ZXJUZXh0ID0gZmFpbHVyZXMgPyAiRkFJTDogIiArIGZhaWx1cmVzICsgIiBjYXNlcyBmYWlsZWRc
biIgKyBmYWlsdXJlc0RldGFpbCA6ICJQQVNTIjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBpbWFnZUNo
ZWNrRm9yTWluKGltYWdlKSB7CisgICAgaWYgKGltYWdlLnNyYy5tYXRjaCgiZ3JlZW5ib3gtMTAw
cHgucG5nIikgICE9IG51bGwpIHsKKyAgICAgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9ncmVl
bmJveC5wbmciOworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgKytjb21wbGV0ZWQ7CisgICAg
ICAgIGlmIChpbWFnZS53aWR0aCAhPSAyNSkgeworICAgICAgICAgICAgKytmYWlsdXJlczsgCisg
ICAgICAgICAgICBmYWlsdXJlc0RldGFpbCArPSAgaW1hZ2UuaWQgKyAiOiAiICsgaW1hZ2Uud2lk
dGggKyAiIChleHBlY3RlZDogIiArIDI1ICsgIilcbiI7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KGNvbXBsZXRlZCA9PSAyKQorICAgICAgICAgICAgIHByaW50UmVzdWx0KCk7CisgICAgfQorfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzx0
YWJsZT4KKzx0Ym9keT4KKzx0cj4KKzx0ZD4KKzxpbWcgaWQ9InBlcmNlbnRNaW5XaWR0aEluVGFi
bGUiIHN0eWxlPSJtaW4td2lkdGg6MTAwJTsiIHNyYz0icmVzb3VyY2VzL2dyZWVuYm94LTEwMHB4
LnBuZyIgb25sb2FkPSJpbWFnZUNoZWNrRm9yTWluKHRoaXMpIj4KKzwvdGQ+Cis8L3RyPgorPC90
Ym9keT4KKzwvdGFibGU+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjAwcHg7
bGVmdDoxMXB4Ij4KKzxpbWcgaWQ9InBlcmNlbnRNaW5XaWR0aEluQWJzb2x1dGUiIHN0eWxlPSJt
aW4td2lkdGg6MTAwJTsiIHNyYz0icmVzb3VyY2VzL2dyZWVuYm94LTEwMHB4LnBuZyIgb25sb2Fk
PSJpbWFnZUNoZWNrRm9yTWluKHRoaXMpIj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180106</attachid>
            <date>2012-12-19 00:12:45 -0800</date>
            <delta_ts>2012-12-19 00:17:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105264-20121219171006.patch</filename>
            <type>text/plain</type>
            <size>17144</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxYmQwMTkxZWVjYWJj
NjBmODZlYTk3NzcyZDA3MTAzNDk3MmYwNi4uNjk4YTNlZWZjYzMyYTBkNWJkYTQ0ODI0ZWZmNWRi
ZjlkMTkyOTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTEyLTE5ICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWlu
L21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBkbyBu
b3QgaW5jbHVkZSBwZXJjZW50YWdlIG1pbiB3aWR0aCBpbiBwcmVmZXJyZWQgbG9naWNhbCB3aWR0
aCBjYWxjdWxhdGlvbiwKKyAgICAgICAgYmVjYXVzZSB3ZSBjYW5ub3QgcmVzb2x2ZSBpdCBmb3Ig
cHJlZmVycmVkIHdpZHRoLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgpOgorICAgICAgICBBZGQgaW5jbHVkZU1pbldpZHRoIHBhcmFtZXRlci4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGlu
Z01pbk1heFdpZHRoKToKKyAgICAgICAgQWRkIGluY2x1ZGVNaW5XaWR0aCBwYXJhbWV0ZXIuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIEFk
ZCBpbmNsdWRlTWluV2lkdGggcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVNYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgpOgorICAgICAgICBOb3QgdG8g
aW5jbHVkZU1pbldpZHRoIGlmIG1pbiB3aWR0aCBpcyBwZXJjZW50IHR5cGUuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgIChSZW5kZXJSZXBsYWNlZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKToKKyAgICAgICAgQWRk
IGluY2x1ZGVNaW5XaWR0aCBwYXJhbWV0ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNW
R1Jvb3QuaDoKKyAgICAgICAgKFJlbmRlclNWR1Jvb3QpOgorCiAyMDEyLTEyLTE4ICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBTaGFkb3dSb290Lmdl
dEVsZW1lbnRCeUlkKCkgcmV0dXJucyBhIGRlbGV0ZWQgZWxlbWVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA1ZTBmMGY3OWZlNGU1OTIwZDBkNzFkODk3NjM5ZGJi
NjEzOTA1MzZkLi5hNjdkNTMxYWJhYzc1MGYyNDBkOThlN2I3MzM0Y2NlODFlODcxM2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMjQxNSwxNCArMjQxNSwxNCBA
QCBMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNv
bnN0IExlbmd0aCYgaGVpZ2h0KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUxheW91
dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRl
TWF4V2lkdGgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoLCBib29sIGluY2x1ZGVNaW5XaWR0aCkgY29u
c3QKIHsKLSAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01p
bk1heFdpZHRoKGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJl
ZFNpemUsIHN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICBy
ZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJlZFNpemUsIHN0eWxl
KCktPmxvZ2ljYWxXaWR0aCgpKSwgaW5jbHVkZU1heFdpZHRoLCBpbmNsdWRlTWluV2lkdGgpOwog
fQogCi1MYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVz
cGVjdGluZ01pbk1heFdpZHRoKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBib29sIGluY2x1ZGVN
YXhXaWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIGJv
b2wgaW5jbHVkZU1heFdpZHRoLCBib29sIGluY2x1ZGVNaW5XaWR0aCkgY29uc3QKIHsKLSAgICBM
YXlvdXRVbml0IG1pbkxvZ2ljYWxXaWR0aCA9IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVz
aW5nKE1pblNpemUsIHN0eWxlKCktPmxvZ2ljYWxNaW5XaWR0aCgpKTsKKyAgICBMYXlvdXRVbml0
IG1pbkxvZ2ljYWxXaWR0aCA9ICFpbmNsdWRlTWluV2lkdGggfHwgc3R5bGUoKS0+bG9naWNhbE1p
bldpZHRoKCkuaXNVbmRlZmluZWQoKSA/IGxvZ2ljYWxXaWR0aCA6IGNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aFVzaW5nKE1pblNpemUsIHN0eWxlKCktPmxvZ2ljYWxNaW5XaWR0aCgpKTsKICAg
ICBMYXlvdXRVbml0IG1heExvZ2ljYWxXaWR0aCA9ICFpbmNsdWRlTWF4V2lkdGggfHwgc3R5bGUo
KS0+bG9naWNhbE1heFdpZHRoKCkuaXNVbmRlZmluZWQoKSA/IGxvZ2ljYWxXaWR0aCA6IGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1heFNpemUsIHN0eWxlKCktPmxvZ2ljYWxNYXhX
aWR0aCgpKTsKICAgICByZXR1cm4gbWF4KG1pbkxvZ2ljYWxXaWR0aCwgbWluKGxvZ2ljYWxXaWR0
aCwgbWF4TG9naWNhbFdpZHRoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgK
aW5kZXggZWMzYmQ2ZDlmOGIwNWQwNGFkOTE2YjZmZjNmMzE1NDY5NDgyNThkNi4uNTJjNGQyNjc3
YmMwMjY2MTk4NmE5ZTZlMGJiOWMzYzQzNmFjYzQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaApAQCAtNDE0LDExICs0MTQsMTEgQEAgcHVibGljOgogICAgIExheW91dFVuaXQg
Y29tcHV0ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KFNpemVUeXBlLCBjb25zdCBMZW5ndGgmIGhlaWdo
dCk7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ29udGVudEFuZFNjcm9sbGJhckxvZ2ljYWxIZWln
aHRVc2luZyhTaXplVHlwZSwgY29uc3QgTGVuZ3RoJiBoZWlnaHQpIGNvbnN0OwogICAgIExheW91
dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoU2l6ZVR5cGUsIExlbmd0aCB3
aWR0aCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhS
ZXNwZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIGJvb2wgaW5jbHVk
ZU1heFdpZHRoID0gdHJ1ZSkgY29uc3Q7CisgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgs
IGJvb2wgaW5jbHVkZU1heFdpZHRoID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTWluV2lkdGggPSB0cnVl
KSBjb25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2lu
ZyhTaXplVHlwZSwgTGVuZ3RoIGhlaWdodCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQpIGNvbnN0OwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0OworICAg
IHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNs
dWRlTWF4V2lkdGggPSB0cnVlLCBib29sIGluY2x1ZGVNaW5XaWR0aCA9IHRydWUpIGNvbnN0Owog
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29u
c3Q7CiAKICAgICBzdGF0aWMgYm9vbCBwZXJjZW50YWdlTG9naWNhbEhlaWdodElzUmVzb2x2YWJs
ZUZyb21CbG9jayhjb25zdCBSZW5kZXJCbG9jayogY29udGFpbmluZ0Jsb2NrLCBib29sIG91dE9m
Rmxvd1Bvc2l0aW9uZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5jcHAKaW5kZXggNjIzZTJmMDdkMmFiNGZkYTJhMWNmNDkwOWI4MzA4NGIxMjBmOTY3Yi4uNTQ0
ZWU1ZWEzOTg5ZWVkNmY4M2U4Y2JjZTZhNmQzZDg5NzVhNjhlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zMzcsMTAgKzMzNywxMCBAQCB2b2lk
IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljUmF0aW9JbmZvcm1hdGlvbihGbG9hdFNp
emUmIGludHJpbnNpY1NpemUsCiAgICAgaW50cmluc2ljUmF0aW8gPSBpbnRyaW5zaWNTaXplLndp
ZHRoKCkgLyBpbnRyaW5zaWNTaXplLmhlaWdodCgpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclJl
cGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgp
IGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgsIGJvb2wgaW5jbHVkZU1pbldpZHRoKSBjb25zdAog
ewogICAgIGlmIChzdHlsZSgpLT5sb2dpY2FsV2lkdGgoKS5pc1NwZWNpZmllZCgpKQotICAgICAg
ICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRo
KGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJlZFNpemUsIHN0
eWxlKCktPmxvZ2ljYWxXaWR0aCgpKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICAgICAgcmV0dXJu
IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb21wdXRl
UmVwbGFjZWRMb2dpY2FsV2lkdGhVc2luZyhNYWluT3JQcmVmZXJyZWRTaXplLCBzdHlsZSgpLT5s
b2dpY2FsV2lkdGgoKSksIGluY2x1ZGVNYXhXaWR0aCwgaW5jbHVkZU1pbldpZHRoKTsKIAogICAg
IFJlbmRlckJveCogY29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCk7CiAKQEAg
LTM1Niw3ICszNTYsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbgogCiAgICAgICAgIC8vIElm
ICdoZWlnaHQnIGFuZCAnd2lkdGgnIGJvdGggaGF2ZSBjb21wdXRlZCB2YWx1ZXMgb2YgJ2F1dG8n
IGFuZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBhbiBpbnRyaW5zaWMgd2lkdGgsIHRoZW4gdGhhdCBp
bnRyaW5zaWMgd2lkdGggaXMgdGhlIHVzZWQgdmFsdWUgb2YgJ3dpZHRoJy4KICAgICAgICAgaWYg
KGhlaWdodElzQXV0byAmJiBoYXNJbnRyaW5zaWNXaWR0aCkKLSAgICAgICAgICAgIHJldHVybiBj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29uc3RyYWlu
ZWRTaXplLndpZHRoKCksIGluY2x1ZGVNYXhXaWR0aCk7CisgICAgICAgICAgICByZXR1cm4gY29t
cHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbnN0cmFpbmVk
U2l6ZS53aWR0aCgpLCBpbmNsdWRlTWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiAKICAgICAg
ICAgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgPSAhaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSAm
JiBjb25zdHJhaW5lZFNpemUuaGVpZ2h0KCkgPiAwOwogICAgICAgICBpZiAoaW50cmluc2ljUmF0
aW8gfHwgaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkgewpAQCAtMzY1LDcgKzM2NSw3IEBAIExh
eW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29s
IGluY2x1ZGVNYXhXaWR0aCkgY29uCiAgICAgICAgICAgICAvLyBvZiAnd2lkdGgnIGlzOiAodXNl
ZCBoZWlnaHQpICogKGludHJpbnNpYyByYXRpbykKICAgICAgICAgICAgIGlmIChpbnRyaW5zaWNS
YXRpbyAmJiAoKGhlaWdodElzQXV0byAmJiAhaGFzSW50cmluc2ljV2lkdGggJiYgaGFzSW50cmlu
c2ljSGVpZ2h0KSB8fCAhaGVpZ2h0SXNBdXRvKSkgewogICAgICAgICAgICAgICAgIExheW91dFVu
aXQgbG9naWNhbEhlaWdodCA9IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01p
bk1heFdpZHRoKHJvdW5kVG9JbnQocm91bmQobG9naWNhbEhlaWdodCAqIGludHJpbnNpY1JhdGlv
KSkpOworICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhS
ZXNwZWN0aW5nTWluTWF4V2lkdGgocm91bmRUb0ludChyb3VuZChsb2dpY2FsSGVpZ2h0ICogaW50
cmluc2ljUmF0aW8pKSwgaW5jbHVkZU1heFdpZHRoLCBpbmNsdWRlTWluV2lkdGgpOwogICAgICAg
ICAgICAgfQogCiAgICAgICAgICAgICAvLyBJZiAnaGVpZ2h0JyBhbmQgJ3dpZHRoJyBib3RoIGhh
dmUgY29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1lbnQgaGFzIGFuIGludHJp
bnNpYyByYXRpbyBidXQgbm8gaW50cmluc2ljIGhlaWdodCBvciB3aWR0aCwgdGhlbiB0aGUgdXNl
ZCB2YWx1ZSBvZgpAQCAtMzc2LDcgKzM3Niw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6
OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uCiAg
ICAgICAgICAgICAgICAgLy8gJ21hcmdpbi1sZWZ0JyArICdib3JkZXItbGVmdC13aWR0aCcgKyAn
cGFkZGluZy1sZWZ0JyArICd3aWR0aCcgKyAncGFkZGluZy1yaWdodCcgKyAnYm9yZGVyLXJpZ2h0
LXdpZHRoJyArICdtYXJnaW4tcmlnaHQnID0gd2lkdGggb2YgY29udGFpbmluZyBibG9jawogICAg
ICAgICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbFdpZHRoOwogICAgICAgICAgICAgICAgIGlm
IChSZW5kZXJCbG9jayogYmxvY2tXaXRoV2lkdGggPSBmaXJzdENvbnRhaW5pbmdCbG9ja1dpdGhM
b2dpY2FsV2lkdGgodGhpcykpCi0gICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCA9IGJs
b2NrV2l0aFdpZHRoLT5jb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4
V2lkdGgoYmxvY2tXaXRoV2lkdGgtPmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1h
aW5PclByZWZlcnJlZFNpemUsIGJsb2NrV2l0aFdpZHRoLT5zdHlsZSgpLT5sb2dpY2FsV2lkdGgo
KSksIGZhbHNlKTsKKyAgICAgICAgICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gYmxvY2tXaXRo
V2lkdGgtPmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChi
bG9ja1dpdGhXaWR0aC0+Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJl
ZmVycmVkU2l6ZSwgYmxvY2tXaXRoV2lkdGgtPnN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpKSwgZmFs
c2UsIGluY2x1ZGVNaW5XaWR0aCk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICBsb2dpY2FsV2lkdGggPSBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNh
bFdpZHRoKCk7CiAKQEAgLTM4NiwxMyArMzg2LDEzIEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFj
ZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29u
CiAgICAgICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gbWF4PExheW91dFVuaXQ+KDAsIGxvZ2lj
YWxXaWR0aCAtIChtYXJnaW5TdGFydCArIG1hcmdpbkVuZCArICh3aWR0aCgpIC0gY2xpZW50V2lk
dGgoKSkpKTsKICAgICAgICAgICAgICAgICBpZiAoaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkK
ICAgICAgICAgICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoICogY29uc3Ry
YWluZWRTaXplLndpZHRoKCkgLyAxMDA7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChsb2dpY2FsV2lkdGgsIGlu
Y2x1ZGVNYXhXaWR0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChsb2dpY2FsV2lkdGgsIGluY2x1ZGVNYXhX
aWR0aCwgaW5jbHVkZU1pbldpZHRoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAg
ICAgIC8vIE90aGVyd2lzZSwgaWYgJ3dpZHRoJyBoYXMgYSBjb21wdXRlZCB2YWx1ZSBvZiAnYXV0
bycsIGFuZCB0aGUgZWxlbWVudCBoYXMgYW4gaW50cmluc2ljIHdpZHRoLCB0aGVuIHRoYXQgaW50
cmluc2ljIHdpZHRoIGlzIHRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcuCiAgICAgICAgIGlmICho
YXNJbnRyaW5zaWNXaWR0aCkKLSAgICAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29uc3RyYWluZWRTaXplLndpZHRoKCksIGlu
Y2x1ZGVNYXhXaWR0aCk7CisgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNh
bFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbnN0cmFpbmVkU2l6ZS53aWR0aCgpLCBpbmNs
dWRlTWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiAKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBp
ZiAnd2lkdGgnIGhhcyBhIGNvbXB1dGVkIHZhbHVlIG9mICdhdXRvJywgYnV0IG5vbmUgb2YgdGhl
IGNvbmRpdGlvbnMgYWJvdmUgYXJlIG1ldCwgdGhlbiB0aGUgdXNlZCB2YWx1ZSBvZiAnd2lkdGgn
IGJlY29tZXMgMzAwcHguIElmIDMwMHB4IGlzIHRvbwogICAgICAgICAvLyB3aWRlIHRvIGZpdCB0
aGUgZGV2aWNlLCBVQXMgc2hvdWxkIHVzZSB0aGUgd2lkdGggb2YgdGhlIGxhcmdlc3QgcmVjdGFu
Z2xlIHRoYXQgaGFzIGEgMjoxIHJhdGlvIGFuZCBmaXRzIHRoZSBkZXZpY2UgaW5zdGVhZC4KQEAg
LTQwMSw3ICs0MDEsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbgogICAgICAgICAvLyBoYXMg
bm8gaW50cmluc2ljIHNpemUsIHdoaWNoIGlzIHdyb25nIHBlciBDU1MgMi4xLCBidXQgbWF0Y2hl
cyBvdXIgYmVoYXZpb3Igc2luY2UgYSBsb25nIHRpbWUuCiAgICAgfQogCi0gICAgcmV0dXJuIGNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChpbnRyaW5zaWNM
b2dpY2FsV2lkdGgoKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICByZXR1cm4gY29tcHV0ZVJlcGxh
Y2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGludHJpbnNpY0xvZ2ljYWxXaWR0
aCgpLCBpbmNsdWRlTWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiB9CiAKIExheW91dFVuaXQg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdApAQCAt
NDUwLDcgKzQ1MCw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVNYXhQcmVm
ZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZG4ndCBi
ZSBjYWxsaW5nIGEgbG9naWNhbCB3aWR0aCBjb21wdXRpbmcgZnVuY3Rpb24gaW4gcHJlZmVycmVk
CiAgICAgLy8gbG9naWNhbCB3aWR0aHMgY29tcHV0YXRpb24gYXMgdGhlIGxheW91dCBpbmZvcm1h
dGlvbiBpcyBwcm9iYWJseSBpbnZhbGlkLgotICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGgoZmFsc2UpOworICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgo
ZmFsc2UsICFzdHlsZSgpLT5sb2dpY2FsTWluV2lkdGgoKS5pc1BlcmNlbnQoKSk7CiB9CiAKIHZv
aWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYzY5ODYxNjZhMGU5NDIx
ZTg1NGViNmM5MWQ5MDI3MzIzNzcyN2ZjNi4uYWUwMmU0NzcwNDFhOThmYzRlOTFlZDExMWZkZDgy
ZjI0Mzk2NjlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgK
QEAgLTMyLDcgKzMyLDcgQEAgcHVibGljOgogICAgIFJlbmRlclJlcGxhY2VkKE5vZGUqLCBjb25z
dCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSZXBsYWNl
ZCgpOwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aChib29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0
cnVlLCBib29sIGluY2x1ZGVNaW5XaWR0aCA9IHRydWUpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAKICAgICBib29s
IGhhc1JlcGxhY2VkTG9naWNhbFdpZHRoKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCAwNDhjNGY2MDQ0NzdlMzQyNTVjYTJm
ZGZkNzk1N2I1MTFkNDRiZTcxLi4xMDllYTQ1NjUxMjU1MjJlYjU0NzBlNmU5OTk2ODE1Y2I1ZWYw
NzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5j
cHAKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgaW5saW5lIExheW91dFVuaXQgcmVzb2x2ZUxl
bmd0aEF0dHJpYnV0ZUZvclNWRyhjb25zdCBMZW5ndGgmIGxlbmd0aCwgZmxvYQogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxMYXlvdXRVbml0Pih2YWx1ZUZvckxlbmd0aChsZW5ndGgsIG1heFNpemUs
IHJlbmRlclZpZXcpICogKGxlbmd0aC5pc0ZpeGVkKCkgPyBzY2FsZSA6IDEpKTsKIH0KIAotTGF5
b3V0VW5pdCBSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBp
bmNsdWRlTWF4V2lkdGgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCwgYm9vbCBpbmNsdWRlTWlu
V2lkdGgpIGNvbnN0CiB7CiAgICAgU1ZHU1ZHRWxlbWVudCogc3ZnID0gc3RhdGljX2Nhc3Q8U1ZH
U1ZHRWxlbWVudCo+KG5vZGUoKSk7CiAgICAgQVNTRVJUKHN2Zyk7CkBAIC0xNjksNyArMTY5LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgo
Ym9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbnMKICAgICAgICAgcmV0dXJuIG1fY29udGFpbmVyU2l6
ZS53aWR0aCgpOwogCiAgICAgaWYgKHN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpLmlzU3BlY2lmaWVk
KCkgfHwgc3R5bGUoKS0+bG9naWNhbE1heFdpZHRoKCkuaXNTcGVjaWZpZWQoKSkKLSAgICAgICAg
cmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoaW5jbHVk
ZU1heFdpZHRoKTsKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGgoaW5jbHVkZU1heFdpZHRoLCBpbmNsdWRlTWluV2lkdGgpOwogCiAgICAg
aWYgKHN2Zy0+d2lkdGhBdHRyaWJ1dGVFc3RhYmxpc2hlc1ZpZXdwb3J0KCkpCiAgICAgICAgIHJl
dHVybiByZXNvbHZlTGVuZ3RoQXR0cmlidXRlRm9yU1ZHKHN2Zy0+aW50cmluc2ljV2lkdGgoU1ZH
U1ZHRWxlbWVudDo6SWdub3JlQ1NTUHJvcGVydGllcyksIHN0eWxlKCktPmVmZmVjdGl2ZVpvb20o
KSwgY29udGFpbmluZ0Jsb2NrKCktPmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpLCB2aWV3KCkpOwpA
QCAtMTc5LDcgKzE3OSw3IEBAIExheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxh
Y2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb25zCiAgICAgICAgIHJldHVy
biBkb2N1bWVudCgpLT5mcmFtZSgpLT5vd25lclJlbmRlcmVyKCktPmF2YWlsYWJsZUxvZ2ljYWxX
aWR0aCgpOwogCiAgICAgLy8gU1ZHIGVtYmVkZGVkIHZpYSBTVkdJbWFnZSAoYmFja2dyb3VuZC1p
bWFnZS9ib3JkZXItaW1hZ2UvZXRjKSAvIElubGluZSBTVkcuCi0gICAgcmV0dXJuIFJlbmRlclJl
cGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoaW5jbHVkZU1heFdpZHRoKTsKKyAg
ICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChpbmNs
dWRlTWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyU1ZH
Um9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDUyMzRlZjEyYzU4MGQ4NjY3
NGIzMGI5OTAxMDdkZjExZjJkM2MwYzMuLmRhNGYyN2Y0YTBkNWMzN2QwNDdkMjdmMGQ3ZGNlOTVl
NWIxNDdjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU1ZHUm9v
dCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHUm9vdCI7IH0KIAotICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lk
dGggPSB0cnVlKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoID0gdHJ1ZSwgYm9vbCBpbmNsdWRlTWlu
V2lkdGggPSB0cnVlKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxh
Y2VkTG9naWNhbEhlaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRSZXBsYWNlZChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2lu
dCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGQ3NWU2OTg2ZDkyZDcwZDJmNjJjYTk3Zjc5NWI1N2JlOWIxYmRiM2QuLjgw
OTEzYjNjMDFhNmFjY2FiNDA3ODNkNmM2ZjdlOGNmZjE2OTlkYWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0xMi0xOSAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBQZXJjZW50YWdlIG1pbi9tYXggd2lkdGggcmVwbGFjZWQgZWxlbWVudCBtYXkgaW5j
b3JyZWN0bHkgcmVuZGVyZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwNTI2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCB0ZXN0IHRvIGNoZWNrIHdoZW4gdGhlIHNvdXJjZSBvZiBpbWFnZXMgd2l0
aCBwZXJjZW50YWdlIG1pbi13aWR0aCBpcyBjaGFuZ2VkLgorCisgICAgICAgICogZmFzdC9jc3Mv
cGVyY2VudC1taW4td2lkdGgtaW1nLXNyYy1jaGFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS5odG1sOiBB
ZGRlZC4KKwogMjAxMi0xMi0xOCAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBBWDogcmFkaW8tYnV0dG9uLWNoZWNrYm94LXNpemUgaXMgTWFjLXNwZWNp
ZmljIGFuZCBzaG91bGQgYmUgbW92ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTcwMGNiNmI2MmZjYjVhN2VhODJkNTg0OGJlMzUzYjY2YzJiYmE1Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRo
LWltZy1zcmMtY2hhbmdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MKKyAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMt
Y2hhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWct
c3JjLWNoYW5nZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMDFhOWIwYzJmZDBhNGRmMDAwYjM0NzM3OTk3
MDRjNjkzMzM3NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wZXJj
ZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KK3ZhciBjb21wbGV0ZWQgPSAwLCBmYWlsdXJlcyA9IDAsIGZhaWx1cmVzRGV0YWlsID0gIiI7
IAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CitmdW5jdGlvbiBwcmludFJlc3Vs
dCgpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0g
ZmFpbHVyZXMgPyAiRkFJTDogIiArIGZhaWx1cmVzICsgIiBjYXNlcyBmYWlsZWRcbiIgKyBmYWls
dXJlc0RldGFpbCA6ICJQQVNTIjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBpbWFnZUNoZWNrRm9yTWlu
KGltYWdlKSB7CisgICAgaWYgKGltYWdlLnNyYy5tYXRjaCgiZ3JlZW5ib3gtMTAwcHgucG5nIikg
ICE9IG51bGwpIHsKKyAgICAgICAgaW1hZ2Uuc3JjID0gInJlc291cmNlcy9ncmVlbmJveC5wbmci
OworICAgIH0KKyAgICBlbHNlIHsKKyAgICAgICAgKytjb21wbGV0ZWQ7CisgICAgICAgIGlmIChp
bWFnZS53aWR0aCAhPSAyNSkgeworICAgICAgICAgICAgKytmYWlsdXJlczsgCisgICAgICAgICAg
ICBmYWlsdXJlc0RldGFpbCArPSAgaW1hZ2UuaWQgKyAiOiAiICsgaW1hZ2Uud2lkdGggKyAiIChl
eHBlY3RlZDogIiArIDI1ICsgIilcbiI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNvbXBsZXRl
ZCA9PSAyKQorICAgICAgICAgICAgIHByaW50UmVzdWx0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+CisKKzxib2R5PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzx0YWJsZT4KKzx0
Ym9keT4KKzx0cj4KKzx0ZD4KKzxpbWcgaWQ9InBlcmNlbnRNaW5XaWR0aEluVGFibGUiIHN0eWxl
PSJtaW4td2lkdGg6MTAwJTsiIHNyYz0icmVzb3VyY2VzL2dyZWVuYm94LTEwMHB4LnBuZyIgb25s
b2FkPSJpbWFnZUNoZWNrRm9yTWluKHRoaXMpIj4KKzwvdGQ+Cis8L3RyPgorPC90Ym9keT4KKzwv
dGFibGU+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MjAwcHg7bGVmdDoxMXB4
Ij4KKzxpbWcgaWQ9InBlcmNlbnRNaW5XaWR0aEluQWJzb2x1dGUiIHN0eWxlPSJtaW4td2lkdGg6
MTAwJTsiIHNyYz0icmVzb3VyY2VzL2dyZWVuYm94LTEwMHB4LnBuZyIgb25sb2FkPSJpbWFnZUNo
ZWNrRm9yTWluKHRoaXMpIj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180107</attachid>
            <date>2012-12-19 00:18:05 -0800</date>
            <delta_ts>2012-12-19 18:07:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105264-20121219171526.patch</filename>
            <type>text/plain</type>
            <size>18814</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxYmQwMTkxZWVjYWJj
NjBmODZlYTk3NzcyZDA3MTAzNDk3MmYwNi4uZWVlMjY3OWE1OWRmYTg5MmY3NWI4NzdmZGM0OWMz
ZjBhMzY3Njk1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEyLTE5ICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWlu
L21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBkbyBu
b3QgaW5jbHVkZSBwZXJjZW50YWdlIG1pbiB3aWR0aCBpbiBwcmVmZXJyZWQgbG9naWNhbCB3aWR0
aCBjYWxjdWxhdGlvbiwKKyAgICAgICAgYmVjYXVzZSB3ZSBjYW5ub3QgcmVzb2x2ZSBpdCBmb3Ig
cHJlZmVycmVkIHdpZHRoLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgpOgorICAgICAgICBBZGQgaW5jbHVkZU1pbldpZHRoIHBhcmFtZXRlci4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGlu
Z01pbk1heFdpZHRoKToKKyAgICAgICAgQWRkIGluY2x1ZGVNaW5XaWR0aCBwYXJhbWV0ZXIuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIEFk
ZCBpbmNsdWRlTWluV2lkdGggcGFyYW1ldGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVNYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgpOgorICAgICAgICBOb3QgdG8g
aW5jbHVkZU1pbldpZHRoIGlmIG1pbiB3aWR0aCBpcyBwZXJjZW50IHR5cGUuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisgICAgICAgIChSZW5kZXJSZXBsYWNlZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKToKKyAgICAgICAgQWRk
IGluY2x1ZGVNaW5XaWR0aCBwYXJhbWV0ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNW
R1Jvb3QuaDoKKyAgICAgICAgKFJlbmRlclNWR1Jvb3QpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJWaWRlby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWRlbzo6Y29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoKToKKyAgICAgICAgQWRkIGluY2x1ZGVNaW5XaWR0aCBwYXJhbWV0
ZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVvLmg6CisgICAgICAgIChSZW5kZXJW
aWRlbyk6CisKIDIwMTItMTItMTggIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoKSByZXR1cm5zIGEgZGVs
ZXRlZCBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDVl
MGYwZjc5ZmU0ZTU5MjBkMGQ3MWQ4OTc2MzlkYmI2MTM5MDUzNmQuLmE2N2Q1MzFhYmFjNzUwZjI0
MGQ5OGU3YjczMzRjY2U4MWU4NzEzYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCkBAIC0yNDE1LDE0ICsyNDE1LDE0IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21w
dXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQoY29uc3QgTGVuZ3RoJiBoZWlnaHQpIGNvbnN0CiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uc3QKK0xheW91dFVuaXQg
UmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lk
dGgsIGJvb2wgaW5jbHVkZU1pbldpZHRoKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRlUmVw
bGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS0+bG9naWNhbFdpZHRo
KCkpLCBpbmNsdWRlTWF4V2lkdGgpOworICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNp
bmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBpbmNsdWRl
TWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94Ojpj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGgsIGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb25zdAorTGF5b3V0VW5pdCBS
ZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0
aChMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgYm9vbCBpbmNsdWRlTWF4V2lkdGgsIGJvb2wgaW5j
bHVkZU1pbldpZHRoKSBjb25zdAogewotICAgIExheW91dFVuaXQgbWluTG9naWNhbFdpZHRoID0g
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWluU2l6ZSwgc3R5bGUoKS0+bG9naWNh
bE1pbldpZHRoKCkpOworICAgIExheW91dFVuaXQgbWluTG9naWNhbFdpZHRoID0gIWluY2x1ZGVN
aW5XaWR0aCB8fCBzdHlsZSgpLT5sb2dpY2FsTWluV2lkdGgoKS5pc1VuZGVmaW5lZCgpID8gbG9n
aWNhbFdpZHRoIDogY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWluU2l6ZSwgc3R5
bGUoKS0+bG9naWNhbE1pbldpZHRoKCkpOwogICAgIExheW91dFVuaXQgbWF4TG9naWNhbFdpZHRo
ID0gIWluY2x1ZGVNYXhXaWR0aCB8fCBzdHlsZSgpLT5sb2dpY2FsTWF4V2lkdGgoKS5pc1VuZGVm
aW5lZCgpID8gbG9naWNhbFdpZHRoIDogY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmco
TWF4U2l6ZSwgc3R5bGUoKS0+bG9naWNhbE1heFdpZHRoKCkpOwogICAgIHJldHVybiBtYXgobWlu
TG9naWNhbFdpZHRoLCBtaW4obG9naWNhbFdpZHRoLCBtYXhMb2dpY2FsV2lkdGgpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBlYzNiZDZkOWY4YjA1ZDA0YWQ5MTZi
NmZmM2YzMTU0Njk0ODI1OGQ2Li41MmM0ZDI2NzdiYzAyNjYxOTg2YTllNmUwYmI5YzNjNDM2YWNj
NDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00MTQsMTEgKzQxNCwx
MSBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ29udGVudExvZ2ljYWxIZWlnaHQo
U2l6ZVR5cGUsIGNvbnN0IExlbmd0aCYgaGVpZ2h0KTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVD
b250ZW50QW5kU2Nyb2xsYmFyTG9naWNhbEhlaWdodFVzaW5nKFNpemVUeXBlLCBjb25zdCBMZW5n
dGgmIGhlaWdodCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGhVc2luZyhTaXplVHlwZSwgTGVuZ3RoIHdpZHRoKSBjb25zdDsKLSAgICBMYXlvdXRVbml0
IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChMYXlvdXRV
bml0IGxvZ2ljYWxXaWR0aCwgYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0cnVlKSBjb25zdDsKKyAg
ICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhX
aWR0aChMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0cnVl
LCBib29sIGluY2x1ZGVNaW5XaWR0aCA9IHRydWUpIGNvbnN0OwogICAgIExheW91dFVuaXQgY29t
cHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFVzaW5nKFNpemVUeXBlLCBMZW5ndGggaGVpZ2h0KSBj
b25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRSZXNwZWN0
aW5nTWluTWF4SGVpZ2h0KExheW91dFVuaXQgbG9naWNhbEhlaWdodCkgY29uc3Q7CiAKLSAgICB2
aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVk
ZU1heFdpZHRoID0gdHJ1ZSkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUsIGJvb2wgaW5j
bHVkZU1pbldpZHRoID0gdHJ1ZSkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAogICAgIHN0YXRpYyBib29sIHBlcmNl
bnRhZ2VMb2dpY2FsSGVpZ2h0SXNSZXNvbHZhYmxlRnJvbUJsb2NrKGNvbnN0IFJlbmRlckJsb2Nr
KiBjb250YWluaW5nQmxvY2ssIGJvb2wgb3V0T2ZGbG93UG9zaXRpb25lZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA2MjNlMmYwN2QyYWI0ZmRh
MmExY2Y0OTA5YjgzMDg0YjEyMGY5NjdiLi41NDRlZTVlYTM5ODllZWQ2ZjgzZThjYmNlNmE2ZDNk
ODk3NWE2OGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5j
cHAKQEAgLTMzNywxMCArMzM3LDEwIEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRy
aW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwKICAgICBpbnRy
aW5zaWNSYXRpbyA9IGludHJpbnNpY1NpemUud2lkdGgoKSAvIGludHJpbnNpY1NpemUuaGVpZ2h0
KCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCwg
Ym9vbCBpbmNsdWRlTWluV2lkdGgpIGNvbnN0CiB7CiAgICAgaWYgKHN0eWxlKCktPmxvZ2ljYWxX
aWR0aCgpLmlzU3BlY2lmaWVkKCkpCi0gICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
VXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBpbmNs
dWRlTWF4V2lkdGgpOworICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
UmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1h
aW5PclByZWZlcnJlZFNpemUsIHN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpKSwgaW5jbHVkZU1heFdp
ZHRoLCBpbmNsdWRlTWluV2lkdGgpOwogCiAgICAgUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIg
PSBlbWJlZGRlZENvbnRlbnRCb3goKTsKIApAQCAtMzU2LDcgKzM1Niw3IEBAIExheW91dFVuaXQg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVN
YXhXaWR0aCkgY29uCiAKICAgICAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90aCBo
YXZlIGNvbXB1dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIGFu
IGludHJpbnNpYyB3aWR0aCwgdGhlbiB0aGF0IGludHJpbnNpYyB3aWR0aCBpcyB0aGUgdXNlZCB2
YWx1ZSBvZiAnd2lkdGgnLgogICAgICAgICBpZiAoaGVpZ2h0SXNBdXRvICYmIGhhc0ludHJpbnNp
Y1dpZHRoKQotICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJl
c3BlY3RpbmdNaW5NYXhXaWR0aChjb25zdHJhaW5lZFNpemUud2lkdGgoKSwgaW5jbHVkZU1heFdp
ZHRoKTsKKyAgICAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNw
ZWN0aW5nTWluTWF4V2lkdGgoY29uc3RyYWluZWRTaXplLndpZHRoKCksIGluY2x1ZGVNYXhXaWR0
aCwgaW5jbHVkZU1pbldpZHRoKTsKIAogICAgICAgICBib29sIGhhc0ludHJpbnNpY0hlaWdodCA9
ICFpc1BlcmNlbnRhZ2VJbnRyaW5zaWNTaXplICYmIGNvbnN0cmFpbmVkU2l6ZS5oZWlnaHQoKSA+
IDA7CiAgICAgICAgIGlmIChpbnRyaW5zaWNSYXRpbyB8fCBpc1BlcmNlbnRhZ2VJbnRyaW5zaWNT
aXplKSB7CkBAIC0zNjUsNyArMzY1LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29t
cHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb24KICAgICAg
ICAgICAgIC8vIG9mICd3aWR0aCcgaXM6ICh1c2VkIGhlaWdodCkgKiAoaW50cmluc2ljIHJhdGlv
KQogICAgICAgICAgICAgaWYgKGludHJpbnNpY1JhdGlvICYmICgoaGVpZ2h0SXNBdXRvICYmICFo
YXNJbnRyaW5zaWNXaWR0aCAmJiBoYXNJbnRyaW5zaWNIZWlnaHQpIHx8ICFoZWlnaHRJc0F1dG8p
KSB7CiAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gY29tcHV0ZVJl
cGxhY2VkTG9naWNhbEhlaWdodCgpOwotICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlUmVw
bGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgocm91bmRUb0ludChyb3VuZChs
b2dpY2FsSGVpZ2h0ICogaW50cmluc2ljUmF0aW8pKSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChyb3VuZFRv
SW50KHJvdW5kKGxvZ2ljYWxIZWlnaHQgKiBpbnRyaW5zaWNSYXRpbykpLCBpbmNsdWRlTWF4V2lk
dGgsIGluY2x1ZGVNaW5XaWR0aCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIElm
ICdoZWlnaHQnIGFuZCAnd2lkdGgnIGJvdGggaGF2ZSBjb21wdXRlZCB2YWx1ZXMgb2YgJ2F1dG8n
IGFuZCB0aGUgZWxlbWVudCBoYXMgYW4gaW50cmluc2ljIHJhdGlvIGJ1dCBubyBpbnRyaW5zaWMg
aGVpZ2h0IG9yIHdpZHRoLCB0aGVuIHRoZSB1c2VkIHZhbHVlIG9mCkBAIC0zNzYsNyArMzc2LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
KGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb24KICAgICAgICAgICAgICAgICAvLyAnbWFyZ2luLWxl
ZnQnICsgJ2JvcmRlci1sZWZ0LXdpZHRoJyArICdwYWRkaW5nLWxlZnQnICsgJ3dpZHRoJyArICdw
YWRkaW5nLXJpZ2h0JyArICdib3JkZXItcmlnaHQtd2lkdGgnICsgJ21hcmdpbi1yaWdodCcgPSB3
aWR0aCBvZiBjb250YWluaW5nIGJsb2NrCiAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGg7CiAgICAgICAgICAgICAgICAgaWYgKFJlbmRlckJsb2NrKiBibG9ja1dpdGhXaWR0
aCA9IGZpcnN0Q29udGFpbmluZ0Jsb2NrV2l0aExvZ2ljYWxXaWR0aCh0aGlzKSkKLSAgICAgICAg
ICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gYmxvY2tXaXRoV2lkdGgtPmNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChibG9ja1dpdGhXaWR0aC0+Y29tcHV0
ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgYmxvY2tXaXRo
V2lkdGgtPnN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpKSwgZmFsc2UpOworICAgICAgICAgICAgICAg
ICAgICBsb2dpY2FsV2lkdGggPSBibG9ja1dpdGhXaWR0aC0+Y29tcHV0ZVJlcGxhY2VkTG9naWNh
bFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGJsb2NrV2l0aFdpZHRoLT5jb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGhVc2luZyhNYWluT3JQcmVmZXJyZWRTaXplLCBibG9ja1dpdGhXaWR0aC0+
c3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBmYWxzZSwgaW5jbHVkZU1pbldpZHRoKTsKICAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCA9IGNvbnRh
aW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKIApAQCAtMzg2LDEzICszODYs
MTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb24KICAgICAgICAgICAgICAgICBsb2dpY2FsV2lk
dGggPSBtYXg8TGF5b3V0VW5pdD4oMCwgbG9naWNhbFdpZHRoIC0gKG1hcmdpblN0YXJ0ICsgbWFy
Z2luRW5kICsgKHdpZHRoKCkgLSBjbGllbnRXaWR0aCgpKSkpOwogICAgICAgICAgICAgICAgIGlm
IChpc1BlcmNlbnRhZ2VJbnRyaW5zaWNTaXplKQogICAgICAgICAgICAgICAgICAgICBsb2dpY2Fs
V2lkdGggPSBsb2dpY2FsV2lkdGggKiBjb25zdHJhaW5lZFNpemUud2lkdGgoKSAvIDEwMDsKLSAg
ICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGlu
Z01pbk1heFdpZHRoKGxvZ2ljYWxXaWR0aCwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdp
ZHRoKGxvZ2ljYWxXaWR0aCwgaW5jbHVkZU1heFdpZHRoLCBpbmNsdWRlTWluV2lkdGgpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiAnd2lkdGgn
IGhhcyBhIGNvbXB1dGVkIHZhbHVlIG9mICdhdXRvJywgYW5kIHRoZSBlbGVtZW50IGhhcyBhbiBp
bnRyaW5zaWMgd2lkdGgsIHRoZW4gdGhhdCBpbnRyaW5zaWMgd2lkdGggaXMgdGhlIHVzZWQgdmFs
dWUgb2YgJ3dpZHRoJy4KICAgICAgICAgaWYgKGhhc0ludHJpbnNpY1dpZHRoKQotICAgICAgICAg
ICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0
aChjb25zdHJhaW5lZFNpemUud2lkdGgoKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICAgICAgICAg
IHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgo
Y29uc3RyYWluZWRTaXplLndpZHRoKCksIGluY2x1ZGVNYXhXaWR0aCwgaW5jbHVkZU1pbldpZHRo
KTsKIAogICAgICAgICAvLyBPdGhlcndpc2UsIGlmICd3aWR0aCcgaGFzIGEgY29tcHV0ZWQgdmFs
dWUgb2YgJ2F1dG8nLCBidXQgbm9uZSBvZiB0aGUgY29uZGl0aW9ucyBhYm92ZSBhcmUgbWV0LCB0
aGVuIHRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcgYmVjb21lcyAzMDBweC4gSWYgMzAwcHggaXMg
dG9vCiAgICAgICAgIC8vIHdpZGUgdG8gZml0IHRoZSBkZXZpY2UsIFVBcyBzaG91bGQgdXNlIHRo
ZSB3aWR0aCBvZiB0aGUgbGFyZ2VzdCByZWN0YW5nbGUgdGhhdCBoYXMgYSAyOjEgcmF0aW8gYW5k
IGZpdHMgdGhlIGRldmljZSBpbnN0ZWFkLgpAQCAtNDAxLDcgKzQwMSw3IEBAIExheW91dFVuaXQg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVN
YXhXaWR0aCkgY29uCiAgICAgICAgIC8vIGhhcyBubyBpbnRyaW5zaWMgc2l6ZSwgd2hpY2ggaXMg
d3JvbmcgcGVyIENTUyAyLjEsIGJ1dCBtYXRjaGVzIG91ciBiZWhhdmlvciBzaW5jZSBhIGxvbmcg
dGltZS4KICAgICB9CiAKLSAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVz
cGVjdGluZ01pbk1heFdpZHRoKGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbmNsdWRlTWF4V2lk
dGgpOworICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWlu
TWF4V2lkdGgoaW50cmluc2ljTG9naWNhbFdpZHRoKCksIGluY2x1ZGVNYXhXaWR0aCwgaW5jbHVk
ZU1pbldpZHRoKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxh
Y2VkTG9naWNhbEhlaWdodCgpIGNvbnN0CkBAIC00NTAsNyArNDUwLDcgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZU1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0CiAK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGJlIGNhbGxpbmcgYSBsb2dpY2FsIHdpZHRoIGNv
bXB1dGluZyBmdW5jdGlvbiBpbiBwcmVmZXJyZWQKICAgICAvLyBsb2dpY2FsIHdpZHRocyBjb21w
dXRhdGlvbiBhcyB0aGUgbGF5b3V0IGluZm9ybWF0aW9uIGlzIHByb2JhYmx5IGludmFsaWQuCi0g
ICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChmYWxzZSk7CisgICAgcmV0dXJu
IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChmYWxzZSwgIXN0eWxlKCktPmxvZ2ljYWxNaW5X
aWR0aCgpLmlzUGVyY2VudCgpKTsKIH0KIAogdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVBy
ZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuaAppbmRleCBjNjk4NjE2NmEwZTk0MjFlODU0ZWI2YzkxZDkwMjczMjM3NzI3ZmM2Li5h
ZTAyZTQ3NzA0MWE5OGZjNGU5MWVkMTExZmRkODJmMjQzOTY2OWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtMzIsNyArMzIsNyBAQCBwdWJsaWM6CiAg
ICAgUmVuZGVyUmVwbGFjZWQoTm9kZSosIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUp
OwogICAgIHZpcnR1YWwgflJlbmRlclJlcGxhY2VkKCk7CiAKLSAgICB2aXJ0dWFsIExheW91dFVu
aXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoID0gdHJ1
ZSkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUsIGJvb2wgaW5jbHVkZU1pbldpZHRoID0g
dHJ1ZSkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxIZWlnaHQoKSBjb25zdDsKIAogICAgIGJvb2wgaGFzUmVwbGFjZWRMb2dpY2FsV2lkdGgoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCmluZGV4IDExMjY5
ZTI1MmYxMDg0MzJkYjQ3ZDE3YmNmNTQ1ZTJjZTEyYTUzZTIuLjIyYzAxYTc4YzNlMzg0M2Q5MGYz
OTdkNjM3YTkwMzMwMzIwNDEwMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZGVvLmNwcApAQCAtMjYyLDkgKzI2Miw5IEBAIHZvaWQgUmVuZGVyVmlkZW86OnVwZGF0ZVBsYXll
cigpCiAgICAgbWVkaWFQbGF5ZXItPnNldFZpc2libGUodHJ1ZSk7CiB9CiAKLUxheW91dFVuaXQg
UmVuZGVyVmlkZW86OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhX
aWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyVmlkZW86OmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCwgYm9vbCBpbmNsdWRlTWluV2lkdGgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lk
dGgoaW5jbHVkZU1heFdpZHRoKTsKKyAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aChpbmNsdWRlTWF4V2lkdGgsIGluY2x1ZGVNaW5XaWR0aCk7CiB9
CiAKIExheW91dFVuaXQgUmVuZGVyVmlkZW86OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAppbmRleCA3OGY4NTUw
NjhjYWFiZjA0M2FkYzUxZjkwNjExYTM3Mjk5MDAzYWY5Li5mOTkzZDU2NGZjMGI2ZDk3YjNhMjQ1
NzhjODMyYzVkYTlkMzI2ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlkZW8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8u
aApAQCAtNzAsNyArNzAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgp
OwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChi
b29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0cnVl
LCBib29sIGluY3VkZU1pbldpZHRoID0gdHJ1ZSkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRV
bml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIExh
eW91dFVuaXQgbWluaW11bVJlcGxhY2VkSGVpZ2h0KCkgY29uc3QgT1ZFUlJJREU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IDA0OGM0
ZjYwNDQ3N2UzNDI1NWNhMmZkZmQ3OTU3YjUxMWQ0NGJlNzEuLjEwOWVhNDU2NTEyNTUyMmViNTQ3
MGU2ZTk5OTY4MTVjYjVlZjA3N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBpbmxpbmUgTGF5
b3V0VW5pdCByZXNvbHZlTGVuZ3RoQXR0cmlidXRlRm9yU1ZHKGNvbnN0IExlbmd0aCYgbGVuZ3Ro
LCBmbG9hCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PExheW91dFVuaXQ+KHZhbHVlRm9yTGVuZ3Ro
KGxlbmd0aCwgbWF4U2l6ZSwgcmVuZGVyVmlldykgKiAobGVuZ3RoLmlzRml4ZWQoKSA/IHNjYWxl
IDogMSkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVy
U1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRo
LCBib29sIGluY2x1ZGVNaW5XaWR0aCkgY29uc3QKIHsKICAgICBTVkdTVkdFbGVtZW50KiBzdmcg
PSBzdGF0aWNfY2FzdDxTVkdTVkdFbGVtZW50Kj4obm9kZSgpKTsKICAgICBBU1NFUlQoc3ZnKTsK
QEAgLTE2OSw3ICsxNjksNyBAQCBMYXlvdXRVbml0IFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29ucwogICAgICAgICByZXR1
cm4gbV9jb250YWluZXJTaXplLndpZHRoKCk7CiAKICAgICBpZiAoc3R5bGUoKS0+bG9naWNhbFdp
ZHRoKCkuaXNTcGVjaWZpZWQoKSB8fCBzdHlsZSgpLT5sb2dpY2FsTWF4V2lkdGgoKS5pc1NwZWNp
ZmllZCgpKQotICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aChpbmNsdWRlTWF4V2lkdGgpOworICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFj
ZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChpbmNsdWRlTWF4V2lkdGgsIGluY2x1ZGVN
aW5XaWR0aCk7CiAKICAgICBpZiAoc3ZnLT53aWR0aEF0dHJpYnV0ZUVzdGFibGlzaGVzVmlld3Bv
cnQoKSkKICAgICAgICAgcmV0dXJuIHJlc29sdmVMZW5ndGhBdHRyaWJ1dGVGb3JTVkcoc3ZnLT5p
bnRyaW5zaWNXaWR0aChTVkdTVkdFbGVtZW50OjpJZ25vcmVDU1NQcm9wZXJ0aWVzKSwgc3R5bGUo
KS0+ZWZmZWN0aXZlWm9vbSgpLCBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbFdp
ZHRoKCksIHZpZXcoKSk7CkBAIC0xNzksNyArMTc5LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJTVkdS
b290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNv
bnMKICAgICAgICAgcmV0dXJuIGRvY3VtZW50KCktPmZyYW1lKCktPm93bmVyUmVuZGVyZXIoKS0+
YXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CiAKICAgICAvLyBTVkcgZW1iZWRkZWQgdmlhIFNWR0lt
YWdlIChiYWNrZ3JvdW5kLWltYWdlL2JvcmRlci1pbWFnZS9ldGMpIC8gSW5saW5lIFNWRy4KLSAg
ICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChpbmNs
dWRlTWF4V2lkdGgpOworICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoKGluY2x1ZGVNYXhXaWR0aCwgaW5jbHVkZU1pbldpZHRoKTsKIH0KIAogTGF5
b3V0VW5pdCBSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKaW5kZXgg
NTIzNGVmMTJjNTgwZDg2Njc0YjMwYjk5MDEwN2RmMTFmMmQzYzBjMy4uZGE0ZjI3ZjRhMGQ1YzM3
ZDA0N2QyN2YwZDdkY2U5NWU1YjE0N2NkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmgKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNTVkdSb290KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJTVkdSb290Ijsg
fQogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChi
b29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0cnVl
LCBib29sIGluY2x1ZGVNaW5XaWR0aCA9IHRydWUpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIGxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDc1ZTY5ODZkOTJkNzBkMmY2MmNhOTdmNzk1
YjU3YmU5YjFiZGIzZC4uODA5MTNiM2MwMWE2YWNjYWI0MDc4M2Q2YzZmN2U4Y2ZmMTY5OWRhZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE5ICBLeXVuZ1RhZSBLaW0gIDxrdGYua2lt
QHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWluL21heCB3aWR0aCByZXBsYWNl
ZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgdG8gY2hlY2sgd2hlbiB0aGUgc291
cmNlIG9mIGltYWdlcyB3aXRoIHBlcmNlbnRhZ2UgbWluLXdpZHRoIGlzIGNoYW5nZWQuCisKKyAg
ICAgICAgKiBmYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1z
cmMtY2hhbmdlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTE4ICBEb21pbmljIE1henpvbmkgIDxk
bWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIEFYOiByYWRpby1idXR0b24tY2hlY2tib3gt
c2l6ZSBpcyBNYWMtc3BlY2lmaWMgYW5kIHNob3VsZCBiZSBtb3ZlZC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMt
Y2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzAwY2I2YjYyZmNiNWE3ZWE4MmQ1ODQ4
YmUzNTNiNjZjMmJiYTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cGVyY2VudC1taW4td2lkdGgtaW1nLXNyYy1jaGFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MiBAQAorUEFTUworIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGVyY2VudC1t
aW4td2lkdGgtaW1nLXNyYy1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNl
bnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAwMWE5YjBjMmZk
MGE0ZGYwMDBiMzQ3Mzc5OTcwNGM2OTMzMzc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKQEAgLTAs
MCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIGNvbXBsZXRlZCA9IDAsIGZhaWx1cmVzID0gMCwgZmFp
bHVyZXNEZXRhaWwgPSAiIjsgCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KK2Z1
bmN0aW9uIHByaW50UmVzdWx0KCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5pbm5lclRleHQgPSBmYWlsdXJlcyA/ICJGQUlMOiAiICsgZmFpbHVyZXMgKyAiIGNhc2Vz
IGZhaWxlZFxuIiArIGZhaWx1cmVzRGV0YWlsIDogIlBBU1MiOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9u
IGltYWdlQ2hlY2tGb3JNaW4oaW1hZ2UpIHsKKyAgICBpZiAoaW1hZ2Uuc3JjLm1hdGNoKCJncmVl
bmJveC0xMDBweC5wbmciKSAgIT0gbnVsbCkgeworICAgICAgICBpbWFnZS5zcmMgPSAicmVzb3Vy
Y2VzL2dyZWVuYm94LnBuZyI7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICArK2NvbXBsZXRl
ZDsKKyAgICAgICAgaWYgKGltYWdlLndpZHRoICE9IDI1KSB7CisgICAgICAgICAgICArK2ZhaWx1
cmVzOyAKKyAgICAgICAgICAgIGZhaWx1cmVzRGV0YWlsICs9ICBpbWFnZS5pZCArICI6ICIgKyBp
bWFnZS53aWR0aCArICIgKGV4cGVjdGVkOiAiICsgMjUgKyAiKVxuIjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAoY29tcGxldGVkID09IDIpCisgICAgICAgICAgICAgcHJpbnRSZXN1bHQoKTsKKyAg
ICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8ZGl2IGlkPSJyZXN1bHQiPjwv
ZGl2PgorPHRhYmxlPgorPHRib2R5PgorPHRyPgorPHRkPgorPGltZyBpZD0icGVyY2VudE1pbldp
ZHRoSW5UYWJsZSIgc3R5bGU9Im1pbi13aWR0aDoxMDAlOyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW5i
b3gtMTAwcHgucG5nIiBvbmxvYWQ9ImltYWdlQ2hlY2tGb3JNaW4odGhpcykiPgorPC90ZD4KKzwv
dHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3Rv
cDoyMDBweDtsZWZ0OjExcHgiPgorPGltZyBpZD0icGVyY2VudE1pbldpZHRoSW5BYnNvbHV0ZSIg
c3R5bGU9Im1pbi13aWR0aDoxMDAlOyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gtMTAwcHgucG5n
IiBvbmxvYWQ9ImltYWdlQ2hlY2tGb3JNaW4odGhpcykiPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180256</attachid>
            <date>2012-12-19 18:08:00 -0800</date>
            <delta_ts>2012-12-20 15:36:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105264-20121220110521.patch</filename>
            <type>text/plain</type>
            <size>18937</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxYmQwMTkxZWVjYWJj
NjBmODZlYTk3NzcyZDA3MTAzNDk3MmYwNi4uMDJkMWVkNDdhYmRlYTRiOWQ3ZjRjYWY2ODU2OTQ1
M2E2NWJlMWVhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEyLTE5ICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWlu
L21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBkbyBu
b3QgaW5jbHVkZSBwZXJjZW50YWdlIG1pbiB3aWR0aCBpbiBwcmVmZXJyZWQgbG9naWNhbCB3aWR0
aCBjYWxjdWxhdGlvbiwKKyAgICAgICAgYmVjYXVzZSB3ZSBjYW5ub3QgcmVzb2x2ZSBpdCBmb3Ig
cHJlZmVycmVkIHdpZHRoLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgpOgorICAgICAgICBNb2RpZnkgaW5jbHVkZU1heFdpZHRoIHBhcmFtZXRlciB0byBpc0Nv
bXB1dGVQcmVmZXJyZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aCk6CisgICAgICAgIE1vZGlmeSBp
bmNsdWRlTWF4V2lkdGggcGFyYW1ldGVyIHRvIGlzQ29tcHV0ZVByZWZlcnJlZC4KKyAgICAgICAg
Tm90IHRvIHVzZSBtaW5Mb2dpY2FsV2lkdGggb3IgbWF4TG9naWNhbFdpZHRoIGlmIHRoZXkgYXJl
IHBlcmNlbnQgdHlwZSBhbmQgaXNDb21wdXRlUHJlZmZlcmVkPXRydWUuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFj
ZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIE1vZGlmeSBpbmNsdWRl
TWF4V2lkdGggcGFyYW1ldGVyIHRvIGlzQ29tcHV0ZVByZWZlcnJlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlTWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKToKKyAg
ICAgICAgTW9kaWZ5IGZyb20gc2V0IGluY2x1ZGVNYXhXaWR0aD1mYWxzZSB0byBzZXQgaXNDb21w
dXRlUHJlZmVycmVkPXRydWUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6
CisgICAgICAgIChSZW5kZXJSZXBsYWNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNW
R1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxh
Y2VkTG9naWNhbFdpZHRoKToKKyAgICAgICAgTW9kaWZ5IGluY2x1ZGVNYXhXaWR0aCBwYXJhbWV0
ZXIgdG8gaXNDb21wdXRlUHJlZmVycmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdS
b290Lmg6CisgICAgICAgIChSZW5kZXJTVkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIE1vZGlmeSBpbmNsdWRlTWF4V2lkdGggcGFyYW1l
dGVyIHRvIGlzQ29tcHV0ZVByZWZlcnJlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlk
ZW8uaDoKKyAgICAgICAgKFJlbmRlclZpZGVvKToKKwogMjAxMi0xMi0xOCAgU2hpbnlhIEthd2Fu
YWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU2hhZG93Um9vdC5nZXRFbGVt
ZW50QnlJZCgpIHJldHVybnMgYSBkZWxldGVkIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKaW5kZXggNWUwZjBmNzlmZTRlNTkyMGQwZDcxZDg5NzYzOWRiYjYxMzkw
NTM2ZC4uY2JhMWU0YjFjNmIxYzYzODRjMDM2MWRmNDUzOTRkNmUzZmNmOTg1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTI0MTUsMTUgKzI0MTUsMTUgQEAgTGF5
b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVQZXJjZW50YWdlTG9naWNhbEhlaWdodChjb25zdCBM
ZW5ndGgmIGhlaWdodCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1MYXlvdXRVbml0
IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdp
ZHRoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aChib29sIGlzQ29tcHV0ZVByZWZlcnJlZCkgY29uc3QKIHsKLSAgICByZXR1cm4gY29tcHV0
ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJlZFNpemUsIHN0eWxlKCktPmxvZ2ljYWxX
aWR0aCgpKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aFVzaW5nKE1haW5PclByZWZlcnJlZFNpemUsIHN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpKSwgaXND
b21wdXRlUHJlZmVycmVkKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChMYXlvdXRVbml0IGxvZ2ljYWxX
aWR0aCwgYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKExheW91dFVu
aXQgbG9naWNhbFdpZHRoLCBib29sIGlzQ29tcHV0ZVByZWZlcnJlZCkgY29uc3QKIHsKLSAgICBM
YXlvdXRVbml0IG1pbkxvZ2ljYWxXaWR0aCA9IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVz
aW5nKE1pblNpemUsIHN0eWxlKCktPmxvZ2ljYWxNaW5XaWR0aCgpKTsKLSAgICBMYXlvdXRVbml0
IG1heExvZ2ljYWxXaWR0aCA9ICFpbmNsdWRlTWF4V2lkdGggfHwgc3R5bGUoKS0+bG9naWNhbE1h
eFdpZHRoKCkuaXNVbmRlZmluZWQoKSA/IGxvZ2ljYWxXaWR0aCA6IGNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aFVzaW5nKE1heFNpemUsIHN0eWxlKCktPmxvZ2ljYWxNYXhXaWR0aCgpKTsKKyAg
ICBMYXlvdXRVbml0IG1pbkxvZ2ljYWxXaWR0aCA9IChpc0NvbXB1dGVQcmVmZXJyZWQgJiYgc3R5
bGUoKS0+bG9naWNhbE1pbldpZHRoKCkuaXNQZXJjZW50KCkpIHx8IHN0eWxlKCktPmxvZ2ljYWxN
aW5XaWR0aCgpLmlzVW5kZWZpbmVkKCkgPyBsb2dpY2FsV2lkdGggOiBjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGhVc2luZyhNaW5TaXplLCBzdHlsZSgpLT5sb2dpY2FsTWluV2lkdGgoKSk7Cisg
ICAgTGF5b3V0VW5pdCBtYXhMb2dpY2FsV2lkdGggPSAoaXNDb21wdXRlUHJlZmVycmVkICYmIHN0
eWxlKCktPmxvZ2ljYWxNYXhXaWR0aCgpLmlzUGVyY2VudCgpKSB8fCBzdHlsZSgpLT5sb2dpY2Fs
TWF4V2lkdGgoKS5pc1VuZGVmaW5lZCgpID8gbG9naWNhbFdpZHRoIDogY29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoVXNpbmcoTWF4U2l6ZSwgc3R5bGUoKS0+bG9naWNhbE1heFdpZHRoKCkpOwog
ICAgIHJldHVybiBtYXgobWluTG9naWNhbFdpZHRoLCBtaW4obG9naWNhbFdpZHRoLCBtYXhMb2dp
Y2FsV2lkdGgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGVj
M2JkNmQ5ZjhiMDVkMDRhZDkxNmI2ZmYzZjMxNTQ2OTQ4MjU4ZDYuLjQ2ZTRkNWFlZDAxM2JkMjdj
MjFmZTI0YThmZGFkMDc1NTE5MDcwZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmgKQEAgLTQxNCwxMSArNDE0LDExIEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGNvbXB1dGVD
b250ZW50TG9naWNhbEhlaWdodChTaXplVHlwZSwgY29uc3QgTGVuZ3RoJiBoZWlnaHQpOwogICAg
IExheW91dFVuaXQgY29tcHV0ZUNvbnRlbnRBbmRTY3JvbGxiYXJMb2dpY2FsSGVpZ2h0VXNpbmco
U2l6ZVR5cGUsIGNvbnN0IExlbmd0aCYgaGVpZ2h0KSBjb25zdDsKICAgICBMYXlvdXRVbml0IGNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKFNpemVUeXBlLCBMZW5ndGggd2lkdGgpIGNv
bnN0OwotICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGlu
Z01pbk1heFdpZHRoKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBib29sIGluY2x1ZGVNYXhXaWR0
aCA9IHRydWUpIGNvbnN0OworICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBib29sIGlz
Q29tcHV0ZVByZWZlcnJlZCA9IGZhbHNlKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhTaXplVHlwZSwgTGVuZ3RoIGhlaWdodCkgY29uc3Q7
CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01p
bk1heEhlaWdodChMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpIGNvbnN0OwogCi0gICAgdmlydHVh
bCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhX
aWR0aCA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGgoYm9vbCBpc0NvbXB1dGVQcmVmZXJyZWQgPSBmYWxzZSkgY29uc3Q7CiAg
ICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25z
dDsKIAogICAgIHN0YXRpYyBib29sIHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0SXNSZXNvbHZhYmxl
RnJvbUJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2ssIGJvb2wgb3V0T2ZG
bG93UG9zaXRpb25lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcAppbmRleCA2MjNlMmYwN2QyYWI0ZmRhMmExY2Y0OTA5YjgzMDg0YjEyMGY5NjdiLi5hNmMw
NDc2M2QxODNlNGYyYzVkNzlkNjMwYmNkYzE2ZmYyN2E2NjJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTMzNywxMCArMzM3LDEwIEBAIHZvaWQg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6
ZSYgaW50cmluc2ljU2l6ZSwKICAgICBpbnRyaW5zaWNSYXRpbyA9IGludHJpbnNpY1NpemUud2lk
dGgoKSAvIGludHJpbnNpY1NpemUuaGVpZ2h0KCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aChib29sIGlzQ29tcHV0ZVByZWZlcnJlZCkgY29uc3QKIHsKICAgICBpZiAoc3R5bGUoKS0+
bG9naWNhbFdpZHRoKCkuaXNTcGVjaWZpZWQoKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhVc2luZyhNYWluT3JQcmVmZXJyZWRTaXplLCBzdHlsZSgpLT5sb2dpY2FsV2lkdGgo
KSksIGluY2x1ZGVNYXhXaWR0aCk7CisgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
VXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBpc0Nv
bXB1dGVQcmVmZXJyZWQpOwogCiAgICAgUmVuZGVyQm94KiBjb250ZW50UmVuZGVyZXIgPSBlbWJl
ZGRlZENvbnRlbnRCb3goKTsKIApAQCAtMzU2LDcgKzM1Niw3IEBAIExheW91dFVuaXQgUmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0
aCkgY29uCiAKICAgICAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90aCBoYXZlIGNv
bXB1dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIGFuIGludHJp
bnNpYyB3aWR0aCwgdGhlbiB0aGF0IGludHJpbnNpYyB3aWR0aCBpcyB0aGUgdXNlZCB2YWx1ZSBv
ZiAnd2lkdGgnLgogICAgICAgICBpZiAoaGVpZ2h0SXNBdXRvICYmIGhhc0ludHJpbnNpY1dpZHRo
KQotICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3Rp
bmdNaW5NYXhXaWR0aChjb25zdHJhaW5lZFNpemUud2lkdGgoKSwgaW5jbHVkZU1heFdpZHRoKTsK
KyAgICAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5n
TWluTWF4V2lkdGgoY29uc3RyYWluZWRTaXplLndpZHRoKCksIGlzQ29tcHV0ZVByZWZlcnJlZCk7
CiAKICAgICAgICAgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgPSAhaXNQZXJjZW50YWdlSW50cmlu
c2ljU2l6ZSAmJiBjb25zdHJhaW5lZFNpemUuaGVpZ2h0KCkgPiAwOwogICAgICAgICBpZiAoaW50
cmluc2ljUmF0aW8gfHwgaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkgewpAQCAtMzY1LDcgKzM2
NSw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uCiAgICAgICAgICAgICAvLyBvZiAnd2lkdGgn
IGlzOiAodXNlZCBoZWlnaHQpICogKGludHJpbnNpYyByYXRpbykKICAgICAgICAgICAgIGlmIChp
bnRyaW5zaWNSYXRpbyAmJiAoKGhlaWdodElzQXV0byAmJiAhaGFzSW50cmluc2ljV2lkdGggJiYg
aGFzSW50cmluc2ljSGVpZ2h0KSB8fCAhaGVpZ2h0SXNBdXRvKSkgewogICAgICAgICAgICAgICAg
IExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQo
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVz
cGVjdGluZ01pbk1heFdpZHRoKHJvdW5kVG9JbnQocm91bmQobG9naWNhbEhlaWdodCAqIGludHJp
bnNpY1JhdGlvKSkpOworICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgocm91bmRUb0ludChyb3VuZChsb2dpY2FsSGVp
Z2h0ICogaW50cmluc2ljUmF0aW8pKSwgaXNDb21wdXRlUHJlZmVycmVkKTsKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90aCBoYXZlIGNv
bXB1dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGhhcyBhbiBpbnRyaW5zaWMg
cmF0aW8gYnV0IG5vIGludHJpbnNpYyBoZWlnaHQgb3Igd2lkdGgsIHRoZW4gdGhlIHVzZWQgdmFs
dWUgb2YKQEAgLTM3Niw3ICszNzYsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21w
dXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbgogICAgICAg
ICAgICAgICAgIC8vICdtYXJnaW4tbGVmdCcgKyAnYm9yZGVyLWxlZnQtd2lkdGgnICsgJ3BhZGRp
bmctbGVmdCcgKyAnd2lkdGgnICsgJ3BhZGRpbmctcmlnaHQnICsgJ2JvcmRlci1yaWdodC13aWR0
aCcgKyAnbWFyZ2luLXJpZ2h0JyA9IHdpZHRoIG9mIGNvbnRhaW5pbmcgYmxvY2sKICAgICAgICAg
ICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aDsKICAgICAgICAgICAgICAgICBpZiAoUmVu
ZGVyQmxvY2sqIGJsb2NrV2l0aFdpZHRoID0gZmlyc3RDb250YWluaW5nQmxvY2tXaXRoTG9naWNh
bFdpZHRoKHRoaXMpKQotICAgICAgICAgICAgICAgICAgICBsb2dpY2FsV2lkdGggPSBibG9ja1dp
dGhXaWR0aC0+Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRo
KGJsb2NrV2l0aFdpZHRoLT5jb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhVc2luZyhNYWluT3JQ
cmVmZXJyZWRTaXplLCBibG9ja1dpdGhXaWR0aC0+c3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBm
YWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCA9IGJsb2NrV2l0aFdpZHRo
LT5jb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoYmxvY2tX
aXRoV2lkdGgtPmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJl
ZFNpemUsIGJsb2NrV2l0aFdpZHRoLT5zdHlsZSgpLT5sb2dpY2FsV2lkdGgoKSksIGlzQ29tcHV0
ZVByZWZlcnJlZCk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBs
b2dpY2FsV2lkdGggPSBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7
CiAKQEAgLTM4NiwxMyArMzg2LDEzIEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uCiAgICAgICAg
ICAgICAgICAgbG9naWNhbFdpZHRoID0gbWF4PExheW91dFVuaXQ+KDAsIGxvZ2ljYWxXaWR0aCAt
IChtYXJnaW5TdGFydCArIG1hcmdpbkVuZCArICh3aWR0aCgpIC0gY2xpZW50V2lkdGgoKSkpKTsK
ICAgICAgICAgICAgICAgICBpZiAoaXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSkKICAgICAgICAg
ICAgICAgICAgICAgbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoICogY29uc3RyYWluZWRTaXpl
LndpZHRoKCkgLyAxMDA7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChsb2dpY2FsV2lkdGgsIGluY2x1ZGVNYXhX
aWR0aCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChsb2dpY2FsV2lkdGgsIGlzQ29tcHV0ZVByZWZlcnJlZCk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBPdGhlcndpc2UsIGlmICd3
aWR0aCcgaGFzIGEgY29tcHV0ZWQgdmFsdWUgb2YgJ2F1dG8nLCBhbmQgdGhlIGVsZW1lbnQgaGFz
IGFuIGludHJpbnNpYyB3aWR0aCwgdGhlbiB0aGF0IGludHJpbnNpYyB3aWR0aCBpcyB0aGUgdXNl
ZCB2YWx1ZSBvZiAnd2lkdGgnLgogICAgICAgICBpZiAoaGFzSW50cmluc2ljV2lkdGgpCi0gICAg
ICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1h
eFdpZHRoKGNvbnN0cmFpbmVkU2l6ZS53aWR0aCgpLCBpbmNsdWRlTWF4V2lkdGgpOworICAgICAg
ICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhX
aWR0aChjb25zdHJhaW5lZFNpemUud2lkdGgoKSwgaXNDb21wdXRlUHJlZmVycmVkKTsKIAogICAg
ICAgICAvLyBPdGhlcndpc2UsIGlmICd3aWR0aCcgaGFzIGEgY29tcHV0ZWQgdmFsdWUgb2YgJ2F1
dG8nLCBidXQgbm9uZSBvZiB0aGUgY29uZGl0aW9ucyBhYm92ZSBhcmUgbWV0LCB0aGVuIHRoZSB1
c2VkIHZhbHVlIG9mICd3aWR0aCcgYmVjb21lcyAzMDBweC4gSWYgMzAwcHggaXMgdG9vCiAgICAg
ICAgIC8vIHdpZGUgdG8gZml0IHRoZSBkZXZpY2UsIFVBcyBzaG91bGQgdXNlIHRoZSB3aWR0aCBv
ZiB0aGUgbGFyZ2VzdCByZWN0YW5nbGUgdGhhdCBoYXMgYSAyOjEgcmF0aW8gYW5kIGZpdHMgdGhl
IGRldmljZSBpbnN0ZWFkLgpAQCAtNDAxLDcgKzQwMSw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkg
Y29uCiAgICAgICAgIC8vIGhhcyBubyBpbnRyaW5zaWMgc2l6ZSwgd2hpY2ggaXMgd3JvbmcgcGVy
IENTUyAyLjEsIGJ1dCBtYXRjaGVzIG91ciBiZWhhdmlvciBzaW5jZSBhIGxvbmcgdGltZS4KICAg
ICB9CiAKLSAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01p
bk1heFdpZHRoKGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbmNsdWRlTWF4V2lkdGgpOworICAg
IHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgo
aW50cmluc2ljTG9naWNhbFdpZHRoKCksIGlzQ29tcHV0ZVByZWZlcnJlZCk7CiB9CiAKIExheW91
dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25z
dApAQCAtNDUwLDcgKzQ1MCw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVN
YXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdAogCiAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZG4ndCBiZSBjYWxsaW5nIGEgbG9naWNhbCB3aWR0aCBjb21wdXRpbmcgZnVuY3Rpb24gaW4gcHJl
ZmVycmVkCiAgICAgLy8gbG9naWNhbCB3aWR0aHMgY29tcHV0YXRpb24gYXMgdGhlIGxheW91dCBp
bmZvcm1hdGlvbiBpcyBwcm9iYWJseSBpbnZhbGlkLgotICAgIHJldHVybiBjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGgoZmFsc2UpOworICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgodHJ1ZSk7CiB9CiAKIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgK
aW5kZXggYzY5ODYxNjZhMGU5NDIxZTg1NGViNmM5MWQ5MDI3MzIzNzcyN2ZjNi4uNTFiYmMzNjUy
MDg0MDZhMmNjOGRhMTY0MmJiNzEyYmJmNDg4YmRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmgKQEAgLTMyLDcgKzMyLDcgQEAgcHVibGljOgogICAgIFJlbmRl
clJlcGxhY2VkKE5vZGUqLCBjb25zdCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplKTsKICAgICB2
aXJ0dWFsIH5SZW5kZXJSZXBsYWNlZCgpOwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0
OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9v
bCBpc0NvbXB1dGVQcmVmZXJyZWQgPSBmYWxzZSkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRV
bml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAogICAgIGJvb2wgaGFz
UmVwbGFjZWRMb2dpY2FsV2lkdGgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlkZW8uY3BwCmluZGV4IDExMjY5ZTI1MmYxMDg0MzJkYjQ3ZDE3YmNmNTQ1ZTJjZTEyYTUz
ZTIuLmNkZmI0NTQwNGNiZTJlZjQyNTY2NjRlNTAxYTJlZjVlOGMxYTA4MjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcApAQCAtMjYyLDkgKzI2Miw5IEBAIHZvaWQg
UmVuZGVyVmlkZW86OnVwZGF0ZVBsYXllcigpCiAgICAgbWVkaWFQbGF5ZXItPnNldFZpc2libGUo
dHJ1ZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVmlkZW86OmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyVmlk
ZW86OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGlzQ29tcHV0ZVByZWZlcnJlZCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aChpbmNsdWRlTWF4V2lkdGgpOworICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29t
cHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGlzQ29tcHV0ZVByZWZlcnJlZCk7CiB9CiAKIExheW91
dFVuaXQgUmVuZGVyVmlkZW86OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaAppbmRleCA3OGY4NTUwNjhjYWFiZjA0
M2FkYzUxZjkwNjExYTM3Mjk5MDAzYWY5Li41YzZlN2E1ZjNiZGMxMjdkZTc0NzE1YjE5Njg4ODMz
Mjg5M2I3MDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlk
ZW8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uaApAQCAtNzAs
NyArNzAsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogCi0gICAg
dmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1
ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpc0NvbXB1dGVQcmVmZXJyZWQgPSBmYWxzZSkgY29u
c3Q7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluaW11bVJlcGxhY2VkSGVpZ2h0KCkg
Y29uc3QgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwCmluZGV4IDA0OGM0ZjYwNDQ3N2UzNDI1NWNhMmZkZmQ3OTU3YjUxMWQ0NGJl
NzEuLjI3NDA3OTI0MzJhYWRjY2NmNmFjYmZjOTE2OTUxMmE5ZGI3MGZkNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtMTU5LDcgKzE1
OSw3IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCByZXNvbHZlTGVuZ3RoQXR0cmlidXRlRm9y
U1ZHKGNvbnN0IExlbmd0aCYgbGVuZ3RoLCBmbG9hCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PExh
eW91dFVuaXQ+KHZhbHVlRm9yTGVuZ3RoKGxlbmd0aCwgbWF4U2l6ZSwgcmVuZGVyVmlldykgKiAo
bGVuZ3RoLmlzRml4ZWQoKSA/IHNjYWxlIDogMSkpOwogfQogCi1MYXlvdXRVbml0IFJlbmRlclNW
R1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkg
Y29uc3QKK0xheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoKGJvb2wgaXNDb21wdXRlUHJlZmVycmVkKSBjb25zdAogewogICAgIFNWR1NWR0VsZW1lbnQq
IHN2ZyA9IHN0YXRpY19jYXN0PFNWR1NWR0VsZW1lbnQqPihub2RlKCkpOwogICAgIEFTU0VSVChz
dmcpOwpAQCAtMTY5LDcgKzE2OSw3IEBAIExheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0
ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb25zCiAgICAgICAg
IHJldHVybiBtX2NvbnRhaW5lclNpemUud2lkdGgoKTsKIAogICAgIGlmIChzdHlsZSgpLT5sb2dp
Y2FsV2lkdGgoKS5pc1NwZWNpZmllZCgpIHx8IHN0eWxlKCktPmxvZ2ljYWxNYXhXaWR0aCgpLmlz
U3BlY2lmaWVkKCkpCi0gICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxh
Y2VkTG9naWNhbFdpZHRoKGluY2x1ZGVNYXhXaWR0aCk7CisgICAgICAgIHJldHVybiBSZW5kZXJS
ZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGlzQ29tcHV0ZVByZWZlcnJlZCk7
CiAKICAgICBpZiAoc3ZnLT53aWR0aEF0dHJpYnV0ZUVzdGFibGlzaGVzVmlld3BvcnQoKSkKICAg
ICAgICAgcmV0dXJuIHJlc29sdmVMZW5ndGhBdHRyaWJ1dGVGb3JTVkcoc3ZnLT5pbnRyaW5zaWNX
aWR0aChTVkdTVkdFbGVtZW50OjpJZ25vcmVDU1NQcm9wZXJ0aWVzKSwgc3R5bGUoKS0+ZWZmZWN0
aXZlWm9vbSgpLCBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCksIHZp
ZXcoKSk7CkBAIC0xNzksNyArMTc5LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJTVkdSb290Ojpjb21w
dXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbnMKICAgICAg
ICAgcmV0dXJuIGRvY3VtZW50KCktPmZyYW1lKCktPm93bmVyUmVuZGVyZXIoKS0+YXZhaWxhYmxl
TG9naWNhbFdpZHRoKCk7CiAKICAgICAvLyBTVkcgZW1iZWRkZWQgdmlhIFNWR0ltYWdlIChiYWNr
Z3JvdW5kLWltYWdlL2JvcmRlci1pbWFnZS9ldGMpIC8gSW5saW5lIFNWRy4KLSAgICByZXR1cm4g
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChpbmNsdWRlTWF4V2lk
dGgpOworICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoKGlzQ29tcHV0ZVByZWZlcnJlZCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDUyMzRlZjEyYzU4MGQ4NjY3NGIzMGI5
OTAxMDdkZjExZjJkM2MwYzMuLmQ5MjNmNmM4YzcyNzA3Njg5YmNkZDA5ZWRhYWFkZjBmNjEzMzY5
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBA
IC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU1ZHUm9vdCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUo
KSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHUm9vdCI7IH0KIAotICAgIHZpcnR1YWwgTGF5b3V0
VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0
cnVlKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNh
bFdpZHRoKGJvb2wgaXNDb21wdXRlUHJlZmVycmVkID0gZmFsc2UpIGNvbnN0OwogICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3Q7CiAgICAg
dmlydHVhbCB2b2lkIGxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBh
aW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDc1ZTY5ODZkOTJkNzBkMmY2
MmNhOTdmNzk1YjU3YmU5YjFiZGIzZC4uODA5MTNiM2MwMWE2YWNjYWI0MDc4M2Q2YzZmN2U4Y2Zm
MTY5OWRhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTE5ICBLeXVuZ1RhZSBLaW0g
IDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWluL21heCB3aWR0
aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgdG8gY2hlY2sgd2hl
biB0aGUgc291cmNlIG9mIGltYWdlcyB3aXRoIHBlcmNlbnRhZ2UgbWluLXdpZHRoIGlzIGNoYW5n
ZWQuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5n
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTE4ICBEb21pbmljIE1h
enpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIEFYOiByYWRpby1idXR0b24t
Y2hlY2tib3gtc2l6ZSBpcyBNYWMtc3BlY2lmaWMgYW5kIHNob3VsZCBiZSBtb3ZlZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hh
bmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRo
LWltZy1zcmMtY2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzAwY2I2YjYyZmNiNWE3
ZWE4MmQ1ODQ4YmUzNTNiNjZjMmJiYTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcGVyY2VudC1taW4td2lkdGgtaW1nLXNyYy1jaGFuZ2UtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMiBAQAorUEFTUworIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
cGVyY2VudC1taW4td2lkdGgtaW1nLXNyYy1jaGFuZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAw
MWE5YjBjMmZkMGE0ZGYwMDBiMzQ3Mzc5OTcwNGM2OTMzMzc0NAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLmh0
bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIGNvbXBsZXRlZCA9IDAsIGZhaWx1cmVz
ID0gMCwgZmFpbHVyZXNEZXRhaWwgPSAiIjsgCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKK30KK2Z1bmN0aW9uIHByaW50UmVzdWx0KCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHQiKS5pbm5lclRleHQgPSBmYWlsdXJlcyA/ICJGQUlMOiAiICsgZmFpbHVyZXMg
KyAiIGNhc2VzIGZhaWxlZFxuIiArIGZhaWx1cmVzRGV0YWlsIDogIlBBU1MiOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisK
K2Z1bmN0aW9uIGltYWdlQ2hlY2tGb3JNaW4oaW1hZ2UpIHsKKyAgICBpZiAoaW1hZ2Uuc3JjLm1h
dGNoKCJncmVlbmJveC0xMDBweC5wbmciKSAgIT0gbnVsbCkgeworICAgICAgICBpbWFnZS5zcmMg
PSAicmVzb3VyY2VzL2dyZWVuYm94LnBuZyI7CisgICAgfQorICAgIGVsc2UgeworICAgICAgICAr
K2NvbXBsZXRlZDsKKyAgICAgICAgaWYgKGltYWdlLndpZHRoICE9IDI1KSB7CisgICAgICAgICAg
ICArK2ZhaWx1cmVzOyAKKyAgICAgICAgICAgIGZhaWx1cmVzRGV0YWlsICs9ICBpbWFnZS5pZCAr
ICI6ICIgKyBpbWFnZS53aWR0aCArICIgKGV4cGVjdGVkOiAiICsgMjUgKyAiKVxuIjsKKyAgICAg
ICAgfQorICAgICAgICBpZiAoY29tcGxldGVkID09IDIpCisgICAgICAgICAgICAgcHJpbnRSZXN1
bHQoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8ZGl2IGlkPSJy
ZXN1bHQiPjwvZGl2PgorPHRhYmxlPgorPHRib2R5PgorPHRyPgorPHRkPgorPGltZyBpZD0icGVy
Y2VudE1pbldpZHRoSW5UYWJsZSIgc3R5bGU9Im1pbi13aWR0aDoxMDAlOyIgc3JjPSJyZXNvdXJj
ZXMvZ3JlZW5ib3gtMTAwcHgucG5nIiBvbmxvYWQ9ImltYWdlQ2hlY2tGb3JNaW4odGhpcykiPgor
PC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOmFi
c29sdXRlO3RvcDoyMDBweDtsZWZ0OjExcHgiPgorPGltZyBpZD0icGVyY2VudE1pbldpZHRoSW5B
YnNvbHV0ZSIgc3R5bGU9Im1pbi13aWR0aDoxMDAlOyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gt
MTAwcHgucG5nIiBvbmxvYWQ9ImltYWdlQ2hlY2tGb3JNaW4odGhpcykiPgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180424</attachid>
            <date>2012-12-20 15:36:08 -0800</date>
            <delta_ts>2012-12-20 16:30:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105264-20121221083328.patch</filename>
            <type>text/plain</type>
            <size>19294</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxYmQwMTkxZWVjYWJj
NjBmODZlYTk3NzcyZDA3MTAzNDk3MmYwNi4uMDhmN2ZhMzkzZmEzNzhhZjA5NmNkYmM5Zjg0ZDEx
MWEyZWJmMDRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEyLTIwICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWlu
L21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBkbyBu
b3QgaW5jbHVkZSBwZXJjZW50YWdlIG1pbiB3aWR0aCBpbiBwcmVmZXJyZWQgbG9naWNhbCB3aWR0
aCBjYWxjdWxhdGlvbiwKKyAgICAgICAgYmVjYXVzZSB3ZSBjYW5ub3QgcmVzb2x2ZSBpdCBmb3Ig
cHJlZmVycmVkIHdpZHRoLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgpOgorICAgICAgICBNb2RpZnkgaW5jbHVkZU1heFdpZHRoIHBhcmFtZXRlciB0byBjb21w
dXRlVHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKToKKyAgICAgICAgTW9kaWZ5IGluY2x1ZGVN
YXhXaWR0aCBwYXJhbWV0ZXIgdG8gY29tcHV0ZVR5cGUuCisgICAgICAgIElmIGNvbXB1dGVUeXBl
IGlzIENvbXB1dGVQcmVmZXJyZWQsIAorICAgICAgICBkb24ndCB1c2UgbWluTG9naWNhbFdpZHRo
IG9yIG1heExvZ2ljYWxXaWR0aCBpZiB0aGV5IGFyZSBwZXJjZW50IHR5cGUuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVw
bGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIE1vZGlmeSBpbmNs
dWRlTWF4V2lkdGggcGFyYW1ldGVyIHRvIGNvbXB1dGVUeXBlLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVNYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgpOgorICAgICAg
ICBNb2RpZnkgZnJvbSBzZXQgaW5jbHVkZU1heFdpZHRoPWZhbHNlIHRvIHNldCBjb21wdXRlVHlw
ZT1Db21wdXRlUHJlZmVycmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5o
OgorICAgICAgICAoUmVuZGVyUmVwbGFjZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJT
VkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIE1vZGlmeSBpbmNsdWRlTWF4V2lkdGggcGFyYW1l
dGVyIHRvIGNvbXB1dGVUeXBlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTVkdSb290Lmg6
CisgICAgICAgIChSZW5kZXJTVkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlk
ZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OmNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aCk6CisgICAgICAgIE1vZGlmeSBpbmNsdWRlTWF4V2lkdGggcGFyYW1ldGVyIHRv
IGNvbXB1dGVUeXBlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWRlby5oOgorICAgICAg
ICAoUmVuZGVyVmlkZW8pOgorCiAyMDEyLTEyLTE4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCkgcmV0
dXJucyBhIGRlbGV0ZWQgZWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAppbmRleCA1ZTBmMGY3OWZlNGU1OTIwZDBkNzFkODk3NjM5ZGJiNjEzOTA1MzZkLi5lNWU0NTdi
Y2UyNjg5YWM5M2E4NDg3ZGUxYTM3NTgzNjZlZDBjYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94LmNwcApAQCAtMjQxNSwxNSArMjQxNSwxNSBAQCBMYXlvdXRVbml0IFJlbmRl
ckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0KGNvbnN0IExlbmd0aCYgaGVpZ2h0
KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyQm94Ojpj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbnN0CitM
YXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKENvbXB1dGVU
eXBlIGNvbXB1dGVUeXBlKSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
VXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBpbmNs
dWRlTWF4V2lkdGgpOworICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNw
ZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWFpbk9y
UHJlZmVycmVkU2l6ZSwgc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBjb21wdXRlVHlwZSk7CiB9
CiAKLUxheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNw
ZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIGJvb2wgaW5jbHVkZU1h
eFdpZHRoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgQ29t
cHV0ZVR5cGUgY29tcHV0ZVR5cGUpIGNvbnN0CiB7Ci0gICAgTGF5b3V0VW5pdCBtaW5Mb2dpY2Fs
V2lkdGggPSBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhVc2luZyhNaW5TaXplLCBzdHlsZSgp
LT5sb2dpY2FsTWluV2lkdGgoKSk7Ci0gICAgTGF5b3V0VW5pdCBtYXhMb2dpY2FsV2lkdGggPSAh
aW5jbHVkZU1heFdpZHRoIHx8IHN0eWxlKCktPmxvZ2ljYWxNYXhXaWR0aCgpLmlzVW5kZWZpbmVk
KCkgPyBsb2dpY2FsV2lkdGggOiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhVc2luZyhNYXhT
aXplLCBzdHlsZSgpLT5sb2dpY2FsTWF4V2lkdGgoKSk7CisgICAgTGF5b3V0VW5pdCBtaW5Mb2dp
Y2FsV2lkdGggPSAoY29tcHV0ZVR5cGUgPT0gQ29tcHV0ZVByZWZlcnJlZCAmJiBzdHlsZSgpLT5s
b2dpY2FsTWluV2lkdGgoKS5pc1BlcmNlbnQoKSkgfHwgc3R5bGUoKS0+bG9naWNhbE1pbldpZHRo
KCkuaXNVbmRlZmluZWQoKSA/IGxvZ2ljYWxXaWR0aCA6IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aFVzaW5nKE1pblNpemUsIHN0eWxlKCktPmxvZ2ljYWxNaW5XaWR0aCgpKTsKKyAgICBMYXlv
dXRVbml0IG1heExvZ2ljYWxXaWR0aCA9IChjb21wdXRlVHlwZSA9PSBDb21wdXRlUHJlZmVycmVk
ICYmIHN0eWxlKCktPmxvZ2ljYWxNYXhXaWR0aCgpLmlzUGVyY2VudCgpKSB8fCBzdHlsZSgpLT5s
b2dpY2FsTWF4V2lkdGgoKS5pc1VuZGVmaW5lZCgpID8gbG9naWNhbFdpZHRoIDogY29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWF4U2l6ZSwgc3R5bGUoKS0+bG9naWNhbE1heFdpZHRo
KCkpOwogICAgIHJldHVybiBtYXgobWluTG9naWNhbFdpZHRoLCBtaW4obG9naWNhbFdpZHRoLCBt
YXhMb2dpY2FsV2lkdGgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmlu
ZGV4IGVjM2JkNmQ5ZjhiMDVkMDRhZDkxNmI2ZmYzZjMxNTQ2OTQ4MjU4ZDYuLjQyNWFhMWMwMGJj
ZTZjNTg1ODE3YjBhYWVjYzU4NjdlMWVmZDFhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKQEAgLTQwLDYgKzQwLDggQEAgZW51bSBTaXplVHlwZSB7IE1haW5PclByZWZlcnJl
ZFNpemUsIE1pblNpemUsIE1heFNpemUgfTsKIAogZW51bSBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJl
bGV2YW5jeSB7IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplLCBJbmNsdWRlT3ZlcmxheVNjcm9s
bGJhclNpemUgfTsKIAorZW51bSBDb21wdXRlVHlwZSB7IENvbXB1dGVBY3R1YWwsIENvbXB1dGVQ
cmVmZXJyZWQgIH07CisKIGNsYXNzIFJlbmRlckJveCA6IHB1YmxpYyBSZW5kZXJCb3hNb2RlbE9i
amVjdCB7CiBwdWJsaWM6CiAgICAgUmVuZGVyQm94KE5vZGUqKTsKQEAgLTQxNCwxMSArNDE2LDEx
IEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250ZW50TG9naWNhbEhlaWdodChT
aXplVHlwZSwgY29uc3QgTGVuZ3RoJiBoZWlnaHQpOwogICAgIExheW91dFVuaXQgY29tcHV0ZUNv
bnRlbnRBbmRTY3JvbGxiYXJMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUsIGNvbnN0IExlbmd0
aCYgaGVpZ2h0KSBjb25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aFVzaW5nKFNpemVUeXBlLCBMZW5ndGggd2lkdGgpIGNvbnN0OwotICAgIExheW91dFVuaXQg
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKExheW91dFVu
aXQgbG9naWNhbFdpZHRoLCBib29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0OworICAg
IExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdp
ZHRoKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBDb21wdXRlVHlwZSAgPSBDb21wdXRlUHJlZmVy
cmVkKSBjb25zdDsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRV
c2luZyhTaXplVHlwZSwgTGVuZ3RoIGhlaWdodCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBjb21w
dXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQpIGNvbnN0OwogCi0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCA9IHRydWUpIGNvbnN0Owor
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoQ29tcHV0
ZVR5cGUgID0gQ29tcHV0ZVByZWZlcnJlZCkgY29uc3Q7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0
IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAogICAgIHN0YXRpYyBib29s
IHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0SXNSZXNvbHZhYmxlRnJvbUJsb2NrKGNvbnN0IFJlbmRl
ckJsb2NrKiBjb250YWluaW5nQmxvY2ssIGJvb2wgb3V0T2ZGbG93UG9zaXRpb25lZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA2MjNlMmYwN2Qy
YWI0ZmRhMmExY2Y0OTA5YjgzMDg0YjEyMGY5NjdiLi5hM2VkMGU2NjBlNzM1NDcxZmU1NmE5MDA1
NjM5M2U1ZGM4ZmYyNzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAKQEAgLTMzNywxMCArMzM3LDEwIEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwKICAg
ICBpbnRyaW5zaWNSYXRpbyA9IGludHJpbnNpY1NpemUud2lkdGgoKSAvIGludHJpbnNpY1NpemUu
aGVpZ2h0KCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVu
ZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChDb21wdXRlVHlwZSBjb21w
dXRlVHlwZSkgY29uc3QKIHsKICAgICBpZiAoc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkuaXNTcGVj
aWZpZWQoKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3Bl
Y3RpbmdNaW5NYXhXaWR0aChjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhVc2luZyhNYWluT3JQ
cmVmZXJyZWRTaXplLCBzdHlsZSgpLT5sb2dpY2FsV2lkdGgoKSksIGluY2x1ZGVNYXhXaWR0aCk7
CisgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWlu
TWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJlZmVycmVk
U2l6ZSwgc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBjb21wdXRlVHlwZSk7CiAKICAgICBSZW5k
ZXJCb3gqIGNvbnRlbnRSZW5kZXJlciA9IGVtYmVkZGVkQ29udGVudEJveCgpOwogCkBAIC0zNTYs
NyArMzU2LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb24KIAogICAgICAgICAvLyBJZiAnaGVp
Z2h0JyBhbmQgJ3dpZHRoJyBib3RoIGhhdmUgY29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQg
dGhlIGVsZW1lbnQgYWxzbyBoYXMgYW4gaW50cmluc2ljIHdpZHRoLCB0aGVuIHRoYXQgaW50cmlu
c2ljIHdpZHRoIGlzIHRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcuCiAgICAgICAgIGlmIChoZWln
aHRJc0F1dG8gJiYgaGFzSW50cmluc2ljV2lkdGgpCi0gICAgICAgICAgICByZXR1cm4gY29tcHV0
ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbnN0cmFpbmVkU2l6
ZS53aWR0aCgpLCBpbmNsdWRlTWF4V2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb25zdHJhaW5lZFNpemUu
d2lkdGgoKSwgY29tcHV0ZVR5cGUpOwogCiAgICAgICAgIGJvb2wgaGFzSW50cmluc2ljSGVpZ2h0
ID0gIWlzUGVyY2VudGFnZUludHJpbnNpY1NpemUgJiYgY29uc3RyYWluZWRTaXplLmhlaWdodCgp
ID4gMDsKICAgICAgICAgaWYgKGludHJpbnNpY1JhdGlvIHx8IGlzUGVyY2VudGFnZUludHJpbnNp
Y1NpemUpIHsKQEAgLTM2NSw3ICszNjUsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbgogICAg
ICAgICAgICAgLy8gb2YgJ3dpZHRoJyBpczogKHVzZWQgaGVpZ2h0KSAqIChpbnRyaW5zaWMgcmF0
aW8pCiAgICAgICAgICAgICBpZiAoaW50cmluc2ljUmF0aW8gJiYgKChoZWlnaHRJc0F1dG8gJiYg
IWhhc0ludHJpbnNpY1dpZHRoICYmIGhhc0ludHJpbnNpY0hlaWdodCkgfHwgIWhlaWdodElzQXV0
bykpIHsKICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChyb3VuZFRvSW50KHJvdW5k
KGxvZ2ljYWxIZWlnaHQgKiBpbnRyaW5zaWNSYXRpbykpKTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKHJvdW5k
VG9JbnQocm91bmQobG9naWNhbEhlaWdodCAqIGludHJpbnNpY1JhdGlvKSksIGNvbXB1dGVUeXBl
KTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0
aCcgYm90aCBoYXZlIGNvbXB1dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGhh
cyBhbiBpbnRyaW5zaWMgcmF0aW8gYnV0IG5vIGludHJpbnNpYyBoZWlnaHQgb3Igd2lkdGgsIHRo
ZW4gdGhlIHVzZWQgdmFsdWUgb2YKQEAgLTM3Niw3ICszNzYsNyBAQCBMYXlvdXRVbml0IFJlbmRl
clJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lk
dGgpIGNvbgogICAgICAgICAgICAgICAgIC8vICdtYXJnaW4tbGVmdCcgKyAnYm9yZGVyLWxlZnQt
d2lkdGgnICsgJ3BhZGRpbmctbGVmdCcgKyAnd2lkdGgnICsgJ3BhZGRpbmctcmlnaHQnICsgJ2Jv
cmRlci1yaWdodC13aWR0aCcgKyAnbWFyZ2luLXJpZ2h0JyA9IHdpZHRoIG9mIGNvbnRhaW5pbmcg
YmxvY2sKICAgICAgICAgICAgICAgICBMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aDsKICAgICAgICAg
ICAgICAgICBpZiAoUmVuZGVyQmxvY2sqIGJsb2NrV2l0aFdpZHRoID0gZmlyc3RDb250YWluaW5n
QmxvY2tXaXRoTG9naWNhbFdpZHRoKHRoaXMpKQotICAgICAgICAgICAgICAgICAgICBsb2dpY2Fs
V2lkdGggPSBibG9ja1dpdGhXaWR0aC0+Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVj
dGluZ01pbk1heFdpZHRoKGJsb2NrV2l0aFdpZHRoLT5jb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lk
dGhVc2luZyhNYWluT3JQcmVmZXJyZWRTaXplLCBibG9ja1dpdGhXaWR0aC0+c3R5bGUoKS0+bG9n
aWNhbFdpZHRoKCkpLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCA9
IGJsb2NrV2l0aFdpZHRoLT5jb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWlu
TWF4V2lkdGgoYmxvY2tXaXRoV2lkdGgtPmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFVzaW5n
KE1haW5PclByZWZlcnJlZFNpemUsIGJsb2NrV2l0aFdpZHRoLT5zdHlsZSgpLT5sb2dpY2FsV2lk
dGgoKSksIGNvbXB1dGVUeXBlKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAg
ICAgICAgIGxvZ2ljYWxXaWR0aCA9IGNvbnRhaW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2Fs
V2lkdGgoKTsKIApAQCAtMzg2LDEzICszODYsMTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNl
ZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRoKSBjb24K
ICAgICAgICAgICAgICAgICBsb2dpY2FsV2lkdGggPSBtYXg8TGF5b3V0VW5pdD4oMCwgbG9naWNh
bFdpZHRoIC0gKG1hcmdpblN0YXJ0ICsgbWFyZ2luRW5kICsgKHdpZHRoKCkgLSBjbGllbnRXaWR0
aCgpKSkpOwogICAgICAgICAgICAgICAgIGlmIChpc1BlcmNlbnRhZ2VJbnRyaW5zaWNTaXplKQog
ICAgICAgICAgICAgICAgICAgICBsb2dpY2FsV2lkdGggPSBsb2dpY2FsV2lkdGggKiBjb25zdHJh
aW5lZFNpemUud2lkdGgoKSAvIDEwMDsKLSAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGxvZ2ljYWxXaWR0aCwgaW5j
bHVkZU1heFdpZHRoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGxvZ2ljYWxXaWR0aCwgY29tcHV0ZVR5cGUp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiAn
d2lkdGgnIGhhcyBhIGNvbXB1dGVkIHZhbHVlIG9mICdhdXRvJywgYW5kIHRoZSBlbGVtZW50IGhh
cyBhbiBpbnRyaW5zaWMgd2lkdGgsIHRoZW4gdGhhdCBpbnRyaW5zaWMgd2lkdGggaXMgdGhlIHVz
ZWQgdmFsdWUgb2YgJ3dpZHRoJy4KICAgICAgICAgaWYgKGhhc0ludHJpbnNpY1dpZHRoKQotICAg
ICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5N
YXhXaWR0aChjb25zdHJhaW5lZFNpemUud2lkdGgoKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICAg
ICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4
V2lkdGgoY29uc3RyYWluZWRTaXplLndpZHRoKCksIGNvbXB1dGVUeXBlKTsKIAogICAgICAgICAv
LyBPdGhlcndpc2UsIGlmICd3aWR0aCcgaGFzIGEgY29tcHV0ZWQgdmFsdWUgb2YgJ2F1dG8nLCBi
dXQgbm9uZSBvZiB0aGUgY29uZGl0aW9ucyBhYm92ZSBhcmUgbWV0LCB0aGVuIHRoZSB1c2VkIHZh
bHVlIG9mICd3aWR0aCcgYmVjb21lcyAzMDBweC4gSWYgMzAwcHggaXMgdG9vCiAgICAgICAgIC8v
IHdpZGUgdG8gZml0IHRoZSBkZXZpY2UsIFVBcyBzaG91bGQgdXNlIHRoZSB3aWR0aCBvZiB0aGUg
bGFyZ2VzdCByZWN0YW5nbGUgdGhhdCBoYXMgYSAyOjEgcmF0aW8gYW5kIGZpdHMgdGhlIGRldmlj
ZSBpbnN0ZWFkLgpAQCAtNDAxLDcgKzQwMSw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6
OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uCiAg
ICAgICAgIC8vIGhhcyBubyBpbnRyaW5zaWMgc2l6ZSwgd2hpY2ggaXMgd3JvbmcgcGVyIENTUyAy
LjEsIGJ1dCBtYXRjaGVzIG91ciBiZWhhdmlvciBzaW5jZSBhIGxvbmcgdGltZS4KICAgICB9CiAK
LSAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdp
ZHRoKGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbmNsdWRlTWF4V2lkdGgpOworICAgIHJldHVy
biBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoaW50cmlu
c2ljTG9naWNhbFdpZHRoKCksIGNvbXB1dGVUeXBlKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJS
ZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0CkBAIC00NDgsOSAr
NDQ4LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZU1heFByZWZlcnJlZExv
Z2ljYWxXaWR0aCgpIGNvbnN0CiAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkKICAg
ICAgICAgcmV0dXJuIGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpOwogCi0gICAgLy8gRklYTUU6IFdl
IHNob3VsZG4ndCBiZSBjYWxsaW5nIGEgbG9naWNhbCB3aWR0aCBjb21wdXRpbmcgZnVuY3Rpb24g
aW4gcHJlZmVycmVkCi0gICAgLy8gbG9naWNhbCB3aWR0aHMgY29tcHV0YXRpb24gYXMgdGhlIGxh
eW91dCBpbmZvcm1hdGlvbiBpcyBwcm9iYWJseSBpbnZhbGlkLgotICAgIHJldHVybiBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsV2lkdGgoZmFsc2UpOworICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGgoQ29tcHV0ZVByZWZlcnJlZCk7CiB9CiAKIHZvaWQgUmVuZGVyUmVwbGFjZWQ6
OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYzY5ODYxNjZhMGU5NDIxZTg1NGViNmM5MWQ5MDI3MzIz
NzcyN2ZjNi4uYTkzMjk4Y2JiNmVjMTQxOWE4NzQ0NTU3NTU0MDUwZGI3MmFkOTEyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKQEAgLTMyLDcgKzMyLDcgQEAg
cHVibGljOgogICAgIFJlbmRlclJlcGxhY2VkKE5vZGUqLCBjb25zdCBMYXlvdXRTaXplJiBpbnRy
aW5zaWNTaXplKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSZXBsYWNlZCgpOwogCi0gICAgdmlydHVh
bCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhX
aWR0aCA9IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGgoQ29tcHV0ZVR5cGUgID0gQ29tcHV0ZVByZWZlcnJlZCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25z
dDsKIAogICAgIGJvb2wgaGFzUmVwbGFjZWRMb2dpY2FsV2lkdGgoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCmluZGV4IDExMjY5ZTI1MmYxMDg0MzJkYjQ3
ZDE3YmNmNTQ1ZTJjZTEyYTUzZTIuLjY0MDBlMzViMzMwY2JjZmQyNWFhNTRkNDRjNDY4YzBiYzA2
MDdjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcApAQCAtMjYy
LDkgKzI2Miw5IEBAIHZvaWQgUmVuZGVyVmlkZW86OnVwZGF0ZVBsYXllcigpCiAgICAgbWVkaWFQ
bGF5ZXItPnNldFZpc2libGUodHJ1ZSk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyVmlkZW86OmNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uc3QKK0xh
eW91dFVuaXQgUmVuZGVyVmlkZW86OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChDb21wdXRl
VHlwZSBjb21wdXRlVHlwZSkgY29uc3QKIHsKLSAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChpbmNsdWRlTWF4V2lkdGgpOworICAgIHJldHVybiBS
ZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGNvbXB1dGVUeXBlKTsK
IH0KIAogTGF5b3V0VW5pdCBSZW5kZXJWaWRlbzo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdo
dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlk
ZW8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5oCmluZGV4IDc4Zjg1
NTA2OGNhYWJmMDQzYWRjNTFmOTA2MTFhMzcyOTkwMDNhZjkuLmJhNjM3NDkzOTI2NWQ5MGM2ZTk5
NzQzZDc5ODZmMTQ1ZDQzMTI3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRl
by5oCkBAIC03MCw3ICs3MCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0
KCk7CiAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
KGJvb2wgaW5jbHVkZU1heFdpZHRoID0gdHJ1ZSkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRV
bml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChDb21wdXRlVHlwZSAgPSBDb21wdXRlUHJl
ZmVycmVkKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJl
cGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtaW5p
bXVtUmVwbGFjZWRIZWlnaHQoKSBjb25zdCBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggMDQ4YzRmNjA0NDc3ZTM0MjU1
Y2EyZmRmZDc5NTdiNTExZDQ0YmU3MS4uZjg3ODMyYTE0MzI1YTJiNTVjMTg3ZDgxMzFjZDM2ZmNi
MTUwYjczMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIGlubGluZSBMYXlvdXRVbml0IHJlc29s
dmVMZW5ndGhBdHRyaWJ1dGVGb3JTVkcoY29uc3QgTGVuZ3RoJiBsZW5ndGgsIGZsb2EKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8TGF5b3V0VW5pdD4odmFsdWVGb3JMZW5ndGgobGVuZ3RoLCBtYXhT
aXplLCByZW5kZXJWaWV3KSAqIChsZW5ndGguaXNGaXhlZCgpID8gc2NhbGUgOiAxKSk7CiB9CiAK
LUxheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJv
b2wgaW5jbHVkZU1heFdpZHRoKSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJTVkdSb290Ojpjb21w
dXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoQ29tcHV0ZVR5cGUgY29tcHV0ZVR5cGUpIGNvbnN0CiB7
CiAgICAgU1ZHU1ZHRWxlbWVudCogc3ZnID0gc3RhdGljX2Nhc3Q8U1ZHU1ZHRWxlbWVudCo+KG5v
ZGUoKSk7CiAgICAgQVNTRVJUKHN2Zyk7CkBAIC0xNjksNyArMTY5LDcgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4
V2lkdGgpIGNvbnMKICAgICAgICAgcmV0dXJuIG1fY29udGFpbmVyU2l6ZS53aWR0aCgpOwogCiAg
ICAgaWYgKHN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpLmlzU3BlY2lmaWVkKCkgfHwgc3R5bGUoKS0+
bG9naWNhbE1heFdpZHRoKCkuaXNTcGVjaWZpZWQoKSkKLSAgICAgICAgcmV0dXJuIFJlbmRlclJl
cGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoaW5jbHVkZU1heFdpZHRoKTsKKyAg
ICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgo
Y29tcHV0ZVR5cGUpOwogCiAgICAgaWYgKHN2Zy0+d2lkdGhBdHRyaWJ1dGVFc3RhYmxpc2hlc1Zp
ZXdwb3J0KCkpCiAgICAgICAgIHJldHVybiByZXNvbHZlTGVuZ3RoQXR0cmlidXRlRm9yU1ZHKHN2
Zy0+aW50cmluc2ljV2lkdGgoU1ZHU1ZHRWxlbWVudDo6SWdub3JlQ1NTUHJvcGVydGllcyksIHN0
eWxlKCktPmVmZmVjdGl2ZVpvb20oKSwgY29udGFpbmluZ0Jsb2NrKCktPmF2YWlsYWJsZUxvZ2lj
YWxXaWR0aCgpLCB2aWV3KCkpOwpAQCAtMTc5LDcgKzE3OSw3IEBAIExheW91dFVuaXQgUmVuZGVy
U1ZHUm9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRo
KSBjb25zCiAgICAgICAgIHJldHVybiBkb2N1bWVudCgpLT5mcmFtZSgpLT5vd25lclJlbmRlcmVy
KCktPmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpOwogCiAgICAgLy8gU1ZHIGVtYmVkZGVkIHZpYSBT
VkdJbWFnZSAoYmFja2dyb3VuZC1pbWFnZS9ib3JkZXItaW1hZ2UvZXRjKSAvIElubGluZSBTVkcu
Ci0gICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgo
aW5jbHVkZU1heFdpZHRoKTsKKyAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aChjb21wdXRlVHlwZSk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyU1ZH
Um9vdDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDUyMzRlZjEyYzU4MGQ4NjY3
NGIzMGI5OTAxMDdkZjExZjJkM2MwYzMuLjhhZGE3ZjM4ZmUzNmZiZWYwNDIzZDM5YTMwZmRlY2Vi
NTRlM2Q0MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU1ZHUm9v
dCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCB7IHJldHVybiAiUmVuZGVyU1ZHUm9vdCI7IH0KIAotICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lk
dGggPSB0cnVlKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoKENvbXB1dGVUeXBlICA9IENvbXB1dGVQcmVmZXJyZWQpIGNvbnN0IE9WRVJS
SURFOwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBw
YWludFJlcGxhY2VkKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDc1
ZTY5ODZkOTJkNzBkMmY2MmNhOTdmNzk1YjU3YmU5YjFiZGIzZC4uYmFlZWY2YTA2Y2IzMzE5YTM0
ZTZmYmE0YmYyNGI0ODc3NGE0NzAwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEyLTIw
ICBLeXVuZ1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRh
Z2UgbWluL21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRl
c3QgdG8gY2hlY2sgd2hlbiB0aGUgc291cmNlIG9mIGltYWdlcyB3aXRoIHBlcmNlbnRhZ2UgbWlu
LXdpZHRoIGlzIGNoYW5nZWQuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0
aC1pbWctc3JjLWNoYW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEy
LTE4ICBEb21pbmljIE1henpvbmkgIDxkbWF6em9uaUBnb29nbGUuY29tPgogCiAgICAgICAgIEFY
OiByYWRpby1idXR0b24tY2hlY2tib3gtc2l6ZSBpcyBNYWMtc3BlY2lmaWMgYW5kIHNob3VsZCBi
ZSBtb3ZlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Bl
cmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NzAwY2I2YjYyZmNiNWE3ZWE4MmQ1ODQ4YmUzNTNiNjZjMmJiYTViCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGVyY2VudC1taW4td2lkdGgtaW1nLXNyYy1jaGFuZ2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUworIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcGVyY2VudC1taW4td2lkdGgtaW1nLXNyYy1jaGFuZ2UuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjAwMWE5YjBjMmZkMGE0ZGYwMDBiMzQ3Mzc5OTcwNGM2OTMzMzc0NAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWlt
Zy1zcmMtY2hhbmdlLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIGNvbXBsZXRl
ZCA9IDAsIGZhaWx1cmVzID0gMCwgZmFpbHVyZXNEZXRhaWwgPSAiIjsgCitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKK30KK2Z1bmN0aW9uIHByaW50UmVzdWx0KCkgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lclRleHQgPSBmYWlsdXJlcyA/ICJGQUlM
OiAiICsgZmFpbHVyZXMgKyAiIGNhc2VzIGZhaWxlZFxuIiArIGZhaWx1cmVzRGV0YWlsIDogIlBB
U1MiOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGltYWdlQ2hlY2tGb3JNaW4oaW1hZ2UpIHsKKyAgICBp
ZiAoaW1hZ2Uuc3JjLm1hdGNoKCJncmVlbmJveC0xMDBweC5wbmciKSAgIT0gbnVsbCkgeworICAg
ICAgICBpbWFnZS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuYm94LnBuZyI7CisgICAgfQorICAgIGVs
c2UgeworICAgICAgICArK2NvbXBsZXRlZDsKKyAgICAgICAgaWYgKGltYWdlLndpZHRoICE9IDI1
KSB7CisgICAgICAgICAgICArK2ZhaWx1cmVzOyAKKyAgICAgICAgICAgIGZhaWx1cmVzRGV0YWls
ICs9ICBpbWFnZS5pZCArICI6ICIgKyBpbWFnZS53aWR0aCArICIgKGV4cGVjdGVkOiAiICsgMjUg
KyAiKVxuIjsKKyAgICAgICAgfQorICAgICAgICBpZiAoY29tcGxldGVkID09IDIpCisgICAgICAg
ICAgICAgcHJpbnRSZXN1bHQoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJv
ZHk+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPHRhYmxlPgorPHRib2R5PgorPHRyPgorPHRk
PgorPGltZyBpZD0icGVyY2VudE1pbldpZHRoSW5UYWJsZSIgc3R5bGU9Im1pbi13aWR0aDoxMDAl
OyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW5ib3gtMTAwcHgucG5nIiBvbmxvYWQ9ImltYWdlQ2hlY2tG
b3JNaW4odGhpcykiPgorPC90ZD4KKzwvdHI+Cis8L3Rib2R5PgorPC90YWJsZT4KKzxkaXYgc3R5
bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDoyMDBweDtsZWZ0OjExcHgiPgorPGltZyBpZD0icGVy
Y2VudE1pbldpZHRoSW5BYnNvbHV0ZSIgc3R5bGU9Im1pbi13aWR0aDoxMDAlOyIgc3JjPSJyZXNv
dXJjZXMvZ3JlZW5ib3gtMTAwcHgucG5nIiBvbmxvYWQ9ImltYWdlQ2hlY2tGb3JNaW4odGhpcyki
PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180438</attachid>
            <date>2012-12-20 16:30:53 -0800</date>
            <delta_ts>2012-12-20 17:53:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-105264-20121221092814.patch</filename>
            <type>text/plain</type>
            <size>19683</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM4MTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQxYmQwMTkxZWVjYWJj
NjBmODZlYTk3NzcyZDA3MTAzNDk3MmYwNi4uOTQ1ZGI4ZjRhNzI0MzhkZGY2Njc3MTQ5NWNmODI4
ZTc2ZGNjYjI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDEyLTEyLTIwICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFBlcmNlbnRhZ2UgbWlu
L21heCB3aWR0aCByZXBsYWNlZCBlbGVtZW50IG1heSBpbmNvcnJlY3RseSByZW5kZXJlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MjY0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gbWFrZSBkbyBu
b3QgaW5jbHVkZSBwZXJjZW50YWdlIG1pbiB3aWR0aCBpbiBwcmVmZXJyZWQgbG9naWNhbCB3aWR0
aCBjYWxjdWxhdGlvbiwKKyAgICAgICAgYmVjYXVzZSB3ZSBjYW5ub3QgcmVzb2x2ZSBpdCBmb3Ig
cHJlZmVycmVkIHdpZHRoLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BlcmNlbnQtbWluLXdp
ZHRoLWltZy1zcmMtY2hhbmdlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgpOgorICAgICAgICBNb2RpZnkgaW5jbHVkZU1heFdpZHRoIHBhcmFtZXRlciB0byBzaG91
bGRDb21wdXRlUHJlZmVycmVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojpjb21wdXRl
UmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgpOgorICAgICAgICBNb2Rp
ZnkgaW5jbHVkZU1heFdpZHRoIHBhcmFtZXRlciB0byBzaG91bGRDb21wdXRlUHJlZmVycmVkLgor
ICAgICAgICBJZiBzaG91bGRDb21wdXRlUHJlZmVycmVkIGlzIENvbXB1dGVQcmVmZXJyZWQsIAor
ICAgICAgICBkb24ndCB1c2UgbWluTG9naWNhbFdpZHRoIG9yIG1heExvZ2ljYWxXaWR0aCBpZiB0
aGV5IGFyZSBwZXJjZW50IHR5cGUuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5oOgor
ICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aCk6CisgICAgICAgIE1vZGlmeSBpbmNsdWRlTWF4V2lkdGggcGFyYW1ldGVyIHRv
IHNob3VsZENvbXB1dGVQcmVmZXJyZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZXBsYWNl
ZDo6Y29tcHV0ZU1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIE1vZGlmeSBmcm9t
IHNldCBpbmNsdWRlTWF4V2lkdGg9ZmFsc2UgdG8gc2V0IHNob3VsZENvbXB1dGVQcmVmZXJyZWQ9
Q29tcHV0ZVByZWZlcnJlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaDoK
KyAgICAgICAgKFJlbmRlclJlcGxhY2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU1ZH
Um9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGgpOgorICAgICAgICBNb2RpZnkgaW5jbHVkZU1heFdpZHRoIHBhcmFtZXRl
ciB0byBzaG91bGRDb21wdXRlUHJlZmVycmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJT
VkdSb290Lmg6CisgICAgICAgIChSZW5kZXJTVkdSb290KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OmNvbXB1dGVS
ZXBsYWNlZExvZ2ljYWxXaWR0aCk6CisgICAgICAgIE1vZGlmeSBpbmNsdWRlTWF4V2lkdGggcGFy
YW1ldGVyIHRvIHNob3VsZENvbXB1dGVQcmVmZXJyZWQuCisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZGVvLmg6CisgICAgICAgIChSZW5kZXJWaWRlbyk6CisKIDIwMTItMTItMTggIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFNoYWRvd1Jvb3Qu
Z2V0RWxlbWVudEJ5SWQoKSByZXR1cm5zIGEgZGVsZXRlZCBlbGVtZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDVlMGYwZjc5ZmU0ZTU5MjBkMGQ3MWQ4OTc2Mzlk
YmI2MTM5MDUzNmQuLjY1MzQzZGNmNTczMTQ1ZDRiNzlmODFjODNlZjY2MjM0MGY5NTYzZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0yNDE1LDE1ICsyNDE1LDE1
IEBAIExheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUGVyY2VudGFnZUxvZ2ljYWxIZWlnaHQo
Y29uc3QgTGVuZ3RoJiBoZWlnaHQpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTGF5
b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1
ZGVNYXhXaWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCBzaG91bGRDb21wdXRlUHJlZmVycmVk
KSBjb25zdAogewotICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0
aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJl
ZmVycmVkU2l6ZSwgc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBpbmNsdWRlTWF4V2lkdGgpOwor
ICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lk
dGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwg
c3R5bGUoKS0+bG9naWNhbFdpZHRoKCkpLCBzaG91bGRDb21wdXRlUHJlZmVycmVkKTsKIH0KIAot
TGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3Rp
bmdNaW5NYXhXaWR0aChMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgYm9vbCBpbmNsdWRlTWF4V2lk
dGgpIGNvbnN0CitMYXlvdXRVbml0IFJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBTaG91bGRD
b21wdXRlUHJlZmVycmVkIHNob3VsZENvbXB1dGVQcmVmZXJyZWQpIGNvbnN0CiB7Ci0gICAgTGF5
b3V0VW5pdCBtaW5Mb2dpY2FsV2lkdGggPSBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhVc2lu
ZyhNaW5TaXplLCBzdHlsZSgpLT5sb2dpY2FsTWluV2lkdGgoKSk7Ci0gICAgTGF5b3V0VW5pdCBt
YXhMb2dpY2FsV2lkdGggPSAhaW5jbHVkZU1heFdpZHRoIHx8IHN0eWxlKCktPmxvZ2ljYWxNYXhX
aWR0aCgpLmlzVW5kZWZpbmVkKCkgPyBsb2dpY2FsV2lkdGggOiBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhVc2luZyhNYXhTaXplLCBzdHlsZSgpLT5sb2dpY2FsTWF4V2lkdGgoKSk7CisgICAg
TGF5b3V0VW5pdCBtaW5Mb2dpY2FsV2lkdGggPSAoc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCA9PSBD
b21wdXRlUHJlZmVycmVkICYmIHN0eWxlKCktPmxvZ2ljYWxNaW5XaWR0aCgpLmlzUGVyY2VudCgp
KSB8fCBzdHlsZSgpLT5sb2dpY2FsTWluV2lkdGgoKS5pc1VuZGVmaW5lZCgpID8gbG9naWNhbFdp
ZHRoIDogY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWluU2l6ZSwgc3R5bGUoKS0+
bG9naWNhbE1pbldpZHRoKCkpOworICAgIExheW91dFVuaXQgbWF4TG9naWNhbFdpZHRoID0gKHNo
b3VsZENvbXB1dGVQcmVmZXJyZWQgPT0gQ29tcHV0ZVByZWZlcnJlZCAmJiBzdHlsZSgpLT5sb2dp
Y2FsTWF4V2lkdGgoKS5pc1BlcmNlbnQoKSkgfHwgc3R5bGUoKS0+bG9naWNhbE1heFdpZHRoKCku
aXNVbmRlZmluZWQoKSA/IGxvZ2ljYWxXaWR0aCA6IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aFVzaW5nKE1heFNpemUsIHN0eWxlKCktPmxvZ2ljYWxNYXhXaWR0aCgpKTsKICAgICByZXR1cm4g
bWF4KG1pbkxvZ2ljYWxXaWR0aCwgbWluKGxvZ2ljYWxXaWR0aCwgbWF4TG9naWNhbFdpZHRoKSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBlYzNiZDZkOWY4YjA1
ZDA0YWQ5MTZiNmZmM2YzMTU0Njk0ODI1OGQ2Li44NjlmMzZjZDEyNjFhOTg3YjkwZWNjOWVhNWZk
MjY5NjMyYWIyYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC00MCw2
ICs0MCw4IEBAIGVudW0gU2l6ZVR5cGUgeyBNYWluT3JQcmVmZXJyZWRTaXplLCBNaW5TaXplLCBN
YXhTaXplIH07CiAKIGVudW0gT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgeyBJZ25vcmVP
dmVybGF5U2Nyb2xsYmFyU2l6ZSwgSW5jbHVkZU92ZXJsYXlTY3JvbGxiYXJTaXplIH07CiAKK2Vu
dW0gU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCB7IENvbXB1dGVBY3R1YWwsIENvbXB1dGVQcmVmZXJy
ZWQgfTsKKwogY2xhc3MgUmVuZGVyQm94IDogcHVibGljIFJlbmRlckJveE1vZGVsT2JqZWN0IHsK
IHB1YmxpYzoKICAgICBSZW5kZXJCb3goTm9kZSopOwpAQCAtNDE0LDExICs0MTYsMTEgQEAgcHVi
bGljOgogICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRlbnRMb2dpY2FsSGVpZ2h0KFNpemVUeXBl
LCBjb25zdCBMZW5ndGgmIGhlaWdodCk7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ29udGVudEFu
ZFNjcm9sbGJhckxvZ2ljYWxIZWlnaHRVc2luZyhTaXplVHlwZSwgY29uc3QgTGVuZ3RoJiBoZWln
aHQpIGNvbnN0OwogICAgIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoVXNp
bmcoU2l6ZVR5cGUsIExlbmd0aCB3aWR0aCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgsIGJvb2wgaW5jbHVkZU1heFdpZHRoID0gdHJ1ZSkgY29uc3Q7CisgICAgTGF5b3V0
VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoTGF5
b3V0VW5pdCBsb2dpY2FsV2lkdGgsIFNob3VsZENvbXB1dGVQcmVmZXJyZWQgID0gQ29tcHV0ZUFj
dHVhbCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0
VXNpbmcoU2l6ZVR5cGUsIExlbmd0aCBoZWlnaHQpIGNvbnN0OwogICAgIExheW91dFVuaXQgY29t
cHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodFJlc3BlY3RpbmdNaW5NYXhIZWlnaHQoTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0KSBjb25zdDsKIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0cnVlKSBjb25zdDsK
KyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3Vs
ZENvbXB1dGVQcmVmZXJyZWQgID0gQ29tcHV0ZUFjdHVhbCkgY29uc3Q7CiAgICAgdmlydHVhbCBM
YXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAogICAgIHN0
YXRpYyBib29sIHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0SXNSZXNvbHZhYmxlRnJvbUJsb2NrKGNv
bnN0IFJlbmRlckJsb2NrKiBjb250YWluaW5nQmxvY2ssIGJvb2wgb3V0T2ZGbG93UG9zaXRpb25l
ZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA2
MjNlMmYwN2QyYWI0ZmRhMmExY2Y0OTA5YjgzMDg0YjEyMGY5NjdiLi4yYTRlMGM0MTk3OTA0NDlm
Yjk0ZWVmYzFhYTczYTc0YjlmODlhNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTMzNywxMCArMzM3LDEwIEBAIHZvaWQgUmVuZGVyUmVwbGFj
ZWQ6OmNvbXB1dGVJbnRyaW5zaWNSYXRpb0luZm9ybWF0aW9uKEZsb2F0U2l6ZSYgaW50cmluc2lj
U2l6ZSwKICAgICBpbnRyaW5zaWNSYXRpbyA9IGludHJpbnNpY1NpemUud2lkdGgoKSAvIGludHJp
bnNpY1NpemUuaGVpZ2h0KCk7CiB9CiAKLUxheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uc3QKK0xheW91
dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91bGRD
b21wdXRlUHJlZmVycmVkIHNob3VsZENvbXB1dGVQcmVmZXJyZWQpIGNvbnN0CiB7CiAgICAgaWYg
KHN0eWxlKCktPmxvZ2ljYWxXaWR0aCgpLmlzU3BlY2lmaWVkKCkpCi0gICAgICAgIHJldHVybiBj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgc3R5bGUoKS0+bG9n
aWNhbFdpZHRoKCkpLCBpbmNsdWRlTWF4V2lkdGgpOworICAgICAgICByZXR1cm4gY29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbXB1dGVSZXBsYWNlZExv
Z2ljYWxXaWR0aFVzaW5nKE1haW5PclByZWZlcnJlZFNpemUsIHN0eWxlKCktPmxvZ2ljYWxXaWR0
aCgpKSwgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCk7CiAKICAgICBSZW5kZXJCb3gqIGNvbnRlbnRS
ZW5kZXJlciA9IGVtYmVkZGVkQ29udGVudEJveCgpOwogCkBAIC0zNTYsNyArMzU2LDcgQEAgTGF5
b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wg
aW5jbHVkZU1heFdpZHRoKSBjb24KIAogICAgICAgICAvLyBJZiAnaGVpZ2h0JyBhbmQgJ3dpZHRo
JyBib3RoIGhhdmUgY29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1lbnQgYWxz
byBoYXMgYW4gaW50cmluc2ljIHdpZHRoLCB0aGVuIHRoYXQgaW50cmluc2ljIHdpZHRoIGlzIHRo
ZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcuCiAgICAgICAgIGlmIChoZWlnaHRJc0F1dG8gJiYgaGFz
SW50cmluc2ljV2lkdGgpCi0gICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNh
bFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbnN0cmFpbmVkU2l6ZS53aWR0aCgpLCBpbmNs
dWRlTWF4V2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb25zdHJhaW5lZFNpemUud2lkdGgoKSwgc2hvdWxk
Q29tcHV0ZVByZWZlcnJlZCk7CiAKICAgICAgICAgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgPSAh
aXNQZXJjZW50YWdlSW50cmluc2ljU2l6ZSAmJiBjb25zdHJhaW5lZFNpemUuaGVpZ2h0KCkgPiAw
OwogICAgICAgICBpZiAoaW50cmluc2ljUmF0aW8gfHwgaXNQZXJjZW50YWdlSW50cmluc2ljU2l6
ZSkgewpAQCAtMzY1LDcgKzM2NSw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29uCiAgICAgICAg
ICAgICAvLyBvZiAnd2lkdGgnIGlzOiAodXNlZCBoZWlnaHQpICogKGludHJpbnNpYyByYXRpbykK
ICAgICAgICAgICAgIGlmIChpbnRyaW5zaWNSYXRpbyAmJiAoKGhlaWdodElzQXV0byAmJiAhaGFz
SW50cmluc2ljV2lkdGggJiYgaGFzSW50cmluc2ljSGVpZ2h0KSB8fCAhaGVpZ2h0SXNBdXRvKSkg
ewogICAgICAgICAgICAgICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IGNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxh
Y2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKHJvdW5kVG9JbnQocm91bmQobG9n
aWNhbEhlaWdodCAqIGludHJpbnNpY1JhdGlvKSkpOworICAgICAgICAgICAgICAgIHJldHVybiBj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgocm91bmRUb0lu
dChyb3VuZChsb2dpY2FsSGVpZ2h0ICogaW50cmluc2ljUmF0aW8pKSwgc2hvdWxkQ29tcHV0ZVBy
ZWZlcnJlZCk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIElmICdoZWlnaHQnIGFu
ZCAnd2lkdGgnIGJvdGggaGF2ZSBjb21wdXRlZCB2YWx1ZXMgb2YgJ2F1dG8nIGFuZCB0aGUgZWxl
bWVudCBoYXMgYW4gaW50cmluc2ljIHJhdGlvIGJ1dCBubyBpbnRyaW5zaWMgaGVpZ2h0IG9yIHdp
ZHRoLCB0aGVuIHRoZSB1c2VkIHZhbHVlIG9mCkBAIC0zNzYsNyArMzc2LDcgQEAgTGF5b3V0VW5p
dCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVk
ZU1heFdpZHRoKSBjb24KICAgICAgICAgICAgICAgICAvLyAnbWFyZ2luLWxlZnQnICsgJ2JvcmRl
ci1sZWZ0LXdpZHRoJyArICdwYWRkaW5nLWxlZnQnICsgJ3dpZHRoJyArICdwYWRkaW5nLXJpZ2h0
JyArICdib3JkZXItcmlnaHQtd2lkdGgnICsgJ21hcmdpbi1yaWdodCcgPSB3aWR0aCBvZiBjb250
YWluaW5nIGJsb2NrCiAgICAgICAgICAgICAgICAgTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGg7CiAg
ICAgICAgICAgICAgICAgaWYgKFJlbmRlckJsb2NrKiBibG9ja1dpdGhXaWR0aCA9IGZpcnN0Q29u
dGFpbmluZ0Jsb2NrV2l0aExvZ2ljYWxXaWR0aCh0aGlzKSkKLSAgICAgICAgICAgICAgICAgICAg
bG9naWNhbFdpZHRoID0gYmxvY2tXaXRoV2lkdGgtPmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChibG9ja1dpdGhXaWR0aC0+Y29tcHV0ZVJlcGxhY2VkTG9n
aWNhbFdpZHRoVXNpbmcoTWFpbk9yUHJlZmVycmVkU2l6ZSwgYmxvY2tXaXRoV2lkdGgtPnN0eWxl
KCktPmxvZ2ljYWxXaWR0aCgpKSwgZmFsc2UpOworICAgICAgICAgICAgICAgICAgICBsb2dpY2Fs
V2lkdGggPSBibG9ja1dpdGhXaWR0aC0+Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVj
dGluZ01pbk1heFdpZHRoKGJsb2NrV2l0aFdpZHRoLT5jb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lk
dGhVc2luZyhNYWluT3JQcmVmZXJyZWRTaXplLCBibG9ja1dpdGhXaWR0aC0+c3R5bGUoKS0+bG9n
aWNhbFdpZHRoKCkpLCBzaG91bGRDb21wdXRlUHJlZmVycmVkKTsKICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxXaWR0aCA9IGNvbnRhaW5pbmdCbG9jaygp
LT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKIApAQCAtMzg2LDEzICszODYsMTMgQEAgTGF5b3V0
VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5j
bHVkZU1heFdpZHRoKSBjb24KICAgICAgICAgICAgICAgICBsb2dpY2FsV2lkdGggPSBtYXg8TGF5
b3V0VW5pdD4oMCwgbG9naWNhbFdpZHRoIC0gKG1hcmdpblN0YXJ0ICsgbWFyZ2luRW5kICsgKHdp
ZHRoKCkgLSBjbGllbnRXaWR0aCgpKSkpOwogICAgICAgICAgICAgICAgIGlmIChpc1BlcmNlbnRh
Z2VJbnRyaW5zaWNTaXplKQogICAgICAgICAgICAgICAgICAgICBsb2dpY2FsV2lkdGggPSBsb2dp
Y2FsV2lkdGggKiBjb25zdHJhaW5lZFNpemUud2lkdGgoKSAvIDEwMDsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRo
KGxvZ2ljYWxXaWR0aCwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGxvZ2ljYWxX
aWR0aCwgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBPdGhlcndpc2UsIGlmICd3aWR0aCcgaGFzIGEgY29tcHV0ZWQgdmFsdWUg
b2YgJ2F1dG8nLCBhbmQgdGhlIGVsZW1lbnQgaGFzIGFuIGludHJpbnNpYyB3aWR0aCwgdGhlbiB0
aGF0IGludHJpbnNpYyB3aWR0aCBpcyB0aGUgdXNlZCB2YWx1ZSBvZiAnd2lkdGgnLgogICAgICAg
ICBpZiAoaGFzSW50cmluc2ljV2lkdGgpCi0gICAgICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxh
Y2VkTG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbnN0cmFpbmVkU2l6ZS53aWR0
aCgpLCBpbmNsdWRlTWF4V2lkdGgpOworICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb25zdHJhaW5lZFNpemUud2lkdGgo
KSwgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCk7CiAKICAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiAn
d2lkdGgnIGhhcyBhIGNvbXB1dGVkIHZhbHVlIG9mICdhdXRvJywgYnV0IG5vbmUgb2YgdGhlIGNv
bmRpdGlvbnMgYWJvdmUgYXJlIG1ldCwgdGhlbiB0aGUgdXNlZCB2YWx1ZSBvZiAnd2lkdGgnIGJl
Y29tZXMgMzAwcHguIElmIDMwMHB4IGlzIHRvbwogICAgICAgICAvLyB3aWRlIHRvIGZpdCB0aGUg
ZGV2aWNlLCBVQXMgc2hvdWxkIHVzZSB0aGUgd2lkdGggb2YgdGhlIGxhcmdlc3QgcmVjdGFuZ2xl
IHRoYXQgaGFzIGEgMjoxIHJhdGlvIGFuZCBmaXRzIHRoZSBkZXZpY2UgaW5zdGVhZC4KQEAgLTQw
MSw3ICs0MDEsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRM
b2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGgpIGNvbgogICAgICAgICAvLyBoYXMgbm8g
aW50cmluc2ljIHNpemUsIHdoaWNoIGlzIHdyb25nIHBlciBDU1MgMi4xLCBidXQgbWF0Y2hlcyBv
dXIgYmVoYXZpb3Igc2luY2UgYSBsb25nIHRpbWUuCiAgICAgfQogCi0gICAgcmV0dXJuIGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChpbnRyaW5zaWNMb2dp
Y2FsV2lkdGgoKSwgaW5jbHVkZU1heFdpZHRoKTsKKyAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGludHJpbnNpY0xvZ2ljYWxXaWR0aCgp
LCBzaG91bGRDb21wdXRlUHJlZmVycmVkKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNl
ZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGNvbnN0CkBAIC00NDgsOSArNDQ4LDcg
QEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZU1heFByZWZlcnJlZExvZ2ljYWxX
aWR0aCgpIGNvbnN0CiAgICAgaWYgKGxvZ2ljYWxXaWR0aC5pc1BlcmNlbnQoKSkKICAgICAgICAg
cmV0dXJuIGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3Vs
ZG4ndCBiZSBjYWxsaW5nIGEgbG9naWNhbCB3aWR0aCBjb21wdXRpbmcgZnVuY3Rpb24gaW4gcHJl
ZmVycmVkCi0gICAgLy8gbG9naWNhbCB3aWR0aHMgY29tcHV0YXRpb24gYXMgdGhlIGxheW91dCBp
bmZvcm1hdGlvbiBpcyBwcm9iYWJseSBpbnZhbGlkLgotICAgIHJldHVybiBjb21wdXRlUmVwbGFj
ZWRMb2dpY2FsV2lkdGgoZmFsc2UpOworICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
V2lkdGgoQ29tcHV0ZVByZWZlcnJlZCk7CiB9CiAKIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmgKaW5kZXggYzY5ODYxNjZhMGU5NDIxZTg1NGViNmM5MWQ5MDI3MzIzNzcyN2Zj
Ni4uNWM2NDU0OTlmNDJkZjE3ZWFkNjVkNTU0YjliNzA5MTVlOGZmNjE5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKQEAgLTMyLDcgKzMyLDcgQEAgcHVibGlj
OgogICAgIFJlbmRlclJlcGxhY2VkKE5vZGUqLCBjb25zdCBMYXlvdXRTaXplJiBpbnRyaW5zaWNT
aXplKTsKICAgICB2aXJ0dWFsIH5SZW5kZXJSZXBsYWNlZCgpOwogCi0gICAgdmlydHVhbCBMYXlv
dXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCA9
IHRydWUpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCAgPSBDb21wdXRlQWN0dWFsKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhl
aWdodCgpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNSZXBsYWNlZExvZ2ljYWxXaWR0aCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKaW5kZXggMTEyNjllMjUy
ZjEwODQzMmRiNDdkMTdiY2Y1NDVlMmNlMTJhNTNlMi4uYWUzZmU1OWJjNzQ0OTVjMzk1ZTM2ZjFi
MWNiNjE3YjVhYzM3MWY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZGVvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8u
Y3BwCkBAIC0yNjIsOSArMjYyLDkgQEAgdm9pZCBSZW5kZXJWaWRlbzo6dXBkYXRlUGxheWVyKCkK
ICAgICBtZWRpYVBsYXllci0+c2V0VmlzaWJsZSh0cnVlKTsKIH0KIAotTGF5b3V0VW5pdCBSZW5k
ZXJWaWRlbzo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGJvb2wgaW5jbHVkZU1heFdpZHRo
KSBjb25zdAorTGF5b3V0VW5pdCBSZW5kZXJWaWRlbzo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdp
ZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCkgY29uc3QK
IHsKLSAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aChpbmNsdWRlTWF4V2lkdGgpOworICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoKHNob3VsZENvbXB1dGVQcmVmZXJyZWQpOwogfQogCiBMYXlvdXRV
bml0IFJlbmRlclZpZGVvOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKaW5kZXggNzhmODU1MDY4Y2FhYmYwNDNh
ZGM1MWY5MDYxMWEzNzI5OTAwM2FmOS4uZDZlZmU5MzQxYjllOGEyNjZhZTMzMzMwM2U4Nzk0N2Q4
NzI5NmU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVv
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKQEAgLTcwLDcg
KzcwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKIAotICAgIHZp
cnR1YWwgTGF5b3V0VW5pdCBjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRl
TWF4V2lkdGggPSB0cnVlKSBjb25zdDsKKyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgID0gQ29tcHV0ZUFjdHVh
bCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWluaW11bVJl
cGxhY2VkSGVpZ2h0KCkgY29uc3QgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IDA0OGM0ZjYwNDQ3N2UzNDI1NWNhMmZk
ZmQ3OTU3YjUxMWQ0NGJlNzEuLjM5ZmIyNmY3YzliYmRlZTI1Y2UzZDIyMzZjOWM4NjIyMmE2ZjNj
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNw
cApAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBpbmxpbmUgTGF5b3V0VW5pdCByZXNvbHZlTGVu
Z3RoQXR0cmlidXRlRm9yU1ZHKGNvbnN0IExlbmd0aCYgbGVuZ3RoLCBmbG9hCiAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PExheW91dFVuaXQ+KHZhbHVlRm9yTGVuZ3RoKGxlbmd0aCwgbWF4U2l6ZSwg
cmVuZGVyVmlldykgKiAobGVuZ3RoLmlzRml4ZWQoKSA/IHNjYWxlIDogMSkpOwogfQogCi1MYXlv
dXRVbml0IFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChib29sIGlu
Y2x1ZGVNYXhXaWR0aCkgY29uc3QKK0xheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJl
cGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVmZXJyZWQgc2hvdWxkQ29tcHV0ZVBy
ZWZlcnJlZCkgY29uc3QKIHsKICAgICBTVkdTVkdFbGVtZW50KiBzdmcgPSBzdGF0aWNfY2FzdDxT
VkdTVkdFbGVtZW50Kj4obm9kZSgpKTsKICAgICBBU1NFUlQoc3ZnKTsKQEAgLTE2OSw3ICsxNjks
NyBAQCBMYXlvdXRVbml0IFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29ucwogICAgICAgICByZXR1cm4gbV9jb250YWluZXJT
aXplLndpZHRoKCk7CiAKICAgICBpZiAoc3R5bGUoKS0+bG9naWNhbFdpZHRoKCkuaXNTcGVjaWZp
ZWQoKSB8fCBzdHlsZSgpLT5sb2dpY2FsTWF4V2lkdGgoKS5pc1NwZWNpZmllZCgpKQotICAgICAg
ICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChpbmNs
dWRlTWF4V2lkdGgpOworICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxXaWR0aChzaG91bGRDb21wdXRlUHJlZmVycmVkKTsKIAogICAgIGlmIChzdmct
PndpZHRoQXR0cmlidXRlRXN0YWJsaXNoZXNWaWV3cG9ydCgpKQogICAgICAgICByZXR1cm4gcmVz
b2x2ZUxlbmd0aEF0dHJpYnV0ZUZvclNWRyhzdmctPmludHJpbnNpY1dpZHRoKFNWR1NWR0VsZW1l
bnQ6Oklnbm9yZUNTU1Byb3BlcnRpZXMpLCBzdHlsZSgpLT5lZmZlY3RpdmVab29tKCksIGNvbnRh
aW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKSwgdmlldygpKTsKQEAgLTE3OSw3
ICsxNzksNyBAQCBMYXlvdXRVbml0IFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExvZ2lj
YWxXaWR0aChib29sIGluY2x1ZGVNYXhXaWR0aCkgY29ucwogICAgICAgICByZXR1cm4gZG9jdW1l
bnQoKS0+ZnJhbWUoKS0+b3duZXJSZW5kZXJlcigpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsK
IAogICAgIC8vIFNWRyBlbWJlZGRlZCB2aWEgU1ZHSW1hZ2UgKGJhY2tncm91bmQtaW1hZ2UvYm9y
ZGVyLWltYWdlL2V0YykgLyBJbmxpbmUgU1ZHLgotICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6
Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKGluY2x1ZGVNYXhXaWR0aCk7CisgICAgcmV0dXJu
IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoc2hvdWxkQ29tcHV0
ZVByZWZlcnJlZCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZVJlcGxh
Y2VkTG9naWNhbEhlaWdodCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5oCmluZGV4IDUyMzRlZjEyYzU4MGQ4NjY3NGIzMGI5OTAxMDdkZjExZjJk
M2MwYzMuLjM1ZDkzYWEyODk0N2RkZDBkOTdhMTAwMTI3ZWRjZThiNGVjMzdmZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC03OCw3ICs3OCw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU1ZHUm9vdCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCB7IHJl
dHVybiAiUmVuZGVyU1ZHUm9vdCI7IH0KIAotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBjb21wdXRl
UmVwbGFjZWRMb2dpY2FsV2lkdGgoYm9vbCBpbmNsdWRlTWF4V2lkdGggPSB0cnVlKSBjb25zdDsK
KyAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3Vs
ZENvbXB1dGVQcmVmZXJyZWQgID0gQ29tcHV0ZUFjdHVhbCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHQoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFj
ZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNzVlNjk4NmQ5MmQ3
MGQyZjYyY2E5N2Y3OTViNTdiZTliMWJkYjNkLi5iYWVlZjZhMDZjYjMzMTlhMzRlNmZiYTRiZjI0
YjQ4Nzc0YTQ3MDA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTItMjAgIEt5dW5nVGFl
IEtpbSAgPGt0Zi5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUGVyY2VudGFnZSBtaW4vbWF4
IHdpZHRoIHJlcGxhY2VkIGVsZW1lbnQgbWF5IGluY29ycmVjdGx5IHJlbmRlcmVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyNjQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdCB0byBjaGVj
ayB3aGVuIHRoZSBzb3VyY2Ugb2YgaW1hZ2VzIHdpdGggcGVyY2VudGFnZSBtaW4td2lkdGggaXMg
Y2hhbmdlZC4KKworICAgICAgICAqIGZhc3QvY3NzL3BlcmNlbnQtbWluLXdpZHRoLWltZy1zcmMt
Y2hhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcGVyY2VudC1t
aW4td2lkdGgtaW1nLXNyYy1jaGFuZ2UuaHRtbDogQWRkZWQuCisKIDIwMTItMTItMTggIERvbWlu
aWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CiAKICAgICAgICAgQVg6IHJhZGlvLWJ1
dHRvbi1jaGVja2JveC1zaXplIGlzIE1hYy1zcGVjaWZpYyBhbmQgc2hvdWxkIGJlIG1vdmVkLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGVyY2VudC1taW4td2lkdGgtaW1nLXNy
Yy1jaGFuZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGVyY2VudC1taW4t
d2lkdGgtaW1nLXNyYy1jaGFuZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MDBjYjZiNjJm
Y2I1YTdlYTgyZDU4NDhiZTM1M2I2NmMyYmJhNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyIEBACitQQVNTCisgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9wZXJjZW50LW1pbi13aWR0aC1pbWctc3JjLWNoYW5nZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvcGVyY2VudC1taW4td2lkdGgtaW1nLXNyYy1jaGFuZ2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMDAxYTliMGMyZmQwYTRkZjAwMGIzNDczNzk5NzA0YzY5MzMzNzQ0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGVyY2VudC1taW4td2lkdGgtaW1nLXNyYy1jaGFu
Z2UuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cit2YXIgY29tcGxldGVkID0gMCwgZmFp
bHVyZXMgPSAwLCBmYWlsdXJlc0RldGFpbCA9ICIiOyAKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworfQorZnVuY3Rpb24gcHJpbnRSZXN1bHQoKSB7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4dCA9IGZhaWx1cmVzID8gIkZBSUw6ICIgKyBmYWls
dXJlcyArICIgY2FzZXMgZmFpbGVkXG4iICsgZmFpbHVyZXNEZXRhaWwgOiAiUEFTUyI7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30KKworZnVuY3Rpb24gaW1hZ2VDaGVja0Zvck1pbihpbWFnZSkgeworICAgIGlmIChpbWFnZS5z
cmMubWF0Y2goImdyZWVuYm94LTEwMHB4LnBuZyIpICAhPSBudWxsKSB7CisgICAgICAgIGltYWdl
LnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW5ib3gucG5nIjsKKyAgICB9CisgICAgZWxzZSB7CisgICAg
ICAgICsrY29tcGxldGVkOworICAgICAgICBpZiAoaW1hZ2Uud2lkdGggIT0gMjUpIHsKKyAgICAg
ICAgICAgICsrZmFpbHVyZXM7IAorICAgICAgICAgICAgZmFpbHVyZXNEZXRhaWwgKz0gIGltYWdl
LmlkICsgIjogIiArIGltYWdlLndpZHRoICsgIiAoZXhwZWN0ZWQ6ICIgKyAyNSArICIpXG4iOwor
ICAgICAgICB9CisgICAgICAgIGlmIChjb21wbGV0ZWQgPT0gMikKKyAgICAgICAgICAgICBwcmlu
dFJlc3VsdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKzxkaXYg
aWQ9InJlc3VsdCI+PC9kaXY+Cis8dGFibGU+Cis8dGJvZHk+Cis8dHI+Cis8dGQ+Cis8aW1nIGlk
PSJwZXJjZW50TWluV2lkdGhJblRhYmxlIiBzdHlsZT0ibWluLXdpZHRoOjEwMCU7IiBzcmM9InJl
c291cmNlcy9ncmVlbmJveC0xMDBweC5wbmciIG9ubG9hZD0iaW1hZ2VDaGVja0Zvck1pbih0aGlz
KSI+Cis8L3RkPgorPC90cj4KKzwvdGJvZHk+Cis8L3RhYmxlPgorPGRpdiBzdHlsZT0icG9zaXRp
b246YWJzb2x1dGU7dG9wOjIwMHB4O2xlZnQ6MTFweCI+Cis8aW1nIGlkPSJwZXJjZW50TWluV2lk
dGhJbkFic29sdXRlIiBzdHlsZT0ibWluLXdpZHRoOjEwMCU7IiBzcmM9InJlc291cmNlcy9ncmVl
bmJveC0xMDBweC5wbmciIG9ubG9hZD0iaW1hZ2VDaGVja0Zvck1pbih0aGlzKSI+Cis8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>