<?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>90236</bug_id>
          
          <creation_ts>2012-06-28 19:09:13 -0700</creation_ts>
          <short_desc>[Chromium-Windows] Implement functions for localized time format information</short_desc>
          <delta_ts>2012-07-10 23:52:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>
          <dependson>89963</dependson>
          <blocked>88970</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>yosin</reporter>
          <assigned_to>yosin</assigned_to>
          <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>660056</commentid>
    <comment_count>0</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-06-28 19:09:13 -0700</bug_when>
    <thetext>To implement input type &quot;time&quot; multiple fields UI, we need following functions for Windows:
1. localizedTimeFormatText()
2. localizedShortTimeFormatText()
3. timeAMPMLables()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665549</commentid>
    <comment_count>1</comment_count>
      <attachid>151411</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 00:58:30 -0700</bug_when>
    <thetext>Created attachment 151411
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665551</commentid>
    <comment_count>2</comment_count>
      <attachid>151413</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 01:00:34 -0700</bug_when>
    <thetext>Created attachment 151413
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665553</commentid>
    <comment_count>3</comment_count>
      <attachid>151413</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 01:00:58 -0700</bug_when>
    <thetext>Comment on attachment 151413
Patch 1

Could you review this patch?
Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665564</commentid>
    <comment_count>4</comment_count>
      <attachid>151418</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 01:33:15 -0700</bug_when>
    <thetext>Created attachment 151418
Patch 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665566</commentid>
    <comment_count>5</comment_count>
      <attachid>151418</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 01:33:44 -0700</bug_when>
    <thetext>Comment on attachment 151418
Patch 3

Could you review this patch?
Thanks in advance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665601</commentid>
    <comment_count>6</comment_count>
      <attachid>151418</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-10 02:39:10 -0700</bug_when>
    <thetext>Comment on attachment 151418
Patch 3

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

&gt; Source/WebCore/platform/text/LocaleWin.cpp:624
&gt; +// This class used for converting Windows time pattern format[1] into LDML[2]
&gt; +// time format string.
&gt; +// [1] http://msdn.microsoft.com/en-us/library/windows/desktop/dd318148(v=vs.85).aspx
&gt; +// [2] LDML http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
&gt; +static String parseWindowsTimeFormat(const String&amp; windowsTimeFormat)

So, the function name should convertWindowsTimeFormatToLDML() or something.

&gt; Source/WebCore/platform/text/LocaleWin.cpp:641
&gt; +        } else if (fieldType == lastFieldType) {
&gt; +            ++counter;
&gt; +            if (counter == 2 &amp;&amp; lastFieldType != DateTimeFormat::FieldTypePeriod)
&gt; +                builder.append(static_cast&lt;UChar&gt;(lastFieldType));
&gt; +        } else {
&gt; +            builder.append(static_cast&lt;UChar&gt;(lastFieldType));
&gt; +            counter = 1;
&gt; +        }
&gt; +        lastFieldType = fieldType;

Is this code compilable?  lastFieldType is not declared.

