<?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>93315</bug_id>
          
          <creation_ts>2012-08-06 18:15:06 -0700</creation_ts>
          <short_desc>[V8] Pass Isolate to ArrayValue and Dictionary</short_desc>
          <delta_ts>2012-08-08 02:45:43 -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>WebCore JavaScript</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>
          
          <blocked>84074</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>688638</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-06 18:15:06 -0700</bug_when>
    <thetext>We should pass Isolate to ArrayValue and Dictionary.

Rationale 1: We want to replace V8Proxy::throwError(ExceptionCode) with setDOMException(ExceptionCode, Isolate*). For the replacement, we need to pass Isolate to V8Utilities::extractTransferables(). To pass Isolate to V8Utilities::extractTransferables(), ( ...omitted... ), we need to pass Isolate* to ArrayValue and Dictionary.

Rationale 2: JSC already passes ExecState to ArrayValue and Dictionary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688642</commentid>
    <comment_count>1</comment_count>
      <attachid>156818</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-06 18:17:55 -0700</bug_when>
    <thetext>Created attachment 156818
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688651</commentid>
    <comment_count>2</comment_count>
      <attachid>156818</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 18:33:44 -0700</bug_when>
    <thetext>Comment on attachment 156818
Patch

Attachment 156818 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13451204</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688673</commentid>
    <comment_count>3</comment_count>
      <attachid>156825</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-06 18:53:02 -0700</bug_when>
    <thetext>Created attachment 156825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689452</commentid>
    <comment_count>4</comment_count>
      <attachid>156825</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-07 15:01:32 -0700</bug_when>
    <thetext>Comment on attachment 156825
Patch

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

&gt; Source/WebCore/bindings/v8/ArrayValue.h:60
&gt; +    v8::Isolate* m_isolate;

Is it ok to store a long-lived pointer to an isolate?  How do we know this pointer remains valid?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689726</commentid>
    <comment_count>5</comment_count>
      <attachid>157078</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-07 18:32:00 -0700</bug_when>
    <thetext>Created attachment 157078
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689727</commentid>
    <comment_count>6</comment_count>
      <attachid>157079</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-07 18:33:02 -0700</bug_when>
    <thetext>Created attachment 157079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689732</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-07 18:38:34 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebCore/bindings/v8/ArrayValue.h:60
&gt; &gt; +    v8::Isolate* m_isolate;
&gt; 
&gt; Is it ok to store a long-lived pointer to an isolate?  How do we know this pointer remains valid?

I think it&apos;s ok. Dictionary and ArrayValue are designed based on the assumption that they are allocated on stack. In fact,

- Dictionary already has m_options of type Local&lt;Value&gt;. ArrayValue already has m_array of type Local&lt;Array&gt;.

- JSC already stores ExecState in Dictionary and ArrayValue.

Just in case, I added ASSERT(m_isolate == v8::Isolate::Current()) to the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689898</commentid>
    <comment_count>8</comment_count>
      <attachid>157079</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-07 22:32:22 -0700</bug_when>
    <thetext>Comment on attachment 157079
Patch

Makes sense.  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689992</commentid>
    <comment_count>9</comment_count>
      <attachid>157079</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 00:06:39 -0700</bug_when>
    <thetext>Comment on attachment 157079
Patch

Rejecting attachment 157079 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
-merging Tools/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Optimize ChildNode{Insertion,Removal}Notifier::notify() by lazily taking a snapshot of child nodes

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.

Full output: http://queues.webkit.org/results/13459119</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690095</commentid>
    <comment_count>10</comment_count>
      <attachid>157079</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 02:45:39 -0700</bug_when>
    <thetext>Comment on attachment 157079
Patch

Clearing flags on attachment: 157079

Committed r125012: &lt;http://trac.webkit.org/changeset/125012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690096</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 02:45:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156818</attachid>
            <date>2012-08-06 18:17:55 -0700</date>
            <delta_ts>2012-08-06 18:52:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93315-20120807101731.patch</filename>
            <type>text/plain</type>
            <size>11020</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5MDRiYjcwZDdlZDVm
