<?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>81069</bug_id>
          
          <creation_ts>2012-03-13 19:04:51 -0700</creation_ts>
          <short_desc>Implement :scope for element.querySelector[All]()</short_desc>
          <delta_ts>2013-03-13 02:12:04 -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>CSS</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="Roland Steiner">rolandsteiner</reporter>
          <assigned_to name="Takashi Sakamoto">tasak</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>bronislav.klucka</cc>
    
    <cc>dglazkov</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>hayato</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>578103</commentid>
    <comment_count>0</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-03-13 19:04:51 -0700</bug_when>
    <thetext>If querySelector() or querySelectorAll() are called on an element, that element should act as the context node for :scope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587486</commentid>
    <comment_count>1</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-03-25 23:34:25 -0700</bug_when>
    <thetext>Implementing this requires changing the code such that selector matching is allowed to exceed the scope/context element, e.g., as done in the patch for bug 79075.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587504</commentid>
    <comment_count>2</comment_count>
    <who name="Bronislav Klucka">bronislav.klucka</who>
    <bug_when>2012-03-26 00:02:34 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Implementing this requires changing the code such that selector matching is allowed to exceed the scope/context element, e.g., as done in the patch for bug 79075.

Hello, what does it actually mean in terms of &quot;when it will be done&quot;? 

Brona</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588406</commentid>
    <comment_count>3</comment_count>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-03-26 18:07:28 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Hello, what does it actually mean in terms of &quot;when it will be done&quot;? 

It means we need to assess the benefits of this feature vs. the potential performance cost of its implementation. At least it will require some amount of refactoring for a nice implementation.

At the moment I don&apos;t have the spare cycles to implement this, but I&apos;ll get back to it in the (hopefully not so distant) future in case nobody else tackled it in the meantime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>592043</commentid>
    <comment_count>4</comment_count>
      <attachid>134774</attachid>
    <who name="Roland Steiner">rolandsteiner</who>
    <bug_when>2012-03-30 04:30:53 -0700</bug_when>
    <thetext>Created attachment 134774
Layout test

Layout test (to go in LayoutTests/fast/dom/SelectorAPI/element-scope.html)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621431</commentid>
    <comment_count>5</comment_count>
    <who name="Bronislav Klucka">bronislav.klucka</who>
    <bug_when>2012-05-11 02:35:58 -0700</bug_when>
    <thetext>Any plans here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847215</commentid>
    <comment_count>6</comment_count>
    <who name="Bronislav Klucka">bronislav.klucka</who>
    <bug_when>2013-03-04 20:15:19 -0800</bug_when>
    <thetext>hi, any news?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848507</commentid>
    <comment_count>7</comment_count>
      <attachid>191660</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-03-05 23:32:14 -0800</bug_when>
    <thetext>Created attachment 191660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848857</commentid>
    <comment_count>8</comment_count>
      <attachid>191660</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-03-06 07:41:12 -0800</bug_when>
    <thetext>Comment on attachment 191660
Patch

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

&gt; Source/WebCore/css/SelectorChecker.h:83
&gt; +        const Node* contextualReferenceNode;

Don&apos;t we already have scope stored? It seems bad to have both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852141</commentid>
    <comment_count>9</comment_count>
      <attachid>191660</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-03-11 02:51:12 -0700</bug_when>
    <thetext>Comment on attachment 191660
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/css/SelectorChecker.h:83
&gt;&gt; +        const Node* contextualReferenceNode;
&gt; 
&gt; Don&apos;t we already have scope stored? It seems bad to have both.

If only scoped style uses &quot;scope&quot;, I will use. However, the scope is also used by :distributed. So I would like to confirm whether we can use &quot;:distributed&quot; in element.querySelectorAll or something. If so, scope value set by distributed is the same as contextual reference node...? I will add hayato@ to CC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852167</commentid>
    <comment_count>10</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-03-11 03:40:30 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 191660 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191660&amp;action=review
&gt; 
&gt; Thank you for reviewing.
&gt; 
&gt; &gt;&gt; Source/WebCore/css/SelectorChecker.h:83
&gt; &gt;&gt; +        const Node* contextualReferenceNode;
&gt; &gt; 
&gt; &gt; Don&apos;t we already have scope stored? It seems bad to have both.
&gt; 
&gt; If only scoped style uses &quot;scope&quot;, I will use. However, the scope is also used by :distributed. So I would like to confirm whether we can use &quot;:distributed&quot; in element.querySelectorAll or something. If so, scope value set by distributed is the same as contextual reference node...? I will add hayato@ to CC.

I found the following in http://www.w3.org/TR/selectors-api2/
&quot;Authors are advised that while the use of pseudo-elements in selectors is permitted, they will not match any elements in the document, and thus would not result in any elements being returned. Therefore, authors are advised to avoid the use of pseudo-elements in selectors that are passed to the methods defined in this specification&quot;

So querySelector with ::distributed returns no results. I will try to re-use &quot;scope&quot;.
I have to add a new behavior to SelectorChecker::BehhaviorAtBoundary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853038</commentid>
    <comment_count>11</comment_count>
      <attachid>192630</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-03-11 21:14:03 -0700</bug_when>
    <thetext>Created attachment 192630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853045</commentid>
    <comment_count>12</comment_count>
      <attachid>192630</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-03-11 21:34:49 -0700</bug_when>
    <thetext>Comment on attachment 192630
Patch

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

&gt; Source/WebCore/css/SelectorChecker.h:51
&gt; +    enum BehaviorAtBoundary { DoesNotCrossBoundary, CrossesBoundary, CrossesScopeNotTreeScope };

StaysWithinTreeScope?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853094</commentid>
    <comment_count>13</comment_count>
      <attachid>192645</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-03-11 23:03:08 -0700</bug_when>
    <thetext>Created attachment 192645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853095</commentid>
    <comment_count>14</comment_count>
      <attachid>192630</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-03-11 23:03:55 -0700</bug_when>
    <thetext>Comment on attachment 192630
Patch

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

&gt;&gt; Source/WebCore/css/SelectorChecker.h:51
&gt;&gt; +    enum BehaviorAtBoundary { DoesNotCrossBoundary, CrossesBoundary, CrossesScopeNotTreeScope };
&gt; 
&gt; StaysWithinTreeScope?

I see. Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853526</commentid>
    <comment_count>15</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-03-12 09:08:25 -0700</bug_when>
    <thetext>Okay. I&apos;ll let you land it when you&apos;re awake :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853527</commentid>
    <comment_count>16</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-03-12 09:09:39 -0700</bug_when>
    <thetext>FWIW, I think that BehaviorAtBoundary enum looks slightly overloaded now. The difference between DoesNotCrossBoundary and StaysWithinTreeScope is too subtle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854119</commentid>
    <comment_count>17</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2013-03-13 01:32:58 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; FWIW, I think that BehaviorAtBoundary enum looks slightly overloaded now. The difference between DoesNotCrossBoundary and StaysWithinTreeScope is too subtle.

I see. I would like to try this issue in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854138</commentid>
    <comment_count>18</comment_count>
      <attachid>192645</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 02:11:59 -0700</bug_when>
    <thetext>Comment on attachment 192645
Patch

Clearing flags on attachment: 192645

Committed r145691: &lt;http://trac.webkit.org/changeset/145691&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854139</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-13 02:12:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>134774</attachid>
            <date>2012-03-30 04:30:53 -0700</date>
            <delta_ts>2012-03-30 04:30:53 -0700</delta_ts>
            <desc>Layout test</desc>
            <filename>element-scope.html</filename>
            <type>text/html</type>
            <size>1839</size>
            <attacher name="Roland Steiner">rolandsteiner</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgo8L2hlYWQ+Cjxib2R5PgogICAgPGRp
diBpZD0id2l0aENoaWxkIiBjbGFzcz0idGVzdCI+CiAgICAgICAgPGRpdiBpZD0iY2hpbGQiIGNs
YXNzPSJ0ZXN0Ij48L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBpZD0ibm9DaGlsZCIgY2xhc3M9
InRlc3QiPjwvZGl2PgogICAgPHNjcmlwdD4KICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IDpzY29wZSBtYXRjaGVzIHRoZSBiYXNlIGVsZW1lbnQgaW4gZWxlbWVudC5xdWVyeVNl
bGVjdG9yW0FsbF0sIGFuZCB0aGUgOnJvb3QgaW4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcltBbGxd
Iik7CgogICAgICAgIHZhciB3aXRoQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2l0
aENoaWxkIik7CiAgICAgICAgdmFyIGNoaWxkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNo
aWxkIik7CiAgICAgICAgdmFyIG5vQ2hpbGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm9D
aGlsZCIpOwoKICAgICAgICBzaG91bGRCZSgid2l0aENoaWxkLnF1ZXJ5U2VsZWN0b3IoJ2JvZHkg
OnNjb3BlIGRpdicpIiwgImNoaWxkIik7CiAgICAgICAgc2hvdWxkQmUoIndpdGhDaGlsZC5xdWVy
eVNlbGVjdG9yQWxsKCdib2R5IDpzY29wZSBkaXYnKS5sZW5ndGgiLCAiMSIpOwogICAgICAgIHNo
b3VsZEJlKCJ3aXRoQ2hpbGQucXVlcnlTZWxlY3RvckFsbCgnYm9keSA6c2NvcGUgZGl2JykuaXRl
bSgwKSIsICJjaGlsZCIpOwoKICAgICAgICBzaG91bGRCZU51bGwoIndpdGhDaGlsZC5xdWVyeVNl
bGVjdG9yKCc6c2NvcGUnKSIpOwogICAgICAgIHNob3VsZEJlKCJ3aXRoQ2hpbGQucXVlcnlTZWxl
Y3RvckFsbCgnOnNjb3BlJykubGVuZ3RoIiwgIjAiKTsKCiAgICAgICAgc2hvdWxkQmVOdWxsKCJ3
aXRoQ2hpbGQucXVlcnlTZWxlY3RvcignOnNjb3BlIGRpdiBkaXYnKSIpOwogICAgICAgIHNob3Vs
ZEJlKCJ3aXRoQ2hpbGQucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlIGRpdiBkaXYnKS5sZW5ndGgi
LCAiMCIpOwoKICAgICAgICBzaG91bGRCZU51bGwoIm5vQ2hpbGQucXVlcnlTZWxlY3RvcignOnNj
b3BlJykiKTsKICAgICAgICBzaG91bGRCZSgibm9DaGlsZC5xdWVyeVNlbGVjdG9yQWxsKCc6c2Nv
cGUnKS5sZW5ndGgiLCAiMCIpOwoKICAgICAgICBzaG91bGRCZU51bGwoIm5vQ2hpbGQucXVlcnlT
ZWxlY3RvcignOnNjb3BlIGRpdicpIik7CiAgICAgICAgc2hvdWxkQmUoIm5vQ2hpbGQucXVlcnlT
ZWxlY3RvckFsbCgnOnNjb3BlIGRpdicpLmxlbmd0aCIsICIwIik7CgogICAgICAgIHNob3VsZEJl
KCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCc6c2NvcGUgLnRlc3QnKSIsICJ3aXRoQ2hpbGQiKTsK
ICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlIC50ZXN0
JykubGVuZ3RoIiwgIjMiKTsKICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnOnNjb3BlIC50ZXN0JykuaXRlbSgwKSIsICJ3aXRoQ2hpbGQiKTsKICAgICAgICBzaG91
bGRCZSgiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnOnNjb3BlIC50ZXN0JykuaXRlbSgxKSIs
ICJjaGlsZCIpOwogICAgICAgIHNob3VsZEJlKCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCc6
c2NvcGUgLnRlc3QnKS5pdGVtKDIpIiwgIm5vQ2hpbGQiKTsKICAgIDwvc2NyaXB0PgogICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgo8
L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191660</attachid>
            <date>2013-03-05 23:32:14 -0800</date>
            <delta_ts>2013-03-11 21:13:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81069-20130306162820.patch</filename>
            <type>text/plain</type>
            <size>13716</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTY4NzY2ZTQwYzg5NDlm