&gt; Source/WebCore/platform/text/LocaleWin.cpp:659
&gt; +String LocaleWin::localizedShortTimeFormatText()
&gt; +{
&gt; +    if (m_shortTimeFormatText.isEmpty()) {
&gt; +        // Note: LOCALE_SSHORTTIME is available for Windows 7 and later.
&gt; +        m_shortTimeFormatText = parseWindowsTimeFormat(getLocaleInfoString(LOCALE_SSHORTTIME));
&gt; +        if (m_shortTimeFormatText.isEmpty())
&gt; +            m_shortTimeFormatText = localizedShortTimeFormatText();

Why calling this function recursively?

&gt; Source/WebKit/chromium/tests/LocaleWinTest.cpp:63
&gt; +        en_US = 0x409,
&gt; +        fr_FR = 0x40C,
&gt; +        ja_JP = 0x411,

Please follow naming rule for enum.
http://www.webkit.org/coding/coding-style.html#names-enum-members</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666347</commentid>
    <comment_count>7</comment_count>
      <attachid>151597</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 22:20:19 -0700</bug_when>
    <thetext>Created attachment 151597
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666349</commentid>
    <comment_count>8</comment_count>
      <attachid>151597</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 22:21:57 -0700</bug_when>
    <thetext>Comment on attachment 151597
Patch 4

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Fixed compilation error
* Update enum names in LocaleWinTest.cpp
* I uploaded wrong version of the files on Patch 3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666363</commentid>
    <comment_count>9</comment_count>
      <attachid>151597</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-10 22:42:04 -0700</bug_when>
    <thetext>Comment on attachment 151597
Patch 4

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

&gt; Source/WebCore/platform/text/LocaleWin.cpp:662
&gt; +        // Note: LOCALE_SSHORTTIME is available for Windows 7 and later.
&gt; +        m_shortTimeFormatText = convertWindowsTimeFormatToLDML(getLocaleInfoString(LOCALE_SSHORTTIME));
&gt; +        if (m_shortTimeFormatText.isEmpty())
&gt; +            m_shortTimeFormatText = timeFormatText();

So, we always show a second field on Windows XP and Vista, and not show it on Windows 7 even though the HTML code is identical?  i don&apos;t think such difference is acceptable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666364</commentid>
    <comment_count>10</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-10 22:43:26 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; * I uploaded wrong version of the files on Patch 3.

Please always re-review your patch before uploading.  Such patch wastes reviewer&apos;s time, and you made such mistakes many times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666373</commentid>
    <comment_count>11</comment_count>
      <attachid>151605</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 22:53:01 -0700</bug_when>
    <thetext>Created attachment 151605
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666374</commentid>
    <comment_count>12</comment_count>
      <attachid>151605</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 22:55:11 -0700</bug_when>
    <thetext>Comment on attachment 151605
Patch 5

Could you review this patch?
Thanks in advance.

= Changes since the last review =
* Make LocaleWin::shortTimeFormatText not to use LOCALE_SSHORTTIME
* Update LocaleWinTest/shortTimeFormatText</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666415</commentid>
    <comment_count>13</comment_count>
      <attachid>151605</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-10 23:50:36 -0700</bug_when>
    <thetext>Comment on attachment 151605
Patch 5

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666416</commentid>
    <comment_count>14</comment_count>
      <attachid>151605</attachid>
    <who name="">yosin</who>
    <bug_when>2012-07-10 23:52:35 -0700</bug_when>
    <thetext>Comment on attachment 151605
Patch 5

Clearing flags on attachment: 151605

Committed r122303: &lt;http://trac.webkit.org/changeset/122303&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>666417</commentid>
    <comment_count>15</comment_count>
    <who name="">yosin</who>
    <bug_when>2012-07-10 23:52:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151411</attachid>
            <date>2012-07-10 00:58:30 -0700</date>
            <delta_ts>2012-07-10 01:00:30 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-90236-20120710165829.patch</filename>
            <type>text/plain</type>
            <size>15645</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ0M2Q2M2Y4N2Q0ODhm
NmQ0YzY2OWI4MzY3ZTZlYWNjOTVhMjk1Yi4uOTU2Y2VkNGU0OTY5ZjNiZTBkNzhjOWExNDI1NWIx
MTdmMGFjOTZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA3LTA5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLVdp
bmRvd3NdIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGxvY2FsaXplZCB0aW1lIGZvcm1hdCBpbmZv
cm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTAyMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGludHJvZHVjZXMgZm9sbG93aW5nIGxvY2FsaXplZCB0aW1lIGZvcm1hdCByZWxh
dGVkCisgICAgICAgIGZ1bmN0aW9uczoKKyAgICAgICAgICAgIC0gbG9jYWxpemVkVGltZUZvcm1h
dFRleHQKKyAgICAgICAgICAgIC0gbG9jYWxpemVTaG9ydFRpbWVGb3JtYXRUZXh0KCkKKyAgICAg
ICAgICAgIC0gdGltZUFNUE1MYWJlbHMKKyAgICAgICAgZm9yIFdpbmRvd3MgaW4gZmVhdHVyZSBm
bGFnOiBFTkFCTEVfSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUy4KKworICAgICAgICBT
ZWUgYWxzbzoKKyAgICAgICAgICBJQ1UgdmVyc2lvbjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5OTY1CisgICAgICAgICAgTWFjIHZlcnNpb246IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDIzNworCisgICAgICAgIFRlc3RzOiBXZWJL
aXQvY2hyb21pdW0vdGVzdHMvTG9jYWxXaW5UZXN0LmNwcAorCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9Mb2NhbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9EYXRl
VGltZUZpZWxkVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VXaW5kb3dzVGlt
ZUZvcm1hdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2luOjpsb2NhbGl6ZWRU
aW1lRm9ybWF0VGV4dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2luOjpsb2Nh
bGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bGVXaW46OnRpbWVBTVBNTGFiZWxzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9M
b2NhbGVXaW4uaDoKKyAgICAgICAgKExvY2FsZVdpbik6IEFkZGVkIHRpbWUgZm9ybWF0IHJlbGF0
ZWQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMuCisKIDIwMTItMDctMDkgIEtpcmFuIE11cHBhbGEg
IDxjbXVwcGFsYUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSBwZXJmb3JtYW5jZSBvZiBS
ZW5kZXJJbmxpbmU6OmFic29sdXRlUXVhZHMgZm9yIGRlZXBseSBuZXN0ZWQgaW5saW5lcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNThkMTU3ODI0NzNlZTFmYjJkZTkyNzkzM2QxYjJi
N2YwOGNhYmFkMi4uNzc2MWQzMDY5ZDVhMGEwZTQ0Y2I3ODE1NzJiNTU0ZWVmNWVlODkxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNy0xMCAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bS1X
aW5kb3dzXSBJbXBsZW1lbnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5m
b3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkwMjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRlc3QgY2FzZXMgZm9yIGRhdGUgYW5kIHRpbWUgZm9ybWF0
IHJlbGF0ZWQKKyAgICAgICAgZnVuY3Rpb25zIGluIExvY2FsZVdpbi4KKworICAgICAgICAqIHRl
c3RzL0xvY2FsZVdpblRlc3QuY3BwOgorICAgICAgICAoTG9jYWxlV2luVGVzdCk6CisgICAgICAg
IChMb2NhbGVXaW5UZXN0OjpkYXRlQ29tcG9uZW50cyk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0
Ojptc0ZvckRhdGUpOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6Zm9ybWF0RGF0ZSk6CisgICAg
ICAgIChMb2NhbGVXaW5UZXN0OjpwYXJzZURhdGUpOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6
ZGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6Zmlyc3REYXlPZldlZWsp
OgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6bW9udGhMYWJlbCk6CisgICAgICAgIChMb2NhbGVX
aW5UZXN0Ojp3ZWVrRGF5U2hvcnRMYWJlbCk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0Ojp0aW1l
Rm9ybWF0VGV4dCk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0OjpzaG9ydFRpbWVGb3JtYXRUZXh0
KToKKyAgICAgICAgKExvY2FsZVdpblRlc3Q6OnRpbWVBTVBNTGFiZWwpOgorICAgICAgICAoVEVT
VF9GKToKKwogMjAxMi0wNy0wOSAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDaHJvbWl1bS1NYWNdIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGxvY2Fs
aXplZCB0aW1lIGZvcm1hdCBpbmZvcm1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGVXaW4uY3BwCmluZGV4IDgyZjkyNzU1MTZmY2M1YmFjZGZmN2ZjZTVlNTYxNWQ1YmIy
ODE3ZmEuLjdkMDdkMjY5NmRiOWZiNDBmMmE2NDVjNWNmNTIxZDdkMTMyMDE4ZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTMyLDYgKzMyLDkgQEAK
ICNpbmNsdWRlICJMb2NhbGVXaW4uaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisjaW5jbHVkZSAiRGF0
ZVRpbWVGb3JtYXQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d2luZG93cy5oPgpAQCAtNTkwLDQgKzU5Myw4MyBA
QCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlV2luOjp3ZWVrRGF5U2hvcnRMYWJlbHMoKQog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykK
Kworc3RhdGljIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgbWFwQ2hhcmFjdGVyVG9EYXRlVGlt
ZUZpZWxkVHlwZShVQ2hhciBjaCkKK3sKKyAgICBzd2l0Y2ggKGNoKSB7CisgICAgY2FzZSAnaCc6
CisgICAgICAgIHJldHVybiBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjEyOworCisgICAg
Y2FzZSAnSCc6CisgICAgICAgIHJldHVybiBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjI0
OworCisgICAgY2FzZSAnbSc6CisgICAgICAgIHJldHVybiBEYXRlVGltZUZvcm1hdDo6RmllbGRU
eXBlTWludXRlOworCisgICAgY2FzZSAncyc6CisgICAgICAgIHJldHVybiBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlU2Vjb25kOworCisgICAgY2FzZSAndCc6CisgICAgICAgIHJldHVybiBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kOworCisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFsOworICAgIH0KK30KKworLy8gVGhp
cyBjbGFzcyB1c2VkIGZvciBjb252ZXJ0aW5nIFdpbmRvd3MgdGltZSBwYXR0ZXJuIGZvcm1hdFsx
XSBpbnRvIExETUxbMl0KKy8vIHRpbWUgZm9ybWF0IHN0cmluZy4KKy8vIFsxXSBodHRwOi8vbXNk
bi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvd2luZG93cy9kZXNrdG9wL2RkMzE4MTQ4KHY9
dnMuODUpLmFzcHgKKy8vIFsyXSBMRE1MIGh0dHA6Ly91bmljb2RlLm9yZy9yZXBvcnRzL3RyMzUv
dHIzNS02Lmh0bWwjRGF0ZV9Gb3JtYXRfUGF0dGVybnMKK3N0YXRpYyBTdHJpbmcgcGFyc2VXaW5k
b3dzVGltZUZvcm1hdChjb25zdCBTdHJpbmcmIHdpbmRvd3NUaW1lRm9ybWF0KQoreworICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBpbnQgY291bnRlciA9IDA7CisgICAgZm9yICh1bnNp
Z25lZCBpbmRleCA9IDA7IGluZGV4IDwgd2luZG93c1RpbWVGb3JtYXQubGVuZ3RoKCk7ICsraW5k
ZXgpIHsKKyAgICAgICAgVUNoYXIgY29uc3QgY2ggPSB3aW5kb3dzVGltZUZvcm1hdFtpXTsKKyAg
ICAgICAgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUgPSBtYXBDaGFyYWN0ZXJU
b0RhdGVUaW1lRmllbGRUeXBlKGNoKTsKKyAgICAgICAgaWYgKGZpZWxkVHlwZSA9PSBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlTGl0ZXJhbCkgeworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
Y2gpOworICAgICAgICB9IGVsc2UgaWYgKGZpZWxkVHlwZSA9PSBsYXN0RmllbGRUeXBlKSB7Cisg
ICAgICAgICAgICArK2NvdW50ZXI7CisgICAgICAgICAgICBpZiAoY291bnRlciA9PSAyICYmIGxh
c3RGaWVsZFR5cGUgIT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZCkKKyAgICAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4obGFzdEZpZWxkVHlwZSkp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RhdGljX2Nh
c3Q8VUNoYXI+KGxhc3RGaWVsZFR5cGUpKTsKKyAgICAgICAgICAgIGNvdW50ZXIgPSAxOworICAg
ICAgICB9CisgICAgICAgIGxhc3RGaWVsZFR5cGUgPSBmaWVsZFR5cGU7CisgICAgfQorICAgIHJl
dHVybiBidWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKK1N0cmluZyBMb2NhbGVXaW46OmxvY2FsaXpl
ZFRpbWVGb3JtYXRUZXh0KCkKK3sKKyAgICBpZiAobV90aW1lRm9ybWF0VGV4dC5pc0VtcHR5KCkp
CisgICAgICAgIG1fdGltZUZvcm1hdFRleHQgPSBwYXJzZVdpbmRvd3NUaW1lRm9ybWF0KGdldExv
Y2FsZUluZm9TdHJpbmcoTE9DQUxfU1RJTUVGT1JNQVQpKTsKKyAgICByZXR1cm4gbV90aW1lRm9y
bWF0VGV4dDsKK30KKworU3RyaW5nIExvY2FsZVdpbjo6bG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0
VGV4dCgpCit7CisgICAgaWYgKG1fc2hvcnRUaW1lRm9ybWF0VGV4dC5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgLy8gTm90ZTogTE9DQUxFX1NTSE9SVFRJTUUgaXMgYXZhaWxhYmxlIGZvciBXaW5kb3dz
IDcgYW5kIGxhdGVyLgorICAgICAgICBtX3Nob3J0VGltZUZvcm1hdFRleHQgPSBwYXJzZVdpbmRv
d3NUaW1lRm9ybWF0KGdldExvY2FsZUluZm9TdHJpbmcoTE9DQUxFX1NTSE9SVFRJTUUpKTsKKyAg
ICAgICAgaWYgKG1fc2hvcnRUaW1lRm9ybWF0VGV4dC5pc0VtcHR5KCkpCisgICAgICAgICAgICBt
X3Nob3J0VGltZUZvcm1hdFRleHQgPSBsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCk7Cisg
ICAgfQorICAgIHJldHVybiBtX3Nob3J0VGltZUZvcm1hdDsKK30KKworY29uc3QgVmVjdG9yPFN0
cmluZz4mIExvY2FsZVdpbjo6dGltZUFNUE1MYWJlbHMoKQoreworICAgIGlmIChtX3RpbWVBTVBN
TGFiZWxzLmlzRW1wdHkoKSkgeworICAgICAgICBtX3RpbWVBTVBNTGFiZWxzLmFwcGVuZChnZXRM
b2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TMTE1OSgpKTsKKyAgICAgICAgbV90aW1lQU1QTUxhYmVs
cy5hcHBlbmQoZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NBTEVfUzIzNTkoKSk7CisgICAgfQorICAg
IHJldHVybiBtX3RpbWVBTVBNTGFiZWxzKCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKaW5kZXggNmE3NWM5OTQ1NTdmNTcwYTk4Y2JmN2Y2
MDliNDU2ZjNkY2UyM2M0NC4uMGQ1NmFhMmNjODQzYjQ2MDU4ZDhlYzNmMTNhNWZkZmUxZWMzYjA1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5oCkBAIC01NCw2ICs1
NCwxMiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZmlyc3REYXlPZldlZWsoKSB7IHJldHVybiBt
X2ZpcnN0RGF5T2ZXZWVrOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVf
TVVMVElQTEVfRklFTERTKQorICAgIFN0cmluZyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpOwor
ICAgIFN0cmluZyBsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCk7CisgICAgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHRpbWVBTVBNTGFiZWxzKCk7CisjZW5kaWYKKwogICAgIC8vIEZvciB0ZXN0
aW5nLgogICAgIGRvdWJsZSBwYXJzZURhdGUoY29uc3QgU3RyaW5nJiBmb3JtYXQsIGludCBiYXNl
WWVhciwgY29uc3QgU3RyaW5nJiBpbnB1dCk7CiAgICAgU3RyaW5nIGZvcm1hdERhdGUoY29uc3Qg
U3RyaW5nJiBmb3JtYXQsIGludCBiYXNlWWVhciwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRh
eSk7CkBAIC04MSw3ICs4NywxMSBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxTdHJpbmc+IG1fd2Vl
a0RheVNob3J0TGFiZWxzOwogICAgIHVuc2lnbmVkIG1fZmlyc3REYXlPZldlZWs7CiAjZW5kaWYK
LQorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgIFN0cmlu
ZyBtX3RpbWVGb3JtYXRUZXh0OworICAgIFN0cmluZyBtX3Nob3J0VGltZUZvcm1hdFRleHQ7Cisg
ICAgVmVjdG9yPFN0cmluZz4gbV90aW1lQU1QTUxhYmVsczsKKyNlbmRpZgogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVXaW5UZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlV2luVGVzdC5jcHAKaW5kZXggZDY0
ZTkwMmE1NWM0YmIyYjQ2OTQxYmQ5NmQxOGEzZGU4ZDQxNzc4OS4uOWYwYjI5NGMxN2U0ZGY3YjI3
OGQ3MzM1ZDAwMzQ1MTEyYmMwOTc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9Mb2NhbGVXaW5UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0xvY2FsZVdpblRlc3QuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiTG9jYWxlV2luLmgiCiAKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5o
IgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTQwLDE5ICs0MSwxMDAgQEAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotZW51bSB7Ci0gICAgSmFu
dWFyeSA9IDAsIEZlYnJ1YXJ5LCBNYXJjaCwKLSAgICBBcHJpbCwgTWF5LCBKdW5lLAotICAgIEp1
bHksIEF1Z3VzdCwgU2VwdGVtYmVyLAotICAgIE9jdG9iZXIsIE5vdmVtYmVyLCBEZWNlbWJlciwK
LX07CitjbGFzcyBMb2NhbGVXaW5UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Citwcm90
ZWN0ZWQ6CisgICAgZW51bSB7CisgICAgICAgIEphbnVhcnkgPSAwLCBGZWJydWFyeSwgTWFyY2gs
CisgICAgICAgIEFwcmlsLCBNYXksIEp1bmUsCisgICAgICAgIEp1bHksIEF1Z3VzdCwgU2VwdGVt
YmVyLAorICAgICAgICBPY3RvYmVyLCBOb3ZlbWJlciwgRGVjZW1iZXIsCisgICAgfTsKIAotc3Rh
dGljIGRvdWJsZSBtc0ZvckRhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkKLXsKLSAg
ICByZXR1cm4gZGF0ZVRvRGF5c0Zyb20xOTcwKHllYXIsIG1vbnRoLCBkYXkpICogbXNQZXJEYXk7
Ci19CisgICAgZW51bSB7CisgICAgICAgIFN1bmRheSA9IDAsIE1vbmRheSwgVHVlc2RheSwKKyAg
ICAgICAgV2VkbmVzZGF5LCBUaHVyc2RheSwgRnJpZGF5LAorICAgICAgICBTYXR1cmRheSwKKyAg
ICB9OworCisgICAgLy8gU2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvZ29nbG9i
YWwvYmI5NjQ2NjQuYXNweAorICAgIGVudW0geworICAgICAgICBlbl9VUyA9IDB4NDA5LAorICAg
ICAgICBmcl9GUiA9IDB4NDBDLAorICAgICAgICBqYV9KUCA9IDB4NDExLAorICAgIH07CisKKyAg
ICBEYXRlQ29tcG9uZW50cyBkYXRlQ29tcG9uZW50cyhpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQg
ZGF5KQorICAgIHsKKyAgICAgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKKyAgICAgICAgZGF0ZS5z
ZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZShtc0ZvckRhdGUoeWVhciwgbW9udGgsIGRh
eSkpOworICAgICAgICByZXR1cm4gZGF0ZTsKKyAgICB9CisKKyAgICBkb3VibGUgbXNGb3JEYXRl
KGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpCisgICAgeworICAgICAgICByZXR1cm4gZGF0
ZVRvRGF5c0Zyb20xOTcwKHllYXIsIG1vbnRoLCBkYXkpICogbXNQZXJEYXk7CisgICAgfQorCisg
ICAgU3RyaW5nIGZvcm1hdERhdGUoTENJRCBsY2lkLCBpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQg
ZGF5KQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2lu
OjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPmZvcm1hdERhdGUoZGF0ZUNv
bXBvbmVudHMoeWVhciwgbW9udGgsIGRheSkpOworICAgIH0KKworICAgIGRvdWJsZSBwYXJzZURh
dGUoTENJRCBsY2lkLCBjb25zdCBTdHJpbmcmIGRhdGVTdHJpbmcpCisgICAgeworICAgICAgICBP
d25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKKyAgICAg
ICAgcmV0dXJuIGxvY2FsZS0+cGFyc2VEYXRlKGRhdGVTdHJpbmcpOworICAgIH0KKworI2lmIEVO
QUJMRShDQUxFTkRBUl9QSUNLRVIpCisgICAgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KExDSUQgbGNp
ZCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6
Y3JlYXRlKGxjaWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5kYXRlRm9ybWF0VGV4dCgpOwor
ICAgIH0KKworICAgIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKExDSUQgbGNpZCkKKyAgICB7Cisg
ICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQp
OworICAgICAgICByZXR1cm4gbG9jYWxlLT5maXJzdERheU9mV2VlaygpOworICAgIH0KKworICAg
IFN0cmluZyBtb250aExhYmVsKExDSUQgbGNpZCwgdW5zaWduZWQgaW5kZXgpCisgICAgeworICAg
ICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsK
KyAgICAgICAgcmV0dXJuIGxvY2FsZS0+bW9udGhMYWJlbHMoKVtpbmRleF07CisgICAgfQorCisg
ICAgU3RyaW5nIHdlZWtEYXlTaG9ydExhYmVsKExDSUQgbGNpZCwgdW5zaWduZWQgaW5kZXgpCisg
ICAgeworICAgICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0
ZShsY2lkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+d2Vla0RheVNob3J0TGFiZWxzKClbaW5k
ZXhdOworICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBM
RV9GSUVMRFMpCisgICAgU3RyaW5nIHRpbWVGb3JtYXRUZXh0KExDSUQgbGNpZCkKKyAgICB7Cisg
ICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQp
OworICAgICAgICByZXR1cm4gbG9jYWxlLT50aW1lRm9ybWF0VGV4dCgpOworICAgIH0KIAotVEVT
VChMb2NhbGVXaW5UZXN0LCBUZXN0TG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpCisgICAgU3RyaW5n
IHNob3J0VGltZUZvcm1hdFRleHQoTENJRCBsY2lkKQorICAgIHsKKyAgICAgICAgT3duUHRyPExv
Y2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJldHVy
biBsb2NhbGUtPnNob3J0VGltZUZvcm1hdFRleHQoKTsKKyAgICB9CisKKyAgICBTdHJpbmcgdGlt
ZUFNUE1MYWJlbChMQ0lEIGxjaWQsIHVuc2lnbmVkIGluZGV4KQorICAgIHsKKyAgICAgICAgT3du
UHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAgICAg
IHJldHVybiBsb2NhbGUtPnRpbWVBTVBNTGFiZWxzKClbaW5kZXhdOworICAgIH0KKyNlbmRpZgor
fTsKKworVEVTVF9GKExvY2FsZVdpblRlc3QsIFRlc3RMb2NhbGl6ZWREYXRlRm9ybWF0VGV4dCkK
IHsKICAgICBFWFBFQ1RfU1RSRVEoInllYXIvbW9udGgvZGF5IiwgTG9jYWxlV2luOjpkYXRlRm9y
bWF0VGV4dCgieS9NL2QiLCAieWVhciIsICJtb250aCIsICJkYXkiKS51dGY4KCkuZGF0YSgpKTsK
ICAgICBFWFBFQ1RfU1RSRVEoInllYXIvbW9udGgvZGF5IiwgTG9jYWxlV2luOjpkYXRlRm9ybWF0
VGV4dCgieXkvTU0vZGQiLCAieWVhciIsICJtb250aCIsICJkYXkiKS51dGY4KCkuZGF0YSgpKTsK
QEAgLTY2LDEwICsxNDgsOSBAQCBURVNUKExvY2FsZVdpblRlc3QsIFRlc3RMb2NhbGl6ZWREYXRl
Rm9ybWF0VGV4dCkKICAgICBFWFBFQ1RfU1RSRVEoIllZL21tL0REIiwgTG9jYWxlV2luOjpkYXRl
Rm9ybWF0VGV4dCgiWVkvbW0vREQiLCAieWVhciIsICJtb250aCIsICJkYXkiKS51dGY4KCkuZGF0
YSgpKTsKIH0KIAotVEVTVChMb2NhbGVXaW5UZXN0LCBUZXN0Rm9ybWF0KQorVEVTVF9GKExvY2Fs
ZVdpblRlc3QsIFRlc3RGb3JtYXQpCiB7Ci0gICAgY29uc3QgTENJRCBFbmdsaXNoVVMgPSAweDA0
MDk7Ci0gICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUoRW5n
bGlzaFVTKTsKKyAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0
ZShlbl9VUyk7CiAKICAgICBFWFBFQ1RfU1RSRVEoIjQvNy8yIiwgbG9jYWxlLT5mb3JtYXREYXRl
KCJNL2QveSIsIDIwMTIsIDIwMTIsIEFwcmlsLCA3KS51dGY4KCkuZGF0YSgpKTsKICAgICBFWFBF
Q1RfU1RSRVEoIjQvNy8yMDA3IiwgbG9jYWxlLT5mb3JtYXREYXRlKCJNL2QveSIsIDIwMTIsIDIw
MDcsIEFwcmlsLCA3KS51dGY4KCkuZGF0YSgpKTsKQEAgLTEyNiwxMCArMjA3LDkgQEAgVEVTVChM
b2NhbGVXaW5UZXN0LCBUZXN0Rm9ybWF0KQogICAgIAogfQogCi1URVNUKExvY2FsZVdpblRlc3Qs
IFRlc3RQYXJzZSkKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBUZXN0UGFyc2UpCiB7Ci0gICAgY29u
c3QgTENJRCBFbmdsaXNoVVMgPSAweDA0MDk7Ci0gICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxl
ID0gTG9jYWxlV2luOjpjcmVhdGUoRW5nbGlzaFVTKTsKKyAgICBPd25QdHI8TG9jYWxlV2luPiBs
b2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShlbl9VUyk7CiAKICAgICBFWFBFQ1RfRVEobXNGb3JE
YXRlKDIwMTIsIEFwcmlsLCAyNyksIGxvY2FsZS0+cGFyc2VEYXRlKCJNTS9kZC95eSIsIDIwMTIs
ICIwNC8yNy8xMiIpKTsKICAgICBFWFBFQ1RfRVEobXNGb3JEYXRlKDIwNjIsIEFwcmlsLCAyNyks
IGxvY2FsZS0+cGFyc2VEYXRlKCJNTS9kZC95eSIsIDIwMTIsICIwNC8yNy82MiIpKTsKQEAgLTE2
MSwzICsyNDEsOTEgQEAgVEVTVChMb2NhbGVXaW5UZXN0LCBUZXN0UGFyc2UpCiAgICAgRVhQRUNU
X1RSVUUoaXNuYW4obG9jYWxlLT5wYXJzZURhdGUoIk1NTU0vZC95IiwgMjAxMiwgIk5vdmVtYmVy
IDMyIDIiKSkpOwogICAgIEVYUEVDVF9UUlVFKGlzbmFuKGxvY2FsZS0+cGFyc2VEYXRlKCJNTU1N
L2QveSIsIDIwMTIsICItMS8tMS8tMSIpKSk7CiB9CisKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBm
b3JtYXREYXRlKQoreworICAgIEVYUEVDVF9TVFJFUSgiNC8yNy8yMDA1IiwgZm9ybWF0RGF0ZShl
bl9VUywgMjAwNSwgQXByaWwsIDI3KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEo
IjI3LzA0LzIwMDUiLCBmb3JtYXREYXRlKGZyX0ZSLCAyMDA1LCBBcHJpbCwgMjcpLnV0ZjgoKS5k
YXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMjAwNS8wNC8yNyIsIGZvcm1hdERhdGUoamFfSlAs
IDIwMDUsIEFwcmlsLCAyNykudXRmOCgpLmRhdGEoKSk7Cit9CisKK1RFU1RfRihMb2NhbGVXaW5U
ZXN0LCBwYXJzZURhdGUpCit7CisgICAgRVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDA1LCBBcHJpbCwg
MjcpLCBwYXJzZURhdGUoZW5fVVMsICJBcHJpbC8yNy8yMDA1IikpOworICAgIEVYUEVDVF9FUSht
c0ZvckRhdGUoMjAwNSwgQXByaWwsIDI3KSwgcGFyc2VEYXRlKGZyX0ZSLCAiMjcvYXZyaWwvMjAw
NSIpKTsKKyAgICBFWFBFQ1RfRVEobXNGb3JEYXRlKDIwMDUsIEFwcmlsLCAyNyksIHBhcnNlRGF0
ZShqYV9KUCwgIjIwMDUvMDQvMjciKSk7Cit9CisKKyNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VS
KQorVEVTVF9GKExvY2FsZVdpblRlc3QsIGRhdGVGb3JtYXRUZXh0KQoreworICAgIEVYUEVDVF9T
VFJFUSgiTW9udGgvRGF5L1llYXIiLCBkYXRlRm9ybWF0VGV4dChlbl9VUykudXRmOCgpLmRhdGEo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJEYXkvTW9udGgvWWVhciIsIGRhdGVGb3JtYXRUZXh0KGZy
X0ZSKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlllYXIvTW9udGgvRGF5Iiwg
ZGF0ZUZvcm1hdFRleHQoamFfSlApLnV0ZjgoKS5kYXRhKCkpOworfQorCitURVNUX0YoTG9jYWxl
V2luVGVzdCwgZmlyc3REYXlPZldlZWspCit7CisgICAgRVhQRUNUX0VRKFN1bmRheSwgZmlyc3RE
YXlPZldlZWsoZW5fVVMpKTsKKyAgICBFWFBFQ1RfRVEoTW9uZGF5LCBmaXJzdERheU9mV2Vlayhm
cl9GUikpOworICAgIEVYUEVDVF9FUShTdW5kYXksIGZpcnN0RGF5T2ZXZWVrKGphX0pQKSk7Cit9
CisKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBtb250aExhYmVscykKK3sKKyAgICBFWFBFQ1RfU1RS
RVEoIkphbnVhcnkiLCBtb250aExhYmVsKGVuX1VTLCBKYW51YXJ5KS51dGY4KCkuZGF0YSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIkp1bmUiLCBtb250aExhYmVsKGVuX1VTLCBKdW5lKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkRlY2VtYmVyIiwgbW9udGhMYWJlbChlbl9VUywg
RGVjZW1iZXIpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCJqYW52aWVyIiwg
bW9udGhMYWJlbChmcl9GUiwgSmFudWFyeSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJqdWluIiwgbW9udGhMYWJlbChmcl9GUiwgSnVuZSkudXRmOCgpLmRhdGEoKSk7CisgICAg
RVhQRUNUX1NUUkVRKCJkXHhDM1x4QTkiICJjZW1icmUiLCBtb250aExhYmVsKGZyX0ZSLCBEZWNl
bWJlcikudXRmOCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIjFceEU2XHg5Q1x4ODgi
LCBtb250aExhYmVsKGphX0pQLCBKYW51YXJ5KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoIjZceEU2XHg5Q1x4ODgiLCBtb250aExhYmVsKGphX0pQLCBKdW5lKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjEyXHhFNlx4OUNceDg4IiwgbW9udGhMYWJlbChqYV9K
UCwgRGVjZW1iZXIpLnV0ZjgoKS5kYXRhKCkpOworfQorCitURVNUX0YoTG9jYWxlV2luVGVzdCwg
d2Vla0RheVNob3J0TGFiZWxzKQoreworICAgIEVYUEVDVF9TVFJFUSgiU3VuIiwgd2Vla0RheVNo
b3J0TGFiZWwoZW5fVVMsIFN1bmRheSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVR
KCJXZWQiLCB3ZWVrRGF5U2hvcnRMYWJlbChlbl9VUywgV2VkbmVzZGF5KS51dGY4KCkuZGF0YSgp
KTsKKyAgICBFWFBFQ1RfU1RSRVEoIlNhdCIsIHdlZWtEYXlTaG9ydExhYmVsKGVuX1VTLCBTYXR1
cmRheSkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoImRpbS4iLCB3ZWVrRGF5
U2hvcnRMYWJlbChmcl9GUiwgU3VuZGF5KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIm1lci4iLCB3ZWVrRGF5U2hvcnRMYWJlbChmcl9GUiwgV2VkbmVzZGF5KS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoInNhbS4iLCB3ZWVrRGF5U2hvcnRMYWJlbChmcl9GUiwg
U2F0dXJkYXkpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCJceEU2XHg5N1x4
QTUiLCB3ZWVrRGF5U2hvcnRMYWJlbChqYV9KUCwgU3VuZGF5KS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoIlx4RTZceEIwXHhCNCIsIHdlZWtEYXlTaG9ydExhYmVsKGphX0pQLCBX
ZWRuZXNkYXkpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiXHhFNVx4OUNceDlG
Iiwgd2Vla0RheVNob3J0TGFiZWwoamFfSlAsIFNhdHVyZGF5KS51dGY4KCkuZGF0YSgpKTsKK30K
KyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCitU
RVNUX0YoTG9jYWxlV2luVGVzdCwgdGltZUZvcm1hdFRleHQpCit7CisgICAgRVhQRUNUX1NUUkVR
KCJoOm1tOnNzIGEiLCB0aW1lRm9ybWF0VGV4dChlbl9VUykudXRmOCgpLmRhdGEoKSk7CisgICAg
RVhQRUNUX1NUUkVRKCJISDptbTpzcyIsIHRpbWVGb3JtYXRUZXh0KGZyX0ZSKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkg6bW06c3MiLCB0aW1lRm9ybWF0VGV4dChqYV9KUCku
dXRmOCgpLmRhdGEoKSk7Cit9CisKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBzaG9ydFRpbWVGb3Jt
YXRUZXh0KQoreworICAgIEVYUEVDVF9TVFJFUSgiaDptbSBhIiwgc2hvcnRUaW1lRm9ybWF0VGV4
dChlbl9VUykudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJISDptbSIsIHNob3J0
VGltZUZvcm1hdFRleHQoZnJfRlIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgi
SDptbSIsIHNob3J0VGltZUZvcm1hdFRleHQoamFfSlApLnV0ZjgoKS5kYXRhKCkpOworfQorCitU
RVNUX0YoTG9jYWxlV2luVGVzdCwgdGltZUFNUE1MYWJlbHMpCit7CisgICAgRVhQRUNUX1NUUkVR
KCJBTSIsIHRpbWVBTVBNTGFiZWwoZW5fVVMsIDApLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVD
VF9TVFJFUSgiUE0iLCB0aW1lQU1QTUxhYmVsKGVuX1VTLCAxKS51dGY4KCkuZGF0YSgpKTsKKwor
ICAgIEVYUEVDVF9TVFJFUSgiQU0iLCB0aW1lQU1QTUxhYmVsKGZyX0ZSLCAwKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlBNIiwgdGltZUFNUE1MYWJlbChmcl9GUiwgMSkudXRm
OCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RTVceDhEXHg4OFx4RTVceDg5XHg4
RCIsIHRpbWVBTVBNTGFiZWwoamFfSlAsIDApLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiXHhFNVx4OERceDg4XHhFNVx4QkVceDhDIiwgdGltZUFNUE1MYWJlbChqYV9KUCwgMSku
dXRmOCgpLmRhdGEoKSk7Cit9CisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151413</attachid>
            <date>2012-07-10 01:00:34 -0700</date>
            <delta_ts>2012-07-10 01:33:11 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>bug-90236-20120710170033.patch</filename>
            <type>text/plain</type>
            <size>15643</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ0M2Q2M2Y4N2Q0ODhm
NmQ0YzY2OWI4MzY3ZTZlYWNjOTVhMjk1Yi4uOTU2Y2VkNGU0OTY5ZjNiZTBkNzhjOWExNDI1NWIx
MTdmMGFjOTZiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA3LTA5ICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLVdp
bmRvd3NdIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGxvY2FsaXplZCB0aW1lIGZvcm1hdCBpbmZv
cm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTAyMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGludHJvZHVjZXMgZm9sbG93aW5nIGxvY2FsaXplZCB0aW1lIGZvcm1hdCByZWxh
dGVkCisgICAgICAgIGZ1bmN0aW9uczoKKyAgICAgICAgICAgIC0gbG9jYWxpemVkVGltZUZvcm1h
dFRleHQKKyAgICAgICAgICAgIC0gbG9jYWxpemVTaG9ydFRpbWVGb3JtYXRUZXh0KCkKKyAgICAg
ICAgICAgIC0gdGltZUFNUE1MYWJlbHMKKyAgICAgICAgZm9yIFdpbmRvd3MgaW4gZmVhdHVyZSBm
bGFnOiBFTkFCTEVfSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUy4KKworICAgICAgICBT
ZWUgYWxzbzoKKyAgICAgICAgICBJQ1UgdmVyc2lvbjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5OTY1CisgICAgICAgICAgTWFjIHZlcnNpb246IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDIzNworCisgICAgICAgIFRlc3RzOiBXZWJL
aXQvY2hyb21pdW0vdGVzdHMvTG9jYWxXaW5UZXN0LmNwcAorCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9Mb2NhbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9EYXRl
VGltZUZpZWxkVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VXaW5kb3dzVGlt
ZUZvcm1hdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2luOjpsb2NhbGl6ZWRU
aW1lRm9ybWF0VGV4dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2luOjpsb2Nh
bGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bGVXaW46OnRpbWVBTVBNTGFiZWxzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9M
b2NhbGVXaW4uaDoKKyAgICAgICAgKExvY2FsZVdpbik6IEFkZGVkIHRpbWUgZm9ybWF0IHJlbGF0
ZWQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMuCisKIDIwMTItMDctMDkgIEtpcmFuIE11cHBhbGEg
IDxjbXVwcGFsYUBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wcm92ZSBwZXJmb3JtYW5jZSBvZiBS
ZW5kZXJJbmxpbmU6OmFic29sdXRlUXVhZHMgZm9yIGRlZXBseSBuZXN0ZWQgaW5saW5lcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNThkMTU3ODI0NzNlZTFmYjJkZTkyNzkzM2QxYjJi
N2YwOGNhYmFkMi4uNzc2MWQzMDY5ZDVhMGEwZTQ0Y2I3ODE1NzJiNTU0ZWVmNWVlODkxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNy0xMCAgWW9z
aGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bS1X
aW5kb3dzXSBJbXBsZW1lbnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5m
b3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTkwMjM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRlc3QgY2FzZXMgZm9yIGRhdGUgYW5kIHRpbWUgZm9ybWF0
IHJlbGF0ZWQKKyAgICAgICAgZnVuY3Rpb25zIGluIExvY2FsZVdpbi4KKworICAgICAgICAqIHRl
c3RzL0xvY2FsZVdpblRlc3QuY3BwOgorICAgICAgICAoTG9jYWxlV2luVGVzdCk6CisgICAgICAg
IChMb2NhbGVXaW5UZXN0OjpkYXRlQ29tcG9uZW50cyk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0
Ojptc0ZvckRhdGUpOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6Zm9ybWF0RGF0ZSk6CisgICAg
ICAgIChMb2NhbGVXaW5UZXN0OjpwYXJzZURhdGUpOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6
ZGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6Zmlyc3REYXlPZldlZWsp
OgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6bW9udGhMYWJlbCk6CisgICAgICAgIChMb2NhbGVX
aW5UZXN0Ojp3ZWVrRGF5U2hvcnRMYWJlbCk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0Ojp0aW1l
Rm9ybWF0VGV4dCk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0OjpzaG9ydFRpbWVGb3JtYXRUZXh0
KToKKyAgICAgICAgKExvY2FsZVdpblRlc3Q6OnRpbWVBTVBNTGFiZWwpOgorICAgICAgICAoVEVT
VF9GKToKKwogMjAxMi0wNy0wOSAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtDaHJvbWl1bS1NYWNdIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGxvY2Fs
aXplZCB0aW1lIGZvcm1hdCBpbmZvcm1hdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGVXaW4uY3BwCmluZGV4IDgyZjkyNzU1MTZmY2M1YmFjZGZmN2ZjZTVlNTYxNWQ1YmIy
ODE3ZmEuLmE0ODU1MzVkYmQ0YWRmZWZjYTkxMWUyMjI3NTY4MTFmODAzNTE0YTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTMyLDYgKzMyLDkgQEAK
ICNpbmNsdWRlICJMb2NhbGVXaW4uaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisjaW5jbHVkZSAiRGF0
ZVRpbWVGb3JtYXQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d2luZG93cy5oPgpAQCAtNTkwLDQgKzU5Myw4MiBA
QCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlV2luOjp3ZWVrRGF5U2hvcnRMYWJlbHMoKQog
fQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykK
K3N0YXRpYyBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIG1hcENoYXJhY3RlclRvRGF0ZVRpbWVG
aWVsZFR5cGUoVUNoYXIgY2gpCit7CisgICAgc3dpdGNoIChjaCkgeworICAgIGNhc2UgJ2gnOgor
ICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMjsKKworICAgIGNh
c2UgJ0gnOgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyNDsK
KworICAgIGNhc2UgJ20nOgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZU1pbnV0ZTsKKworICAgIGNhc2UgJ3MnOgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6
OkZpZWxkVHlwZVNlY29uZDsKKworICAgIGNhc2UgJ3QnOgorICAgICAgICByZXR1cm4gRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZDsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVy
biBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTGl0ZXJhbDsKKyAgICB9Cit9CisKKy8vIFRoaXMg
Y2xhc3MgdXNlZCBmb3IgY29udmVydGluZyBXaW5kb3dzIHRpbWUgcGF0dGVybiBmb3JtYXRbMV0g
aW50byBMRE1MWzJdCisvLyB0aW1lIGZvcm1hdCBzdHJpbmcuCisvLyBbMV0gaHR0cDovL21zZG4u
bWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9kZDMxODE0OCh2PXZz
Ljg1KS5hc3B4CisvLyBbMl0gTERNTCBodHRwOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3Ry
MzUtNi5odG1sI0RhdGVfRm9ybWF0X1BhdHRlcm5zCitzdGF0aWMgU3RyaW5nIHBhcnNlV2luZG93
c1RpbWVGb3JtYXQoY29uc3QgU3RyaW5nJiB3aW5kb3dzVGltZUZvcm1hdCkKK3sKKyAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgaW50IGNvdW50ZXIgPSAwOworICAgIGZvciAodW5zaWdu
ZWQgaW5kZXggPSAwOyBpbmRleCA8IHdpbmRvd3NUaW1lRm9ybWF0Lmxlbmd0aCgpOyArK2luZGV4
KSB7CisgICAgICAgIFVDaGFyIGNvbnN0IGNoID0gd2luZG93c1RpbWVGb3JtYXRbaV07CisgICAg
ICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRUeXBlID0gbWFwQ2hhcmFjdGVyVG9E
YXRlVGltZUZpZWxkVHlwZShjaCk7CisgICAgICAgIGlmIChmaWVsZFR5cGUgPT0gRGF0ZVRpbWVG
b3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWwpIHsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNo
KTsKKyAgICAgICAgfSBlbHNlIGlmIChmaWVsZFR5cGUgPT0gbGFzdEZpZWxkVHlwZSkgeworICAg
ICAgICAgICAgKytjb3VudGVyOworICAgICAgICAgICAgaWYgKGNvdW50ZXIgPT0gMiAmJiBsYXN0
RmllbGRUeXBlICE9IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2QpCisgICAgICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGxhc3RGaWVsZFR5cGUpKTsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0
PFVDaGFyPihsYXN0RmllbGRUeXBlKSk7CisgICAgICAgICAgICBjb3VudGVyID0gMTsKKyAgICAg
ICAgfQorICAgICAgICBsYXN0RmllbGRUeXBlID0gZmllbGRUeXBlOworICAgIH0KKyAgICByZXR1
cm4gYnVpbGRlci50b1N0cmluZygpOworfQorCitTdHJpbmcgTG9jYWxlV2luOjpsb2NhbGl6ZWRU
aW1lRm9ybWF0VGV4dCgpCit7CisgICAgaWYgKG1fdGltZUZvcm1hdFRleHQuaXNFbXB0eSgpKQor
ICAgICAgICBtX3RpbWVGb3JtYXRUZXh0ID0gcGFyc2VXaW5kb3dzVGltZUZvcm1hdChnZXRMb2Nh
bGVJbmZvU3RyaW5nKExPQ0FMX1NUSU1FRk9STUFUKSk7CisgICAgcmV0dXJuIG1fdGltZUZvcm1h
dFRleHQ7Cit9CisKK1N0cmluZyBMb2NhbGVXaW46OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRl
eHQoKQoreworICAgIGlmIChtX3Nob3J0VGltZUZvcm1hdFRleHQuaXNFbXB0eSgpKSB7CisgICAg
ICAgIC8vIE5vdGU6IExPQ0FMRV9TU0hPUlRUSU1FIGlzIGF2YWlsYWJsZSBmb3IgV2luZG93cyA3
IGFuZCBsYXRlci4KKyAgICAgICAgbV9zaG9ydFRpbWVGb3JtYXRUZXh0ID0gcGFyc2VXaW5kb3dz
VGltZUZvcm1hdChnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TU0hPUlRUSU1FKSk7CisgICAg
ICAgIGlmIChtX3Nob3J0VGltZUZvcm1hdFRleHQuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9z
aG9ydFRpbWVGb3JtYXRUZXh0ID0gbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOworICAg
IH0KKyAgICByZXR1cm4gbV9zaG9ydFRpbWVGb3JtYXQ7Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJp
bmc+JiBMb2NhbGVXaW46OnRpbWVBTVBNTGFiZWxzKCkKK3sKKyAgICBpZiAobV90aW1lQU1QTUxh
YmVscy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV90aW1lQU1QTUxhYmVscy5hcHBlbmQoZ2V0TG9j
YWxlSW5mb1N0cmluZyhMT0NBTEVfUzExNTkoKSk7CisgICAgICAgIG1fdGltZUFNUE1MYWJlbHMu
YXBwZW5kKGdldExvY2FsZUluZm9TdHJpbmcoTE9DQUxFX1MyMzU5KCkpOworICAgIH0KKyAgICBy
ZXR1cm4gbV90aW1lQU1QTUxhYmVscygpOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5oCmluZGV4IDZhNzVjOTk0NTU3ZjU3MGE5OGNiZjdmNjA5
YjQ1NmYzZGNlMjNjNDQuLjBkNTZhYTJjYzg0M2I0NjA1OGQ4ZWMzZjEzYTVmZGZlMWVjM2IwNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaApAQCAtNTQsNiArNTQs
MTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCkgeyByZXR1cm4gbV9m
aXJzdERheU9mV2VlazsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01V
TFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcgbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKTsKKyAg
ICBTdHJpbmcgbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOworICAgIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygpOworI2VuZGlmCisKICAgICAvLyBGb3IgdGVzdGlu
Zy4KICAgICBkb3VibGUgcGFyc2VEYXRlKGNvbnN0IFN0cmluZyYgZm9ybWF0LCBpbnQgYmFzZVll
YXIsIGNvbnN0IFN0cmluZyYgaW5wdXQpOwogICAgIFN0cmluZyBmb3JtYXREYXRlKGNvbnN0IFN0
cmluZyYgZm9ybWF0LCBpbnQgYmFzZVllYXIsIGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkp
OwpAQCAtODEsNyArODcsMTEgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3dlZWtE
YXlTaG9ydExhYmVsczsKICAgICB1bnNpZ25lZCBtX2ZpcnN0RGF5T2ZXZWVrOwogI2VuZGlmCi0K
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcg
bV90aW1lRm9ybWF0VGV4dDsKKyAgICBTdHJpbmcgbV9zaG9ydFRpbWVGb3JtYXRUZXh0OworICAg
IFZlY3RvcjxTdHJpbmc+IG1fdGltZUFNUE1MYWJlbHM7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlV2luVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZVdpblRlc3QuY3BwCmluZGV4IGQ2NGU5
MDJhNTVjNGJiMmI0Njk0MWJkOTZkMThhM2RlOGQ0MTc3ODkuLjlmMGIyOTRjMTdlNGRmN2IyNzhk
NzMzNWQwMDM0NTExMmJjMDk3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvTG9jYWxlV2luVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9Mb2NhbGVXaW5UZXN0LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkxvY2FsZVdpbi5oIgogCisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIK
ICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC00MCwxOSArNDEsMTAwIEBACiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLWVudW0gewotICAgIEphbnVh
cnkgPSAwLCBGZWJydWFyeSwgTWFyY2gsCi0gICAgQXByaWwsIE1heSwgSnVuZSwKLSAgICBKdWx5
LCBBdWd1c3QsIFNlcHRlbWJlciwKLSAgICBPY3RvYmVyLCBOb3ZlbWJlciwgRGVjZW1iZXIsCi19
OworY2xhc3MgTG9jYWxlV2luVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHJvdGVj
dGVkOgorICAgIGVudW0geworICAgICAgICBKYW51YXJ5ID0gMCwgRmVicnVhcnksIE1hcmNoLAor
ICAgICAgICBBcHJpbCwgTWF5LCBKdW5lLAorICAgICAgICBKdWx5LCBBdWd1c3QsIFNlcHRlbWJl
ciwKKyAgICAgICAgT2N0b2JlciwgTm92ZW1iZXIsIERlY2VtYmVyLAorICAgIH07CiAKLXN0YXRp
YyBkb3VibGUgbXNGb3JEYXRlKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpCi17Ci0gICAg
cmV0dXJuIGRhdGVUb0RheXNGcm9tMTk3MCh5ZWFyLCBtb250aCwgZGF5KSAqIG1zUGVyRGF5Owot
fQorICAgIGVudW0geworICAgICAgICBTdW5kYXkgPSAwLCBNb25kYXksIFR1ZXNkYXksCisgICAg
ICAgIFdlZG5lc2RheSwgVGh1cnNkYXksIEZyaWRheSwKKyAgICAgICAgU2F0dXJkYXksCisgICAg
fTsKKworICAgIC8vIFNlZSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2dvZ2xvYmFs
L2JiOTY0NjY0LmFzcHgKKyAgICBlbnVtIHsKKyAgICAgICAgZW5fVVMgPSAweDQwOSwKKyAgICAg
ICAgZnJfRlIgPSAweDQwQywKKyAgICAgICAgamFfSlAgPSAweDQxMSwKKyAgICB9OworCisgICAg
RGF0ZUNvbXBvbmVudHMgZGF0ZUNvbXBvbmVudHMoaW50IHllYXIsIGludCBtb250aCwgaW50IGRh
eSkKKyAgICB7CisgICAgICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgICAgIGRhdGUuc2V0
TWlsbGlzZWNvbmRzU2luY2VFcG9jaEZvckRhdGUobXNGb3JEYXRlKHllYXIsIG1vbnRoLCBkYXkp
KTsKKyAgICAgICAgcmV0dXJuIGRhdGU7CisgICAgfQorCisgICAgZG91YmxlIG1zRm9yRGF0ZShp
bnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRhdGVU
b0RheXNGcm9tMTk3MCh5ZWFyLCBtb250aCwgZGF5KSAqIG1zUGVyRGF5OworICAgIH0KKworICAg
IFN0cmluZyBmb3JtYXREYXRlKExDSUQgbGNpZCwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRh
eSkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6
Y3JlYXRlKGxjaWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5mb3JtYXREYXRlKGRhdGVDb21w
b25lbnRzKHllYXIsIG1vbnRoLCBkYXkpKTsKKyAgICB9CisKKyAgICBkb3VibGUgcGFyc2VEYXRl
KExDSUQgbGNpZCwgY29uc3QgU3RyaW5nJiBkYXRlU3RyaW5nKQorICAgIHsKKyAgICAgICAgT3du
UHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAgICAg
IHJldHVybiBsb2NhbGUtPnBhcnNlRGF0ZShkYXRlU3RyaW5nKTsKKyAgICB9CisKKyNpZiBFTkFC
TEUoQ0FMRU5EQVJfUElDS0VSKQorICAgIFN0cmluZyBkYXRlRm9ybWF0VGV4dChMQ0lEIGxjaWQp
CisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNy
ZWF0ZShsY2lkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+ZGF0ZUZvcm1hdFRleHQoKTsKKyAg
ICB9CisKKyAgICB1bnNpZ25lZCBmaXJzdERheU9mV2VlayhMQ0lEIGxjaWQpCisgICAgeworICAg
ICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsK
KyAgICAgICAgcmV0dXJuIGxvY2FsZS0+Zmlyc3REYXlPZldlZWsoKTsKKyAgICB9CisKKyAgICBT
dHJpbmcgbW9udGhMYWJlbChMQ0lEIGxjaWQsIHVuc2lnbmVkIGluZGV4KQorICAgIHsKKyAgICAg
ICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7Cisg
ICAgICAgIHJldHVybiBsb2NhbGUtPm1vbnRoTGFiZWxzKClbaW5kZXhdOworICAgIH0KKworICAg
IFN0cmluZyB3ZWVrRGF5U2hvcnRMYWJlbChMQ0lEIGxjaWQsIHVuc2lnbmVkIGluZGV4KQorICAg
IHsKKyAgICAgICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUo
bGNpZCk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPndlZWtEYXlTaG9ydExhYmVscygpW2luZGV4
XTsKKyAgICB9CisjZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVf
RklFTERTKQorICAgIFN0cmluZyB0aW1lRm9ybWF0VGV4dChMQ0lEIGxjaWQpCisgICAgeworICAg
ICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsK
KyAgICAgICAgcmV0dXJuIGxvY2FsZS0+dGltZUZvcm1hdFRleHQoKTsKKyAgICB9CiAKLVRFU1Qo
TG9jYWxlV2luVGVzdCwgVGVzdExvY2FsaXplZERhdGVGb3JtYXRUZXh0KQorICAgIFN0cmluZyBz
aG9ydFRpbWVGb3JtYXRUZXh0KExDSUQgbGNpZCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2Nh
bGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQpOworICAgICAgICByZXR1cm4g
bG9jYWxlLT5zaG9ydFRpbWVGb3JtYXRUZXh0KCk7CisgICAgfQorCisgICAgU3RyaW5nIHRpbWVB
TVBNTGFiZWwoTENJRCBsY2lkLCB1bnNpZ25lZCBpbmRleCkKKyAgICB7CisgICAgICAgIE93blB0
cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQpOworICAgICAgICBy
ZXR1cm4gbG9jYWxlLT50aW1lQU1QTUxhYmVscygpW2luZGV4XTsKKyAgICB9CisjZW5kaWYKK307
CisKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBUZXN0TG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpCiB7
CiAgICAgRVhQRUNUX1NUUkVRKCJ5ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1h
dFRleHQoInkvTS9kIiwgInllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7CiAg
ICAgRVhQRUNUX1NUUkVRKCJ5ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRl
eHQoInl5L01NL2RkIiwgInllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7CkBA
IC02NiwxMCArMTQ4LDkgQEAgVEVTVChMb2NhbGVXaW5UZXN0LCBUZXN0TG9jYWxpemVkRGF0ZUZv
cm1hdFRleHQpCiAgICAgRVhQRUNUX1NUUkVRKCJZWS9tbS9ERCIsIExvY2FsZVdpbjo6ZGF0ZUZv
cm1hdFRleHQoIllZL21tL0REIiwgInllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEo
KSk7CiB9CiAKLVRFU1QoTG9jYWxlV2luVGVzdCwgVGVzdEZvcm1hdCkKK1RFU1RfRihMb2NhbGVX
aW5UZXN0LCBUZXN0Rm9ybWF0KQogewotICAgIGNvbnN0IExDSUQgRW5nbGlzaFVTID0gMHgwNDA5
OwotICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKEVuZ2xp
c2hVUyk7CisgICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUo
ZW5fVVMpOwogCiAgICAgRVhQRUNUX1NUUkVRKCI0LzcvMiIsIGxvY2FsZS0+Zm9ybWF0RGF0ZSgi
TS9kL3kiLCAyMDEyLCAyMDEyLCBBcHJpbCwgNykudXRmOCgpLmRhdGEoKSk7CiAgICAgRVhQRUNU
X1NUUkVRKCI0LzcvMjAwNyIsIGxvY2FsZS0+Zm9ybWF0RGF0ZSgiTS9kL3kiLCAyMDEyLCAyMDA3
LCBBcHJpbCwgNykudXRmOCgpLmRhdGEoKSk7CkBAIC0xMjYsMTAgKzIwNyw5IEBAIFRFU1QoTG9j
YWxlV2luVGVzdCwgVGVzdEZvcm1hdCkKICAgICAKIH0KIAotVEVTVChMb2NhbGVXaW5UZXN0LCBU
ZXN0UGFyc2UpCitURVNUX0YoTG9jYWxlV2luVGVzdCwgVGVzdFBhcnNlKQogewotICAgIGNvbnN0
IExDSUQgRW5nbGlzaFVTID0gMHgwNDA5OwotICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9
IExvY2FsZVdpbjo6Y3JlYXRlKEVuZ2xpc2hVUyk7CisgICAgT3duUHRyPExvY2FsZVdpbj4gbG9j
YWxlID0gTG9jYWxlV2luOjpjcmVhdGUoZW5fVVMpOwogCiAgICAgRVhQRUNUX0VRKG1zRm9yRGF0
ZSgyMDEyLCBBcHJpbCwgMjcpLCBsb2NhbGUtPnBhcnNlRGF0ZSgiTU0vZGQveXkiLCAyMDEyLCAi
MDQvMjcvMTIiKSk7CiAgICAgRVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDYyLCBBcHJpbCwgMjcpLCBs
b2NhbGUtPnBhcnNlRGF0ZSgiTU0vZGQveXkiLCAyMDEyLCAiMDQvMjcvNjIiKSk7CkBAIC0xNjEs
MyArMjQxLDkxIEBAIFRFU1QoTG9jYWxlV2luVGVzdCwgVGVzdFBhcnNlKQogICAgIEVYUEVDVF9U
UlVFKGlzbmFuKGxvY2FsZS0+cGFyc2VEYXRlKCJNTU1NL2QveSIsIDIwMTIsICJOb3ZlbWJlciAz
MiAyIikpKTsKICAgICBFWFBFQ1RfVFJVRShpc25hbihsb2NhbGUtPnBhcnNlRGF0ZSgiTU1NTS9k
L3kiLCAyMDEyLCAiLTEvLTEvLTEiKSkpOwogfQorCitURVNUX0YoTG9jYWxlV2luVGVzdCwgZm9y
bWF0RGF0ZSkKK3sKKyAgICBFWFBFQ1RfU1RSRVEoIjQvMjcvMjAwNSIsIGZvcm1hdERhdGUoZW5f
VVMsIDIwMDUsIEFwcmlsLCAyNykudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIy
Ny8wNC8yMDA1IiwgZm9ybWF0RGF0ZShmcl9GUiwgMjAwNSwgQXByaWwsIDI3KS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjIwMDUvMDQvMjciLCBmb3JtYXREYXRlKGphX0pQLCAy
MDA1LCBBcHJpbCwgMjcpLnV0ZjgoKS5kYXRhKCkpOworfQorCitURVNUX0YoTG9jYWxlV2luVGVz
dCwgcGFyc2VEYXRlKQoreworICAgIEVYUEVDVF9FUShtc0ZvckRhdGUoMjAwNSwgQXByaWwsIDI3
KSwgcGFyc2VEYXRlKGVuX1VTLCAiQXByaWwvMjcvMjAwNSIpKTsKKyAgICBFWFBFQ1RfRVEobXNG
b3JEYXRlKDIwMDUsIEFwcmlsLCAyNyksIHBhcnNlRGF0ZShmcl9GUiwgIjI3L2F2cmlsLzIwMDUi
KSk7CisgICAgRVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDA1LCBBcHJpbCwgMjcpLCBwYXJzZURhdGUo
amFfSlAsICIyMDA1LzA0LzI3IikpOworfQorCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikK
K1RFU1RfRihMb2NhbGVXaW5UZXN0LCBkYXRlRm9ybWF0VGV4dCkKK3sKKyAgICBFWFBFQ1RfU1RS
RVEoIk1vbnRoL0RheS9ZZWFyIiwgZGF0ZUZvcm1hdFRleHQoZW5fVVMpLnV0ZjgoKS5kYXRhKCkp
OworICAgIEVYUEVDVF9TVFJFUSgiRGF5L01vbnRoL1llYXIiLCBkYXRlRm9ybWF0VGV4dChmcl9G
UikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJZZWFyL01vbnRoL0RheSIsIGRh
dGVGb3JtYXRUZXh0KGphX0pQKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdp
blRlc3QsIGZpcnN0RGF5T2ZXZWVrKQoreworICAgIEVYUEVDVF9FUShTdW5kYXksIGZpcnN0RGF5
T2ZXZWVrKGVuX1VTKSk7CisgICAgRVhQRUNUX0VRKE1vbmRheSwgZmlyc3REYXlPZldlZWsoZnJf
RlIpKTsKKyAgICBFWFBFQ1RfRVEoU3VuZGF5LCBmaXJzdERheU9mV2VlayhqYV9KUCkpOworfQor
CitURVNUX0YoTG9jYWxlV2luVGVzdCwgbW9udGhMYWJlbHMpCit7CisgICAgRVhQRUNUX1NUUkVR
KCJKYW51YXJ5IiwgbW9udGhMYWJlbChlbl9VUywgSmFudWFyeSkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgRVhQRUNUX1NUUkVRKCJKdW5lIiwgbW9udGhMYWJlbChlbl9VUywgSnVuZSkudXRmOCgpLmRh
dGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJEZWNlbWJlciIsIG1vbnRoTGFiZWwoZW5fVVMsIERl
Y2VtYmVyKS51dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiamFudmllciIsIG1v
bnRoTGFiZWwoZnJfRlIsIEphbnVhcnkpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgianVpbiIsIG1vbnRoTGFiZWwoZnJfRlIsIEp1bmUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVY
UEVDVF9TVFJFUSgiZFx4QzNceEE5IiAiY2VtYnJlIiwgbW9udGhMYWJlbChmcl9GUiwgRGVjZW1i
ZXIpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCIxXHhFNlx4OUNceDg4Iiwg
bW9udGhMYWJlbChqYV9KUCwgSmFudWFyeSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCI2XHhFNlx4OUNceDg4IiwgbW9udGhMYWJlbChqYV9KUCwgSnVuZSkudXRmOCgpLmRhdGEo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCIxMlx4RTZceDlDXHg4OCIsIG1vbnRoTGFiZWwoamFfSlAs
IERlY2VtYmVyKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIHdl
ZWtEYXlTaG9ydExhYmVscykKK3sKKyAgICBFWFBFQ1RfU1RSRVEoIlN1biIsIHdlZWtEYXlTaG9y
dExhYmVsKGVuX1VTLCBTdW5kYXkpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgi
V2VkIiwgd2Vla0RheVNob3J0TGFiZWwoZW5fVVMsIFdlZG5lc2RheSkudXRmOCgpLmRhdGEoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJTYXQiLCB3ZWVrRGF5U2hvcnRMYWJlbChlbl9VUywgU2F0dXJk
YXkpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCJkaW0uIiwgd2Vla0RheVNo
b3J0TGFiZWwoZnJfRlIsIFN1bmRheSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVR
KCJtZXIuIiwgd2Vla0RheVNob3J0TGFiZWwoZnJfRlIsIFdlZG5lc2RheSkudXRmOCgpLmRhdGEo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJzYW0uIiwgd2Vla0RheVNob3J0TGFiZWwoZnJfRlIsIFNh
dHVyZGF5KS51dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiXHhFNlx4OTdceEE1
Iiwgd2Vla0RheVNob3J0TGFiZWwoamFfSlAsIFN1bmRheSkudXRmOCgpLmRhdGEoKSk7CisgICAg
RVhQRUNUX1NUUkVRKCJceEU2XHhCMFx4QjQiLCB3ZWVrRGF5U2hvcnRMYWJlbChqYV9KUCwgV2Vk
bmVzZGF5KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RTVceDlDXHg5RiIs
IHdlZWtEYXlTaG9ydExhYmVsKGphX0pQLCBTYXR1cmRheSkudXRmOCgpLmRhdGEoKSk7Cit9Cisj
ZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorVEVT
VF9GKExvY2FsZVdpblRlc3QsIHRpbWVGb3JtYXRUZXh0KQoreworICAgIEVYUEVDVF9TVFJFUSgi
aDptbTpzcyBhIiwgdGltZUZvcm1hdFRleHQoZW5fVVMpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVY
UEVDVF9TVFJFUSgiSEg6bW06c3MiLCB0aW1lRm9ybWF0VGV4dChmcl9GUikudXRmOCgpLmRhdGEo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJIOm1tOnNzIiwgdGltZUZvcm1hdFRleHQoamFfSlApLnV0
ZjgoKS5kYXRhKCkpOworfQorCitURVNUX0YoTG9jYWxlV2luVGVzdCwgc2hvcnRUaW1lRm9ybWF0
VGV4dCkKK3sKKyAgICBFWFBFQ1RfU1RSRVEoImg6bW0gYSIsIHNob3J0VGltZUZvcm1hdFRleHQo
ZW5fVVMpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiSEg6bW0iLCBzaG9ydFRp
bWVGb3JtYXRUZXh0KGZyX0ZSKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkg6
bW0iLCBzaG9ydFRpbWVGb3JtYXRUZXh0KGphX0pQKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVT
VF9GKExvY2FsZVdpblRlc3QsIHRpbWVBTVBNTGFiZWxzKQoreworICAgIEVYUEVDVF9TVFJFUSgi
QU0iLCB0aW1lQU1QTUxhYmVsKGVuX1VTLCAwKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoIlBNIiwgdGltZUFNUE1MYWJlbChlbl9VUywgMSkudXRmOCgpLmRhdGEoKSk7CisKKyAg
ICBFWFBFQ1RfU1RSRVEoIkFNIiwgdGltZUFNUE1MYWJlbChmcl9GUiwgMCkudXRmOCgpLmRhdGEo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJQTSIsIHRpbWVBTVBNTGFiZWwoZnJfRlIsIDEpLnV0Zjgo
KS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCJceEU1XHg4RFx4ODhceEU1XHg4OVx4OEQi
LCB0aW1lQU1QTUxhYmVsKGphX0pQLCAwKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIlx4RTVceDhEXHg4OFx4RTVceEJFXHg4QyIsIHRpbWVBTVBNTGFiZWwoamFfSlAsIDEpLnV0
ZjgoKS5kYXRhKCkpOworfQorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151418</attachid>
            <date>2012-07-10 01:33:15 -0700</date>
            <delta_ts>2012-07-10 22:20:07 -0700</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-90236-20120710173314.patch</filename>
            <type>text/plain</type>
            <size>16597</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ0M2Q2M2Y4N2Q0ODhm
NmQ0YzY2OWI4MzY3ZTZlYWNjOTVhMjk1Yi4uMTFiNTNjMDAyZTU3ZGZiNDhlNWM0YzM3Y2QyMjBm
MjY5MWEzN2E3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA3LTEwICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLVdp
bmRvd3NdIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGxvY2FsaXplZCB0aW1lIGZvcm1hdCBpbmZv
cm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTAyMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGludHJvZHVjZXMgZm9sbG93aW5nIGxvY2FsaXplZCB0aW1lIGZvcm1hdCByZWxh
dGVkCisgICAgICAgIGZ1bmN0aW9uczoKKyAgICAgICAgICAgIC0gbG9jYWxpemVkVGltZUZvcm1h
dFRleHQKKyAgICAgICAgICAgIC0gbG9jYWxpemVTaG9ydFRpbWVGb3JtYXRUZXh0KCkKKyAgICAg
ICAgICAgIC0gdGltZUFNUE1MYWJlbHMKKyAgICAgICAgZm9yIFdpbmRvd3MgaW4gZmVhdHVyZSBm
bGFnOiBFTkFCTEVfSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUy4KKworICAgICAgICBT
ZWUgYWxzbzoKKyAgICAgICAgICBJQ1UgdmVyc2lvbjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5OTY1CisgICAgICAgICAgTWFjIHZlcnNpb246IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDIzNworCisgICAgICAgIFRlc3RzOiBXZWJL
aXQvY2hyb21pdW0vdGVzdHMvTG9jYWxXaW5UZXN0LmNwcAorCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9Mb2NhbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9EYXRl
VGltZUZpZWxkVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VXaW5kb3dzVGlt
ZUZvcm1hdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2luOjpsb2NhbGl6ZWRU
aW1lRm9ybWF0VGV4dCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlV2luOjpsb2Nh
bGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2Nh
bGVXaW46OnRpbWVBTVBNTGFiZWxzKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9M
b2NhbGVXaW4uaDoKKyAgICAgICAgKExvY2FsZVdpbik6IEFkZGVkIHRpbWUgZm9ybWF0IHJlbGF0
ZWQgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2Nh
bGl6ZWREYXRlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFRpbWVGb3JtYXRU
ZXh0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpsb2NhbGl6ZWRTaG9ydFRpbWVGb3JtYXRU
ZXh0KTogIEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6dGltZUFNUE1MYWJlbHMpOiAgQWRkZWQu
CisKIDIwMTItMDctMDkgIEtpcmFuIE11cHBhbGEgIDxjbXVwcGFsYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgSW1wcm92ZSBwZXJmb3JtYW5jZSBvZiBSZW5kZXJJbmxpbmU6OmFic29sdXRlUXVhZHMg
Zm9yIGRlZXBseSBuZXN0ZWQgaW5saW5lcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NThkMTU3ODI0NzNlZTFmYjJkZTkyNzkzM2QxYjJiN2YwOGNhYmFkMi4uNzc2MWQzMDY5ZDVhMGEw
ZTQ0Y2I3ODE1NzJiNTU0ZWVmNWVlODkxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOCBAQAorMjAxMi0wNy0xMCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bS1XaW5kb3dzXSBJbXBsZW1lbnQgZnVuY3Rpb25z
IGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjM2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHRlc3Qg
Y2FzZXMgZm9yIGRhdGUgYW5kIHRpbWUgZm9ybWF0IHJlbGF0ZWQKKyAgICAgICAgZnVuY3Rpb25z
IGluIExvY2FsZVdpbi4KKworICAgICAgICAqIHRlc3RzL0xvY2FsZVdpblRlc3QuY3BwOgorICAg
ICAgICAoTG9jYWxlV2luVGVzdCk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0OjpkYXRlQ29tcG9u
ZW50cyk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0Ojptc0ZvckRhdGUpOgorICAgICAgICAoTG9j
YWxlV2luVGVzdDo6Zm9ybWF0RGF0ZSk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0OjpwYXJzZURh
dGUpOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6ZGF0ZUZvcm1hdFRleHQpOgorICAgICAgICAo
TG9jYWxlV2luVGVzdDo6Zmlyc3REYXlPZldlZWspOgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6
bW9udGhMYWJlbCk6CisgICAgICAgIChMb2NhbGVXaW5UZXN0Ojp3ZWVrRGF5U2hvcnRMYWJlbCk6
CisgICAgICAgIChMb2NhbGVXaW5UZXN0Ojp0aW1lRm9ybWF0VGV4dCk6CisgICAgICAgIChMb2Nh
bGVXaW5UZXN0OjpzaG9ydFRpbWVGb3JtYXRUZXh0KToKKyAgICAgICAgKExvY2FsZVdpblRlc3Q6
OnRpbWVBTVBNTGFiZWwpOgorICAgICAgICAoVEVTVF9GKToKKwogMjAxMi0wNy0wOSAgWW9zaGlm
dW1pIElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bS1NYWNd
IEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGxvY2FsaXplZCB0aW1lIGZvcm1hdCBpbmZvcm1hdGlv
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCmluZGV4IDgyZjky
NzU1MTZmY2M1YmFjZGZmN2ZjZTVlNTYxNWQ1YmIyODE3ZmEuLmE0ODU1MzVkYmQ0YWRmZWZjYTkx
MWUyMjI3NTY4MTFmODAzNTE0YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsZVdpbi5jcHAKQEAgLTMyLDYgKzMyLDkgQEAKICNpbmNsdWRlICJMb2NhbGVXaW4uaCIKIAog
I2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9N
VUxUSVBMRV9GSUVMRFMpCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKKyNlbmRpZgogI2lu
Y2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8
d2luZG93cy5oPgpAQCAtNTkwLDQgKzU5Myw4MiBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9j
YWxlV2luOjp3ZWVrRGF5U2hvcnRMYWJlbHMoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKK3N0YXRpYyBEYXRlVGltZUZvcm1hdDo6Rmll
bGRUeXBlIG1hcENoYXJhY3RlclRvRGF0ZVRpbWVGaWVsZFR5cGUoVUNoYXIgY2gpCit7CisgICAg
c3dpdGNoIChjaCkgeworICAgIGNhc2UgJ2gnOgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUhvdXIxMjsKKworICAgIGNhc2UgJ0gnOgorICAgICAgICByZXR1cm4gRGF0
ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyNDsKKworICAgIGNhc2UgJ20nOgorICAgICAgICBy
ZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZTsKKworICAgIGNhc2UgJ3MnOgor
ICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZDsKKworICAgIGNh
c2UgJ3QnOgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZDsK
KworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
TGl0ZXJhbDsKKyAgICB9Cit9CisKKy8vIFRoaXMgY2xhc3MgdXNlZCBmb3IgY29udmVydGluZyBX
aW5kb3dzIHRpbWUgcGF0dGVybiBmb3JtYXRbMV0gaW50byBMRE1MWzJdCisvLyB0aW1lIGZvcm1h
dCBzdHJpbmcuCisvLyBbMV0gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5
L3dpbmRvd3MvZGVza3RvcC9kZDMxODE0OCh2PXZzLjg1KS5hc3B4CisvLyBbMl0gTERNTCBodHRw
Oi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3RyMzUtNi5odG1sI0RhdGVfRm9ybWF0X1BhdHRl
cm5zCitzdGF0aWMgU3RyaW5nIHBhcnNlV2luZG93c1RpbWVGb3JtYXQoY29uc3QgU3RyaW5nJiB3
aW5kb3dzVGltZUZvcm1hdCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgaW50
IGNvdW50ZXIgPSAwOworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHdpbmRv
d3NUaW1lRm9ybWF0Lmxlbmd0aCgpOyArK2luZGV4KSB7CisgICAgICAgIFVDaGFyIGNvbnN0IGNo
ID0gd2luZG93c1RpbWVGb3JtYXRbaV07CisgICAgICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGUgZmllbGRUeXBlID0gbWFwQ2hhcmFjdGVyVG9EYXRlVGltZUZpZWxkVHlwZShjaCk7CisgICAg
ICAgIGlmIChmaWVsZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWwpIHsK
KyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNoKTsKKyAgICAgICAgfSBlbHNlIGlmIChmaWVs
ZFR5cGUgPT0gbGFzdEZpZWxkVHlwZSkgeworICAgICAgICAgICAgKytjb3VudGVyOworICAgICAg
ICAgICAgaWYgKGNvdW50ZXIgPT0gMiAmJiBsYXN0RmllbGRUeXBlICE9IERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVQZXJpb2QpCisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RhdGlj
X2Nhc3Q8VUNoYXI+KGxhc3RGaWVsZFR5cGUpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihsYXN0RmllbGRUeXBlKSk7Cisg
ICAgICAgICAgICBjb3VudGVyID0gMTsKKyAgICAgICAgfQorICAgICAgICBsYXN0RmllbGRUeXBl
ID0gZmllbGRUeXBlOworICAgIH0KKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworfQor
CitTdHJpbmcgTG9jYWxlV2luOjpsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgaWYg
KG1fdGltZUZvcm1hdFRleHQuaXNFbXB0eSgpKQorICAgICAgICBtX3RpbWVGb3JtYXRUZXh0ID0g
cGFyc2VXaW5kb3dzVGltZUZvcm1hdChnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMX1NUSU1FRk9S
TUFUKSk7CisgICAgcmV0dXJuIG1fdGltZUZvcm1hdFRleHQ7Cit9CisKK1N0cmluZyBMb2NhbGVX
aW46OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQoKQoreworICAgIGlmIChtX3Nob3J0VGlt
ZUZvcm1hdFRleHQuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIE5vdGU6IExPQ0FMRV9TU0hPUlRU
SU1FIGlzIGF2YWlsYWJsZSBmb3IgV2luZG93cyA3IGFuZCBsYXRlci4KKyAgICAgICAgbV9zaG9y
dFRpbWVGb3JtYXRUZXh0ID0gcGFyc2VXaW5kb3dzVGltZUZvcm1hdChnZXRMb2NhbGVJbmZvU3Ry
aW5nKExPQ0FMRV9TU0hPUlRUSU1FKSk7CisgICAgICAgIGlmIChtX3Nob3J0VGltZUZvcm1hdFRl
eHQuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9zaG9ydFRpbWVGb3JtYXRUZXh0ID0gbG9jYWxp
emVkU2hvcnRUaW1lRm9ybWF0VGV4dCgpOworICAgIH0KKyAgICByZXR1cm4gbV9zaG9ydFRpbWVG
b3JtYXQ7Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiBMb2NhbGVXaW46OnRpbWVBTVBNTGFi
ZWxzKCkKK3sKKyAgICBpZiAobV90aW1lQU1QTUxhYmVscy5pc0VtcHR5KCkpIHsKKyAgICAgICAg
bV90aW1lQU1QTUxhYmVscy5hcHBlbmQoZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NBTEVfUzExNTko
KSk7CisgICAgICAgIG1fdGltZUFNUE1MYWJlbHMuYXBwZW5kKGdldExvY2FsZUluZm9TdHJpbmco
TE9DQUxFX1MyMzU5KCkpOworICAgIH0KKyAgICByZXR1cm4gbV90aW1lQU1QTUxhYmVscygpOwor
fQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxlV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5oCmlu
ZGV4IDZhNzVjOTk0NTU3ZjU3MGE5OGNiZjdmNjA5YjQ1NmYzZGNlMjNjNDQuLjBkNTZhYTJjYzg0
M2I0NjA1OGQ4ZWMzZjEzYTVmZGZlMWVjM2IwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGVXaW4uaApAQCAtNTQsNiArNTQsMTIgQEAgcHVibGljOgogICAgIHVuc2lnbmVk
IGZpcnN0RGF5T2ZXZWVrKCkgeyByZXR1cm4gbV9maXJzdERheU9mV2VlazsgfQogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcg
bG9jYWxpemVkVGltZUZvcm1hdFRleHQoKTsKKyAgICBTdHJpbmcgbG9jYWxpemVkU2hvcnRUaW1l
Rm9ybWF0VGV4dCgpOworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygp
OworI2VuZGlmCisKICAgICAvLyBGb3IgdGVzdGluZy4KICAgICBkb3VibGUgcGFyc2VEYXRlKGNv
bnN0IFN0cmluZyYgZm9ybWF0LCBpbnQgYmFzZVllYXIsIGNvbnN0IFN0cmluZyYgaW5wdXQpOwog
ICAgIFN0cmluZyBmb3JtYXREYXRlKGNvbnN0IFN0cmluZyYgZm9ybWF0LCBpbnQgYmFzZVllYXIs
IGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpOwpAQCAtODEsNyArODcsMTEgQEAgcHJpdmF0
ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX3dlZWtEYXlTaG9ydExhYmVsczsKICAgICB1bnNpZ25l
ZCBtX2ZpcnN0RGF5T2ZXZWVrOwogI2VuZGlmCi0KKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1F
X01VTFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcgbV90aW1lRm9ybWF0VGV4dDsKKyAgICBTdHJp
bmcgbV9zaG9ydFRpbWVGb3JtYXRUZXh0OworICAgIFZlY3RvcjxTdHJpbmc+IG1fdGltZUFNUE1M
YWJlbHM7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxpemVkRGF0ZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsaXplZERhdGVXaW4uY3BwCmluZGV4IGJkOGYzNjdmM2E1ZGMxYjg5YzVkNzhlMDJl
NWUzNDdhZmM4NDdhYjUuLjUxYzczMzBhMGEwNjE0NzY1MmJkNmIxMDllMTM3N2MxOWVkNzNhNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlV2lu
LmNwcApAQCAtOTIsNCArOTIsMjEgQEAgdW5zaWduZWQgZmlyc3REYXlPZldlZWsoKQogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKK1N0cmlu
ZyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgcmV0dXJuIExvY2FsZVdpbjo6Y3Vy
cmVudExvY2FsZSgpLT50aW1lRm9ybWF0VGV4dCgpOworfQorCitTdHJpbmcgbG9jYWxpemVkU2hv
cnRUaW1lRm9ybWF0VGV4dCgpCit7CisgICAgcmV0dXJuIExvY2FsZVdpbjo6Y3VycmVudExvY2Fs
ZSgpLT5zaG9ydFRpbWVGb3JtYXRUZXh0KCk7Cit9CisKK2NvbnN0IFZlY3RvcjxTdHJpbmc+JiB0
aW1lQU1QTUxhYmVscygpCit7CisgICAgcmV0dXJuIExvY2FsZVdpbjo6Y3VycmVudExvY2FsZSgp
LT50aW1lQU1QTUxhYmVscygpOworfQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlV2luVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0xvY2FsZVdpblRlc3QuY3BwCmluZGV4IGQ2NGU5MDJhNTVjNGJiMmI0Njk0
MWJkOTZkMThhM2RlOGQ0MTc3ODkuLjlmMGIyOTRjMTdlNGRmN2IyNzhkNzMzNWQwMDM0NTExMmJj
MDk3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlV2lu
VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVXaW5UZXN0
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxv
Y2FsZVdpbi5oIgogCisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlIDxndGVz
dC9ndGVzdC5oPgogI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CkBAIC00MCwxOSArNDEsMTAwIEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKLWVudW0gewotICAgIEphbnVhcnkgPSAwLCBGZWJydWFy
eSwgTWFyY2gsCi0gICAgQXByaWwsIE1heSwgSnVuZSwKLSAgICBKdWx5LCBBdWd1c3QsIFNlcHRl
bWJlciwKLSAgICBPY3RvYmVyLCBOb3ZlbWJlciwgRGVjZW1iZXIsCi19OworY2xhc3MgTG9jYWxl
V2luVGVzdCA6IHB1YmxpYyA6OnRlc3Rpbmc6OlRlc3QgeworcHJvdGVjdGVkOgorICAgIGVudW0g
eworICAgICAgICBKYW51YXJ5ID0gMCwgRmVicnVhcnksIE1hcmNoLAorICAgICAgICBBcHJpbCwg
TWF5LCBKdW5lLAorICAgICAgICBKdWx5LCBBdWd1c3QsIFNlcHRlbWJlciwKKyAgICAgICAgT2N0
b2JlciwgTm92ZW1iZXIsIERlY2VtYmVyLAorICAgIH07CiAKLXN0YXRpYyBkb3VibGUgbXNGb3JE
YXRlKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpCi17Ci0gICAgcmV0dXJuIGRhdGVUb0Rh
eXNGcm9tMTk3MCh5ZWFyLCBtb250aCwgZGF5KSAqIG1zUGVyRGF5OwotfQorICAgIGVudW0gewor
ICAgICAgICBTdW5kYXkgPSAwLCBNb25kYXksIFR1ZXNkYXksCisgICAgICAgIFdlZG5lc2RheSwg
VGh1cnNkYXksIEZyaWRheSwKKyAgICAgICAgU2F0dXJkYXksCisgICAgfTsKKworICAgIC8vIFNl
ZSBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2dvZ2xvYmFsL2JiOTY0NjY0LmFzcHgK
KyAgICBlbnVtIHsKKyAgICAgICAgZW5fVVMgPSAweDQwOSwKKyAgICAgICAgZnJfRlIgPSAweDQw
QywKKyAgICAgICAgamFfSlAgPSAweDQxMSwKKyAgICB9OworCisgICAgRGF0ZUNvbXBvbmVudHMg
ZGF0ZUNvbXBvbmVudHMoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkKKyAgICB7CisgICAg
ICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzU2lu
Y2VFcG9jaEZvckRhdGUobXNGb3JEYXRlKHllYXIsIG1vbnRoLCBkYXkpKTsKKyAgICAgICAgcmV0
dXJuIGRhdGU7CisgICAgfQorCisgICAgZG91YmxlIG1zRm9yRGF0ZShpbnQgeWVhciwgaW50IG1v
bnRoLCBpbnQgZGF5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRhdGVUb0RheXNGcm9tMTk3MCh5
ZWFyLCBtb250aCwgZGF5KSAqIG1zUGVyRGF5OworICAgIH0KKworICAgIFN0cmluZyBmb3JtYXRE
YXRlKExDSUQgbGNpZCwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkKKyAgICB7CisgICAg
ICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQpOwor
ICAgICAgICByZXR1cm4gbG9jYWxlLT5mb3JtYXREYXRlKGRhdGVDb21wb25lbnRzKHllYXIsIG1v
bnRoLCBkYXkpKTsKKyAgICB9CisKKyAgICBkb3VibGUgcGFyc2VEYXRlKExDSUQgbGNpZCwgY29u
c3QgU3RyaW5nJiBkYXRlU3RyaW5nKQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2FsZVdpbj4g
bG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJldHVybiBsb2NhbGUt
PnBhcnNlRGF0ZShkYXRlU3RyaW5nKTsKKyAgICB9CisKKyNpZiBFTkFCTEUoQ0FMRU5EQVJfUElD
S0VSKQorICAgIFN0cmluZyBkYXRlRm9ybWF0VGV4dChMQ0lEIGxjaWQpCisgICAgeworICAgICAg
ICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKKyAg
ICAgICAgcmV0dXJuIGxvY2FsZS0+ZGF0ZUZvcm1hdFRleHQoKTsKKyAgICB9CisKKyAgICB1bnNp
Z25lZCBmaXJzdERheU9mV2VlayhMQ0lEIGxjaWQpCisgICAgeworICAgICAgICBPd25QdHI8TG9j
YWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKKyAgICAgICAgcmV0dXJu
IGxvY2FsZS0+Zmlyc3REYXlPZldlZWsoKTsKKyAgICB9CisKKyAgICBTdHJpbmcgbW9udGhMYWJl
bChMQ0lEIGxjaWQsIHVuc2lnbmVkIGluZGV4KQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2Fs
ZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJldHVybiBs
b2NhbGUtPm1vbnRoTGFiZWxzKClbaW5kZXhdOworICAgIH0KKworICAgIFN0cmluZyB3ZWVrRGF5
U2hvcnRMYWJlbChMQ0lEIGxjaWQsIHVuc2lnbmVkIGluZGV4KQorICAgIHsKKyAgICAgICAgT3du
UHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAgICAg
IHJldHVybiBsb2NhbGUtPndlZWtEYXlTaG9ydExhYmVscygpW2luZGV4XTsKKyAgICB9CisjZW5k
aWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgIFN0
cmluZyB0aW1lRm9ybWF0VGV4dChMQ0lEIGxjaWQpCisgICAgeworICAgICAgICBPd25QdHI8TG9j
YWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKKyAgICAgICAgcmV0dXJu
IGxvY2FsZS0+dGltZUZvcm1hdFRleHQoKTsKKyAgICB9CiAKLVRFU1QoTG9jYWxlV2luVGVzdCwg
VGVzdExvY2FsaXplZERhdGVGb3JtYXRUZXh0KQorICAgIFN0cmluZyBzaG9ydFRpbWVGb3JtYXRU
ZXh0KExDSUQgbGNpZCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9
IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5zaG9ydFRp
bWVGb3JtYXRUZXh0KCk7CisgICAgfQorCisgICAgU3RyaW5nIHRpbWVBTVBNTGFiZWwoTENJRCBs
Y2lkLCB1bnNpZ25lZCBpbmRleCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxv
Y2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxjaWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT50
aW1lQU1QTUxhYmVscygpW2luZGV4XTsKKyAgICB9CisjZW5kaWYKK307CisKK1RFU1RfRihMb2Nh
bGVXaW5UZXN0LCBUZXN0TG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpCiB7CiAgICAgRVhQRUNUX1NU
UkVRKCJ5ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoInkvTS9kIiwg
InllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7CiAgICAgRVhQRUNUX1NUUkVR
KCJ5ZWFyL21vbnRoL2RheSIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoInl5L01NL2RkIiwg
InllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7CkBAIC02NiwxMCArMTQ4LDkg
QEAgVEVTVChMb2NhbGVXaW5UZXN0LCBUZXN0TG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpCiAgICAg
RVhQRUNUX1NUUkVRKCJZWS9tbS9ERCIsIExvY2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoIllZL21t
L0REIiwgInllYXIiLCAibW9udGgiLCAiZGF5IikudXRmOCgpLmRhdGEoKSk7CiB9CiAKLVRFU1Qo
TG9jYWxlV2luVGVzdCwgVGVzdEZvcm1hdCkKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBUZXN0Rm9y
bWF0KQogewotICAgIGNvbnN0IExDSUQgRW5nbGlzaFVTID0gMHgwNDA5OwotICAgIE93blB0cjxM
b2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKEVuZ2xpc2hVUyk7CisgICAgT3du
UHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUoZW5fVVMpOwogCiAgICAg
RVhQRUNUX1NUUkVRKCI0LzcvMiIsIGxvY2FsZS0+Zm9ybWF0RGF0ZSgiTS9kL3kiLCAyMDEyLCAy
MDEyLCBBcHJpbCwgNykudXRmOCgpLmRhdGEoKSk7CiAgICAgRVhQRUNUX1NUUkVRKCI0LzcvMjAw
NyIsIGxvY2FsZS0+Zm9ybWF0RGF0ZSgiTS9kL3kiLCAyMDEyLCAyMDA3LCBBcHJpbCwgNykudXRm
OCgpLmRhdGEoKSk7CkBAIC0xMjYsMTAgKzIwNyw5IEBAIFRFU1QoTG9jYWxlV2luVGVzdCwgVGVz
dEZvcm1hdCkKICAgICAKIH0KIAotVEVTVChMb2NhbGVXaW5UZXN0LCBUZXN0UGFyc2UpCitURVNU
X0YoTG9jYWxlV2luVGVzdCwgVGVzdFBhcnNlKQogewotICAgIGNvbnN0IExDSUQgRW5nbGlzaFVT
ID0gMHgwNDA5OwotICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3Jl
YXRlKEVuZ2xpc2hVUyk7CisgICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2lu
OjpjcmVhdGUoZW5fVVMpOwogCiAgICAgRVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDEyLCBBcHJpbCwg
MjcpLCBsb2NhbGUtPnBhcnNlRGF0ZSgiTU0vZGQveXkiLCAyMDEyLCAiMDQvMjcvMTIiKSk7CiAg
ICAgRVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDYyLCBBcHJpbCwgMjcpLCBsb2NhbGUtPnBhcnNlRGF0
ZSgiTU0vZGQveXkiLCAyMDEyLCAiMDQvMjcvNjIiKSk7CkBAIC0xNjEsMyArMjQxLDkxIEBAIFRF
U1QoTG9jYWxlV2luVGVzdCwgVGVzdFBhcnNlKQogICAgIEVYUEVDVF9UUlVFKGlzbmFuKGxvY2Fs
ZS0+cGFyc2VEYXRlKCJNTU1NL2QveSIsIDIwMTIsICJOb3ZlbWJlciAzMiAyIikpKTsKICAgICBF
WFBFQ1RfVFJVRShpc25hbihsb2NhbGUtPnBhcnNlRGF0ZSgiTU1NTS9kL3kiLCAyMDEyLCAiLTEv
LTEvLTEiKSkpOwogfQorCitURVNUX0YoTG9jYWxlV2luVGVzdCwgZm9ybWF0RGF0ZSkKK3sKKyAg
ICBFWFBFQ1RfU1RSRVEoIjQvMjcvMjAwNSIsIGZvcm1hdERhdGUoZW5fVVMsIDIwMDUsIEFwcmls
LCAyNykudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIyNy8wNC8yMDA1IiwgZm9y
bWF0RGF0ZShmcl9GUiwgMjAwNSwgQXByaWwsIDI3KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoIjIwMDUvMDQvMjciLCBmb3JtYXREYXRlKGphX0pQLCAyMDA1LCBBcHJpbCwgMjcp
LnV0ZjgoKS5kYXRhKCkpOworfQorCitURVNUX0YoTG9jYWxlV2luVGVzdCwgcGFyc2VEYXRlKQor
eworICAgIEVYUEVDVF9FUShtc0ZvckRhdGUoMjAwNSwgQXByaWwsIDI3KSwgcGFyc2VEYXRlKGVu
X1VTLCAiQXByaWwvMjcvMjAwNSIpKTsKKyAgICBFWFBFQ1RfRVEobXNGb3JEYXRlKDIwMDUsIEFw
cmlsLCAyNyksIHBhcnNlRGF0ZShmcl9GUiwgIjI3L2F2cmlsLzIwMDUiKSk7CisgICAgRVhQRUNU
X0VRKG1zRm9yRGF0ZSgyMDA1LCBBcHJpbCwgMjcpLCBwYXJzZURhdGUoamFfSlAsICIyMDA1LzA0
LzI3IikpOworfQorCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKK1RFU1RfRihMb2NhbGVX
aW5UZXN0LCBkYXRlRm9ybWF0VGV4dCkKK3sKKyAgICBFWFBFQ1RfU1RSRVEoIk1vbnRoL0RheS9Z
ZWFyIiwgZGF0ZUZvcm1hdFRleHQoZW5fVVMpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiRGF5L01vbnRoL1llYXIiLCBkYXRlRm9ybWF0VGV4dChmcl9GUikudXRmOCgpLmRhdGEo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJZZWFyL01vbnRoL0RheSIsIGRhdGVGb3JtYXRUZXh0KGph
X0pQKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIGZpcnN0RGF5
T2ZXZWVrKQoreworICAgIEVYUEVDVF9FUShTdW5kYXksIGZpcnN0RGF5T2ZXZWVrKGVuX1VTKSk7
CisgICAgRVhQRUNUX0VRKE1vbmRheSwgZmlyc3REYXlPZldlZWsoZnJfRlIpKTsKKyAgICBFWFBF
Q1RfRVEoU3VuZGF5LCBmaXJzdERheU9mV2VlayhqYV9KUCkpOworfQorCitURVNUX0YoTG9jYWxl
V2luVGVzdCwgbW9udGhMYWJlbHMpCit7CisgICAgRVhQRUNUX1NUUkVRKCJKYW51YXJ5IiwgbW9u
dGhMYWJlbChlbl9VUywgSmFudWFyeSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVR
KCJKdW5lIiwgbW9udGhMYWJlbChlbl9VUywgSnVuZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKCJEZWNlbWJlciIsIG1vbnRoTGFiZWwoZW5fVVMsIERlY2VtYmVyKS51dGY4KCku
ZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiamFudmllciIsIG1vbnRoTGFiZWwoZnJfRlIs
IEphbnVhcnkpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgianVpbiIsIG1vbnRo
TGFiZWwoZnJfRlIsIEp1bmUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiZFx4
QzNceEE5IiAiY2VtYnJlIiwgbW9udGhMYWJlbChmcl9GUiwgRGVjZW1iZXIpLnV0ZjgoKS5kYXRh
KCkpOworCisgICAgRVhQRUNUX1NUUkVRKCIxXHhFNlx4OUNceDg4IiwgbW9udGhMYWJlbChqYV9K
UCwgSmFudWFyeSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCI2XHhFNlx4OUNc
eDg4IiwgbW9udGhMYWJlbChqYV9KUCwgSnVuZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNU
X1NUUkVRKCIxMlx4RTZceDlDXHg4OCIsIG1vbnRoTGFiZWwoamFfSlAsIERlY2VtYmVyKS51dGY4
KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIHdlZWtEYXlTaG9ydExhYmVs
cykKK3sKKyAgICBFWFBFQ1RfU1RSRVEoIlN1biIsIHdlZWtEYXlTaG9ydExhYmVsKGVuX1VTLCBT
dW5kYXkpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiV2VkIiwgd2Vla0RheVNo
b3J0TGFiZWwoZW5fVVMsIFdlZG5lc2RheSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJTYXQiLCB3ZWVrRGF5U2hvcnRMYWJlbChlbl9VUywgU2F0dXJkYXkpLnV0ZjgoKS5kYXRh
KCkpOworCisgICAgRVhQRUNUX1NUUkVRKCJkaW0uIiwgd2Vla0RheVNob3J0TGFiZWwoZnJfRlIs
IFN1bmRheSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJtZXIuIiwgd2Vla0Rh
eVNob3J0TGFiZWwoZnJfRlIsIFdlZG5lc2RheSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNU
X1NUUkVRKCJzYW0uIiwgd2Vla0RheVNob3J0TGFiZWwoZnJfRlIsIFNhdHVyZGF5KS51dGY4KCku
ZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiXHhFNlx4OTdceEE1Iiwgd2Vla0RheVNob3J0
TGFiZWwoamFfSlAsIFN1bmRheSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJc
eEU2XHhCMFx4QjQiLCB3ZWVrRGF5U2hvcnRMYWJlbChqYV9KUCwgV2VkbmVzZGF5KS51dGY4KCku
ZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RTVceDlDXHg5RiIsIHdlZWtEYXlTaG9ydExh
YmVsKGphX0pQLCBTYXR1cmRheSkudXRmOCgpLmRhdGEoKSk7Cit9CisjZW5kaWYKKworI2lmIEVO
QUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorVEVTVF9GKExvY2FsZVdpblRl
c3QsIHRpbWVGb3JtYXRUZXh0KQoreworICAgIEVYUEVDVF9TVFJFUSgiaDptbTpzcyBhIiwgdGlt
ZUZvcm1hdFRleHQoZW5fVVMpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiSEg6
bW06c3MiLCB0aW1lRm9ybWF0VGV4dChmcl9GUikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNU
X1NUUkVRKCJIOm1tOnNzIiwgdGltZUZvcm1hdFRleHQoamFfSlApLnV0ZjgoKS5kYXRhKCkpOwor
fQorCitURVNUX0YoTG9jYWxlV2luVGVzdCwgc2hvcnRUaW1lRm9ybWF0VGV4dCkKK3sKKyAgICBF
WFBFQ1RfU1RSRVEoImg6bW0gYSIsIHNob3J0VGltZUZvcm1hdFRleHQoZW5fVVMpLnV0ZjgoKS5k
YXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiSEg6bW0iLCBzaG9ydFRpbWVGb3JtYXRUZXh0KGZy
X0ZSKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkg6bW0iLCBzaG9ydFRpbWVG
b3JtYXRUZXh0KGphX0pQKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRl
c3QsIHRpbWVBTVBNTGFiZWxzKQoreworICAgIEVYUEVDVF9TVFJFUSgiQU0iLCB0aW1lQU1QTUxh
YmVsKGVuX1VTLCAwKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlBNIiwgdGlt
ZUFNUE1MYWJlbChlbl9VUywgMSkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEo
IkFNIiwgdGltZUFNUE1MYWJlbChmcl9GUiwgMCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNU
X1NUUkVRKCJQTSIsIHRpbWVBTVBNTGFiZWwoZnJfRlIsIDEpLnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgRVhQRUNUX1NUUkVRKCJceEU1XHg4RFx4ODhceEU1XHg4OVx4OEQiLCB0aW1lQU1QTUxhYmVs
KGphX0pQLCAwKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RTVceDhEXHg4
OFx4RTVceEJFXHg4QyIsIHRpbWVBTVBNTGFiZWwoamFfSlAsIDEpLnV0ZjgoKS5kYXRhKCkpOwor
fQorI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151597</attachid>
            <date>2012-07-10 22:20:19 -0700</date>
            <delta_ts>2012-07-10 22:52:55 -0700</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-90236-20120711142018.patch</filename>
            <type>text/plain</type>
            <size>16873</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY1ODRlZjI2YWFjYWQ1
NWQ1MTZmZDM5Y2ExMmYyMTU0NmNhNjdhMy4uN2MyZGM0NjdlMTMyZmM3Yzk3OThmOTUyNzk5YzMw
ODlkNjFmNTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA3LTEwICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLVdp
bmRvd3NdIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGxvY2FsaXplZCB0aW1lIGZvcm1hdCBpbmZv
cm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTAyMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGludHJvZHVjZXMgZm9sbG93aW5nIGxvY2FsaXplZCB0aW1lIGZvcm1hdCByZWxh
dGVkCisgICAgICAgIGZ1bmN0aW9uczoKKyAgICAgICAgICAgIC0gbG9jYWxpemVkVGltZUZvcm1h
dFRleHQKKyAgICAgICAgICAgIC0gbG9jYWxpemVTaG9ydFRpbWVGb3JtYXRUZXh0KCkKKyAgICAg
ICAgICAgIC0gdGltZUFNUE1MYWJlbHMKKyAgICAgICAgZm9yIFdpbmRvd3MgaW4gZmVhdHVyZSBm
bGFnOiBFTkFCTEVfSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUy4KKworICAgICAgICBT
ZWUgYWxzbzoKKyAgICAgICAgICBJQ1UgdmVyc2lvbjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5OTY1CisgICAgICAgICAgTWFjIHZlcnNpb246IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDIzNworCisgICAgICAgIFRlc3RzOiBXZWJL
aXQvY2hyb21pdW0vdGVzdHMvTG9jYWxXaW5UZXN0LmNwcAorCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9Mb2NhbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9EYXRl
VGltZUZpZWxkVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFdpbmRvd3NU
aW1lRm9ybWF0VG9MRE1MKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVXaW46OnRp
bWVGb3JtYXRUZXh0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVXaW46OnNob3J0
VGltZUZvcm1hdFRleHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6dGlt
ZUFNUE1MYWJlbHMpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5o
OgorICAgICAgICAoTG9jYWxlV2luKTogQWRkZWQgdGltZSBmb3JtYXQgcmVsYXRlZCBmdW5jdGlv
bnMgYW5kIHZhcmlhYmxlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVX
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkVGltZUZvcm1hdFRleHQpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAgQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjp0aW1lQU1QTUxhYmVscyk6ICBBZGRlZC4KKwogMjAxMi0w
Ny0xMCAgQnJpYW4gQW5kZXJzb24gIDxicmlhbmRlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW2Nocm9taXVtXSBNYWtlIGZ1bGwgdGV4dHVyZSB1cGRhdGVzIGV4cGxpY2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGVmODJhZDkwN2NmNTE1NDA1MWNlMGQ0NTFkZDgwZWI5OGUy
N2E1YmEuLjI2OThhM2ZjYzA1NDI3YWI2YjkxNTEyNmI3YTlmY2JiYmU4NTE0MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTItMDctMTAgIFlvc2hpZnVt
aSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW0tV2luZG93
c10gSW1wbGVtZW50IGZ1bmN0aW9ucyBmb3IgbG9jYWxpemVkIHRpbWUgZm9ybWF0IGluZm9ybWF0
aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDIz
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
cGF0Y2ggaW50cm9kdWNlcyB0ZXN0IGNhc2VzIGZvciBkYXRlIGFuZCB0aW1lIGZvcm1hdCByZWxh
dGVkCisgICAgICAgIGZ1bmN0aW9ucyBpbiBMb2NhbGVXaW4uCisKKyAgICAgICAgKiB0ZXN0cy9M
b2NhbGVXaW5UZXN0LmNwcDoKKyAgICAgICAgKExvY2FsZVdpblRlc3QpOgorICAgICAgICAoTG9j
YWxlV2luVGVzdDo6ZGF0ZUNvbXBvbmVudHMpOiBBZGRlZC4KKyAgICAgICAgKExvY2FsZVdpblRl
c3Q6Om1zRm9yRGF0ZSk6IE1vdmVkIGluc2lkZSBjbGFzcyBMb2NhbGVXaW5UZXN0LgorICAgICAg
ICAoTG9jYWxlV2luVGVzdDo6Zm9ybWF0RGF0ZSk6IEFkZGVkLgorICAgICAgICAoTG9jYWxlV2lu
VGVzdDo6cGFyc2VEYXRlKTogQWRkZWQuCisgICAgICAgIChMb2NhbGVXaW5UZXN0OjpkYXRlRm9y
bWF0VGV4dCk6IEFkZGVkLgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6Zmlyc3REYXlPZldlZWsp
OiBBZGRlZC4KKyAgICAgICAgKExvY2FsZVdpblRlc3Q6Om1vbnRoTGFiZWwpOiBBZGRlZC4KKyAg
ICAgICAgKExvY2FsZVdpblRlc3Q6OndlZWtEYXlTaG9ydExhYmVsKTogQWRkZWQuCisgICAgICAg
IChMb2NhbGVXaW5UZXN0Ojp0aW1lRm9ybWF0VGV4dCk6IEFkZGVkLgorICAgICAgICAoTG9jYWxl
V2luVGVzdDo6c2hvcnRUaW1lRm9ybWF0VGV4dCk6IEFkZGVkLgorICAgICAgICAoTG9jYWxlV2lu
VGVzdDo6dGltZUFNUE1MYWJlbCk6IEFkZGVkLgorICAgICAgICAoVEVTVF9GKToKKwogMjAxMi0w
Ny0xMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDaHJvbWl1
bS1BbmRyb2lkXSBBZGQgYXBrIHRlc3QgdGFyZ2V0cyBmb3Igd2Via2l0X3VuaXRfdGVzdHMgYW5k
IFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNw
cAppbmRleCA4MmY5Mjc1NTE2ZmNjNWJhY2RmZjdmY2U1ZTU2MTVkNWJiMjgxN2ZhLi5mMDU1ZGFj
NTdmMDMzODk3YTk1ZTFjNzI3YjAzZmU0ZjkyMTQ2MjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCkBAIC0zMiw2ICszMiw5IEBACiAjaW5jbHVkZSAiTG9j
YWxlV2luLmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2lmIEVOQUJMRShJTlBV
VF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0Lmgi
CisjZW5kaWYKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCiAjaW5jbHVkZSA8bGltaXRz
PgogI2luY2x1ZGUgPHdpbmRvd3MuaD4KQEAgLTU5MCw0ICs1OTMsODUgQEAgY29uc3QgVmVjdG9y
PFN0cmluZz4mIExvY2FsZVdpbjo6d2Vla0RheVNob3J0TGFiZWxzKCkKIH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCitzdGF0aWMgRGF0ZVRp
bWVGb3JtYXQ6OkZpZWxkVHlwZSBtYXBDaGFyYWN0ZXJUb0RhdGVUaW1lRmllbGRUeXBlKFVDaGFy
IGNoKQoreworICAgIHN3aXRjaCAoY2gpIHsKKyAgICBjYXNlICdoJzoKKyAgICAgICAgcmV0dXJu
IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTI7CisKKyAgICBjYXNlICdIJzoKKyAgICAg
ICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM7CisKKyAgICBjYXNlICdt
JzoKKyAgICAgICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU7CisKKyAg
ICBjYXNlICdzJzoKKyAgICAgICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNv
bmQ7CisKKyAgICBjYXNlICd0JzoKKyAgICAgICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVQZXJpb2Q7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZUxpdGVyYWw7CisgICAgfQorfQorCisvLyBUaGlzIGNsYXNzIHVzZWQgZm9y
IGNvbnZlcnRpbmcgV2luZG93cyB0aW1lIHBhdHRlcm4gZm9ybWF0WzFdIGludG8gTERNTFsyXQor
Ly8gdGltZSBmb3JtYXQgc3RyaW5nLgorLy8gWzFdIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20v
ZW4tdXMvbGlicmFyeS93aW5kb3dzL2Rlc2t0b3AvZGQzMTgxNDgodj12cy44NSkuYXNweAorLy8g
WzJdIExETUwgaHR0cDovL3VuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90cjM1LTYuaHRtbCNEYXRl
X0Zvcm1hdF9QYXR0ZXJucworc3RhdGljIFN0cmluZyBjb252ZXJ0V2luZG93c1RpbWVGb3JtYXRU
b0xETUwoY29uc3QgU3RyaW5nJiB3aW5kb3dzVGltZUZvcm1hdCkKK3sKKyAgICBTdHJpbmdCdWls
ZGVyIGJ1aWxkZXI7CisgICAgaW50IGNvdW50ZXIgPSAwOworICAgIERhdGVUaW1lRm9ybWF0OjpG
aWVsZFR5cGUgbGFzdEZpZWxkVHlwZSA9IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFs
OworICAgIGZvciAodW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IHdpbmRvd3NUaW1lRm9ybWF0
Lmxlbmd0aCgpOyArK2luZGV4KSB7CisgICAgICAgIFVDaGFyIGNvbnN0IGNoID0gd2luZG93c1Rp
bWVGb3JtYXRbaW5kZXhdOworICAgICAgICBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxk
VHlwZSA9IG1hcENoYXJhY3RlclRvRGF0ZVRpbWVGaWVsZFR5cGUoY2gpOworICAgICAgICBpZiAo
ZmllbGRUeXBlID09IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFsKQorICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoY2gpOworICAgICAgICBlbHNlIGlmIChmaWVsZFR5cGUgPT0gbGFz
dEZpZWxkVHlwZSkgeworICAgICAgICAgICAgKytjb3VudGVyOworICAgICAgICAgICAgaWYgKGNv
dW50ZXIgPT0gMiAmJiBsYXN0RmllbGRUeXBlICE9IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQ
ZXJpb2QpCisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+
KGxhc3RGaWVsZFR5cGUpKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmIChsYXN0
RmllbGRUeXBlICE9IERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVMaXRlcmFsKQorICAgICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihsYXN0RmllbGRUeXBlKSk7
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4oZmllbGRUeXBl
KSk7CisgICAgICAgICAgICBjb3VudGVyID0gMTsKKyAgICAgICAgfQorICAgICAgICBsYXN0Rmll
bGRUeXBlID0gZmllbGRUeXBlOworICAgIH0KKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworfQorCitTdHJpbmcgTG9jYWxlV2luOjp0aW1lRm9ybWF0VGV4dCgpCit7CisgICAgaWYgKG1f
dGltZUZvcm1hdFRleHQuaXNFbXB0eSgpKQorICAgICAgICBtX3RpbWVGb3JtYXRUZXh0ID0gY29u
dmVydFdpbmRvd3NUaW1lRm9ybWF0VG9MRE1MKGdldExvY2FsZUluZm9TdHJpbmcoTE9DQUxFX1NU
SU1FRk9STUFUKSk7CisgICAgcmV0dXJuIG1fdGltZUZvcm1hdFRleHQ7Cit9CisKK1N0cmluZyBM
b2NhbGVXaW46OnNob3J0VGltZUZvcm1hdFRleHQoKQoreworICAgIGlmIChtX3Nob3J0VGltZUZv
cm1hdFRleHQuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIE5vdGU6IExPQ0FMRV9TU0hPUlRUSU1F
IGlzIGF2YWlsYWJsZSBmb3IgV2luZG93cyA3IGFuZCBsYXRlci4KKyAgICAgICAgbV9zaG9ydFRp
bWVGb3JtYXRUZXh0ID0gY29udmVydFdpbmRvd3NUaW1lRm9ybWF0VG9MRE1MKGdldExvY2FsZUlu
Zm9TdHJpbmcoTE9DQUxFX1NTSE9SVFRJTUUpKTsKKyAgICAgICAgaWYgKG1fc2hvcnRUaW1lRm9y
bWF0VGV4dC5pc0VtcHR5KCkpCisgICAgICAgICAgICBtX3Nob3J0VGltZUZvcm1hdFRleHQgPSB0
aW1lRm9ybWF0VGV4dCgpOworICAgIH0KKyAgICByZXR1cm4gbV9zaG9ydFRpbWVGb3JtYXRUZXh0
OworfQorCitjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxlV2luOjp0aW1lQU1QTUxhYmVscygp
Cit7CisgICAgaWYgKG1fdGltZUFNUE1MYWJlbHMuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fdGlt
ZUFNUE1MYWJlbHMuYXBwZW5kKGdldExvY2FsZUluZm9TdHJpbmcoTE9DQUxFX1MxMTU5KSk7Cisg
ICAgICAgIG1fdGltZUFNUE1MYWJlbHMuYXBwZW5kKGdldExvY2FsZUluZm9TdHJpbmcoTE9DQUxF
X1MyMzU5KSk7CisgICAgfQorICAgIHJldHVybiBtX3RpbWVBTVBNTGFiZWxzOworfQorI2VuZGlm
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2lu
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5oCmluZGV4IDZhNzVj
OTk0NTU3ZjU3MGE5OGNiZjdmNjA5YjQ1NmYzZGNlMjNjNDQuLmYzY2VkYzMyMTM0MmQxZDBlM2Zm
YWFmMWM0OWNiMTQxNThhOGJiYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxlV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVXaW4uaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC01NCw2ICs1NSwx
MiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgZmlyc3REYXlPZldlZWsoKSB7IHJldHVybiBtX2Zp
cnN0RGF5T2ZXZWVrOyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVM
VElQTEVfRklFTERTKQorICAgIFN0cmluZyB0aW1lRm9ybWF0VGV4dCgpOworICAgIFN0cmluZyBz
aG9ydFRpbWVGb3JtYXRUZXh0KCk7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRpbWVBTVBN
TGFiZWxzKCk7CisjZW5kaWYKKwogICAgIC8vIEZvciB0ZXN0aW5nLgogICAgIGRvdWJsZSBwYXJz
ZURhdGUoY29uc3QgU3RyaW5nJiBmb3JtYXQsIGludCBiYXNlWWVhciwgY29uc3QgU3RyaW5nJiBp
bnB1dCk7CiAgICAgU3RyaW5nIGZvcm1hdERhdGUoY29uc3QgU3RyaW5nJiBmb3JtYXQsIGludCBi
YXNlWWVhciwgaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSk7CkBAIC04MSw3ICs4OCwxMSBA
QCBwcml2YXRlOgogICAgIFZlY3RvcjxTdHJpbmc+IG1fd2Vla0RheVNob3J0TGFiZWxzOwogICAg
IHVuc2lnbmVkIG1fZmlyc3REYXlPZldlZWs7CiAjZW5kaWYKLQorI2lmIEVOQUJMRShJTlBVVF9U
WVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorICAgIFN0cmluZyBtX3RpbWVGb3JtYXRUZXh0Owor
ICAgIFN0cmluZyBtX3Nob3J0VGltZUZvcm1hdFRleHQ7CisgICAgVmVjdG9yPFN0cmluZz4gbV90
aW1lQU1QTUxhYmVsczsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTG9jYWxpemVkRGF0ZVdpbi5jcHAKaW5kZXggYmQ4ZjM2N2YzYTVkYzFiODlj
NWQ3OGUwMmU1ZTM0N2FmYzg0N2FiNS4uNTFjNzMzMGEwYTA2MTQ3NjUyYmQ2YjEwOWUxMzc3YzE5
ZWQ3M2E3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6
ZWREYXRlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXpl
ZERhdGVXaW4uY3BwCkBAIC05Miw0ICs5MiwyMSBAQCB1bnNpZ25lZCBmaXJzdERheU9mV2Vlaygp
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERT
KQorU3RyaW5nIGxvY2FsaXplZFRpbWVGb3JtYXRUZXh0KCkKK3sKKyAgICByZXR1cm4gTG9jYWxl
V2luOjpjdXJyZW50TG9jYWxlKCktPnRpbWVGb3JtYXRUZXh0KCk7Cit9CisKK1N0cmluZyBsb2Nh
bGl6ZWRTaG9ydFRpbWVGb3JtYXRUZXh0KCkKK3sKKyAgICByZXR1cm4gTG9jYWxlV2luOjpjdXJy
ZW50TG9jYWxlKCktPnNob3J0VGltZUZvcm1hdFRleHQoKTsKK30KKworY29uc3QgVmVjdG9yPFN0
cmluZz4mIHRpbWVBTVBNTGFiZWxzKCkKK3sKKyAgICByZXR1cm4gTG9jYWxlV2luOjpjdXJyZW50
TG9jYWxlKCktPnRpbWVBTVBNTGFiZWxzKCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVXaW5UZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlV2luVGVzdC5jcHAKaW5kZXggZDY0ZTkwMmE1NWM0
YmIyYjQ2OTQxYmQ5NmQxOGEzZGU4ZDQxNzc4OS4uODEwOTlmNGMwNWQyZTI2YWNiZTNiZTZhZTkz
ZWFlMzQ5N2VhNWRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9M
b2NhbGVXaW5UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2Fs
ZVdpblRlc3QuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiTG9jYWxlV2luLmgiCiAKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1
ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KQEAgLTQwLDE5ICs0MSwxMDAgQEAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAotZW51bSB7Ci0gICAgSmFudWFyeSA9IDAs
IEZlYnJ1YXJ5LCBNYXJjaCwKLSAgICBBcHJpbCwgTWF5LCBKdW5lLAotICAgIEp1bHksIEF1Z3Vz
dCwgU2VwdGVtYmVyLAotICAgIE9jdG9iZXIsIE5vdmVtYmVyLCBEZWNlbWJlciwKLX07CitjbGFz
cyBMb2NhbGVXaW5UZXN0IDogcHVibGljIDo6dGVzdGluZzo6VGVzdCB7Citwcm90ZWN0ZWQ6Cisg
ICAgZW51bSB7CisgICAgICAgIEphbnVhcnkgPSAwLCBGZWJydWFyeSwgTWFyY2gsCisgICAgICAg
IEFwcmlsLCBNYXksIEp1bmUsCisgICAgICAgIEp1bHksIEF1Z3VzdCwgU2VwdGVtYmVyLAorICAg
ICAgICBPY3RvYmVyLCBOb3ZlbWJlciwgRGVjZW1iZXIsCisgICAgfTsKIAotc3RhdGljIGRvdWJs
ZSBtc0ZvckRhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkKLXsKLSAgICByZXR1cm4g
ZGF0ZVRvRGF5c0Zyb20xOTcwKHllYXIsIG1vbnRoLCBkYXkpICogbXNQZXJEYXk7Ci19CisgICAg
ZW51bSB7CisgICAgICAgIFN1bmRheSA9IDAsIE1vbmRheSwgVHVlc2RheSwKKyAgICAgICAgV2Vk
bmVzZGF5LCBUaHVyc2RheSwgRnJpZGF5LAorICAgICAgICBTYXR1cmRheSwKKyAgICB9OworCisg
ICAgLy8gU2VlIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vZW4tdXMvZ29nbG9iYWwvYmI5NjQ2
NjQuYXNweAorICAgIGVudW0geworICAgICAgICBFbmdsaXNoVVMgPSAweDQwOSwKKyAgICAgICAg
RnJlbmNoRlIgPSAweDQwQywKKyAgICAgICAgSmFwYW5lc2VKUCA9IDB4NDExLAorICAgIH07CisK
KyAgICBEYXRlQ29tcG9uZW50cyBkYXRlQ29tcG9uZW50cyhpbnQgeWVhciwgaW50IG1vbnRoLCBp
bnQgZGF5KQorICAgIHsKKyAgICAgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKKyAgICAgICAgZGF0
ZS5zZXRNaWxsaXNlY29uZHNTaW5jZUVwb2NoRm9yRGF0ZShtc0ZvckRhdGUoeWVhciwgbW9udGgs
IGRheSkpOworICAgICAgICByZXR1cm4gZGF0ZTsKKyAgICB9CisKKyAgICBkb3VibGUgbXNGb3JE
YXRlKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpCisgICAgeworICAgICAgICByZXR1cm4g
ZGF0ZVRvRGF5c0Zyb20xOTcwKHllYXIsIG1vbnRoLCBkYXkpICogbXNQZXJEYXk7CisgICAgfQor
CisgICAgU3RyaW5nIGZvcm1hdERhdGUoTENJRCBsY2lkLCBpbnQgeWVhciwgaW50IG1vbnRoLCBp
bnQgZGF5KQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxl
V2luOjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPmZvcm1hdERhdGUoZGF0
ZUNvbXBvbmVudHMoeWVhciwgbW9udGgsIGRheSkpOworICAgIH0KKworICAgIGRvdWJsZSBwYXJz
ZURhdGUoTENJRCBsY2lkLCBjb25zdCBTdHJpbmcmIGRhdGVTdHJpbmcpCisgICAgeworICAgICAg
ICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKKyAg
ICAgICAgcmV0dXJuIGxvY2FsZS0+cGFyc2VEYXRlKGRhdGVTdHJpbmcpOworICAgIH0KKworI2lm
IEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCisgICAgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KExDSUQg
bGNpZCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdp
bjo6Y3JlYXRlKGxjaWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5kYXRlRm9ybWF0VGV4dCgp
OworICAgIH0KKworICAgIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKExDSUQgbGNpZCkKKyAgICB7
CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxj
aWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5maXJzdERheU9mV2VlaygpOworICAgIH0KKwor
ICAgIFN0cmluZyBtb250aExhYmVsKExDSUQgbGNpZCwgdW5zaWduZWQgaW5kZXgpCisgICAgewor
ICAgICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lk
KTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+bW9udGhMYWJlbHMoKVtpbmRleF07CisgICAgfQor
CisgICAgU3RyaW5nIHdlZWtEYXlTaG9ydExhYmVsKExDSUQgbGNpZCwgdW5zaWduZWQgaW5kZXgp
CisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNy
ZWF0ZShsY2lkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+d2Vla0RheVNob3J0TGFiZWxzKClb
aW5kZXhdOworICAgIH0KKyNlbmRpZgorCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxU
SVBMRV9GSUVMRFMpCisgICAgU3RyaW5nIHRpbWVGb3JtYXRUZXh0KExDSUQgbGNpZCkKKyAgICB7
CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRlKGxj
aWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT50aW1lRm9ybWF0VGV4dCgpOworICAgIH0KIAot
VEVTVChMb2NhbGVXaW5UZXN0LCBUZXN0TG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpCisgICAgU3Ry
aW5nIHNob3J0VGltZUZvcm1hdFRleHQoTENJRCBsY2lkKQorICAgIHsKKyAgICAgICAgT3duUHRy
PExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJl
dHVybiBsb2NhbGUtPnNob3J0VGltZUZvcm1hdFRleHQoKTsKKyAgICB9CisKKyAgICBTdHJpbmcg
dGltZUFNUE1MYWJlbChMQ0lEIGxjaWQsIHVuc2lnbmVkIGluZGV4KQorICAgIHsKKyAgICAgICAg
T3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAg
ICAgIHJldHVybiBsb2NhbGUtPnRpbWVBTVBNTGFiZWxzKClbaW5kZXhdOworICAgIH0KKyNlbmRp
ZgorfTsKKworVEVTVF9GKExvY2FsZVdpblRlc3QsIFRlc3RMb2NhbGl6ZWREYXRlRm9ybWF0VGV4
dCkKIHsKICAgICBFWFBFQ1RfU1RSRVEoInllYXIvbW9udGgvZGF5IiwgTG9jYWxlV2luOjpkYXRl
Rm9ybWF0VGV4dCgieS9NL2QiLCAieWVhciIsICJtb250aCIsICJkYXkiKS51dGY4KCkuZGF0YSgp
KTsKICAgICBFWFBFQ1RfU1RSRVEoInllYXIvbW9udGgvZGF5IiwgTG9jYWxlV2luOjpkYXRlRm9y
bWF0VGV4dCgieXkvTU0vZGQiLCAieWVhciIsICJtb250aCIsICJkYXkiKS51dGY4KCkuZGF0YSgp
KTsKQEAgLTY2LDkgKzE0OCw4IEBAIFRFU1QoTG9jYWxlV2luVGVzdCwgVGVzdExvY2FsaXplZERh
dGVGb3JtYXRUZXh0KQogICAgIEVYUEVDVF9TVFJFUSgiWVkvbW0vREQiLCBMb2NhbGVXaW46OmRh
dGVGb3JtYXRUZXh0KCJZWS9tbS9ERCIsICJ5ZWFyIiwgIm1vbnRoIiwgImRheSIpLnV0ZjgoKS5k
YXRhKCkpOwogfQogCi1URVNUKExvY2FsZVdpblRlc3QsIFRlc3RGb3JtYXQpCitURVNUX0YoTG9j
YWxlV2luVGVzdCwgVGVzdEZvcm1hdCkKIHsKLSAgICBjb25zdCBMQ0lEIEVuZ2xpc2hVUyA9IDB4
MDQwOTsKICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShF
bmdsaXNoVVMpOwogCiAgICAgRVhQRUNUX1NUUkVRKCI0LzcvMiIsIGxvY2FsZS0+Zm9ybWF0RGF0
ZSgiTS9kL3kiLCAyMDEyLCAyMDEyLCBBcHJpbCwgNykudXRmOCgpLmRhdGEoKSk7CkBAIC0xMjYs
OSArMjA3LDggQEAgVEVTVChMb2NhbGVXaW5UZXN0LCBUZXN0Rm9ybWF0KQogICAgIAogfQogCi1U
RVNUKExvY2FsZVdpblRlc3QsIFRlc3RQYXJzZSkKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBUZXN0
UGFyc2UpCiB7Ci0gICAgY29uc3QgTENJRCBFbmdsaXNoVVMgPSAweDA0MDk7CiAgICAgT3duUHRy
PExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2luOjpjcmVhdGUoRW5nbGlzaFVTKTsKIAogICAg
IEVYUEVDVF9FUShtc0ZvckRhdGUoMjAxMiwgQXByaWwsIDI3KSwgbG9jYWxlLT5wYXJzZURhdGUo
Ik1NL2RkL3l5IiwgMjAxMiwgIjA0LzI3LzEyIikpOwpAQCAtMTYxLDMgKzI0MSw5MSBAQCBURVNU
KExvY2FsZVdpblRlc3QsIFRlc3RQYXJzZSkKICAgICBFWFBFQ1RfVFJVRShpc25hbihsb2NhbGUt
PnBhcnNlRGF0ZSgiTU1NTS9kL3kiLCAyMDEyLCAiTm92ZW1iZXIgMzIgMiIpKSk7CiAgICAgRVhQ
RUNUX1RSVUUoaXNuYW4obG9jYWxlLT5wYXJzZURhdGUoIk1NTU0vZC95IiwgMjAxMiwgIi0xLy0x
Ly0xIikpKTsKIH0KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIGZvcm1hdERhdGUpCit7CisgICAg
RVhQRUNUX1NUUkVRKCI0LzI3LzIwMDUiLCBmb3JtYXREYXRlKEVuZ2xpc2hVUywgMjAwNSwgQXBy
aWwsIDI3KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjI3LzA0LzIwMDUiLCBm
b3JtYXREYXRlKEZyZW5jaEZSLCAyMDA1LCBBcHJpbCwgMjcpLnV0ZjgoKS5kYXRhKCkpOworICAg
IEVYUEVDVF9TVFJFUSgiMjAwNS8wNC8yNyIsIGZvcm1hdERhdGUoSmFwYW5lc2VKUCwgMjAwNSwg
QXByaWwsIDI3KS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIHBh
cnNlRGF0ZSkKK3sKKyAgICBFWFBFQ1RfRVEobXNGb3JEYXRlKDIwMDUsIEFwcmlsLCAyNyksIHBh
cnNlRGF0ZShFbmdsaXNoVVMsICJBcHJpbC8yNy8yMDA1IikpOworICAgIEVYUEVDVF9FUShtc0Zv
ckRhdGUoMjAwNSwgQXByaWwsIDI3KSwgcGFyc2VEYXRlKEZyZW5jaEZSLCAiMjcvYXZyaWwvMjAw
NSIpKTsKKyAgICBFWFBFQ1RfRVEobXNGb3JEYXRlKDIwMDUsIEFwcmlsLCAyNyksIHBhcnNlRGF0
ZShKYXBhbmVzZUpQLCAiMjAwNS8wNC8yNyIpKTsKK30KKworI2lmIEVOQUJMRShDQUxFTkRBUl9Q
SUNLRVIpCitURVNUX0YoTG9jYWxlV2luVGVzdCwgZGF0ZUZvcm1hdFRleHQpCit7CisgICAgRVhQ
RUNUX1NUUkVRKCJNb250aC9EYXkvWWVhciIsIGRhdGVGb3JtYXRUZXh0KEVuZ2xpc2hVUykudXRm
OCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJEYXkvTW9udGgvWWVhciIsIGRhdGVGb3Jt
YXRUZXh0KEZyZW5jaEZSKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlllYXIv
TW9udGgvRGF5IiwgZGF0ZUZvcm1hdFRleHQoSmFwYW5lc2VKUCkudXRmOCgpLmRhdGEoKSk7Cit9
CisKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBmaXJzdERheU9mV2VlaykKK3sKKyAgICBFWFBFQ1Rf
RVEoU3VuZGF5LCBmaXJzdERheU9mV2VlayhFbmdsaXNoVVMpKTsKKyAgICBFWFBFQ1RfRVEoTW9u
ZGF5LCBmaXJzdERheU9mV2VlayhGcmVuY2hGUikpOworICAgIEVYUEVDVF9FUShTdW5kYXksIGZp
cnN0RGF5T2ZXZWVrKEphcGFuZXNlSlApKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIG1v
bnRoTGFiZWxzKQoreworICAgIEVYUEVDVF9TVFJFUSgiSmFudWFyeSIsIG1vbnRoTGFiZWwoRW5n
bGlzaFVTLCBKYW51YXJ5KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkp1bmUi
LCBtb250aExhYmVsKEVuZ2xpc2hVUywgSnVuZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNU
X1NUUkVRKCJEZWNlbWJlciIsIG1vbnRoTGFiZWwoRW5nbGlzaFVTLCBEZWNlbWJlcikudXRmOCgp
LmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoImphbnZpZXIiLCBtb250aExhYmVsKEZyZW5j
aEZSLCBKYW51YXJ5KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoImp1aW4iLCBt
b250aExhYmVsKEZyZW5jaEZSLCBKdW5lKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoImRceEMzXHhBOSIgImNlbWJyZSIsIG1vbnRoTGFiZWwoRnJlbmNoRlIsIERlY2VtYmVyKS51
dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiMVx4RTZceDlDXHg4OCIsIG1vbnRo
TGFiZWwoSmFwYW5lc2VKUCwgSmFudWFyeSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCI2XHhFNlx4OUNceDg4IiwgbW9udGhMYWJlbChKYXBhbmVzZUpQLCBKdW5lKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjEyXHhFNlx4OUNceDg4IiwgbW9udGhMYWJlbChK
YXBhbmVzZUpQLCBEZWNlbWJlcikudXRmOCgpLmRhdGEoKSk7Cit9CisKK1RFU1RfRihMb2NhbGVX
aW5UZXN0LCB3ZWVrRGF5U2hvcnRMYWJlbHMpCit7CisgICAgRVhQRUNUX1NUUkVRKCJTdW4iLCB3
ZWVrRGF5U2hvcnRMYWJlbChFbmdsaXNoVVMsIFN1bmRheSkudXRmOCgpLmRhdGEoKSk7CisgICAg
RVhQRUNUX1NUUkVRKCJXZWQiLCB3ZWVrRGF5U2hvcnRMYWJlbChFbmdsaXNoVVMsIFdlZG5lc2Rh
eSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJTYXQiLCB3ZWVrRGF5U2hvcnRM
YWJlbChFbmdsaXNoVVMsIFNhdHVyZGF5KS51dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9T
VFJFUSgiZGltLiIsIHdlZWtEYXlTaG9ydExhYmVsKEZyZW5jaEZSLCBTdW5kYXkpLnV0ZjgoKS5k
YXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgibWVyLiIsIHdlZWtEYXlTaG9ydExhYmVsKEZyZW5j
aEZSLCBXZWRuZXNkYXkpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgic2FtLiIs
IHdlZWtEYXlTaG9ydExhYmVsKEZyZW5jaEZSLCBTYXR1cmRheSkudXRmOCgpLmRhdGEoKSk7CisK
KyAgICBFWFBFQ1RfU1RSRVEoIlx4RTZceDk3XHhBNSIsIHdlZWtEYXlTaG9ydExhYmVsKEphcGFu
ZXNlSlAsIFN1bmRheSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEU2XHhC
MFx4QjQiLCB3ZWVrRGF5U2hvcnRMYWJlbChKYXBhbmVzZUpQLCBXZWRuZXNkYXkpLnV0ZjgoKS5k
YXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiXHhFNVx4OUNceDlGIiwgd2Vla0RheVNob3J0TGFi
ZWwoSmFwYW5lc2VKUCwgU2F0dXJkYXkpLnV0ZjgoKS5kYXRhKCkpOworfQorI2VuZGlmCisKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKK1RFU1RfRihMb2NhbGVX
aW5UZXN0LCB0aW1lRm9ybWF0VGV4dCkKK3sKKyAgICBFWFBFQ1RfU1RSRVEoImg6bW06c3MgYSIs
IHRpbWVGb3JtYXRUZXh0KEVuZ2xpc2hVUykudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJISDptbTpzcyIsIHRpbWVGb3JtYXRUZXh0KEZyZW5jaEZSKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIkg6bW06c3MiLCB0aW1lRm9ybWF0VGV4dChKYXBhbmVzZUpQKS51
dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIHNob3J0VGltZUZvcm1h
dFRleHQpCit7CisgICAgRVhQRUNUX1NUUkVRKCJoOm1tIGEiLCBzaG9ydFRpbWVGb3JtYXRUZXh0
KEVuZ2xpc2hVUykudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJISDptbSIsIHNo
b3J0VGltZUZvcm1hdFRleHQoRnJlbmNoRlIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiSDptbSIsIHNob3J0VGltZUZvcm1hdFRleHQoSmFwYW5lc2VKUCkudXRmOCgpLmRhdGEo
KSk7Cit9CisKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCB0aW1lQU1QTUxhYmVscykKK3sKKyAgICBF
WFBFQ1RfU1RSRVEoIkFNIiwgdGltZUFNUE1MYWJlbChFbmdsaXNoVVMsIDApLnV0ZjgoKS5kYXRh
KCkpOworICAgIEVYUEVDVF9TVFJFUSgiUE0iLCB0aW1lQU1QTUxhYmVsKEVuZ2xpc2hVUywgMSku
dXRmOCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIiIsIHRpbWVBTVBNTGFiZWwoRnJl
bmNoRlIsIDApLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiIiwgdGltZUFNUE1M
YWJlbChGcmVuY2hGUiwgMSkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIlx4
RTVceDhEXHg4OFx4RTVceDg5XHg4RCIsIHRpbWVBTVBNTGFiZWwoSmFwYW5lc2VKUCwgMCkudXRm
OCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEU1XHg4RFx4ODhceEU1XHhCRVx4OEMi
LCB0aW1lQU1QTUxhYmVsKEphcGFuZXNlSlAsIDEpLnV0ZjgoKS5kYXRhKCkpOworfQorI2VuZGlm
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151605</attachid>
            <date>2012-07-10 22:53:01 -0700</date>
            <delta_ts>2012-07-10 23:52:35 -0700</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-90236-20120711145259.patch</filename>
            <type>text/plain</type>
            <size>16608</size>
            <attacher>yosin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyMjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZiYjA1MzY4YWY3OGEy
ZDg5MDA4ZWRkNDQwZTQwMDRkNWFiODU1Yy4uNTkxOWI2ZTc2ODkzMWZkNDc0MzJhMTg2ZmYwZmFi
MDIzOWZlOGEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA3LTEwICBZb3No
aWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtLVdp
bmRvd3NdIEltcGxlbWVudCBmdW5jdGlvbnMgZm9yIGxvY2FsaXplZCB0aW1lIGZvcm1hdCBpbmZv
cm1hdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTAyMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGludHJvZHVjZXMgZm9sbG93aW5nIGxvY2FsaXplZCB0aW1lIGZvcm1hdCByZWxh
dGVkCisgICAgICAgIGZ1bmN0aW9uczoKKyAgICAgICAgICAgIC0gbG9jYWxpemVkVGltZUZvcm1h
dFRleHQKKyAgICAgICAgICAgIC0gbG9jYWxpemVTaG9ydFRpbWVGb3JtYXRUZXh0KCkKKyAgICAg
ICAgICAgIC0gdGltZUFNUE1MYWJlbHMKKyAgICAgICAgZm9yIFdpbmRvd3MgaW4gZmVhdHVyZSBm
bGFnOiBFTkFCTEVfSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUy4KKworICAgICAgICBT
ZWUgYWxzbzoKKyAgICAgICAgICBJQ1UgdmVyc2lvbjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg5OTY1CisgICAgICAgICAgTWFjIHZlcnNpb246IGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDIzNworCisgICAgICAgIFRlc3RzOiBXZWJL
aXQvY2hyb21pdW0vdGVzdHMvTG9jYWxXaW5UZXN0LmNwcAorCisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9Mb2NhbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFwQ2hhcmFjdGVyVG9EYXRl
VGltZUZpZWxkVHlwZSk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFdpbmRvd3NU
aW1lRm9ybWF0VG9MRE1MKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVXaW46OnRp
bWVGb3JtYXRUZXh0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVXaW46OnNob3J0
VGltZUZvcm1hdFRleHQpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6dGlt
ZUFNUE1MYWJlbHMpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5o
OgorICAgICAgICAoTG9jYWxlV2luKTogQWRkZWQgdGltZSBmb3JtYXQgcmVsYXRlZCBmdW5jdGlv
bnMgYW5kIHZhcmlhYmxlcy4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVX
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6bG9jYWxpemVkVGltZUZvcm1hdFRleHQpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQpOiAgQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjp0aW1lQU1QTUxhYmVscyk6ICBBZGRlZC4KKwogMjAxMi0w
Ny0xMCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
U2hhZG93Um9vdCBzaG91bGQga25vdyBpdHMgdHlwZSBpbiBkZWJ1ZyBidWlsZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggZWY4MmFkOTA3Y2Y1MTU0MDUxY2UwZDQ1MWRkODBlYjk4ZTI3
YTViYS4uMjY5OGEzZmNjMDU0MjdhYjZiOTE1MTI2YjdhOWZjYmJiZTg1MTQwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNy0xMCAgWW9zaGlmdW1p
IElub3VlICA8eW9zaW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bS1XaW5kb3dz
XSBJbXBsZW1lbnQgZnVuY3Rpb25zIGZvciBsb2NhbGl6ZWQgdGltZSBmb3JtYXQgaW5mb3JtYXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjM2
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBw
YXRjaCBpbnRyb2R1Y2VzIHRlc3QgY2FzZXMgZm9yIGRhdGUgYW5kIHRpbWUgZm9ybWF0IHJlbGF0
ZWQKKyAgICAgICAgZnVuY3Rpb25zIGluIExvY2FsZVdpbi4KKworICAgICAgICAqIHRlc3RzL0xv
Y2FsZVdpblRlc3QuY3BwOgorICAgICAgICAoTG9jYWxlV2luVGVzdCk6CisgICAgICAgIChMb2Nh
bGVXaW5UZXN0OjpkYXRlQ29tcG9uZW50cyk6IEFkZGVkLgorICAgICAgICAoTG9jYWxlV2luVGVz
dDo6bXNGb3JEYXRlKTogTW92ZWQgaW5zaWRlIGNsYXNzIExvY2FsZVdpblRlc3QuCisgICAgICAg
IChMb2NhbGVXaW5UZXN0Ojpmb3JtYXREYXRlKTogQWRkZWQuCisgICAgICAgIChMb2NhbGVXaW5U
ZXN0OjpwYXJzZURhdGUpOiBBZGRlZC4KKyAgICAgICAgKExvY2FsZVdpblRlc3Q6OmRhdGVGb3Jt
YXRUZXh0KTogQWRkZWQuCisgICAgICAgIChMb2NhbGVXaW5UZXN0OjpmaXJzdERheU9mV2Vlayk6
IEFkZGVkLgorICAgICAgICAoTG9jYWxlV2luVGVzdDo6bW9udGhMYWJlbCk6IEFkZGVkLgorICAg
ICAgICAoTG9jYWxlV2luVGVzdDo6d2Vla0RheVNob3J0TGFiZWwpOiBBZGRlZC4KKyAgICAgICAg
KExvY2FsZVdpblRlc3Q6OnRpbWVGb3JtYXRUZXh0KTogQWRkZWQuCisgICAgICAgIChMb2NhbGVX
aW5UZXN0OjpzaG9ydFRpbWVGb3JtYXRUZXh0KTogQWRkZWQuCisgICAgICAgIChMb2NhbGVXaW5U
ZXN0Ojp0aW1lQU1QTUxhYmVsKTogQWRkZWQuCisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTA3
LTEwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVt
LUFuZHJvaWRdIEFkZCBhcGsgdGVzdCB0YXJnZXRzIGZvciB3ZWJraXRfdW5pdF90ZXN0cyBhbmQg
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3Bw
CmluZGV4IDgyZjkyNzU1MTZmY2M1YmFjZGZmN2ZjZTVlNTYxNWQ1YmIyODE3ZmEuLmJlNjY4NTc0
N2FmZmNjNjdlMGNjZTllZjE3NjgzOWQzOTQwYjI5NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTMyLDYgKzMyLDkgQEAKICNpbmNsdWRlICJMb2Nh
bGVXaW4uaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaWYgRU5BQkxFKElOUFVU
X1RZUEVfVElNRV9NVUxUSVBMRV9GSUVMRFMpCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIK
KyNlbmRpZgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlIDxsaW1pdHM+
CiAjaW5jbHVkZSA8d2luZG93cy5oPgpAQCAtNTkwLDQgKzU5Myw4MSBAQCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgTG9jYWxlV2luOjp3ZWVrRGF5U2hvcnRMYWJlbHMoKQogfQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxEUykKK3N0YXRpYyBEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlIG1hcENoYXJhY3RlclRvRGF0ZVRpbWVGaWVsZFR5cGUoVUNoYXIg
Y2gpCit7CisgICAgc3dpdGNoIChjaCkgeworICAgIGNhc2UgJ2gnOgorICAgICAgICByZXR1cm4g
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMjsKKworICAgIGNhc2UgJ0gnOgorICAgICAg
ICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMzsKKworICAgIGNhc2UgJ20n
OgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1pbnV0ZTsKKworICAg
IGNhc2UgJ3MnOgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29u
ZDsKKworICAgIGNhc2UgJ3QnOgorICAgICAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZVBlcmlvZDsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTGl0ZXJhbDsKKyAgICB9Cit9CisKKy8vIFRoaXMgY2xhc3MgdXNlZCBmb3Ig
Y29udmVydGluZyBXaW5kb3dzIHRpbWUgcGF0dGVybiBmb3JtYXRbMV0gaW50byBMRE1MWzJdCisv
LyB0aW1lIGZvcm1hdCBzdHJpbmcuCisvLyBbMV0gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9l
bi11cy9saWJyYXJ5L3dpbmRvd3MvZGVza3RvcC9kZDMxODE0OCh2PXZzLjg1KS5hc3B4CisvLyBb
Ml0gTERNTCBodHRwOi8vdW5pY29kZS5vcmcvcmVwb3J0cy90cjM1L3RyMzUtNi5odG1sI0RhdGVf
Rm9ybWF0X1BhdHRlcm5zCitzdGF0aWMgU3RyaW5nIGNvbnZlcnRXaW5kb3dzVGltZUZvcm1hdFRv
TERNTChjb25zdCBTdHJpbmcmIHdpbmRvd3NUaW1lRm9ybWF0KQoreworICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKKyAgICBpbnQgY291bnRlciA9IDA7CisgICAgRGF0ZVRpbWVGb3JtYXQ6OkZp
ZWxkVHlwZSBsYXN0RmllbGRUeXBlID0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWw7
CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgd2luZG93c1RpbWVGb3JtYXQu
bGVuZ3RoKCk7ICsraW5kZXgpIHsKKyAgICAgICAgVUNoYXIgY29uc3QgY2ggPSB3aW5kb3dzVGlt
ZUZvcm1hdFtpbmRleF07CisgICAgICAgIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUgZmllbGRU
eXBlID0gbWFwQ2hhcmFjdGVyVG9EYXRlVGltZUZpZWxkVHlwZShjaCk7CisgICAgICAgIGlmIChm
aWVsZFR5cGUgPT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWwpCisgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZChjaCk7CisgICAgICAgIGVsc2UgaWYgKGZpZWxkVHlwZSA9PSBsYXN0
RmllbGRUeXBlKSB7CisgICAgICAgICAgICArK2NvdW50ZXI7CisgICAgICAgICAgICBpZiAoY291
bnRlciA9PSAyICYmIGxhc3RGaWVsZFR5cGUgIT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVBl
cmlvZCkKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChzdGF0aWNfY2FzdDxVQ2hhcj4o
bGFzdEZpZWxkVHlwZSkpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKGxhc3RG
aWVsZFR5cGUgIT0gRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUxpdGVyYWwpCisgICAgICAgICAg
ICAgICAgYnVpbGRlci5hcHBlbmQoc3RhdGljX2Nhc3Q8VUNoYXI+KGxhc3RGaWVsZFR5cGUpKTsK
KyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHN0YXRpY19jYXN0PFVDaGFyPihmaWVsZFR5cGUp
KTsKKyAgICAgICAgICAgIGNvdW50ZXIgPSAxOworICAgICAgICB9CisgICAgICAgIGxhc3RGaWVs
ZFR5cGUgPSBmaWVsZFR5cGU7CisgICAgfQorICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBMb2NhbGVXaW46OnRpbWVGb3JtYXRUZXh0KCkKK3sKKyAgICBpZiAobV90
aW1lRm9ybWF0VGV4dC5pc0VtcHR5KCkpCisgICAgICAgIG1fdGltZUZvcm1hdFRleHQgPSBjb252
ZXJ0V2luZG93c1RpbWVGb3JtYXRUb0xETUwoZ2V0TG9jYWxlSW5mb1N0cmluZyhMT0NBTEVfU1RJ
TUVGT1JNQVQpKTsKKyAgICByZXR1cm4gbV90aW1lRm9ybWF0VGV4dDsKK30KKworLy8gTm90ZTog
VG8gbWFrZSBYUC9WaXN0YSBhbmQgV2luZG93cyA3L2xhdGVyIHNhbWUgYmVoYXZpb3IsIHdlIGRv
bid0IHVzZQorLy8gTE9DQUxFX1NTSE9SVFRJTUUuCitTdHJpbmcgTG9jYWxlV2luOjpzaG9ydFRp
bWVGb3JtYXRUZXh0KCkKK3sKKyAgICByZXR1cm4gdGltZUZvcm1hdFRleHQoKTsKK30KKworY29u
c3QgVmVjdG9yPFN0cmluZz4mIExvY2FsZVdpbjo6dGltZUFNUE1MYWJlbHMoKQoreworICAgIGlm
IChtX3RpbWVBTVBNTGFiZWxzLmlzRW1wdHkoKSkgeworICAgICAgICBtX3RpbWVBTVBNTGFiZWxz
LmFwcGVuZChnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TMTE1OSkpOworICAgICAgICBtX3Rp
bWVBTVBNTGFiZWxzLmFwcGVuZChnZXRMb2NhbGVJbmZvU3RyaW5nKExPQ0FMRV9TMjM1OSkpOwor
ICAgIH0KKyAgICByZXR1cm4gbV90aW1lQU1QTUxhYmVsczsKK30KKyNlbmRpZgorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaAppbmRleCA2YTc1Yzk5NDU1N2Y1NzBh
OThjYmY3ZjYwOWI0NTZmM2RjZTIzYzQ0Li42ZjRmZDhiYjhmMmM0YWY5ZTU2MGI5NDE0NDY2ZmE4
ZTcwMTNiNDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
ZVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTQsNiArNTUsMTIgQEAgcHVibGlj
OgogICAgIHVuc2lnbmVkIGZpcnN0RGF5T2ZXZWVrKCkgeyByZXR1cm4gbV9maXJzdERheU9mV2Vl
azsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01VTFRJUExFX0ZJRUxE
UykKKyAgICBTdHJpbmcgdGltZUZvcm1hdFRleHQoKTsKKyAgICBTdHJpbmcgc2hvcnRUaW1lRm9y
bWF0VGV4dCgpOworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0aW1lQU1QTUxhYmVscygpOwor
I2VuZGlmCisKICAgICAvLyBGb3IgdGVzdGluZy4KICAgICBkb3VibGUgcGFyc2VEYXRlKGNvbnN0
IFN0cmluZyYgZm9ybWF0LCBpbnQgYmFzZVllYXIsIGNvbnN0IFN0cmluZyYgaW5wdXQpOwogICAg
IFN0cmluZyBmb3JtYXREYXRlKGNvbnN0IFN0cmluZyYgZm9ybWF0LCBpbnQgYmFzZVllYXIsIGlu
dCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpOwpAQCAtODEsNyArODgsMTAgQEAgcHJpdmF0ZToK
ICAgICBWZWN0b3I8U3RyaW5nPiBtX3dlZWtEYXlTaG9ydExhYmVsczsKICAgICB1bnNpZ25lZCBt
X2ZpcnN0RGF5T2ZXZWVrOwogI2VuZGlmCi0KKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9USU1FX01V
TFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcgbV90aW1lRm9ybWF0VGV4dDsKKyAgICBWZWN0b3I8
U3RyaW5nPiBtX3RpbWVBTVBNTGFiZWxzOworI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZERhdGVXaW4uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWREYXRlV2luLmNwcAppbmRleCBiZDhmMzY3
ZjNhNWRjMWI4OWM1ZDc4ZTAyZTVlMzQ3YWZjODQ3YWI1Li41MWM3MzMwYTBhMDYxNDc2NTJiZDZi
MTA5ZTEzNzdjMTllZDczYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsaXplZERhdGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkRGF0ZVdpbi5jcHAKQEAgLTkyLDQgKzkyLDIxIEBAIHVuc2lnbmVkIGZpcnN0
RGF5T2ZXZWVrKCkKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfVElNRV9NVUxU
SVBMRV9GSUVMRFMpCitTdHJpbmcgbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKQoreworICAgIHJl
dHVybiBMb2NhbGVXaW46OmN1cnJlbnRMb2NhbGUoKS0+dGltZUZvcm1hdFRleHQoKTsKK30KKwor
U3RyaW5nIGxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQoKQoreworICAgIHJldHVybiBMb2Nh
bGVXaW46OmN1cnJlbnRMb2NhbGUoKS0+c2hvcnRUaW1lRm9ybWF0VGV4dCgpOworfQorCitjb25z
dCBWZWN0b3I8U3RyaW5nPiYgdGltZUFNUE1MYWJlbHMoKQoreworICAgIHJldHVybiBMb2NhbGVX
aW46OmN1cnJlbnRMb2NhbGUoKS0+dGltZUFNUE1MYWJlbHMoKTsKK30KKyNlbmRpZgorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZVdpblRlc3QuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVXaW5UZXN0LmNwcAppbmRleCBk
NjRlOTAyYTU1YzRiYjJiNDY5NDFiZDk2ZDE4YTNkZThkNDE3Nzg5Li44ZGEyZjQ0NjEyNTEzNjEx
MmQ3YTc1MTFlNzc5YmM4OGYyOTBjY2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0xvY2FsZVdpblRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvTG9jYWxlV2luVGVzdC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJMb2NhbGVXaW4uaCIKIAorI2luY2x1ZGUgIkRhdGVDb21wb25lbnRz
LmgiCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlIDx3dGYvRGF0ZU1hdGguaD4K
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgpAQCAtNDAsMTkgKzQxLDEwMCBAQAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCi1lbnVtIHsKLSAgICBK
YW51YXJ5ID0gMCwgRmVicnVhcnksIE1hcmNoLAotICAgIEFwcmlsLCBNYXksIEp1bmUsCi0gICAg
SnVseSwgQXVndXN0LCBTZXB0ZW1iZXIsCi0gICAgT2N0b2JlciwgTm92ZW1iZXIsIERlY2VtYmVy
LAotfTsKK2NsYXNzIExvY2FsZVdpblRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKK3By
b3RlY3RlZDoKKyAgICBlbnVtIHsKKyAgICAgICAgSmFudWFyeSA9IDAsIEZlYnJ1YXJ5LCBNYXJj
aCwKKyAgICAgICAgQXByaWwsIE1heSwgSnVuZSwKKyAgICAgICAgSnVseSwgQXVndXN0LCBTZXB0
ZW1iZXIsCisgICAgICAgIE9jdG9iZXIsIE5vdmVtYmVyLCBEZWNlbWJlciwKKyAgICB9OwogCi1z
dGF0aWMgZG91YmxlIG1zRm9yRGF0ZShpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KQotewot
ICAgIHJldHVybiBkYXRlVG9EYXlzRnJvbTE5NzAoeWVhciwgbW9udGgsIGRheSkgKiBtc1BlckRh
eTsKLX0KKyAgICBlbnVtIHsKKyAgICAgICAgU3VuZGF5ID0gMCwgTW9uZGF5LCBUdWVzZGF5LAor
ICAgICAgICBXZWRuZXNkYXksIFRodXJzZGF5LCBGcmlkYXksCisgICAgICAgIFNhdHVyZGF5LAor
ICAgIH07CisKKyAgICAvLyBTZWUgaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9nb2ds
b2JhbC9iYjk2NDY2NC5hc3B4CisgICAgZW51bSB7CisgICAgICAgIEVuZ2xpc2hVUyA9IDB4NDA5
LAorICAgICAgICBGcmVuY2hGUiA9IDB4NDBDLAorICAgICAgICBKYXBhbmVzZUpQID0gMHg0MTEs
CisgICAgfTsKKworICAgIERhdGVDb21wb25lbnRzIGRhdGVDb21wb25lbnRzKGludCB5ZWFyLCBp
bnQgbW9udGgsIGludCBkYXkpCisgICAgeworICAgICAgICBEYXRlQ29tcG9uZW50cyBkYXRlOwor
ICAgICAgICBkYXRlLnNldE1pbGxpc2Vjb25kc1NpbmNlRXBvY2hGb3JEYXRlKG1zRm9yRGF0ZSh5
ZWFyLCBtb250aCwgZGF5KSk7CisgICAgICAgIHJldHVybiBkYXRlOworICAgIH0KKworICAgIGRv
dWJsZSBtc0ZvckRhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkKKyAgICB7CisgICAg
ICAgIHJldHVybiBkYXRlVG9EYXlzRnJvbTE5NzAoeWVhciwgbW9udGgsIGRheSkgKiBtc1BlckRh
eTsKKyAgICB9CisKKyAgICBTdHJpbmcgZm9ybWF0RGF0ZShMQ0lEIGxjaWQsIGludCB5ZWFyLCBp
bnQgbW9udGgsIGludCBkYXkpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2Nh
bGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+Zm9y
bWF0RGF0ZShkYXRlQ29tcG9uZW50cyh5ZWFyLCBtb250aCwgZGF5KSk7CisgICAgfQorCisgICAg
ZG91YmxlIHBhcnNlRGF0ZShMQ0lEIGxjaWQsIGNvbnN0IFN0cmluZyYgZGF0ZVN0cmluZykKKyAg
ICB7CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6Y3JlYXRl
KGxjaWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5wYXJzZURhdGUoZGF0ZVN0cmluZyk7Cisg
ICAgfQorCisjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKKyAgICBTdHJpbmcgZGF0ZUZvcm1h
dFRleHQoTENJRCBsY2lkKQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxl
ID0gTG9jYWxlV2luOjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPmRhdGVG
b3JtYXRUZXh0KCk7CisgICAgfQorCisgICAgdW5zaWduZWQgZmlyc3REYXlPZldlZWsoTENJRCBs
Y2lkKQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2lu
OjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPmZpcnN0RGF5T2ZXZWVrKCk7
CisgICAgfQorCisgICAgU3RyaW5nIG1vbnRoTGFiZWwoTENJRCBsY2lkLCB1bnNpZ25lZCBpbmRl
eCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdpbjo6
Y3JlYXRlKGxjaWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5tb250aExhYmVscygpW2luZGV4
XTsKKyAgICB9CisKKyAgICBTdHJpbmcgd2Vla0RheVNob3J0TGFiZWwoTENJRCBsY2lkLCB1bnNp
Z25lZCBpbmRleCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExv
Y2FsZVdpbjo6Y3JlYXRlKGxjaWQpOworICAgICAgICByZXR1cm4gbG9jYWxlLT53ZWVrRGF5U2hv
cnRMYWJlbHMoKVtpbmRleF07CisgICAgfQorI2VuZGlmCisKKyNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9USU1FX01VTFRJUExFX0ZJRUxEUykKKyAgICBTdHJpbmcgdGltZUZvcm1hdFRleHQoTENJRCBs
Y2lkKQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2FsZVdpbj4gbG9jYWxlID0gTG9jYWxlV2lu
OjpjcmVhdGUobGNpZCk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPnRpbWVGb3JtYXRUZXh0KCk7
CisgICAgfQogCi1URVNUKExvY2FsZVdpblRlc3QsIFRlc3RMb2NhbGl6ZWREYXRlRm9ybWF0VGV4
dCkKKyAgICBTdHJpbmcgc2hvcnRUaW1lRm9ybWF0VGV4dChMQ0lEIGxjaWQpCisgICAgeworICAg
ICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShsY2lkKTsK
KyAgICAgICAgcmV0dXJuIGxvY2FsZS0+c2hvcnRUaW1lRm9ybWF0VGV4dCgpOworICAgIH0KKwor
ICAgIFN0cmluZyB0aW1lQU1QTUxhYmVsKExDSUQgbGNpZCwgdW5zaWduZWQgaW5kZXgpCisgICAg
eworICAgICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShs
Y2lkKTsKKyAgICAgICAgcmV0dXJuIGxvY2FsZS0+dGltZUFNUE1MYWJlbHMoKVtpbmRleF07Cisg
ICAgfQorI2VuZGlmCit9OworCitURVNUX0YoTG9jYWxlV2luVGVzdCwgVGVzdExvY2FsaXplZERh
dGVGb3JtYXRUZXh0KQogewogICAgIEVYUEVDVF9TVFJFUSgieWVhci9tb250aC9kYXkiLCBMb2Nh
bGVXaW46OmRhdGVGb3JtYXRUZXh0KCJ5L00vZCIsICJ5ZWFyIiwgIm1vbnRoIiwgImRheSIpLnV0
ZjgoKS5kYXRhKCkpOwogICAgIEVYUEVDVF9TVFJFUSgieWVhci9tb250aC9kYXkiLCBMb2NhbGVX
aW46OmRhdGVGb3JtYXRUZXh0KCJ5eS9NTS9kZCIsICJ5ZWFyIiwgIm1vbnRoIiwgImRheSIpLnV0
ZjgoKS5kYXRhKCkpOwpAQCAtNjYsOSArMTQ4LDggQEAgVEVTVChMb2NhbGVXaW5UZXN0LCBUZXN0
TG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpCiAgICAgRVhQRUNUX1NUUkVRKCJZWS9tbS9ERCIsIExv
Y2FsZVdpbjo6ZGF0ZUZvcm1hdFRleHQoIllZL21tL0REIiwgInllYXIiLCAibW9udGgiLCAiZGF5
IikudXRmOCgpLmRhdGEoKSk7CiB9CiAKLVRFU1QoTG9jYWxlV2luVGVzdCwgVGVzdEZvcm1hdCkK
K1RFU1RfRihMb2NhbGVXaW5UZXN0LCBUZXN0Rm9ybWF0KQogewotICAgIGNvbnN0IExDSUQgRW5n
bGlzaFVTID0gMHgwNDA5OwogICAgIE93blB0cjxMb2NhbGVXaW4+IGxvY2FsZSA9IExvY2FsZVdp
bjo6Y3JlYXRlKEVuZ2xpc2hVUyk7CiAKICAgICBFWFBFQ1RfU1RSRVEoIjQvNy8yIiwgbG9jYWxl
LT5mb3JtYXREYXRlKCJNL2QveSIsIDIwMTIsIDIwMTIsIEFwcmlsLCA3KS51dGY4KCkuZGF0YSgp
KTsKQEAgLTEyNiw5ICsyMDcsOCBAQCBURVNUKExvY2FsZVdpblRlc3QsIFRlc3RGb3JtYXQpCiAg
ICAgCiB9CiAKLVRFU1QoTG9jYWxlV2luVGVzdCwgVGVzdFBhcnNlKQorVEVTVF9GKExvY2FsZVdp
blRlc3QsIFRlc3RQYXJzZSkKIHsKLSAgICBjb25zdCBMQ0lEIEVuZ2xpc2hVUyA9IDB4MDQwOTsK
ICAgICBPd25QdHI8TG9jYWxlV2luPiBsb2NhbGUgPSBMb2NhbGVXaW46OmNyZWF0ZShFbmdsaXNo
VVMpOwogCiAgICAgRVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDEyLCBBcHJpbCwgMjcpLCBsb2NhbGUt
PnBhcnNlRGF0ZSgiTU0vZGQveXkiLCAyMDEyLCAiMDQvMjcvMTIiKSk7CkBAIC0xNjEsMyArMjQx
LDkxIEBAIFRFU1QoTG9jYWxlV2luVGVzdCwgVGVzdFBhcnNlKQogICAgIEVYUEVDVF9UUlVFKGlz
bmFuKGxvY2FsZS0+cGFyc2VEYXRlKCJNTU1NL2QveSIsIDIwMTIsICJOb3ZlbWJlciAzMiAyIikp
KTsKICAgICBFWFBFQ1RfVFJVRShpc25hbihsb2NhbGUtPnBhcnNlRGF0ZSgiTU1NTS9kL3kiLCAy
MDEyLCAiLTEvLTEvLTEiKSkpOwogfQorCitURVNUX0YoTG9jYWxlV2luVGVzdCwgZm9ybWF0RGF0
ZSkKK3sKKyAgICBFWFBFQ1RfU1RSRVEoIjQvMjcvMjAwNSIsIGZvcm1hdERhdGUoRW5nbGlzaFVT
LCAyMDA1LCBBcHJpbCwgMjcpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMjcv
MDQvMjAwNSIsIGZvcm1hdERhdGUoRnJlbmNoRlIsIDIwMDUsIEFwcmlsLCAyNykudXRmOCgpLmRh
dGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIyMDA1LzA0LzI3IiwgZm9ybWF0RGF0ZShKYXBhbmVz
ZUpQLCAyMDA1LCBBcHJpbCwgMjcpLnV0ZjgoKS5kYXRhKCkpOworfQorCitURVNUX0YoTG9jYWxl
V2luVGVzdCwgcGFyc2VEYXRlKQoreworICAgIEVYUEVDVF9FUShtc0ZvckRhdGUoMjAwNSwgQXBy
aWwsIDI3KSwgcGFyc2VEYXRlKEVuZ2xpc2hVUywgIkFwcmlsLzI3LzIwMDUiKSk7CisgICAgRVhQ
RUNUX0VRKG1zRm9yRGF0ZSgyMDA1LCBBcHJpbCwgMjcpLCBwYXJzZURhdGUoRnJlbmNoRlIsICIy
Ny9hdnJpbC8yMDA1IikpOworICAgIEVYUEVDVF9FUShtc0ZvckRhdGUoMjAwNSwgQXByaWwsIDI3
KSwgcGFyc2VEYXRlKEphcGFuZXNlSlAsICIyMDA1LzA0LzI3IikpOworfQorCisjaWYgRU5BQkxF
KENBTEVOREFSX1BJQ0tFUikKK1RFU1RfRihMb2NhbGVXaW5UZXN0LCBkYXRlRm9ybWF0VGV4dCkK
K3sKKyAgICBFWFBFQ1RfU1RSRVEoIk1vbnRoL0RheS9ZZWFyIiwgZGF0ZUZvcm1hdFRleHQoRW5n
bGlzaFVTKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkRheS9Nb250aC9ZZWFy
IiwgZGF0ZUZvcm1hdFRleHQoRnJlbmNoRlIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiWWVhci9Nb250aC9EYXkiLCBkYXRlRm9ybWF0VGV4dChKYXBhbmVzZUpQKS51dGY4KCku
ZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIGZpcnN0RGF5T2ZXZWVrKQorewor
ICAgIEVYUEVDVF9FUShTdW5kYXksIGZpcnN0RGF5T2ZXZWVrKEVuZ2xpc2hVUykpOworICAgIEVY
UEVDVF9FUShNb25kYXksIGZpcnN0RGF5T2ZXZWVrKEZyZW5jaEZSKSk7CisgICAgRVhQRUNUX0VR
KFN1bmRheSwgZmlyc3REYXlPZldlZWsoSmFwYW5lc2VKUCkpOworfQorCitURVNUX0YoTG9jYWxl
V2luVGVzdCwgbW9udGhMYWJlbHMpCit7CisgICAgRVhQRUNUX1NUUkVRKCJKYW51YXJ5IiwgbW9u
dGhMYWJlbChFbmdsaXNoVVMsIEphbnVhcnkpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiSnVuZSIsIG1vbnRoTGFiZWwoRW5nbGlzaFVTLCBKdW5lKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIkRlY2VtYmVyIiwgbW9udGhMYWJlbChFbmdsaXNoVVMsIERlY2Vt
YmVyKS51dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiamFudmllciIsIG1vbnRo
TGFiZWwoRnJlbmNoRlIsIEphbnVhcnkpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgianVpbiIsIG1vbnRoTGFiZWwoRnJlbmNoRlIsIEp1bmUpLnV0ZjgoKS5kYXRhKCkpOworICAg
IEVYUEVDVF9TVFJFUSgiZFx4QzNceEE5IiAiY2VtYnJlIiwgbW9udGhMYWJlbChGcmVuY2hGUiwg
RGVjZW1iZXIpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCIxXHhFNlx4OUNc
eDg4IiwgbW9udGhMYWJlbChKYXBhbmVzZUpQLCBKYW51YXJ5KS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoIjZceEU2XHg5Q1x4ODgiLCBtb250aExhYmVsKEphcGFuZXNlSlAsIEp1
bmUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMTJceEU2XHg5Q1x4ODgiLCBt
b250aExhYmVsKEphcGFuZXNlSlAsIERlY2VtYmVyKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVT
VF9GKExvY2FsZVdpblRlc3QsIHdlZWtEYXlTaG9ydExhYmVscykKK3sKKyAgICBFWFBFQ1RfU1RS
RVEoIlN1biIsIHdlZWtEYXlTaG9ydExhYmVsKEVuZ2xpc2hVUywgU3VuZGF5KS51dGY4KCkuZGF0
YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIldlZCIsIHdlZWtEYXlTaG9ydExhYmVsKEVuZ2xpc2hV
UywgV2VkbmVzZGF5KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlNhdCIsIHdl
ZWtEYXlTaG9ydExhYmVsKEVuZ2xpc2hVUywgU2F0dXJkYXkpLnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgRVhQRUNUX1NUUkVRKCJkaW0uIiwgd2Vla0RheVNob3J0TGFiZWwoRnJlbmNoRlIsIFN1bmRh
eSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJtZXIuIiwgd2Vla0RheVNob3J0
TGFiZWwoRnJlbmNoRlIsIFdlZG5lc2RheSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJzYW0uIiwgd2Vla0RheVNob3J0TGFiZWwoRnJlbmNoRlIsIFNhdHVyZGF5KS51dGY4KCku
ZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiXHhFNlx4OTdceEE1Iiwgd2Vla0RheVNob3J0
TGFiZWwoSmFwYW5lc2VKUCwgU3VuZGF5KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIlx4RTZceEIwXHhCNCIsIHdlZWtEYXlTaG9ydExhYmVsKEphcGFuZXNlSlAsIFdlZG5lc2Rh
eSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEU1XHg5Q1x4OUYiLCB3ZWVr
RGF5U2hvcnRMYWJlbChKYXBhbmVzZUpQLCBTYXR1cmRheSkudXRmOCgpLmRhdGEoKSk7Cit9Cisj
ZW5kaWYKKworI2lmIEVOQUJMRShJTlBVVF9UWVBFX1RJTUVfTVVMVElQTEVfRklFTERTKQorVEVT
VF9GKExvY2FsZVdpblRlc3QsIHRpbWVGb3JtYXRUZXh0KQoreworICAgIEVYUEVDVF9TVFJFUSgi
aDptbTpzcyBhIiwgdGltZUZvcm1hdFRleHQoRW5nbGlzaFVTKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoIkhIOm1tOnNzIiwgdGltZUZvcm1hdFRleHQoRnJlbmNoRlIpLnV0Zjgo
KS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiSDptbTpzcyIsIHRpbWVGb3JtYXRUZXh0KEph
cGFuZXNlSlApLnV0ZjgoKS5kYXRhKCkpOworfQorCitURVNUX0YoTG9jYWxlV2luVGVzdCwgc2hv
cnRUaW1lRm9ybWF0VGV4dCkKK3sKKyAgICBFWFBFQ1RfU1RSRVEoImg6bW06c3MgYSIsIHNob3J0
VGltZUZvcm1hdFRleHQoRW5nbGlzaFVTKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIkhIOm1tOnNzIiwgc2hvcnRUaW1lRm9ybWF0VGV4dChGcmVuY2hGUikudXRmOCgpLmRhdGEo
KSk7CisgICAgRVhQRUNUX1NUUkVRKCJIOm1tOnNzIiwgc2hvcnRUaW1lRm9ybWF0VGV4dChKYXBh
bmVzZUpQKS51dGY4KCkuZGF0YSgpKTsKK30KKworVEVTVF9GKExvY2FsZVdpblRlc3QsIHRpbWVB
TVBNTGFiZWxzKQoreworICAgIEVYUEVDVF9TVFJFUSgiQU0iLCB0aW1lQU1QTUxhYmVsKEVuZ2xp
c2hVUywgMCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJQTSIsIHRpbWVBTVBN
TGFiZWwoRW5nbGlzaFVTLCAxKS51dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgi
IiwgdGltZUFNUE1MYWJlbChGcmVuY2hGUiwgMCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNU
X1NUUkVRKCIiLCB0aW1lQU1QTUxhYmVsKEZyZW5jaEZSLCAxKS51dGY4KCkuZGF0YSgpKTsKKwor
ICAgIEVYUEVDVF9TVFJFUSgiXHhFNVx4OERceDg4XHhFNVx4ODlceDhEIiwgdGltZUFNUE1MYWJl
bChKYXBhbmVzZUpQLCAwKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RTVc
eDhEXHg4OFx4RTVceEJFXHg4QyIsIHRpbWVBTVBNTGFiZWwoSmFwYW5lc2VKUCwgMSkudXRmOCgp
LmRhdGEoKSk7Cit9CisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>