ODJmYWUxNjE1Y2RjNGFjYTZlMTRhNjhlMC4uMWUyNWViMmZjMzVmMGM3MTgyNjA0ZDhlYmVhMmIx
ZDEzN2M2MWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA4LTA2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byBBcnJheVZhbHVlIGFuZCBEaWN0aW9uYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzMxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcGFzc2VzIElzb2xhdGUgdG8gQXJy
YXlWYWx1ZSBhbmQgRGljdGlvbmFyeS4KKworICAgICAgICBSYXRpb25hbGUgMTogV2Ugd2FudCB0
byByZXBsYWNlIFY4UHJveHk6OnRocm93RXJyb3IoRXhjZXB0aW9uQ29kZSkKKyAgICAgICAgd2l0
aCBzZXRET01FeGNlcHRpb24oRXhjZXB0aW9uQ29kZSwgSXNvbGF0ZSopLiBGb3IgdGhlIHJlcGxh
Y2VtZW50LAorICAgICAgICB3ZSBuZWVkIHRvIHBhc3MgSXNvbGF0ZSB0byBWOFV0aWxpdGllczo6
ZXh0cmFjdFRyYW5zZmVyYWJsZXMoKS4KKyAgICAgICAgVG8gcGFzcyBJc29sYXRlIHRvIFY4VXRp
bGl0aWVzOjpleHRyYWN0VHJhbnNmZXJhYmxlcygpLCAoIC4uLm9taXR0ZWQuLi4gKSwKKyAgICAg
ICAgd2UgbmVlZCB0byBwYXNzIElzb2xhdGUgdG8gQXJyYXlWYWx1ZSBhbmQgRGljdGlvbmFyeS4K
KworICAgICAgICBSYXRpb25hbGUgMjogSlNDIGFscmVhZHkgcGFzc2VzIEV4ZWNTdGF0ZSB0byBB
cnJheVZhbHVlIGFuZCBEaWN0aW9uYXJ5LgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4
ZWRkYi8qCisgICAgICAgICAgICAgICBmYXN0L2ZpbGVzLyoKKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVFdmVudENvbnN0
cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNr
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvcHRpb25zT2JqZWN0Q2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXJyYXlWYWx1ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5VmFsdWU6
OmdldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QXJyYXlWYWx1ZTo6QXJyYXlWYWx1ZSk6CisgICAgICAgIChBcnJheVZhbHVlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
Y3Rpb25hcnk6OkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGlvbmFyeTo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmdldCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5oOgorICAgICAgICAoRGljdGlvbmFyeSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKwogMjAxMi0wOC0wNiAgTWF4IFZ1am92aWMgIDxtdnVq
b3ZpY0BhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFkZXJzXSBQYXJzZSBtaXggZnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KaW5kZXggNmYxNmZlYzhmNTM4MDY0YjJiZTk2MTVkOTUyZTAxOWY1MjA5YWI4NC4uY2Jm
ZmM2YjI5ZWY3YWFkNmIwY2VmODM2Yjc3ZGQ3NWM3ODM5Y2JkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE4OTIsNyAr
MTg5Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOCR7aW1wbENsYXNzTmFtZX06OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICAk
e2ltcGxDbGFzc05hbWV9SW5pdCBldmVudEluaXQ7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPj0g
MikgewotICAgICAgICBFWENFUFRJT05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgYXJnc1sx
XSk7CisgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvcHRpb25zLCBEaWN0aW9u
YXJ5KGFyZ3NbMV0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgICAgIGlmICghZmlsbCR7aW1w
bENsYXNzTmFtZX1Jbml0KGV2ZW50SW5pdCwgb3B0aW9ucykpCiAgICAgICAgICAgICByZXR1cm4g
djhVbmRlZmluZWQoKTsKICAgICB9CkBAIC0zNzI3LDcgKzM3MjcsNyBAQCBzdWIgSlNWYWx1ZVRv
TmF0aXZlCiAKICAgICBpZiAoJHR5cGUgZXEgIkRpY3Rpb25hcnkiKSB7CiAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJEaWN0aW9uYXJ5LmgiKTsKLSAgICAgICAgcmV0dXJuICR2YWx1ZTsKKyAg
ICAgICAgcmV0dXJuICJEaWN0aW9uYXJ5KCR2YWx1ZSwgJGdldElzb2xhdGUpIjsKICAgICB9CiAK
ICAgICBpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0
cnVjdG9yLmNwcAppbmRleCAyMTA3MzUwMWZkMGJhMjJlZGNkYzVjNWEzYmNhMzMzY2FkOGQzOWNi
Li4yMjkzNjc1NDVmNzZlYTdlMmI0ZWY0Y2QwMGI0NDk0ZTU5NTM0N2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQg
ZXZlbnRJbml0OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID49IDIpIHsKLSAgICAgICAgRVhDRVBU
SU9OX0JMT0NLKERpY3Rpb25hcnksIG9wdGlvbnMsIGFyZ3NbMV0pOworICAgICAgICBFWENFUFRJ
T05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgRGljdGlvbmFyeShhcmdzWzFdLCBhcmdzLkdl
dElzb2xhdGUoKSkpOwogICAgICAgICBpZiAoIWZpbGxUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQo
ZXZlbnRJbml0LCBvcHRpb25zKSkKICAgICAgICAgICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKaW5kZXggNjA4YTQ4ZmRjZjg3OTk4NWJiYzk4MDRjYzU3MTFkOTY3MTVi
NGQ3MC4uMWQwNTdmZDI1OTVkZDQ1ZmY3ZDUzOTRiZWVkZGRiZmI3MjQ1YWVlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKQEAgLTExODEsMTQgKzExODEsMTQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBv
cHRpb25zT2JqZWN0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhE
aWN0aW9uYXJ5LCBvbywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKERpY3Rpb25hcnksIG9vLCBEaWN0aW9u
YXJ5KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCks
IGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgaWYgKCFvby5pc1VuZGVmaW5lZE9yTnVsbCgpICYm
ICFvby5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
Ik5vdCBhbiBvYmplY3QuIiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIGlmIChhcmdzLkxlbmd0
aCgpIDw9IDEpIHsKICAgICAgICAgaW1wLT5vcHRpb25zT2JqZWN0KG9vKTsKICAgICAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5
LCBvb28sIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvb28sIERpY3Rpb25hcnkoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSwgYXJncy5H
ZXRJc29sYXRlKCkpKTsKICAgICBpZiAoIW9vby5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFvb28u
aXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJOb3Qg
YW4gb2JqZWN0LiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBpbXAtPm9wdGlvbnNPYmplY3Qo
b28sIG9vbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9BcnJheVZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwCmluZGV4
IGY5OTAwNzg5ZTY3MDY2ODc3MzEzM2I1NjlhMDU4MTVhODcwYmE2ZjIuLmM4NDAyZmQ3NmM2MzRl
ODE5ODQwZTk4NjVhNDc5MWNjZDE4OGI0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0FycmF5VmFsdWUuY3BwCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEFy
cmF5VmFsdWUmIEFycmF5VmFsdWU6Om9wZXJhdG9yPShjb25zdCBBcnJheVZhbHVlJiBvdGhlcikK
IHsKICAgICBtX2FycmF5ID0gb3RoZXIubV9hcnJheTsKKyAgICBtX2lzb2xhdGUgPSBvdGhlci5t
X2lzb2xhdGU7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC02Myw3ICs2NCw4IEBAIGJvb2wg
QXJyYXlWYWx1ZTo6Z2V0KHNpemVfdCBpbmRleCwgRGljdGlvbmFyeSYgdmFsdWUpIGNvbnN0CiAg
ICAgaWYgKGluZGV4ZWRWYWx1ZS5Jc0VtcHR5KCkgfHwgIWluZGV4ZWRWYWx1ZS0+SXNPYmplY3Qo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgdmFsdWUgPSBEaWN0aW9uYXJ5KGluZGV4
ZWRWYWx1ZSk7CisgICAgQVNTRVJUKG1faXNvbGF0ZSk7CisgICAgdmFsdWUgPSBEaWN0aW9uYXJ5
KGluZGV4ZWRWYWx1ZSwgbV9pc29sYXRlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oCmluZGV4IGJlMDE1NDFkZjg2NTUxNWViNjNm
NTQwNDA1OTBmZDAwMjU0ZGEyYzMuLjAyMWI4ZWM5NmQ5M2VhOWNmYWRmMDIzZmMxOTkyNmU2ZjFm
M2JlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0FycmF5VmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9BcnJheVZhbHVlLmgKQEAgLTM0LDgg
KzM0LDEzIEBAIGNsYXNzIERpY3Rpb25hcnk7CiAKIGNsYXNzIEFycmF5VmFsdWUgewogcHVibGlj
OgotICAgIEFycmF5VmFsdWUoKSB7IH0KLSAgICBleHBsaWNpdCBBcnJheVZhbHVlKGNvbnN0IHY4
OjpMb2NhbDx2ODo6QXJyYXk+JiBhcnJheSkgOiBtX2FycmF5KGFycmF5KSB7IH0KKyAgICBBcnJh
eVZhbHVlKCkgOiBtX2lzb2xhdGUoMCkgeyB9CisgICAgZXhwbGljaXQgQXJyYXlWYWx1ZShjb25z
dCB2ODo6TG9jYWw8djg6OkFycmF5PiYgYXJyYXksIHY4OjpJc29sYXRlKikKKyAgICAgICAgOiBt
X2FycmF5KGFycmF5KQorICAgICAgICAsIG1faXNvbGF0ZShpc29sYXRlKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKG1faXNvbGF0ZSk7CisgICAgfQogICAgIH5BcnJheVZhbHVlKCkgeyB9CiAKICAg
ICBBcnJheVZhbHVlJiBvcGVyYXRvcj0oY29uc3QgQXJyYXlWYWx1ZSYpOwpAQCAtNTIsNiArNTcs
NyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIG9wZXJhdG9yIGRlbGV0ZSh2b2lkICopOwog
CiAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gbV9hcnJheTsKKyAgICB2ODo6SXNvbGF0ZSogbV9p
c29sYXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
RGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNw
cAppbmRleCA2Y2Y1Njc5MWVlMWI0NTU2NTU1YWY5OGIxZGYxNDM0NmQyYWY1M2M2Li42YzJmZGRj
MDVhZjA0ODdmZDUzZDJlZTYyMDU0ODMyNGVlNjljOTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9EaWN0aW9uYXJ5LmNwcApAQCAtNjEsMTIgKzYxLDE1IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIERpY3Rpb25hcnk6OkRpY3Rpb25hcnkoKQorICAgIDogbV9pc29sYXRlKDApCiB7
CiB9CiAKLURpY3Rpb25hcnk6OkRpY3Rpb25hcnkoY29uc3Qgdjg6OkxvY2FsPHY4OjpWYWx1ZT4m
IG9wdGlvbnMpCitEaWN0aW9uYXJ5OjpEaWN0aW9uYXJ5KGNvbnN0IHY4OjpMb2NhbDx2ODo6VmFs
dWU+JiBvcHRpb25zLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKICAgICA6IG1fb3B0aW9ucyhvcHRp
b25zKQorICAgICwgbV9pc29sYXRlKGlzb2xhdGUpCiB7CisgICAgQVNTRVJUKG1faXNvbGF0ZSk7
CiB9CiAKIERpY3Rpb25hcnk6On5EaWN0aW9uYXJ5KCkKQEAgLTc2LDYgKzc5LDcgQEAgRGljdGlv
bmFyeTo6fkRpY3Rpb25hcnkoKQogRGljdGlvbmFyeSYgRGljdGlvbmFyeTo6b3BlcmF0b3I9KGNv
bnN0IERpY3Rpb25hcnkmIG9wdGlvbnNPYmplY3QpCiB7CiAgICAgbV9vcHRpb25zID0gb3B0aW9u
c09iamVjdC5tX29wdGlvbnM7CisgICAgbV9pc29sYXRlID0gb3B0aW9uc09iamVjdC5tX2lzb2xh
dGU7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC00MjAsNyArNDI0LDcgQEAgYm9vbCBEaWN0
aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIERpY3Rpb25hcnkmIHZhbHVlKSBjb25zdAog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAodjhWYWx1ZS0+SXNPYmplY3QoKSkKLSAg
ICAgICAgdmFsdWUgPSBEaWN0aW9uYXJ5KHY4VmFsdWUpOworICAgICAgICB2YWx1ZSA9IERpY3Rp
b25hcnkodjhWYWx1ZSwgbV9pc29sYXRlKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDUy
LDcgKzQ1Niw3IEBAIGJvb2wgRGljdGlvbmFyeTo6Z2V0KGNvbnN0IFN0cmluZyYga2V5LCBBcnJh
eVZhbHVlJiB2YWx1ZSkgY29uc3QKICAgICBpZiAoIXY4VmFsdWUtPklzQXJyYXkoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgdmFsdWUgPSBBcnJheVZhbHVlKHY4OjpMb2NhbDx2ODo6
QXJyYXk+OjpDYXN0KHY4VmFsdWUpKTsKKyAgICB2YWx1ZSA9IEFycmF5VmFsdWUodjg6OkxvY2Fs
PHY4OjpBcnJheT46OkNhc3QodjhWYWx1ZSksIG1faXNvbGF0ZSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnku
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuaAppbmRleCAxOTJiMzFm
NzJkNDAyYzEzMTBlNWZjYWNkZjFiN2QxYWViNDQ1OTlmLi44MzczYzdiMjhkM2EyNDEyYmQ2NmMz
YzA5N2JjOWI0NGQ3NDUxMDU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9EaWN0aW9uYXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFy
eS5oCkBAIC01Miw3ICs1Miw3IEBAIGNsYXNzIFRyYWNrQmFzZTsKIGNsYXNzIERpY3Rpb25hcnkg
ewogcHVibGljOgogICAgIERpY3Rpb25hcnkoKTsKLSAgICBEaWN0aW9uYXJ5KGNvbnN0IHY4OjpM
b2NhbDx2ODo6VmFsdWU+JiBvcHRpb25zKTsKKyAgICBEaWN0aW9uYXJ5KGNvbnN0IHY4OjpMb2Nh
bDx2ODo6VmFsdWU+JiBvcHRpb25zLCB2ODo6SXNvbGF0ZSopOwogICAgIH5EaWN0aW9uYXJ5KCk7
CiAKICAgICBEaWN0aW9uYXJ5JiBvcGVyYXRvcj0oY29uc3QgRGljdGlvbmFyeSYpOwpAQCAtMTA0
LDYgKzEwNCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZv
aWQgKik7CiAKICAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBtX29wdGlvbnM7CisgICAgdjg6Oklz
b2xhdGUqIG1faXNvbGF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOEJsb2JDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHAKaW5kZXggYmFjM2IwZjIwOTU0ZTkwOTMwMDk2
ZmI1NTdjZmVmYmI3MzcwYzI4Ni4uZWM1YWIzZjIyMWU0ODQ5MjgwNTlmNTg2YzUyZmU1ZmFmNDll
OTc0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Qmxv
YkN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Qmxv
YkN1c3RvbS5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4Qmxv
Yjo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogICAgICAg
ICBpZiAoIWFyZ3NbMV0tPklzT2JqZWN0KCkpCiAgICAgICAgICAgICByZXR1cm4gVjhQcm94eTo6
dGhyb3dUeXBlRXJyb3IoIlNlY29uZCBhcmd1bWVudCBvZiB0aGUgY29uc3RydWN0b3IgaXMgbm90
IG9mIHR5cGUgT2JqZWN0IiwgYXJncy5HZXRJc29sYXRlKCkpOwogCi0gICAgICAgIERpY3Rpb25h
cnkgZGljdGlvbmFyeShhcmdzWzFdKTsKKyAgICAgICAgRVhDRVBUSU9OX0JMT0NLKERpY3Rpb25h
cnksIGRpY3Rpb25hcnksIERpY3Rpb25hcnkoYXJnc1sxXSwgYXJncy5HZXRJc29sYXRlKCkpKTsK
IAogICAgICAgICB2ODo6VHJ5Q2F0Y2ggdHJ5Q2F0Y2hFbmRpbmdzOwogICAgICAgICBib29sIGNv
bnRhaW5zRW5kaW5ncyA9IGRpY3Rpb25hcnkuZ2V0KCJlbmRpbmdzIiwgZW5kaW5ncyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDb25zdHJ1
Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggNzlkNGQyNGZkZmJlYzc0YzJhOTlkYTgwZWIzMzUzNDZjMDZkOTJk
ZS4uOTkxZGZkYjlmNjJkM2Y0MjAyNTMyOTVmNTVjZjk4NzY5NWEzZmNkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50Q29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0cnVj
dG9yLmNwcApAQCAtNTcsNyArNTcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbnRlbnQ6
OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA9PSAxKSB7CiAgICAgICAgIC8vIFVzZSB0aGUgZGljdGlvbmFyeSBjb25z
dHJ1Y3Rvci4gVGhpcyBibG9jayB3aWxsIHJldHVybiBpZiB0aGUKICAgICAgICAgLy8gYXJndW1l
bnQgaXNuJ3QgYSB2YWxpZCBEaWN0aW9uYXJ5LgotICAgICAgICBFWENFUFRJT05fQkxPQ0soRGlj
dGlvbmFyeSwgb3B0aW9ucywgYXJnc1swXSk7CisgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0
aW9uYXJ5LCBvcHRpb25zLCBEaWN0aW9uYXJ5KGFyZ3NbMF0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSk7
CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAgICBSZWZQdHI8SW50ZW50PiBp
bXBsID0gSW50ZW50OjpjcmVhdGUoU2NyaXB0U3RhdGU6OmN1cnJlbnQoKSwgb3B0aW9ucywgZWMp
OwogICAgICAgICBpZiAoZWMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156825</attachid>
            <date>2012-08-06 18:53:02 -0700</date>
            <delta_ts>2012-08-07 18:32:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93315-20120807105238.patch</filename>
            <type>text/plain</type>
            <size>11028</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5MDRiYjcwZDdlZDVm
