<?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>104628</bug_id>
          
          <creation_ts>2012-12-10 21:40:58 -0800</creation_ts>
          <short_desc>Milliseconds field of date/time input UI should respect step attribute</short_desc>
          <delta_ts>2012-12-12 19:03:11 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Kunihiko Sakamoto">ksakamoto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ojan.autocc</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>788014</commentid>
    <comment_count>0</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-12-10 21:40:58 -0800</bug_when>
    <thetext>This is the first step toward supporting min/max/step attributes in multiple fields UI.
For example, if step attribute is 0.25 (250ms), the milliseconds field should be selectable only from 000, 250, 500, 750.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788023</commentid>
    <comment_count>1</comment_count>
      <attachid>178709</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-12-10 21:49:49 -0800</bug_when>
    <thetext>Created attachment 178709
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788025</commentid>
    <comment_count>2</comment_count>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-12-10 21:50:39 -0800</bug_when>
    <thetext>Kent-san, could you look at this patch to see if the approach is right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788045</commentid>
    <comment_count>3</comment_count>
      <attachid>178709</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-12-10 22:09:58 -0800</bug_when>
    <thetext>Comment on attachment 178709
WIP Patch

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

The approach looks good.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:220
&gt; +        ASSERT(!m_parameters.stepRange.step().isZero());
&gt; +        int step = 1;
&gt; +        if (Decimal(static_cast&lt;int&gt;(msPerSecond)).remainder(m_parameters.stepRange.step()).isZero())
&gt; +            step = static_cast&lt;int&gt;(m_parameters.stepRange.step().toDouble());
&gt; +        RefPtr&lt;DateTimeNumericFieldElement&gt; field = DateTimeMillisecondFieldElement::create(document, m_editElement, step);

We should take account of non-zero step-base value.  e.g. &lt;input type=time step=0.100 min=00:00:00.050&gt;
We need to pass step-base value (the milliseconds part of the min), or stop step-aware behavior if step-base is not zero.