M2FlZjY0ZGM4OTdlNmUwOGUwZGQyODVkZS4uZjYyZDM3NjA0OGE0MWIyN2QxZGQwZmUxNjA3ZDFj
MGQ4YzQzNDVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAzLTA1ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgOnNj
b3BlIGZvciBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JbQWxsXSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudGVkIDpzY29wZSBmb3IgZWxlbWVu
dC5xdWVyeVNlbGVjdG9yW0FsbF0oKS4KKyAgICAgICAgQWRkZWQgY29udGV4dHVhbCByZWZlcmVu
Y2Ugbm9kZSB0byBTZWxlY3RvckNoZWNraW5nQ29udGV4dCBhbmQKKyAgICAgICAgaW5pdGlhbGl6
ZWQgdGhlIHZhbHVlIHdoZW4gZXhlY3V0aW5nIHF1ZXJ5U2VsZWN0b3JbQWxsXSgpIG9yCisgICAg
ICAgIHJlc29sdmluZyBhIHN0eWxlLgorICAgICAgICA6c2NvcGUgc3BlYyBpcyBodHRwOi8vZGV2
LnczLm9yZy9jc3N3Zy9zZWxlY3RvcnM0LyNzY29wZS1wc2V1ZG8uCisKKyAgICAgICAgVGVzdDog
ZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29wZS5odG1sCisKKyAgICAgICAgKiBjc3Mv
Q1NTU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVkb0lk
KToKKyAgICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgQWRkZWQgOnNj
b3BlIHBzZXVkbyB0eXBlLgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAq
IGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVj
a2VyOjpjaGVja09uZSk6CisgICAgICAgIEFkZGVkIFBzZXVkb1Njb3BlLgorICAgICAgICAqIGNz
cy9TZWxlY3RvckNoZWNrZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6
U2VsZWN0b3JDaGVja2luZ0NvbnRleHQ6OlNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0KToKKyAgICAg
ICAgKFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0KToKKyAgICAgICAgQWRkZWQgY29udGV4dHVhbFJl
ZmVyZW5jZU5vZGUuIFRvIGFkZCBTaGFkb3dSb290IGluIHRoZSBmdXR1cmUsCisgICAgICAgIHRo
ZSB0eXBlIG9mIGNvbnRleHR1YWwgcmVmZXJlbmNlIG5vZGUgaXMgTm9kZSouCisgICAgICAgICog
Y3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6
cnVsZU1hdGNoZXMpOgorICAgICAgICBVc2Ugc2NvcGUgYXMgYSBjb250ZXh0dWFsIHJlZmVyZW5j
ZSBub2RlLgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdG9yRGF0YUxpc3Q6OnNlbGVjdG9yTWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3RvckRhdGFMaXN0OjptYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
RGF0YUxpc3Q6OmV4ZWN1dGUpOgorICAgICAgICBVc2Ugcm9vdE5vZGUgYXMgYSBjb250ZXh0dWFs
IHJlZmVyZW5jZSBub2RlLgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5Lmg6CisgICAgICAg
IChTZWxlY3RvckRhdGFMaXN0KToKKwogMjAxMy0wMy0wNSAgS2VubmV0aCBSdXNzZWxsICA8a2Jy
QGdvb2dsZS5jb20+CiAKICAgICAgICAgVXBncmFkZSBBTkdMRSB0byByMTk4NwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggYmNkYzA5ZTAyYmI0ZmI3NmI4ZTMzOWFjMTE0MjdiMzA1
ZTBhNjU1OS4uMTVkZDNmMTA3NWZiYTBmNTI0MTIxZTU1NjcxMmQ3OWY3ZmZmZWE4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yMTUsNiArMjE1LDcgQEAgUHNldWRvSWQgQ1NT
U2VsZWN0b3I6OnBzZXVkb0lkKFBzZXVkb1R5cGUgdHlwZSkKICAgICBjYXNlIFBzZXVkb0xhbmc6
CiAgICAgY2FzZSBQc2V1ZG9Ob3Q6CiAgICAgY2FzZSBQc2V1ZG9Sb290OgorICAgIGNhc2UgUHNl
dWRvU2NvcGU6CiAgICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJCYWNrOgogICAgIGNhc2UgUHNldWRv
U2Nyb2xsYmFyRm9yd2FyZDoKICAgICBjYXNlIFBzZXVkb1dpbmRvd0luYWN0aXZlOgpAQCAtMzQx
LDYgKzM0Miw3IEBAIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rv
cjo6UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGVNYXAoCiAjZW5kaWYKICAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW5SYW5nZSwgKCJpbi1yYW5nZSIsIEF0b21pY1N0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgb3V0T2ZSYW5nZSwgKCJvdXQtb2YtcmFuZ2UiLCBBdG9taWNTdHJpbmc6OkNv
bnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNjb3BlLCAoInNjb3BlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkp
OwogCiAgICAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQ
c2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZSA9IDA7CiAgICAgaWYgKCFuYW1lVG9Qc2V1ZG9U
eXBlKSB7CkBAIC0zOTUsNiArMzk3LDcgQEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1w
bCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgKICAgICAg
ICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG9wdGlvbmFsLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBz
ZXVkb09wdGlvbmFsKTsKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KHJlcXVpcmVkLmlt
cGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlcXVpcmVkKTsKICAgICAgICAgbmFtZVRvUHNldWRv
VHlwZS0+c2V0KHJlc2l6ZXIuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvUmVzaXplcik7Cisg
ICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChzY29wZS5pbXBsKCksIENTU1NlbGVjdG9yOjpQ
c2V1ZG9TY29wZSk7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChzY3JvbGxiYXIuaW1w
bCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyKTsKICAgICAgICAgbmFtZVRvUHNldWRv
VHlwZS0+c2V0KHNjcm9sbGJhckJ1dHRvbi5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3Jv
bGxiYXJCdXR0b24pOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoc2Nyb2xsYmFyQ29y
bmVyLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhckNvcm5lcik7CkBAIC01MjAs
NiArNTIzLDcgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAog
ICAgIGNhc2UgUHNldWRvUmVxdWlyZWQ6CiAgICAgY2FzZSBQc2V1ZG9SZWFkT25seToKICAgICBj
YXNlIFBzZXVkb1JlYWRXcml0ZToKKyAgICBjYXNlIFBzZXVkb1Njb3BlOgogICAgIGNhc2UgUHNl
dWRvVmFsaWQ6CiAgICAgY2FzZSBQc2V1ZG9JbnZhbGlkOgogICAgIGNhc2UgUHNldWRvSW5kZXRl
cm1pbmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggNzUwNzhjMTY3MDRhNGYzOWEw
ZDhjZDhlYWQ1NTM5NTk4MGNiZThkMi4uZjBkNjc2MjEyNmRmZmFjNjQyZTM1ZDRmNjU4N2Q1MDVh
M2U2ZTcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTEyNyw2ICsxMjcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1ZG9Ob3QsCiAgICAgICAgICAgICBQ
c2V1ZG9SZXNpemVyLAogICAgICAgICAgICAgUHNldWRvUm9vdCwKKyAgICAgICAgICAgIFBzZXVk
b1Njb3BlLAogICAgICAgICAgICAgUHNldWRvU2Nyb2xsYmFyLAogICAgICAgICAgICAgUHNldWRv
U2Nyb2xsYmFyQmFjaywKICAgICAgICAgICAgIFBzZXVkb1Njcm9sbGJhckJ1dHRvbiwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggZWFmMDNlMzI3M2QwMTc4OWE2MDA4
ZTk5MTMzNmIwMjA0MTZkYTA4Yy4uNmZiNjQ4ODgzMTk4NzEyMTkxZGMxYzBjMzI1Mjk3NjU5Yjli
M2UwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTczNCw2ICs3
MzQsMTQgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hl
Y2tpbmdDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaWIKICAgICAgICAgICAgIHJldHVybiAoZWxl
bWVudC0+aXNXZWJWVFRFbGVtZW50KCkgJiYgdG9XZWJWVFRFbGVtZW50KGVsZW1lbnQpLT5pc1Bh
c3ROb2RlKCkpOwogI2VuZGlmCiAKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nv
cGU6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc3QgTm9kZSogY29udGV4dHVh
bFJlZmVyZW5jZU5vZGUgPSBjb250ZXh0LmNvbnRleHR1YWxSZWZlcmVuY2VOb2RlID8gY29udGV4
dC5jb250ZXh0dWFsUmVmZXJlbmNlTm9kZSA6IGVsZW1lbnQtPmRvY3VtZW50KCktPmRvY3VtZW50
RWxlbWVudCgpOworICAgICAgICAgICAgICAgIGlmIChlbGVtZW50ID09IGNvbnRleHR1YWxSZWZl
cmVuY2VOb2RlKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9Ib3Jpem9udGFsOgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WZXJ0aWNh
bDoKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVjcmVtZW50OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5oCmluZGV4IDJmNDJiNjdkMGY1MmVhNjMwZmVkMjViZjEwOTUy
MGU0ZDY5ZmE4OGMuLjAyMjYxMDFlNjdkNjYwYTlmM2ExYzVjYmU0ZGI1MTE5MmVhMjNhMDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKQEAgLTY1LDYgKzY1LDcgQEAgcHVibGlj
OgogICAgICAgICAgICAgLCBoYXNTY3JvbGxiYXJQc2V1ZG8oZmFsc2UpCiAgICAgICAgICAgICAs
IGhhc1NlbGVjdGlvblBzZXVkbyhmYWxzZSkKICAgICAgICAgICAgICwgYmVoYXZpb3JBdEJvdW5k
YXJ5KERvZXNOb3RDcm9zc0JvdW5kYXJ5KQorICAgICAgICAgICAgLCBjb250ZXh0dWFsUmVmZXJl
bmNlTm9kZSgwKQogICAgICAgICB7IH0KIAogICAgICAgICBjb25zdCBDU1NTZWxlY3Rvciogc2Vs
ZWN0b3I7CkBAIC03OSw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCBoYXNTY3JvbGxi
YXJQc2V1ZG87CiAgICAgICAgIGJvb2wgaGFzU2VsZWN0aW9uUHNldWRvOwogICAgICAgICBCZWhh
dmlvckF0Qm91bmRhcnkgYmVoYXZpb3JBdEJvdW5kYXJ5OworICAgICAgICBjb25zdCBOb2RlKiBj
b250ZXh0dWFsUmVmZXJlbmNlTm9kZTsKICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
U2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CmluZGV4IGE1MjU0MmQzZDJiZDM4M2I4M2QyMzkyY2U5NTUxMjRlODI1YTY4ZmQuLjZhYTUwNDNj
YWUzN2NkNjA4N2NkYmYxZDhjMDFhNzAxMmMzZGE0NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKQEAgLTIxMjMsNiArMjEyMyw3IEBAIGlubGluZSBib29sIFN0eWxlUmVzb2x2
ZXI6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSwgY29uc3QgQ29udGFpbmVy
CiAgICAgY29udGV4dC5zY3JvbGxiYXIgPSBzdGF0ZS5wc2V1ZG9TdHlsZVJlcXVlc3QoKS5zY3Jv
bGxiYXI7CiAgICAgY29udGV4dC5zY3JvbGxiYXJQYXJ0ID0gc3RhdGUucHNldWRvU3R5bGVSZXF1
ZXN0KCkuc2Nyb2xsYmFyUGFydDsKICAgICBjb250ZXh0LmJlaGF2aW9yQXRCb3VuZGFyeSA9IGJl
aGF2aW9yQXRCb3VuZGFyeTsKKyAgICBjb250ZXh0LmNvbnRleHR1YWxSZWZlcmVuY2VOb2RlID0g
c2NvcGU7CiAgICAgU2VsZWN0b3JDaGVja2VyOjpNYXRjaCBtYXRjaCA9IHNlbGVjdG9yQ2hlY2tl
ci5tYXRjaChjb250ZXh0LCBkeW5hbWljUHNldWRvLCBET01TaWJsaW5nVHJhdmVyc2FsU3RyYXRl
Z3koKSk7CiAgICAgaWYgKG1hdGNoICE9IFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaGVz
KQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAK
aW5kZXggMzZkZDk3NzhkYTVjZTYzODg1OGNhZTJjOWJiNjY5M2IwY2NjOWI0Yi4uY2UyMjAyNmI4
OGM0NDNiMWM0MmY1N2NjNDk1MzkxNmE1N2VmZjk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rv
clF1ZXJ5LmNwcApAQCAtNTAsNyArNTAsNyBAQCB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmluaXRp
YWxpemUoY29uc3QgQ1NTU2VsZWN0b3JMaXN0JiBzZWxlY3Rvckxpc3QpCiAgICAgICAgIG1fc2Vs
ZWN0b3JzLnVuY2hlY2tlZEFwcGVuZChTZWxlY3RvckRhdGEoc2VsZWN0b3IsIFNlbGVjdG9yQ2hl
Y2tlckZhc3RQYXRoOjpjYW5Vc2Uoc2VsZWN0b3IpKSk7CiB9CiAKLWlubGluZSBib29sIFNlbGVj
dG9yRGF0YUxpc3Q6OnNlbGVjdG9yTWF0Y2hlcyhjb25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9y
RGF0YSwgRWxlbWVudCogZWxlbWVudCkgY29uc3QKK2lubGluZSBib29sIFNlbGVjdG9yRGF0YUxp
c3Q6OnNlbGVjdG9yTWF0Y2hlcyhjb25zdCBTZWxlY3RvckRhdGEmIHNlbGVjdG9yRGF0YSwgRWxl
bWVudCogZWxlbWVudCwgY29uc3QgTm9kZSogcm9vdE5vZGUpIGNvbnN0CiB7CiAgICAgaWYgKHNl
bGVjdG9yRGF0YS5pc0Zhc3RDaGVja2FibGUgJiYgIWVsZW1lbnQtPmlzU1ZHRWxlbWVudCgpKSB7
CiAgICAgICAgIFNlbGVjdG9yQ2hlY2tlckZhc3RQYXRoIHNlbGVjdG9yQ2hlY2tlckZhc3RQYXRo
KHNlbGVjdG9yRGF0YS5zZWxlY3RvciwgZWxlbWVudCk7CkBAIC02MSw2ICs2MSw3IEBAIGlubGlu
ZSBib29sIFNlbGVjdG9yRGF0YUxpc3Q6OnNlbGVjdG9yTWF0Y2hlcyhjb25zdCBTZWxlY3RvckRh
dGEmIHNlbGVjdG9yRGF0YSwKIAogICAgIFNlbGVjdG9yQ2hlY2tlciBzZWxlY3RvckNoZWNrZXIo
ZWxlbWVudC0+ZG9jdW1lbnQoKSwgU2VsZWN0b3JDaGVja2VyOjpRdWVyeWluZ1J1bGVzKTsKICAg
ICBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0IHNlbGVjdG9yQ2hlY2tp
bmdDb250ZXh0KHNlbGVjdG9yRGF0YS5zZWxlY3RvciwgZWxlbWVudCwgU2VsZWN0b3JDaGVja2Vy
OjpWaXNpdGVkTWF0Y2hEaXNhYmxlZCk7CisgICAgc2VsZWN0b3JDaGVja2luZ0NvbnRleHQuY29u
dGV4dHVhbFJlZmVyZW5jZU5vZGUgPSByb290Tm9kZS0+aXNEb2N1bWVudE5vZGUoKSA/IDAgOiBy
b290Tm9kZTsKICAgICBQc2V1ZG9JZCBpZ25vcmVEeW5hbWljUHNldWRvID0gTk9QU0VVRE87CiAg
ICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3RvckNoZWNraW5nQ29udGV4dCwg
aWdub3JlRHluYW1pY1BzZXVkbywgRE9NU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5KCkpID09IFNl
bGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaGVzOwogfQpAQCAtNzEsNyArNzIsNyBAQCBib29s
IFNlbGVjdG9yRGF0YUxpc3Q6Om1hdGNoZXMoRWxlbWVudCogdGFyZ2V0RWxlbWVudCkgY29uc3QK
IAogICAgIHVuc2lnbmVkIHNlbGVjdG9yQ291bnQgPSBtX3NlbGVjdG9ycy5zaXplKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNlbGVjdG9yQ291bnQ7ICsraSkgewotICAgICAgICBp
ZiAoc2VsZWN0b3JNYXRjaGVzKG1fc2VsZWN0b3JzW2ldLCB0YXJnZXRFbGVtZW50KSkKKyAgICAg
ICAgaWYgKHNlbGVjdG9yTWF0Y2hlcyhtX3NlbGVjdG9yc1tpXSwgdGFyZ2V0RWxlbWVudCwgdGFy
Z2V0RWxlbWVudCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTEyOCw3
ICsxMjksNyBAQCB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGUoTm9kZSogcm9vdE5vZGUs
IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgbWF0Y2hlZEVsZQogICAgICAgICBFbGVtZW50KiBlbGVt
ZW50ID0gcm9vdE5vZGUtPnRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChzZWxlY3Rvci0+dmFs
dWUoKSk7CiAgICAgICAgIGlmICghZWxlbWVudCB8fCAhKGlzVHJlZVNjb3BlUm9vdChyb290Tm9k
ZSkgfHwgZWxlbWVudC0+aXNEZXNjZW5kYW50T2Yocm9vdE5vZGUpKSkKICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgaWYgKHNlbGVjdG9yTWF0Y2hlcyhtX3NlbGVjdG9yc1swXSwgZWxlbWVu
dCkpCisgICAgICAgIGlmIChzZWxlY3Rvck1hdGNoZXMobV9zZWxlY3RvcnNbMF0sIGVsZW1lbnQs
IHJvb3ROb2RlKSkKICAgICAgICAgICAgIG1hdGNoZWRFbGVtZW50cy5hcHBlbmQoZWxlbWVudCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNDAsNyArMTQxLDcgQEAgdm9pZCBTZWxlY3Rv
ckRhdGFMaXN0OjpleGVjdXRlKE5vZGUqIHJvb3ROb2RlLCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4m
IG1hdGNoZWRFbGUKICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkgewogICAgICAgICAg
ICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsKICAgICAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWxlY3RvckNvdW50OyArK2kpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoc2VsZWN0b3JNYXRjaGVzKG1fc2VsZWN0b3JzW2ldLCBlbGVtZW50KSkg
eworICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvck1hdGNoZXMobV9zZWxlY3RvcnNbaV0sIGVs
ZW1lbnQsIHJvb3ROb2RlKSkgewogICAgICAgICAgICAgICAgICAgICBtYXRjaGVkRWxlbWVudHMu
YXBwZW5kKGVsZW1lbnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RNYXRjaE9ubHkp
CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVl
cnkuaAppbmRleCA0YjkyMzk0YWM5MDIxYTE2ZDkxNjc5NDU3MjBiYjU3YjczNWY4ODlkLi4zYTZl
YjNlM2ViNGRlYTMxN2I4MDg2NTA4ZTA3NjY0MDFkYTAzNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxl
Y3RvclF1ZXJ5LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBpc0Zh
c3RDaGVja2FibGU7CiAgICAgfTsKIAotICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNl
bGVjdG9yRGF0YSYsIEVsZW1lbnQqKSBjb25zdDsKKyAgICBib29sIHNlbGVjdG9yTWF0Y2hlcyhj
b25zdCBTZWxlY3RvckRhdGEmLCBFbGVtZW50KiwgY29uc3QgTm9kZSopIGNvbnN0OwogICAgIGJv
b2wgY2FuVXNlSWRMb29rdXAoTm9kZSogcm9vdE5vZGUpIGNvbnN0OwogICAgIHRlbXBsYXRlIDxi
b29sIGZpcnN0TWF0Y2hPbmx5PgogICAgIHZvaWQgZXhlY3V0ZShOb2RlKiByb290Tm9kZSwgVmVj
dG9yPFJlZlB0cjxOb2RlPiA+JikgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDhhYmI2NzZmZjM0ZjQ2Mzc0ODcx
MzA2MmJhYTE2YjU5Y2Q1YTFiNC4uZTY2MjdmZjY1YzdlMzZhZjNiN2YzYjc5NTBhNjIxY2VhODk0
N2M1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAzLTA1ICBUYWthc2hpIFNha2Ftb3Rv
ICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgOnNjb3BlIGZvciBlbGVt
ZW50LnF1ZXJ5U2VsZWN0b3JbQWxsXSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29wZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3It
c2NvcGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMDUgIFJhZmFlbCBXZWluc3RlaW4gIDxyYWZh
ZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itc2NvcGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29w
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBhYmE2MmE3OGMxMmQ4N2M3YTFiMTZjMzkyNTkw
NGE4YWRmNzRmMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3Jz
L3F1ZXJ5U2VsZWN0b3Itc2NvcGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1RoaXMg
dGVzdCBtYWtlcyBzdXJlIHRoYXQgOnNjb3BlIHdvcmtzIGNvcnJlY3RseS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc2NvcGUucXVlcnlTZWxlY3RvckFsbCgidWwgYSIp
Lmxlbmd0aCBpcyAxCitQQVNTIHNjb3BlLnF1ZXJ5U2VsZWN0b3IoInVsIGEiKSBpcyBzY29wZS5m
aXJzdENoaWxkCitQQVNTIHNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSB1bCBhIikubGVu
Z3RoIGlzIDAKK1BBU1Mgc2NvcGUucXVlcnlTZWxlY3RvcigiOnNjb3BlIHVsIGEiKSBpcyBudWxs
CitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSB1bCBhIikubGVuZ3RoIGlz
IDIKK1BBU1MgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOnJvb3QgdWwgYSIpLmxlbmd0aCBp
cyAyCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBhIikubGVuZ3RoIGlz
IDIKK1BBU1Mgc2NvcGUucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIGEiKS5sZW5ndGggaXMgMQor
UEFTUyBzY29wZS5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUgYSIpLml0ZW0oMCkgaXMgc2NvcGUu
Zmlyc3RDaGlsZAorUEFTUyBzY29wZS5xdWVyeVNlbGVjdG9yKCI6c2NvcGUgYSIpIGlzIHNjb3Bl
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBhIikuaXRlbSgwKQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCithYmMKK2RlZgorZWZnCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9xdWVyeVNlbGVjdG9yLXNjb3BlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9xdWVyeVNlbGVjdG9yLXNjb3BlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTM0MDhlOGMzM2JhNzc5N2M2NmUxZGI3M2IxMDFjZGYyMmVmN2I2MgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itc2NvcGUu
aHRtbApAQCAtMCwwICsxLDM0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8dWw+CisgICAgPGxpIGlkPSdzY29w
ZSc+PGE+YWJjPC9hPjwvbGk+CisgICAgPGxpPmRlZjwvbGk+CisgICAgPGxpPjxhPmVmZzwvYT48
L2xpPgorICA8L3VsPgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdUaGlzIHRlc3Qg
bWFrZXMgc3VyZSB0aGF0IDpzY29wZSB3b3JrcyBjb3JyZWN0bHkuJyk7CisKK3ZhciBzY29wZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY29wZScpOworc2hvdWxkQmUoJ3Njb3BlLnF1ZXJ5
U2VsZWN0b3JBbGwoInVsIGEiKS5sZW5ndGgnLCAnMScpOworc2hvdWxkQmUoJ3Njb3BlLnF1ZXJ5
U2VsZWN0b3IoInVsIGEiKScsICdzY29wZS5maXJzdENoaWxkJyk7CitzaG91bGRCZSgnc2NvcGUu
cXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIHVsIGEiKS5sZW5ndGgnLCAnMCcpOworc2hvdWxkQmVO
dWxsKCdzY29wZS5xdWVyeVNlbGVjdG9yKCI6c2NvcGUgdWwgYSIpJyk7CitzaG91bGRCZSgnZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIHVsIGEiKS5sZW5ndGgnLCAnMicpOworc2hv
dWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpyb290IHVsIGEiKS5sZW5ndGgnLCAn
MicpOworCitzaG91bGRCZSgnZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIGEiKS5s
ZW5ndGgnLCAnMicpOworc2hvdWxkQmUoJ3Njb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBh
IikubGVuZ3RoJywgJzEnKTsKK3Nob3VsZEJlKCdzY29wZS5xdWVyeVNlbGVjdG9yQWxsKCI6c2Nv
cGUgYSIpLml0ZW0oMCknLCAnc2NvcGUuZmlyc3RDaGlsZCcpOworc2hvdWxkQmUoJ3Njb3BlLnF1
ZXJ5U2VsZWN0b3IoIjpzY29wZSBhIiknLCAnc2NvcGUucXVlcnlTZWxlY3RvckFsbCgiOnNjb3Bl
IGEiKS5pdGVtKDApJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192630</attachid>
            <date>2013-03-11 21:14:03 -0700</date>
            <delta_ts>2013-03-11 23:03:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81069-20130312131002.patch</filename>
            <type>text/plain</type>
            <size>14615</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE1MDk4YzZkNmE3OGFl