ODJmYWUxNjE1Y2RjNGFjYTZlMTRhNjhlMC4uMWUyNWViMmZjMzVmMGM3MTgyNjA0ZDhlYmVhMmIx
ZDEzN2M2MWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA4LTA2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byBBcnJheVZhbHVlIGFuZCBEaWN0aW9uYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzMxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcGFzc2VzIElzb2xhdGUgdG8gQXJy
YXlWYWx1ZSBhbmQgRGljdGlvbmFyeS4KKworICAgICAgICBSYXRpb25hbGUgMTogV2Ugd2FudCB0
byByZXBsYWNlIFY4UHJveHk6OnRocm93RXJyb3IoRXhjZXB0aW9uQ29kZSkKKyAgICAgICAgd2l0
aCBzZXRET01FeGNlcHRpb24oRXhjZXB0aW9uQ29kZSwgSXNvbGF0ZSopLiBGb3IgdGhlIHJlcGxh
Y2VtZW50LAorICAgICAgICB3ZSBuZWVkIHRvIHBhc3MgSXNvbGF0ZSB0byBWOFV0aWxpdGllczo6
ZXh0cmFjdFRyYW5zZmVyYWJsZXMoKS4KKyAgICAgICAgVG8gcGFzcyBJc29sYXRlIHRvIFY4VXRp
bGl0aWVzOjpleHRyYWN0VHJhbnNmZXJhYmxlcygpLCAoIC4uLm9taXR0ZWQuLi4gKSwKKyAgICAg
ICAgd2UgbmVlZCB0byBwYXNzIElzb2xhdGUgdG8gQXJyYXlWYWx1ZSBhbmQgRGljdGlvbmFyeS4K
KworICAgICAgICBSYXRpb25hbGUgMjogSlNDIGFscmVhZHkgcGFzc2VzIEV4ZWNTdGF0ZSB0byBB
cnJheVZhbHVlIGFuZCBEaWN0aW9uYXJ5LgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4
ZWRkYi8qCisgICAgICAgICAgICAgICBmYXN0L2ZpbGVzLyoKKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVFdmVudENvbnN0
cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNr
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvcHRpb25zT2JqZWN0Q2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXJyYXlWYWx1ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5VmFsdWU6
OmdldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QXJyYXlWYWx1ZTo6QXJyYXlWYWx1ZSk6CisgICAgICAgIChBcnJheVZhbHVlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
Y3Rpb25hcnk6OkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGlvbmFyeTo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmdldCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5oOgorICAgICAgICAoRGljdGlvbmFyeSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKwogMjAxMi0wOC0wNiAgTWF4IFZ1am92aWMgIDxtdnVq
b3ZpY0BhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFkZXJzXSBQYXJzZSBtaXggZnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KaW5kZXggNmYxNmZlYzhmNTM4MDY0YjJiZTk2MTVkOTUyZTAxOWY1MjA5YWI4NC4uY2Jm
ZmM2YjI5ZWY3YWFkNmIwY2VmODM2Yjc3ZGQ3NWM3ODM5Y2JkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE4OTIsNyAr
MTg5Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOCR7aW1wbENsYXNzTmFtZX06OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICAk
e2ltcGxDbGFzc05hbWV9SW5pdCBldmVudEluaXQ7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPj0g
MikgewotICAgICAgICBFWENFUFRJT05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgYXJnc1sx
XSk7CisgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvcHRpb25zLCBEaWN0aW9u
YXJ5KGFyZ3NbMV0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgICAgIGlmICghZmlsbCR7aW1w
bENsYXNzTmFtZX1Jbml0KGV2ZW50SW5pdCwgb3B0aW9ucykpCiAgICAgICAgICAgICByZXR1cm4g
djhVbmRlZmluZWQoKTsKICAgICB9CkBAIC0zNzI3LDcgKzM3MjcsNyBAQCBzdWIgSlNWYWx1ZVRv
TmF0aXZlCiAKICAgICBpZiAoJHR5cGUgZXEgIkRpY3Rpb25hcnkiKSB7CiAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJEaWN0aW9uYXJ5LmgiKTsKLSAgICAgICAgcmV0dXJuICR2YWx1ZTsKKyAg
ICAgICAgcmV0dXJuICJEaWN0aW9uYXJ5KCR2YWx1ZSwgJGdldElzb2xhdGUpIjsKICAgICB9CiAK
ICAgICBpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0
cnVjdG9yLmNwcAppbmRleCAyMTA3MzUwMWZkMGJhMjJlZGNkYzVjNWEzYmNhMzMzY2FkOGQzOWNi
Li4yMjkzNjc1NDVmNzZlYTdlMmI0ZWY0Y2QwMGI0NDk0ZTU5NTM0N2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQg
ZXZlbnRJbml0OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID49IDIpIHsKLSAgICAgICAgRVhDRVBU
SU9OX0JMT0NLKERpY3Rpb25hcnksIG9wdGlvbnMsIGFyZ3NbMV0pOworICAgICAgICBFWENFUFRJ
T05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgRGljdGlvbmFyeShhcmdzWzFdLCBhcmdzLkdl
dElzb2xhdGUoKSkpOwogICAgICAgICBpZiAoIWZpbGxUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQo
ZXZlbnRJbml0LCBvcHRpb25zKSkKICAgICAgICAgICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKaW5kZXggNjA4YTQ4ZmRjZjg3OTk4NWJiYzk4MDRjYzU3MTFkOTY3MTVi
NGQ3MC4uMWQwNTdmZDI1OTVkZDQ1ZmY3ZDUzOTRiZWVkZGRiZmI3MjQ1YWVlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKQEAgLTExODEsMTQgKzExODEsMTQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBv
cHRpb25zT2JqZWN0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhE
aWN0aW9uYXJ5LCBvbywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKERpY3Rpb25hcnksIG9vLCBEaWN0aW9u
YXJ5KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCks
IGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgaWYgKCFvby5pc1VuZGVmaW5lZE9yTnVsbCgpICYm
ICFvby5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
Ik5vdCBhbiBvYmplY3QuIiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIGlmIChhcmdzLkxlbmd0
aCgpIDw9IDEpIHsKICAgICAgICAgaW1wLT5vcHRpb25zT2JqZWN0KG9vKTsKICAgICAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5
LCBvb28sIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvb28sIERpY3Rpb25hcnkoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSwgYXJncy5H
ZXRJc29sYXRlKCkpKTsKICAgICBpZiAoIW9vby5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFvb28u
aXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJOb3Qg
YW4gb2JqZWN0LiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBpbXAtPm9wdGlvbnNPYmplY3Qo
b28sIG9vbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9BcnJheVZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwCmluZGV4
IGY5OTAwNzg5ZTY3MDY2ODc3MzEzM2I1NjlhMDU4MTVhODcwYmE2ZjIuLmM4NDAyZmQ3NmM2MzRl
ODE5ODQwZTk4NjVhNDc5MWNjZDE4OGI0ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0FycmF5VmFsdWUuY3BwCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEFy
cmF5VmFsdWUmIEFycmF5VmFsdWU6Om9wZXJhdG9yPShjb25zdCBBcnJheVZhbHVlJiBvdGhlcikK
IHsKICAgICBtX2FycmF5ID0gb3RoZXIubV9hcnJheTsKKyAgICBtX2lzb2xhdGUgPSBvdGhlci5t
X2lzb2xhdGU7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC02Myw3ICs2NCw4IEBAIGJvb2wg
QXJyYXlWYWx1ZTo6Z2V0KHNpemVfdCBpbmRleCwgRGljdGlvbmFyeSYgdmFsdWUpIGNvbnN0CiAg
ICAgaWYgKGluZGV4ZWRWYWx1ZS5Jc0VtcHR5KCkgfHwgIWluZGV4ZWRWYWx1ZS0+SXNPYmplY3Qo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgdmFsdWUgPSBEaWN0aW9uYXJ5KGluZGV4
ZWRWYWx1ZSk7CisgICAgQVNTRVJUKG1faXNvbGF0ZSk7CisgICAgdmFsdWUgPSBEaWN0aW9uYXJ5
KGluZGV4ZWRWYWx1ZSwgbV9pc29sYXRlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oCmluZGV4IGJlMDE1NDFkZjg2NTUxNWViNjNm
NTQwNDA1OTBmZDAwMjU0ZGEyYzMuLmRjOWNmNjk3NzhhMmRjZTBkMDI2MTU2ZGFiOGRiODBlNWM3
MjhjNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0FycmF5VmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9BcnJheVZhbHVlLmgKQEAgLTM0LDgg
KzM0LDEzIEBAIGNsYXNzIERpY3Rpb25hcnk7CiAKIGNsYXNzIEFycmF5VmFsdWUgewogcHVibGlj
OgotICAgIEFycmF5VmFsdWUoKSB7IH0KLSAgICBleHBsaWNpdCBBcnJheVZhbHVlKGNvbnN0IHY4
OjpMb2NhbDx2ODo6QXJyYXk+JiBhcnJheSkgOiBtX2FycmF5KGFycmF5KSB7IH0KKyAgICBBcnJh
eVZhbHVlKCkgOiBtX2lzb2xhdGUoMCkgeyB9CisgICAgZXhwbGljaXQgQXJyYXlWYWx1ZShjb25z
dCB2ODo6TG9jYWw8djg6OkFycmF5PiYgYXJyYXksIHY4OjpJc29sYXRlKiBpc29sYXRlKQorICAg
ICAgICA6IG1fYXJyYXkoYXJyYXkpCisgICAgICAgICwgbV9pc29sYXRlKGlzb2xhdGUpCisgICAg
eworICAgICAgICBBU1NFUlQobV9pc29sYXRlKTsKKyAgICB9CiAgICAgfkFycmF5VmFsdWUoKSB7
IH0KIAogICAgIEFycmF5VmFsdWUmIG9wZXJhdG9yPShjb25zdCBBcnJheVZhbHVlJik7CkBAIC01
Miw2ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgb3BlcmF0b3IgZGVsZXRlKHZv
aWQgKik7CiAKICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiBtX2FycmF5OworICAgIHY4OjpJc29s
YXRlKiBtX2lzb2xhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9EaWN0aW9uYXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rp
b25hcnkuY3BwCmluZGV4IDZjZjU2NzkxZWUxYjQ1NTY1NTVhZjk4YjFkZjE0MzQ2ZDJhZjUzYzYu
LjZjMmZkZGMwNWFmMDQ4N2ZkNTNkMmVlNjIwNTQ4MzI0ZWU2OWM5NGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0RpY3Rpb25hcnkuY3BwCkBAIC02MSwxMiArNjEsMTUgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogRGljdGlvbmFyeTo6RGljdGlvbmFyeSgpCisgICAgOiBtX2lzb2xh
dGUoMCkKIHsKIH0KIAotRGljdGlvbmFyeTo6RGljdGlvbmFyeShjb25zdCB2ODo6TG9jYWw8djg6
OlZhbHVlPiYgb3B0aW9ucykKK0RpY3Rpb25hcnk6OkRpY3Rpb25hcnkoY29uc3Qgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4mIG9wdGlvbnMsIHY4OjpJc29sYXRlKiBpc29sYXRlKQogICAgIDogbV9vcHRp
b25zKG9wdGlvbnMpCisgICAgLCBtX2lzb2xhdGUoaXNvbGF0ZSkKIHsKKyAgICBBU1NFUlQobV9p
c29sYXRlKTsKIH0KIAogRGljdGlvbmFyeTo6fkRpY3Rpb25hcnkoKQpAQCAtNzYsNiArNzksNyBA
QCBEaWN0aW9uYXJ5Ojp+RGljdGlvbmFyeSgpCiBEaWN0aW9uYXJ5JiBEaWN0aW9uYXJ5OjpvcGVy
YXRvcj0oY29uc3QgRGljdGlvbmFyeSYgb3B0aW9uc09iamVjdCkKIHsKICAgICBtX29wdGlvbnMg
PSBvcHRpb25zT2JqZWN0Lm1fb3B0aW9uczsKKyAgICBtX2lzb2xhdGUgPSBvcHRpb25zT2JqZWN0
Lm1faXNvbGF0ZTsKICAgICByZXR1cm4gKnRoaXM7CiB9CiAKQEAgLTQyMCw3ICs0MjQsNyBAQCBi
b29sIERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgRGljdGlvbmFyeSYgdmFsdWUp
IGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICh2OFZhbHVlLT5Jc09iamVj
dCgpKQotICAgICAgICB2YWx1ZSA9IERpY3Rpb25hcnkodjhWYWx1ZSk7CisgICAgICAgIHZhbHVl
ID0gRGljdGlvbmFyeSh2OFZhbHVlLCBtX2lzb2xhdGUpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC00NTIsNyArNDU2LDcgQEAgYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBr
ZXksIEFycmF5VmFsdWUmIHZhbHVlKSBjb25zdAogICAgIGlmICghdjhWYWx1ZS0+SXNBcnJheSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICB2YWx1ZSA9IEFycmF5VmFsdWUodjg6Okxv
Y2FsPHY4OjpBcnJheT46OkNhc3QodjhWYWx1ZSkpOworICAgIHZhbHVlID0gQXJyYXlWYWx1ZSh2
ODo6TG9jYWw8djg6OkFycmF5Pjo6Q2FzdCh2OFZhbHVlKSwgbV9pc29sYXRlKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGlj
dGlvbmFyeS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCmluZGV4
IDE5MmIzMWY3MmQ0MDJjMTMxMGU1ZmNhY2RmMWI3ZDFhZWI0NDU5OWYuLjgzNzNjN2IyOGQzYTI0
MTJiZDY2YzNjMDk3YmM5YjQ0ZDc0NTEwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RpY3Rpb25hcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9E
aWN0aW9uYXJ5LmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xhc3MgVHJhY2tCYXNlOwogY2xhc3MgRGlj
dGlvbmFyeSB7CiBwdWJsaWM6CiAgICAgRGljdGlvbmFyeSgpOwotICAgIERpY3Rpb25hcnkoY29u
c3Qgdjg6OkxvY2FsPHY4OjpWYWx1ZT4mIG9wdGlvbnMpOworICAgIERpY3Rpb25hcnkoY29uc3Qg
djg6OkxvY2FsPHY4OjpWYWx1ZT4mIG9wdGlvbnMsIHY4OjpJc29sYXRlKik7CiAgICAgfkRpY3Rp
b25hcnkoKTsKIAogICAgIERpY3Rpb25hcnkmIG9wZXJhdG9yPShjb25zdCBEaWN0aW9uYXJ5Jik7
CkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBvcGVyYXRvciBk
ZWxldGUodm9pZCAqKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IG1fb3B0aW9uczsKKyAg
ICB2ODo6SXNvbGF0ZSogbV9pc29sYXRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhCbG9iQ3VzdG9tLmNwcAppbmRleCBiYWMzYjBmMjA5NTRl
OTA5MzAwOTZmYjU1N2NmZWZiYjczNzBjMjg2Li5lYzVhYjNmMjIxZTQ4NDkyODA1OWY1ODZjNTJm
ZTVmYWY0OWU5NzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhCbG9iQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhCbG9iQ3VzdG9tLmNwcApAQCAtODcsNyArODcsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhCbG9iOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CiAgICAgICAgIGlmICghYXJnc1sxXS0+SXNPYmplY3QoKSkKICAgICAgICAgICAgIHJldHVybiBW
OFByb3h5Ojp0aHJvd1R5cGVFcnJvcigiU2Vjb25kIGFyZ3VtZW50IG9mIHRoZSBjb25zdHJ1Y3Rv
ciBpcyBub3Qgb2YgdHlwZSBPYmplY3QiLCBhcmdzLkdldElzb2xhdGUoKSk7CiAKLSAgICAgICAg
RGljdGlvbmFyeSBkaWN0aW9uYXJ5KGFyZ3NbMV0pOworICAgICAgICBFWENFUFRJT05fQkxPQ0so
RGljdGlvbmFyeSwgZGljdGlvbmFyeSwgRGljdGlvbmFyeShhcmdzWzFdLCBhcmdzLkdldElzb2xh
dGUoKSkpOwogCiAgICAgICAgIHY4OjpUcnlDYXRjaCB0cnlDYXRjaEVuZGluZ3M7CiAgICAgICAg
IGJvb2wgY29udGFpbnNFbmRpbmdzID0gZGljdGlvbmFyeS5nZXQoImVuZGluZ3MiLCBlbmRpbmdz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVu
dENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElu
dGVudENvbnN0cnVjdG9yLmNwcAppbmRleCA3OWQ0ZDI0ZmRmYmVjNzRjMmE5OWRhODBlYjMzNTM0
NmMwNmQ5MmRlLi45OTFkZmRiOWY2MmQzZjQyMDI1MzI5NWY1NWNmOTg3Njk1YTNmY2RjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRlbnRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50ZW50
Q29uc3RydWN0b3IuY3BwCkBAIC01Nyw3ICs1Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OEludGVudDo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQog
ICAgIGlmIChhcmdzLkxlbmd0aCgpID09IDEpIHsKICAgICAgICAgLy8gVXNlIHRoZSBkaWN0aW9u
YXJ5IGNvbnN0cnVjdG9yLiBUaGlzIGJsb2NrIHdpbGwgcmV0dXJuIGlmIHRoZQogICAgICAgICAv
LyBhcmd1bWVudCBpc24ndCBhIHZhbGlkIERpY3Rpb25hcnkuCi0gICAgICAgIEVYQ0VQVElPTl9C
TE9DSyhEaWN0aW9uYXJ5LCBvcHRpb25zLCBhcmdzWzBdKTsKKyAgICAgICAgRVhDRVBUSU9OX0JM
T0NLKERpY3Rpb25hcnksIG9wdGlvbnMsIERpY3Rpb25hcnkoYXJnc1swXSwgYXJncy5HZXRJc29s
YXRlKCkpKTsKICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgIFJlZlB0cjxJ
bnRlbnQ+IGltcGwgPSBJbnRlbnQ6OmNyZWF0ZShTY3JpcHRTdGF0ZTo6Y3VycmVudCgpLCBvcHRp
b25zLCBlYyk7CiAgICAgICAgIGlmIChlYykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157078</attachid>
            <date>2012-08-07 18:32:00 -0700</date>
            <delta_ts>2012-08-07 18:32:56 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-93315-20120808103134.patch</filename>
            <type>text/plain</type>
            <size>11315</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5MDRiYjcwZDdlZDVm