&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp:71
&gt; +    , m_step(step)
&gt;  {
&gt;      // We show a direction-neutral string such as &quot;--&quot; as a placeholder. It

We should have ASSERT(m_step).

&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp:199
&gt;          setValueAsInteger(defaultValueForStepDown(), DispatchEvent);

defaultValueForStepDown() needs to be aligned to m_step.

&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp:212
&gt;          setValueAsInteger(defaultValueForStepUp(), DispatchEvent);

defaultValueForStepUp() needs to be aligned to m_step.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789180</commentid>
    <comment_count>4</comment_count>
      <attachid>178961</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-12-11 21:46:13 -0800</bug_when>
    <thetext>Created attachment 178961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789183</commentid>
    <comment_count>5</comment_count>
      <attachid>178709</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-12-11 21:48:57 -0800</bug_when>
    <thetext>Comment on attachment 178709
WIP Patch

Thanks for the review.
Updated patch with tests. Please take another look.

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

&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:220
&gt;&gt; +        RefPtr&lt;DateTimeNumericFieldElement&gt; field = DateTimeMillisecondFieldElement::create(document, m_editElement, step);
&gt; 
&gt; We should take account of non-zero step-base value.  e.g. &lt;input type=time step=0.100 min=00:00:00.050&gt;
&gt; We need to pass step-base value (the milliseconds part of the min), or stop step-aware behavior if step-base is not zero.

Changed to pass step-base value.

&gt;&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp:71
&gt;&gt;      // We show a direction-neutral string such as &quot;--&quot; as a placeholder. It
&gt; 
&gt; We should have ASSERT(m_step).

Done.

&gt;&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp:199
&gt;&gt;          setValueAsInteger(defaultValueForStepDown(), DispatchEvent);
&gt; 
&gt; defaultValueForStepDown() needs to be aligned to m_step.

Done.

&gt;&gt; Source/WebCore/html/shadow/DateTimeNumericFieldElement.cpp:212
&gt;&gt;          setValueAsInteger(defaultValueForStepUp(), DispatchEvent);
&gt; 
&gt; defaultValueForStepUp() needs to be aligned to m_step.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789213</commentid>
    <comment_count>6</comment_count>
      <attachid>178961</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-12-11 22:29:12 -0800</bug_when>
    <thetext>Comment on attachment 178961
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html

You need to add tests for
  step=0
  step=0.00001

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:221
&gt; +        if (decimalMsPerSecond.remainder(m_parameters.stepRange.step()).isZero()) {

You need to check m_parameters.stepRange.step().remainder(Decimal(1)).isZero() too.

&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:223
&gt; +            stepBase = static_cast&lt;int&gt;(m_parameters.stepRange.stepBase().remainder(decimalMsPerSecond).toDouble());

Why don&apos;t you subtract msPerSecond from the remainder result and assume stepBase&lt;=0 ?  It would make roundUp/roundDown simpler.

&gt; LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html:82
&gt; +shouldBeEqualToString(&apos;stepDown(&quot;07:13:00.500&quot;, 0.100, &quot;00:00:00.050&quot;, null)&apos;, &apos;07:13:00.450&apos;);
&gt; +

We should test rounding of defaultValeuForStepDown/Up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790156</commentid>
    <comment_count>7</comment_count>
      <attachid>179172</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-12-12 18:12:47 -0800</bug_when>
    <thetext>Created attachment 179172
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790161</commentid>
    <comment_count>8</comment_count>
      <attachid>178961</attachid>
    <who name="Kunihiko Sakamoto">ksakamoto</who>
    <bug_when>2012-12-12 18:15:36 -0800</bug_when>
    <thetext>Comment on attachment 178961
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        Test: fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html
&gt; 
&gt; You need to add tests for
&gt;   step=0
&gt;   step=0.00001

Done.

&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:221
&gt;&gt; +        if (decimalMsPerSecond.remainder(m_parameters.stepRange.step()).isZero()) {
&gt; 
&gt; You need to check m_parameters.stepRange.step().remainder(Decimal(1)).isZero() too.

Done.

&gt;&gt; Source/WebCore/html/shadow/DateTimeEditElement.cpp:223
&gt;&gt; +            stepBase = static_cast&lt;int&gt;(m_parameters.stepRange.stepBase().remainder(decimalMsPerSecond).toDouble());
&gt; 
&gt; Why don&apos;t you subtract msPerSecond from the remainder result and assume stepBase&lt;=0 ?  It would make roundUp/roundDown simpler.

But roundDown still has to handle n=-1 when stepped down from zero.
I&apos;d prefer to keep roundUp/roundDown capable of handling general cases.

&gt;&gt; LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-stepup-stepdown-from-renderer.html:82
&gt;&gt; +
&gt; 
&gt; We should test rounding of defaultValeuForStepDown/Up.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790165</commentid>
    <comment_count>9</comment_count>
      <attachid>179172</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-12-12 18:18:32 -0800</bug_when>
    <thetext>Comment on attachment 179172
Patch 2

ok, looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790196</commentid>
    <comment_count>10</comment_count>
      <attachid>179172</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 19:03:06 -0800</bug_when>
    <thetext>Comment on attachment 179172
Patch 2

Clearing flags on attachment: 179172

Committed r137561: &lt;http://trac.webkit.org/changeset/137561&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790197</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-12 19:03:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178709</attachid>
            <date>2012-12-10 21:49:49 -0800</date>
            <delta_ts>2012-12-11 21:48:57 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-104628-20121211144711.patch</filename>
            <type>text/plain</type>
            <size>8525</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZhZGNjMDAzYmQ1ZWI3
NGI4MjBlOGU0M2FjMzcwY2Y4ZjE5MTJiZi4uNGUzM2VhMGNlY2QyZTlmNWZhODJjNzExMDY5NzUw
NWU3ZWZmMjY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEyLTEwICBLdW5p
aGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWlsbGlz
ZWNvbmRzIGZpZWxkIG9mIGRhdGUvdGltZSBpbnB1dCBVSSBzaG91bGQgcmVzcGVjdCBzdGVwIGF0
dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA0NjI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJh
dGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BT
ISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBodG1sL3No
YWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1pbGxpc2Vjb25k
RmllbGRFbGVtZW50OjpEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmg6CisgICAgICAgIChEYXRl
VGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZU51bWVyaWNGaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzdGVwRG93bik6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnN0ZXBVcCk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Lmg6CisgICAgICAg
IChEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOgorCiAyMDEyLTEyLTEwICBZaSBTaGVuICA8
bWF4Lmhvbmcuc2hlbkBnbWFpbC5jb20+CiAKICAgICAgICAgS2V5Ym9hcmQgY2FyZXQgbW92ZW1l
bnQgaW4gdGV4dGFyZWEgd2l0aCBSVEwgT3ZlcnJpZGUgQ2hhcmFjdGVyIGNhbiBtYWtlIHRhYiB1
bnJlc3BvbnNpdmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVF
ZGl0RWxlbWVudC5jcHAKaW5kZXggNzA5YTRhZjFjY2ZmNzNiZTBlYzBmZTc0OWIxYmJmNDNjMDVi
NzYyYS4uNjk4NzMyMjRjZWY4MWU5NTVmN2ZhZTk4ZTE0N2ZmODBhZWYyMzBlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAg
LTIxMyw3ICsyMTMsMTEgQEAgdm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKERh
dGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgY28KICAgICB9CiAKICAgICBj
YXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kOiB7Ci0gICAgICAg
IFJlZlB0cjxEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ+IGZpZWxkID0gRGF0ZVRpbWVNaWxs
aXNlY29uZEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50KTsKKyAg
ICAgICAgQVNTRVJUKCFtX3BhcmFtZXRlcnMuc3RlcFJhbmdlLnN0ZXAoKS5pc1plcm8oKSk7Cisg
ICAgICAgIGludCBzdGVwID0gMTsKKyAgICAgICAgaWYgKERlY2ltYWwoc3RhdGljX2Nhc3Q8aW50
Pihtc1BlclNlY29uZCkpLnJlbWFpbmRlcihtX3BhcmFtZXRlcnMuc3RlcFJhbmdlLnN0ZXAoKSku
aXNaZXJvKCkpCisgICAgICAgICAgICBzdGVwID0gc3RhdGljX2Nhc3Q8aW50PihtX3BhcmFtZXRl
cnMuc3RlcFJhbmdlLnN0ZXAoKS50b0RvdWJsZSgpKTsKKyAgICAgICAgUmVmUHRyPERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIHN0ZXApOwogICAgICAgICBtX2Vk
aXRFbGVtZW50LmFkZEZpZWxkKGZpZWxkKTsKICAgICAgICAgaWYgKHNob3VsZE1pbGxpc2Vjb25k
RmllbGRSZWFkT25seSgpKSB7CiAgICAgICAgICAgICBmaWVsZC0+c2V0VmFsdWVBc0RhdGUobV9k
YXRlVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVGaWVsZEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RmllbGRFbGVtZW50cy5jcHAKaW5kZXggOWZmZGNlMDdmODUwMGYwMWVkZDlkZTUzODE1NTVmNDZk
MmYwN2M0MS4uOGJhNGQ2NjkzNzQ4YWJmMTI3NjUwMWJhN2VjN2NjMWFkMGIwNGZmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
Y3BwCkBAIC0yMTcsMTUgKzIxNywxNSBAQCBpbnQgRGF0ZVRpbWVIb3VyRmllbGRFbGVtZW50Ojp2
YWx1ZUFzSW50ZWdlcigpIGNvbnN0CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
IAotRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNaWxsaXNlY29uZEZp
ZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIpCi0g
ICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIDAs
IDk5OSwgIi0tLSIpCitEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZU1p
bGxpc2Vjb25kRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmll
bGRPd25lciwgaW50IHN0ZXApCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9j
dW1lbnQsIGZpZWxkT3duZXIsIDAsIDk5OSwgIi0tLSIsIHN0ZXApCiB7CiB9CiAKLVBhc3NSZWZQ
dHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gRGF0ZVRpbWVNaWxsaXNlY29uZEZp
ZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRP
d25lcikKK1Bhc3NSZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gRGF0ZVRp
bWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgRmll
bGRPd25lciYgZmllbGRPd25lciwgaW50IHN0ZXApCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIG1pbGxpc2Vjb25kUHN1ZWRvSWQsICgiLXdlYmtpdC1kYXRldGltZS1l
ZGl0LW1pbGxpc2Vjb25kLWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwotICAgIFJlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50PiBmaWVsZCA9
IGFkb3B0UmVmKG5ldyBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KGRvY3VtZW50LCBm
aWVsZE93bmVyKSk7CisgICAgUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+
IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQoZG9j
dW1lbnQsIGZpZWxkT3duZXIsIHN0ZXApKTsKICAgICBmaWVsZC0+aW5pdGlhbGl6ZShtaWxsaXNl
Y29uZFBzdWVkb0lkLCBBWE1pbGxpc2Vjb25kRmllbGRUZXh0KCkpOwogICAgIHJldHVybiBmaWVs
ZC5yZWxlYXNlKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZUZpZWxkRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVU
aW1lRmllbGRFbGVtZW50cy5oCmluZGV4IDAwNTNhNGEzOTFmM2JmOGU2ZjQ2NzM3ZGJiZWViMTg1
MWE5ZTBlOWQuLmFlZGE1OTAzOGNiYWE0ZmI0NTUwMTUxMmFjYTQ5ZjAyODFlZDAyMGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5o
CkBAIC05MSwxMCArOTEsMTAgQEAgY2xhc3MgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVu
dCA6IHB1YmxpYyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQpOwogCiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50KiwgRmllbGRPd25lciYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVU
aW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXIm
LCBpbnQgc3RlcCk7CiAKIHByaXZhdGU6Ci0gICAgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxl
bWVudChEb2N1bWVudCosIEZpZWxkT3duZXImKTsKKyAgICBEYXRlVGltZU1pbGxpc2Vjb25kRmll
bGRFbGVtZW50KERvY3VtZW50KiwgRmllbGRPd25lciYsIGludCBzdGVwKTsKIAogICAgIC8vIERh
dGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVE
YXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5BTDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IGM5YjA2MmVjYThjYzE2ZDVkZmRmMWZjMmMzMGZmMDEx
ZjhlMzFjMzYuLmQ3YjYwMzE0MmYwZmRjZDgwMmNmNzg3ZTFlNTMyMDFkZWQwMTg4MWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50LmNwcApAQCAtNTksMTMgKzU5LDE0IEBAIGJvb2wgRGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50OjpSYW5nZTo6aXNJblJhbmdlKGludCB2YWx1ZSkgY29uc3QKIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6
OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3du
ZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgU3RyaW5nJiBw
bGFjZWhvbGRlcikKK0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1lcmlj
RmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lciwg
aW50IG1pbmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBpbnQg
c3RlcCkKICAgICA6IERhdGVUaW1lRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKQog
ICAgICwgbV9sYXN0RGlnaXRDaGFyVGltZSgwKQogICAgICwgbV9wbGFjZWhvbGRlcihwbGFjZWhv
bGRlcikKICAgICAsIG1fcmFuZ2UobWluaW11bSwgbWF4aW11bSkKICAgICAsIG1fdmFsdWUoMCkK
ICAgICAsIG1faGFzVmFsdWUoZmFsc2UpCisgICAgLCBtX3N0ZXAoc3RlcCkKIHsKICAgICAvLyBX
ZSBzaG93IGEgZGlyZWN0aW9uLW5ldXRyYWwgc3RyaW5nIHN1Y2ggYXMgIi0tIiBhcyBhIHBsYWNl
aG9sZGVyLiBJdAogICAgIC8vIHNob3VsZCBmb2xsb3cgdGhlIGRpcmVjdGlvbiBvZiBudW1lcmlj
IHZhbHVlcy4KQEAgLTE4NywxNiArMTg4LDI2IEBAIHZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50OjpzZXRWYWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUsIEV2ZW50QmVoYXZpb3IgZXZlCiAK
IHZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzdGVwRG93bigpCiB7Ci0gICAgaWYg
KG1faGFzVmFsdWUpCi0gICAgICAgIHNldFZhbHVlQXNJbnRlZ2VyKG1fdmFsdWUgPT0gbV9yYW5n
ZS5taW5pbXVtID8gbV9yYW5nZS5tYXhpbXVtIDogY2xhbXBWYWx1ZShtX3ZhbHVlIC0gMSksIERp
c3BhdGNoRXZlbnQpOworICAgIGlmIChtX2hhc1ZhbHVlKSB7CisgICAgICAgIGludCBuZXdWYWx1
ZSA9IG1fdmFsdWUgLSAxOworICAgICAgICBpZiAobmV3VmFsdWUgPCBtX3JhbmdlLm1pbmltdW0p
CisgICAgICAgICAgICBuZXdWYWx1ZSArPSBtX3JhbmdlLm1heGltdW0gLSBtX3JhbmdlLm1pbmlt
dW0gKyAxOworICAgICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlIC8gbV9zdGVwICogbV9zdGVwOwor
ICAgICAgICBzZXRWYWx1ZUFzSW50ZWdlcihjbGFtcFZhbHVlKG5ld1ZhbHVlKSwgRGlzcGF0Y2hF
dmVudCk7CisgICAgfQogICAgIGVsc2UKICAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGVmYXVs
dFZhbHVlRm9yU3RlcERvd24oKSwgRGlzcGF0Y2hFdmVudCk7CiB9CiAKIHZvaWQgRGF0ZVRpbWVO
dW1lcmljRmllbGRFbGVtZW50OjpzdGVwVXAoKQogewotICAgIGlmIChtX2hhc1ZhbHVlKQotICAg
ICAgICBzZXRWYWx1ZUFzSW50ZWdlcihtX3ZhbHVlID09IG1fcmFuZ2UubWF4aW11bSA/IG1fcmFu
Z2UubWluaW11bSA6IGNsYW1wVmFsdWUobV92YWx1ZSArIDEpLCBEaXNwYXRjaEV2ZW50KTsKKyAg
ICBpZiAobV9oYXNWYWx1ZSkgeworICAgICAgICBpbnQgbmV3VmFsdWUgPSBtX3ZhbHVlICsgbV9z
dGVwOworICAgICAgICBpZiAobmV3VmFsdWUgPiBtX3JhbmdlLm1heGltdW0pCisgICAgICAgICAg
ICBuZXdWYWx1ZSAtPSBtX3JhbmdlLm1heGltdW0gLSBtX3JhbmdlLm1pbmltdW0gKyAxOworICAg
ICAgICBuZXdWYWx1ZSA9IG5ld1ZhbHVlIC8gbV9zdGVwICogbV9zdGVwOworICAgICAgICBzZXRW
YWx1ZUFzSW50ZWdlcihjbGFtcFZhbHVlKG5ld1ZhbHVlKSwgRGlzcGF0Y2hFdmVudCk7CisgICAg
fQogICAgIGVsc2UKICAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGVmYXVsdFZhbHVlRm9yU3Rl
cFVwKCksIERpc3BhdGNoRXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaAppbmRleCA0YmFiZmRiOGU2
NzRkODMwNTM5YmU3YThhMzc4N2EyMzg0ZjI3NmE0Li5iM2U1YTdhYmViZjQ0ODNmYTI5MTFiNjlk
NTNjMjJlZjIyOTE5MjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaApAQCAtNTEsNyArNTEsNyBAQCBwcm90
ZWN0ZWQ6CiAgICAgICAgIGludCBtaW5pbXVtOwogICAgIH07CiAKLSAgICBEYXRlVGltZU51bWVy
aWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBt
YXhpbXVtLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKTsKKyAgICBEYXRlVGltZU51bWVyaWNG
aWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1pbmltdW0sIGludCBtYXhp
bXVtLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBpbnQgc3RlcCA9IDEpOwogCiAgICAgaW50
IGNsYW1wVmFsdWUoaW50IHZhbHVlKSBjb25zdCB7IHJldHVybiBtX3JhbmdlLmNsYW1wVmFsdWUo
dmFsdWUpOyB9CiAgICAgdmlydHVhbCBpbnQgY2xhbXBWYWx1ZUZvckhhcmRMaW1pdHMoaW50KSBj
b25zdDsKQEAgLTg1LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBjb25zdCBSYW5nZSBtX3Jhbmdl
OwogICAgIGludCBtX3ZhbHVlOwogICAgIGJvb2wgbV9oYXNWYWx1ZTsKKyAgICBpbnQgbV9zdGVw
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178961</attachid>
            <date>2012-12-11 21:46:13 -0800</date>
            <delta_ts>2012-12-12 18:15:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104628-20121212144334.patch</filename>
            <type>text/plain</type>
            <size>16833</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY1OWM2MDk1ODlkMDc2
Mzk3MjRkZGIwMTRjZTdiNTMxODNmZTAxYy4uYzYxZDgyNWM5OWU5MzhjMDA0NWUzOTkzNjZkMTY4
ODMwMTNkMzk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEyLTExICBLdW5p
aGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWlsbGlz
ZWNvbmRzIGZpZWxkIG9mIGRhdGUvdGltZSBpbnB1dCBVSSBzaG91bGQgcmVzcGVjdCBzdGVwIGF0
dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA0NjI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBtYWtlcyBzdGVwLXVwLy1kb3duIFVJIG9mIHRoZSBtaWxsaXNlY29uZHMgZmll
bGRzIHJlc3BlY3Qgc3RlcCBhdHRyaWJ1dGUKKyAgICAgICAgaW4gYSBzcGVjaWFsIGNhc2Ugd2hl
biB0aGUgc3RlcCBpcyBkaXZpc2libGUgYnkgMTAwMCBtaWxsaXNlY29uZHMuCisKKyAgICAgICAg
VGVzdDogZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxk
cy1zdGVwdXAtc3RlcGRvd24tZnJvbS1yZW5kZXJlci5odG1sCisKKyAgICAgICAgKiBodG1sL3No
YWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQpOgorICAgICAgICBJZiBzdGVwIG9mIHRoZSBlbGVtZW50
IChpbiBtaWxsaXNlY29uZHMpIGlzIGRpdmlzaWJsZSBieSAxMDAwLCB1c2UgaXQgYXMgdGhlIHN0
ZXAgb2YgdGhlIG1pbGxpc2Vjb25kcyBmaWVsZC4gT3RoZXJ3aXNlLCB0aGUgbWlsbGlzZWNvbmQg
ZmllbGQgaGFzIHN0ZXAgMS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxl
bWVudDo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudCk6IEFkZCBzdGVwIGFuZCBzdGVw
QmFzZSBhcmd1bWVudHMuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1pbGxpc2Vjb25kRmll
bGRFbGVtZW50OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudHMuaDoKKyAgICAgICAgKERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1l
bnQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c3RlcERvd24pOiBDaGFuZ2VkIHRvIGNvbXB1
dGUgbmV4dCBhbGxvd2VkIHZhbHVlIHVzaW5nIHJvdW5kRG93bigpLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzdGVwVXApOiBDaGFuZ2VkIHRvIGNvbXB1
dGUgbmV4dCBhbGxvd2VkIHZhbHVlIHVzaW5nIHJvdW5kVXAoKS4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6cm91bmREb3duKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnJvdW5kVXApOiBBZGRlZC4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDoKKyAg
ICAgICAgKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6IEFkZCBtX3N0ZXAgYW5kIG1fc3Rl
cEJhc2UgZmllbGRzLgorCiAyMDEyLTEyLTExICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBNYWMgYnVpbGQgYWZ0ZXIgcjEzNzI2MQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAppbmRl
eCA3MDlhNGFmMWNjZmY3M2JlMGVjMGZlNzQ5YjFiYmY0M2MwNWI3NjJhLi5mMDQ3MmI2ZWU0YjU5
ZGFlYTc1ZDgwNjZjOGZkODZhNDI2NmY5ZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMjEzLDcgKzIxMywxNiBAQCB2
b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZSBmaWVsZFR5cGUsIGludCBjbwogICAgIH0KIAogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUZyYWN0aW9uYWxTZWNvbmQ6IHsKLSAgICAgICAgUmVmUHRyPERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQpOworICAgICAgICBBU1NFUlQoIW1fcGFy
YW1ldGVycy5zdGVwUmFuZ2Uuc3RlcCgpLmlzWmVybygpKTsKKyAgICAgICAgaW50IHN0ZXAgPSAx
OworICAgICAgICBpbnQgc3RlcEJhc2UgPSAwOworICAgICAgICBjb25zdCBEZWNpbWFsIGRlY2lt
YWxNc1BlclNlY29uZChzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyU2Vjb25kKSk7CisKKyAgICAgICAg
aWYgKGRlY2ltYWxNc1BlclNlY29uZC5yZW1haW5kZXIobV9wYXJhbWV0ZXJzLnN0ZXBSYW5nZS5z
dGVwKCkpLmlzWmVybygpKSB7CisgICAgICAgICAgICBzdGVwID0gc3RhdGljX2Nhc3Q8aW50Piht
X3BhcmFtZXRlcnMuc3RlcFJhbmdlLnN0ZXAoKS50b0RvdWJsZSgpKTsKKyAgICAgICAgICAgIHN0
ZXBCYXNlID0gc3RhdGljX2Nhc3Q8aW50PihtX3BhcmFtZXRlcnMuc3RlcFJhbmdlLnN0ZXBCYXNl
KCkucmVtYWluZGVyKGRlY2ltYWxNc1BlclNlY29uZCkudG9Eb3VibGUoKSk7CisgICAgICAgIH0K
KyAgICAgICAgUmVmUHRyPERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRl
VGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1l
bnQsIHN0ZXAsIHN0ZXBCYXNlKTsKICAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChmaWVs
ZCk7CiAgICAgICAgIGlmIChzaG91bGRNaWxsaXNlY29uZEZpZWxkUmVhZE9ubHkoKSkgewogICAg
ICAgICAgICAgZmllbGQtPnNldFZhbHVlQXNEYXRlKG1fZGF0ZVZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCmluZGV4
IDlmZmRjZTA3Zjg1MDBmMDFlZGQ5ZGU1MzgxNTU1ZjQ2ZDJmMDdjNDEuLjA1MjYyZmFjY2FhODNj
NGMwYWMwYTIzMTBhYTgwMDg0ZGQ5MzNiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNwcApAQCAtMjE3LDE1ICsyMTcsMTUg
QEAgaW50IERhdGVUaW1lSG91ckZpZWxkRWxlbWVudDo6dmFsdWVBc0ludGVnZXIoKSBjb25zdAog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURhdGVUaW1lTWlsbGlzZWNvbmRG
aWVsZEVsZW1lbnQ6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyKQotICAgIDogRGF0ZVRpbWVOdW1lcmljRmll
bGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCAwLCA5OTksICItLS0iKQorRGF0ZVRpbWVN
aWxsaXNlY29uZEZpZWxkRWxlbWVudDo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBzdGVwLCBpbnQg
c3RlcEJhc2UpCisgICAgOiBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZp
ZWxkT3duZXIsIDAsIDk5OSwgIi0tLSIsIHN0ZXAsIHN0ZXBCYXNlKQogewogfQogCi1QYXNzUmVm
UHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+IERhdGVUaW1lTWlsbGlzZWNvbmRG
aWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxkT3duZXImIGZpZWxk
T3duZXIpCitQYXNzUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ+IERhdGVU
aW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIEZp
ZWxkT3duZXImIGZpZWxkT3duZXIsIGludCBzdGVwLCBpbnQgc3RlcEJhc2UpCiB7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1pbGxpc2Vjb25kUHN1ZWRvSWQsICgiLXdl
YmtpdC1kYXRldGltZS1lZGl0LW1pbGxpc2Vjb25kLWZpZWxkIiwgQXRvbWljU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwotICAgIFJlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRF
bGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVt
ZW50KGRvY3VtZW50LCBmaWVsZE93bmVyKSk7CisgICAgUmVmUHRyPERhdGVUaW1lTWlsbGlzZWNv
bmRGaWVsZEVsZW1lbnQ+IGZpZWxkID0gYWRvcHRSZWYobmV3IERhdGVUaW1lTWlsbGlzZWNvbmRG
aWVsZEVsZW1lbnQoZG9jdW1lbnQsIGZpZWxkT3duZXIsIHN0ZXAsIHN0ZXBCYXNlKSk7CiAgICAg
ZmllbGQtPmluaXRpYWxpemUobWlsbGlzZWNvbmRQc3VlZG9JZCwgQVhNaWxsaXNlY29uZEZpZWxk
VGV4dCgpKTsKICAgICByZXR1cm4gZmllbGQucmVsZWFzZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaAppbmRleCAwMDUzYTRh
MzkxZjNiZjhlNmY0NjczN2RiYmVlYjE4NTFhOWUwZTlkLi5iOWNkNTYzOTA2MGM1YTUzYTUyYjUx
NzI0OWY0Y2JkMDVkNmUwZjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZUZpZWxkRWxlbWVudHMuaApAQCAtOTEsMTAgKzkxLDEwIEBAIGNsYXNzIERhdGVU
aW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZU1pbGxpc2Vjb25kRmll
bGRFbGVtZW50KTsKIAogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lTWls
bGlzZWNvbmRGaWVsZEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIEZpZWxkT3duZXImKTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IHN0ZXAsIGludCBzdGVwQmFzZSk7CiAKIHBy
aXZhdGU6Ci0gICAgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChEb2N1bWVudCosIEZp
ZWxkT3duZXImKTsKKyAgICBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KERvY3VtZW50
KiwgRmllbGRPd25lciYsIGludCBzdGVwLCBpbnQgc3RlcEJhc2UpOwogCiAgICAgLy8gRGF0ZVRp
bWVGaWVsZEVsZW1lbnQgZnVuY3Rpb25zLgogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0ZURhdGVU
aW1lRmllbGRzU3RhdGUoRGF0ZVRpbWVGaWVsZHNTdGF0ZSYpIE9WRVJSSURFIEZJTkFMOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0Zp
ZWxkRWxlbWVudC5jcHAKaW5kZXggMmNkN2JmMzVkODAyMjUxOGE4ZDIxYmJiNGI3NjU0MzgyOWJl
YjBiNy4uOGRkM2RiZGJjNTBhYzk3YzE5ZTQ5MmM3MGI4MDU0YzEwNTAwNDM5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQuY3BwCkBAIC01OSwxNCArNTksMTggQEAgYm9vbCBEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQ6OlJhbmdlOjppc0luUmFuZ2UoaW50IHZhbHVlKSBjb25zdAogCiAvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLURhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYg
ZmllbGRPd25lciwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBTdHJpbmcmIHBsYWNl
aG9sZGVyKQorRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpEYXRlVGltZU51bWVyaWNGaWVs
ZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQg
bWluaW11bSwgaW50IG1heGltdW0sIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIsIGludCBzdGVw
LCBpbnQgc3RlcEJhc2UpCiAgICAgOiBEYXRlVGltZUZpZWxkRWxlbWVudChkb2N1bWVudCwgZmll
bGRPd25lcikKICAgICAsIG1fbGFzdERpZ2l0Q2hhclRpbWUoMCkKICAgICAsIG1fcGxhY2Vob2xk
ZXIocGxhY2Vob2xkZXIpCiAgICAgLCBtX3JhbmdlKG1pbmltdW0sIG1heGltdW0pCiAgICAgLCBt
X3ZhbHVlKDApCiAgICAgLCBtX2hhc1ZhbHVlKGZhbHNlKQorICAgICwgbV9zdGVwKHN0ZXApCisg
ICAgLCBtX3N0ZXBCYXNlKHN0ZXBCYXNlKQogeworICAgIEFTU0VSVChtX3N0ZXApOworCiAgICAg
Ly8gV2Ugc2hvdyBhIGRpcmVjdGlvbi1uZXV0cmFsIHN0cmluZyBzdWNoIGFzICItLSIgYXMgYSBw
bGFjZWhvbGRlci4gSXQKICAgICAvLyBzaG91bGQgZm9sbG93IHRoZSBkaXJlY3Rpb24gb2YgbnVt
ZXJpYyB2YWx1ZXMuCiAgICAgaWYgKGxvY2FsZUZvck93bmVyKCkuaXNSVEwoKSkgewpAQCAtMTgy
LDE4ICsxODYsMTggQEAgdm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnNldFZhbHVl
QXNJbnRlZ2VyKGludCB2YWx1ZSwgRXZlbnRCZWhhdmlvciBldmUKIAogdm9pZCBEYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQ6OnN0ZXBEb3duKCkKIHsKLSAgICBpZiAobV9oYXNWYWx1ZSkKLSAg
ICAgICAgc2V0VmFsdWVBc0ludGVnZXIobV92YWx1ZSA9PSBtX3JhbmdlLm1pbmltdW0gPyBtX3Jh
bmdlLm1heGltdW0gOiBjbGFtcFZhbHVlKG1fdmFsdWUgLSAxKSwgRGlzcGF0Y2hFdmVudCk7Ci0g
ICAgZWxzZQotICAgICAgICBzZXRWYWx1ZUFzSW50ZWdlcihkZWZhdWx0VmFsdWVGb3JTdGVwRG93
bigpLCBEaXNwYXRjaEV2ZW50KTsKKyAgICBpbnQgbmV3VmFsdWUgPSByb3VuZERvd24obV9oYXNW
YWx1ZSA/IG1fdmFsdWUgLSAxIDogZGVmYXVsdFZhbHVlRm9yU3RlcERvd24oKSk7CisgICAgaWYg
KCFtX3JhbmdlLmlzSW5SYW5nZShuZXdWYWx1ZSkpCisgICAgICAgIG5ld1ZhbHVlID0gcm91bmRE
b3duKG1fcmFuZ2UubWF4aW11bSk7CisgICAgc2V0VmFsdWVBc0ludGVnZXIobmV3VmFsdWUsIERp
c3BhdGNoRXZlbnQpOwogfQogCiB2b2lkIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c3Rl
cFVwKCkKIHsKLSAgICBpZiAobV9oYXNWYWx1ZSkKLSAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIo
bV92YWx1ZSA9PSBtX3JhbmdlLm1heGltdW0gPyBtX3JhbmdlLm1pbmltdW0gOiBjbGFtcFZhbHVl
KG1fdmFsdWUgKyAxKSwgRGlzcGF0Y2hFdmVudCk7Ci0gICAgZWxzZQotICAgICAgICBzZXRWYWx1
ZUFzSW50ZWdlcihkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSwgRGlzcGF0Y2hFdmVudCk7CisgICAg
aW50IG5ld1ZhbHVlID0gcm91bmRVcChtX2hhc1ZhbHVlID8gbV92YWx1ZSArIDEgOiBkZWZhdWx0
VmFsdWVGb3JTdGVwVXAoKSk7CisgICAgaWYgKCFtX3JhbmdlLmlzSW5SYW5nZShuZXdWYWx1ZSkp
CisgICAgICAgIG5ld1ZhbHVlID0gcm91bmRVcChtX3JhbmdlLm1pbmltdW0pOworICAgIHNldFZh
bHVlQXNJbnRlZ2VyKG5ld1ZhbHVlLCBEaXNwYXRjaEV2ZW50KTsKIH0KIAogU3RyaW5nIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmFsdWUoKSBjb25zdApAQCAtMjExLDYgKzIxNSwyNiBA
QCBTdHJpbmcgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25z
dAogICAgIHJldHVybiBtX2hhc1ZhbHVlID8gdmFsdWUoKSA6IG1fcGxhY2Vob2xkZXI7CiB9CiAK
K2ludCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnJvdW5kRG93bihpbnQgbikgY29uc3QK
K3sKKyAgICBuIC09IG1fc3RlcEJhc2U7CisgICAgaWYgKG4gPj0gMCkKKyAgICAgICAgbiA9IG4g
LyBtX3N0ZXAgKiBtX3N0ZXA7CisgICAgZWxzZQorICAgICAgICBuID0gLSgoLW4gKyBtX3N0ZXAg
LSAxKSAvIG1fc3RlcCAqIG1fc3RlcCk7CisgICAgcmV0dXJuIG4gKyBtX3N0ZXBCYXNlOworfQor
CitpbnQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpyb3VuZFVwKGludCBuKSBjb25zdAor
eworICAgIG4gLT0gbV9zdGVwQmFzZTsKKyAgICBpZiAobiA+PSAwKQorICAgICAgICBuID0gKG4g
KyBtX3N0ZXAgLSAxKSAvIG1fc3RlcCAqIG1fc3RlcDsKKyAgICBlbHNlCisgICAgICAgIG4gPSAt
KC1uIC8gbV9zdGVwICogbV9zdGVwKTsKKyAgICByZXR1cm4gbiArIG1fc3RlcEJhc2U7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCmluZGV4IGQ0
MTNiOTM1ZGUxYjQxZGY2NDU3NDBiYTI1YzU4ZmE0OTY4NjQxYTQuLjNhYjViY2Y2NzM4MDFhNDMy
NTQ1Njg1NDNjMmFmMzc3MjNkM2Y1YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudC5oCkBAIC01MSw3ICs1MSw3
IEBAIHByb3RlY3RlZDoKICAgICAgICAgaW50IG1pbmltdW07CiAgICAgfTsKIAotICAgIERhdGVU
aW1lTnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBpbnQgbWluaW11
bSwgaW50IG1heGltdW0sIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIpOworICAgIERhdGVUaW1l
TnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1bWVudCosIEZpZWxkT3duZXImLCBpbnQgbWluaW11bSwg
aW50IG1heGltdW0sIGNvbnN0IFN0cmluZyYgcGxhY2Vob2xkZXIsIGludCBzdGVwID0gMSwgaW50
IHN0ZXBCYXNlID0gMCk7CiAKICAgICBpbnQgY2xhbXBWYWx1ZShpbnQgdmFsdWUpIGNvbnN0IHsg
cmV0dXJuIG1fcmFuZ2UuY2xhbXBWYWx1ZSh2YWx1ZSk7IH0KICAgICB2aXJ0dWFsIGludCBjbGFt
cFZhbHVlRm9ySGFyZExpbWl0cyhpbnQpIGNvbnN0OwpAQCAtNzgsMTIgKzc4LDE2IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdCBPVkVSUklERSBGSU5BTDsKIAog
ICAgIFN0cmluZyBmb3JtYXRWYWx1ZShpbnQpIGNvbnN0OworICAgIGludCByb3VuZFVwKGludCkg
Y29uc3Q7CisgICAgaW50IHJvdW5kRG93bihpbnQpIGNvbnN0OwogCiAgICAgRE9NVGltZVN0YW1w
IG1fbGFzdERpZ2l0Q2hhclRpbWU7CiAgICAgY29uc3QgU3RyaW5nIG1fcGxhY2Vob2xkZXI7CiAg
ICAgY29uc3QgUmFuZ2UgbV9yYW5nZTsKICAgICBpbnQgbV92YWx1ZTsKICAgICBib29sIG1faGFz
VmFsdWU7CisgICAgaW50IG1fc3RlcDsKKyAgICBpbnQgbV9zdGVwQmFzZTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMzRjZGIwOWYzN2M3OTM2MGEwZjk0OWEzMjcxMmZm
MjMwNTY0ODI1Li4xOTY5Yzk1N2FhMjM2OTlkZDViM2U2MzhjNWY2NjE0ZTkwZGIwM2YxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTItMTEgIEt1bmloaWtvIFNha2Ftb3RvICA8a3Nha2Ft
b3RvQGNocm9taXVtLm9yZz4KKworICAgICAgICBNaWxsaXNlY29uZHMgZmllbGQgb2YgZGF0ZS90
aW1lIGlucHV0IFVJIHNob3VsZCByZXNwZWN0IHN0ZXAgYXR0cmlidXRlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ2MjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvdGltZS1tdWx0
aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBkb3duLWZyb20tcmVu
ZGVyZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1m
aWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBkb3duLWZyb20tcmVuZGVyZXIu
aHRtbDoKKyAgICAgICAgQ2hhbmdlZCBzdGVwVXAoKS9zdGVwRG93bigpIHRvIHRha2UgYm90aCBt
aW4gYW5kIG1heCBhcmd1bWVudHMuCisgICAgICAgIEFkZGVkIHRlc3QgY2FzZXMgZm9yIG1pbGxp
c2Vjb25kcyBmaWVsZCB3aXRoIHZhcmlvdXMgc3RlcCB2YWx1ZXMgYW5kIHN0ZXAgYmFlZXMuCisK
IDIwMTItMTItMTEgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
QXR0ZW1wdCB0byByZWJhc2VsaW5lIG1vdmUtYnktbGluZS0wMDEsIHdoaWNoIGhhcyBiZWNvbWUg
bGVzcyBmbGFreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0
aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBkb3duLWZyb20tcmVu
ZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxl
LWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1zdGVwdXAtc3RlcGRvd24tZnJvbS1yZW5kZXJl
ci1leHBlY3RlZC50eHQKaW5kZXggZjZkYmVmZTZkN2Q4MDJjMmJhMjEzZTIxMWViN2U4ODQ0YTY1
NWZjYy4uNDdmMGFhZGYyOTkwNGY3ODRmMjNkMzIzNGJhMGMxMTY5NzU0YmYyNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRp
cGxlLWZpZWxkcy1zdGVwdXAtc3RlcGRvd24tZnJvbS1yZW5kZXJlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRp
cGxlLWZpZWxkcy1zdGVwdXAtc3RlcGRvd24tZnJvbS1yZW5kZXJlci1leHBlY3RlZC50eHQKQEAg
LTMsMTIgKzMsMjUgQEAgQ2hlY2sgc3RlcHBpbmctdXAgYW5kIC1kb3duIGZvciB0aW1lIGlucHV0
IGZpZWxkcyBmcm9tIHJlbmRlcmVyLiBObyBjYXNlcyBvZiBlbXAKIE9uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KIAogCi1GdW5jdGlvbiBhcmd1bWVudHMgYXJlICh2YWx1ZSwgc3RlcCwge21pbiBv
ciBtYXh9LCBbc3RlcENvdW50XSkuCitGdW5jdGlvbiBhcmd1bWVudHMgYXJlICh2YWx1ZSwgc3Rl
cCwgbWluLCBtYXgsIFtzdGVwQ291bnRdKS4KIE5vcm1hbCBjYXNlcwotUEFTUyBzdGVwVXAoIjA3
OjEzIiwgbnVsbCwgbnVsbCkgaXMgIjA3OjE0IgotUEFTUyBzdGVwRG93bigiMDc6MTMiLCBudWxs
LCBudWxsKSBpcyAiMDc6MTIiCi1QQVNTIHN0ZXBVcCgiMDc6MTMiLCBudWxsLCBudWxsLCAxMCkg
aXMgIjA3OjIzIgotUEFTUyBzdGVwRG93bigiMDc6MTMiLCBudWxsLCBudWxsLCAxMSkgaXMgIjA3
OjAyIgorUEFTUyBzdGVwVXAoIjA3OjEzIiwgbnVsbCwgbnVsbCwgbnVsbCkgaXMgIjA3OjE0Igor
UEFTUyBzdGVwRG93bigiMDc6MTMiLCBudWxsLCBudWxsLCBudWxsKSBpcyAiMDc6MTIiCitQQVNT
IHN0ZXBVcCgiMDc6MTMiLCBudWxsLCBudWxsLCBudWxsLCAxMCkgaXMgIjA3OjIzIgorUEFTUyBz
dGVwRG93bigiMDc6MTMiLCBudWxsLCBudWxsLCBudWxsLCAxMSkgaXMgIjA3OjAyIgorTWlsbGlz
ZWNvbmRzCitQQVNTIHN0ZXBVcCgiMDc6MTM6MDAuMDAwIiwgMC4wMDEsIG51bGwsIG51bGwpIGlz
ICIwNzoxMzowMC4wMDEiCitQQVNTIHN0ZXBEb3duKCIwNzoxMzowMC4wMDEiLCAwLjAwMSwgbnVs
bCwgbnVsbCkgaXMgIjA3OjEzIgorUEFTUyBzdGVwVXAoIjA3OjEzOjAwLjk5OSIsIDAuMDAxLCBu
dWxsLCBudWxsKSBpcyAiMDc6MTMiCitQQVNTIHN0ZXBEb3duKCIwNzoxMzowMC4wMDAiLCAwLjAw
MSwgbnVsbCwgbnVsbCkgaXMgIjA3OjEzOjAwLjk5OSIKK1BBU1Mgc3RlcFVwKCIwNzoxMzowMC4w
MDAiLCAwLjI1MCwgbnVsbCwgbnVsbCkgaXMgIjA3OjEzOjAwLjI1MCIKK1BBU1Mgc3RlcERvd24o
IjA3OjEzOjAwLjUwMCIsIDAuMjUwLCBudWxsLCBudWxsKSBpcyAiMDc6MTM6MDAuMjUwIgorUEFT
UyBzdGVwVXAoIjA3OjEzOjAwLjc1MCIsIDAuMjUwLCBudWxsLCBudWxsKSBpcyAiMDc6MTMiCitQ
QVNTIHN0ZXBEb3duKCIwNzoxMzowMC4wMDAiLCAwLjI1MCwgbnVsbCwgbnVsbCkgaXMgIjA3OjEz
OjAwLjc1MCIKK1BBU1Mgc3RlcFVwKCIwNzoxMzowMC4wOTkiLCAwLjEwMCwgbnVsbCwgbnVsbCkg
aXMgIjA3OjEzOjAwLjEwMCIKK1BBU1Mgc3RlcERvd24oIjA3OjEzOjAwLjEwMSIsIDAuMTAwLCBu
dWxsLCBudWxsKSBpcyAiMDc6MTM6MDAuMTAwIgorUEFTUyBzdGVwVXAoIjA3OjEzOjAwLjUwMCIs
IDAuMTAwLCAiMDA6MDA6MDAuMDUwIiwgbnVsbCkgaXMgIjA3OjEzOjAwLjU1MCIKK1BBU1Mgc3Rl
cERvd24oIjA3OjEzOjAwLjUwMCIsIDAuMTAwLCAiMDA6MDA6MDAuMDUwIiwgbnVsbCkgaXMgIjA3
OjEzOjAwLjQ1MCIKIAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVs
dGlwbGUtZmllbGRzLXN0ZXB1cC1zdGVwZG93bi1mcm9tLXJlbmRlcmVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRz
LXN0ZXB1cC1zdGVwZG93bi1mcm9tLXJlbmRlcmVyLmh0bWwKaW5kZXggNGJhZmE1Njg3ZjUxMWVh
ZTA5YzAwMzNhZmM2ZTA0MmQ1MmE5NDk5ZC4uYTAyMTYwZTkwZmMxYTMyZWNhNjU5ODkwNTFmMjg2
YTZlY2MxMWRiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1zdGVwdXAtc3RlcGRvd24tZnJvbS1yZW5k
ZXJlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVs
ZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBkb3duLWZyb20tcmVuZGVyZXIuaHRt
bApAQCAtMjUsOCArMjUsOCBAQCBmdW5jdGlvbiBzZXRJbnB1dEF0dHJpYnV0ZXMobWluLCBtYXgs
IHN0ZXAsIHZhbHVlKSB7CiAgICAgaW5wdXQudmFsdWUgPSB2YWx1ZTsKIH0KIAotZnVuY3Rpb24g
c3RlcFVwKHZhbHVlLCBzdGVwLCBtYXgsIG9wdGlvbmFsU3RlcENvdW50KSB7Ci0gICAgc2V0SW5w
dXRBdHRyaWJ1dGVzKG51bGwsIG1heCwgc3RlcCwgdmFsdWUpOworZnVuY3Rpb24gc3RlcFVwKHZh
bHVlLCBzdGVwLCBtaW4sIG1heCwgb3B0aW9uYWxTdGVwQ291bnQpIHsKKyAgICBzZXRJbnB1dEF0
dHJpYnV0ZXMobWluLCBtYXgsIHN0ZXAsIHZhbHVlKTsKICAgICBpZiAodHlwZW9mIG9wdGlvbmFs
U3RlcENvdW50ICE9ICJ1bmRlZmluZWQiKQogICAgICAgICBpZiAob3B0aW9uYWxTdGVwQ291bnQg
PCAwKQogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAtb3B0aW9uYWxTdGVwQ291bnQ7
IGkrKykKQEAgLTM5LDggKzM5LDggQEAgZnVuY3Rpb24gc3RlcFVwKHZhbHVlLCBzdGVwLCBtYXgs
IG9wdGlvbmFsU3RlcENvdW50KSB7CiAgICAgcmV0dXJuIGlucHV0LnZhbHVlOwogfQogCi1mdW5j
dGlvbiBzdGVwRG93bih2YWx1ZSwgc3RlcCwgbWluLCBvcHRpb25hbFN0ZXBDb3VudCkgewotICAg
IHNldElucHV0QXR0cmlidXRlcyhtaW4sIG51bGwsIHN0ZXAsIHZhbHVlKTsKK2Z1bmN0aW9uIHN0
ZXBEb3duKHZhbHVlLCBzdGVwLCBtaW4sIG1heCwgb3B0aW9uYWxTdGVwQ291bnQpIHsKKyAgICBz
ZXRJbnB1dEF0dHJpYnV0ZXMobWluLCBtYXgsIHN0ZXAsIHZhbHVlKTsKICAgICBpZiAodHlwZW9m
IG9wdGlvbmFsU3RlcENvdW50ICE9ICJ1bmRlZmluZWQiKQogICAgICAgICBpZiAob3B0aW9uYWxT
dGVwQ291bnQgPCAwKQogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAtb3B0aW9uYWxT
dGVwQ291bnQ7IGkrKykKQEAgLTU2LDEyICs1NiwzMCBAQCBmdW5jdGlvbiBzdGVwRG93bih2YWx1
ZSwgc3RlcCwgbWluLCBvcHRpb25hbFN0ZXBDb3VudCkgewogaW5wdXQudHlwZSA9ICd0aW1lJzsK
IGlucHV0LmZvY3VzKCk7CiBzZW5kS2V5KCdSaWdodCcpOwotZGVidWcoJ0Z1bmN0aW9uIGFyZ3Vt
ZW50cyBhcmUgKHZhbHVlLCBzdGVwLCB7bWluIG9yIG1heH0sIFtzdGVwQ291bnRdKS4nKTsKK2Rl
YnVnKCdGdW5jdGlvbiBhcmd1bWVudHMgYXJlICh2YWx1ZSwgc3RlcCwgbWluLCBtYXgsIFtzdGVw
Q291bnRdKS4nKTsKIGRlYnVnKCdOb3JtYWwgY2FzZXMnKTsKLXNob3VsZEJlKCdzdGVwVXAoIjA3
OjEzIiwgbnVsbCwgbnVsbCknLCAnIjA3OjE0IicpOwotc2hvdWxkQmUoJ3N0ZXBEb3duKCIwNzox
MyIsIG51bGwsIG51bGwpJywgJyIwNzoxMiInKTsKLXNob3VsZEJlKCdzdGVwVXAoIjA3OjEzIiwg
bnVsbCwgbnVsbCwgMTApJywgJyIwNzoyMyInKTsKLXNob3VsZEJlKCdzdGVwRG93bigiMDc6MTMi
LCBudWxsLCBudWxsLCAxMSknLCAnIjA3OjAyIicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdz
dGVwVXAoIjA3OjEzIiwgbnVsbCwgbnVsbCwgbnVsbCknLCAnMDc6MTQnKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygnc3RlcERvd24oIjA3OjEzIiwgbnVsbCwgbnVsbCwgbnVsbCknLCAnMDc6MTIn
KTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnc3RlcFVwKCIwNzoxMyIsIG51bGwsIG51bGwsIG51
bGwsIDEwKScsICcwNzoyMycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVwRG93bigiMDc6
MTMiLCBudWxsLCBudWxsLCBudWxsLCAxMSknLCAnMDc6MDInKTsKKworZGVidWcoJ01pbGxpc2Vj
b25kcycpOworaW5wdXQuc3RlcCA9IDAuMDAxOworc2VuZEtleSgnUmlnaHQnKTsKK3NlbmRLZXko
J1JpZ2h0Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0ZXBVcCgiMDc6MTM6MDAuMDAwIiwg
MC4wMDEsIG51bGwsIG51bGwpJywgJzA3OjEzOjAwLjAwMScpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdzdGVwRG93bigiMDc6MTM6MDAuMDAxIiwgMC4wMDEsIG51bGwsIG51bGwpJywgJzA3OjEz
Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0ZXBVcCgiMDc6MTM6MDAuOTk5IiwgMC4wMDEs
IG51bGwsIG51bGwpJywgJzA3OjEzJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0ZXBEb3du
KCIwNzoxMzowMC4wMDAiLCAwLjAwMSwgbnVsbCwgbnVsbCknLCAnMDc6MTM6MDAuOTk5Jyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0ZXBVcCgiMDc6MTM6MDAuMDAwIiwgMC4yNTAsIG51bGws
IG51bGwpJywgJzA3OjEzOjAwLjI1MCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVwRG93
bigiMDc6MTM6MDAuNTAwIiwgMC4yNTAsIG51bGwsIG51bGwpJywgJzA3OjEzOjAwLjI1MCcpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVwVXAoIjA3OjEzOjAwLjc1MCIsIDAuMjUwLCBudWxs
LCBudWxsKScsICcwNzoxMycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVwRG93bigiMDc6
MTM6MDAuMDAwIiwgMC4yNTAsIG51bGwsIG51bGwpJywgJzA3OjEzOjAwLjc1MCcpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdzdGVwVXAoIjA3OjEzOjAwLjA5OSIsIDAuMTAwLCBudWxsLCBudWxs
KScsICcwNzoxMzowMC4xMDAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnc3RlcERvd24oIjA3
OjEzOjAwLjEwMSIsIDAuMTAwLCBudWxsLCBudWxsKScsICcwNzoxMzowMC4xMDAnKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygnc3RlcFVwKCIwNzoxMzowMC41MDAiLCAwLjEwMCwgIjAwOjAwOjAw
LjA1MCIsIG51bGwpJywgJzA3OjEzOjAwLjU1MCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdz
dGVwRG93bigiMDc6MTM6MDAuNTAwIiwgMC4xMDAsICIwMDowMDowMC4wNTAiLCBudWxsKScsICcw
NzoxMzowMC40NTAnKTsKKwogZGVidWcoJycpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChp
bnB1dCk7CiA8L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179172</attachid>
            <date>2012-12-12 18:12:47 -0800</date>
            <delta_ts>2012-12-12 19:03:06 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-104628-20121213111007.patch</filename>
            <type>text/plain</type>
            <size>19494</size>
            <attacher name="Kunihiko Sakamoto">ksakamoto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDY1OWM2MDk1ODlkMDc2
Mzk3MjRkZGIwMTRjZTdiNTMxODNmZTAxYy4uMjI2MTgyYzNiOTljMWUzMWJjM2I4NTUyY2E0NWJk
NTdmZDM3YTVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEyLTEyICBLdW5p
aGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWlsbGlz
ZWNvbmRzIGZpZWxkIG9mIGRhdGUvdGltZSBpbnB1dCBVSSBzaG91bGQgcmVzcGVjdCBzdGVwIGF0
dHJpYnV0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA0NjI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBtYWtlcyBzdGVwLXVwLy1kb3duIFVJIG9mIHRoZSBtaWxsaXNlY29uZHMgZmll
bGRzIHJlc3BlY3Qgc3RlcCBhdHRyaWJ1dGUKKyAgICAgICAgaW4gYSBzcGVjaWFsIGNhc2Ugd2hl
biB0aGUgc3RlcCBpcyBkaXZpc2libGUgYnkgMTAwMCBtaWxsaXNlY29uZHMuCisKKyAgICAgICAg
VGVzdDogZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxk
cy1zdGVwdXAtc3RlcGRvd24tZnJvbS1yZW5kZXJlci5odG1sCisKKyAgICAgICAgKiBodG1sL3No
YWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQpOgorICAgICAgICBJZiBzdGVwIG9mIHRoZSBlbGVtZW50
IChpbiBtaWxsaXNlY29uZHMpIGlzIGRpdmlzaWJsZSBieSAxMDAwLCB1c2UgaXQgYXMgdGhlIHN0
ZXAgb2YgdGhlIG1pbGxpc2Vjb25kcyBmaWVsZC4gT3RoZXJ3aXNlLCB0aGUgbWlsbGlzZWNvbmQg
ZmllbGQgaGFzIHN0ZXAgMS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxl
bWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxl
bWVudDo6RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudCk6IEFkZCBzdGVwIGFuZCBzdGVw
QmFzZSBhcmd1bWVudHMuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZU1pbGxpc2Vjb25kRmll
bGRFbGVtZW50OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZUZpZWxkRWxlbWVudHMuaDoKKyAgICAgICAgKERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1l
bnQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50
OjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6c3RlcERvd24pOiBDaGFuZ2VkIHRvIGNvbXB1
dGUgbmV4dCBhbGxvd2VkIHZhbHVlIHVzaW5nIHJvdW5kRG93bigpLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzdGVwVXApOiBDaGFuZ2VkIHRvIGNvbXB1
dGUgbmV4dCBhbGxvd2VkIHZhbHVlIHVzaW5nIHJvdW5kVXAoKS4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6cm91bmREb3duKTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnJvdW5kVXApOiBBZGRlZC4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaDoKKyAg
ICAgICAgKERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudCk6IEFkZCBtX3N0ZXAgYW5kIG1fc3Rl
cEJhc2UgZmllbGRzLgorCiAyMDEyLTEyLTExICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBNYWMgYnVpbGQgYWZ0ZXIgcjEzNzI2MQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAppbmRl
eCA3MDlhNGFmMWNjZmY3M2JlMGVjMGZlNzQ5YjFiYmY0M2MwNWI3NjJhLi41MGY2MzQwZWM3MzVk
YmIwMTUxZmI2NjU5NGNiNWUxYjAwZGE5MzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMjEzLDcgKzIxMywxNiBAQCB2
b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZSBmaWVsZFR5cGUsIGludCBjbwogICAgIH0KIAogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZUZyYWN0aW9uYWxTZWNvbmQ6IHsKLSAgICAgICAgUmVmUHRyPERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudD4gZmllbGQgPSBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQpOworICAgICAgICBBU1NFUlQoIW1fcGFy
YW1ldGVycy5zdGVwUmFuZ2Uuc3RlcCgpLmlzWmVybygpKTsKKyAgICAgICAgaW50IHN0ZXAgPSAx
OworICAgICAgICBpbnQgc3RlcEJhc2UgPSAwOworICAgICAgICBjb25zdCBEZWNpbWFsIGRlY2lt
YWxNc1BlclNlY29uZChzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyU2Vjb25kKSk7CisKKyAgICAgICAg
aWYgKGRlY2ltYWxNc1BlclNlY29uZC5yZW1haW5kZXIobV9wYXJhbWV0ZXJzLnN0ZXBSYW5nZS5z
dGVwKCkpLmlzWmVybygpICYmIG1fcGFyYW1ldGVycy5zdGVwUmFuZ2Uuc3RlcCgpLnJlbWFpbmRl
cihEZWNpbWFsKDEpKS5pc1plcm8oKSkgeworICAgICAgICAgICAgc3RlcCA9IHN0YXRpY19jYXN0
PGludD4obV9wYXJhbWV0ZXJzLnN0ZXBSYW5nZS5zdGVwKCkudG9Eb3VibGUoKSk7CisgICAgICAg
ICAgICBzdGVwQmFzZSA9IHN0YXRpY19jYXN0PGludD4obV9wYXJhbWV0ZXJzLnN0ZXBSYW5nZS5z
dGVwQmFzZSgpLnJlbWFpbmRlcihkZWNpbWFsTXNQZXJTZWNvbmQpLnRvRG91YmxlKCkpOworICAg
ICAgICB9CisgICAgICAgIFJlZlB0cjxEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ+IGZpZWxk
ID0gRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2Vk
aXRFbGVtZW50LCBzdGVwLCBzdGVwQmFzZSk7CiAgICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmll
bGQoZmllbGQpOwogICAgICAgICBpZiAoc2hvdWxkTWlsbGlzZWNvbmRGaWVsZFJlYWRPbmx5KCkp
IHsKICAgICAgICAgICAgIGZpZWxkLT5zZXRWYWx1ZUFzRGF0ZShtX2RhdGVWYWx1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmNw
cAppbmRleCA5ZmZkY2UwN2Y4NTAwZjAxZWRkOWRlNTM4MTU1NWY0NmQyZjA3YzQxLi4wNTI2MmZh
Y2NhYTgzYzRjMGFjMGEyMzEwYWE4MDA4NGRkOTMzYjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUZpZWxkRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5jcHAKQEAgLTIxNywxNSAr
MjE3LDE1IEBAIGludCBEYXRlVGltZUhvdXJGaWVsZEVsZW1lbnQ6OnZhbHVlQXNJbnRlZ2VyKCkg
Y29uc3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZU1pbGxp
c2Vjb25kRmllbGRFbGVtZW50OjpEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50KERvY3Vt
ZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25lcikKLSAgICA6IERhdGVUaW1lTnVt
ZXJpY0ZpZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lciwgMCwgOTk5LCAiLS0tIikKK0Rh
dGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgc3Rl
cCwgaW50IHN0ZXBCYXNlKQorICAgIDogRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50KGRvY3Vt
ZW50LCBmaWVsZE93bmVyLCAwLCA5OTksICItLS0iLCBzdGVwLCBzdGVwQmFzZSkKIHsKIH0KIAot
UGFzc1JlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50PiBEYXRlVGltZU1pbGxp
c2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBGaWVsZE93bmVy
JiBmaWVsZE93bmVyKQorUGFzc1JlZlB0cjxEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50
PiBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBGaWVsZE93bmVyJiBmaWVsZE93bmVyLCBpbnQgc3RlcCwgaW50IHN0ZXBCYXNlKQogewog
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtaWxsaXNlY29uZFBzdWVkb0lk
LCAoIi13ZWJraXQtZGF0ZXRpbWUtZWRpdC1taWxsaXNlY29uZC1maWVsZCIsIEF0b21pY1N0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICBSZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29u
ZEZpZWxkRWxlbWVudD4gZmllbGQgPSBhZG9wdFJlZihuZXcgRGF0ZVRpbWVNaWxsaXNlY29uZEZp
ZWxkRWxlbWVudChkb2N1bWVudCwgZmllbGRPd25lcikpOworICAgIFJlZlB0cjxEYXRlVGltZU1p
bGxpc2Vjb25kRmllbGRFbGVtZW50PiBmaWVsZCA9IGFkb3B0UmVmKG5ldyBEYXRlVGltZU1pbGxp
c2Vjb25kRmllbGRFbGVtZW50KGRvY3VtZW50LCBmaWVsZE93bmVyLCBzdGVwLCBzdGVwQmFzZSkp
OwogICAgIGZpZWxkLT5pbml0aWFsaXplKG1pbGxpc2Vjb25kUHN1ZWRvSWQsIEFYTWlsbGlzZWNv
bmRGaWVsZFRleHQoKSk7CiAgICAgcmV0dXJuIGZpZWxkLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRmllbGRFbGVtZW50cy5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKaW5kZXgg
MDA1M2E0YTM5MWYzYmY4ZTZmNDY3MzdkYmJlZWIxODUxYTllMGU5ZC4uYjljZDU2MzkwNjBjNWE1
M2E1MmI1MTcyNDlmNGNiZDA1ZDZlMGY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVGaWVsZEVsZW1lbnRzLmgKQEAgLTkxLDEwICs5MSwxMCBAQCBjbGFz
cyBEYXRlVGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVNaWxsaXNl
Y29uZEZpZWxkRWxlbWVudCk7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRl
VGltZU1pbGxpc2Vjb25kRmllbGRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBGaWVsZE93bmVy
Jik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50KiwgRmllbGRPd25lciYsIGludCBzdGVwLCBpbnQgc3RlcEJhc2Up
OwogCiBwcml2YXRlOgotICAgIERhdGVUaW1lTWlsbGlzZWNvbmRGaWVsZEVsZW1lbnQoRG9jdW1l
bnQqLCBGaWVsZE93bmVyJik7CisgICAgRGF0ZVRpbWVNaWxsaXNlY29uZEZpZWxkRWxlbWVudChE
b2N1bWVudCosIEZpZWxkT3duZXImLCBpbnQgc3RlcCwgaW50IHN0ZXBCYXNlKTsKIAogICAgIC8v
IERhdGVUaW1lRmllbGRFbGVtZW50IGZ1bmN0aW9ucy4KICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxh
dGVEYXRlVGltZUZpZWxkc1N0YXRlKERhdGVUaW1lRmllbGRzU3RhdGUmKSBPVkVSUklERSBGSU5B
TDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJp
Y0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51
bWVyaWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDJjZDdiZjM1ZDgwMjI1MThhOGQyMWJiYjRiNzY1
NDM4MjliZWIwYjcuLjhkZDNkYmRiYzUwYWM5N2MxOWU0OTJjNzBiODA1NGMxMDUwMDQzOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lTnVtZXJpY0ZpZWxk
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50LmNwcApAQCAtNTksMTQgKzU5LDE4IEBAIGJvb2wgRGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50OjpSYW5nZTo6aXNJblJhbmdlKGludCB2YWx1ZSkgY29uc3QKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQ6OkRhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEZpZWxk
T3duZXImIGZpZWxkT3duZXIsIGludCBtaW5pbXVtLCBpbnQgbWF4aW11bSwgY29uc3QgU3RyaW5n
JiBwbGFjZWhvbGRlcikKK0RhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVOdW1l
cmljRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRmllbGRPd25lciYgZmllbGRPd25l
ciwgaW50IG1pbmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBp
bnQgc3RlcCwgaW50IHN0ZXBCYXNlKQogICAgIDogRGF0ZVRpbWVGaWVsZEVsZW1lbnQoZG9jdW1l
bnQsIGZpZWxkT3duZXIpCiAgICAgLCBtX2xhc3REaWdpdENoYXJUaW1lKDApCiAgICAgLCBtX3Bs
YWNlaG9sZGVyKHBsYWNlaG9sZGVyKQogICAgICwgbV9yYW5nZShtaW5pbXVtLCBtYXhpbXVtKQog
ICAgICwgbV92YWx1ZSgwKQogICAgICwgbV9oYXNWYWx1ZShmYWxzZSkKKyAgICAsIG1fc3RlcChz
dGVwKQorICAgICwgbV9zdGVwQmFzZShzdGVwQmFzZSkKIHsKKyAgICBBU1NFUlQobV9zdGVwKTsK
KwogICAgIC8vIFdlIHNob3cgYSBkaXJlY3Rpb24tbmV1dHJhbCBzdHJpbmcgc3VjaCBhcyAiLS0i
IGFzIGEgcGxhY2Vob2xkZXIuIEl0CiAgICAgLy8gc2hvdWxkIGZvbGxvdyB0aGUgZGlyZWN0aW9u
IG9mIG51bWVyaWMgdmFsdWVzLgogICAgIGlmIChsb2NhbGVGb3JPd25lcigpLmlzUlRMKCkpIHsK
QEAgLTE4MiwxOCArMTg2LDE4IEBAIHZvaWQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpz
ZXRWYWx1ZUFzSW50ZWdlcihpbnQgdmFsdWUsIEV2ZW50QmVoYXZpb3IgZXZlCiAKIHZvaWQgRGF0
ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50OjpzdGVwRG93bigpCiB7Ci0gICAgaWYgKG1faGFzVmFs
dWUpCi0gICAgICAgIHNldFZhbHVlQXNJbnRlZ2VyKG1fdmFsdWUgPT0gbV9yYW5nZS5taW5pbXVt
ID8gbV9yYW5nZS5tYXhpbXVtIDogY2xhbXBWYWx1ZShtX3ZhbHVlIC0gMSksIERpc3BhdGNoRXZl
bnQpOwotICAgIGVsc2UKLSAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIoZGVmYXVsdFZhbHVlRm9y
U3RlcERvd24oKSwgRGlzcGF0Y2hFdmVudCk7CisgICAgaW50IG5ld1ZhbHVlID0gcm91bmREb3du
KG1faGFzVmFsdWUgPyBtX3ZhbHVlIC0gMSA6IGRlZmF1bHRWYWx1ZUZvclN0ZXBEb3duKCkpOwor
ICAgIGlmICghbV9yYW5nZS5pc0luUmFuZ2UobmV3VmFsdWUpKQorICAgICAgICBuZXdWYWx1ZSA9
IHJvdW5kRG93bihtX3JhbmdlLm1heGltdW0pOworICAgIHNldFZhbHVlQXNJbnRlZ2VyKG5ld1Zh
bHVlLCBEaXNwYXRjaEV2ZW50KTsKIH0KIAogdm9pZCBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1l
bnQ6OnN0ZXBVcCgpCiB7Ci0gICAgaWYgKG1faGFzVmFsdWUpCi0gICAgICAgIHNldFZhbHVlQXNJ
bnRlZ2VyKG1fdmFsdWUgPT0gbV9yYW5nZS5tYXhpbXVtID8gbV9yYW5nZS5taW5pbXVtIDogY2xh
bXBWYWx1ZShtX3ZhbHVlICsgMSksIERpc3BhdGNoRXZlbnQpOwotICAgIGVsc2UKLSAgICAgICAg
c2V0VmFsdWVBc0ludGVnZXIoZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCksIERpc3BhdGNoRXZlbnQp
OworICAgIGludCBuZXdWYWx1ZSA9IHJvdW5kVXAobV9oYXNWYWx1ZSA/IG1fdmFsdWUgKyAxIDog
ZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkpOworICAgIGlmICghbV9yYW5nZS5pc0luUmFuZ2UobmV3
VmFsdWUpKQorICAgICAgICBuZXdWYWx1ZSA9IHJvdW5kVXAobV9yYW5nZS5taW5pbXVtKTsKKyAg
ICBzZXRWYWx1ZUFzSW50ZWdlcihuZXdWYWx1ZSwgRGlzcGF0Y2hFdmVudCk7CiB9CiAKIFN0cmlu
ZyBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QKQEAgLTIxMSw2ICsy
MTUsMjYgQEAgU3RyaW5nIERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVl
KCkgY29uc3QKICAgICByZXR1cm4gbV9oYXNWYWx1ZSA/IHZhbHVlKCkgOiBtX3BsYWNlaG9sZGVy
OwogfQogCitpbnQgRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50Ojpyb3VuZERvd24oaW50IG4p
IGNvbnN0Cit7CisgICAgbiAtPSBtX3N0ZXBCYXNlOworICAgIGlmIChuID49IDApCisgICAgICAg
IG4gPSBuIC8gbV9zdGVwICogbV9zdGVwOworICAgIGVsc2UKKyAgICAgICAgbiA9IC0oKC1uICsg
bV9zdGVwIC0gMSkgLyBtX3N0ZXAgKiBtX3N0ZXApOworICAgIHJldHVybiBuICsgbV9zdGVwQmFz
ZTsKK30KKworaW50IERhdGVUaW1lTnVtZXJpY0ZpZWxkRWxlbWVudDo6cm91bmRVcChpbnQgbikg
Y29uc3QKK3sKKyAgICBuIC09IG1fc3RlcEJhc2U7CisgICAgaWYgKG4gPj0gMCkKKyAgICAgICAg
biA9IChuICsgbV9zdGVwIC0gMSkgLyBtX3N0ZXAgKiBtX3N0ZXA7CisgICAgZWxzZQorICAgICAg
ICBuID0gLSgtbiAvIG1fc3RlcCAqIG1fc3RlcCk7CisgICAgcmV0dXJuIG4gKyBtX3N0ZXBCYXNl
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVOdW1lcmljRmllbGRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaApp
bmRleCBkNDEzYjkzNWRlMWI0MWRmNjQ1NzQwYmEyNWM1OGZhNDk2ODY0MWE0Li4zYWI1YmNmNjcz
ODAxYTQzMjU0NTY4NTQzYzJhZjM3NzIzZDNmNWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQuaApAQCAtNTEs
NyArNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGludCBtaW5pbXVtOwogICAgIH07CiAKLSAg
ICBEYXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50
IG1pbmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyKTsKKyAgICBE
YXRlVGltZU51bWVyaWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgaW50IG1p
bmltdW0sIGludCBtYXhpbXVtLCBjb25zdCBTdHJpbmcmIHBsYWNlaG9sZGVyLCBpbnQgc3RlcCA9
IDEsIGludCBzdGVwQmFzZSA9IDApOwogCiAgICAgaW50IGNsYW1wVmFsdWUoaW50IHZhbHVlKSBj
b25zdCB7IHJldHVybiBtX3JhbmdlLmNsYW1wVmFsdWUodmFsdWUpOyB9CiAgICAgdmlydHVhbCBp
bnQgY2xhbXBWYWx1ZUZvckhhcmRMaW1pdHMoaW50KSBjb25zdDsKQEAgLTc4LDEyICs3OCwxNiBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgT1ZFUlJJREUgRklO
QUw7CiAKICAgICBTdHJpbmcgZm9ybWF0VmFsdWUoaW50KSBjb25zdDsKKyAgICBpbnQgcm91bmRV
cChpbnQpIGNvbnN0OworICAgIGludCByb3VuZERvd24oaW50KSBjb25zdDsKIAogICAgIERPTVRp
bWVTdGFtcCBtX2xhc3REaWdpdENoYXJUaW1lOwogICAgIGNvbnN0IFN0cmluZyBtX3BsYWNlaG9s
ZGVyOwogICAgIGNvbnN0IFJhbmdlIG1fcmFuZ2U7CiAgICAgaW50IG1fdmFsdWU7CiAgICAgYm9v
bCBtX2hhc1ZhbHVlOworICAgIGludCBtX3N0ZXA7CisgICAgaW50IG1fc3RlcEJhc2U7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTM0Y2RiMDlmMzdjNzkzNjBhMGY5NDlh
MzI3MTJmZjIzMDU2NDgyNS4uMGQ4M2M1OTg0YmIxZTNiMDBiZDlmYzc5NTNkZjIwNDRiNWNkNDk1
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEyLTEyICBLdW5paGlrbyBTYWthbW90byAg
PGtzYWthbW90b0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWlsbGlzZWNvbmRzIGZpZWxkIG9m
IGRhdGUvdGltZSBpbnB1dCBVSSBzaG91bGQgcmVzcGVjdCBzdGVwIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0NjI4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Rp
bWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXN0ZXB1cC1zdGVwZG93bi1m
cm9tLXJlbmRlcmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3RpbWUtbXVs
dGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXN0ZXB1cC1zdGVwZG93bi1mcm9tLXJl
bmRlcmVyLmh0bWw6CisgICAgICAgIENoYW5nZWQgdG8gdXNlIGV2ZW50U2VuZGVyLmtleURvd24o
KSBpbnN0ZWFkIG9mIG1ha2luZyBrZXlkb3duIGV2ZW50IGJlY2F1c2Ugd2UgbmVlZCBkZWxldGUt
a2V5IGhhbmRsaW5nLgorICAgICAgICBBZGRlZCBuZXcgaGVscGVyIGZ1bmN0aW9uIHRlc3QoKSBh
bmQgY2hhbmdlZCBzdGVwVXAvc3RlcERvd24gdG8gdXNlIGl0LgorICAgICAgICBBZGRlZCB0ZXN0
IGNhc2VzIGZvciBtaWxsaXNlY29uZHMgZmllbGQgd2l0aCB2YXJpb3VzIHN0ZXAgdmFsdWVzIGFu
ZCBzdGVwIGJhZWVzLgorCiAyMDEyLTEyLTExICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEF0dGVtcHQgdG8gcmViYXNlbGluZSBtb3ZlLWJ5LWxpbmUtMDAxLCB3
aGljaCBoYXMgYmVjb21lIGxlc3MgZmxha3kuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXN0ZXB1cC1z
dGVwZG93bi1mcm9tLXJlbmRlcmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBk
b3duLWZyb20tcmVuZGVyZXItZXhwZWN0ZWQudHh0CmluZGV4IGY2ZGJlZmU2ZDdkODAyYzJiYTIx
M2UyMTFlYjdlODg0NGE2NTVmY2MuLmFkZTJiZTdhY2UyY2NmOTQzY2ZiYmI4NmFlMDU0ZDFhY2E3
MzkwZGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1m
aWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBkb3duLWZyb20tcmVuZGVyZXIt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1m
aWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBkb3duLWZyb20tcmVuZGVyZXIt
ZXhwZWN0ZWQudHh0CkBAIC0zLDEyICszLDMzIEBAIENoZWNrIHN0ZXBwaW5nLXVwIGFuZCAtZG93
biBmb3IgdGltZSBpbnB1dCBmaWVsZHMgZnJvbSByZW5kZXJlci4gTm8gY2FzZXMgb2YgZW1wCiBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotRnVuY3Rpb24gYXJndW1lbnRzIGFyZSAodmFs
dWUsIHN0ZXAsIHttaW4gb3IgbWF4fSwgW3N0ZXBDb3VudF0pLgorRnVuY3Rpb24gYXJndW1lbnRz
IGFyZSAodmFsdWUsIHN0ZXAsIG1pbiwgbWF4LCBba2V5U2VxdWVuY2VdKS4KIE5vcm1hbCBjYXNl
cwotUEFTUyBzdGVwVXAoIjA3OjEzIiwgbnVsbCwgbnVsbCkgaXMgIjA3OjE0IgotUEFTUyBzdGVw
RG93bigiMDc6MTMiLCBudWxsLCBudWxsKSBpcyAiMDc6MTIiCi1QQVNTIHN0ZXBVcCgiMDc6MTMi
LCBudWxsLCBudWxsLCAxMCkgaXMgIjA3OjIzIgotUEFTUyBzdGVwRG93bigiMDc6MTMiLCBudWxs
LCBudWxsLCAxMSkgaXMgIjA3OjAyIgorUEFTUyBzdGVwVXAoIjA3OjEzIiwgbnVsbCwgbnVsbCwg
bnVsbCkgaXMgIjA3OjE0IgorUEFTUyBzdGVwRG93bigiMDc6MTMiLCBudWxsLCBudWxsLCBudWxs
KSBpcyAiMDc6MTIiCitQQVNTIHRlc3QoIjA3OjEzIiwgbnVsbCwgbnVsbCwgbnVsbCwgWyJ1cEFy
cm93IiwgInVwQXJyb3ciLCAidXBBcnJvdyJdKSBpcyAiMDc6MTYiCitQQVNTIHRlc3QoIjA3OjEz
IiwgbnVsbCwgbnVsbCwgbnVsbCwgWyJkb3duQXJyb3ciLCAiZG93bkFycm93IiwgImRvd25BcnJv
dyJdKSBpcyAiMDc6MTAiCitNaWxsaXNlY29uZHMKK1BBU1Mgc3RlcFVwKCIwNzoxMzowMC4wMDAi
LCAwLjAwMSwgbnVsbCwgbnVsbCkgaXMgIjA3OjEzOjAwLjAwMSIKK1BBU1Mgc3RlcERvd24oIjA3
OjEzOjAwLjAwMSIsIDAuMDAxLCBudWxsLCBudWxsKSBpcyAiMDc6MTMiCitQQVNTIHN0ZXBVcCgi
MDc6MTM6MDAuOTk5IiwgMC4wMDEsIG51bGwsIG51bGwpIGlzICIwNzoxMyIKK1BBU1Mgc3RlcERv
d24oIjA3OjEzOjAwLjAwMCIsIDAuMDAxLCBudWxsLCBudWxsKSBpcyAiMDc6MTM6MDAuOTk5Igor
UEFTUyBzdGVwVXAoIjA3OjEzOjAwLjAwMCIsIDAuMjUwLCBudWxsLCBudWxsKSBpcyAiMDc6MTM6
MDAuMjUwIgorUEFTUyBzdGVwRG93bigiMDc6MTM6MDAuNTAwIiwgMC4yNTAsIG51bGwsIG51bGwp
IGlzICIwNzoxMzowMC4yNTAiCitQQVNTIHN0ZXBVcCgiMDc6MTM6MDAuNzUwIiwgMC4yNTAsIG51
bGwsIG51bGwpIGlzICIwNzoxMyIKK1BBU1Mgc3RlcERvd24oIjA3OjEzOjAwLjAwMCIsIDAuMjUw
LCBudWxsLCBudWxsKSBpcyAiMDc6MTM6MDAuNzUwIgorUEFTUyBzdGVwVXAoIjA3OjEzOjAwLjA5
OSIsIDAuMTAwLCBudWxsLCBudWxsKSBpcyAiMDc6MTM6MDAuMTAwIgorUEFTUyBzdGVwRG93bigi
MDc6MTM6MDAuMTAxIiwgMC4xMDAsIG51bGwsIG51bGwpIGlzICIwNzoxMzowMC4xMDAiCitQQVNT
IHN0ZXBVcCgiMDc6MTM6MDAuNTAwIiwgMC4wMDAxLCBudWxsLCBudWxsKSBpcyAiMDc6MTM6MDAu
NTAxIgorUEFTUyBzdGVwRG93bigiMDc6MTM6MDAuNTAwIiwgMC4wMDAxLCBudWxsLCBudWxsKSBp
cyAiMDc6MTM6MDAuNDk5IgorUEFTUyBzdGVwVXAoIjA3OjEzOjAwLjUwMCIsIDAsIG51bGwsIG51
bGwpIGlzICIwNzoxMzowMC41MDEiCitQQVNTIHN0ZXBEb3duKCIwNzoxMzowMC41MDAiLCAwLCBu
dWxsLCBudWxsKSBpcyAiMDc6MTM6MDAuNDk5IgorUEFTUyBzdGVwVXAoIjA3OjEzOjAwLjUwMCIs
IDAuMTAwLCAiMDA6MDA6MDAuMDUwIiwgbnVsbCkgaXMgIjA3OjEzOjAwLjU1MCIKK1BBU1Mgc3Rl
cERvd24oIjA3OjEzOjAwLjUwMCIsIDAuMTAwLCAiMDA6MDA6MDAuMDUwIiwgbnVsbCkgaXMgIjA3
OjEzOjAwLjQ1MCIKK1BBU1MgdGVzdCgiMDc6MTM6MDAuNTAwIiwgMC4xMDAsIG51bGwsIG51bGws
IFsiZGVsZXRlIiwgInVwQXJyb3ciXSkgaXMgIjA3OjEzIgorUEFTUyB0ZXN0KCIwNzoxMzowMC41
MDAiLCAwLjEwMCwgbnVsbCwgbnVsbCwgWyJkZWxldGUiLCAiZG93bkFycm93Il0pIGlzICIwNzox
MzowMC45MDAiCitQQVNTIHRlc3QoIjA3OjEzOjAwLjUwMCIsIDAuMTAwLCAiMDA6MDA6MDAuMDUw
IiwgbnVsbCwgWyJkZWxldGUiLCAidXBBcnJvdyJdKSBpcyAiMDc6MTM6MDAuMDUwIgorUEFTUyB0
ZXN0KCIwNzoxMzowMC41MDAiLCAwLjEwMCwgIjAwOjAwOjAwLjA1MCIsIG51bGwsIFsiZGVsZXRl
IiwgImRvd25BcnJvdyJdKSBpcyAiMDc6MTM6MDAuOTUwIgogCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1t
dWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBkb3duLWZyb20t
cmVuZGVyZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVs
ZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtc3RlcHVwLXN0ZXBkb3duLWZyb20tcmVuZGVyZXIuaHRt
bAppbmRleCA0YmFmYTU2ODdmNTExZWFlMDljMDAzM2FmYzZlMDQyZDUyYTk0OTlkLi4xYTdjYjY5
MWIyNTQ4ZTc3ZWUyMzkxYWVhNDRiZTRlOTM3YmUyNTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLXN0
ZXB1cC1zdGVwZG93bi1mcm9tLXJlbmRlcmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1zdGVwdXAtc3Rl
cGRvd24tZnJvbS1yZW5kZXJlci5odG1sCkBAIC0xMiwxMCArMTIsMTEgQEAgdmFyIGludmFsaWRT
dGF0ZUVyciA9ICciRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExIic7
CiAKIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpOwogCi1mdW5jdGlvbiBzZW5kS2V5
KGtleU5hbWUpIHsKLSAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgnS2V5Ym9h
cmRFdmVudCcpOwotICAgIGV2ZW50LmluaXRLZXlib2FyZEV2ZW50KCdrZXlkb3duJywgdHJ1ZSwg
dHJ1ZSwgZG9jdW1lbnQuZGVmYXVsdFZpZXcsIGtleU5hbWUpOwotICAgIGlucHV0LmRpc3BhdGNo
RXZlbnQoZXZlbnQpOworZnVuY3Rpb24ga2V5RG93bihrZXksIG1vZGlmaWVycykKK3sKKyAgICBp
ZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgcmV0dXJuOworICAgIGV2ZW50U2VuZGVy
LmtleURvd24oa2V5LCBtb2RpZmllcnMpOwogfQogCiBmdW5jdGlvbiBzZXRJbnB1dEF0dHJpYnV0
ZXMobWluLCBtYXgsIHN0ZXAsIHZhbHVlKSB7CkBAIC0yNSw0MyArMjYsNTYgQEAgZnVuY3Rpb24g
c2V0SW5wdXRBdHRyaWJ1dGVzKG1pbiwgbWF4LCBzdGVwLCB2YWx1ZSkgewogICAgIGlucHV0LnZh
bHVlID0gdmFsdWU7CiB9CiAKLWZ1bmN0aW9uIHN0ZXBVcCh2YWx1ZSwgc3RlcCwgbWF4LCBvcHRp
b25hbFN0ZXBDb3VudCkgewotICAgIHNldElucHV0QXR0cmlidXRlcyhudWxsLCBtYXgsIHN0ZXAs
IHZhbHVlKTsKLSAgICBpZiAodHlwZW9mIG9wdGlvbmFsU3RlcENvdW50ICE9ICJ1bmRlZmluZWQi
KQotICAgICAgICBpZiAob3B0aW9uYWxTdGVwQ291bnQgPCAwKQotICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAtb3B0aW9uYWxTdGVwQ291bnQ7IGkrKykKLSAgICAgICAgICAgICAgICBz
ZW5kS2V5KCdEb3duJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgb3B0aW9uYWxTdGVwQ291bnQ7IGkrKykKLSAgICAgICAgICAgICAgICBzZW5kS2V5KCdV
cCcpOwotICAgIGVsc2UKLSAgICAgICAgc2VuZEtleSgnVXAnKTsKK2Z1bmN0aW9uIHRlc3QodmFs
dWUsIHN0ZXAsIG1pbiwgbWF4LCBrZXlTZXF1ZW5jZSkgeworICAgIHNldElucHV0QXR0cmlidXRl
cyhtaW4sIG1heCwgc3RlcCwgdmFsdWUpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwga2V5U2Vx
dWVuY2UubGVuZ3RoOyBpKyspCisgICAgICAgIGtleURvd24oa2V5U2VxdWVuY2VbaV0pOwogICAg
IHJldHVybiBpbnB1dC52YWx1ZTsKIH0KIAotZnVuY3Rpb24gc3RlcERvd24odmFsdWUsIHN0ZXAs
IG1pbiwgb3B0aW9uYWxTdGVwQ291bnQpIHsKLSAgICBzZXRJbnB1dEF0dHJpYnV0ZXMobWluLCBu
dWxsLCBzdGVwLCB2YWx1ZSk7Ci0gICAgaWYgKHR5cGVvZiBvcHRpb25hbFN0ZXBDb3VudCAhPSAi
dW5kZWZpbmVkIikKLSAgICAgICAgaWYgKG9wdGlvbmFsU3RlcENvdW50IDwgMCkKLSAgICAgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgLW9wdGlvbmFsU3RlcENvdW50OyBpKyspCi0gICAgICAg
ICAgICAgICAgc2VuZEtleSgnVXAnKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBvcHRpb25hbFN0ZXBDb3VudDsgaSsrKQotICAgICAgICAgICAgICAgIHNl
bmRLZXkoJ0Rvd24nKTsKLSAgICBlbHNlCi0gICAgICAgIHNlbmRLZXkoJ0Rvd24nKTsKLSAgICBy
ZXR1cm4gaW5wdXQudmFsdWU7CitmdW5jdGlvbiBzdGVwVXAodmFsdWUsIHN0ZXAsIG1pbiwgbWF4
KSB7CisgICAgcmV0dXJuIHRlc3QodmFsdWUsc3RlcCwgbWluLCBtYXgsIFsndXBBcnJvdyddKTsK
K30KKworZnVuY3Rpb24gc3RlcERvd24odmFsdWUsIHN0ZXAsIG1pbiwgbWF4KSB7CisgICAgcmV0
dXJuIHRlc3QodmFsdWUsc3RlcCwgbWluLCBtYXgsIFsnZG93bkFycm93J10pOwogfQogCiBpbnB1
dC50eXBlID0gJ3RpbWUnOwogaW5wdXQuZm9jdXMoKTsKLXNlbmRLZXkoJ1JpZ2h0Jyk7Ci1kZWJ1
ZygnRnVuY3Rpb24gYXJndW1lbnRzIGFyZSAodmFsdWUsIHN0ZXAsIHttaW4gb3IgbWF4fSwgW3N0
ZXBDb3VudF0pLicpOwora2V5RG93bigncmlnaHRBcnJvdycpOworZGVidWcoJ0Z1bmN0aW9uIGFy
Z3VtZW50cyBhcmUgKHZhbHVlLCBzdGVwLCBtaW4sIG1heCwgW2tleVNlcXVlbmNlXSkuJyk7CiBk
ZWJ1ZygnTm9ybWFsIGNhc2VzJyk7Ci1zaG91bGRCZSgnc3RlcFVwKCIwNzoxMyIsIG51bGwsIG51
bGwpJywgJyIwNzoxNCInKTsKLXNob3VsZEJlKCdzdGVwRG93bigiMDc6MTMiLCBudWxsLCBudWxs
KScsICciMDc6MTIiJyk7Ci1zaG91bGRCZSgnc3RlcFVwKCIwNzoxMyIsIG51bGwsIG51bGwsIDEw
KScsICciMDc6MjMiJyk7Ci1zaG91bGRCZSgnc3RlcERvd24oIjA3OjEzIiwgbnVsbCwgbnVsbCwg
MTEpJywgJyIwNzowMiInKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnc3RlcFVwKCIwNzoxMyIs
IG51bGwsIG51bGwsIG51bGwpJywgJzA3OjE0Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0
ZXBEb3duKCIwNzoxMyIsIG51bGwsIG51bGwsIG51bGwpJywgJzA3OjEyJyk7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ3Rlc3QoIjA3OjEzIiwgbnVsbCwgbnVsbCwgbnVsbCwgWyJ1cEFycm93Iiwg
InVwQXJyb3ciLCAidXBBcnJvdyJdKScsICcwNzoxNicpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCd0ZXN0KCIwNzoxMyIsIG51bGwsIG51bGwsIG51bGwsIFsiZG93bkFycm93IiwgImRvd25BcnJv
dyIsICJkb3duQXJyb3ciXSknLCAnMDc6MTAnKTsKKworZGVidWcoJ01pbGxpc2Vjb25kcycpOwor
aW5wdXQuc3RlcCA9IDAuMDAxOwora2V5RG93bigncmlnaHRBcnJvdycpOwora2V5RG93bigncmln
aHRBcnJvdycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVwVXAoIjA3OjEzOjAwLjAwMCIs
IDAuMDAxLCBudWxsLCBudWxsKScsICcwNzoxMzowMC4wMDEnKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnc3RlcERvd24oIjA3OjEzOjAwLjAwMSIsIDAuMDAxLCBudWxsLCBudWxsKScsICcwNzox
MycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVwVXAoIjA3OjEzOjAwLjk5OSIsIDAuMDAx
LCBudWxsLCBudWxsKScsICcwNzoxMycpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVwRG93
bigiMDc6MTM6MDAuMDAwIiwgMC4wMDEsIG51bGwsIG51bGwpJywgJzA3OjEzOjAwLjk5OScpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVwVXAoIjA3OjEzOjAwLjAwMCIsIDAuMjUwLCBudWxs
LCBudWxsKScsICcwNzoxMzowMC4yNTAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnc3RlcERv
d24oIjA3OjEzOjAwLjUwMCIsIDAuMjUwLCBudWxsLCBudWxsKScsICcwNzoxMzowMC4yNTAnKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygnc3RlcFVwKCIwNzoxMzowMC43NTAiLCAwLjI1MCwgbnVs
bCwgbnVsbCknLCAnMDc6MTMnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnc3RlcERvd24oIjA3
OjEzOjAwLjAwMCIsIDAuMjUwLCBudWxsLCBudWxsKScsICcwNzoxMzowMC43NTAnKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygnc3RlcFVwKCIwNzoxMzowMC4wOTkiLCAwLjEwMCwgbnVsbCwgbnVs
bCknLCAnMDc6MTM6MDAuMTAwJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0ZXBEb3duKCIw
NzoxMzowMC4xMDEiLCAwLjEwMCwgbnVsbCwgbnVsbCknLCAnMDc6MTM6MDAuMTAwJyk7CitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ3N0ZXBVcCgiMDc6MTM6MDAuNTAwIiwgMC4wMDAxLCBudWxsLCBu
dWxsKScsICcwNzoxMzowMC41MDEnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnc3RlcERvd24o
IjA3OjEzOjAwLjUwMCIsIDAuMDAwMSwgbnVsbCwgbnVsbCknLCAnMDc6MTM6MDAuNDk5Jyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0ZXBVcCgiMDc6MTM6MDAuNTAwIiwgMCwgbnVsbCwgbnVs
bCknLCAnMDc6MTM6MDAuNTAxJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3N0ZXBEb3duKCIw
NzoxMzowMC41MDAiLCAwLCBudWxsLCBudWxsKScsICcwNzoxMzowMC40OTknKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnc3RlcFVwKCIwNzoxMzowMC41MDAiLCAwLjEwMCwgIjAwOjAwOjAwLjA1
MCIsIG51bGwpJywgJzA3OjEzOjAwLjU1MCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdzdGVw
RG93bigiMDc6MTM6MDAuNTAwIiwgMC4xMDAsICIwMDowMDowMC4wNTAiLCBudWxsKScsICcwNzox
MzowMC40NTAnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygndGVzdCgiMDc6MTM6MDAuNTAwIiwg
MC4xMDAsIG51bGwsIG51bGwsIFsiZGVsZXRlIiwgInVwQXJyb3ciXSknLCAnMDc6MTMnKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygndGVzdCgiMDc6MTM6MDAuNTAwIiwgMC4xMDAsIG51bGwsIG51
bGwsIFsiZGVsZXRlIiwgImRvd25BcnJvdyJdKScsICcwNzoxMzowMC45MDAnKTsKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygndGVzdCgiMDc6MTM6MDAuNTAwIiwgMC4xMDAsICIwMDowMDowMC4wNTAi
LCBudWxsLCBbImRlbGV0ZSIsICJ1cEFycm93Il0pJywgJzA3OjEzOjAwLjA1MCcpOworc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0KCIwNzoxMzowMC41MDAiLCAwLjEwMCwgIjAwOjAwOjAwLjA1
MCIsIG51bGwsIFsiZGVsZXRlIiwgImRvd25BcnJvdyJdKScsICcwNzoxMzowMC45NTAnKTsKKwog
ZGVidWcoJycpOwogZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChpbnB1dCk7CiA8L3NjcmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>