<?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>111526</bug_id>
          
          <creation_ts>2013-03-05 23:25:13 -0800</creation_ts>
          <short_desc>Adding id attribute test for MediaStream</short_desc>
          <delta_ts>2013-03-07 16:52:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Li Yin">li.yin</reporter>
          <assigned_to name="Li Yin">li.yin</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>hta</cc>
    
    <cc>jamesr</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jochen</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>848504</commentid>
    <comment_count>0</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-05 23:25:13 -0800</bug_when>
    <thetext>Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#widl-MediaStream-id
When a LocalMediaStream object is created, the user agent must generate a globally unique identifier string, and must initialize the object’s id attribute to that string. Such strings must only use characters in the ranges U+0021, U+0023 to U+0027, U+002A to U+002B, U+002D to U+002E, U+0030 to U+0039, U+0041 to U+005A, U+005E to U+007E, and must be 36 characters long.

Currently, DRT can&apos;t support id verification correctly, and the related test is missed also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848516</commentid>
    <comment_count>1</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-05 23:48:05 -0800</bug_when>
    <thetext>Hi Tommy,
I justed prepared a patch to fixed the MediaStream.id issue for DumpRenderTree.
I am copying the fucntion RandomLabel() from media_stream_manager.cc file.

It seems your commit http://trac.webkit.org/changeset/144748 has moved the producing id code to WebMediaStream.cpp

Maybe use RandomLabel function is better for verifing LocalMediaStream.id attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848585</commentid>
    <comment_count>2</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-03-06 00:52:10 -0800</bug_when>
    <thetext>I am much more comfortable in using createCanonicalUUIDString() since it is already used within the mediastream part of WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848597</commentid>
    <comment_count>3</comment_count>
      <attachid>191679</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-06 01:04:02 -0800</bug_when>
    <thetext>Created attachment 191679
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848603</commentid>
    <comment_count>4</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-06 01:12:10 -0800</bug_when>
    <thetext>I just saw your commit after the patch is almost finished.
So I still post it to have a review.

In real environment, browser used RandomLabel function to generate an id string, when the mediastream is generated through getUserMedia().

And function createCanonicalUUIDString() still can be verified through &quot;new MediaStream(stream)&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848608</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 01:15:46 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848609</commentid>
    <comment_count>6</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-06 01:16:48 -0800</bug_when>
    <thetext>So if DRT used the same code like chromoum browser, more code branches can be verified, including RandomLabel and createCanonicalUUIDString.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848816</commentid>
    <comment_count>7</comment_count>
      <attachid>191679</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-03-06 06:48:31 -0800</bug_when>
    <thetext>Comment on attachment 191679
Patch

I don&apos;t particularly like the changes to DRT and WebMediaStream since they makes your tests test data from DRT.
The RandomLabel function is only used internally within chromium and its output is never visible in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849291</commentid>
    <comment_count>8</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-06 14:16:39 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 191679 [details])
&gt; I don&apos;t particularly like the changes to DRT and WebMediaStream since they makes your tests test data from DRT.
&gt; The RandomLabel function is only used internally within chromium and its output is never visible in WebKit.

OK, I have no very strong expectation about the change.
And it seems the test should be reasonable. What is your opinion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849469</commentid>
    <comment_count>9</comment_count>
      <attachid>191868</attachid>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-06 16:55:38 -0800</bug_when>
    <thetext>Created attachment 191868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849477</commentid>
    <comment_count>10</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-06 16:57:58 -0800</bug_when>
    <thetext>The new patch just added a test, no C++ code changes, of cause no changes of Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849831</commentid>
    <comment_count>11</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2013-03-07 00:45:33 -0800</bug_when>
    <thetext>The test is just fine.

Btw I have noticed that you like to work on WebRTC. Why don&apos;t you ping me offline so that we can sync our efforts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849846</commentid>
    <comment_count>12</comment_count>
      <attachid>191868</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-03-07 01:08:03 -0800</bug_when>
    <thetext>Comment on attachment 191868
Patch

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

LGTM too, with some nits.

&gt; LayoutTests/fast/mediastream/MediaStreamConstructor.html:31
&gt; +        if (charCode == 0x21 ||
&gt; +            (charCode &gt;= 0x23 &amp;&amp; charCode &lt;= 0x27) ||
&gt; +            (charCode &gt;= 0x2A &amp;&amp; charCode &lt;= 0x2B) ||
&gt; +            (charCode &gt;= 0x2D &amp;&amp; charCode &lt;= 0x2E) ||
&gt; +            (charCode &gt;= 0x30 &amp;&amp; charCode &lt;= 0x39) ||
&gt; +            (charCode &gt;= 0x41 &amp;&amp; charCode &lt;= 0x5A) ||
&gt; +            (charCode &gt;= 0x5E &amp;&amp; charCode &lt;= 0x7E))

Nit: || should come at the head of the next line, instead of the tail of the current line.

http://www.webkit.org/coding/coding-style.html#indentation-case-label

&gt; LayoutTests/fast/mediastream/MediaStreamConstructor.html:36
&gt; +        if (id == idArray[i])

Nit: For testing purpose, let&apos;s use === instead of ==.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850629</commentid>
    <comment_count>13</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-07 16:46:27 -0800</bug_when>
    <thetext>Committed r145153: &lt;http://trac.webkit.org/changeset/145153&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850633</commentid>
    <comment_count>14</comment_count>
    <who name="Li Yin">li.yin</who>
    <bug_when>2013-03-07 16:52:18 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; The test is just fine.