YzAwZGVkMTI2ZWY2ZThmYjQ1Y2I0MWNkMS4uZjM0OWIyODZmY2M2MWY2ZDBjZWZkZmZmODk2MGIz
MTNmYjc0MWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAzLTExICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgOnNj
b3BlIGZvciBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JbQWxsXSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudGVkIDpzY29wZSBmb3IgZWxlbWVu
dC5xdWVyeVNlbGVjdG9yW0FsbF0oKS4KKyAgICAgICAgUmV1c2Ugc2NvcGUgaW4gU2VsZWN0b3JD
aGVja2luZ0NvbnRleHQgYW5kIGFkZGVkIGEgbmV3IHZhbHVlIHRvCisgICAgICAgIGVudW0gQmVo
YXZpb3JBdEJvdW5kYXJ5LgorICAgICAgICA6c2NvcGUgc3BlYyBpcyBodHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9zZWxlY3RvcnM0LyNzY29wZS1wc2V1ZG8uCisKKyAgICAgICAgVGVzdDogZmFzdC9z
ZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29wZS5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTU2Vs
ZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVkb0lkKToKKyAg
ICAgICAgKFdlYkNvcmU6Om5hbWVUb1BzZXVkb1R5cGVNYXApOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAgQWRkZWQgOnNjb3BlIHBz
ZXVkbyB0eXBlLgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAqIGNzcy9T
ZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpt
YXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKToKKyAg
ICAgICAgQWRkZWQgUHNldWRvU2NvcGUgY2FzZSBhbmQgbW9kaWZpZWQgInNjb3BlIiBtZWFuaW5n
IHdoZW4KKyAgICAgICAgYmVoYXZpb3JBdEJvdW5kYXJ5IGlzIGVxdWFsIHRvIENyb3NzZXNTY29w
ZU5vdFRyZWVTY29wZS4KKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmg6CisgICAgICAg
ICogZG9tL1NlbGVjdG9yUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRh
TGlzdDo6c2VsZWN0b3JNYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxp
c3Q6Om1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0
ZSk6CisgICAgICAgIFVzZSByb290Tm9kZSBhcyBhIGNvbnRleHR1YWwgcmVmZXJlbmNlIG5vZGUu
CisgICAgICAgICogZG9tL1NlbGVjdG9yUXVlcnkuaDoKKyAgICAgICAgKFNlbGVjdG9yRGF0YUxp
c3QpOgorCiAyMDEzLTAzLTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ1NDM1LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggYmNkYzA5ZTAyYmI0ZmI3NmI4ZTMzOWFjMTE0Mjdi
MzA1ZTBhNjU1OS4uMTVkZDNmMTA3NWZiYTBmNTI0MTIxZTU1NjcxMmQ3OWY3ZmZmZWE4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yMTUsNiArMjE1LDcgQEAgUHNldWRvSWQg
Q1NTU2VsZWN0b3I6OnBzZXVkb0lkKFBzZXVkb1R5cGUgdHlwZSkKICAgICBjYXNlIFBzZXVkb0xh
bmc6CiAgICAgY2FzZSBQc2V1ZG9Ob3Q6CiAgICAgY2FzZSBQc2V1ZG9Sb290OgorICAgIGNhc2Ug
UHNldWRvU2NvcGU6CiAgICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJCYWNrOgogICAgIGNhc2UgUHNl
dWRvU2Nyb2xsYmFyRm9yd2FyZDoKICAgICBjYXNlIFBzZXVkb1dpbmRvd0luYWN0aXZlOgpAQCAt
MzQxLDYgKzM0Miw3IEBAIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxl
Y3Rvcjo6UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGVNYXAoCiAjZW5kaWYKICAgICBERUZJ
TkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaW5SYW5nZSwgKCJpbi1yYW5nZSIsIEF0b21p
Y1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgb3V0T2ZSYW5nZSwgKCJvdXQtb2YtcmFuZ2UiLCBBdG9taWNTdHJpbmc6
OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIHNjb3BlLCAoInNjb3BlIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJh
bCkpOwogCiAgICAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9y
OjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZSA9IDA7CiAgICAgaWYgKCFuYW1lVG9Qc2V1
ZG9UeXBlKSB7CkBAIC0zOTUsNiArMzk3LDcgQEAgc3RhdGljIEhhc2hNYXA8QXRvbWljU3RyaW5n
SW1wbCosIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZU1hcCgKICAg
ICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KG9wdGlvbmFsLmltcGwoKSwgQ1NTU2VsZWN0b3I6
OlBzZXVkb09wdGlvbmFsKTsKICAgICAgICAgbmFtZVRvUHNldWRvVHlwZS0+c2V0KHJlcXVpcmVk
LmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlcXVpcmVkKTsKICAgICAgICAgbmFtZVRvUHNl
dWRvVHlwZS0+c2V0KHJlc2l6ZXIuaW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvUmVzaXplcik7
CisgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChzY29wZS5pbXBsKCksIENTU1NlbGVjdG9y
OjpQc2V1ZG9TY29wZSk7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChzY3JvbGxiYXIu
aW1wbCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyKTsKICAgICAgICAgbmFtZVRvUHNl
dWRvVHlwZS0+c2V0KHNjcm9sbGJhckJ1dHRvbi5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9T
Y3JvbGxiYXJCdXR0b24pOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoc2Nyb2xsYmFy
Q29ybmVyLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhckNvcm5lcik7CkBAIC01
MjAsNiArNTIzLDcgQEAgdm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25z
dAogICAgIGNhc2UgUHNldWRvUmVxdWlyZWQ6CiAgICAgY2FzZSBQc2V1ZG9SZWFkT25seToKICAg
ICBjYXNlIFBzZXVkb1JlYWRXcml0ZToKKyAgICBjYXNlIFBzZXVkb1Njb3BlOgogICAgIGNhc2Ug
UHNldWRvVmFsaWQ6CiAgICAgY2FzZSBQc2V1ZG9JbnZhbGlkOgogICAgIGNhc2UgUHNldWRvSW5k
ZXRlcm1pbmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5kZXggZDYxYjk2NjMzODMzNjJm
ODZhNDg0YWY4NGRiZmZkODEzYmYzOWQzYi4uOTNkMjJhNGU0NWEzOGI5MmFkMGMxMjc0NWE2MWY3
Yzg0N2Y1Y2U3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKQEAgLTEyNyw2ICsxMjcsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBQc2V1ZG9Ob3QsCiAgICAgICAgICAg
ICBQc2V1ZG9SZXNpemVyLAogICAgICAgICAgICAgUHNldWRvUm9vdCwKKyAgICAgICAgICAgIFBz
ZXVkb1Njb3BlLAogICAgICAgICAgICAgUHNldWRvU2Nyb2xsYmFyLAogICAgICAgICAgICAgUHNl
dWRvU2Nyb2xsYmFyQmFjaywKICAgICAgICAgICAgIFBzZXVkb1Njcm9sbGJhckJ1dHRvbiwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggZWFmMDNlMzI3M2QwMTc4OWE2
MDA4ZTk5MTMzNmIwMjA0MTZkYTA4Yy4uZTBjMGFhMmFjNGQ3MjU3YzhhZmE4NDg2NTg3MDIxYjY2
OTNjMTg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTEyNiw3
ICsxMjYsNyBAQCBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6bWF0Y2go
Y29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbgogICAgIFBzZXVkb0lkIGlnbm9yZUR5
bmFtaWNQc2V1ZG8gPSBOT1BTRVVETzsKICAgICBpZiAocmVsYXRpb24gIT0gQ1NTU2VsZWN0b3I6
OlN1YlNlbGVjdG9yKSB7CiAgICAgICAgIC8vIEFib3J0IGlmIHRoZSBuZXh0IHNlbGVjdG9yIHdv
dWxkIGV4Y2VlZCB0aGUgc2NvcGUuCi0gICAgICAgIGlmIChjb250ZXh0LmVsZW1lbnQgPT0gY29u
dGV4dC5zY29wZSkKKyAgICAgICAgaWYgKGNvbnRleHQuZWxlbWVudCA9PSBjb250ZXh0LnNjb3Bl
ICYmIGNvbnRleHQuYmVoYXZpb3JBdEJvdW5kYXJ5ICE9IENyb3NzZXNTY29wZU5vdFRyZWVTY29w
ZSkKICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKIAogICAgICAg
ICAvLyBCYWlsLW91dCBpZiB0aGlzIHNlbGVjdG9yIGlzIGlycmVsZXZhbnQgZm9yIHRoZSBwc2V1
ZG9JZApAQCAtMTQ5LDcgKzE0OSw3IEBAIFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2ggU2VsZWN0b3JD
aGVja2VyOjptYXRjaChjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29uCiAgICAgICAg
ICAgICBNYXRjaCBtYXRjaCA9IHRoaXMtPm1hdGNoKG5leHRDb250ZXh0LCBpZ25vcmVEeW5hbWlj
UHNldWRvLCBzaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3kpOwogICAgICAgICAgICAgaWYgKG1hdGNo
ID09IFNlbGVjdG9yTWF0Y2hlcyB8fCBtYXRjaCA9PSBTZWxlY3RvckZhaWxzQ29tcGxldGVseSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7Ci0gICAgICAgICAgICBpZiAobmV4dENvbnRl
eHQuZWxlbWVudCA9PSBuZXh0Q29udGV4dC5zY29wZSkKKyAgICAgICAgICAgIGlmIChuZXh0Q29u
dGV4dC5lbGVtZW50ID09IG5leHRDb250ZXh0LnNjb3BlICYmIG5leHRDb250ZXh0LmJlaGF2aW9y
QXRCb3VuZGFyeSAhPSBDcm9zc2VzU2NvcGVOb3RUcmVlU2NvcGUpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OwogICAgICAgICB9CiAgICAgICAgIHJldHVy
biBTZWxlY3RvckZhaWxzQ29tcGxldGVseTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBTZWxlY3RvckNo
ZWNrZXI6Ok1hdGNoIFNlbGVjdG9yQ2hlY2tlcjo6bWF0Y2goY29uc3QgU2VsZWN0b3JDaGVja2lu
Z0NvbnRleHQmIGNvbgogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQ6CiAg
ICAgICAgIHsKICAgICAgICAgICAgIC8vIElmIHdlJ3JlIGluIHRoZSBzYW1lIHRyZWUtc2NvcGUg
YXMgdGhlIHNjb3BpbmcgZWxlbWVudCwgdGhlbiBmb2xsb3dpbmcgYSBzaGFkb3cgZGVzY2VuZGFu
dCBjb21iaW5hdG9yIHdvdWxkIGVzY2FwZSB0aGF0IGFuZCB0aHVzIHRoZSBzY29wZS4KLSAgICAg
ICAgICAgIGlmIChjb250ZXh0LnNjb3BlICYmIGNvbnRleHQuc2NvcGUtPnRyZWVTY29wZSgpID09
IGNvbnRleHQuZWxlbWVudC0+dHJlZVNjb3BlKCkpCisgICAgICAgICAgICBpZiAoY29udGV4dC5z
Y29wZSAmJiBjb250ZXh0LnNjb3BlLT50cmVlU2NvcGUoKSA9PSBjb250ZXh0LmVsZW1lbnQtPnRy
ZWVTY29wZSgpICYmIGNvbnRleHQuYmVoYXZpb3JBdEJvdW5kYXJ5ICE9IENyb3NzZXNTY29wZU5v
dFRyZWVTY29wZSkKICAgICAgICAgICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRl
bHk7CiAgICAgICAgICAgICBFbGVtZW50KiBzaGFkb3dIb3N0Tm9kZSA9IGNvbnRleHQuZWxlbWVu
dC0+c2hhZG93SG9zdCgpOwogICAgICAgICAgICAgaWYgKCFzaGFkb3dIb3N0Tm9kZSkKQEAgLTcz
NCw2ICs3MzQsMTQgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVj
dG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTaWIKICAgICAgICAgICAgIHJldHVy
biAoZWxlbWVudC0+aXNXZWJWVFRFbGVtZW50KCkgJiYgdG9XZWJWVFRFbGVtZW50KGVsZW1lbnQp
LT5pc1Bhc3ROb2RlKCkpOwogI2VuZGlmCiAKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvU2NvcGU6CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc3QgTm9kZSogY29u
dGV4dHVhbFJlZmVyZW5jZU5vZGUgPSAhY29udGV4dC5zY29wZSB8fCBjb250ZXh0LmJlaGF2aW9y
QXRCb3VuZGFyeSA9PSBDcm9zc2VzQm91bmRhcnkgPyBlbGVtZW50LT5kb2N1bWVudCgpLT5kb2N1
bWVudEVsZW1lbnQoKSA6IGNvbnRleHQuc2NvcGU7CisgICAgICAgICAgICAgICAgaWYgKGVsZW1l
bnQgPT0gY29udGV4dHVhbFJlZmVyZW5jZU5vZGUpCisgICAgICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCiAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvcml6b250YWw6CiAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1ZlcnRpY2FsOgogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9E
ZWNyZW1lbnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKaW5kZXggMmY0MmI2N2Qw
ZjUyZWE2MzBmZWQyNWJmMTA5NTIwZTRkNjlmYTg4Yy4uMzE0ODBlOTdhNTM5YmQwM2M3Mzg0Yzc0
Yzg0OTI3ZDljMjhiMDYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApAQCAt
NDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBWaXNpdGVkTWF0Y2hUeXBlIHsgVmlzaXRl
ZE1hdGNoRGlzYWJsZWQsIFZpc2l0ZWRNYXRjaEVuYWJsZWQgfTsKICAgICBlbnVtIE1vZGUgeyBS
ZXNvbHZpbmdTdHlsZSA9IDAsIENvbGxlY3RpbmdSdWxlcywgUXVlcnlpbmdSdWxlcywgU2hhcmlu
Z1J1bGVzIH07CiAgICAgZXhwbGljaXQgU2VsZWN0b3JDaGVja2VyKERvY3VtZW50KiwgTW9kZSk7
Ci0gICAgZW51bSBCZWhhdmlvckF0Qm91bmRhcnkgeyBEb2VzTm90Q3Jvc3NCb3VuZGFyeSwgQ3Jv
c3Nlc0JvdW5kYXJ5IH07CisgICAgZW51bSBCZWhhdmlvckF0Qm91bmRhcnkgeyBEb2VzTm90Q3Jv
c3NCb3VuZGFyeSwgQ3Jvc3Nlc0JvdW5kYXJ5LCBDcm9zc2VzU2NvcGVOb3RUcmVlU2NvcGUgfTsK
IAogICAgIHN0cnVjdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCB7CiAgICAgICAgIC8vIEluaXRp
YWwgc2VsZWN0b3IgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcApp
bmRleCAzNmRkOTc3OGRhNWNlNjM4ODU4Y2FlMmM5YmI2NjkzYjBjY2M5YjRiLi4xM2E4NjUyY2Q4
OTNhZjY2ODVkZjczNDhlOTI5NjMzM2VkZTNhZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9y
UXVlcnkuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6aW5pdGlh
bGl6ZShjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCkKICAgICAgICAgbV9zZWxl
Y3RvcnMudW5jaGVja2VkQXBwZW5kKFNlbGVjdG9yRGF0YShzZWxlY3RvciwgU2VsZWN0b3JDaGVj
a2VyRmFzdFBhdGg6OmNhblVzZShzZWxlY3RvcikpKTsKIH0KIAotaW5saW5lIGJvb2wgU2VsZWN0
b3JEYXRhTGlzdDo6c2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JE
YXRhLCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAoraW5saW5lIGJvb2wgU2VsZWN0b3JEYXRhTGlz
dDo6c2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhLCBFbGVt
ZW50KiBlbGVtZW50LCBjb25zdCBOb2RlKiByb290Tm9kZSkgY29uc3QKIHsKICAgICBpZiAoc2Vs
ZWN0b3JEYXRhLmlzRmFzdENoZWNrYWJsZSAmJiAhZWxlbWVudC0+aXNTVkdFbGVtZW50KCkpIHsK
ICAgICAgICAgU2VsZWN0b3JDaGVja2VyRmFzdFBhdGggc2VsZWN0b3JDaGVja2VyRmFzdFBhdGgo
c2VsZWN0b3JEYXRhLnNlbGVjdG9yLCBlbGVtZW50KTsKQEAgLTYxLDYgKzYxLDggQEAgaW5saW5l
IGJvb2wgU2VsZWN0b3JEYXRhTGlzdDo6c2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0
YSYgc2VsZWN0b3JEYXRhLAogCiAgICAgU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlcihl
bGVtZW50LT5kb2N1bWVudCgpLCBTZWxlY3RvckNoZWNrZXI6OlF1ZXJ5aW5nUnVsZXMpOwogICAg
IFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2lu
Z0NvbnRleHQoc2VsZWN0b3JEYXRhLnNlbGVjdG9yLCBlbGVtZW50LCBTZWxlY3RvckNoZWNrZXI6
OlZpc2l0ZWRNYXRjaERpc2FibGVkKTsKKyAgICBzZWxlY3RvckNoZWNraW5nQ29udGV4dC5iZWhh
dmlvckF0Qm91bmRhcnkgPSBTZWxlY3RvckNoZWNrZXI6OkNyb3NzZXNTY29wZU5vdFRyZWVTY29w
ZTsKKyAgICBzZWxlY3RvckNoZWNraW5nQ29udGV4dC5zY29wZSA9ICFyb290Tm9kZS0+aXNEb2N1
bWVudE5vZGUoKSAmJiByb290Tm9kZS0+aXNDb250YWluZXJOb2RlKCkgPyB0b0NvbnRhaW5lck5v
ZGUocm9vdE5vZGUpIDogMDsKICAgICBQc2V1ZG9JZCBpZ25vcmVEeW5hbWljUHNldWRvID0gTk9Q
U0VVRE87CiAgICAgcmV0dXJuIHNlbGVjdG9yQ2hlY2tlci5tYXRjaChzZWxlY3RvckNoZWNraW5n
Q29udGV4dCwgaWdub3JlRHluYW1pY1BzZXVkbywgRE9NU2libGluZ1RyYXZlcnNhbFN0cmF0ZWd5
KCkpID09IFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaGVzOwogfQpAQCAtNzEsNyArNzMs
NyBAQCBib29sIFNlbGVjdG9yRGF0YUxpc3Q6Om1hdGNoZXMoRWxlbWVudCogdGFyZ2V0RWxlbWVu
dCkgY29uc3QKIAogICAgIHVuc2lnbmVkIHNlbGVjdG9yQ291bnQgPSBtX3NlbGVjdG9ycy5zaXpl
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNlbGVjdG9yQ291bnQ7ICsraSkgewot
ICAgICAgICBpZiAoc2VsZWN0b3JNYXRjaGVzKG1fc2VsZWN0b3JzW2ldLCB0YXJnZXRFbGVtZW50
KSkKKyAgICAgICAgaWYgKHNlbGVjdG9yTWF0Y2hlcyhtX3NlbGVjdG9yc1tpXSwgdGFyZ2V0RWxl
bWVudCwgdGFyZ2V0RWxlbWVudCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
QEAgLTEyOCw3ICsxMzAsNyBAQCB2b2lkIFNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGUoTm9kZSog
cm9vdE5vZGUsIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgbWF0Y2hlZEVsZQogICAgICAgICBFbGVt
ZW50KiBlbGVtZW50ID0gcm9vdE5vZGUtPnRyZWVTY29wZSgpLT5nZXRFbGVtZW50QnlJZChzZWxl
Y3Rvci0+dmFsdWUoKSk7CiAgICAgICAgIGlmICghZWxlbWVudCB8fCAhKGlzVHJlZVNjb3BlUm9v
dChyb290Tm9kZSkgfHwgZWxlbWVudC0+aXNEZXNjZW5kYW50T2Yocm9vdE5vZGUpKSkKICAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKHNlbGVjdG9yTWF0Y2hlcyhtX3NlbGVjdG9yc1sw
XSwgZWxlbWVudCkpCisgICAgICAgIGlmIChzZWxlY3Rvck1hdGNoZXMobV9zZWxlY3RvcnNbMF0s
IGVsZW1lbnQsIHJvb3ROb2RlKSkKICAgICAgICAgICAgIG1hdGNoZWRFbGVtZW50cy5hcHBlbmQo
ZWxlbWVudCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNDAsNyArMTQyLDcgQEAgdm9p
ZCBTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlKE5vZGUqIHJvb3ROb2RlLCBWZWN0b3I8UmVmUHRy
PE5vZGU+ID4mIG1hdGNoZWRFbGUKICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkgewog
ICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsK
ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWxlY3RvckNvdW50OyArK2kp
IHsKLSAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3JNYXRjaGVzKG1fc2VsZWN0b3JzW2ldLCBl
bGVtZW50KSkgeworICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvck1hdGNoZXMobV9zZWxlY3Rv
cnNbaV0sIGVsZW1lbnQsIHJvb3ROb2RlKSkgewogICAgICAgICAgICAgICAgICAgICBtYXRjaGVk
RWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RN
YXRjaE9ubHkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1Nl
bGVjdG9yUXVlcnkuaAppbmRleCA0YjkyMzk0YWM5MDIxYTE2ZDkxNjc5NDU3MjBiYjU3YjczNWY4
ODlkLi4zYTZlYjNlM2ViNGRlYTMxN2I4MDg2NTA4ZTA3NjY0MDFkYTAzNTk2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3RvclF1ZXJ5LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
Ym9vbCBpc0Zhc3RDaGVja2FibGU7CiAgICAgfTsKIAotICAgIGJvb2wgc2VsZWN0b3JNYXRjaGVz
KGNvbnN0IFNlbGVjdG9yRGF0YSYsIEVsZW1lbnQqKSBjb25zdDsKKyAgICBib29sIHNlbGVjdG9y
TWF0Y2hlcyhjb25zdCBTZWxlY3RvckRhdGEmLCBFbGVtZW50KiwgY29uc3QgTm9kZSopIGNvbnN0
OwogICAgIGJvb2wgY2FuVXNlSWRMb29rdXAoTm9kZSogcm9vdE5vZGUpIGNvbnN0OwogICAgIHRl
bXBsYXRlIDxib29sIGZpcnN0TWF0Y2hPbmx5PgogICAgIHZvaWQgZXhlY3V0ZShOb2RlKiByb290
Tm9kZSwgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JikgY29uc3Q7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmQxMzk2YmQ3NDg0
N2NhMDc5MmM2ODY3MGQ3MmNmZDI1NzBiMDk2Yi4uZWM1MmYyZjM3ZGJhZDI0ZWJkZDk3OTU3M2Mx
MmFjODU4N2M0MWYyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAzLTExICBUYWthc2hp
IFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgOnNjb3Bl
IGZvciBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JbQWxsXSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1z
Y29wZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL3F1ZXJ5
U2VsZWN0b3Itc2NvcGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMTEgIEphbWVzIFJvYmluc29u
ICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXJzdCAob2YgcHJvYmFibHkgbWFu
eSkgbGF5ZXIgdHJlZSByZWJhc2VsaW5lcyBmb3IgcjE0NTQyMgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29wZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9xdWVyeVNlbGVjdG9yLXNjb3BlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MGFiYTYyYTc4YzEyZDg3YzdhMWIxNmMzOTI1OTA0YThhZGY3NGYyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rv
ci1zY29wZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1
cmUgdGhhdCA6c2NvcGUgd29ya3MgY29ycmVjdGx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworUEFTUyBzY29wZS5xdWVyeVNlbGVjdG9yQWxsKCJ1bCBhIikubGVuZ3RoIGlzIDEK
K1BBU1Mgc2NvcGUucXVlcnlTZWxlY3RvcigidWwgYSIpIGlzIHNjb3BlLmZpcnN0Q2hpbGQKK1BB
U1Mgc2NvcGUucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIHVsIGEiKS5sZW5ndGggaXMgMAorUEFT
UyBzY29wZS5xdWVyeVNlbGVjdG9yKCI6c2NvcGUgdWwgYSIpIGlzIG51bGwKK1BBU1MgZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIHVsIGEiKS5sZW5ndGggaXMgMgorUEFTUyBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6cm9vdCB1bCBhIikubGVuZ3RoIGlzIDIKK1BBU1MgZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIGEiKS5sZW5ndGggaXMgMgorUEFTUyBzY29w
ZS5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUgYSIpLmxlbmd0aCBpcyAxCitQQVNTIHNjb3BlLnF1
ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBhIikuaXRlbSgwKSBpcyBzY29wZS5maXJzdENoaWxkCitQ
QVNTIHNjb3BlLnF1ZXJ5U2VsZWN0b3IoIjpzY29wZSBhIikgaXMgc2NvcGUucXVlcnlTZWxlY3Rv
ckFsbCgiOnNjb3BlIGEiKS5pdGVtKDApCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKK2FiYworZGVmCitlZmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3Qvc2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itc2NvcGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3Qvc2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itc2NvcGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzQwOGU4
YzMzYmE3Nzk3YzY2ZTFkYjczYjEwMWNkZjIyZWY3YjYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29wZS5odG1sCkBAIC0wLDAg
KzEsMzQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgIDx1bD4KKyAgICA8bGkgaWQ9J3Njb3BlJz48YT5hYmM8L2E+
PC9saT4KKyAgICA8bGk+ZGVmPC9saT4KKyAgICA8bGk+PGE+ZWZnPC9hPjwvbGk+CisgIDwvdWw+
Cis8L2JvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRo
YXQgOnNjb3BlIHdvcmtzIGNvcnJlY3RseS4nKTsKKwordmFyIHNjb3BlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Njb3BlJyk7CitzaG91bGRCZSgnc2NvcGUucXVlcnlTZWxlY3RvckFsbCgi
dWwgYSIpLmxlbmd0aCcsICcxJyk7CitzaG91bGRCZSgnc2NvcGUucXVlcnlTZWxlY3RvcigidWwg
YSIpJywgJ3Njb3BlLmZpcnN0Q2hpbGQnKTsKK3Nob3VsZEJlKCdzY29wZS5xdWVyeVNlbGVjdG9y
QWxsKCI6c2NvcGUgdWwgYSIpLmxlbmd0aCcsICcwJyk7CitzaG91bGRCZU51bGwoJ3Njb3BlLnF1
ZXJ5U2VsZWN0b3IoIjpzY29wZSB1bCBhIiknKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCI6c2NvcGUgdWwgYSIpLmxlbmd0aCcsICcyJyk7CitzaG91bGRCZSgnZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiOnJvb3QgdWwgYSIpLmxlbmd0aCcsICcyJyk7CisKK3Nob3Vs
ZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUgYSIpLmxlbmd0aCcsICcyJyk7
CitzaG91bGRCZSgnc2NvcGUucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIGEiKS5sZW5ndGgnLCAn
MScpOworc2hvdWxkQmUoJ3Njb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBhIikuaXRlbSgw
KScsICdzY29wZS5maXJzdENoaWxkJyk7CitzaG91bGRCZSgnc2NvcGUucXVlcnlTZWxlY3Rvcigi
OnNjb3BlIGEiKScsICdzY29wZS5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUgYSIpLml0ZW0oMCkn
KTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192645</attachid>
            <date>2013-03-11 23:03:08 -0700</date>
            <delta_ts>2013-03-13 02:11:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81069-20130312145906.patch</filename>
            <type>text/plain</type>
            <size>14686</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDUwMTkwMTYxMDkzZWQw
MjJjNzZjY2RlNGZmN2QyYTgzNjFhNTc1YS4uZTg4MTgyZTQzMzRhYjA0OTBkYTZkNzg0MDAxOTM0
OGQ3MDNkYTBlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTAzLTExICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgOnNj
b3BlIGZvciBlbGVtZW50LnF1ZXJ5U2VsZWN0b3JbQWxsXSgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5
IERpbWl0cmkgR2xhemtvdi4KKworICAgICAgICBJbXBsZW1lbnRlZCA6c2NvcGUgZm9yIGVsZW1l
bnQucXVlcnlTZWxlY3RvcltBbGxdKCkuCisgICAgICAgIFJldXNlIHNjb3BlIGluIFNlbGVjdG9y
Q2hlY2tpbmdDb250ZXh0IGFuZCBhZGRlZCBhIG5ldyB2YWx1ZSB0bworICAgICAgICBlbnVtIEJl
aGF2aW9yQXRCb3VuZGFyeS4KKyAgICAgICAgOnNjb3BlIHNwZWMgaXMgaHR0cDovL2Rldi53My5v
cmcvY3Nzd2cvc2VsZWN0b3JzNC8jc2NvcGUtcHNldWRvLgorCisgICAgICAgIFRlc3Q6IGZhc3Qv
c2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itc2NvcGUuaHRtbAorCisgICAgICAgICogY3NzL0NTU1Nl
bGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpuYW1lVG9Qc2V1ZG9UeXBlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSk6CisgICAgICAgIEFkZGVkIDpzY29wZSBw
c2V1ZG8gdHlwZS4KKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6
bWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja09uZSk6Cisg
ICAgICAgIEFkZGVkIFBzZXVkb1Njb3BlIGNhc2UgYW5kIG1vZGlmaWVkICJzY29wZSIgbWVhbmlu
ZyB3aGVuCisgICAgICAgIGJlaGF2aW9yQXRCb3VuZGFyeSBpcyBlcXVhbCB0byBTdGF5c1dpdGhp
blRyZWVTY29wZS4KKyAgICAgICAgSWYgc28sICJzY29wZSIgaXMganVzdCBhIGNvbnRleHR1YWwg
cmVmZXJlbmNlIG5vZGUuCisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgorICAgICAg
ICAqIGRvbS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0
YUxpc3Q6OnNlbGVjdG9yTWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFM
aXN0OjptYXRjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OmV4ZWN1
dGUpOgorICAgICAgICBVc2Ugcm9vdE5vZGUgYXMgYSBjb250ZXh0dWFsIHJlZmVyZW5jZSBub2Rl
LgorICAgICAgICAqIGRvbS9TZWxlY3RvclF1ZXJ5Lmg6CisgICAgICAgIChTZWxlY3RvckRhdGFM
aXN0KToKKwogMjAxMy0wMy0xMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ0FdIEFuaW1hdGlvbnMgb2YgQ1NTIGZpbHRlcnMgZG9uJ3Qgd29yayBj
b3JyZWN0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IGJjZGMwOWUwMmJiNGZi
NzZiOGUzMzlhYzExNDI3YjMwNWUwYTY1NTkuLjE1ZGQzZjEwNzVmYmEwZjUyNDEyMWU1NTY3MTJk
NzlmN2ZmZmVhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMjE1LDYgKzIx
NSw3IEBAIFBzZXVkb0lkIENTU1NlbGVjdG9yOjpwc2V1ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCiAg
ICAgY2FzZSBQc2V1ZG9MYW5nOgogICAgIGNhc2UgUHNldWRvTm90OgogICAgIGNhc2UgUHNldWRv
Um9vdDoKKyAgICBjYXNlIFBzZXVkb1Njb3BlOgogICAgIGNhc2UgUHNldWRvU2Nyb2xsYmFyQmFj
azoKICAgICBjYXNlIFBzZXVkb1Njcm9sbGJhckZvcndhcmQ6CiAgICAgY2FzZSBQc2V1ZG9XaW5k
b3dJbmFjdGl2ZToKQEAgLTM0MSw2ICszNDIsNyBAQCBzdGF0aWMgSGFzaE1hcDxBdG9taWNTdHJp
bmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+KiBuYW1lVG9Qc2V1ZG9UeXBlTWFwKAog
I2VuZGlmCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGluUmFuZ2UsICgi
aW4tcmFuZ2UiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG91dE9mUmFuZ2UsICgib3V0LW9mLXJhbmdl
IiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzY29wZSwgKCJzY29wZSIsIEF0b21pY1N0cmluZzo6Q29u
c3RydWN0RnJvbUxpdGVyYWwpKTsKIAogICAgIHN0YXRpYyBIYXNoTWFwPEF0b21pY1N0cmluZ0lt
cGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGUgPSAwOwogICAg
IGlmICghbmFtZVRvUHNldWRvVHlwZSkgewpAQCAtMzk1LDYgKzM5Nyw3IEBAIHN0YXRpYyBIYXNo
TWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZT4qIG5hbWVUb1Bz
ZXVkb1R5cGVNYXAoCiAgICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChvcHRpb25hbC5pbXBs
KCksIENTU1NlbGVjdG9yOjpQc2V1ZG9PcHRpb25hbCk7CiAgICAgICAgIG5hbWVUb1BzZXVkb1R5
cGUtPnNldChyZXF1aXJlZC5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9SZXF1aXJlZCk7CiAg
ICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChyZXNpemVyLmltcGwoKSwgQ1NTU2VsZWN0b3I6
OlBzZXVkb1Jlc2l6ZXIpOworICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBlLT5zZXQoc2NvcGUuaW1w
bCgpLCBDU1NTZWxlY3Rvcjo6UHNldWRvU2NvcGUpOwogICAgICAgICBuYW1lVG9Qc2V1ZG9UeXBl
LT5zZXQoc2Nyb2xsYmFyLmltcGwoKSwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhcik7CiAg
ICAgICAgIG5hbWVUb1BzZXVkb1R5cGUtPnNldChzY3JvbGxiYXJCdXR0b24uaW1wbCgpLCBDU1NT
ZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyQnV0dG9uKTsKICAgICAgICAgbmFtZVRvUHNldWRvVHlw
ZS0+c2V0KHNjcm9sbGJhckNvcm5lci5pbXBsKCksIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxi
YXJDb3JuZXIpOwpAQCAtNTIwLDYgKzUyMyw3IEBAIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJhY3RQ
c2V1ZG9UeXBlKCkgY29uc3QKICAgICBjYXNlIFBzZXVkb1JlcXVpcmVkOgogICAgIGNhc2UgUHNl
dWRvUmVhZE9ubHk6CiAgICAgY2FzZSBQc2V1ZG9SZWFkV3JpdGU6CisgICAgY2FzZSBQc2V1ZG9T
Y29wZToKICAgICBjYXNlIFBzZXVkb1ZhbGlkOgogICAgIGNhc2UgUHNldWRvSW52YWxpZDoKICAg
ICBjYXNlIFBzZXVkb0luZGV0ZXJtaW5hdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4
IGQ2MWI5NjYzMzgzMzYyZjg2YTQ4NGFmODRkYmZmZDgxM2JmMzlkM2IuLjkzZDIyYTRlNDVhMzhi
OTJhZDBjMTI3NDVhNjFmN2M4NDdmNWNlNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBA
IC0xMjcsNiArMTI3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUHNldWRv
Tm90LAogICAgICAgICAgICAgUHNldWRvUmVzaXplciwKICAgICAgICAgICAgIFBzZXVkb1Jvb3Qs
CisgICAgICAgICAgICBQc2V1ZG9TY29wZSwKICAgICAgICAgICAgIFBzZXVkb1Njcm9sbGJhciwK
ICAgICAgICAgICAgIFBzZXVkb1Njcm9sbGJhckJhY2ssCiAgICAgICAgICAgICBQc2V1ZG9TY3Jv
bGxiYXJCdXR0b24sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGVh
ZjAzZTMyNzNkMDE3ODlhNjAwOGU5OTEzMzZiMDIwNDE2ZGEwOGMuLmM1OGI2YzYwZTljMThkNGMw
NDg5MTg0NDg0OWQxNDU0MWE4MzgyMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgU2VsZWN0b3JDaGVja2VyOjpNYXRjaCBTZWxlY3Rv
ckNoZWNrZXI6Om1hdGNoKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb24KICAgICBQ
c2V1ZG9JZCBpZ25vcmVEeW5hbWljUHNldWRvID0gTk9QU0VVRE87CiAgICAgaWYgKHJlbGF0aW9u
ICE9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcikgewogICAgICAgICAvLyBBYm9ydCBpZiB0aGUg
bmV4dCBzZWxlY3RvciB3b3VsZCBleGNlZWQgdGhlIHNjb3BlLgotICAgICAgICBpZiAoY29udGV4
dC5lbGVtZW50ID09IGNvbnRleHQuc2NvcGUpCisgICAgICAgIGlmIChjb250ZXh0LmVsZW1lbnQg
PT0gY29udGV4dC5zY29wZSAmJiBjb250ZXh0LmJlaGF2aW9yQXRCb3VuZGFyeSAhPSBTdGF5c1dp
dGhpblRyZWVTY29wZSkKICAgICAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzQ29tcGxldGVs
eTsKIAogICAgICAgICAvLyBCYWlsLW91dCBpZiB0aGlzIHNlbGVjdG9yIGlzIGlycmVsZXZhbnQg
Zm9yIHRoZSBwc2V1ZG9JZApAQCAtMTQ5LDcgKzE0OSw3IEBAIFNlbGVjdG9yQ2hlY2tlcjo6TWF0
Y2ggU2VsZWN0b3JDaGVja2VyOjptYXRjaChjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYg
Y29uCiAgICAgICAgICAgICBNYXRjaCBtYXRjaCA9IHRoaXMtPm1hdGNoKG5leHRDb250ZXh0LCBp
Z25vcmVEeW5hbWljUHNldWRvLCBzaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3kpOwogICAgICAgICAg
ICAgaWYgKG1hdGNoID09IFNlbGVjdG9yTWF0Y2hlcyB8fCBtYXRjaCA9PSBTZWxlY3RvckZhaWxz
Q29tcGxldGVseSkKICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2g7Ci0gICAgICAgICAgICBp
ZiAobmV4dENvbnRleHQuZWxlbWVudCA9PSBuZXh0Q29udGV4dC5zY29wZSkKKyAgICAgICAgICAg
IGlmIChuZXh0Q29udGV4dC5lbGVtZW50ID09IG5leHRDb250ZXh0LnNjb3BlICYmIG5leHRDb250
ZXh0LmJlaGF2aW9yQXRCb3VuZGFyeSAhPSBTdGF5c1dpdGhpblRyZWVTY29wZSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0NvbXBsZXRlbHk7CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21wbGV0ZWx5OwpAQCAtMjA1LDcgKzIwNSw3IEBAIFNl
bGVjdG9yQ2hlY2tlcjo6TWF0Y2ggU2VsZWN0b3JDaGVja2VyOjptYXRjaChjb25zdCBTZWxlY3Rv
ckNoZWNraW5nQ29udGV4dCYgY29uCiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6U2hhZG93RGVzY2Vu
ZGFudDoKICAgICAgICAgewogICAgICAgICAgICAgLy8gSWYgd2UncmUgaW4gdGhlIHNhbWUgdHJl
ZS1zY29wZSBhcyB0aGUgc2NvcGluZyBlbGVtZW50LCB0aGVuIGZvbGxvd2luZyBhIHNoYWRvdyBk
ZXNjZW5kYW50IGNvbWJpbmF0b3Igd291bGQgZXNjYXBlIHRoYXQgYW5kIHRodXMgdGhlIHNjb3Bl
LgotICAgICAgICAgICAgaWYgKGNvbnRleHQuc2NvcGUgJiYgY29udGV4dC5zY29wZS0+dHJlZVNj
b3BlKCkgPT0gY29udGV4dC5lbGVtZW50LT50cmVlU2NvcGUoKSkKKyAgICAgICAgICAgIGlmIChj
b250ZXh0LnNjb3BlICYmIGNvbnRleHQuc2NvcGUtPnRyZWVTY29wZSgpID09IGNvbnRleHQuZWxl
bWVudC0+dHJlZVNjb3BlKCkgJiYgY29udGV4dC5iZWhhdmlvckF0Qm91bmRhcnkgIT0gU3RheXNX
aXRoaW5UcmVlU2NvcGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFNlbGVjdG9yRmFpbHNDb21w
bGV0ZWx5OwogICAgICAgICAgICAgRWxlbWVudCogc2hhZG93SG9zdE5vZGUgPSBjb250ZXh0LmVs
ZW1lbnQtPnNoYWRvd0hvc3QoKTsKICAgICAgICAgICAgIGlmICghc2hhZG93SG9zdE5vZGUpCkBA
IC03MzQsNiArNzM0LDE0IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShjb25zdCBT
ZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgY29uc3QgU2liCiAgICAgICAgICAgICBy
ZXR1cm4gKGVsZW1lbnQtPmlzV2ViVlRURWxlbWVudCgpICYmIHRvV2ViVlRURWxlbWVudChlbGVt
ZW50KS0+aXNQYXN0Tm9kZSgpKTsKICNlbmRpZgogCisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1Njb3BlOgorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnN0IE5vZGUq
IGNvbnRleHR1YWxSZWZlcmVuY2VOb2RlID0gIWNvbnRleHQuc2NvcGUgfHwgY29udGV4dC5iZWhh
dmlvckF0Qm91bmRhcnkgPT0gQ3Jvc3Nlc0JvdW5kYXJ5ID8gZWxlbWVudC0+ZG9jdW1lbnQoKS0+
ZG9jdW1lbnRFbGVtZW50KCkgOiBjb250ZXh0LnNjb3BlOworICAgICAgICAgICAgICAgIGlmIChl
bGVtZW50ID09IGNvbnRleHR1YWxSZWZlcmVuY2VOb2RlKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKwogICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3Jpem9udGFsOgogICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9WZXJ0aWNhbDoKICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRGVjcmVtZW50OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hl
Y2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCmluZGV4IDJmNDJi
NjdkMGY1MmVhNjMwZmVkMjViZjEwOTUyMGU0ZDY5ZmE4OGMuLjU1Y2M0NGViNDQwMmZjNmZmOGJh
NjZkMjdlNjljOWUxOTQxYWEyODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIGVudW0gVmlzaXRlZE1hdGNoVHlwZSB7IFZp
c2l0ZWRNYXRjaERpc2FibGVkLCBWaXNpdGVkTWF0Y2hFbmFibGVkIH07CiAgICAgZW51bSBNb2Rl
IHsgUmVzb2x2aW5nU3R5bGUgPSAwLCBDb2xsZWN0aW5nUnVsZXMsIFF1ZXJ5aW5nUnVsZXMsIFNo
YXJpbmdSdWxlcyB9OwogICAgIGV4cGxpY2l0IFNlbGVjdG9yQ2hlY2tlcihEb2N1bWVudCosIE1v
ZGUpOwotICAgIGVudW0gQmVoYXZpb3JBdEJvdW5kYXJ5IHsgRG9lc05vdENyb3NzQm91bmRhcnks
IENyb3NzZXNCb3VuZGFyeSB9OworICAgIGVudW0gQmVoYXZpb3JBdEJvdW5kYXJ5IHsgRG9lc05v
dENyb3NzQm91bmRhcnksIENyb3NzZXNCb3VuZGFyeSwgU3RheXNXaXRoaW5UcmVlU2NvcGUgfTsK
IAogICAgIHN0cnVjdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCB7CiAgICAgICAgIC8vIEluaXRp
YWwgc2VsZWN0b3IgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcApp
bmRleCAzNmRkOTc3OGRhNWNlNjM4ODU4Y2FlMmM5YmI2NjkzYjBjY2M5YjRiLi5iOTM3OWY5MjZh
NDI4MTgxYmJmMjNjMGU5NjU0ODUzNDliZTgyMGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9y
UXVlcnkuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6aW5pdGlh
bGl6ZShjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCkKICAgICAgICAgbV9zZWxl
Y3RvcnMudW5jaGVja2VkQXBwZW5kKFNlbGVjdG9yRGF0YShzZWxlY3RvciwgU2VsZWN0b3JDaGVj
a2VyRmFzdFBhdGg6OmNhblVzZShzZWxlY3RvcikpKTsKIH0KIAotaW5saW5lIGJvb2wgU2VsZWN0
b3JEYXRhTGlzdDo6c2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JE
YXRhLCBFbGVtZW50KiBlbGVtZW50KSBjb25zdAoraW5saW5lIGJvb2wgU2VsZWN0b3JEYXRhTGlz
dDo6c2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0YSYgc2VsZWN0b3JEYXRhLCBFbGVt
ZW50KiBlbGVtZW50LCBjb25zdCBOb2RlKiByb290Tm9kZSkgY29uc3QKIHsKICAgICBpZiAoc2Vs
ZWN0b3JEYXRhLmlzRmFzdENoZWNrYWJsZSAmJiAhZWxlbWVudC0+aXNTVkdFbGVtZW50KCkpIHsK
ICAgICAgICAgU2VsZWN0b3JDaGVja2VyRmFzdFBhdGggc2VsZWN0b3JDaGVja2VyRmFzdFBhdGgo
c2VsZWN0b3JEYXRhLnNlbGVjdG9yLCBlbGVtZW50KTsKQEAgLTYxLDYgKzYxLDggQEAgaW5saW5l
IGJvb2wgU2VsZWN0b3JEYXRhTGlzdDo6c2VsZWN0b3JNYXRjaGVzKGNvbnN0IFNlbGVjdG9yRGF0
YSYgc2VsZWN0b3JEYXRhLAogCiAgICAgU2VsZWN0b3JDaGVja2VyIHNlbGVjdG9yQ2hlY2tlcihl
bGVtZW50LT5kb2N1bWVudCgpLCBTZWxlY3RvckNoZWNrZXI6OlF1ZXJ5aW5nUnVsZXMpOwogICAg
IFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JDaGVja2luZ0NvbnRleHQgc2VsZWN0b3JDaGVja2lu
Z0NvbnRleHQoc2VsZWN0b3JEYXRhLnNlbGVjdG9yLCBlbGVtZW50LCBTZWxlY3RvckNoZWNrZXI6
OlZpc2l0ZWRNYXRjaERpc2FibGVkKTsKKyAgICBzZWxlY3RvckNoZWNraW5nQ29udGV4dC5iZWhh
dmlvckF0Qm91bmRhcnkgPSBTZWxlY3RvckNoZWNrZXI6OlN0YXlzV2l0aGluVHJlZVNjb3BlOwor
ICAgIHNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0LnNjb3BlID0gIXJvb3ROb2RlLT5pc0RvY3VtZW50
Tm9kZSgpICYmIHJvb3ROb2RlLT5pc0NvbnRhaW5lck5vZGUoKSA/IHRvQ29udGFpbmVyTm9kZShy
b290Tm9kZSkgOiAwOwogICAgIFBzZXVkb0lkIGlnbm9yZUR5bmFtaWNQc2V1ZG8gPSBOT1BTRVVE
TzsKICAgICByZXR1cm4gc2VsZWN0b3JDaGVja2VyLm1hdGNoKHNlbGVjdG9yQ2hlY2tpbmdDb250
ZXh0LCBpZ25vcmVEeW5hbWljUHNldWRvLCBET01TaWJsaW5nVHJhdmVyc2FsU3RyYXRlZ3koKSkg
PT0gU2VsZWN0b3JDaGVja2VyOjpTZWxlY3Rvck1hdGNoZXM7CiB9CkBAIC03MSw3ICs3Myw3IEBA
IGJvb2wgU2VsZWN0b3JEYXRhTGlzdDo6bWF0Y2hlcyhFbGVtZW50KiB0YXJnZXRFbGVtZW50KSBj
b25zdAogCiAgICAgdW5zaWduZWQgc2VsZWN0b3JDb3VudCA9IG1fc2VsZWN0b3JzLnNpemUoKTsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2VsZWN0b3JDb3VudDsgKytpKSB7Ci0gICAg
ICAgIGlmIChzZWxlY3Rvck1hdGNoZXMobV9zZWxlY3RvcnNbaV0sIHRhcmdldEVsZW1lbnQpKQor
ICAgICAgICBpZiAoc2VsZWN0b3JNYXRjaGVzKG1fc2VsZWN0b3JzW2ldLCB0YXJnZXRFbGVtZW50
LCB0YXJnZXRFbGVtZW50KSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAt
MTI4LDcgKzEzMCw3IEBAIHZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZShOb2RlKiByb290
Tm9kZSwgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBtYXRjaGVkRWxlCiAgICAgICAgIEVsZW1lbnQq
IGVsZW1lbnQgPSByb290Tm9kZS0+dHJlZVNjb3BlKCktPmdldEVsZW1lbnRCeUlkKHNlbGVjdG9y
LT52YWx1ZSgpKTsKICAgICAgICAgaWYgKCFlbGVtZW50IHx8ICEoaXNUcmVlU2NvcGVSb290KHJv
b3ROb2RlKSB8fCBlbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihyb290Tm9kZSkpKQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBpZiAoc2VsZWN0b3JNYXRjaGVzKG1fc2VsZWN0b3JzWzBdLCBl
bGVtZW50KSkKKyAgICAgICAgaWYgKHNlbGVjdG9yTWF0Y2hlcyhtX3NlbGVjdG9yc1swXSwgZWxl
bWVudCwgcm9vdE5vZGUpKQogICAgICAgICAgICAgbWF0Y2hlZEVsZW1lbnRzLmFwcGVuZChlbGVt
ZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE0MCw3ICsxNDIsNyBAQCB2b2lkIFNl
bGVjdG9yRGF0YUxpc3Q6OmV4ZWN1dGUoTm9kZSogcm9vdE5vZGUsIFZlY3RvcjxSZWZQdHI8Tm9k
ZT4gPiYgbWF0Y2hlZEVsZQogICAgICAgICBpZiAobi0+aXNFbGVtZW50Tm9kZSgpKSB7CiAgICAg
ICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOwogICAg
ICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNlbGVjdG9yQ291bnQ7ICsraSkgewot
ICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvck1hdGNoZXMobV9zZWxlY3RvcnNbaV0sIGVsZW1l
bnQpKSB7CisgICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yTWF0Y2hlcyhtX3NlbGVjdG9yc1tp
XSwgZWxlbWVudCwgcm9vdE5vZGUpKSB7CiAgICAgICAgICAgICAgICAgICAgIG1hdGNoZWRFbGVt
ZW50cy5hcHBlbmQoZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdE1hdGNo
T25seSkKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5oCmluZGV4IDRiOTIzOTRhYzkwMjFhMTZkOTE2Nzk0NTcyMGJiNTdiNzM1Zjg4OWQu
LjNhNmViM2UzZWI0ZGVhMzE3YjgwODY1MDhlMDc2NjQwMWRhMDM1OTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NlbGVjdG9yUXVlcnkuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgICAgICBib29s
IGlzRmFzdENoZWNrYWJsZTsKICAgICB9OwogCi0gICAgYm9vbCBzZWxlY3Rvck1hdGNoZXMoY29u
c3QgU2VsZWN0b3JEYXRhJiwgRWxlbWVudCopIGNvbnN0OworICAgIGJvb2wgc2VsZWN0b3JNYXRj
aGVzKGNvbnN0IFNlbGVjdG9yRGF0YSYsIEVsZW1lbnQqLCBjb25zdCBOb2RlKikgY29uc3Q7CiAg
ICAgYm9vbCBjYW5Vc2VJZExvb2t1cChOb2RlKiByb290Tm9kZSkgY29uc3Q7CiAgICAgdGVtcGxh
dGUgPGJvb2wgZmlyc3RNYXRjaE9ubHk+CiAgICAgdm9pZCBleGVjdXRlKE5vZGUqIHJvb3ROb2Rl
LCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZmMwMTkyY2I2NGJiZDYz
NWFiZWUyMDJiNzU2NWFmMmZlYjA5ZWIzLi40ZjExZjIyYWU0MTU1NWNjMWQ4ZGQ0ZDBmY2U3ZGY5
MDczNjU2OGYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDMtMTEgIFRha2FzaGkgU2Fr
YW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCA6c2NvcGUgZm9y
IGVsZW1lbnQucXVlcnlTZWxlY3RvcltBbGxdKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgxMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRy
aSBHbGF6a292LgorCisgICAgICAgICogZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29w
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2VsZWN0b3JzL3F1ZXJ5U2Vs
ZWN0b3Itc2NvcGUuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMTEgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBNYWtlIEJhY2tncm91bmRIVE1MUGFyc2VyIHdvcmsg
d2l0aCBkb2Mud3JpdGVzIHRoYXQgZW50ZXIgb3IgbGVhdmUgZm9yZWlnbiBjb250ZW50CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9xdWVyeVNlbGVjdG9yLXNjb3BlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2VsZWN0b3JzL3F1ZXJ5U2VsZWN0b3Itc2Nv
cGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwYWJhNjJhNzhjMTJkODdjN2ExYjE2YzM5MjU5
MDRhOGFkZjc0ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9y
cy9xdWVyeVNlbGVjdG9yLXNjb3BlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUaGlz
IHRlc3QgbWFrZXMgc3VyZSB0aGF0IDpzY29wZSB3b3JrcyBjb3JyZWN0bHkuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoInVsIGEi
KS5sZW5ndGggaXMgMQorUEFTUyBzY29wZS5xdWVyeVNlbGVjdG9yKCJ1bCBhIikgaXMgc2NvcGUu
Zmlyc3RDaGlsZAorUEFTUyBzY29wZS5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUgdWwgYSIpLmxl
bmd0aCBpcyAwCitQQVNTIHNjb3BlLnF1ZXJ5U2VsZWN0b3IoIjpzY29wZSB1bCBhIikgaXMgbnVs
bAorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUgdWwgYSIpLmxlbmd0aCBp
cyAyCitQQVNTIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpyb290IHVsIGEiKS5sZW5ndGgg
aXMgMgorUEFTUyBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUgYSIpLmxlbmd0aCBp
cyAyCitQQVNTIHNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBhIikubGVuZ3RoIGlzIDEK
K1BBU1Mgc2NvcGUucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIGEiKS5pdGVtKDApIGlzIHNjb3Bl
LmZpcnN0Q2hpbGQKK1BBU1Mgc2NvcGUucXVlcnlTZWxlY3RvcigiOnNjb3BlIGEiKSBpcyBzY29w
ZS5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUgYSIpLml0ZW0oMCkKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorYWJjCitkZWYKK2VmZwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29wZS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9zZWxlY3RvcnMvcXVlcnlTZWxlY3Rvci1zY29wZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjEzNDA4ZThjMzNiYTc3OTdjNjZlMWRiNzNiMTAxY2RmMjJlZjdiNjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3NlbGVjdG9ycy9xdWVyeVNlbGVjdG9yLXNjb3Bl
Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHVsPgorICAgIDxsaSBpZD0nc2Nv
cGUnPjxhPmFiYzwvYT48L2xpPgorICAgIDxsaT5kZWY8L2xpPgorICAgIDxsaT48YT5lZmc8L2E+
PC9saT4KKyAgPC91bD4KKzwvYm9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbignVGhpcyB0ZXN0
IG1ha2VzIHN1cmUgdGhhdCA6c2NvcGUgd29ya3MgY29ycmVjdGx5LicpOworCit2YXIgc2NvcGUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2NvcGUnKTsKK3Nob3VsZEJlKCdzY29wZS5xdWVy
eVNlbGVjdG9yQWxsKCJ1bCBhIikubGVuZ3RoJywgJzEnKTsKK3Nob3VsZEJlKCdzY29wZS5xdWVy
eVNlbGVjdG9yKCJ1bCBhIiknLCAnc2NvcGUuZmlyc3RDaGlsZCcpOworc2hvdWxkQmUoJ3Njb3Bl
LnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSB1bCBhIikubGVuZ3RoJywgJzAnKTsKK3Nob3VsZEJl
TnVsbCgnc2NvcGUucXVlcnlTZWxlY3RvcigiOnNjb3BlIHVsIGEiKScpOworc2hvdWxkQmUoJ2Rv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSB1bCBhIikubGVuZ3RoJywgJzInKTsKK3No
b3VsZEJlKCdkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCI6cm9vdCB1bCBhIikubGVuZ3RoJywg
JzInKTsKKworc2hvdWxkQmUoJ2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29wZSBhIiku
bGVuZ3RoJywgJzInKTsKK3Nob3VsZEJlKCdzY29wZS5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUg
YSIpLmxlbmd0aCcsICcxJyk7CitzaG91bGRCZSgnc2NvcGUucXVlcnlTZWxlY3RvckFsbCgiOnNj
b3BlIGEiKS5pdGVtKDApJywgJ3Njb3BlLmZpcnN0Q2hpbGQnKTsKK3Nob3VsZEJlKCdzY29wZS5x
dWVyeVNlbGVjdG9yKCI6c2NvcGUgYSIpJywgJ3Njb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoIjpzY29w
ZSBhIikuaXRlbSgwKScpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>