ODJmYWUxNjE1Y2RjNGFjYTZlMTRhNjhlMC4uMWUyNWViMmZjMzVmMGM3MTgyNjA0ZDhlYmVhMmIx
ZDEzN2M2MWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA4LTA2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byBBcnJheVZhbHVlIGFuZCBEaWN0aW9uYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzMxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcGFzc2VzIElzb2xhdGUgdG8gQXJy
YXlWYWx1ZSBhbmQgRGljdGlvbmFyeS4KKworICAgICAgICBSYXRpb25hbGUgMTogV2Ugd2FudCB0
byByZXBsYWNlIFY4UHJveHk6OnRocm93RXJyb3IoRXhjZXB0aW9uQ29kZSkKKyAgICAgICAgd2l0
aCBzZXRET01FeGNlcHRpb24oRXhjZXB0aW9uQ29kZSwgSXNvbGF0ZSopLiBGb3IgdGhlIHJlcGxh
Y2VtZW50LAorICAgICAgICB3ZSBuZWVkIHRvIHBhc3MgSXNvbGF0ZSB0byBWOFV0aWxpdGllczo6
ZXh0cmFjdFRyYW5zZmVyYWJsZXMoKS4KKyAgICAgICAgVG8gcGFzcyBJc29sYXRlIHRvIFY4VXRp
bGl0aWVzOjpleHRyYWN0VHJhbnNmZXJhYmxlcygpLCAoIC4uLm9taXR0ZWQuLi4gKSwKKyAgICAg
ICAgd2UgbmVlZCB0byBwYXNzIElzb2xhdGUgdG8gQXJyYXlWYWx1ZSBhbmQgRGljdGlvbmFyeS4K
KworICAgICAgICBSYXRpb25hbGUgMjogSlNDIGFscmVhZHkgcGFzc2VzIEV4ZWNTdGF0ZSB0byBB
cnJheVZhbHVlIGFuZCBEaWN0aW9uYXJ5LgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4
ZWRkYi8qCisgICAgICAgICAgICAgICBmYXN0L2ZpbGVzLyoKKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVFdmVudENvbnN0
cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNr
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvcHRpb25zT2JqZWN0Q2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXJyYXlWYWx1ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5VmFsdWU6
OmdldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QXJyYXlWYWx1ZTo6QXJyYXlWYWx1ZSk6CisgICAgICAgIChBcnJheVZhbHVlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
Y3Rpb25hcnk6OkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGlvbmFyeTo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmdldCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5oOgorICAgICAgICAoRGljdGlvbmFyeSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKwogMjAxMi0wOC0wNiAgTWF4IFZ1am92aWMgIDxtdnVq
b3ZpY0BhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFkZXJzXSBQYXJzZSBtaXggZnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KaW5kZXggNmYxNmZlYzhmNTM4MDY0YjJiZTk2MTVkOTUyZTAxOWY1MjA5YWI4NC4uY2Jm
ZmM2YjI5ZWY3YWFkNmIwY2VmODM2Yjc3ZGQ3NWM3ODM5Y2JkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE4OTIsNyAr
MTg5Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOCR7aW1wbENsYXNzTmFtZX06OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICAk
e2ltcGxDbGFzc05hbWV9SW5pdCBldmVudEluaXQ7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPj0g
MikgewotICAgICAgICBFWENFUFRJT05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgYXJnc1sx
XSk7CisgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvcHRpb25zLCBEaWN0aW9u
YXJ5KGFyZ3NbMV0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgICAgIGlmICghZmlsbCR7aW1w
bENsYXNzTmFtZX1Jbml0KGV2ZW50SW5pdCwgb3B0aW9ucykpCiAgICAgICAgICAgICByZXR1cm4g
djhVbmRlZmluZWQoKTsKICAgICB9CkBAIC0zNzI3LDcgKzM3MjcsNyBAQCBzdWIgSlNWYWx1ZVRv
TmF0aXZlCiAKICAgICBpZiAoJHR5cGUgZXEgIkRpY3Rpb25hcnkiKSB7CiAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJEaWN0aW9uYXJ5LmgiKTsKLSAgICAgICAgcmV0dXJuICR2YWx1ZTsKKyAg
ICAgICAgcmV0dXJuICJEaWN0aW9uYXJ5KCR2YWx1ZSwgJGdldElzb2xhdGUpIjsKICAgICB9CiAK
ICAgICBpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0
cnVjdG9yLmNwcAppbmRleCAyMTA3MzUwMWZkMGJhMjJlZGNkYzVjNWEzYmNhMzMzY2FkOGQzOWNi
Li4yMjkzNjc1NDVmNzZlYTdlMmI0ZWY0Y2QwMGI0NDk0ZTU5NTM0N2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQg
ZXZlbnRJbml0OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID49IDIpIHsKLSAgICAgICAgRVhDRVBU
SU9OX0JMT0NLKERpY3Rpb25hcnksIG9wdGlvbnMsIGFyZ3NbMV0pOworICAgICAgICBFWENFUFRJ
T05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgRGljdGlvbmFyeShhcmdzWzFdLCBhcmdzLkdl
dElzb2xhdGUoKSkpOwogICAgICAgICBpZiAoIWZpbGxUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQo
ZXZlbnRJbml0LCBvcHRpb25zKSkKICAgICAgICAgICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKaW5kZXggNjA4YTQ4ZmRjZjg3OTk4NWJiYzk4MDRjYzU3MTFkOTY3MTVi
NGQ3MC4uMWQwNTdmZDI1OTVkZDQ1ZmY3ZDUzOTRiZWVkZGRiZmI3MjQ1YWVlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKQEAgLTExODEsMTQgKzExODEsMTQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBv
cHRpb25zT2JqZWN0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhE
aWN0aW9uYXJ5LCBvbywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKERpY3Rpb25hcnksIG9vLCBEaWN0aW9u
YXJ5KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCks
IGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgaWYgKCFvby5pc1VuZGVmaW5lZE9yTnVsbCgpICYm
ICFvby5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
Ik5vdCBhbiBvYmplY3QuIiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIGlmIChhcmdzLkxlbmd0
aCgpIDw9IDEpIHsKICAgICAgICAgaW1wLT5vcHRpb25zT2JqZWN0KG9vKTsKICAgICAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5
LCBvb28sIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvb28sIERpY3Rpb25hcnkoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSwgYXJncy5H
ZXRJc29sYXRlKCkpKTsKICAgICBpZiAoIW9vby5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFvb28u
aXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJOb3Qg
YW4gb2JqZWN0LiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBpbXAtPm9wdGlvbnNPYmplY3Qo
b28sIG9vbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9BcnJheVZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwCmluZGV4
IGY5OTAwNzg5ZTY3MDY2ODc3MzEzM2I1NjlhMDU4MTVhODcwYmE2ZjIuLjU0MGY1ZTFhZWE3Njk4
M2E4Yjk3NTEzZWM5MTEwYTQyZGU1MmQ5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0FycmF5VmFsdWUuY3BwCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEFy
cmF5VmFsdWUmIEFycmF5VmFsdWU6Om9wZXJhdG9yPShjb25zdCBBcnJheVZhbHVlJiBvdGhlcikK
IHsKICAgICBtX2FycmF5ID0gb3RoZXIubV9hcnJheTsKKyAgICBtX2lzb2xhdGUgPSBvdGhlci5t
X2lzb2xhdGU7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC02Myw3ICs2NCw5IEBAIGJvb2wg
QXJyYXlWYWx1ZTo6Z2V0KHNpemVfdCBpbmRleCwgRGljdGlvbmFyeSYgdmFsdWUpIGNvbnN0CiAg
ICAgaWYgKGluZGV4ZWRWYWx1ZS5Jc0VtcHR5KCkgfHwgIWluZGV4ZWRWYWx1ZS0+SXNPYmplY3Qo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgdmFsdWUgPSBEaWN0aW9uYXJ5KGluZGV4
ZWRWYWx1ZSk7CisgICAgQVNTRVJUKG1faXNvbGF0ZSk7CisgICAgQVNTRVJUKG1faXNvbGF0ZSA9
PSB2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKKyAgICB2YWx1ZSA9IERpY3Rpb25hcnkoaW5k
ZXhlZFZhbHVlLCBtX2lzb2xhdGUpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9BcnJheVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9BcnJheVZhbHVlLmgKaW5kZXggYmUwMTU0MWRmODY1NTE1ZWI2M2Y1NDA0
MDU5MGZkMDAyNTRkYTJjMy4uZGM5Y2Y2OTc3OGEyZGNlMGQwMjYxNTZkYWI4ZGI4MGU1YzcyOGM0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0FycmF5VmFsdWUuaApAQCAtMzQsOCArMzQs
MTMgQEAgY2xhc3MgRGljdGlvbmFyeTsKIAogY2xhc3MgQXJyYXlWYWx1ZSB7CiBwdWJsaWM6Ci0g
ICAgQXJyYXlWYWx1ZSgpIHsgfQotICAgIGV4cGxpY2l0IEFycmF5VmFsdWUoY29uc3Qgdjg6Okxv
Y2FsPHY4OjpBcnJheT4mIGFycmF5KSA6IG1fYXJyYXkoYXJyYXkpIHsgfQorICAgIEFycmF5VmFs
dWUoKSA6IG1faXNvbGF0ZSgwKSB7IH0KKyAgICBleHBsaWNpdCBBcnJheVZhbHVlKGNvbnN0IHY4
OjpMb2NhbDx2ODo6QXJyYXk+JiBhcnJheSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCisgICAgICAg
IDogbV9hcnJheShhcnJheSkKKyAgICAgICAgLCBtX2lzb2xhdGUoaXNvbGF0ZSkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2lzb2xhdGUpOworICAgIH0KICAgICB+QXJyYXlWYWx1ZSgpIHsgfQog
CiAgICAgQXJyYXlWYWx1ZSYgb3BlcmF0b3I9KGNvbnN0IEFycmF5VmFsdWUmKTsKQEAgLTUyLDYg
KzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCAq
KTsKIAogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IG1fYXJyYXk7CisgICAgdjg6Oklzb2xhdGUq
IG1faXNvbGF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFy
eS5jcHAKaW5kZXggNmNmNTY3OTFlZTFiNDU1NjU1NWFmOThiMWRmMTQzNDZkMmFmNTNjNi4uN2Qz
NmM4ZWMxYTY5ODdhNmNlM2E4OGQyZTA4NGU3NmM1ZTBlYjNlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKQEAgLTYxLDEyICs2MSwxNSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBEaWN0aW9uYXJ5OjpEaWN0aW9uYXJ5KCkKKyAgICA6IG1faXNvbGF0ZSgw
KQogewogfQogCi1EaWN0aW9uYXJ5OjpEaWN0aW9uYXJ5KGNvbnN0IHY4OjpMb2NhbDx2ODo6VmFs
dWU+JiBvcHRpb25zKQorRGljdGlvbmFyeTo6RGljdGlvbmFyeShjb25zdCB2ODo6TG9jYWw8djg6
OlZhbHVlPiYgb3B0aW9ucywgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiAgICAgOiBtX29wdGlvbnMo
b3B0aW9ucykKKyAgICAsIG1faXNvbGF0ZShpc29sYXRlKQogeworICAgIEFTU0VSVChtX2lzb2xh
dGUpOwogfQogCiBEaWN0aW9uYXJ5Ojp+RGljdGlvbmFyeSgpCkBAIC03Niw2ICs3OSw3IEBAIERp
Y3Rpb25hcnk6On5EaWN0aW9uYXJ5KCkKIERpY3Rpb25hcnkmIERpY3Rpb25hcnk6Om9wZXJhdG9y
PShjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zT2JqZWN0KQogewogICAgIG1fb3B0aW9ucyA9IG9w
dGlvbnNPYmplY3QubV9vcHRpb25zOworICAgIG1faXNvbGF0ZSA9IG9wdGlvbnNPYmplY3QubV9p
c29sYXRlOwogICAgIHJldHVybiAqdGhpczsKIH0KIApAQCAtNDE5LDggKzQyMywxMSBAQCBib29s
IERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgRGljdGlvbmFyeSYgdmFsdWUpIGNv
bnN0CiAgICAgaWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKHY4VmFsdWUtPklzT2JqZWN0KCkpCi0gICAgICAgIHZhbHVlID0gRGljdGlv
bmFyeSh2OFZhbHVlKTsKKyAgICBpZiAodjhWYWx1ZS0+SXNPYmplY3QoKSkgeworICAgICAgICBB
U1NFUlQobV9pc29sYXRlKTsKKyAgICAgICAgQVNTRVJUKG1faXNvbGF0ZSA9PSB2ODo6SXNvbGF0
ZTo6R2V0Q3VycmVudCgpKTsKKyAgICAgICAgdmFsdWUgPSBEaWN0aW9uYXJ5KHY4VmFsdWUsIG1f
aXNvbGF0ZSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC00NTIsNyArNDU5LDkg
QEAgYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIEFycmF5VmFsdWUmIHZh
bHVlKSBjb25zdAogICAgIGlmICghdjhWYWx1ZS0+SXNBcnJheSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICB2YWx1ZSA9IEFycmF5VmFsdWUodjg6OkxvY2FsPHY4OjpBcnJheT46OkNh
c3QodjhWYWx1ZSkpOworICAgIEFTU0VSVChtX2lzb2xhdGUpOworICAgIEFTU0VSVChtX2lzb2xh
dGUgPT0gdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSk7CisgICAgdmFsdWUgPSBBcnJheVZhbHVl
KHY4OjpMb2NhbDx2ODo6QXJyYXk+OjpDYXN0KHY4VmFsdWUpLCBtX2lzb2xhdGUpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9E
aWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmgKaW5k
ZXggMTkyYjMxZjcyZDQwMmMxMzEwZTVmY2FjZGYxYjdkMWFlYjQ0NTk5Zi4uODM3M2M3YjI4ZDNh
MjQxMmJkNjZjM2MwOTdiYzliNDRkNzQ1MTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0RpY3Rpb25hcnkuaApAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBUcmFja0Jhc2U7CiBjbGFzcyBE
aWN0aW9uYXJ5IHsKIHB1YmxpYzoKICAgICBEaWN0aW9uYXJ5KCk7Ci0gICAgRGljdGlvbmFyeShj
b25zdCB2ODo6TG9jYWw8djg6OlZhbHVlPiYgb3B0aW9ucyk7CisgICAgRGljdGlvbmFyeShjb25z
dCB2ODo6TG9jYWw8djg6OlZhbHVlPiYgb3B0aW9ucywgdjg6Oklzb2xhdGUqKTsKICAgICB+RGlj
dGlvbmFyeSgpOwogCiAgICAgRGljdGlvbmFyeSYgb3BlcmF0b3I9KGNvbnN0IERpY3Rpb25hcnkm
KTsKQEAgLTEwNCw2ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIG9wZXJhdG9y
IGRlbGV0ZSh2b2lkICopOwogCiAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gbV9vcHRpb25zOwor
ICAgIHY4OjpJc29sYXRlKiBtX2lzb2xhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhCbG9iQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEJsb2JDdXN0b20uY3BwCmluZGV4IGJhYzNiMGYyMDk1
NGU5MDkzMDA5NmZiNTU3Y2ZlZmJiNzM3MGMyODYuLmVjNWFiM2YyMjFlNDg0OTI4MDU5ZjU4NmM1
MmZlNWZhZjQ5ZTk3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEJsb2JDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEJsb2JDdXN0b20uY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKICAgICAgICAgaWYgKCFhcmdzWzFdLT5Jc09iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJTZWNvbmQgYXJndW1lbnQgb2YgdGhlIGNvbnN0cnVj
dG9yIGlzIG5vdCBvZiB0eXBlIE9iamVjdCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAotICAgICAg
ICBEaWN0aW9uYXJ5IGRpY3Rpb25hcnkoYXJnc1sxXSk7CisgICAgICAgIEVYQ0VQVElPTl9CTE9D
SyhEaWN0aW9uYXJ5LCBkaWN0aW9uYXJ5LCBEaWN0aW9uYXJ5KGFyZ3NbMV0sIGFyZ3MuR2V0SXNv
bGF0ZSgpKSk7CiAKICAgICAgICAgdjg6OlRyeUNhdGNoIHRyeUNhdGNoRW5kaW5nczsKICAgICAg
ICAgYm9vbCBjb250YWluc0VuZGluZ3MgPSBkaWN0aW9uYXJ5LmdldCgiZW5kaW5ncyIsIGVuZGlu
Z3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50
ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SW50ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDc5ZDRkMjRmZGZiZWM3NGMyYTk5ZGE4MGViMzM1
MzQ2YzA2ZDkyZGUuLjk5MWRmZGI5ZjYyZDNmNDIwMjUzMjk1ZjU1Y2Y5ODc2OTVhM2ZjZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRl
bnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4SW50ZW50Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0gMSkgewogICAgICAgICAvLyBVc2UgdGhlIGRpY3Rp
b25hcnkgY29uc3RydWN0b3IuIFRoaXMgYmxvY2sgd2lsbCByZXR1cm4gaWYgdGhlCiAgICAgICAg
IC8vIGFyZ3VtZW50IGlzbid0IGEgdmFsaWQgRGljdGlvbmFyeS4KLSAgICAgICAgRVhDRVBUSU9O
X0JMT0NLKERpY3Rpb25hcnksIG9wdGlvbnMsIGFyZ3NbMF0pOworICAgICAgICBFWENFUFRJT05f
QkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgRGljdGlvbmFyeShhcmdzWzBdLCBhcmdzLkdldElz
b2xhdGUoKSkpOwogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgUmVmUHRy
PEludGVudD4gaW1wbCA9IEludGVudDo6Y3JlYXRlKFNjcmlwdFN0YXRlOjpjdXJyZW50KCksIG9w
dGlvbnMsIGVjKTsKICAgICAgICAgaWYgKGVjKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157079</attachid>
            <date>2012-08-07 18:33:02 -0700</date>
            <delta_ts>2012-08-08 02:45:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93315-20120808103236.patch</filename>
            <type>text/plain</type>
            <size>11315</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5MDRiYjcwZDdlZDVm