&gt; 
&gt; Btw I have noticed that you like to work on WebRTC. Why don&apos;t you ping me offline so that we can sync our efforts?

Okay, that is a good idea, and I just sent an email to you about my work, please have a check.
And my name is liyin in WebKit IRC, you can ping me, it seems you are offline when I an trying to ping you :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191679</attachid>
            <date>2013-03-06 01:04:02 -0800</date>
            <delta_ts>2013-03-06 16:55:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111526-20130306170009.patch</filename>
            <type>text/plain</type>
            <size>13596</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3M2FkOWVlOGYyMjg3
N2M0NTU2NWQ2YWVkNGI3YWE2MzEzZmQ2MDU2Li5mMTVmN2Q1MjAwZGI3NjQ5ZTRmOWVhNGI4MzA1
YTgwNDNhNGRmZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMy0wNiAg
TGkgWWluICA8bGkueWluQGludGVsLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIER1bXBSZW5k
ZXJUcmVlIHNob3VsZCBzdXBwb3J0IGlkIGF0dHJpYnV0ZSB0ZXN0IG9mIE1lZGlhU3RyZWFtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1MjYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNocm9taXVt
L3B1YmxpYy9XZWJNZWRpYVN0cmVhbS5oOgorICAgICAgICAoV2ViTWVkaWFTdHJlYW0pOgorCiAy
MDEzLTAzLTA1ICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gU2Nyb2xsIGRlbHRhcyBzaG91bGQgYmUgZmxvYXRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNGYzZTA0NzcyYzM0NDVhYmFlYmIxYzQxYThiNjkyNDFhZjFkZTczMS4uOWUzZDI2ZTc2N2Iy
MDJiYTVjZTg5MTAxMmQzZDViODdmZDJhMjJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEzLTAzLTA2ICBMaSBZaW4gIDxsaS55aW5AaW50ZWwuY29tPgorCisgICAgICAgIFtjaHJv
bWl1bV0gRHVtcFJlbmRlclRyZWUgc2hvdWxkIHN1cHBvcnQgaWQgYXR0cmlidXRlIHRlc3Qgb2Yg
TWVkaWFTdHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTExMTUyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYk1lZGlhU3RyZWFtLmNwcDoK
KwogMjAxMy0wMy0wNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGRmaXggYWZ0ZXIgcjE0NDc4Ny4gQWRkIG1pc3NpbmcgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpIGd1YXJkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW0uaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTWVkaWFTdHJlYW0uaAppbmRleCBlY2Q1ODZkNjQ3MGQxMGMxOWE4YWNiMjBk
ZmNhYzA3N2EwNDI3NTQ0Li4yMzc1NjVlMmJmMjMyZjRiZTA3Y2JmZjQ3MDNlOGRhNjg1ODM2MzM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3Ry
ZWFtLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVh
bS5oCkBAIC02Miw3ICs2Miw2IEBAIHB1YmxpYzoKICAgICAvLyBERVBSRUNBVEVECiAgICAgV0VC
S0lUX0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBsYWJlbCwgY29uc3Qg
V2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtU291cmNlPiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBXZWJW
ZWN0b3I8V2ViTWVkaWFTdHJlYW1Tb3VyY2U+JiB2aWRlb1NvdXJjZXMpOwogCi0gICAgV0VCS0lU
X0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtVHJh
Y2s+JiBhdWRpb1RyYWNrcywgY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtVHJhY2s+JiB2
aWRlb1RyYWNrcyk7CiAgICAgV0VCS0lUX0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2Vi
U3RyaW5nJiBsYWJlbCwgY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtVHJhY2s+JiBhdWRp
b1RyYWNrcywgY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtVHJhY2s+JiB2aWRlb1RyYWNr
cyk7CiAKICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgcmVzZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFTdHJlYW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbS5j
cHAKaW5kZXggMTdhMDJlMjQyZWMyYjZiNzAwZTMxYTkyZGY1M2NkYjQyNDg3YjA4NS4uNTIyYjE1
N2YxNTBjYTRmN2VlY2MzMjFlOWU2MDFhYTJkNTFjYWNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbS5j
cHAKQEAgLTE0MywxMSArMTQzLDYgQEAgdm9pZCBXZWJNZWRpYVN0cmVhbTo6aW5pdGlhbGl6ZShj
b25zdCBXZWJTdHJpbmcmIGxhYmVsLCBjb25zdCBXZWJWZWN0b3I8V2ViTWVkaWEKICAgICBtX3By
aXZhdGUgPSBNZWRpYVN0cmVhbURlc2NyaXB0b3I6OmNyZWF0ZShsYWJlbCwgYXVkaW8sIHZpZGVv
KTsKIH0KIAotdm9pZCBXZWJNZWRpYVN0cmVhbTo6aW5pdGlhbGl6ZShjb25zdCBXZWJWZWN0b3I8
V2ViTWVkaWFTdHJlYW1UcmFjaz4mIGF1ZGlvVHJhY2tzLCBjb25zdCBXZWJWZWN0b3I8V2ViTWVk
aWFTdHJlYW1UcmFjaz4mIHZpZGVvVHJhY2tzKQotewotICAgIGluaXRpYWxpemUoY3JlYXRlQ2Fu
b25pY2FsVVVJRFN0cmluZygpLCBhdWRpb1RyYWNrcywgdmlkZW9UcmFja3MpOwotfQotCiB2b2lk
IFdlYk1lZGlhU3RyZWFtOjppbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsIGNvbnN0
IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbVRyYWNrPiYgYXVkaW9UcmFja3MsIGNvbnN0IFdlYlZl
Y3RvcjxXZWJNZWRpYVN0cmVhbVRyYWNrPiYgdmlkZW9UcmFja3MpCiB7CiAgICAgTWVkaWFTdHJl
YW1Db21wb25lbnRWZWN0b3IgYXVkaW8sIHZpZGVvOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDIyNDY0YzQ0NzU2MGZkMjUxMjFmN2U0MWUyYjUz
MGQ3MTMyNTNmYTEuLmMxN2JjZDQ4ODNhYjY5YmYxNGZlODU1YjQ4OTIxYmE3ZjJmZjU4MTcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAxMy0wMy0wNiAgTGkgWWluICA8bGkueWluQGludGVsLmNvbT4KKworICAgICAg
ICBbY2hyb21pdW1dIER1bXBSZW5kZXJUcmVlIHNob3VsZCBzdXBwb3J0IGlkIGF0dHJpYnV0ZSB0
ZXN0IG9mIE1lZGlhU3RyZWFtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTE1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBTcGVjOiBodHRwOi8vZGV2LnczLm9yZy8yMDExL3dlYnJ0Yy9lZGl0b3IvZ2V0
dXNlcm1lZGlhLmh0bWwjd2lkbC1NZWRpYVN0cmVhbS1pZAorICAgICAgICBXaGVuIGEgTG9jYWxN
ZWRpYVN0cmVhbSBvYmplY3QgaXMgY3JlYXRlZCwgdGhlIHVzZXIgYWdlbnQgbXVzdCBnZW5lcmF0
ZSBhIGdsb2JhbGx5CisgICAgICAgIHVuaXF1ZSBpZGVudGlmaWVyIHN0cmluZywgYW5kIG11c3Qg
aW5pdGlhbGl6ZSB0aGUgb2JqZWN0LnMgaWQgYXR0cmlidXRlIHRvIHRoYXQgc3RyaW5nLgorICAg
ICAgICBTdWNoIHN0cmluZ3MgbXVzdCBvbmx5IHVzZSBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZXMg
VSswMDIxLCBVKzAwMjMgdG8gVSswMDI3LAorICAgICAgICBVKzAwMkEgdG8gVSswMDJCLCBVKzAw
MkQgdG8gVSswMDJFLCBVKzAwMzAgdG8gVSswMDM5LCBVKzAwNDEgdG8gVSswMDVBLAorICAgICAg
ICBVKzAwNUUgdG8gVSswMDdFLCBhbmQgbXVzdCBiZSAzNiBjaGFyYWN0ZXJzIGxvbmcuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJVc2VyTWVk
aWFDbGllbnRNb2NrLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6UmFuZG9tTGFiZWwpOiBDb3BpZWQgZnJvbSBtZWRpYV9zdHJlYW1fbWFuYWdl
ci5jYworICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVXNlck1lZGlhQ2xpZW50TW9jazo6cmVx
dWVzdFVzZXJNZWRpYSk6CisKIDIwMTMtMDMtMDUgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBkb24ndCB1c2UgY3VzdG9tIGZyZWV0eXBl
IG9uIGxpbnV4IGFzYW4gZm9yIG5vdwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVXNlck1lZGlhQ2xpZW50TW9jay5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJVc2VyTWVkaWFDbGll
bnRNb2NrLmNwcAppbmRleCAxODEzZTE4YTVjZWEwYWRhZDlkYTY1ZWUwNmE0ZTk3YTMzZDNmYWQ1
Li5kMGFiYzJhMDEzNDFkN2Y1YTAwZWNjZmYyZWY5ZWE5NTlkZjI0NTgxIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJVc2VyTWVkaWFD
bGllbnRNb2NrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJVc2VyTWVkaWFDbGllbnRNb2NrLmNwcApAQCAtNDgsNiArNDgsMjYgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdlYlRlc3RSdW5uZXIgewogCisvLyBD
b3BpZWQgZnJvbSBtZWRpYV9zdHJlYW1fbWFuYWdlci5jYworc3RhdGljIHN0ZDo6c3RyaW5nIFJh
bmRvbUxhYmVsKCkKK3sKKyAgICAvLyBBbiBlYXJsaWVyIFBlZXJDb25uZWN0aW9uIHNwZWMsCisg
ICAgLy8gaHR0cDovL2Rldi53My5vcmcvMjAxMS93ZWJydGMvZWRpdG9yL3dlYnJ0Yy5odG1sLCBz
cGVjaWZpZWQgdGhlCisgICAgLy8gTWVkaWFTdHJlYW06OmxhYmVsIGFscGhhYmV0IGFzIGNvbnRh
aW5pbmcgMzYgY2hhcmFjdGVycyBmcm9tCisgICAgLy8gcmFuZ2U6IFUrMDAyMSwgVSswMDIzIHRv
IFUrMDAyNywgVSswMDJBIHRvIFUrMDAyQiwgVSswMDJEIHRvIFUrMDAyRSwKKyAgICAvLyBVKzAw
MzAgdG8gVSswMDM5LCBVKzAwNDEgdG8gVSswMDVBLCBVKzAwNUUgdG8gVSswMDdFLgorICAgIC8v
IEhlcmUgd2UgdXNlIGEgc2FmZSBzdWJzZXQuCisgICAgc3RhdGljIGNvbnN0IGNoYXIga0FscGhh
YmV0W10gPSAiMDEyMzQ1Njc4OSIKKyAgICAgICAgImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiOworCisgICAgc3RkOjpzdHJpbmcgbGFiZWwoMzYs
ICcgJyk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsYWJlbC5zaXplKCk7ICsraSkgewor
ICAgICAgICBpbnQgcmFuZG9tQ2hhciA9IHJhbmRvbSgpICUgc2l6ZW9mKGtBbHBoYWJldCk7Cisg
ICAgICAgIGxhYmVsW2ldID0ga0FscGhhYmV0W3JhbmRvbUNoYXJdOworICAgIH0KKyAgICByZXR1
cm4gbGFiZWw7Cit9CisKIGNsYXNzIFVzZXJNZWRpYVJlcXVlc3RUYXNrIDogcHVibGljIFdlYk1l
dGhvZFRhc2s8V2ViVXNlck1lZGlhQ2xpZW50TW9jaz4gewogcHVibGljOgogICAgIFVzZXJNZWRp
YVJlcXVlc3RUYXNrKFdlYlVzZXJNZWRpYUNsaWVudE1vY2sqIG9iamVjdCwgY29uc3QgV2ViVXNl
ck1lZGlhUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViTWVkaWFTdHJlYW0gcmVzdWx0KQpAQCAt
MTIxLDcgKzE0MSw4IEBAIHZvaWQgV2ViVXNlck1lZGlhQ2xpZW50TW9jazo6cmVxdWVzdFVzZXJN
ZWRpYShjb25zdCBXZWJVc2VyTWVkaWFSZXF1ZXN0JiBzdHJlYW1SCiAgICAgfQogCiAgICAgV2Vi
TWVkaWFTdHJlYW0gc3RyZWFtOwotICAgIHN0cmVhbS5pbml0aWFsaXplKGF1ZGlvVHJhY2tzLCB2
aWRlb1RyYWNrcyk7CisgICAgc3RkOjpzdHJpbmcgbGFiZWwgPSBSYW5kb21MYWJlbCgpOworICAg
IHN0cmVhbS5pbml0aWFsaXplKFdlYlN0cmluZzo6ZnJvbVVURjgobGFiZWwuZGF0YSgpLCBsYWJl
bC5zaXplKCkpLCBhdWRpb1RyYWNrcywgdmlkZW9UcmFja3MpOwogCiAgICAgc3RyZWFtLnNldEV4
dHJhRGF0YShuZXcgTW9ja0V4dHJhRGF0YSgpKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ1NjM3YjIwZmM4MjA3YWMx
NTg4NTgwZTg3OTc5MWVkMWRjNjM5YzguLjg2MjM0NmEyODNmNDc0MGE5ZDY3Nzc3ZTk5ZDI0NThl
YjQ2YWFlYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMy0wMy0wNiAgTGkgWWluICA8bGku
eWluQGludGVsLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIER1bXBSZW5kZXJUcmVlIHNob3Vs
ZCBzdXBwb3J0IGlkIGF0dHJpYnV0ZSB0ZXN0IG9mIE1lZGlhU3RyZWFtCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE1MjYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3ViIHRlc3RzIHRvIHZlcmlm
eSBpZCBhdHRyaWJ1dGUgb2YgTWVkaWFTdHJlYW0uCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sOgorCiAyMDEzLTAzLTA1ICBD
bGF1ZGlvIFNhYXZlZHJhICA8Y3NhYXZlZHJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgTWFrZSB0
b2dnbGUtdW5saW5rLmh0bWwgdGVzdCBNYWMgc3BlY2lmaWMgYmVoYXZpb3VyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3ItZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0
cnVjdG9yLWV4cGVjdGVkLnR4dAppbmRleCBiMDA0NGE0NjQ1YTdjZjVlNTNiZmQwNDI3NTg3MjYy
MDhmY2ZhMjVlLi5jOTJiY2E5MTUyZDZlNWUwODg0NmE3YmJlMjMzMDUwOWQyMDQ2MjVmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0
b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Db25zdHJ1Y3Rvci1leHBlY3RlZC50eHQKQEAgLTcsNiArNyw3IEBAIFBBU1MgR290IGxv
Y2FsIHN0cmVhbS4KIFBBU1MgbG9jYWxTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMg
MQogUEFTUyBsb2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyAxCiBQQVNTIHR5
cGVvZiB3ZWJraXRNZWRpYVN0cmVhbSA9PT0gJ2Z1bmN0aW9uJyBpcyB0cnVlCitQQVNTIGNoZWNr
SWRBdHRyaWJ1dGUobG9jYWxTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgbmV3IHdlYmtpdE1lZGlh
U3RyZWFtKGRvY3VtZW50KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgog
UEFTUyBuZXcgd2Via2l0TWVkaWFTdHJlYW0oW2RvY3VtZW50XSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogSW52YWxpZCBBcnJheSBlbGVtZW50IHR5cGUuCiBQQVNTIG5ldyB3ZWJraXRNZWRp
YVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIGRvY3VtZW50XSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBBcnJheSBlbGVtZW50IHR5cGUuCkBAIC0yMSw2ICsy
Miw3IEBAIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwog
UEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5l
d1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBuVmlkZW8KIFBBU1MgbmV3U3RyZWFt
LmVuZGVkIGlzIHRydWUKK1BBU1MgY2hlY2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRy
dWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlz
IG5vbi1udWxsLgogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgpAQCAtMjgs
NiArMzAsNyBAQCBQQVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdNZWRpYVN0cmVh
bScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5BdWRpbwogUEFT
UyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCiBQQVNTIG5ld1N0
cmVhbS5lbmRlZCBpcyB0cnVlCitQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3U3RyZWFtLmlkKSBp
cyB0cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFt
XSBpcyBub24tbnVsbC4KIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KQEAg
LTM1LDYgKzM4LDcgQEAgUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFT
dHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8K
IFBBU1MgbmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwogUEFTUyBu
ZXdTdHJlYW0uZW5kZWQgaXMgZmFsc2UKK1BBU1MgY2hlY2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0u
aWQpIGlzIHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQQVNTIFtvYmplY3QgTWVkaWFT
dHJlYW1dIGlzIG5vbi1udWxsLgogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVk
LgpAQCAtNDIsNiArNDYsNyBAQCBQQVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdN
ZWRpYVN0cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5B
dWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCiBQ
QVNTIG5ld1N0cmVhbS5lbmRlZCBpcyBmYWxzZQorUEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0
cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0gY29uc3RydWN0ZWQKIFBBU1MgW29iamVjdCBN
ZWRpYVN0cmVhbV0gaXMgbm9uLW51bGwuCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIGRl
ZmluZWQuCkBAIC00OSw2ICs1NCw3IEBAIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5hbWUg
aXMgJ01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgg
aXMgbkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBuVmlk
ZW8KIFBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIGZhbHNlCitQQVNTIGNoZWNrSWRBdHRyaWJ1dGUo
bmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2Jq
ZWN0IE1lZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0g
aXMgZGVmaW5lZC4KQEAgLTU2LDYgKzYyLDcgQEAgUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3Iu
bmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxl
bmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlz
IG5WaWRlbwogUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgZmFsc2UKK1BBU1MgY2hlY2tJZEF0dHJp
YnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQQVNT
IFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIG5vbi1udWxsLgogUEFTUyBbb2JqZWN0IE1lZGlhU3Ry
ZWFtXSBpcyBkZWZpbmVkLgpAQCAtNjMsNiArNzAsNyBAQCBQQVNTIG5ld1N0cmVhbS5jb25zdHJ1
Y3Rvci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5n
dGggaXMgblZpZGVvCiBQQVNTIG5ld1N0cmVhbS5lbmRlZCBpcyBmYWxzZQorUEFTUyBjaGVja0lk
QXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0gY29uc3RydWN0ZWQK
IFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51bGwuCiBQQVNTIFtvYmplY3QgTWVk
aWFTdHJlYW1dIGlzIGRlZmluZWQuCkBAIC03MCw2ICs3OCw3IEBAIFBBU1MgbmV3U3RyZWFtLmNv
bnN0cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygp
Lmxlbmd0aCBpcyBuVmlkZW8KIFBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIHRydWUKK1BBU1MgY2hl
Y2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVj
dGVkCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIG5vbi1udWxsLgogUEFTUyBbb2JqZWN0
IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgpAQCAtNzcsNiArODYsNyBAQCBQQVNTIG5ld1N0cmVh
bS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1
ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFj
a3MoKS5sZW5ndGggaXMgblZpZGVvCiBQQVNTIG5ld1N0cmVhbS5lbmRlZCBpcyB0cnVlCitQQVNT
IGNoZWNrSWRBdHRyaWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25z
dHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KIFBBU1MgW29i
amVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KQEAgLTg0LDYgKzk0LDcgQEAgUEFTUyBuZXdT
dHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5n
ZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVv
VHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwogUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgdHJ1ZQor
UEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0g
Y29uc3RydWN0ZWQKIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51bGwuCiBQQVNT
IFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIGRlZmluZWQuCkBAIC05MSw2ICsxMDIsNyBAQCBQQVNT
IG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3U3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCiBQQVNTIG5ld1N0cmVhbS5lbmRlZCBpcyB0
cnVlCitQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwK
aW5kZXggNGY4NjA4MjEyNjA4ZjIzMjdhNjQzZWZhNDFhZjdhZmRmY2QwM2I2ZC4uYjYzNTJjODQx
MmU1MjM1MmY5ZjZiMTYyM2VkNjM5OWUxNTkzZDgxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwKQEAgLTE1
LDYgKzE1LDMxIEBAIHZhciBzdHJlYW07CiB2YXIgbmV3U3RyZWFtOwogdmFyIG5BdWRpbzsKIHZh
ciBuVmlkZW87Cit2YXIgaWRBcnJheSA9IG5ldyBBcnJheSgpOworCitmdW5jdGlvbiBjaGVja0lk
QXR0cmlidXRlKGlkKSB7CisgICAgaWYgKGlkLmxlbmd0aCAhPSAzNikKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWQubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgY2hhckNvZGUgPSBpZC5jaGFyQ29kZUF0KGkpOworICAgICAgICBpZiAoY2hhckNvZGUgPT0g
MHgyMSB8fAorICAgICAgICAgICAgKGNoYXJDb2RlID49IDB4MjMgJiYgY2hhckNvZGUgPD0gMHgy
NykgfHwKKyAgICAgICAgICAgIChjaGFyQ29kZSA+PSAweDJBICYmIGNoYXJDb2RlIDw9IDB4MkIp
IHx8CisgICAgICAgICAgICAoY2hhckNvZGUgPj0gMHgyRCAmJiBjaGFyQ29kZSA8PSAweDJFKSB8
fAorICAgICAgICAgICAgKGNoYXJDb2RlID49IDB4MzAgJiYgY2hhckNvZGUgPD0gMHgzOSkgfHwK
KyAgICAgICAgICAgIChjaGFyQ29kZSA+PSAweDQxICYmIGNoYXJDb2RlIDw9IDB4NUEpIHx8Cisg
ICAgICAgICAgICAoY2hhckNvZGUgPj0gMHg1RSAmJiBjaGFyQ29kZSA8PSAweDdFKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgaWRBcnJheS5sZW5ndGg7IGkrKykgeworICAgICAgICBpZiAoaWQgPT0g
aWRBcnJheVtpXSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgaWRBcnJh
eS5wdXNoKGlkKTsKKworICAgIHJldHVybiB0cnVlOworfQogCiBmdW5jdGlvbiBlcnJvcigpIHsK
ICAgICB0ZXN0RmFpbGVkKCdTdHJlYW0gZ2VuZXJhdGlvbiBmYWlsZWQuJyk7CkBAIC0zNyw3ICs2
Miw3IEBAIGZ1bmN0aW9uIGdvdFN0cmVhbShzKSB7CiAgICAgc2hvdWxkQmUoJ2xvY2FsU3RyZWFt
LmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKIAogICAgIHNob3VsZEJlVHJ1ZSgidHlw
ZW9mIHdlYmtpdE1lZGlhU3RyZWFtID09PSAnZnVuY3Rpb24nIik7Ci0KKyAgICBzaG91bGRCZVRy
dWUoJ2NoZWNrSWRBdHRyaWJ1dGUobG9jYWxTdHJlYW0uaWQpJyk7CiAgICAgdGVzdENvbnN0cnVj
dG9yKGxvY2FsU3RyZWFtKTsKIH0KIApAQCAtODksNiArMTE0LDggQEAgZnVuY3Rpb24gdmVyaWZ5
U3RyZWFtKHMsIG51bUF1ZGlvVHJhY2tzLCBudW1WaWRlb1RyYWNrcywgZW5kZWQpIHsKICAgICAg
ICAgc2hvdWxkQmVUcnVlKCduZXdTdHJlYW0uZW5kZWQnKTsKICAgICBlbHNlCiAgICAgICAgIHNo
b3VsZEJlRmFsc2UoJ25ld1N0cmVhbS5lbmRlZCcpOworCisgICAgc2hvdWxkQmVUcnVlKCdjaGVj
a0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCknKTsKIH0KIAogZ2V0VXNlck1lZGlhKHt2aWRlbzp0
cnVlLCBhdWRpbzp0cnVlfSwgZ290U3RyZWFtKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191868</attachid>
            <date>2013-03-06 16:55:38 -0800</date>
            <delta_ts>2013-03-07 01:08:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111526-20130307085151.patch</filename>
            <type>text/plain</type>
            <size>7489</size>
            <attacher name="Li Yin">li.yin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODg1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDU2MzdiMjBmYzgyMDdhYzE1ODg1
ODBlODc5NzkxZWQxZGM2MzljOC4uOWQ0MDRlMzQ5OGZlMTUxYzJmMzAyOGRkYTRmM2U3NzRlMmM2
MDE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAzLTA2ICBMaSBZaW4gIDxsaS55aW5A
aW50ZWwuY29tPgorCisgICAgICAgIEFkZGluZyBpZCBhdHRyaWJ1dGUgdGVzdCBmb3IgTWVkaWFT
dHJlYW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MTUyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNw
ZWM6IGh0dHA6Ly9kZXYudzMub3JnLzIwMTEvd2VicnRjL2VkaXRvci9nZXR1c2VybWVkaWEuaHRt
bCN3aWRsLU1lZGlhU3RyZWFtLWlkCisgICAgICAgIFRoZSBpZCBzdHJpbmdzIG11c3Qgb25seSB1
c2UgY2hhcmFjdGVycyBpbiB0aGUgcmFuZ2VzIFUrMDAyMSwgVSswMDIzIHRvIFUrMDAyNywKKyAg
ICAgICAgVSswMDJBIHRvIFUrMDAyQiwgVSswMDJEIHRvIFUrMDAyRSwgVSswMDMwIHRvIFUrMDAz
OSwgVSswMDQxIHRvIFUrMDA1QSwKKyAgICAgICAgVSswMDVFIHRvIFUrMDA3RSwgYW5kIG11c3Qg
YmUgMzYgY2hhcmFjdGVycyBsb25nLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbUNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRtbDoKKwogMjAxMy0wMy0wNSAgQ2xhdWRpbyBT
YWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIE1ha2UgdG9nZ2xlLXVu
bGluay5odG1sIHRlc3QgTWFjIHNwZWNpZmljIGJlaGF2aW91cgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci1l
eHBlY3RlZC50eHQKaW5kZXggYjAwNDRhNDY0NWE3Y2Y1ZTUzYmZkMDQyNzU4NzI2MjA4ZmNmYTI1
ZS4uYzkyYmNhOTE1MmQ2ZTVlMDg4NDZhN2JiZTIzMzA1MDlkMjA0NjI1ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29u
c3RydWN0b3ItZXhwZWN0ZWQudHh0CkBAIC03LDYgKzcsNyBAQCBQQVNTIEdvdCBsb2NhbCBzdHJl
YW0uCiBQQVNTIGxvY2FsU3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIDEKIFBBU1Mg
bG9jYWxTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgMQogUEFTUyB0eXBlb2Ygd2Vi
a2l0TWVkaWFTdHJlYW0gPT09ICdmdW5jdGlvbicgaXMgdHJ1ZQorUEFTUyBjaGVja0lkQXR0cmli
dXRlKGxvY2FsU3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIG5ldyB3ZWJraXRNZWRpYVN0cmVhbShk
b2N1bWVudCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KIFBBU1MgbmV3
IHdlYmtpdE1lZGlhU3RyZWFtKFtkb2N1bWVudF0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEludmFsaWQgQXJyYXkgZWxlbWVudCB0eXBlLgogUEFTUyBuZXcgd2Via2l0TWVkaWFTdHJlYW0o
W3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLCBkb2N1bWVudF0pIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEludmFsaWQgQXJyYXkgZWxlbWVudCB0eXBlLgpAQCAtMjEsNiArMjIsNyBAQCBQ
QVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3
U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCiBQQVNTIG5ld1N0cmVhbS5lbmRlZCBp
cyB0cnVlCitQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNT
IFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBub24tbnVs
bC4KIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KQEAgLTI4LDYgKzMwLDcg
QEAgUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNT
IG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3Ry
ZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwogUEFTUyBuZXdTdHJlYW0uZW5k
ZWQgaXMgdHJ1ZQorUEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQog
UEFTUyBTdHJlYW0gY29uc3RydWN0ZWQKIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgbm9u
LW51bGwuCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIGRlZmluZWQuCkBAIC0zNSw2ICsz
OCw3IEBAIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwog
UEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5l
d1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBuVmlkZW8KIFBBU1MgbmV3U3RyZWFt
LmVuZGVkIGlzIGZhbHNlCitQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0
cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBp
cyBub24tbnVsbC4KIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgZGVmaW5lZC4KQEAgLTQy
LDYgKzQ2LDcgQEAgUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJl
YW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBB
U1MgbmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5WaWRlbwogUEFTUyBuZXdT
dHJlYW0uZW5kZWQgaXMgZmFsc2UKK1BBU1MgY2hlY2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQp
IGlzIHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJl
YW1dIGlzIG5vbi1udWxsLgogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgpA
QCAtNDksNiArNTQsNyBAQCBQQVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rvci5uYW1lIGlzICdNZWRp
YVN0cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIGlzIG5BdWRp
bwogUEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgblZpZGVvCiBQQVNT
IG5ld1N0cmVhbS5lbmRlZCBpcyBmYWxzZQorUEFTUyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVh
bS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0gY29uc3RydWN0ZWQKIFBBU1MgW29iamVjdCBNZWRp
YVN0cmVhbV0gaXMgbm9uLW51bGwuCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIGRlZmlu
ZWQuCkBAIC01Niw2ICs2Miw3IEBAIFBBU1MgbmV3U3RyZWFtLmNvbnN0cnVjdG9yLm5hbWUgaXMg
J01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMg
bkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCBpcyBuVmlkZW8K
IFBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIGZhbHNlCitQQVNTIGNoZWNrSWRBdHRyaWJ1dGUobmV3
U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFTUyBbb2JqZWN0
IE1lZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KIFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMg
ZGVmaW5lZC4KQEAgLTYzLDYgKzcwLDcgQEAgUEFTUyBuZXdTdHJlYW0uY29uc3RydWN0b3IubmFt
ZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0
aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIG5W
aWRlbwogUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgZmFsc2UKK1BBU1MgY2hlY2tJZEF0dHJpYnV0
ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVjdGVkCiBQQVNTIFtv
YmplY3QgTWVkaWFTdHJlYW1dIGlzIG5vbi1udWxsLgogUEFTUyBbb2JqZWN0IE1lZGlhU3RyZWFt
XSBpcyBkZWZpbmVkLgpAQCAtNzAsNiArNzgsNyBAQCBQQVNTIG5ld1N0cmVhbS5jb25zdHJ1Y3Rv
ci5uYW1lIGlzICdNZWRpYVN0cmVhbScKIFBBU1MgbmV3U3RyZWFtLmdldEF1ZGlvVHJhY2tzKCku
bGVuZ3RoIGlzIG5BdWRpbwogUEFTUyBuZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgg
aXMgblZpZGVvCiBQQVNTIG5ld1N0cmVhbS5lbmRlZCBpcyB0cnVlCitQQVNTIGNoZWNrSWRBdHRy
aWJ1dGUobmV3U3RyZWFtLmlkKSBpcyB0cnVlCiBQQVNTIFN0cmVhbSBjb25zdHJ1Y3RlZAogUEFT
UyBbb2JqZWN0IE1lZGlhU3RyZWFtXSBpcyBub24tbnVsbC4KIFBBU1MgW29iamVjdCBNZWRpYVN0
cmVhbV0gaXMgZGVmaW5lZC4KQEAgLTc3LDYgKzg2LDcgQEAgUEFTUyBuZXdTdHJlYW0uY29uc3Ry
dWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRBdWRpb1RyYWNr
cygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVu
Z3RoIGlzIG5WaWRlbwogUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgdHJ1ZQorUEFTUyBjaGVja0lk
QXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBTdHJlYW0gY29uc3RydWN0ZWQK
IFBBU1MgW29iamVjdCBNZWRpYVN0cmVhbV0gaXMgbm9uLW51bGwuCiBQQVNTIFtvYmplY3QgTWVk
aWFTdHJlYW1dIGlzIGRlZmluZWQuCkBAIC04NCw2ICs5NCw3IEBAIFBBU1MgbmV3U3RyZWFtLmNv
bnN0cnVjdG9yLm5hbWUgaXMgJ01lZGlhU3RyZWFtJwogUEFTUyBuZXdTdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKS5sZW5ndGggaXMgbkF1ZGlvCiBQQVNTIG5ld1N0cmVhbS5nZXRWaWRlb1RyYWNrcygp
Lmxlbmd0aCBpcyBuVmlkZW8KIFBBU1MgbmV3U3RyZWFtLmVuZGVkIGlzIHRydWUKK1BBU1MgY2hl
Y2tJZEF0dHJpYnV0ZShuZXdTdHJlYW0uaWQpIGlzIHRydWUKIFBBU1MgU3RyZWFtIGNvbnN0cnVj
dGVkCiBQQVNTIFtvYmplY3QgTWVkaWFTdHJlYW1dIGlzIG5vbi1udWxsLgogUEFTUyBbb2JqZWN0
IE1lZGlhU3RyZWFtXSBpcyBkZWZpbmVkLgpAQCAtOTEsNiArMTAyLDcgQEAgUEFTUyBuZXdTdHJl
YW0uY29uc3RydWN0b3IubmFtZSBpcyAnTWVkaWFTdHJlYW0nCiBQQVNTIG5ld1N0cmVhbS5nZXRB
dWRpb1RyYWNrcygpLmxlbmd0aCBpcyBuQXVkaW8KIFBBU1MgbmV3U3RyZWFtLmdldFZpZGVvVHJh
Y2tzKCkubGVuZ3RoIGlzIG5WaWRlbwogUEFTUyBuZXdTdHJlYW0uZW5kZWQgaXMgdHJ1ZQorUEFT
UyBjaGVja0lkQXR0cmlidXRlKG5ld1N0cmVhbS5pZCkgaXMgdHJ1ZQogUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCmluZGV4IDRm
ODYwODIxMjYwOGYyMzI3YTY0M2VmYTQxYWY3YWZkZmNkMDNiNmQuLmI2MzUyYzg0MTJlNTIzNTJm
OWY2YjE2MjNlZDYzOTllMTU5M2Q4MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCkBAIC0xNSw2ICsxNSwz
MSBAQCB2YXIgc3RyZWFtOwogdmFyIG5ld1N0cmVhbTsKIHZhciBuQXVkaW87CiB2YXIgblZpZGVv
OwordmFyIGlkQXJyYXkgPSBuZXcgQXJyYXkoKTsKKworZnVuY3Rpb24gY2hlY2tJZEF0dHJpYnV0
ZShpZCkgeworICAgIGlmIChpZC5sZW5ndGggIT0gMzYpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGlkLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGNoYXJD
b2RlID0gaWQuY2hhckNvZGVBdChpKTsKKyAgICAgICAgaWYgKGNoYXJDb2RlID09IDB4MjEgfHwK
KyAgICAgICAgICAgIChjaGFyQ29kZSA+PSAweDIzICYmIGNoYXJDb2RlIDw9IDB4MjcpIHx8Cisg
ICAgICAgICAgICAoY2hhckNvZGUgPj0gMHgyQSAmJiBjaGFyQ29kZSA8PSAweDJCKSB8fAorICAg
ICAgICAgICAgKGNoYXJDb2RlID49IDB4MkQgJiYgY2hhckNvZGUgPD0gMHgyRSkgfHwKKyAgICAg
ICAgICAgIChjaGFyQ29kZSA+PSAweDMwICYmIGNoYXJDb2RlIDw9IDB4MzkpIHx8CisgICAgICAg
ICAgICAoY2hhckNvZGUgPj0gMHg0MSAmJiBjaGFyQ29kZSA8PSAweDVBKSB8fAorICAgICAgICAg
ICAgKGNoYXJDb2RlID49IDB4NUUgJiYgY2hhckNvZGUgPD0gMHg3RSkpCisgICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IGlkQXJyYXkubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgaWYgKGlkID09IGlkQXJyYXlb
aV0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIGlkQXJyYXkucHVzaChp
ZCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogZnVuY3Rpb24gZXJyb3IoKSB7CiAgICAgdGVz
dEZhaWxlZCgnU3RyZWFtIGdlbmVyYXRpb24gZmFpbGVkLicpOwpAQCAtMzcsNyArNjIsNyBAQCBm
dW5jdGlvbiBnb3RTdHJlYW0ocykgewogICAgIHNob3VsZEJlKCdsb2NhbFN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CiAKICAgICBzaG91bGRCZVRydWUoInR5cGVvZiB3ZWJr
aXRNZWRpYVN0cmVhbSA9PT0gJ2Z1bmN0aW9uJyIpOwotCisgICAgc2hvdWxkQmVUcnVlKCdjaGVj
a0lkQXR0cmlidXRlKGxvY2FsU3RyZWFtLmlkKScpOwogICAgIHRlc3RDb25zdHJ1Y3Rvcihsb2Nh
bFN0cmVhbSk7CiB9CiAKQEAgLTg5LDYgKzExNCw4IEBAIGZ1bmN0aW9uIHZlcmlmeVN0cmVhbShz
LCBudW1BdWRpb1RyYWNrcywgbnVtVmlkZW9UcmFja3MsIGVuZGVkKSB7CiAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgnbmV3U3RyZWFtLmVuZGVkJyk7CiAgICAgZWxzZQogICAgICAgICBzaG91bGRCZUZh
bHNlKCduZXdTdHJlYW0uZW5kZWQnKTsKKworICAgIHNob3VsZEJlVHJ1ZSgnY2hlY2tJZEF0dHJp
YnV0ZShuZXdTdHJlYW0uaWQpJyk7CiB9CiAKIGdldFVzZXJNZWRpYSh7dmlkZW86dHJ1ZSwgYXVk
aW86dHJ1ZX0sIGdvdFN0cmVhbSk7Cg==
</data>
<flag name="review"
          id="212940"
          type_id="1"
          status="+"
          setter="haraken"
    />
          </attachment>
      

    </bug>

</bugzilla>