ODJmYWUxNjE1Y2RjNGFjYTZlMTRhNjhlMC4uMWUyNWViMmZjMzVmMGM3MTgyNjA0ZDhlYmVhMmIx
ZDEzN2M2MWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA4LTA2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdIFBhc3MgSXNv
bGF0ZSB0byBBcnJheVZhbHVlIGFuZCBEaWN0aW9uYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzMxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggcGFzc2VzIElzb2xhdGUgdG8gQXJy
YXlWYWx1ZSBhbmQgRGljdGlvbmFyeS4KKworICAgICAgICBSYXRpb25hbGUgMTogV2Ugd2FudCB0
byByZXBsYWNlIFY4UHJveHk6OnRocm93RXJyb3IoRXhjZXB0aW9uQ29kZSkKKyAgICAgICAgd2l0
aCBzZXRET01FeGNlcHRpb24oRXhjZXB0aW9uQ29kZSwgSXNvbGF0ZSopLiBGb3IgdGhlIHJlcGxh
Y2VtZW50LAorICAgICAgICB3ZSBuZWVkIHRvIHBhc3MgSXNvbGF0ZSB0byBWOFV0aWxpdGllczo6
ZXh0cmFjdFRyYW5zZmVyYWJsZXMoKS4KKyAgICAgICAgVG8gcGFzcyBJc29sYXRlIHRvIFY4VXRp
bGl0aWVzOjpleHRyYWN0VHJhbnNmZXJhYmxlcygpLCAoIC4uLm9taXR0ZWQuLi4gKSwKKyAgICAg
ICAgd2UgbmVlZCB0byBwYXNzIElzb2xhdGUgdG8gQXJyYXlWYWx1ZSBhbmQgRGljdGlvbmFyeS4K
KworICAgICAgICBSYXRpb25hbGUgMjogSlNDIGFscmVhZHkgcGFzc2VzIEV4ZWNTdGF0ZSB0byBB
cnJheVZhbHVlIGFuZCBEaWN0aW9uYXJ5LgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4
ZWRkYi8qCisgICAgICAgICAgICAgICBmYXN0L2ZpbGVzLyoKKworICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVFdmVudENvbnN0
cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNr
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvcHRpb25zT2JqZWN0Q2FsbGJhY2sp
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXJyYXlWYWx1ZTo6b3BlcmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkFycmF5VmFsdWU6
OmdldCk6CisgICAgICAgICogYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6QXJyYXlWYWx1ZTo6QXJyYXlWYWx1ZSk6CisgICAgICAgIChBcnJheVZhbHVlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRp
Y3Rpb25hcnk6OkRpY3Rpb25hcnkpOgorICAgICAgICAoV2ViQ29yZTo6RGljdGlvbmFyeTo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKFdlYkNvcmU6OkRpY3Rpb25hcnk6OmdldCk6CisgICAgICAgICog
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5oOgorICAgICAgICAoRGljdGlvbmFyeSk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4QmxvYkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOEludGVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW50ZW50
Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKToKKwogMjAxMi0wOC0wNiAgTWF4IFZ1am92aWMgIDxtdnVq
b3ZpY0BhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFkZXJzXSBQYXJzZSBtaXggZnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0KaW5kZXggNmYxNmZlYzhmNTM4MDY0YjJiZTk2MTVkOTUyZTAxOWY1MjA5YWI4NC4uY2Jm
ZmM2YjI5ZWY3YWFkNmIwY2VmODM2Yjc3ZGQ3NWM3ODM5Y2JkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTE4OTIsNyAr
MTg5Miw3IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOCR7aW1wbENsYXNzTmFtZX06OmNvbnN0
cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1F
VEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBhcmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICAk
e2ltcGxDbGFzc05hbWV9SW5pdCBldmVudEluaXQ7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPj0g
MikgewotICAgICAgICBFWENFUFRJT05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgYXJnc1sx
XSk7CisgICAgICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvcHRpb25zLCBEaWN0aW9u
YXJ5KGFyZ3NbMV0sIGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgICAgIGlmICghZmlsbCR7aW1w
bENsYXNzTmFtZX1Jbml0KGV2ZW50SW5pdCwgb3B0aW9ucykpCiAgICAgICAgICAgICByZXR1cm4g
djhVbmRlZmluZWQoKTsKICAgICB9CkBAIC0zNzI3LDcgKzM3MjcsNyBAQCBzdWIgSlNWYWx1ZVRv
TmF0aXZlCiAKICAgICBpZiAoJHR5cGUgZXEgIkRpY3Rpb25hcnkiKSB7CiAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJEaWN0aW9uYXJ5LmgiKTsKLSAgICAgICAgcmV0dXJuICR2YWx1ZTsKKyAg
ICAgICAgcmV0dXJuICJEaWN0aW9uYXJ5KCR2YWx1ZSwgJGdldElzb2xhdGUpIjsKICAgICB9CiAK
ICAgICBpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0
cnVjdG9yLmNwcAppbmRleCAyMTA3MzUwMWZkMGJhMjJlZGNkYzVjNWEzYmNhMzMzY2FkOGQzOWNi
Li4yMjkzNjc1NDVmNzZlYTdlMmI0ZWY0Y2QwMGI0NDk0ZTU5NTM0N2RlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCkBAIC03OSw3ICs3OSw3IEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0
IHY4OjpBcmd1CiAgICAgU1RSSU5HX1RPX1Y4UEFSQU1FVEVSX0VYQ0VQVElPTl9CTE9DSyhWOFBh
cmFtZXRlcjw+LCB0eXBlLCBhcmdzWzBdKTsKICAgICBUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQg
ZXZlbnRJbml0OwogICAgIGlmIChhcmdzLkxlbmd0aCgpID49IDIpIHsKLSAgICAgICAgRVhDRVBU
SU9OX0JMT0NLKERpY3Rpb25hcnksIG9wdGlvbnMsIGFyZ3NbMV0pOworICAgICAgICBFWENFUFRJ
T05fQkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgRGljdGlvbmFyeShhcmdzWzFdLCBhcmdzLkdl
dElzb2xhdGUoKSkpOwogICAgICAgICBpZiAoIWZpbGxUZXN0RXZlbnRDb25zdHJ1Y3RvckluaXQo
ZXZlbnRJbml0LCBvcHRpb25zKSkKICAgICAgICAgICAgIHJldHVybiB2OFVuZGVmaW5lZCgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE9iai5jcHAKaW5kZXggNjA4YTQ4ZmRjZjg3OTk4NWJiYzk4MDRjYzU3MTFkOTY3MTVi
NGQ3MC4uMWQwNTdmZDI1OTVkZDQ1ZmY3ZDUzOTRiZWVkZGRiZmI3MjQ1YWVlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKQEAgLTExODEsMTQgKzExODEsMTQgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBv
cHRpb25zT2JqZWN0Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICBpZiAo
YXJncy5MZW5ndGgoKSA8IDEpCiAgICAgICAgIHJldHVybiBWOFByb3h5Ojp0aHJvd05vdEVub3Vn
aEFyZ3VtZW50c0Vycm9yKGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBUZXN0T2JqKiBpbXAgPSBW
OFRlc3RPYmo6OnRvTmF0aXZlKGFyZ3MuSG9sZGVyKCkpOwotICAgIEVYQ0VQVElPTl9CTE9DSyhE
aWN0aW9uYXJ5LCBvbywgTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMCwgRGVmYXVsdElz
VW5kZWZpbmVkKSk7CisgICAgRVhDRVBUSU9OX0JMT0NLKERpY3Rpb25hcnksIG9vLCBEaWN0aW9u
YXJ5KE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDAsIERlZmF1bHRJc1VuZGVmaW5lZCks
IGFyZ3MuR2V0SXNvbGF0ZSgpKSk7CiAgICAgaWYgKCFvby5pc1VuZGVmaW5lZE9yTnVsbCgpICYm
ICFvby5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gVjhQcm94eTo6dGhyb3dUeXBlRXJyb3Io
Ik5vdCBhbiBvYmplY3QuIiwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIGlmIChhcmdzLkxlbmd0
aCgpIDw9IDEpIHsKICAgICAgICAgaW1wLT5vcHRpb25zT2JqZWN0KG9vKTsKICAgICAgICAgcmV0
dXJuIHY4VW5kZWZpbmVkKCk7CiAgICAgfQotICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5
LCBvb28sIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGFyZ3MsIDEsIERlZmF1bHRJc1VuZGVmaW5l
ZCkpOworICAgIEVYQ0VQVElPTl9CTE9DSyhEaWN0aW9uYXJ5LCBvb28sIERpY3Rpb25hcnkoTUFZ
QkVfTUlTU0lOR19QQVJBTUVURVIoYXJncywgMSwgRGVmYXVsdElzVW5kZWZpbmVkKSwgYXJncy5H
ZXRJc29sYXRlKCkpKTsKICAgICBpZiAoIW9vby5pc1VuZGVmaW5lZE9yTnVsbCgpICYmICFvb28u
aXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJOb3Qg
YW4gb2JqZWN0LiIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBpbXAtPm9wdGlvbnNPYmplY3Qo
b28sIG9vbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9BcnJheVZh
bHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwCmluZGV4
IGY5OTAwNzg5ZTY3MDY2ODc3MzEzM2I1NjlhMDU4MTVhODcwYmE2ZjIuLjU0MGY1ZTFhZWE3Njk4
M2E4Yjk3NTEzZWM5MTEwYTQyZGU1MmQ5YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0FycmF5VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0FycmF5VmFsdWUuY3BwCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEFy
cmF5VmFsdWUmIEFycmF5VmFsdWU6Om9wZXJhdG9yPShjb25zdCBBcnJheVZhbHVlJiBvdGhlcikK
IHsKICAgICBtX2FycmF5ID0gb3RoZXIubV9hcnJheTsKKyAgICBtX2lzb2xhdGUgPSBvdGhlci5t
X2lzb2xhdGU7CiAgICAgcmV0dXJuICp0aGlzOwogfQogCkBAIC02Myw3ICs2NCw5IEBAIGJvb2wg
QXJyYXlWYWx1ZTo6Z2V0KHNpemVfdCBpbmRleCwgRGljdGlvbmFyeSYgdmFsdWUpIGNvbnN0CiAg
ICAgaWYgKGluZGV4ZWRWYWx1ZS5Jc0VtcHR5KCkgfHwgIWluZGV4ZWRWYWx1ZS0+SXNPYmplY3Qo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgdmFsdWUgPSBEaWN0aW9uYXJ5KGluZGV4
ZWRWYWx1ZSk7CisgICAgQVNTRVJUKG1faXNvbGF0ZSk7CisgICAgQVNTRVJUKG1faXNvbGF0ZSA9
PSB2ODo6SXNvbGF0ZTo6R2V0Q3VycmVudCgpKTsKKyAgICB2YWx1ZSA9IERpY3Rpb25hcnkoaW5k
ZXhlZFZhbHVlLCBtX2lzb2xhdGUpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9BcnJheVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9BcnJheVZhbHVlLmgKaW5kZXggYmUwMTU0MWRmODY1NTE1ZWI2M2Y1NDA0
MDU5MGZkMDAyNTRkYTJjMy4uZGM5Y2Y2OTc3OGEyZGNlMGQwMjYxNTZkYWI4ZGI4MGU1YzcyOGM0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvQXJyYXlWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0FycmF5VmFsdWUuaApAQCAtMzQsOCArMzQs
MTMgQEAgY2xhc3MgRGljdGlvbmFyeTsKIAogY2xhc3MgQXJyYXlWYWx1ZSB7CiBwdWJsaWM6Ci0g
ICAgQXJyYXlWYWx1ZSgpIHsgfQotICAgIGV4cGxpY2l0IEFycmF5VmFsdWUoY29uc3Qgdjg6Okxv
Y2FsPHY4OjpBcnJheT4mIGFycmF5KSA6IG1fYXJyYXkoYXJyYXkpIHsgfQorICAgIEFycmF5VmFs
dWUoKSA6IG1faXNvbGF0ZSgwKSB7IH0KKyAgICBleHBsaWNpdCBBcnJheVZhbHVlKGNvbnN0IHY4
OjpMb2NhbDx2ODo6QXJyYXk+JiBhcnJheSwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCisgICAgICAg
IDogbV9hcnJheShhcnJheSkKKyAgICAgICAgLCBtX2lzb2xhdGUoaXNvbGF0ZSkKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX2lzb2xhdGUpOworICAgIH0KICAgICB+QXJyYXlWYWx1ZSgpIHsgfQog
CiAgICAgQXJyYXlWYWx1ZSYgb3BlcmF0b3I9KGNvbnN0IEFycmF5VmFsdWUmKTsKQEAgLTUyLDYg
KzU3LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBvcGVyYXRvciBkZWxldGUodm9pZCAq
KTsKIAogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IG1fYXJyYXk7CisgICAgdjg6Oklzb2xhdGUq
IG1faXNvbGF0ZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0RpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFy
eS5jcHAKaW5kZXggNmNmNTY3OTFlZTFiNDU1NjU1NWFmOThiMWRmMTQzNDZkMmFmNTNjNi4uN2Qz
NmM4ZWMxYTY5ODdhNmNlM2E4OGQyZTA4NGU3NmM1ZTBlYjNlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5jcHAKQEAgLTYxLDEyICs2MSwxNSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBEaWN0aW9uYXJ5OjpEaWN0aW9uYXJ5KCkKKyAgICA6IG1faXNvbGF0ZSgw
KQogewogfQogCi1EaWN0aW9uYXJ5OjpEaWN0aW9uYXJ5KGNvbnN0IHY4OjpMb2NhbDx2ODo6VmFs
dWU+JiBvcHRpb25zKQorRGljdGlvbmFyeTo6RGljdGlvbmFyeShjb25zdCB2ODo6TG9jYWw8djg6
OlZhbHVlPiYgb3B0aW9ucywgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiAgICAgOiBtX29wdGlvbnMo
b3B0aW9ucykKKyAgICAsIG1faXNvbGF0ZShpc29sYXRlKQogeworICAgIEFTU0VSVChtX2lzb2xh
dGUpOwogfQogCiBEaWN0aW9uYXJ5Ojp+RGljdGlvbmFyeSgpCkBAIC03Niw2ICs3OSw3IEBAIERp
Y3Rpb25hcnk6On5EaWN0aW9uYXJ5KCkKIERpY3Rpb25hcnkmIERpY3Rpb25hcnk6Om9wZXJhdG9y
PShjb25zdCBEaWN0aW9uYXJ5JiBvcHRpb25zT2JqZWN0KQogewogICAgIG1fb3B0aW9ucyA9IG9w
dGlvbnNPYmplY3QubV9vcHRpb25zOworICAgIG1faXNvbGF0ZSA9IG9wdGlvbnNPYmplY3QubV9p
c29sYXRlOwogICAgIHJldHVybiAqdGhpczsKIH0KIApAQCAtNDE5LDggKzQyMywxMSBAQCBib29s
IERpY3Rpb25hcnk6OmdldChjb25zdCBTdHJpbmcmIGtleSwgRGljdGlvbmFyeSYgdmFsdWUpIGNv
bnN0CiAgICAgaWYgKCFnZXRLZXkoa2V5LCB2OFZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKHY4VmFsdWUtPklzT2JqZWN0KCkpCi0gICAgICAgIHZhbHVlID0gRGljdGlv
bmFyeSh2OFZhbHVlKTsKKyAgICBpZiAodjhWYWx1ZS0+SXNPYmplY3QoKSkgeworICAgICAgICBB
U1NFUlQobV9pc29sYXRlKTsKKyAgICAgICAgQVNTRVJUKG1faXNvbGF0ZSA9PSB2ODo6SXNvbGF0
ZTo6R2V0Q3VycmVudCgpKTsKKyAgICAgICAgdmFsdWUgPSBEaWN0aW9uYXJ5KHY4VmFsdWUsIG1f
aXNvbGF0ZSk7CisgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC00NTIsNyArNDU5LDkg
QEAgYm9vbCBEaWN0aW9uYXJ5OjpnZXQoY29uc3QgU3RyaW5nJiBrZXksIEFycmF5VmFsdWUmIHZh
bHVlKSBjb25zdAogICAgIGlmICghdjhWYWx1ZS0+SXNBcnJheSgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICB2YWx1ZSA9IEFycmF5VmFsdWUodjg6OkxvY2FsPHY4OjpBcnJheT46OkNh
c3QodjhWYWx1ZSkpOworICAgIEFTU0VSVChtX2lzb2xhdGUpOworICAgIEFTU0VSVChtX2lzb2xh
dGUgPT0gdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQoKSk7CisgICAgdmFsdWUgPSBBcnJheVZhbHVl
KHY4OjpMb2NhbDx2ODo6QXJyYXk+OjpDYXN0KHY4VmFsdWUpLCBtX2lzb2xhdGUpOwogICAgIHJl
dHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9E
aWN0aW9uYXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EaWN0aW9uYXJ5LmgKaW5k
ZXggMTkyYjMxZjcyZDQwMmMxMzEwZTVmY2FjZGYxYjdkMWFlYjQ0NTk5Zi4uODM3M2M3YjI4ZDNh
MjQxMmJkNjZjM2MwOTdiYzliNDRkNzQ1MTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGljdGlvbmFyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0RpY3Rpb25hcnkuaApAQCAtNTIsNyArNTIsNyBAQCBjbGFzcyBUcmFja0Jhc2U7CiBjbGFzcyBE
aWN0aW9uYXJ5IHsKIHB1YmxpYzoKICAgICBEaWN0aW9uYXJ5KCk7Ci0gICAgRGljdGlvbmFyeShj
b25zdCB2ODo6TG9jYWw8djg6OlZhbHVlPiYgb3B0aW9ucyk7CisgICAgRGljdGlvbmFyeShjb25z
dCB2ODo6TG9jYWw8djg6OlZhbHVlPiYgb3B0aW9ucywgdjg6Oklzb2xhdGUqKTsKICAgICB+RGlj
dGlvbmFyeSgpOwogCiAgICAgRGljdGlvbmFyeSYgb3BlcmF0b3I9KGNvbnN0IERpY3Rpb25hcnkm
KTsKQEAgLTEwNCw2ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIG9wZXJhdG9y
IGRlbGV0ZSh2b2lkICopOwogCiAgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gbV9vcHRpb25zOwor
ICAgIHY4OjpJc29sYXRlKiBtX2lzb2xhdGU7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhCbG9iQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEJsb2JDdXN0b20uY3BwCmluZGV4IGJhYzNiMGYyMDk1
NGU5MDkzMDA5NmZiNTU3Y2ZlZmJiNzM3MGMyODYuLmVjNWFiM2YyMjFlNDg0OTI4MDU5ZjU4NmM1
MmZlNWZhZjQ5ZTk3NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEJsb2JDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOEJsb2JDdXN0b20uY3BwCkBAIC04Nyw3ICs4Nyw3IEBAIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBWOEJsb2I6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJn
cykKICAgICAgICAgaWYgKCFhcmdzWzFdLT5Jc09iamVjdCgpKQogICAgICAgICAgICAgcmV0dXJu
IFY4UHJveHk6OnRocm93VHlwZUVycm9yKCJTZWNvbmQgYXJndW1lbnQgb2YgdGhlIGNvbnN0cnVj
dG9yIGlzIG5vdCBvZiB0eXBlIE9iamVjdCIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKIAotICAgICAg
ICBEaWN0aW9uYXJ5IGRpY3Rpb25hcnkoYXJnc1sxXSk7CisgICAgICAgIEVYQ0VQVElPTl9CTE9D
SyhEaWN0aW9uYXJ5LCBkaWN0aW9uYXJ5LCBEaWN0aW9uYXJ5KGFyZ3NbMV0sIGFyZ3MuR2V0SXNv
bGF0ZSgpKSk7CiAKICAgICAgICAgdjg6OlRyeUNhdGNoIHRyeUNhdGNoRW5kaW5nczsKICAgICAg
ICAgYm9vbCBjb250YWluc0VuZGluZ3MgPSBkaWN0aW9uYXJ5LmdldCgiZW5kaW5ncyIsIGVuZGlu
Z3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW50
ZW50Q29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SW50ZW50Q29uc3RydWN0b3IuY3BwCmluZGV4IDc5ZDRkMjRmZGZiZWM3NGMyYTk5ZGE4MGViMzM1
MzQ2YzA2ZDkyZGUuLjk5MWRmZGI5ZjYyZDNmNDIwMjUzMjk1ZjU1Y2Y5ODc2OTVhM2ZjZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEludGVudENvbnN0
cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbnRl
bnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IFY4SW50ZW50Ojpjb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3Mp
CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPT0gMSkgewogICAgICAgICAvLyBVc2UgdGhlIGRpY3Rp
b25hcnkgY29uc3RydWN0b3IuIFRoaXMgYmxvY2sgd2lsbCByZXR1cm4gaWYgdGhlCiAgICAgICAg
IC8vIGFyZ3VtZW50IGlzbid0IGEgdmFsaWQgRGljdGlvbmFyeS4KLSAgICAgICAgRVhDRVBUSU9O
X0JMT0NLKERpY3Rpb25hcnksIG9wdGlvbnMsIGFyZ3NbMF0pOworICAgICAgICBFWENFUFRJT05f
QkxPQ0soRGljdGlvbmFyeSwgb3B0aW9ucywgRGljdGlvbmFyeShhcmdzWzBdLCBhcmdzLkdldElz
b2xhdGUoKSkpOwogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgUmVmUHRy
PEludGVudD4gaW1wbCA9IEludGVudDo6Y3JlYXRlKFNjcmlwdFN0YXRlOjpjdXJyZW50KCksIG9w
dGlvbnMsIGVjKTsKICAgICAgICAgaWYgKGVjKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>