<?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>116336</bug_id>
          
          <creation_ts>2013-05-17 11:32:19 -0700</creation_ts>
          <short_desc>Headers and footers will sometimes disappear and re-appear during page loads</short_desc>
          <delta_ts>2013-05-17 16:13:30 -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>Layout and Rendering</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Beth Dakin">bdakin</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>890541</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 11:32:19 -0700</bug_when>
    <thetext>We can fix this by making the RenderLayerCompositor add the header/footer layer as early as possible in its creation process if one has been set for the Page/WKView.

&lt;rdar://problem/13886753&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890552</commentid>
    <comment_count>1</comment_count>
      <attachid>202129</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 11:46:21 -0700</bug_when>
    <thetext>Created attachment 202129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890553</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 11:47:52 -0700</bug_when>
    <thetext>Attachment 202129 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/page/ChromeClient.h&apos;, u&apos;Source/WebCore/page/FrameView.cpp&apos;, u&apos;Source/WebCore/page/FrameView.h&apos;, u&apos;Source/WebCore/page/Page.cpp&apos;, u&apos;Source/WebCore/page/Page.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerCompositor.cpp&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageBanner.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageBanner.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PageBannerMac.mm&apos;]&quot; exit_code: 1
Source/WebKit2/WebProcess/WebPage/PageBanner.h:39:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890556</commentid>
    <comment_count>3</comment_count>
      <attachid>202130</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 11:48:41 -0700</bug_when>
    <thetext>Created attachment 202130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890559</commentid>
    <comment_count>4</comment_count>
      <attachid>202130</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 11:57:06 -0700</bug_when>
    <thetext>Comment on attachment 202130
Patch

Attachment 202130 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/494370</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890560</commentid>
    <comment_count>5</comment_count>
      <attachid>202130</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 11:57:46 -0700</bug_when>
    <thetext>Comment on attachment 202130
Patch

Attachment 202130 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/497073</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890565</commentid>
    <comment_count>6</comment_count>
      <attachid>202130</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 12:03:04 -0700</bug_when>
    <thetext>Comment on attachment 202130
Patch

Attachment 202130 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/486518</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890570</commentid>
    <comment_count>7</comment_count>
      <attachid>202130</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-05-17 12:11:03 -0700</bug_when>
    <thetext>Comment on attachment 202130
Patch

Attachment 202130 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/486519</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890573</commentid>
    <comment_count>8</comment_count>
      <attachid>202130</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 12:15:26 -0700</bug_when>
    <thetext>Comment on attachment 202130
Patch

Attachment 202130 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/482888</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890583</commentid>
    <comment_count>9</comment_count>
      <attachid>202130</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-05-17 12:27:23 -0700</bug_when>
    <thetext>Comment on attachment 202130
Patch

Attachment 202130 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/495383</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890588</commentid>
    <comment_count>10</comment_count>
      <attachid>202135</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 12:38:44 -0700</bug_when>
    <thetext>Created attachment 202135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890592</commentid>
    <comment_count>11</comment_count>
      <attachid>202135</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 12:44:44 -0700</bug_when>
    <thetext>Comment on attachment 202135
Patch

Attachment 202135 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/486528</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890593</commentid>
    <comment_count>12</comment_count>
      <attachid>202135</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 12:44:57 -0700</bug_when>
    <thetext>Comment on attachment 202135
Patch

Attachment 202135 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/497089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890594</commentid>
    <comment_count>13</comment_count>
      <attachid>202135</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 12:44:58 -0700</bug_when>
    <thetext>Comment on attachment 202135
Patch

Attachment 202135 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/484787</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890601</commentid>
    <comment_count>14</comment_count>
      <attachid>202135</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-17 12:48:59 -0700</bug_when>
    <thetext>Comment on attachment 202135
Patch

Attachment 202135 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/487522</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890608</commentid>
    <comment_count>15</comment_count>
      <attachid>202138</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 12:56:04 -0700</bug_when>
    <thetext>Created attachment 202138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890610</commentid>
    <comment_count>16</comment_count>
      <attachid>202138</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 13:02:35 -0700</bug_when>
    <thetext>Comment on attachment 202138
Patch

Attachment 202138 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/498015</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890611</commentid>
    <comment_count>17</comment_count>
      <attachid>202138</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 13:03:11 -0700</bug_when>
    <thetext>Comment on attachment 202138
Patch

Attachment 202138 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/495393</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890612</commentid>
    <comment_count>18</comment_count>
      <attachid>202139</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 13:04:02 -0700</bug_when>
    <thetext>Created attachment 202139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890618</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-17 13:06:13 -0700</bug_when>
    <thetext>Attachment 202139 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/page/ChromeClient.h&apos;, u&apos;Source/WebCore/page/FrameView.cpp&apos;, u&apos;Source/WebCore/page/FrameView.h&apos;, u&apos;Source/WebCore/page/Page.cpp&apos;, u&apos;Source/WebCore/page/Page.h&apos;, u&apos;Source/WebCore/rendering/RenderLayerCompositor.cpp&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageBanner.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/PageBanner.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/PageBannerMac.mm&apos;]&quot; exit_code: 1
Source/WebKit2/ChangeLog:40:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890621</commentid>
    <comment_count>20</comment_count>
      <attachid>202142</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 13:12:59 -0700</bug_when>
    <thetext>Created attachment 202142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890628</commentid>
    <comment_count>21</comment_count>
      <attachid>202142</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 13:23:41 -0700</bug_when>
    <thetext>Comment on attachment 202142
Patch

Attachment 202142 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/483873</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890631</commentid>
    <comment_count>22</comment_count>
      <attachid>202142</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 13:29:12 -0700</bug_when>
    <thetext>Comment on attachment 202142
Patch

Attachment 202142 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/493403</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890632</commentid>
    <comment_count>23</comment_count>
      <attachid>202146</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 13:30:25 -0700</bug_when>
    <thetext>Created attachment 202146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890648</commentid>
    <comment_count>24</comment_count>
      <attachid>202146</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-17 13:44:39 -0700</bug_when>
    <thetext>Comment on attachment 202146
Patch

Attachment 202146 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/490460</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890651</commentid>
    <comment_count>25</comment_count>
      <attachid>202153</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 13:45:59 -0700</bug_when>
    <thetext>Created attachment 202153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890713</commentid>
    <comment_count>26</comment_count>
      <attachid>202153</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-17 15:59:14 -0700</bug_when>
    <thetext>Comment on attachment 202153
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/mac/PageBannerMac.mm:77
&gt; +    [parentLayer-&gt;platformLayer() addSublayer:m_layer.get()];

GraphicsLayers own their sublayer tree, so if changes to the parentLayer get flushed, that will nuke the sublayers. What prevents that from happening to headers and footers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890721</commentid>
    <comment_count>27</comment_count>
      <attachid>202153</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-17 16:10:56 -0700</bug_when>
    <thetext>Comment on attachment 202153
Patch

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

&gt;&gt; Source/WebKit2/WebProcess/WebPage/mac/PageBannerMac.mm:77
&gt;&gt; +    [parentLayer-&gt;platformLayer() addSublayer:m_layer.get()];
&gt; 
&gt; GraphicsLayers own their sublayer tree, so if changes to the parentLayer get flushed, that will nuke the sublayers. What prevents that from happening to headers and footers?

We think this is OK because the banner GraphicsLayers are outside the normal flush tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890725</commentid>
    <comment_count>28</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2013-05-17 16:13:30 -0700</bug_when>
    <thetext>Thank you! http://trac.webkit.org/changeset/150307</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202129</attachid>
            <date>2013-05-17 11:46:21 -0700</date>
            <delta_ts>2013-05-17 11:48:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>17532</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdp
bGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUtYXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAg
ICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3
NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRv
IGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92
ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisg
ICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6
OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVu
IGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRo
aXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9m
b290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgor
CisgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9sZCBGcmFtZVZpZXcgZnVuY3Rpb25zLiBB
ZGQgcmVmZXJlbmNlcyB0byBuZXcgUGFnZSAKKyAgICAgICAgZnVuY3Rpb25zLgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgIE5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIHdp
bGwgcGFzcyB0aGUgbmV3IGxheWVycyB1cCB0byBXSzIuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcik6
CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCisgICAgICAgIFJlbW92ZSBzZXRXYW50c0xheWVy
Rm9ySGVhZGVyL0Zvb3Rlci4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisKKyAgICAgICAgUGFn
ZSBub3cgY2FjaGVzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuIFdoZW4gdGhlIEZyYW1l
Vmlldy9STEMgaGF2ZSBiZWVuIAorICAgICAgICBkZXN0cm95ZWQsIGFuZCB0aGUgY2FjaGVkIGxh
eWVyL2hlaWdodCBpbmZvcm1hdGlvbiBvbiB0aG9zZSBjbGFzc2VzIGhhcyBiZWVuIGxvc3QsIAor
ICAgICAgICB0aGlzIGRhdGEgb24gUGFnZSB3aWxsIHBlcnNpc3Qgc28gdGhhdCB3ZSBjYW4gYnVp
bGQgdGhlIGxheWVycyBiYWNrIHVwLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFkZEhlYWRl
cldpdGhIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkRm9vdGVyV2l0aEhlaWdo
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoZWFk
ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9vdGVySGVpZ2h0KToKKworICAg
ICAgICBBcyBzb29uIGFzIHRoZSByb290IGdldHMgYSBiYWNraW5nLCByZWNyZWF0ZSB0aGUgaGVh
ZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGlmIAorICAgICAgICBuZWVkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorCisgICAgICAgIENhbGwgaW50byBD
aHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgW0VuYWJsZWRB
dFJ1bnRpbWVdIGV4dGVuZGVkIGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBnbG9iYWwgY29uc3RydWN0
b3JzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTUwMjQzKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg1OCw2ICs4NTgsOCBA
QCBfX1pON1dlYkNvcmU0UGFnZTE2c2V0RGVmZXJzTG9hZGluZ0ViCiBfX1pON1dlYkNvcmU0UGFn
ZTE3d2lsbE1vdmVPZmZzY3JlZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxOHJlbW92ZVNjaGVkdWxl
UGFpckVOM1dURjEwUGFzc1JlZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKIF9fWk43V2ViQ29y
ZTRQYWdlMThzZXRQYWdlU2NhbGVGYWN0b3JFZlJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3Jl
NFBhZ2UxOWFkZEZvb3RlcldpdGhIZWlnaHRFaQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEhlYWRl
cldpdGhIZWlnaHRFaQogX19aTjdXZWJDb3JlNFBhZ2UxOWFkZExheW91dE1pbGVzdG9uZXNFagog
X19aTjdXZWJDb3JlNFBhZ2UxOXNldFJ1YmJlckJhbmRzQXRUb3BFYgogX19aTjdXZWJDb3JlNFBh
Z2UxOXZpc2l0ZWRTdGF0ZUNoYW5nZWRFUE5TXzlQYWdlR3JvdXBFeQpAQCAtMTY1Miw4ICsxNjU0
LDYgQEAgX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxM3BhaW50QmVoYXZpb3JFdgogX19aTks3V2Vi
Q29yZTlGcmFtZVZpZXcxNGRpZEZpcnN0TGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3
MTliYXNlQmFja2dyb3VuZENvbG9yRXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MjBpc1NvZnR3
YXJlUmVuZGVyYWJsZUV2Ci1fX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZv
ckZvb3RlckViCi1fX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckhlYWRl
ckViCiBfX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIzZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JFdgog
X19aTks3V2ViQ29yZTlGcmFtZVZpZXcyN3dpbmRvd0NsaXBSZWN0Rm9yRnJhbWVPd25lckVQS05T
XzIxSFRNTEZyYW1lT3duZXJFbGVtZW50RWIKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3Mjhpc0Vu
Y2xvc2VkSW5Db21wb3NpdGluZ0xheWVyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkocmV2aXNpb24gMTUwMjQzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzc2LDYgKzM3Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxl
bWVudD4gPiYpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpIHsgcmV0dXJuIGZhbHNlOyB9OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxh
eWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5
ZXIoR3JhcGhpY3NMYXllciopIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21l
Q2xpZW50KCkgeyB9CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNp
b24gMTUwMjQzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MDQsMjggKzkwNCw2IEBAIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6c2V0
V2FudHNMYXllckYKICAgICByZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVM
YXllckZvckJvdHRvbU92ZXJoYW5nQXJlYSh3YW50c0xheWVyKTsKIH0KIAotR3JhcGhpY3NMYXll
ciogRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikgY29u
c3QKLXsKLSAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwot
ICAgIGlmICghcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQobV9m
cmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpKTsKLQotICAgIHJldHVybiByZW5k
ZXJWaWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKHdhbnRzTGF5ZXIpOwot
fQotCi1HcmFwaGljc0xheWVyKiBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JGb290ZXIoYm9v
bCB3YW50c0xheWVyKSBjb25zdAotewotICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlz
LT5yZW5kZXJWaWV3KCk7Ci0gICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIEFTU0VSVChtX2ZyYW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOwot
Ci0gICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290
ZXIod2FudHNMYXllcik7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAK
IGJvb2wgRnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoRnJhbWUq
IHJvb3RGcmFtZUZvckZsdXNoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lv
biAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MDksOCArNDA5LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykKICAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9yVG9wT3ZlckhhbmdBcmVhKGJv
b2wpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVy
SGFuZ0FyZWEoYm9vbCkgY29uc3Q7Ci0gICAgR3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZv
ckhlYWRlcihib29sKSBjb25zdDsKLSAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9y
Rm9vdGVyKGJvb2wpIGNvbnN0OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWln
aHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUG9pbnRl
ckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQXJlbmEuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJSZW5kZXJXaWRnZXQuaCIKQEAgLTE3NSw2ICsxNzYsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGll
bnRzJiBwYWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkKICAgICAsIG1f
cmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lcygwKQorICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKKyAg
ICAsIG1fZm9vdGVySGVpZ2h0KDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRl
ZE9iamVjdHMoZmFsc2UpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNl
KQpAQCAtMTI4MCw2ICsxMjgzLDM4IEBAIFBhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJp
bGl0eVN0YXQKIH0KICNlbmRpZgogCit2b2lkIFBhZ2U6OmFkZEhlYWRlcldpdGhIZWlnaHQoaW50
IGhlYWRlckhlaWdodCkKK3sKKyAgICBtX2hlYWRlckhlaWdodCA9IGhlYWRlckhlaWdodDsKKwor
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lKCkgPyBtYWluRnJhbWUoKS0+dmll
dygpIDogMDsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVu
ZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVyVmlldygpOworICAgIGlmICgh
cmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJhbWVWaWV3LT5zZXRIZWFkZXJI
ZWlnaHQobV9oZWFkZXJIZWlnaHQpOworICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+dXBk
YXRlTGF5ZXJGb3JIZWFkZXIobV9oZWFkZXJIZWlnaHQpOworfQorCit2b2lkIFBhZ2U6OmFkZEZv
b3RlcldpdGhIZWlnaHQoaW50IGZvb3RlckhlaWdodCkKK3sKKyAgICBtX2Zvb3RlckhlaWdodCA9
IGZvb3RlckhlaWdodDsKKworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lKCkg
PyBtYWluRnJhbWUoKS0+dmlldygpIDogMDsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAg
cmV0dXJuOworCisgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVy
VmlldygpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJh
bWVWaWV3LT5zZXRGb290ZXJIZWlnaHQobV9mb290ZXJIZWlnaHQpOworICAgIHJlbmRlclZpZXct
PmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290ZXIobV9mb290ZXJIZWlnaHQpOworfQor
CiB2b2lkIFBhZ2U6OmFkZExheW91dE1pbGVzdG9uZXMoTGF5b3V0TWlsZXN0b25lcyBtaWxlc3Rv
bmVzKQogewogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3YW50IGEgZnVuY3Rpb24gdGhh
dCByZXBsYWNlcyBtX2xheW91dE1pbGVzdG9uZXMgaW5zdGVhZCBvZiBqdXN0IGFkZGluZyB0byBp
dC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYgKzM1NiwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZW1vdmVMYXlvdXRNaWxlc3RvbmVzKExheW91dE1pbGVzdG9uZXMpOwogICAg
IExheW91dE1pbGVzdG9uZXMgcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lcygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lczsgfQogCisgICAgdm9pZCBhZGRIZWFkZXJX
aXRoSGVpZ2h0KGludCk7CisgICAgaW50IGhlYWRlckhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGVhZGVySGVpZ2h0OyB9CisgICAgdm9pZCBhZGRGb290ZXJXaXRoSGVpZ2h0KGludCk7CisgICAg
aW50IGZvb3RlckhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9vdGVySGVpZ2h0OyB9CisKICAg
ICBib29sIGlzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoKSBjb25zdDsKICAgICB2
b2lkIHN0YXJ0Q291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoKTsKICAgICB2b2lkIHJl
c2V0UmVsZXZhbnRQYWludGVkT2JqZWN0Q291bnRlcigpOwpAQCAtNTAzLDYgKzUwOCw5IEBAIHBy
aXZhdGU6CiAKICAgICBMYXlvdXRNaWxlc3RvbmVzIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25l
czsKIAorICAgIGludCBtX2hlYWRlckhlaWdodDsKKyAgICBpbnQgbV9mb290ZXJIZWlnaHQ7CisK
ICAgICBIYXNoU2V0PFJlbmRlck9iamVjdCo+IG1fcmVsZXZhbnRVbnBhaW50ZWRSZW5kZXJPYmpl
Y3RzOwogICAgIFJlZ2lvbiBtX3RvcFJlbGV2YW50UGFpbnRlZFJlZ2lvbjsKICAgICBSZWdpb24g
bV9ib3R0b21SZWxldmFudFBhaW50ZWRSZWdpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gMTUwMjQz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY2Myw2ICs2NjMsMTAgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZUJhY2tpbgogICAgICAgICAgICAgICAgIGxheWVyLT5iYWNraW5nKCktPmF0
dGFjaFRvU2Nyb2xsaW5nQ29vcmRpbmF0b3JXaXRoUGFyZW50KDApOwogICAgICAgICAgICAgICAg
IGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29y
ZGluYXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy0+ZnJhbWVW
aWV3KCkpOworICAgICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7
CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUxheWVyRm9ySGVhZGVyKHBhZ2UtPmhlYWRlckhl
aWdodCgpKTsKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJGb3JGb290ZXIocGFnZS0+
Zm9vdGVySGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgLy8gVGhpcyBsYXllciBhbmQgYWxsIG9mIGl0cyBkZXNjZW5kYW50cyBoYXZlIGNh
Y2hlZCByZXBhaW50cyByZWN0cyB0aGF0IGFyZSByZWxhdGl2ZSB0bwpAQCAtMjU2MCw2ICsyNTY0
LDkgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cAogICAgIGlmIChT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxp
bmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3
Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkpOwogCisgICAgaWYg
KFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVu
dCgpLT5kaWRBZGRIZWFkZXJMYXllcihtX2xheWVyRm9ySGVhZGVyLmdldCgpKTsKKwogICAgIHJl
dHVybiBtX2xheWVyRm9ySGVhZGVyLmdldCgpOwogfQogCkBAIC0yNTkxLDYgKzI1OTgsOSBAQCBH
cmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgaWYgKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5
ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAoUGFnZSog
cGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCktPmRp
ZEFkZEZvb3RlckxheWVyKG1fbGF5ZXJGb3JGb290ZXIuZ2V0KCkpOworCiAgICAgcmV0dXJuIG1f
bGF5ZXJGb3JGb290ZXIuZ2V0KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI3
OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDM3IEBACisyMDEzLTA1LTE3ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAg
ICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdpbGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUt
YXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxl
dmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRvIGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNw
ZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9y
SGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisgICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJ
bnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0
aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVuIGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGlu
dG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRoaXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29y
ZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9mb290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZl
ciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9SZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVu
IGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgorCisgICAgICAgIFNlbmQgdGhlIGxheWVycyBvdmVy
IHRvIFBhZ2VCYW5uZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFk
ZEhlYWRlckxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRG
b290ZXJMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisKKyAgICAgICAgUGFnZUJh
bm5lcjo6YWRkVG9QYWdlKCkgbm93IGRvZXMgbXVjaCBsZXNzIHdvcmsgc2luY2UgaXQgY2Fu4oCZ
dCBnZXQgdGhlIHBhcmVudCAKKyAgICAgICAgbGF5ZXIgcmlnaHQgYXdheS4gVGhlIHdvcmsgdGhh
dCBpcyB1c2VkIHRvIGRvIG9uY2UgaXQgaGFkIHRoZSBwYXJlbnQgbGF5ZXIgaXMgbm93IAorICAg
ICAgICBwZXJmb3JtZWQgaW4gZGlkQWRkUGFyZW50TGF5ZXIoKQorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9QYWdlQmFubmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUJhbm5lcjo6
ZGlkQWRkUGFyZW50TGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFu
bmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQmFubmVyOjphZGRUb1BhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcik6CisgICAgICAgIChXZWJLaXQpOgor
CiAyMDEzLTA1LTE3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXhw
b3NlIG5ldyBsb2FkLXdpdGgtdXNlckRhdGEgQVBJIHRvIE9iamVjdGl2ZS1DCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25B
Y3Rpb24uaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCiAj
aW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgorI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKICNpbmNs
dWRlICJXZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgpAQCAtODU1LDQgKzg1NiwxNiBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZGlzYWJsZVN1ZGRlblRlcm1pCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpKTsKIH0KIAordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIqIGhlYWRl
clBhcmVudCkKK3sKKyAgICBpZiAoUGFnZUJhbm5lciogYmFubmVyID0gbV9wYWdlLT5oZWFkZXJQ
YWdlQmFubmVyKCkpCisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoaGVhZGVyUGFy
ZW50KTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKEdyYXBo
aWNzTGF5ZXIqIGZvb3RlclBhcmVudCkKK3sKKyAgICBpZiAoUGFnZUJhbm5lciogYmFubmVyID0g
bV9wYWdlLT5mb290ZXJQYWdlQmFubmVyKCkpCisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50
TGF5ZXIoZm9vdGVyUGFyZW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyNyw2ICsyMjcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJbkV4
dHJhU3R5bGVTaGVldCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJ
bkV4dHJhU2NyaXB0KCkgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
SGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJ
REU7CisKICAgICBTdHJpbmcgbV9jYWNoZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRyPFdl
YkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lOwogICAgIG11dGFibGUgYm9vbCBt
X2NhY2hlZE1haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXI7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuY3BwCShyZXZpc2lvbiAx
NTAyNDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDEwIEBAIGJvb2wgUGFnZUJhbm5lcjo6bW91
c2VFdmVudChjb25zdCBXZWJNb3UKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKK3ZvaWQgUGFn
ZUJhbm5lcjo6ZGlkQWRkUGFyZW50TGF5ZXIoR3JhcGhpY3NMYXllciopCit7Cit9CiAjZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvUGFnZUJhbm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgJKHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDEwIEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjZW5kaWYKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIEdyYXBoaWNz
TGF5ZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlOwpAQCAtNjks
NiArNzMsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBtb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZl
bnQmKTsKICAgICB2b2lkIGRpZENoYW5nZURldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFj
dG9yKTsKIAorICAgIHZvaWQgZGlkQWRkUGFyZW50TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopOworCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBleHBsaWNpdCBQYWdlQmFu
bmVyKENBTGF5ZXIgKiwgaW50IGhlaWdodCwgQ2xpZW50Kik7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCShy
ZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BhZ2VCYW5uZXJNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTU3LDQ3ICs1NywyNiBAQCB2b2lk
IFBhZ2VCYW5uZXI6OmFkZFRvUGFnZShUeXBlIHR5cGUsIFdlCiAgICAgQVNTRVJUKG1fd2ViUGFn
ZSk7CiAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewotICAgIGNhc2UgSGVhZGVyOiB7Ci0gICAgICAg
IEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV93ZWJQYWdlLT5tYWluRnJhbWVWaWV3KCk7Ci0gICAg
ICAgIGlmICghZnJhbWVWaWV3KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZyYW1l
Vmlldy0+c2V0SGVhZGVySGVpZ2h0KG1faGVpZ2h0KTsKLQotICAgICAgICBHcmFwaGljc0xheWVy
KiBwYXJlbnRMYXllciA9IGZyYW1lVmlldy0+c2V0V2FudHNMYXllckZvckhlYWRlcihtX2xheWVy
KTsKLSAgICAgICAgaWYgKCFwYXJlbnRMYXllcikgewotICAgICAgICAgICAgbV93ZWJQYWdlLT5j
b3JlUGFnZSgpLT5yZW1vdmVMYXlvdXRNaWxlc3RvbmVzKERpZEZpcnN0Rmx1c2hGb3JIZWFkZXJM
YXllcik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBtX3dlYlBh
Z2UtPmNvcmVQYWdlKCktPmFkZExheW91dE1pbGVzdG9uZXMoRGlkRmlyc3RGbHVzaEZvckhlYWRl
ckxheWVyKTsKLQotICAgICAgICBtX2xheWVyLmdldCgpLmJvdW5kcyA9IENHUmVjdE1ha2UoMCwg
MCwgcGFyZW50TGF5ZXItPnNpemUoKS53aWR0aCgpLCBwYXJlbnRMYXllci0+c2l6ZSgpLmhlaWdo
dCgpKTsKLSAgICAgICAgW3BhcmVudExheWVyLT5wbGF0Zm9ybUxheWVyKCkgYWRkU3VibGF5ZXI6
bV9sYXllci5nZXQoKV07Ci0KKyAgICBjYXNlIEhlYWRlcjoKKyAgICAgICAgbV93ZWJQYWdlLT5j
b3JlUGFnZSgpLT5hZGRIZWFkZXJXaXRoSGVpZ2h0KG1faGVpZ2h0KTsKICAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIGNhc2UgRm9vdGVyOiB7Ci0gICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gbV93ZWJQYWdlLT5tYWluRnJhbWVWaWV3KCk7Ci0gICAgICAgIGlmICghZnJhbWVWaWV3KQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZyYW1lVmlldy0+c2V0Rm9vdGVySGVpZ2h0
KG1faGVpZ2h0KTsKLQotICAgICAgICBHcmFwaGljc0xheWVyKiBwYXJlbnRMYXllciA9IGZyYW1l
Vmlldy0+c2V0V2FudHNMYXllckZvckZvb3RlcihtX2xheWVyKTsKLSAgICAgICAgaWYgKCFwYXJl
bnRMYXllcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBtX2xheWVyLmdldCgpLmJv
dW5kcyA9IENHUmVjdE1ha2UoMCwgMCwgcGFyZW50TGF5ZXItPnNpemUoKS53aWR0aCgpLCBwYXJl
bnRMYXllci0+c2l6ZSgpLmhlaWdodCgpKTsKLSAgICAgICAgW3BhcmVudExheWVyLT5wbGF0Zm9y
bUxheWVyKCkgYWRkU3VibGF5ZXI6bV9sYXllci5nZXQoKV07Ci0KKyAgICBjYXNlIEZvb3RlcjoK
KyAgICAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5hZGRGb290ZXJXaXRoSGVpZ2h0KG1faGVp
Z2h0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgfQogICAgIGNhc2UgTm90U2V0OgogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CiAKK3ZvaWQgUGFnZUJhbm5lcjo6ZGlkQWRk
UGFyZW50TGF5ZXIoR3JhcGhpY3NMYXllciogcGFyZW50TGF5ZXIpCit7CisgICAgaWYgKCFwYXJl
bnRMYXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXllci5nZXQoKS5ib3VuZHMgPSBD
R1JlY3RNYWtlKDAsIDAsIHBhcmVudExheWVyLT5zaXplKCkud2lkdGgoKSwgcGFyZW50TGF5ZXIt
PnNpemUoKS5oZWlnaHQoKSk7CisgICAgW3BhcmVudExheWVyLT5wbGF0Zm9ybUxheWVyKCkgYWRk
U3VibGF5ZXI6bV9sYXllci5nZXQoKV07Cit9CisKIHZvaWQgUGFnZUJhbm5lcjo6ZGV0YWNoRnJv
bVBhZ2UoKQogewogICAgIG1fdHlwZSA9IE5vdFNldDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202130</attachid>
            <date>2013-05-17 11:48:41 -0700</date>
            <delta_ts>2013-05-17 12:38:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>17528</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdp
bGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUtYXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAg
ICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3
NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRv
IGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92
ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisg
ICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6
OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVu
IGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRo
aXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9m
b290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgor
CisgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9sZCBGcmFtZVZpZXcgZnVuY3Rpb25zLiBB
ZGQgcmVmZXJlbmNlcyB0byBuZXcgUGFnZSAKKyAgICAgICAgZnVuY3Rpb25zLgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgIE5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIHdp
bGwgcGFzcyB0aGUgbmV3IGxheWVycyB1cCB0byBXSzIuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcik6
CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCisgICAgICAgIFJlbW92ZSBzZXRXYW50c0xheWVy
Rm9ySGVhZGVyL0Zvb3Rlci4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisKKyAgICAgICAgUGFn
ZSBub3cgY2FjaGVzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuIFdoZW4gdGhlIEZyYW1l
Vmlldy9STEMgaGF2ZSBiZWVuIAorICAgICAgICBkZXN0cm95ZWQsIGFuZCB0aGUgY2FjaGVkIGxh
eWVyL2hlaWdodCBpbmZvcm1hdGlvbiBvbiB0aG9zZSBjbGFzc2VzIGhhcyBiZWVuIGxvc3QsIAor
ICAgICAgICB0aGlzIGRhdGEgb24gUGFnZSB3aWxsIHBlcnNpc3Qgc28gdGhhdCB3ZSBjYW4gYnVp
bGQgdGhlIGxheWVycyBiYWNrIHVwLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFkZEhlYWRl
cldpdGhIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkRm9vdGVyV2l0aEhlaWdo
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoZWFk
ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9vdGVySGVpZ2h0KToKKworICAg
ICAgICBBcyBzb29uIGFzIHRoZSByb290IGdldHMgYSBiYWNraW5nLCByZWNyZWF0ZSB0aGUgaGVh
ZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGlmIAorICAgICAgICBuZWVkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorCisgICAgICAgIENhbGwgaW50byBD
aHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgW0VuYWJsZWRB
dFJ1bnRpbWVdIGV4dGVuZGVkIGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBnbG9iYWwgY29uc3RydWN0
b3JzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTUwMjQzKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg1OCw2ICs4NTgsOCBA
QCBfX1pON1dlYkNvcmU0UGFnZTE2c2V0RGVmZXJzTG9hZGluZ0ViCiBfX1pON1dlYkNvcmU0UGFn
ZTE3d2lsbE1vdmVPZmZzY3JlZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxOHJlbW92ZVNjaGVkdWxl
UGFpckVOM1dURjEwUGFzc1JlZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKIF9fWk43V2ViQ29y
ZTRQYWdlMThzZXRQYWdlU2NhbGVGYWN0b3JFZlJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3Jl
NFBhZ2UxOWFkZEZvb3RlcldpdGhIZWlnaHRFaQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEhlYWRl
cldpdGhIZWlnaHRFaQogX19aTjdXZWJDb3JlNFBhZ2UxOWFkZExheW91dE1pbGVzdG9uZXNFagog
X19aTjdXZWJDb3JlNFBhZ2UxOXNldFJ1YmJlckJhbmRzQXRUb3BFYgogX19aTjdXZWJDb3JlNFBh
Z2UxOXZpc2l0ZWRTdGF0ZUNoYW5nZWRFUE5TXzlQYWdlR3JvdXBFeQpAQCAtMTY1Miw4ICsxNjU0
LDYgQEAgX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxM3BhaW50QmVoYXZpb3JFdgogX19aTks3V2Vi
Q29yZTlGcmFtZVZpZXcxNGRpZEZpcnN0TGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3
MTliYXNlQmFja2dyb3VuZENvbG9yRXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MjBpc1NvZnR3
YXJlUmVuZGVyYWJsZUV2Ci1fX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZv
ckZvb3RlckViCi1fX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckhlYWRl
ckViCiBfX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIzZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JFdgog
X19aTks3V2ViQ29yZTlGcmFtZVZpZXcyN3dpbmRvd0NsaXBSZWN0Rm9yRnJhbWVPd25lckVQS05T
XzIxSFRNTEZyYW1lT3duZXJFbGVtZW50RWIKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3Mjhpc0Vu
Y2xvc2VkSW5Db21wb3NpdGluZ0xheWVyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkocmV2aXNpb24gMTUwMjQzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzc2LDYgKzM3Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxl
bWVudD4gPiYpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpIHsgcmV0dXJuIGZhbHNlOyB9OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxh
eWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5
ZXIoR3JhcGhpY3NMYXllciopIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21l
Q2xpZW50KCkgeyB9CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNp
b24gMTUwMjQzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MDQsMjggKzkwNCw2IEBAIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6c2V0
V2FudHNMYXllckYKICAgICByZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVM
YXllckZvckJvdHRvbU92ZXJoYW5nQXJlYSh3YW50c0xheWVyKTsKIH0KIAotR3JhcGhpY3NMYXll
ciogRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikgY29u
c3QKLXsKLSAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwot
ICAgIGlmICghcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQobV9m
cmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpKTsKLQotICAgIHJldHVybiByZW5k
ZXJWaWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKHdhbnRzTGF5ZXIpOwot
fQotCi1HcmFwaGljc0xheWVyKiBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JGb290ZXIoYm9v
bCB3YW50c0xheWVyKSBjb25zdAotewotICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlz
LT5yZW5kZXJWaWV3KCk7Ci0gICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIEFTU0VSVChtX2ZyYW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOwot
Ci0gICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290
ZXIod2FudHNMYXllcik7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAK
IGJvb2wgRnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoRnJhbWUq
IHJvb3RGcmFtZUZvckZsdXNoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lv
biAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MDksOCArNDA5LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykKICAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9yVG9wT3ZlckhhbmdBcmVhKGJv
b2wpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVy
SGFuZ0FyZWEoYm9vbCkgY29uc3Q7Ci0gICAgR3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZv
ckhlYWRlcihib29sKSBjb25zdDsKLSAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9y
Rm9vdGVyKGJvb2wpIGNvbnN0OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWln
aHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUG9pbnRl
ckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQXJlbmEuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJSZW5kZXJXaWRnZXQuaCIKQEAgLTE3NSw2ICsxNzYsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGll
bnRzJiBwYWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkKICAgICAsIG1f
cmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lcygwKQorICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKKyAg
ICAsIG1fZm9vdGVySGVpZ2h0KDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRl
ZE9iamVjdHMoZmFsc2UpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNl
KQpAQCAtMTI4MCw2ICsxMjgzLDM4IEBAIFBhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJp
bGl0eVN0YXQKIH0KICNlbmRpZgogCit2b2lkIFBhZ2U6OmFkZEhlYWRlcldpdGhIZWlnaHQoaW50
IGhlYWRlckhlaWdodCkKK3sKKyAgICBtX2hlYWRlckhlaWdodCA9IGhlYWRlckhlaWdodDsKKwor
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lKCkgPyBtYWluRnJhbWUoKS0+dmll
dygpIDogMDsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVu
ZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVyVmlldygpOworICAgIGlmICgh
cmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJhbWVWaWV3LT5zZXRIZWFkZXJI
ZWlnaHQobV9oZWFkZXJIZWlnaHQpOworICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+dXBk
YXRlTGF5ZXJGb3JIZWFkZXIobV9oZWFkZXJIZWlnaHQpOworfQorCit2b2lkIFBhZ2U6OmFkZEZv
b3RlcldpdGhIZWlnaHQoaW50IGZvb3RlckhlaWdodCkKK3sKKyAgICBtX2Zvb3RlckhlaWdodCA9
IGZvb3RlckhlaWdodDsKKworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lKCkg
PyBtYWluRnJhbWUoKS0+dmlldygpIDogMDsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAg
cmV0dXJuOworCisgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVy
VmlldygpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJh
bWVWaWV3LT5zZXRGb290ZXJIZWlnaHQobV9mb290ZXJIZWlnaHQpOworICAgIHJlbmRlclZpZXct
PmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290ZXIobV9mb290ZXJIZWlnaHQpOworfQor
CiB2b2lkIFBhZ2U6OmFkZExheW91dE1pbGVzdG9uZXMoTGF5b3V0TWlsZXN0b25lcyBtaWxlc3Rv
bmVzKQogewogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3YW50IGEgZnVuY3Rpb24gdGhh
dCByZXBsYWNlcyBtX2xheW91dE1pbGVzdG9uZXMgaW5zdGVhZCBvZiBqdXN0IGFkZGluZyB0byBp
dC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYgKzM1NiwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZW1vdmVMYXlvdXRNaWxlc3RvbmVzKExheW91dE1pbGVzdG9uZXMpOwogICAg
IExheW91dE1pbGVzdG9uZXMgcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lcygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lczsgfQogCisgICAgdm9pZCBhZGRIZWFkZXJX
aXRoSGVpZ2h0KGludCk7CisgICAgaW50IGhlYWRlckhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1f
aGVhZGVySGVpZ2h0OyB9CisgICAgdm9pZCBhZGRGb290ZXJXaXRoSGVpZ2h0KGludCk7CisgICAg
aW50IGZvb3RlckhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9vdGVySGVpZ2h0OyB9CisKICAg
ICBib29sIGlzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoKSBjb25zdDsKICAgICB2
b2lkIHN0YXJ0Q291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoKTsKICAgICB2b2lkIHJl
c2V0UmVsZXZhbnRQYWludGVkT2JqZWN0Q291bnRlcigpOwpAQCAtNTAzLDYgKzUwOCw5IEBAIHBy
aXZhdGU6CiAKICAgICBMYXlvdXRNaWxlc3RvbmVzIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25l
czsKIAorICAgIGludCBtX2hlYWRlckhlaWdodDsKKyAgICBpbnQgbV9mb290ZXJIZWlnaHQ7CisK
ICAgICBIYXNoU2V0PFJlbmRlck9iamVjdCo+IG1fcmVsZXZhbnRVbnBhaW50ZWRSZW5kZXJPYmpl
Y3RzOwogICAgIFJlZ2lvbiBtX3RvcFJlbGV2YW50UGFpbnRlZFJlZ2lvbjsKICAgICBSZWdpb24g
bV9ib3R0b21SZWxldmFudFBhaW50ZWRSZWdpb247CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gMTUwMjQz
KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY2Myw2ICs2NjMsMTAgQEAgYm9vbCBSZW5kZXJMYXllckNvbXBv
c2l0b3I6OnVwZGF0ZUJhY2tpbgogICAgICAgICAgICAgICAgIGxheWVyLT5iYWNraW5nKCktPmF0
dGFjaFRvU2Nyb2xsaW5nQ29vcmRpbmF0b3JXaXRoUGFyZW50KDApOwogICAgICAgICAgICAgICAg
IGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29y
ZGluYXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy0+ZnJhbWVW
aWV3KCkpOworICAgICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7
CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUxheWVyRm9ySGVhZGVyKHBhZ2UtPmhlYWRlckhl
aWdodCgpKTsKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJGb3JGb290ZXIocGFnZS0+
Zm9vdGVySGVpZ2h0KCkpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgLy8gVGhpcyBsYXllciBhbmQgYWxsIG9mIGl0cyBkZXNjZW5kYW50cyBoYXZlIGNh
Y2hlZCByZXBhaW50cyByZWN0cyB0aGF0IGFyZSByZWxhdGl2ZSB0bwpAQCAtMjU2MCw2ICsyNTY0
LDkgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cAogICAgIGlmIChT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxp
bmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3
Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCkpOwogCisgICAgaWYg
KFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVu
dCgpLT5kaWRBZGRIZWFkZXJMYXllcihtX2xheWVyRm9ySGVhZGVyLmdldCgpKTsKKwogICAgIHJl
dHVybiBtX2xheWVyRm9ySGVhZGVyLmdldCgpOwogfQogCkBAIC0yNTkxLDYgKzI1OTgsOSBAQCBH
cmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgaWYgKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5
ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAoUGFnZSog
cGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCktPmRp
ZEFkZEZvb3RlckxheWVyKG1fbGF5ZXJGb3JGb290ZXIuZ2V0KCkpOworCiAgICAgcmV0dXJuIG1f
bGF5ZXJGb3JGb290ZXIuZ2V0KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI3
OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDM3IEBACisyMDEzLTA1LTE3ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAg
ICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdpbGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUt
YXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxl
dmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRvIGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNw
ZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9y
SGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisgICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJ
bnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0
aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVuIGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGlu
dG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRoaXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29y
ZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9mb290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZl
ciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9SZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVu
IGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgorCisgICAgICAgIFNlbmQgdGhlIGxheWVycyBvdmVy
IHRvIFBhZ2VCYW5uZXIuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFk
ZEhlYWRlckxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRG
b290ZXJMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudCk6CisKKyAgICAgICAgUGFnZUJh
bm5lcjo6YWRkVG9QYWdlKCkgbm93IGRvZXMgbXVjaCBsZXNzIHdvcmsgc2luY2UgaXQgY2Fu4oCZ
dCBnZXQgdGhlIHBhcmVudCAKKyAgICAgICAgbGF5ZXIgcmlnaHQgYXdheS4gVGhlIHdvcmsgdGhh
dCBpcyB1c2VkIHRvIGRvIG9uY2UgaXQgaGFkIHRoZSBwYXJlbnQgbGF5ZXIgaXMgbm93IAorICAg
ICAgICBwZXJmb3JtZWQgaW4gZGlkQWRkUGFyZW50TGF5ZXIoKQorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9QYWdlQmFubmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGFnZUJhbm5lcjo6
ZGlkQWRkUGFyZW50TGF5ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFu
bmVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQmFubmVyOjphZGRUb1BhZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcik6CisgICAgICAgIChXZWJLaXQpOgor
CiAyMDEzLTA1LTE3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXhw
b3NlIG5ldyBsb2FkLXdpdGgtdXNlckRhdGEgQVBJIHRvIE9iamVjdGl2ZS1DCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5hdmlnYXRpb25B
Y3Rpb24uaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmgiCiAj
aW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgorI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKICNpbmNs
dWRlICJXZWJDb2xvckNob29zZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgpAQCAtODU1LDQgKzg1NiwxNiBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZGlzYWJsZVN1ZGRlblRlcm1pCiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQcm9jZXNzUHJveHk6OkRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpKTsKIH0KIAordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIqIGhlYWRl
clBhcmVudCkKK3sKKyAgICBpZiAoUGFnZUJhbm5lciogYmFubmVyID0gbV9wYWdlLT5oZWFkZXJQ
YWdlQmFubmVyKCkpCisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoaGVhZGVyUGFy
ZW50KTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKEdyYXBo
aWNzTGF5ZXIqIGZvb3RlclBhcmVudCkKK3sKKyAgICBpZiAoUGFnZUJhbm5lciogYmFubmVyID0g
bV9wYWdlLT5mb290ZXJQYWdlQmFubmVyKCkpCisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50
TGF5ZXIoZm9vdGVyUGFyZW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTIyNyw2ICsyMjcsOSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJbkV4
dHJhU3R5bGVTaGVldCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHBsdWdJ
bkV4dHJhU2NyaXB0KCkgY29uc3QgT1ZFUlJJREU7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
SGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgT1ZFUlJJ
REU7CisKICAgICBTdHJpbmcgbV9jYWNoZWRUb29sVGlwOwogICAgIG11dGFibGUgUmVmUHRyPFdl
YkZyYW1lPiBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZyYW1lOwogICAgIG11dGFibGUgYm9vbCBt
X2NhY2hlZE1haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXI7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuY3BwCShyZXZpc2lvbiAx
NTAyNDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDEwIEBAIGJvb2wgUGFnZUJhbm5lcjo6bW91
c2VFdmVudChjb25zdCBXZWJNb3UKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKK3ZvaWQgUGFn
ZUJhbm5lcjo6ZGlkQWRkUGFyZW50TGF5ZXIoR3JhcGhpY3NMYXllciopCit7Cit9CiAjZW5kaWYK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvUGFnZUJhbm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgJKHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDEwIEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjZW5kaWYKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR3JhcGhpY3NMYXll
cjsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CkBAIC02OSw2ICs3
Myw4IEBAIHB1YmxpYzoKICAgICBib29sIG1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYp
OwogICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3Ip
OwogCisgICAgdm9pZCBkaWRBZGRQYXJlbnRMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7
CisKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGV4cGxpY2l0IFBhZ2VCYW5uZXIo
Q0FMYXllciAqLCBpbnQgaGVpZ2h0LCBDbGllbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGFnZUJhbm5lck1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0JKHJldmlz
aW9uIDE1MDI0MykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGFn
ZUJhbm5lck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTcsNDcgKzU3LDI2IEBAIHZvaWQgUGFn
ZUJhbm5lcjo6YWRkVG9QYWdlKFR5cGUgdHlwZSwgV2UKICAgICBBU1NFUlQobV93ZWJQYWdlKTsK
IAogICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBIZWFkZXI6IHsKLSAgICAgICAgRnJh
bWVWaWV3KiBmcmFtZVZpZXcgPSBtX3dlYlBhZ2UtPm1haW5GcmFtZVZpZXcoKTsKLSAgICAgICAg
aWYgKCFmcmFtZVZpZXcpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnJhbWVWaWV3
LT5zZXRIZWFkZXJIZWlnaHQobV9oZWlnaHQpOwotCi0gICAgICAgIEdyYXBoaWNzTGF5ZXIqIHBh
cmVudExheWVyID0gZnJhbWVWaWV3LT5zZXRXYW50c0xheWVyRm9ySGVhZGVyKG1fbGF5ZXIpOwot
ICAgICAgICBpZiAoIXBhcmVudExheWVyKSB7Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmNvcmVQ
YWdlKCktPnJlbW92ZUxheW91dE1pbGVzdG9uZXMoRGlkRmlyc3RGbHVzaEZvckhlYWRlckxheWVy
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIG1fd2ViUGFnZS0+
Y29yZVBhZ2UoKS0+YWRkTGF5b3V0TWlsZXN0b25lcyhEaWRGaXJzdEZsdXNoRm9ySGVhZGVyTGF5
ZXIpOwotCi0gICAgICAgIG1fbGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAwLCBw
YXJlbnRMYXllci0+c2l6ZSgpLndpZHRoKCksIHBhcmVudExheWVyLT5zaXplKCkuaGVpZ2h0KCkp
OwotICAgICAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSBhZGRTdWJsYXllcjptX2xh
eWVyLmdldCgpXTsKLQorICAgIGNhc2UgSGVhZGVyOgorICAgICAgICBtX3dlYlBhZ2UtPmNvcmVQ
YWdlKCktPmFkZEhlYWRlcldpdGhIZWlnaHQobV9oZWlnaHQpOwogICAgICAgICBicmVhazsKLSAg
ICB9Ci0gICAgY2FzZSBGb290ZXI6IHsKLSAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBt
X3dlYlBhZ2UtPm1haW5GcmFtZVZpZXcoKTsKLSAgICAgICAgaWYgKCFmcmFtZVZpZXcpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnJhbWVWaWV3LT5zZXRGb290ZXJIZWlnaHQobV9o
ZWlnaHQpOwotCi0gICAgICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVudExheWVyID0gZnJhbWVWaWV3
LT5zZXRXYW50c0xheWVyRm9yRm9vdGVyKG1fbGF5ZXIpOwotICAgICAgICBpZiAoIXBhcmVudExh
eWVyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fbGF5ZXIuZ2V0KCkuYm91bmRz
ID0gQ0dSZWN0TWFrZSgwLCAwLCBwYXJlbnRMYXllci0+c2l6ZSgpLndpZHRoKCksIHBhcmVudExh
eWVyLT5zaXplKCkuaGVpZ2h0KCkpOwotICAgICAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3JtTGF5
ZXIoKSBhZGRTdWJsYXllcjptX2xheWVyLmdldCgpXTsKLQorICAgIGNhc2UgRm9vdGVyOgorICAg
ICAgICBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPmFkZEZvb3RlcldpdGhIZWlnaHQobV9oZWlnaHQp
OwogICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBOb3RTZXQ6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KIAordm9pZCBQYWdlQmFubmVyOjpkaWRBZGRQYXJl
bnRMYXllcihHcmFwaGljc0xheWVyKiBwYXJlbnRMYXllcikKK3sKKyAgICBpZiAoIXBhcmVudExh
eWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyLmdldCgpLmJvdW5kcyA9IENHUmVj
dE1ha2UoMCwgMCwgcGFyZW50TGF5ZXItPnNpemUoKS53aWR0aCgpLCBwYXJlbnRMYXllci0+c2l6
ZSgpLmhlaWdodCgpKTsKKyAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSBhZGRTdWJs
YXllcjptX2xheWVyLmdldCgpXTsKK30KKwogdm9pZCBQYWdlQmFubmVyOjpkZXRhY2hGcm9tUGFn
ZSgpCiB7CiAgICAgbV90eXBlID0gTm90U2V0Owo=
</data>
<flag name="commit-queue"
          id="223545"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202135</attachid>
            <date>2013-05-17 12:38:44 -0700</date>
            <delta_ts>2013-05-17 12:56:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-3.txt</filename>
            <type>text/plain</type>
            <size>17693</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdp
bGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUtYXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAg
ICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3
NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRv
IGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92
ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisg
ICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6
OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVu
IGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRo
aXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9m
b290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgor
CisgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9sZCBGcmFtZVZpZXcgZnVuY3Rpb25zLiBB
ZGQgcmVmZXJlbmNlcyB0byBuZXcgUGFnZSAKKyAgICAgICAgZnVuY3Rpb25zLgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgIE5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIHdp
bGwgcGFzcyB0aGUgbmV3IGxheWVycyB1cCB0byBXSzIuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcik6
CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCisgICAgICAgIFJlbW92ZSBzZXRXYW50c0xheWVy
Rm9ySGVhZGVyL0Zvb3Rlci4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisKKyAgICAgICAgUGFn
ZSBub3cgY2FjaGVzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuIFdoZW4gdGhlIEZyYW1l
Vmlldy9STEMgaGF2ZSBiZWVuIAorICAgICAgICBkZXN0cm95ZWQsIGFuZCB0aGUgY2FjaGVkIGxh
eWVyL2hlaWdodCBpbmZvcm1hdGlvbiBvbiB0aG9zZSBjbGFzc2VzIGhhcyBiZWVuIGxvc3QsIAor
ICAgICAgICB0aGlzIGRhdGEgb24gUGFnZSB3aWxsIHBlcnNpc3Qgc28gdGhhdCB3ZSBjYW4gYnVp
bGQgdGhlIGxheWVycyBiYWNrIHVwLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFkZEhlYWRl
cldpdGhIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkRm9vdGVyV2l0aEhlaWdo
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoZWFk
ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9vdGVySGVpZ2h0KToKKworICAg
ICAgICBBcyBzb29uIGFzIHRoZSByb290IGdldHMgYSBiYWNraW5nLCByZWNyZWF0ZSB0aGUgaGVh
ZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGlmIAorICAgICAgICBuZWVkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorCisgICAgICAgIENhbGwgaW50byBD
aHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgW0VuYWJsZWRB
dFJ1bnRpbWVdIGV4dGVuZGVkIGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBnbG9iYWwgY29uc3RydWN0
b3JzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTUwMjQzKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg1OCw2ICs4NTgsOCBA
QCBfX1pON1dlYkNvcmU0UGFnZTE2c2V0RGVmZXJzTG9hZGluZ0ViCiBfX1pON1dlYkNvcmU0UGFn
ZTE3d2lsbE1vdmVPZmZzY3JlZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxOHJlbW92ZVNjaGVkdWxl
UGFpckVOM1dURjEwUGFzc1JlZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKIF9fWk43V2ViQ29y
ZTRQYWdlMThzZXRQYWdlU2NhbGVGYWN0b3JFZlJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3Jl
NFBhZ2UxOWFkZEZvb3RlcldpdGhIZWlnaHRFaQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEhlYWRl
cldpdGhIZWlnaHRFaQogX19aTjdXZWJDb3JlNFBhZ2UxOWFkZExheW91dE1pbGVzdG9uZXNFagog
X19aTjdXZWJDb3JlNFBhZ2UxOXNldFJ1YmJlckJhbmRzQXRUb3BFYgogX19aTjdXZWJDb3JlNFBh
Z2UxOXZpc2l0ZWRTdGF0ZUNoYW5nZWRFUE5TXzlQYWdlR3JvdXBFeQpAQCAtMTY1Miw4ICsxNjU0
LDYgQEAgX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxM3BhaW50QmVoYXZpb3JFdgogX19aTks3V2Vi
Q29yZTlGcmFtZVZpZXcxNGRpZEZpcnN0TGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3
MTliYXNlQmFja2dyb3VuZENvbG9yRXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MjBpc1NvZnR3
YXJlUmVuZGVyYWJsZUV2Ci1fX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZv
ckZvb3RlckViCi1fX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckhlYWRl
ckViCiBfX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIzZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JFdgog
X19aTks3V2ViQ29yZTlGcmFtZVZpZXcyN3dpbmRvd0NsaXBSZWN0Rm9yRnJhbWVPd25lckVQS05T
XzIxSFRNTEZyYW1lT3duZXJFbGVtZW50RWIKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3Mjhpc0Vu
Y2xvc2VkSW5Db21wb3NpdGluZ0xheWVyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkocmV2aXNpb24gMTUwMjQzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzc2LDYgKzM3Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxl
bWVudD4gPiYpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpIHsgcmV0dXJuIGZhbHNlOyB9OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxh
eWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5
ZXIoR3JhcGhpY3NMYXllciopIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21l
Q2xpZW50KCkgeyB9CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNp
b24gMTUwMjQzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MDQsMjggKzkwNCw2IEBAIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6c2V0
V2FudHNMYXllckYKICAgICByZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVM
YXllckZvckJvdHRvbU92ZXJoYW5nQXJlYSh3YW50c0xheWVyKTsKIH0KIAotR3JhcGhpY3NMYXll
ciogRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikgY29u
c3QKLXsKLSAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwot
ICAgIGlmICghcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQobV9m
cmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpKTsKLQotICAgIHJldHVybiByZW5k
ZXJWaWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKHdhbnRzTGF5ZXIpOwot
fQotCi1HcmFwaGljc0xheWVyKiBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JGb290ZXIoYm9v
bCB3YW50c0xheWVyKSBjb25zdAotewotICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlz
LT5yZW5kZXJWaWV3KCk7Ci0gICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIEFTU0VSVChtX2ZyYW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOwot
Ci0gICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290
ZXIod2FudHNMYXllcik7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAK
IGJvb2wgRnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoRnJhbWUq
IHJvb3RGcmFtZUZvckZsdXNoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lv
biAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MDksOCArNDA5LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykKICAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9yVG9wT3ZlckhhbmdBcmVhKGJv
b2wpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVy
SGFuZ0FyZWEoYm9vbCkgY29uc3Q7Ci0gICAgR3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZv
ckhlYWRlcihib29sKSBjb25zdDsKLSAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9y
Rm9vdGVyKGJvb2wpIGNvbnN0OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWln
aHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUG9pbnRl
ckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQXJlbmEuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJSZW5kZXJXaWRnZXQuaCIKQEAgLTE3NSw2ICsxNzYsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGll
bnRzJiBwYWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkKICAgICAsIG1f
cmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lcygwKQorICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKKyAg
ICAsIG1fZm9vdGVySGVpZ2h0KDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRl
ZE9iamVjdHMoZmFsc2UpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNl
KQpAQCAtMTI4MCw2ICsxMjgzLDM4IEBAIFBhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJp
bGl0eVN0YXQKIH0KICNlbmRpZgogCit2b2lkIFBhZ2U6OmFkZEhlYWRlcldpdGhIZWlnaHQoaW50
IGhlYWRlckhlaWdodCkKK3sKKyAgICBtX2hlYWRlckhlaWdodCA9IGhlYWRlckhlaWdodDsKKwor
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lKCkgPyBtYWluRnJhbWUoKS0+dmll
dygpIDogMDsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVu
ZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVyVmlldygpOworICAgIGlmICgh
cmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJhbWVWaWV3LT5zZXRIZWFkZXJI
ZWlnaHQobV9oZWFkZXJIZWlnaHQpOworICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+dXBk
YXRlTGF5ZXJGb3JIZWFkZXIobV9oZWFkZXJIZWlnaHQpOworfQorCit2b2lkIFBhZ2U6OmFkZEZv
b3RlcldpdGhIZWlnaHQoaW50IGZvb3RlckhlaWdodCkKK3sKKyAgICBtX2Zvb3RlckhlaWdodCA9
IGZvb3RlckhlaWdodDsKKworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lKCkg
PyBtYWluRnJhbWUoKS0+dmlldygpIDogMDsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAg
cmV0dXJuOworCisgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVy
VmlldygpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJh
bWVWaWV3LT5zZXRGb290ZXJIZWlnaHQobV9mb290ZXJIZWlnaHQpOworICAgIHJlbmRlclZpZXct
PmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290ZXIobV9mb290ZXJIZWlnaHQpOworfQor
CiB2b2lkIFBhZ2U6OmFkZExheW91dE1pbGVzdG9uZXMoTGF5b3V0TWlsZXN0b25lcyBtaWxlc3Rv
bmVzKQogewogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3YW50IGEgZnVuY3Rpb24gdGhh
dCByZXBsYWNlcyBtX2xheW91dE1pbGVzdG9uZXMgaW5zdGVhZCBvZiBqdXN0IGFkZGluZyB0byBp
dC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYgKzM1NiwxNCBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZW1vdmVMYXlvdXRNaWxlc3RvbmVzKExheW91dE1pbGVzdG9uZXMpOwogICAg
IExheW91dE1pbGVzdG9uZXMgcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lcygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lczsgfQogCisjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQorICAgIHZvaWQgYWRkSGVhZGVyV2l0aEhlaWdodChpbnQpOworICAgIHZvaWQgYWRk
Rm9vdGVyV2l0aEhlaWdodChpbnQpOworI2VuZGlmCisKKyAgICBpbnQgaGVhZGVySGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9oZWFkZXJIZWlnaHQ7IH0KKyAgICBpbnQgZm9vdGVySGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9mb290ZXJIZWlnaHQ7IH0KKwogICAgIGJvb2wgaXNDb3VudGluZ1Jl
bGV2YW50UmVwYWludGVkT2JqZWN0cygpIGNvbnN0OwogICAgIHZvaWQgc3RhcnRDb3VudGluZ1Jl
bGV2YW50UmVwYWludGVkT2JqZWN0cygpOwogICAgIHZvaWQgcmVzZXRSZWxldmFudFBhaW50ZWRP
YmplY3RDb3VudGVyKCk7CkBAIC01MDMsNiArNTExLDkgQEAgcHJpdmF0ZToKIAogICAgIExheW91
dE1pbGVzdG9uZXMgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVzOwogCisgICAgaW50IG1faGVh
ZGVySGVpZ2h0OworICAgIGludCBtX2Zvb3RlckhlaWdodDsKKwogICAgIEhhc2hTZXQ8UmVuZGVy
T2JqZWN0Kj4gbV9yZWxldmFudFVucGFpbnRlZFJlbmRlck9iamVjdHM7CiAgICAgUmVnaW9uIG1f
dG9wUmVsZXZhbnRQYWludGVkUmVnaW9uOwogICAgIFJlZ2lvbiBtX2JvdHRvbVJlbGV2YW50UGFp
bnRlZFJlZ2lvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjYzLDYgKzY2MywxMCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQmFja2lu
CiAgICAgICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YXR0YWNoVG9TY3JvbGxpbmdDb29y
ZGluYXRvcldpdGhQYXJlbnQoMCk7CiAgICAgICAgICAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkpCiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdS
b290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CisgICAgICAgICAg
ICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdXBkYXRlTGF5ZXJGb3JIZWFkZXIocGFnZS0+aGVhZGVySGVpZ2h0KCkpOworICAgICAgICAg
ICAgICAgICAgICB1cGRhdGVMYXllckZvckZvb3RlcihwYWdlLT5mb290ZXJIZWlnaHQoKSk7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUaGlzIGxh
eWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRhbnRzIGhhdmUgY2FjaGVkIHJlcGFpbnRzIHJlY3Rz
IHRoYXQgYXJlIHJlbGF0aXZlIHRvCkBAIC0yNTYwLDYgKzI1NjQsOSBAQCBHcmFwaGljc0xheWVy
KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAg
ICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2Uo
bV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMt
PnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCktPmRpZEFkZEhlYWRlckxh
eWVyKG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JIZWFk
ZXIuZ2V0KCk7CiB9CiAKQEAgLTI1OTEsNiArMjU5OCw5IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6dXAKICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAg
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShtX3JlbmRl
clZpZXctPmZyYW1lVmlldygpKTsKIAorICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgp
KQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS0+ZGlkQWRkRm9vdGVyTGF5ZXIobV9s
YXllckZvckZvb3Rlci5nZXQoKSk7CisKICAgICByZXR1cm4gbV9sYXllckZvckZvb3Rlci5nZXQo
KTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwMjc5KQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTMtMDUtMTcg
IEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIEhlYWRlcnMgYW5kIGZv
b3RlcnMgd2lsbCBzb21ldGltZXMgZGlzYXBwZWFyIGFuZCByZS1hcHBlYXIgZHVyaW5nIHBhZ2Ug
bG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NjMzNgorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMzg4Njc1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIFdlYkNvcmUtbGV2ZWwgQVBJIHRoYXQgV2ViS2l0
IHVzZXMgdG8gY3JlYXRlIGEgYmFubmVyLiAKKyAgICAgICAgU3BlY2lmaWNhbGx5IHRoaXMgcGF0
Y2ggcmVtb3ZlcyBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JIZWFkZXIoKSwgd2hpY2ggY3Jl
YXRlZCAKKyAgICAgICAgYW5kIHJldHVybmVkIGEgbGF5ZXIuIEluc3RlYWQsIFdLMiB3aWxsIGNh
bGwgUGFnZTo6YWRkSGVhZGVyV2l0aEhlaWdodCgpLiBXaGVuIHRoZSAKKyAgICAgICAgbGF5ZXIg
aGFzIGJlZW4gY3JlYXRlZCwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byBXSzIgdmlhIENocm9tZUNs
aWVudC4gVGhpcyB3aWxsIAorICAgICAgICBhbGxvdyBXZWJDb3JlIHRvIHJlLWNyZWF0ZSB0aGUg
aGVhZGVyL2Zvb3RlciBsYXllcnMgYXMgbmVlZGVkIHdoZW5ldmVyIHRoZSAKKyAgICAgICAgRnJh
bWVWaWV3L1JlbmRlckxheWVyQ29tcG9zaXRvciBoYXZlIGJlZW4gZGVzdHJveWVkIGFuZCByZWNy
ZWF0ZWQuCisKKyAgICAgICAgU2VuZCB0aGUgbGF5ZXJzIG92ZXIgdG8gUGFnZUJhbm5lci4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50KToKKworICAgICAgICBQYWdlQmFubmVyOjphZGRUb1BhZ2UoKSBu
b3cgZG9lcyBtdWNoIGxlc3Mgd29yayBzaW5jZSBpdCBjYW7igJl0IGdldCB0aGUgcGFyZW50IAor
ICAgICAgICBsYXllciByaWdodCBhd2F5LiBUaGUgd29yayB0aGF0IGlzIHVzZWQgdG8gZG8gb25j
ZSBpdCBoYWQgdGhlIHBhcmVudCBsYXllciBpcyBub3cgCisgICAgICAgIHBlcmZvcm1lZCBpbiBk
aWRBZGRQYXJlbnRMYXllcigpCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5u
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VCYW5uZXI6OmFkZFRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VCYW5uZXI6OmRp
ZEFkZFBhcmVudExheWVyKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTMtMDUtMTcgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBFeHBvc2UgbmV3IGxvYWQtd2l0aC11
c2VyRGF0YSBBUEkgdG8gT2JqZWN0aXZlLUMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJ
KHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJMYXllclRyZWVI
b3N0LmgiCisjaW5jbHVkZSAiUGFnZUJhbm5lci5oIgogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nl
ci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkZy
YW1lLmgiCkBAIC04NTUsNCArODU2LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaXNhYmxl
U3VkZGVuVGVybWkKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
RGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciogaGVhZGVyUGFyZW50KQoreworICAgIGlm
IChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UtPmhlYWRlclBhZ2VCYW5uZXIoKSkKKyAgICAg
ICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcihoZWFkZXJQYXJlbnQpOworfQorCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciogZm9vdGVyUGFy
ZW50KQoreworICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UtPmZvb3RlclBhZ2VC
YW5uZXIoKSkKKyAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcihmb290ZXJQYXJlbnQp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAko
cmV2aXNpb24gMTUwMjQzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNyw5IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTdHlsZVNoZWV0KCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQoKSBjb25z
dCBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEZvb3Rl
ckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKwogICAgIFN0cmluZyBt
X2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJh
bWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFz
SG9yaXpvbnRhbFNjcm9sbGJhcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9QYWdlQmFubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5jcHAJKHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKIAogI2luY2x1ZGUgIldl
YlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKQEAgLTUzLDYgKzU0LDEwIEBAIGJvb2wgUGFnZUJhbm5lcjo6bW91c2VFdmVu
dChjb25zdCBXZWJNb3UKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKK3ZvaWQgUGFnZUJhbm5l
cjo6ZGlkQWRkUGFyZW50TGF5ZXIoR3JhcGhpY3NMYXllciopCit7Cit9CiAjZW5kaWYKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvUGFnZUJhbm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9QYWdlQmFubmVyLmgJKHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYg
KzM1LDEwIEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAjZW5kaWYKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR3JhcGhpY3NMYXllcjsKK30K
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CkBAIC02OSw2ICs3Myw4IEBA
IHB1YmxpYzoKICAgICBib29sIG1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYpOwogICAg
IHZvaWQgZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IpOwogCisg
ICAgdm9pZCBkaWRBZGRQYXJlbnRMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisKIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGV4cGxpY2l0IFBhZ2VCYW5uZXIoQ0FMYXll
ciAqLCBpbnQgaGVpZ2h0LCBDbGllbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUGFnZUJhbm5lck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0JKHJldmlzaW9uIDE1
MDI0MykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGFnZUJhbm5l
ck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTcsNDcgKzU3LDI2IEBAIHZvaWQgUGFnZUJhbm5l
cjo6YWRkVG9QYWdlKFR5cGUgdHlwZSwgV2UKICAgICBBU1NFUlQobV93ZWJQYWdlKTsKIAogICAg
IHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBIZWFkZXI6IHsKLSAgICAgICAgRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSBtX3dlYlBhZ2UtPm1haW5GcmFtZVZpZXcoKTsKLSAgICAgICAgaWYgKCFm
cmFtZVZpZXcpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnJhbWVWaWV3LT5zZXRI
ZWFkZXJIZWlnaHQobV9oZWlnaHQpOwotCi0gICAgICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVudExh
eWVyID0gZnJhbWVWaWV3LT5zZXRXYW50c0xheWVyRm9ySGVhZGVyKG1fbGF5ZXIpOwotICAgICAg
ICBpZiAoIXBhcmVudExheWVyKSB7Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmNvcmVQYWdlKCkt
PnJlbW92ZUxheW91dE1pbGVzdG9uZXMoRGlkRmlyc3RGbHVzaEZvckhlYWRlckxheWVyKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIG1fd2ViUGFnZS0+Y29yZVBh
Z2UoKS0+YWRkTGF5b3V0TWlsZXN0b25lcyhEaWRGaXJzdEZsdXNoRm9ySGVhZGVyTGF5ZXIpOwot
Ci0gICAgICAgIG1fbGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAwLCBwYXJlbnRM
YXllci0+c2l6ZSgpLndpZHRoKCksIHBhcmVudExheWVyLT5zaXplKCkuaGVpZ2h0KCkpOwotICAg
ICAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSBhZGRTdWJsYXllcjptX2xheWVyLmdl
dCgpXTsKLQorICAgIGNhc2UgSGVhZGVyOgorICAgICAgICBtX3dlYlBhZ2UtPmNvcmVQYWdlKCkt
PmFkZEhlYWRlcldpdGhIZWlnaHQobV9oZWlnaHQpOwogICAgICAgICBicmVhazsKLSAgICB9Ci0g
ICAgY2FzZSBGb290ZXI6IHsKLSAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3dlYlBh
Z2UtPm1haW5GcmFtZVZpZXcoKTsKLSAgICAgICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgZnJhbWVWaWV3LT5zZXRGb290ZXJIZWlnaHQobV9oZWlnaHQp
OwotCi0gICAgICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVudExheWVyID0gZnJhbWVWaWV3LT5zZXRX
YW50c0xheWVyRm9yRm9vdGVyKG1fbGF5ZXIpOwotICAgICAgICBpZiAoIXBhcmVudExheWVyKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fbGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dS
ZWN0TWFrZSgwLCAwLCBwYXJlbnRMYXllci0+c2l6ZSgpLndpZHRoKCksIHBhcmVudExheWVyLT5z
aXplKCkuaGVpZ2h0KCkpOwotICAgICAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSBh
ZGRTdWJsYXllcjptX2xheWVyLmdldCgpXTsKLQorICAgIGNhc2UgRm9vdGVyOgorICAgICAgICBt
X3dlYlBhZ2UtPmNvcmVQYWdlKCktPmFkZEZvb3RlcldpdGhIZWlnaHQobV9oZWlnaHQpOwogICAg
ICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBOb3RTZXQ6CiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgIH0KIH0KIAordm9pZCBQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXll
cihHcmFwaGljc0xheWVyKiBwYXJlbnRMYXllcikKK3sKKyAgICBpZiAoIXBhcmVudExheWVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyLmdldCgpLmJvdW5kcyA9IENHUmVjdE1ha2Uo
MCwgMCwgcGFyZW50TGF5ZXItPnNpemUoKS53aWR0aCgpLCBwYXJlbnRMYXllci0+c2l6ZSgpLmhl
aWdodCgpKTsKKyAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSBhZGRTdWJsYXllcjpt
X2xheWVyLmdldCgpXTsKK30KKwogdm9pZCBQYWdlQmFubmVyOjpkZXRhY2hGcm9tUGFnZSgpCiB7
CiAgICAgbV90eXBlID0gTm90U2V0Owo=
</data>
<flag name="commit-queue"
          id="223550"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202138</attachid>
            <date>2013-05-17 12:56:04 -0700</date>
            <delta_ts>2013-05-17 13:04:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-4.txt</filename>
            <type>text/plain</type>
            <size>17702</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdp
bGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUtYXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAg
ICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3
NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRv
IGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92
ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisg
ICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6
OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVu
IGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRo
aXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9m
b290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgor
CisgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9sZCBGcmFtZVZpZXcgZnVuY3Rpb25zLiBB
ZGQgcmVmZXJlbmNlcyB0byBuZXcgUGFnZSAKKyAgICAgICAgZnVuY3Rpb25zLgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgIE5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIHdp
bGwgcGFzcyB0aGUgbmV3IGxheWVycyB1cCB0byBXSzIuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcik6
CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCisgICAgICAgIFJlbW92ZSBzZXRXYW50c0xheWVy
Rm9ySGVhZGVyL0Zvb3Rlci4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisKKyAgICAgICAgUGFn
ZSBub3cgY2FjaGVzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuIFdoZW4gdGhlIEZyYW1l
Vmlldy9STEMgaGF2ZSBiZWVuIAorICAgICAgICBkZXN0cm95ZWQsIGFuZCB0aGUgY2FjaGVkIGxh
eWVyL2hlaWdodCBpbmZvcm1hdGlvbiBvbiB0aG9zZSBjbGFzc2VzIGhhcyBiZWVuIGxvc3QsIAor
ICAgICAgICB0aGlzIGRhdGEgb24gUGFnZSB3aWxsIHBlcnNpc3Qgc28gdGhhdCB3ZSBjYW4gYnVp
bGQgdGhlIGxheWVycyBiYWNrIHVwLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFkZEhlYWRl
cldpdGhIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkRm9vdGVyV2l0aEhlaWdo
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoZWFk
ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9vdGVySGVpZ2h0KToKKworICAg
ICAgICBBcyBzb29uIGFzIHRoZSByb290IGdldHMgYSBiYWNraW5nLCByZWNyZWF0ZSB0aGUgaGVh
ZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGlmIAorICAgICAgICBuZWVkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorCisgICAgICAgIENhbGwgaW50byBD
aHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgW0VuYWJsZWRB
dFJ1bnRpbWVdIGV4dGVuZGVkIGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBnbG9iYWwgY29uc3RydWN0
b3JzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTUwMjQzKQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg1OCw2ICs4NTgsOCBA
QCBfX1pON1dlYkNvcmU0UGFnZTE2c2V0RGVmZXJzTG9hZGluZ0ViCiBfX1pON1dlYkNvcmU0UGFn
ZTE3d2lsbE1vdmVPZmZzY3JlZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxOHJlbW92ZVNjaGVkdWxl
UGFpckVOM1dURjEwUGFzc1JlZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKIF9fWk43V2ViQ29y
ZTRQYWdlMThzZXRQYWdlU2NhbGVGYWN0b3JFZlJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3Jl
NFBhZ2UxOWFkZEZvb3RlcldpdGhIZWlnaHRFaQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEhlYWRl
cldpdGhIZWlnaHRFaQogX19aTjdXZWJDb3JlNFBhZ2UxOWFkZExheW91dE1pbGVzdG9uZXNFagog
X19aTjdXZWJDb3JlNFBhZ2UxOXNldFJ1YmJlckJhbmRzQXRUb3BFYgogX19aTjdXZWJDb3JlNFBh
Z2UxOXZpc2l0ZWRTdGF0ZUNoYW5nZWRFUE5TXzlQYWdlR3JvdXBFeQpAQCAtMTY1Miw4ICsxNjU0
LDYgQEAgX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxM3BhaW50QmVoYXZpb3JFdgogX19aTks3V2Vi
Q29yZTlGcmFtZVZpZXcxNGRpZEZpcnN0TGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3
MTliYXNlQmFja2dyb3VuZENvbG9yRXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MjBpc1NvZnR3
YXJlUmVuZGVyYWJsZUV2Ci1fX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZv
ckZvb3RlckViCi1fX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckhlYWRl
ckViCiBfX1pOSzdXZWJDb3JlOUZyYW1lVmlldzIzZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JFdgog
X19aTks3V2ViQ29yZTlGcmFtZVZpZXcyN3dpbmRvd0NsaXBSZWN0Rm9yRnJhbWVPd25lckVQS05T
XzIxSFRNTEZyYW1lT3duZXJFbGVtZW50RWIKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3Mjhpc0Vu
Y2xvc2VkSW5Db21wb3NpdGluZ0xheWVyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkocmV2aXNpb24gMTUwMjQzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzc2LDYgKzM3Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxl
bWVudD4gPiYpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdl
cygpIHsgcmV0dXJuIGZhbHNlOyB9OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxh
eWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5
ZXIoR3JhcGhpY3NMYXllciopIHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21l
Q2xpZW50KCkgeyB9CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNp
b24gMTUwMjQzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC05MDQsMjggKzkwNCw2IEBAIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6c2V0
V2FudHNMYXllckYKICAgICByZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVM
YXllckZvckJvdHRvbU92ZXJoYW5nQXJlYSh3YW50c0xheWVyKTsKIH0KIAotR3JhcGhpY3NMYXll
ciogRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikgY29u
c3QKLXsKLSAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwot
ICAgIGlmICghcmVuZGVyVmlldykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQobV9m
cmFtZSA9PSBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpKTsKLQotICAgIHJldHVybiByZW5k
ZXJWaWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKHdhbnRzTGF5ZXIpOwot
fQotCi1HcmFwaGljc0xheWVyKiBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JGb290ZXIoYm9v
bCB3YW50c0xheWVyKSBjb25zdAotewotICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlz
LT5yZW5kZXJWaWV3KCk7Ci0gICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIEFTU0VSVChtX2ZyYW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOwot
Ci0gICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290
ZXIod2FudHNMYXllcik7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAK
IGJvb2wgRnJhbWVWaWV3OjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoRnJhbWUq
IHJvb3RGcmFtZUZvckZsdXNoKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lv
biAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MDksOCArNDA5LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykKICAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9yVG9wT3ZlckhhbmdBcmVhKGJv
b2wpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVy
SGFuZ0FyZWEoYm9vbCkgY29uc3Q7Ci0gICAgR3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZv
ckhlYWRlcihib29sKSBjb25zdDsKLSAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9y
Rm9vdGVyKGJvb2wpIGNvbnN0OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWln
aHQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUG9pbnRl
ckxvY2tDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQXJlbmEuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNp
bmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJSZW5kZXJXaWRnZXQuaCIKQEAgLTE3NSw2ICsxNzYsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGll
bnRzJiBwYWdlQ2xpZW50cykKICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkKICAgICAsIG1f
cmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lcygwKQorICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKKyAg
ICAsIG1fZm9vdGVySGVpZ2h0KDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRl
ZE9iamVjdHMoZmFsc2UpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNl
KQpAQCAtMTI4MCw2ICsxMjgzLDM4IEBAIFBhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJp
bGl0eVN0YXQKIH0KICNlbmRpZgogCit2b2lkIFBhZ2U6OmFkZEhlYWRlcldpdGhIZWlnaHQoaW50
IGhlYWRlckhlaWdodCkKK3sKKyAgICBtX2hlYWRlckhlaWdodCA9IGhlYWRlckhlaWdodDsKKwor
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lKCkgPyBtYWluRnJhbWUoKS0+dmll
dygpIDogMDsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVu
ZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVyVmlldygpOworICAgIGlmICgh
cmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJhbWVWaWV3LT5zZXRIZWFkZXJI
ZWlnaHQobV9oZWFkZXJIZWlnaHQpOworICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS0+dXBk
YXRlTGF5ZXJGb3JIZWFkZXIobV9oZWFkZXJIZWlnaHQpOworfQorCit2b2lkIFBhZ2U6OmFkZEZv
b3RlcldpdGhIZWlnaHQoaW50IGZvb3RlckhlaWdodCkKK3sKKyAgICBtX2Zvb3RlckhlaWdodCA9
IGZvb3RlckhlaWdodDsKKworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbWFpbkZyYW1lKCkg
PyBtYWluRnJhbWUoKS0+dmlldygpIDogMDsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAg
cmV0dXJuOworCisgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IGZyYW1lVmlldy0+cmVuZGVy
VmlldygpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgZnJh
bWVWaWV3LT5zZXRGb290ZXJIZWlnaHQobV9mb290ZXJIZWlnaHQpOworICAgIHJlbmRlclZpZXct
PmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290ZXIobV9mb290ZXJIZWlnaHQpOworfQor
CiB2b2lkIFBhZ2U6OmFkZExheW91dE1pbGVzdG9uZXMoTGF5b3V0TWlsZXN0b25lcyBtaWxlc3Rv
bmVzKQogewogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3YW50IGEgZnVuY3Rpb24gdGhh
dCByZXBsYWNlcyBtX2xheW91dE1pbGVzdG9uZXMgaW5zdGVhZCBvZiBqdXN0IGFkZGluZyB0byBp
dC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYgKzM1NiwxNCBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZW1vdmVMYXlvdXRNaWxlc3RvbmVzKExheW91dE1pbGVzdG9uZXMpOwogICAg
IExheW91dE1pbGVzdG9uZXMgcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lcygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lczsgfQogCisjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQorICAgIHZvaWQgYWRkSGVhZGVyV2l0aEhlaWdodChpbnQpOworICAgIHZvaWQgYWRk
Rm9vdGVyV2l0aEhlaWdodChpbnQpOworI2VuZGlmCisKKyAgICBpbnQgaGVhZGVySGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9oZWFkZXJIZWlnaHQ7IH0KKyAgICBpbnQgZm9vdGVySGVpZ2h0KCkg
Y29uc3QgeyByZXR1cm4gbV9mb290ZXJIZWlnaHQ7IH0KKwogICAgIGJvb2wgaXNDb3VudGluZ1Jl
bGV2YW50UmVwYWludGVkT2JqZWN0cygpIGNvbnN0OwogICAgIHZvaWQgc3RhcnRDb3VudGluZ1Jl
bGV2YW50UmVwYWludGVkT2JqZWN0cygpOwogICAgIHZvaWQgcmVzZXRSZWxldmFudFBhaW50ZWRP
YmplY3RDb3VudGVyKCk7CkBAIC01MDMsNiArNTExLDkgQEAgcHJpdmF0ZToKIAogICAgIExheW91
dE1pbGVzdG9uZXMgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVzOwogCisgICAgaW50IG1faGVh
ZGVySGVpZ2h0OworICAgIGludCBtX2Zvb3RlckhlaWdodDsKKwogICAgIEhhc2hTZXQ8UmVuZGVy
T2JqZWN0Kj4gbV9yZWxldmFudFVucGFpbnRlZFJlbmRlck9iamVjdHM7CiAgICAgUmVnaW9uIG1f
dG9wUmVsZXZhbnRQYWludGVkUmVnaW9uOwogICAgIFJlZ2lvbiBtX2JvdHRvbVJlbGV2YW50UGFp
bnRlZFJlZ2lvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAxNTAyNDMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NjYzLDYgKzY2MywxMCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQmFja2lu
CiAgICAgICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YXR0YWNoVG9TY3JvbGxpbmdDb29y
ZGluYXRvcldpdGhQYXJlbnQoMCk7CiAgICAgICAgICAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkpCiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdS
b290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CisgICAgICAgICAg
ICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgdXBkYXRlTGF5ZXJGb3JIZWFkZXIocGFnZS0+aGVhZGVySGVpZ2h0KCkpOworICAgICAgICAg
ICAgICAgICAgICB1cGRhdGVMYXllckZvckZvb3RlcihwYWdlLT5mb290ZXJIZWlnaHQoKSk7Cisg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUaGlzIGxh
eWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRhbnRzIGhhdmUgY2FjaGVkIHJlcGFpbnRzIHJlY3Rz
IHRoYXQgYXJlIHJlbGF0aXZlIHRvCkBAIC0yNTYwLDYgKzI1NjQsOSBAQCBHcmFwaGljc0xheWVy
KiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAg
ICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2Uo
bV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMt
PnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCktPmRpZEFkZEhlYWRlckxh
eWVyKG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JIZWFk
ZXIuZ2V0KCk7CiB9CiAKQEAgLTI1OTEsNiArMjU5OCw5IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6dXAKICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAg
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShtX3JlbmRl
clZpZXctPmZyYW1lVmlldygpKTsKIAorICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgp
KQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS0+ZGlkQWRkRm9vdGVyTGF5ZXIobV9s
YXllckZvckZvb3Rlci5nZXQoKSk7CisKICAgICByZXR1cm4gbV9sYXllckZvckZvb3Rlci5nZXQo
KTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwMjc5KQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTMtMDUtMTcg
IEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIEhlYWRlcnMgYW5kIGZv
b3RlcnMgd2lsbCBzb21ldGltZXMgZGlzYXBwZWFyIGFuZCByZS1hcHBlYXIgZHVyaW5nIHBhZ2Ug
bG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NjMzNgorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xMzg4Njc1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIFdlYkNvcmUtbGV2ZWwgQVBJIHRoYXQgV2ViS2l0
IHVzZXMgdG8gY3JlYXRlIGEgYmFubmVyLiAKKyAgICAgICAgU3BlY2lmaWNhbGx5IHRoaXMgcGF0
Y2ggcmVtb3ZlcyBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JIZWFkZXIoKSwgd2hpY2ggY3Jl
YXRlZCAKKyAgICAgICAgYW5kIHJldHVybmVkIGEgbGF5ZXIuIEluc3RlYWQsIFdLMiB3aWxsIGNh
bGwgUGFnZTo6YWRkSGVhZGVyV2l0aEhlaWdodCgpLiBXaGVuIHRoZSAKKyAgICAgICAgbGF5ZXIg
aGFzIGJlZW4gY3JlYXRlZCwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byBXSzIgdmlhIENocm9tZUNs
aWVudC4gVGhpcyB3aWxsIAorICAgICAgICBhbGxvdyBXZWJDb3JlIHRvIHJlLWNyZWF0ZSB0aGUg
aGVhZGVyL2Zvb3RlciBsYXllcnMgYXMgbmVlZGVkIHdoZW5ldmVyIHRoZSAKKyAgICAgICAgRnJh
bWVWaWV3L1JlbmRlckxheWVyQ29tcG9zaXRvciBoYXZlIGJlZW4gZGVzdHJveWVkIGFuZCByZWNy
ZWF0ZWQuCisKKyAgICAgICAgU2VuZCB0aGUgbGF5ZXJzIG92ZXIgdG8gUGFnZUJhbm5lci4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50KToKKworICAgICAgICBQYWdlQmFubmVyOjphZGRUb1BhZ2UoKSBu
b3cgZG9lcyBtdWNoIGxlc3Mgd29yayBzaW5jZSBpdCBjYW7igJl0IGdldCB0aGUgcGFyZW50IAor
ICAgICAgICBsYXllciByaWdodCBhd2F5LiBUaGUgd29yayB0aGF0IGlzIHVzZWQgdG8gZG8gb25j
ZSBpdCBoYWQgdGhlIHBhcmVudCBsYXllciBpcyBub3cgCisgICAgICAgIHBlcmZvcm1lZCBpbiBk
aWRBZGRQYXJlbnRMYXllcigpCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5u
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VCYW5uZXI6OmFkZFRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VCYW5uZXI6OmRp
ZEFkZFBhcmVudExheWVyKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTMtMDUtMTcgIFNhbSBX
ZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBFeHBvc2UgbmV3IGxvYWQtd2l0aC11
c2VyRGF0YSBBUEkgdG8gT2JqZWN0aXZlLUMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJ
KHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIgogI2luY2x1ZGUg
IkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKICNpbmNsdWRlICJMYXllclRyZWVI
b3N0LmgiCisjaW5jbHVkZSAiUGFnZUJhbm5lci5oIgogI2luY2x1ZGUgIldlYkNvbG9yQ2hvb3Nl
ci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkZy
YW1lLmgiCkBAIC04NTUsNCArODU2LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaXNhYmxl
U3VkZGVuVGVybWkKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
RGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciogaGVhZGVyUGFyZW50KQoreworICAgIGlm
IChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UtPmhlYWRlclBhZ2VCYW5uZXIoKSkKKyAgICAg
ICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcihoZWFkZXJQYXJlbnQpOworfQorCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciogZm9vdGVyUGFy
ZW50KQoreworICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UtPmZvb3RlclBhZ2VC
YW5uZXIoKSkKKyAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcihmb290ZXJQYXJlbnQp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAko
cmV2aXNpb24gMTUwMjQzKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjI3LDYgKzIyNyw5IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTdHlsZVNoZWV0KCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQoKSBjb25z
dCBPVkVSUklERTsKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEZvb3Rl
ckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKwogICAgIFN0cmluZyBt
X2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJhbWU+IG1fY2FjaGVkRnJh
bWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFz
SG9yaXpvbnRhbFNjcm9sbGJhcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9QYWdlQmFubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5jcHAJKHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKIAogI2luY2x1ZGUgIldl
YlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKQEAgLTUzLDYgKzU0LDEwIEBAIGJvb2wgUGFnZUJhbm5lcjo6bW91c2VFdmVu
dChjb25zdCBXZWJNb3UKIHsKICAgICByZXR1cm4gZmFsc2U7CiB9CisKK3ZvaWQgUGFnZUJhbm5l
cjo6ZGlkQWRkUGFyZW50TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopCit7Cit9CiAjZW5k
aWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUGFnZUJhbm5lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgJKHJldmlzaW9uIDE1MDI0MykKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgJKHdvcmtpbmcgY29weSkK
QEAgLTM1LDYgKzM1LDEwIEBAIE9CSkNfQ0xBU1MgQ0FMYXllcjsKICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAjZW5kaWYKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgR3JhcGhpY3NM
YXllcjsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2U7CkBAIC02OSw2
ICs3Myw4IEBAIHB1YmxpYzoKICAgICBib29sIG1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVu
dCYpOwogICAgIHZvaWQgZGlkQ2hhbmdlRGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0
b3IpOwogCisgICAgdm9pZCBkaWRBZGRQYXJlbnRMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7CisKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGV4cGxpY2l0IFBhZ2VCYW5u
ZXIoQ0FMYXllciAqLCBpbnQgaGVpZ2h0LCBDbGllbnQqKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGFnZUJhbm5lck1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW0JKHJl
dmlzaW9uIDE1MDI0MykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
UGFnZUJhbm5lck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTcsNDcgKzU3LDI2IEBAIHZvaWQg
UGFnZUJhbm5lcjo6YWRkVG9QYWdlKFR5cGUgdHlwZSwgV2UKICAgICBBU1NFUlQobV93ZWJQYWdl
KTsKIAogICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgY2FzZSBIZWFkZXI6IHsKLSAgICAgICAg
RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX3dlYlBhZ2UtPm1haW5GcmFtZVZpZXcoKTsKLSAgICAg
ICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnJhbWVW
aWV3LT5zZXRIZWFkZXJIZWlnaHQobV9oZWlnaHQpOwotCi0gICAgICAgIEdyYXBoaWNzTGF5ZXIq
IHBhcmVudExheWVyID0gZnJhbWVWaWV3LT5zZXRXYW50c0xheWVyRm9ySGVhZGVyKG1fbGF5ZXIp
OwotICAgICAgICBpZiAoIXBhcmVudExheWVyKSB7Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPmNv
cmVQYWdlKCktPnJlbW92ZUxheW91dE1pbGVzdG9uZXMoRGlkRmlyc3RGbHVzaEZvckhlYWRlckxh
eWVyKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIG1fd2ViUGFn
ZS0+Y29yZVBhZ2UoKS0+YWRkTGF5b3V0TWlsZXN0b25lcyhEaWRGaXJzdEZsdXNoRm9ySGVhZGVy
TGF5ZXIpOwotCi0gICAgICAgIG1fbGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAw
LCBwYXJlbnRMYXllci0+c2l6ZSgpLndpZHRoKCksIHBhcmVudExheWVyLT5zaXplKCkuaGVpZ2h0
KCkpOwotICAgICAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSBhZGRTdWJsYXllcjpt
X2xheWVyLmdldCgpXTsKLQorICAgIGNhc2UgSGVhZGVyOgorICAgICAgICBtX3dlYlBhZ2UtPmNv
cmVQYWdlKCktPmFkZEhlYWRlcldpdGhIZWlnaHQobV9oZWlnaHQpOwogICAgICAgICBicmVhazsK
LSAgICB9Ci0gICAgY2FzZSBGb290ZXI6IHsKLSAgICAgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcg
PSBtX3dlYlBhZ2UtPm1haW5GcmFtZVZpZXcoKTsKLSAgICAgICAgaWYgKCFmcmFtZVZpZXcpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnJhbWVWaWV3LT5zZXRGb290ZXJIZWlnaHQo
bV9oZWlnaHQpOwotCi0gICAgICAgIEdyYXBoaWNzTGF5ZXIqIHBhcmVudExheWVyID0gZnJhbWVW
aWV3LT5zZXRXYW50c0xheWVyRm9yRm9vdGVyKG1fbGF5ZXIpOwotICAgICAgICBpZiAoIXBhcmVu
dExheWVyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIG1fbGF5ZXIuZ2V0KCkuYm91
bmRzID0gQ0dSZWN0TWFrZSgwLCAwLCBwYXJlbnRMYXllci0+c2l6ZSgpLndpZHRoKCksIHBhcmVu
dExheWVyLT5zaXplKCkuaGVpZ2h0KCkpOwotICAgICAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3Jt
TGF5ZXIoKSBhZGRTdWJsYXllcjptX2xheWVyLmdldCgpXTsKLQorICAgIGNhc2UgRm9vdGVyOgor
ICAgICAgICBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPmFkZEZvb3RlcldpdGhIZWlnaHQobV9oZWln
aHQpOwogICAgICAgICBicmVhazsKLSAgICB9CiAgICAgY2FzZSBOb3RTZXQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KIH0KIAordm9pZCBQYWdlQmFubmVyOjpkaWRBZGRQ
YXJlbnRMYXllcihHcmFwaGljc0xheWVyKiBwYXJlbnRMYXllcikKK3sKKyAgICBpZiAoIXBhcmVu
dExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2xheWVyLmdldCgpLmJvdW5kcyA9IENH
UmVjdE1ha2UoMCwgMCwgcGFyZW50TGF5ZXItPnNpemUoKS53aWR0aCgpLCBwYXJlbnRMYXllci0+
c2l6ZSgpLmhlaWdodCgpKTsKKyAgICBbcGFyZW50TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSBhZGRT
dWJsYXllcjptX2xheWVyLmdldCgpXTsKK30KKwogdm9pZCBQYWdlQmFubmVyOjpkZXRhY2hGcm9t
UGFnZSgpCiB7CiAgICAgbV90eXBlID0gTm90U2V0Owo=
</data>
<flag name="commit-queue"
          id="223553"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202139</attachid>
            <date>2013-05-17 13:04:02 -0700</date>
            <delta_ts>2013-05-17 13:12:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-6.txt</filename>
            <type>text/plain</type>
            <size>23074</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdp
bGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUtYXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAg
ICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3
NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRv
IGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92
ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisg
ICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6
OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVu
IGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRo
aXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9m
b290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgor
CisgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9sZCBGcmFtZVZpZXcgZnVuY3Rpb25zLiBB
ZGQgcmVmZXJlbmNlcyB0byBuZXcgUGFnZSAKKyAgICAgICAgZnVuY3Rpb25zLgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgIE5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIHdp
bGwgcGFzcyB0aGUgbmV3IGxheWVycyB1cCB0byBXSzIuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcik6
CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCisgICAgICAgIFJlbW92ZSBzZXRXYW50c0xheWVy
Rm9ySGVhZGVyL0Zvb3Rlci4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisKKyAgICAgICAgUGFn
ZSBub3cgY2FjaGVzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuIFdoZW4gdGhlIEZyYW1l
Vmlldy9STEMgaGF2ZSBiZWVuIAorICAgICAgICBkZXN0cm95ZWQsIGFuZCB0aGUgY2FjaGVkIGxh
eWVyL2hlaWdodCBpbmZvcm1hdGlvbiBvbiB0aG9zZSBjbGFzc2VzIGhhcyBiZWVuIGxvc3QsIAor
ICAgICAgICB0aGlzIGRhdGEgb24gUGFnZSB3aWxsIHBlcnNpc3Qgc28gdGhhdCB3ZSBjYW4gYnVp
bGQgdGhlIGxheWVycyBiYWNrIHVwLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFkZEhlYWRl
cldpdGhIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkRm9vdGVyV2l0aEhlaWdo
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoZWFk
ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9vdGVySGVpZ2h0KToKKworICAg
ICAgICBBcyBzb29uIGFzIHRoZSByb290IGdldHMgYSBiYWNraW5nLCByZWNyZWF0ZSB0aGUgaGVh
ZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGlmIAorICAgICAgICBuZWVkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorCisgICAgICAgIENhbGwgaW50byBD
aHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIFtD
dXN0b21HZXR0ZXJdIGZvciBnbG9iYWwgbmFtZWQgY29uc3RydWN0b3JzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg1OCw2ICs4NTgsOCBAQCBfX1pON1dlYkNvcmU0UGFn
ZTE2c2V0RGVmZXJzTG9hZGluZ0ViCiBfX1pON1dlYkNvcmU0UGFnZTE3d2lsbE1vdmVPZmZzY3Jl
ZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxOHJlbW92ZVNjaGVkdWxlUGFpckVOM1dURjEwUGFzc1Jl
ZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKIF9fWk43V2ViQ29yZTRQYWdlMThzZXRQYWdlU2Nh
bGVGYWN0b3JFZlJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEZvb3Rlcldp
dGhIZWlnaHRFaQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEhlYWRlcldpdGhIZWlnaHRFaQogX19a
TjdXZWJDb3JlNFBhZ2UxOWFkZExheW91dE1pbGVzdG9uZXNFagogX19aTjdXZWJDb3JlNFBhZ2Ux
OXNldFJ1YmJlckJhbmRzQXRUb3BFYgogX19aTjdXZWJDb3JlNFBhZ2UxOXZpc2l0ZWRTdGF0ZUNo
YW5nZWRFUE5TXzlQYWdlR3JvdXBFeQpAQCAtMTY1Miw4ICsxNjU0LDYgQEAgX19aTks3V2ViQ29y
ZTlGcmFtZVZpZXcxM3BhaW50QmVoYXZpb3JFdgogX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxNGRp
ZEZpcnN0TGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MTliYXNlQmFja2dyb3VuZENv
bG9yRXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MjBpc1NvZnR3YXJlUmVuZGVyYWJsZUV2Ci1f
X1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckZvb3RlckViCi1fX1pOSzdX
ZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckhlYWRlckViCiBfX1pOSzdXZWJDb3Jl
OUZyYW1lVmlldzIzZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JFdgogX19aTks3V2ViQ29yZTlGcmFt
ZVZpZXcyN3dpbmRvd0NsaXBSZWN0Rm9yRnJhbWVPd25lckVQS05TXzIxSFRNTEZyYW1lT3duZXJF
bGVtZW50RWIKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3Mjhpc0VuY2xvc2VkSW5Db21wb3NpdGlu
Z0xheWVyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTUw
MjkwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzc2LDYgKzM3Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4gPiYpIHsgfTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNl
OyB9OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIq
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciop
IHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTUwMjkwKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MDQsMjgg
KzkwNCw2IEBAIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6c2V0V2FudHNMYXllckYKICAgICBy
ZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVMYXllckZvckJvdHRvbU92ZXJo
YW5nQXJlYSh3YW50c0xheWVyKTsKIH0KIAotR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpzZXRX
YW50c0xheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikgY29uc3QKLXsKLSAgICBSZW5kZXJW
aWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwotICAgIGlmICghcmVuZGVyVmll
dykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQobV9mcmFtZSA9PSBtX2ZyYW1lLT5w
YWdlKCktPm1haW5GcmFtZSgpKTsKLQotICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9y
KCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKHdhbnRzTGF5ZXIpOwotfQotCi1HcmFwaGljc0xheWVy
KiBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JGb290ZXIoYm9vbCB3YW50c0xheWVyKSBjb25z
dAotewotICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7Ci0g
ICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEFTU0VSVChtX2Zy
YW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOwotCi0gICAgcmV0dXJuIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290ZXIod2FudHNMYXllcik7Ci19
Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAKIGJvb2wgRnJhbWVWaWV3Ojpm
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoRnJhbWUqIHJvb3RGcmFtZUZvckZsdXNo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiAxNTAyOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDksOCArNDA5
LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBHcmFwaGljc0xh
eWVyKiBzZXRXYW50c0xheWVyRm9yVG9wT3ZlckhhbmdBcmVhKGJvb2wpIGNvbnN0OwogICAgIEdy
YXBoaWNzTGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVySGFuZ0FyZWEoYm9vbCkgY29u
c3Q7Ci0gICAgR3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZvckhlYWRlcihib29sKSBjb25z
dDsKLSAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9yRm9vdGVyKGJvb2wpIGNvbnN0
OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWlnaHQoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZp
c2lvbiAxNTAyOTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIK
KyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
QEAgLTE3NSw2ICsxNzYsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykK
ICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkKICAgICAsIG1fcmVxdWVzdGVkTGF5b3V0TWls
ZXN0b25lcygwKQorICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKKyAgICAsIG1fZm9vdGVySGVpZ2h0
KDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoZmFsc2UpCiAj
aWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQpAQCAtMTI4MCw2ICsxMjgz
LDQwIEBAIFBhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJpbGl0eVN0YXQKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQordm9pZCBQYWdlOjphZGRIZWFkZXJXaXRo
SGVpZ2h0KGludCBoZWFkZXJIZWlnaHQpCit7CisgICAgbV9oZWFkZXJIZWlnaHQgPSBoZWFkZXJI
ZWlnaHQ7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1haW5GcmFtZSgpID8gbWFpbkZy
YW1lKCktPnZpZXcoKSA6IDA7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZpZXctPnJlbmRlclZpZXcoKTsK
KyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGZyYW1lVmlldy0+
c2V0SGVhZGVySGVpZ2h0KG1faGVhZGVySGVpZ2h0KTsKKyAgICByZW5kZXJWaWV3LT5jb21wb3Np
dG9yKCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKG1faGVhZGVySGVpZ2h0KTsKK30KKwordm9pZCBQ
YWdlOjphZGRGb290ZXJXaXRoSGVpZ2h0KGludCBmb290ZXJIZWlnaHQpCit7CisgICAgbV9mb290
ZXJIZWlnaHQgPSBmb290ZXJIZWlnaHQ7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1h
aW5GcmFtZSgpID8gbWFpbkZyYW1lKCktPnZpZXcoKSA6IDA7CisgICAgaWYgKCFmcmFtZVZpZXcp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZp
ZXctPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybjsK
KworICAgIGZyYW1lVmlldy0+c2V0Rm9vdGVySGVpZ2h0KG1fZm9vdGVySGVpZ2h0KTsKKyAgICBy
ZW5kZXJWaWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyRm9yRm9vdGVyKG1fZm9vdGVySGVp
Z2h0KTsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2U6OmFkZExheW91dE1pbGVzdG9uZXMoTGF5b3V0
TWlsZXN0b25lcyBtaWxlc3RvbmVzKQogewogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3
YW50IGEgZnVuY3Rpb24gdGhhdCByZXBsYWNlcyBtX2xheW91dE1pbGVzdG9uZXMgaW5zdGVhZCBv
ZiBqdXN0IGFkZGluZyB0byBpdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNTAyOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYg
KzM1NiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVMYXlvdXRNaWxlc3RvbmVzKExheW91
dE1pbGVzdG9uZXMpOwogICAgIExheW91dE1pbGVzdG9uZXMgcmVxdWVzdGVkTGF5b3V0TWlsZXN0
b25lcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lczsgfQogCisj
aWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorICAgIHZvaWQgYWRkSGVhZGVyV2l0aEhlaWdodChp
bnQpOworICAgIHZvaWQgYWRkRm9vdGVyV2l0aEhlaWdodChpbnQpOworI2VuZGlmCisKKyAgICBp
bnQgaGVhZGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWFkZXJIZWlnaHQ7IH0KKyAgICBp
bnQgZm9vdGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9mb290ZXJIZWlnaHQ7IH0KKwogICAg
IGJvb2wgaXNDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cygpIGNvbnN0OwogICAgIHZv
aWQgc3RhcnRDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cygpOwogICAgIHZvaWQgcmVz
ZXRSZWxldmFudFBhaW50ZWRPYmplY3RDb3VudGVyKCk7CkBAIC01MDMsNiArNTExLDkgQEAgcHJp
dmF0ZToKIAogICAgIExheW91dE1pbGVzdG9uZXMgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVz
OwogCisgICAgaW50IG1faGVhZGVySGVpZ2h0OworICAgIGludCBtX2Zvb3RlckhlaWdodDsKKwog
ICAgIEhhc2hTZXQ8UmVuZGVyT2JqZWN0Kj4gbV9yZWxldmFudFVucGFpbnRlZFJlbmRlck9iamVj
dHM7CiAgICAgUmVnaW9uIG1fdG9wUmVsZXZhbnRQYWludGVkUmVnaW9uOwogICAgIFJlZ2lvbiBt
X2JvdHRvbVJlbGV2YW50UGFpbnRlZFJlZ2lvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAxNTAyOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjYzLDYgKzY2MywxMCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlQmFja2luCiAgICAgICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YXR0
YWNoVG9TY3JvbGxpbmdDb29yZGluYXRvcldpdGhQYXJlbnQoMCk7CiAgICAgICAgICAgICAgICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZp
ZXcoKSk7CisgICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJGb3JIZWFkZXIocGFnZS0+aGVhZGVySGVp
Z2h0KCkpOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVMYXllckZvckZvb3RlcihwYWdlLT5m
b290ZXJIZWlnaHQoKSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBUaGlzIGxheWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRhbnRzIGhhdmUgY2Fj
aGVkIHJlcGFpbnRzIHJlY3RzIHRoYXQgYXJlIHJlbGF0aXZlIHRvCkBAIC0yNTYwLDYgKzI1NjQs
OSBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgaWYgKFNj
cm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdS
b290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAo
UGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCktPmRpZEFkZEhlYWRlckxheWVyKG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworCiAgICAgcmV0
dXJuIG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCk7CiB9CiAKQEAgLTI1OTEsNiArMjU5OCw5IEBAIEdy
YXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXAKICAgICBpZiAoU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKSkKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXll
ckRpZENoYW5nZShtX3JlbmRlclZpZXctPmZyYW1lVmlldygpKTsKIAorICAgIGlmIChQYWdlKiBw
YWdlID0gdGhpcy0+cGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS0+ZGlk
QWRkRm9vdGVyTGF5ZXIobV9sYXllckZvckZvb3Rlci5nZXQoKSk7CisKICAgICByZXR1cm4gbV9s
YXllckZvckZvb3Rlci5nZXQoKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwMjkw
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDExOSAr
MSwzNiBAQAotMjAxMy0wNS0xNyAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKzIwMTMtMDUtMTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCi0gICAg
ICAgIFtXSzJdIEFkZCBzdXBwb3J0IGZvciBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
IHNldHRpbmcKLSAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTExMjQyNgotCi0gICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KLQotICAgICAgICAq
IFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6Ci0gICAgICAgIChXZWJLaXQpOiBBZGQgbWFj
cm8gZm9yIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCi0gICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgotICAgICAgICAoV0tQcmVmZXJlbmNlc1NldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgotICAgICAgICAoV0tQcmVmZXJlbmNlc0dl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOiBJbXBsZW1lbnQgbWV0aG9kcwotICAg
ICAgICB1c2luZyB0aGUgbmV3IHNldHRpbmcuCi0gICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
UHJlZmVyZW5jZXNQcml2YXRlLmg6IEFkZCBuZXcgbWV0aG9kcyBoZWFkZXJzLgotICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKLSAgICAgICAg
KFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOiBJbXBsZW1lbnQKLSAgICAgICAgbWV0aG9kIGRlbGVnYXRpbmcgaW4gV2ViUGFnZS4KLSAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Ci0gICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogU2V0Ci0gICAgICAgIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZy4KLSAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKTogU2V0Ci0gICAgICAgIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgotICAgICAgICAo
V2ViS2l0KToKLSAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKTogSW1wbGVtZW50IG1ldGhvZAotICAgICAgICB1c2luZyBzZXR0aW5ncy4K
LSAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6IEltcGxlbWVudCBtZXRob2QKLSAgICAgICAgdXNpbmcgc2V0dGluZ3MgYW5kIHNldCBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkKLSAgICAgICAgZXhj
bHVzaXZlLgotICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6Ci0gICAgICAg
IChXZWJQYWdlKTogQWRkIG5ldyBtZXRob2RzIGhlYWRlcnMuCi0KLTIwMTMtMDUtMTcgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgotCi0gICAgICAgIEZpeCBjcmFzaCBpbnRyb2R1
Y2VkIGJ5IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE1MDI4MgotICAgICAgICBG
b2xsb3d1cCB0byBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2MjUz
Ci0KLSAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KLQotICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKLSAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKTogRnJhbWUgbWlnaHQgYmUg
bnVsbC4KLQotMjAxMy0wNS0xNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+Ci0K
LSAgICAgICAgUmVwbGFjZSBXZWJGcmFtZUxvYWRlckNsaWVudCBzdGF0aWNfY2FzdHMgd2l0aCBh
IGZ1bmN0aW9uIHRoYXQgbWlnaHQgcmV0dXJuIG51bGwuCi0gICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYyNTMKLQotICAgICAgICBUaGUgZ2VuZXJhbCBh
cHByb2FjaCBoZXJlIGlzOgotICAgICAgICAxIC0gSW50cm9kdWNlIGEgdG9XZWJGcmFtZUxvYWRl
ckNsaWVudCgpIGZ1bmN0aW9uIHRvIGNvbnZlcnQgRnJhbWVMb2FkZXJDbGllbnRzLCBhbmQgdGhh
dCBtYXkgcmV0dXJuIG51bGwuCi0gICAgICAgIDIgLSBBZG9wdCB0b1dlYkZyYW1lTG9hZGVyQ2xp
ZW50KCkgZXZlcnl3aGVyZSB3ZSB1c2VkIHRvIGRvIGEgZGlyZWN0IHN0YXRpY19jYXN0PFdlYkZy
YW1lTG9hZGVyQ2xpZW50Kj4KLSAgICAgICAgMyAtIEluIGZ1bmN0aW9ucyB0aGF0IGFscmVhZHkg
c3VwcG9ydCBhICJyZXR1cm4gMCIgc2NlbmFyaW8sIGEgZmFpbGVkIGNhc3QgcmVzdWx0cyBpbiBh
IHJldHVybiAwLgotICAgICAgICA0IC0gSW4gb3RoZXIgZnVuY3Rpb25zIHRoYXQgYXNzdW1lIG5v
IGZhaWx1cmUgdG8gZ2V0IHRoZSBXZWJGcmFtZUxvYWRlckNsaWVudCwgYWRkIGFuIEFTU0VSVC4K
LQotICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgotCi0gICAgICAgIEFk
ZCB0aGUgdXRpbGl0eSBmdW5jdGlvbiB0byBjYXN0OgotICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKLSAgICAgICAgKFdlYktpdDo6dG9X
ZWJGcmFtZUxvYWRlckNsaWVudCk6Ci0KLSAgICAgICAgQWRvcHQgaXQgZXZlcnl3aGVyZToKLSAg
ICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcDoKLSAgICAgICAgKFdlYktpdDo6R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdEZvckdlb2xvY2F0aW9uKToKLQotICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHA6
Ci0gICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6ZG9jdW1lbnRGcmFt
ZSk6Ci0gICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6aHRtbEZyYW1l
RWxlbWVudENvbnRlbnRGcmFtZSk6Ci0gICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZTo6aHRtbElGcmFtZUVsZW1lbnRDb250ZW50RnJhbWUpOgotCi0gICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6Ci0gICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6
Ci0KLSAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlRE9N
V2luZG93RXh0ZW5zaW9uLmNwcDoKLSAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVET01X
aW5kb3dFeHRlbnNpb246OmZyYW1lKToKKyAgICAgICAgSGVhZGVycyBhbmQgZm9vdGVycyB3aWxs
IHNvbWV0aW1lcyBkaXNhcHBlYXIgYW5kIHJlLWFwcGVhciBkdXJpbmcgcGFnZSBsb2FkcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2MzM2CisgICAg
ICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEzODg2NzUz
PgogCi0gICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZUhp
dFRlc3RSZXN1bHQuY3BwOgotICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZUhpdFRlc3RS
ZXN1bHQ6OmZyYW1lKToKLSAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVz
dWx0Ojp0YXJnZXRGcmFtZSk6CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgog
Ci0gICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHA6Ci0gICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVM
b2FkKToKLQotICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKLSAg
ICAgICAgKFdlYktpdDo6d2ViUGFnZSk6Ci0gICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBl
cmZvcm1GcmFtZUxvYWRVUkxSZXF1ZXN0KToKKyAgICAgICAgVGhpcyBwYXRjaCBjaGFuZ2VzIHRo
ZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRvIGNyZWF0ZSBhIGJhbm5lci4g
CisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92ZXMgRnJhbWVWaWV3OjpzZXRX
YW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisgICAgICAgIGFuZCByZXR1cm5l
ZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6OmFkZEhlYWRlcldpdGhIZWln
aHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVuIGNyZWF0ZWQsIGl0IHdpbGwg
Y2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRoaXMgd2lsbCAKKyAgICAgICAg
YWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9mb290ZXIgbGF5ZXJzIGFzIG5l
ZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9SZW5kZXJMYXllckNvbXBvc2l0
b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgogCisgICAgICAgIFNlbmQgdGhl
IGxheWVycyBvdmVyIHRvIFBhZ2VCYW5uZXIuCiAgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgotICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OmZvY3VzZWROb2RlQ2hhbmdlZCk6Ci0gICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZCk6Ci0gICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKToKLSAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQpOgotICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKToKLSAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KToKLSAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpwcmludCk6Ci0gICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKToKLSAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjpydW5PcGVuUGFuZWwpOgotCi0gICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwOgotICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JDbGllbnQ6OnRl
eHRGaWVsZERpZEJlZ2luRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNsaWVu
dDo6dGV4dEZpZWxkRGlkRW5kRWRpdGluZyk6Ci0gICAgICAgIChXZWJLaXQ6OldlYkVkaXRvckNs
aWVudDo6dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKToKLSAgICAgICAgKFdlYktpdDo6V2ViRWRp
dG9yQ2xpZW50Ojp0ZXh0RGlkQ2hhbmdlSW5UZXh0QXJlYSk6Ci0gICAgICAgIChXZWJLaXQ6Oldl
YkVkaXRvckNsaWVudDo6ZG9UZXh0RmllbGRDb21tYW5kRnJvbUV2ZW50KToKLSAgICAgICAgKFdl
YktpdDo6V2ViRWRpdG9yQ2xpZW50Ojp0ZXh0V2lsbEJlRGVsZXRlZEluVGV4dEZpZWxkKToKLQot
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwOgotICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxs
U2VuZFN1Ym1pdEV2ZW50KToKLSAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoV2lsbFN1Ym1pdEZvcm0pOgotCi0gICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcDoKLSAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbnRlbnRzQXNTdHJp
bmcpOgotICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6cGFyZW50RnJhbWUpOgotICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZTo6Y2hpbGRGcmFtZXMpOgotICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZTo6ZnJhbWVGb3JDb250ZXh0KToKLSAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVGaWx0ZXI6OnNo
b3VsZEluY2x1ZGVTdWJmcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
ZGlkQWRkSGVhZGVyTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRp
ZEFkZEZvb3RlckxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKIAotICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKLSAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6bWFpbkZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb24pOgorICAgICAgICBQYWdlQmFubmVy
OjphZGRUb1BhZ2UoKSBub3cgZG9lcyBtdWNoIGxlc3Mgd29yayBzaW5jZSBpdCBjYW7igJl0IGdl
dCB0aGUgcGFyZW50IAorICAgICAgICBsYXllciByaWdodCBhd2F5LiBUaGUgd29yayB0aGF0IGlz
IHVzZWQgdG8gZG8gb25jZSBpdCBoYWQgdGhlIHBhcmVudCBsYXllciBpcyBub3cgCisgICAgICAg
IHBlcmZvcm1lZCBpbiBkaWRBZGRQYXJlbnRMYXllcigpCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1BhZ2VCYW5uZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQmFubmVyOjpkaWRB
ZGRQYXJlbnRMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW06Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VCYW5uZXI6OmFkZFRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VCYW5uZXI6OmRpZEFkZFBhcmVudExheWVyKToKKyAgICAgICAgKFdlYktpdCk6CiAKIDIw
MTMtMDUtMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9u
LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1
ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJQYWdlQmFubmVyLmgiCiAjaW5jbHVkZSAi
V2ViQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTg3Nyw0ICs4NzgsMTYgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmRpc2FibGVTdWRkZW5UZXJtaQogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpEaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSk7CiB9CiAKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKiBoZWFkZXJQYXJl
bnQpCit7CisgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS0+aGVhZGVyUGFnZUJh
bm5lcigpKQorICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGhlYWRlclBhcmVudCk7
Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xh
eWVyKiBmb290ZXJQYXJlbnQpCit7CisgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFn
ZS0+Zm9vdGVyUGFnZUJhbm5lcigpKQorICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVy
KGZvb3RlclBhcmVudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCShyZXZpc2lvbiAxNTAyOTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjcsNiArMjI3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5FeHRyYVN0
eWxlU2hlZXQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5FeHRy
YVNjcmlwdCgpIGNvbnN0IE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRl
ckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9WRVJSSURFOwor
CiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFt
ZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNo
ZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyOwpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmNwcAkocmV2aXNpb24gMTUwMjkw
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUGFnZUJhbm5lci5oIgog
CiAjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTMsNiArNTQsMTAgQEAgYm9vbCBQYWdlQmFu
bmVyOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1vdQogewogICAgIHJldHVybiBmYWxzZTsKIH0KKwor
dm9pZCBQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVy
KikKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaAkocmV2aXNpb24gMTUw
MjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTAgQEAgT0JKQ19DTEFTUyBDQUxheWVyOwogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgogCituYW1lc3BhY2UgV2ViQ29yZSB7Citj
bGFzcyBHcmFwaGljc0xheWVyOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2Vi
UGFnZTsKQEAgLTY5LDYgKzczLDggQEAgcHVibGljOgogICAgIGJvb2wgbW91c2VFdmVudChjb25z
dCBXZWJNb3VzZUV2ZW50Jik7CiAgICAgdm9pZCBkaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3Rvcihm
bG9hdCBzY2FsZUZhY3Rvcik7CiAKKyAgICB2b2lkIGRpZEFkZFBhcmVudExheWVyKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKTsKKwogcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMpCiAgICAgZXhw
bGljaXQgUGFnZUJhbm5lcihDQUxheWVyICosIGludCBoZWlnaHQsIENsaWVudCopOwpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGFnZUJh
bm5lck1hYy5tbQkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw0NyAr
NTcsMjYgQEAgdm9pZCBQYWdlQmFubmVyOjphZGRUb1BhZ2UoVHlwZSB0eXBlLCBXZQogICAgIEFT
U0VSVChtX3dlYlBhZ2UpOwogCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIEhlYWRl
cjogewotICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS0+bWFpbkZyYW1l
VmlldygpOwotICAgICAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBmcmFtZVZpZXctPnNldEhlYWRlckhlaWdodChtX2hlaWdodCk7Ci0KLSAgICAgICAg
R3JhcGhpY3NMYXllciogcGFyZW50TGF5ZXIgPSBmcmFtZVZpZXctPnNldFdhbnRzTGF5ZXJGb3JI
ZWFkZXIobV9sYXllcik7Ci0gICAgICAgIGlmICghcGFyZW50TGF5ZXIpIHsKLSAgICAgICAgICAg
IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cmVtb3ZlTGF5b3V0TWlsZXN0b25lcyhEaWRGaXJzdEZs
dXNoRm9ySGVhZGVyTGF5ZXIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAg
ICAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5hZGRMYXlvdXRNaWxlc3RvbmVzKERpZEZpcnN0
Rmx1c2hGb3JIZWFkZXJMYXllcik7Ci0KLSAgICAgICAgbV9sYXllci5nZXQoKS5ib3VuZHMgPSBD
R1JlY3RNYWtlKDAsIDAsIHBhcmVudExheWVyLT5zaXplKCkud2lkdGgoKSwgcGFyZW50TGF5ZXIt
PnNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAgIFtwYXJlbnRMYXllci0+cGxhdGZvcm1MYXllcigp
IGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCldOwotCisgICAgY2FzZSBIZWFkZXI6CisgICAgICAg
IG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+YWRkSGVhZGVyV2l0aEhlaWdodChtX2hlaWdodCk7CiAg
ICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEZvb3RlcjogewotICAgICAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS0+bWFpbkZyYW1lVmlldygpOwotICAgICAgICBpZiAo
IWZyYW1lVmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBmcmFtZVZpZXctPnNl
dEZvb3RlckhlaWdodChtX2hlaWdodCk7Ci0KLSAgICAgICAgR3JhcGhpY3NMYXllciogcGFyZW50
TGF5ZXIgPSBmcmFtZVZpZXctPnNldFdhbnRzTGF5ZXJGb3JGb290ZXIobV9sYXllcik7Ci0gICAg
ICAgIGlmICghcGFyZW50TGF5ZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbV9s
YXllci5nZXQoKS5ib3VuZHMgPSBDR1JlY3RNYWtlKDAsIDAsIHBhcmVudExheWVyLT5zaXplKCku
d2lkdGgoKSwgcGFyZW50TGF5ZXItPnNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAgIFtwYXJlbnRM
YXllci0+cGxhdGZvcm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCldOwotCisgICAg
Y2FzZSBGb290ZXI6CisgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+YWRkRm9vdGVyV2l0
aEhlaWdodChtX2hlaWdodCk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KICAgICBjYXNlIE5vdFNl
dDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCit2b2lkIFBhZ2VC
YW5uZXI6OmRpZEFkZFBhcmVudExheWVyKEdyYXBoaWNzTGF5ZXIqIHBhcmVudExheWVyKQorewor
ICAgIGlmICghcGFyZW50TGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbGF5ZXIuZ2V0
KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAwLCBwYXJlbnRMYXllci0+c2l6ZSgpLndpZHRoKCks
IHBhcmVudExheWVyLT5zaXplKCkuaGVpZ2h0KCkpOworICAgIFtwYXJlbnRMYXllci0+cGxhdGZv
cm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCldOworfQorCiB2b2lkIFBhZ2VCYW5u
ZXI6OmRldGFjaEZyb21QYWdlKCkKIHsKICAgICBtX3R5cGUgPSBOb3RTZXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202142</attachid>
            <date>2013-05-17 13:12:59 -0700</date>
            <delta_ts>2013-05-17 13:30:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-7.txt</filename>
            <type>text/plain</type>
            <size>17746</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdp
bGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUtYXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAg
ICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3
NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRv
IGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92
ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisg
ICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6
OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVu
IGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRo
aXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9m
b290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgor
CisgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9sZCBGcmFtZVZpZXcgZnVuY3Rpb25zLiBB
ZGQgcmVmZXJlbmNlcyB0byBuZXcgUGFnZSAKKyAgICAgICAgZnVuY3Rpb25zLgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgIE5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIHdp
bGwgcGFzcyB0aGUgbmV3IGxheWVycyB1cCB0byBXSzIuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcik6
CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCisgICAgICAgIFJlbW92ZSBzZXRXYW50c0xheWVy
Rm9ySGVhZGVyL0Zvb3Rlci4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisKKyAgICAgICAgUGFn
ZSBub3cgY2FjaGVzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuIFdoZW4gdGhlIEZyYW1l
Vmlldy9STEMgaGF2ZSBiZWVuIAorICAgICAgICBkZXN0cm95ZWQsIGFuZCB0aGUgY2FjaGVkIGxh
eWVyL2hlaWdodCBpbmZvcm1hdGlvbiBvbiB0aG9zZSBjbGFzc2VzIGhhcyBiZWVuIGxvc3QsIAor
ICAgICAgICB0aGlzIGRhdGEgb24gUGFnZSB3aWxsIHBlcnNpc3Qgc28gdGhhdCB3ZSBjYW4gYnVp
bGQgdGhlIGxheWVycyBiYWNrIHVwLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFkZEhlYWRl
cldpdGhIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkRm9vdGVyV2l0aEhlaWdo
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoZWFk
ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9vdGVySGVpZ2h0KToKKworICAg
ICAgICBBcyBzb29uIGFzIHRoZSByb290IGdldHMgYSBiYWNraW5nLCByZWNyZWF0ZSB0aGUgaGVh
ZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGlmIAorICAgICAgICBuZWVkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorCisgICAgICAgIENhbGwgaW50byBD
aHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIFtD
dXN0b21HZXR0ZXJdIGZvciBnbG9iYWwgbmFtZWQgY29uc3RydWN0b3JzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg1OCw2ICs4NTgsOCBAQCBfX1pON1dlYkNvcmU0UGFn
ZTE2c2V0RGVmZXJzTG9hZGluZ0ViCiBfX1pON1dlYkNvcmU0UGFnZTE3d2lsbE1vdmVPZmZzY3Jl
ZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxOHJlbW92ZVNjaGVkdWxlUGFpckVOM1dURjEwUGFzc1Jl
ZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKIF9fWk43V2ViQ29yZTRQYWdlMThzZXRQYWdlU2Nh
bGVGYWN0b3JFZlJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEZvb3Rlcldp
dGhIZWlnaHRFaQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEhlYWRlcldpdGhIZWlnaHRFaQogX19a
TjdXZWJDb3JlNFBhZ2UxOWFkZExheW91dE1pbGVzdG9uZXNFagogX19aTjdXZWJDb3JlNFBhZ2Ux
OXNldFJ1YmJlckJhbmRzQXRUb3BFYgogX19aTjdXZWJDb3JlNFBhZ2UxOXZpc2l0ZWRTdGF0ZUNo
YW5nZWRFUE5TXzlQYWdlR3JvdXBFeQpAQCAtMTY1Miw4ICsxNjU0LDYgQEAgX19aTks3V2ViQ29y
ZTlGcmFtZVZpZXcxM3BhaW50QmVoYXZpb3JFdgogX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxNGRp
ZEZpcnN0TGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MTliYXNlQmFja2dyb3VuZENv
bG9yRXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MjBpc1NvZnR3YXJlUmVuZGVyYWJsZUV2Ci1f
X1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckZvb3RlckViCi1fX1pOSzdX
ZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckhlYWRlckViCiBfX1pOSzdXZWJDb3Jl
OUZyYW1lVmlldzIzZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JFdgogX19aTks3V2ViQ29yZTlGcmFt
ZVZpZXcyN3dpbmRvd0NsaXBSZWN0Rm9yRnJhbWVPd25lckVQS05TXzIxSFRNTEZyYW1lT3duZXJF
bGVtZW50RWIKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3Mjhpc0VuY2xvc2VkSW5Db21wb3NpdGlu
Z0xheWVyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTUw
MjkwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzc2LDYgKzM3Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4gPiYpIHsgfTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNl
OyB9OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIq
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciop
IHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTUwMjkwKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MDQsMjgg
KzkwNCw2IEBAIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6c2V0V2FudHNMYXllckYKICAgICBy
ZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVMYXllckZvckJvdHRvbU92ZXJo
YW5nQXJlYSh3YW50c0xheWVyKTsKIH0KIAotR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpzZXRX
YW50c0xheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikgY29uc3QKLXsKLSAgICBSZW5kZXJW
aWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwotICAgIGlmICghcmVuZGVyVmll
dykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQobV9mcmFtZSA9PSBtX2ZyYW1lLT5w
YWdlKCktPm1haW5GcmFtZSgpKTsKLQotICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9y
KCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKHdhbnRzTGF5ZXIpOwotfQotCi1HcmFwaGljc0xheWVy
KiBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JGb290ZXIoYm9vbCB3YW50c0xheWVyKSBjb25z
dAotewotICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7Ci0g
ICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEFTU0VSVChtX2Zy
YW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOwotCi0gICAgcmV0dXJuIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290ZXIod2FudHNMYXllcik7Ci19
Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAKIGJvb2wgRnJhbWVWaWV3Ojpm
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoRnJhbWUqIHJvb3RGcmFtZUZvckZsdXNo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiAxNTAyOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDksOCArNDA5
LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBHcmFwaGljc0xh
eWVyKiBzZXRXYW50c0xheWVyRm9yVG9wT3ZlckhhbmdBcmVhKGJvb2wpIGNvbnN0OwogICAgIEdy
YXBoaWNzTGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVySGFuZ0FyZWEoYm9vbCkgY29u
c3Q7Ci0gICAgR3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZvckhlYWRlcihib29sKSBjb25z
dDsKLSAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9yRm9vdGVyKGJvb2wpIGNvbnN0
OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWlnaHQoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZp
c2lvbiAxNTAyOTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIK
KyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
QEAgLTE3NSw2ICsxNzYsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykK
ICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkKICAgICAsIG1fcmVxdWVzdGVkTGF5b3V0TWls
ZXN0b25lcygwKQorICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKKyAgICAsIG1fZm9vdGVySGVpZ2h0
KDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoZmFsc2UpCiAj
aWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQpAQCAtMTI4MCw2ICsxMjgz
LDQwIEBAIFBhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJpbGl0eVN0YXQKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQordm9pZCBQYWdlOjphZGRIZWFkZXJXaXRo
SGVpZ2h0KGludCBoZWFkZXJIZWlnaHQpCit7CisgICAgbV9oZWFkZXJIZWlnaHQgPSBoZWFkZXJI
ZWlnaHQ7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1haW5GcmFtZSgpID8gbWFpbkZy
YW1lKCktPnZpZXcoKSA6IDA7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZpZXctPnJlbmRlclZpZXcoKTsK
KyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGZyYW1lVmlldy0+
c2V0SGVhZGVySGVpZ2h0KG1faGVhZGVySGVpZ2h0KTsKKyAgICByZW5kZXJWaWV3LT5jb21wb3Np
dG9yKCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKG1faGVhZGVySGVpZ2h0KTsKK30KKwordm9pZCBQ
YWdlOjphZGRGb290ZXJXaXRoSGVpZ2h0KGludCBmb290ZXJIZWlnaHQpCit7CisgICAgbV9mb290
ZXJIZWlnaHQgPSBmb290ZXJIZWlnaHQ7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1h
aW5GcmFtZSgpID8gbWFpbkZyYW1lKCktPnZpZXcoKSA6IDA7CisgICAgaWYgKCFmcmFtZVZpZXcp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZp
ZXctPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybjsK
KworICAgIGZyYW1lVmlldy0+c2V0Rm9vdGVySGVpZ2h0KG1fZm9vdGVySGVpZ2h0KTsKKyAgICBy
ZW5kZXJWaWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyRm9yRm9vdGVyKG1fZm9vdGVySGVp
Z2h0KTsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2U6OmFkZExheW91dE1pbGVzdG9uZXMoTGF5b3V0
TWlsZXN0b25lcyBtaWxlc3RvbmVzKQogewogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3
YW50IGEgZnVuY3Rpb24gdGhhdCByZXBsYWNlcyBtX2xheW91dE1pbGVzdG9uZXMgaW5zdGVhZCBv
ZiBqdXN0IGFkZGluZyB0byBpdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNTAyOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYg
KzM1NiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVMYXlvdXRNaWxlc3RvbmVzKExheW91
dE1pbGVzdG9uZXMpOwogICAgIExheW91dE1pbGVzdG9uZXMgcmVxdWVzdGVkTGF5b3V0TWlsZXN0
b25lcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lczsgfQogCisj
aWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorICAgIHZvaWQgYWRkSGVhZGVyV2l0aEhlaWdodChp
bnQpOworICAgIHZvaWQgYWRkRm9vdGVyV2l0aEhlaWdodChpbnQpOworI2VuZGlmCisKKyAgICBp
bnQgaGVhZGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWFkZXJIZWlnaHQ7IH0KKyAgICBp
bnQgZm9vdGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9mb290ZXJIZWlnaHQ7IH0KKwogICAg
IGJvb2wgaXNDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cygpIGNvbnN0OwogICAgIHZv
aWQgc3RhcnRDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cygpOwogICAgIHZvaWQgcmVz
ZXRSZWxldmFudFBhaW50ZWRPYmplY3RDb3VudGVyKCk7CkBAIC01MDMsNiArNTExLDkgQEAgcHJp
dmF0ZToKIAogICAgIExheW91dE1pbGVzdG9uZXMgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVz
OwogCisgICAgaW50IG1faGVhZGVySGVpZ2h0OworICAgIGludCBtX2Zvb3RlckhlaWdodDsKKwog
ICAgIEhhc2hTZXQ8UmVuZGVyT2JqZWN0Kj4gbV9yZWxldmFudFVucGFpbnRlZFJlbmRlck9iamVj
dHM7CiAgICAgUmVnaW9uIG1fdG9wUmVsZXZhbnRQYWludGVkUmVnaW9uOwogICAgIFJlZ2lvbiBt
X2JvdHRvbVJlbGV2YW50UGFpbnRlZFJlZ2lvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAxNTAyOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjYzLDYgKzY2MywxMCBAQCBib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlQmFja2luCiAgICAgICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YXR0
YWNoVG9TY3JvbGxpbmdDb29yZGluYXRvcldpdGhQYXJlbnQoMCk7CiAgICAgICAgICAgICAgICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZp
ZXcoKSk7CisgICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgdXBkYXRlTGF5ZXJGb3JIZWFkZXIocGFnZS0+aGVhZGVySGVp
Z2h0KCkpOworICAgICAgICAgICAgICAgICAgICB1cGRhdGVMYXllckZvckZvb3RlcihwYWdlLT5m
b290ZXJIZWlnaHQoKSk7CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICAvLyBUaGlzIGxheWVyIGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRhbnRzIGhhdmUgY2Fj
aGVkIHJlcGFpbnRzIHJlY3RzIHRoYXQgYXJlIHJlbGF0aXZlIHRvCkBAIC0yNTYwLDYgKzI1NjQs
OSBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgaWYgKFNj
cm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdS
b290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAo
UGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCktPmRpZEFkZEhlYWRlckxheWVyKG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworCiAgICAgcmV0
dXJuIG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCk7CiB9CiAKQEAgLTI1OTEsNiArMjU5OCw5IEBAIEdy
YXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXAKICAgICBpZiAoU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRp
bmF0b3IoKSkKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXll
ckRpZENoYW5nZShtX3JlbmRlclZpZXctPmZyYW1lVmlldygpKTsKIAorICAgIGlmIChQYWdlKiBw
YWdlID0gdGhpcy0+cGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS0+ZGlk
QWRkRm9vdGVyTGF5ZXIobV9sYXllckZvckZvb3Rlci5nZXQoKSk7CisKICAgICByZXR1cm4gbV9s
YXllckZvckZvb3Rlci5nZXQoKTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwMjkw
KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MzcgQEAKKzIwMTMtMDUtMTcgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAg
ICAgIEhlYWRlcnMgYW5kIGZvb3RlcnMgd2lsbCBzb21ldGltZXMgZGlzYXBwZWFyIGFuZCByZS1h
cHBlYXIgZHVyaW5nIHBhZ2UgbG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExNjMzNgorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMzg4Njc1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIFdlYkNvcmUtbGV2
ZWwgQVBJIHRoYXQgV2ViS2l0IHVzZXMgdG8gY3JlYXRlIGEgYmFubmVyLiAKKyAgICAgICAgU3Bl
Y2lmaWNhbGx5IHRoaXMgcGF0Y2ggcmVtb3ZlcyBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JI
ZWFkZXIoKSwgd2hpY2ggY3JlYXRlZCAKKyAgICAgICAgYW5kIHJldHVybmVkIGEgbGF5ZXIuIElu
c3RlYWQsIFdLMiB3aWxsIGNhbGwgUGFnZTo6YWRkSGVhZGVyV2l0aEhlaWdodCgpLiBXaGVuIHRo
ZSAKKyAgICAgICAgbGF5ZXIgaGFzIGJlZW4gY3JlYXRlZCwgaXQgd2lsbCBjYWxsIGJhY2sgaW50
byBXSzIgdmlhIENocm9tZUNsaWVudC4gVGhpcyB3aWxsIAorICAgICAgICBhbGxvdyBXZWJDb3Jl
IHRvIHJlLWNyZWF0ZSB0aGUgaGVhZGVyL2Zvb3RlciBsYXllcnMgYXMgbmVlZGVkIHdoZW5ldmVy
IHRoZSAKKyAgICAgICAgRnJhbWVWaWV3L1JlbmRlckxheWVyQ29tcG9zaXRvciBoYXZlIGJlZW4g
ZGVzdHJveWVkIGFuZCByZWNyZWF0ZWQuCisKKyAgICAgICAgU2VuZCB0aGUgbGF5ZXJzIG92ZXIg
dG8gUGFnZUJhbm5lci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQWRk
SGVhZGVyTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZv
b3RlckxheWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50KToKKworICAgICAgICBQYWdlQmFu
bmVyOjphZGRUb1BhZ2UoKSBub3cgZG9lcyBtdWNoIGxlc3Mgd29yayBzaW5jZSBpdCBjYW7igJl0
IGdldCB0aGUgcGFyZW50IAorICAgICAgICBsYXllciByaWdodCBhd2F5LiBUaGUgd29yayB0aGF0
IGlzIHVzZWQgdG8gZG8gb25jZSBpdCBoYWQgdGhlIHBhcmVudCBsYXllciBpcyBub3cgCisgICAg
ICAgIHBlcmZvcm1lZCBpbiBkaWRBZGRQYXJlbnRMYXllcigpCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1BhZ2VCYW5uZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQmFubmVyOjpk
aWRBZGRQYXJlbnRMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5u
ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW06
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VCYW5uZXI6OmFkZFRvUGFnZSk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VCYW5uZXI6OmRpZEFkZFBhcmVudExheWVyKToKKyAgICAgICAgKFdlYktpdCk6CisK
IDIwMTMtMDUtMTcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW1dLMl0gQWRkIHN1cHBvcnQgZm9yIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQgc2V0dGluZwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMTUw
MjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5k
bGVVc2VyTWVzc2FnZUNvZGVycy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNpbmNs
dWRlICJQYWdlQmFubmVyLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVk
ZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTg3
Nyw0ICs4NzgsMTYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpc2FibGVTdWRkZW5UZXJtaQog
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaXNhYmxlU3VkZGVu
VGVybWluYXRpb24oKSk7CiB9CiAKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJM
YXllcihHcmFwaGljc0xheWVyKiBoZWFkZXJQYXJlbnQpCit7CisgICAgaWYgKFBhZ2VCYW5uZXIq
IGJhbm5lciA9IG1fcGFnZS0+aGVhZGVyUGFnZUJhbm5lcigpKQorICAgICAgICBiYW5uZXItPmRp
ZEFkZFBhcmVudExheWVyKGhlYWRlclBhcmVudCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyKiBmb290ZXJQYXJlbnQpCit7CisgICAg
aWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS0+Zm9vdGVyUGFnZUJhbm5lcigpKQorICAg
ICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGZvb3RlclBhcmVudCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxNTAy
OTApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjcsNiArMjI3LDkgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIFN0cmluZyBwbHVnSW5FeHRyYVNjcmlwdCgpIGNvbnN0IE9WRVJSSURFOwog
CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIE9WRVJSSURFOworCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRp
cDsKICAgICBtdXRhYmxlIFJlZlB0cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RG
cmFtZTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Ny
b2xsYmFyOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5u
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlQmFubmVyLmNwcAkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3
IEBACiAjaW5jbHVkZSAiUGFnZUJhbm5lci5oIgogCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApA
QCAtNTMsNiArNTQsMTAgQEAgYm9vbCBQYWdlQmFubmVyOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1v
dQogewogICAgIHJldHVybiBmYWxzZTsKIH0KKwordm9pZCBQYWdlQmFubmVyOjpkaWRBZGRQYXJl
bnRMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikKK3sKK30KICNlbmRpZgogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Q
YWdlQmFubmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1BhZ2VCYW5uZXIuaAkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUs
MTAgQEAgT0JKQ19DTEFTUyBDQUxheWVyOwogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNl
bmRpZgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBHcmFwaGljc0xheWVyOworfQorCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKQEAgLTY5LDYgKzczLDggQEAgcHVi
bGljOgogICAgIGJvb2wgbW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50Jik7CiAgICAgdm9p
ZCBkaWRDaGFuZ2VEZXZpY2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rvcik7CiAKKyAgICB2
b2lkIGRpZEFkZFBhcmVudExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKwogcHJpdmF0
ZToKICNpZiBQTEFURk9STShNQUMpCiAgICAgZXhwbGljaXQgUGFnZUJhbm5lcihDQUxheWVyICos
IGludCBoZWlnaHQsIENsaWVudCopOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGFnZUJhbm5lck1hYy5tbQkocmV2aXNpb24gMTUwMjkw
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFj
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw0NyArNTcsMjYgQEAgdm9pZCBQYWdlQmFubmVyOjph
ZGRUb1BhZ2UoVHlwZSB0eXBlLCBXZQogICAgIEFTU0VSVChtX3dlYlBhZ2UpOwogCiAgICAgc3dp
dGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIEhlYWRlcjogewotICAgICAgICBGcmFtZVZpZXcqIGZy
YW1lVmlldyA9IG1fd2ViUGFnZS0+bWFpbkZyYW1lVmlldygpOwotICAgICAgICBpZiAoIWZyYW1l
VmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBmcmFtZVZpZXctPnNldEhlYWRl
ckhlaWdodChtX2hlaWdodCk7Ci0KLSAgICAgICAgR3JhcGhpY3NMYXllciogcGFyZW50TGF5ZXIg
PSBmcmFtZVZpZXctPnNldFdhbnRzTGF5ZXJGb3JIZWFkZXIobV9sYXllcik7Ci0gICAgICAgIGlm
ICghcGFyZW50TGF5ZXIpIHsKLSAgICAgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cmVt
b3ZlTGF5b3V0TWlsZXN0b25lcyhEaWRGaXJzdEZsdXNoRm9ySGVhZGVyTGF5ZXIpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgp
LT5hZGRMYXlvdXRNaWxlc3RvbmVzKERpZEZpcnN0Rmx1c2hGb3JIZWFkZXJMYXllcik7Ci0KLSAg
ICAgICAgbV9sYXllci5nZXQoKS5ib3VuZHMgPSBDR1JlY3RNYWtlKDAsIDAsIHBhcmVudExheWVy
LT5zaXplKCkud2lkdGgoKSwgcGFyZW50TGF5ZXItPnNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAg
IFtwYXJlbnRMYXllci0+cGxhdGZvcm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCld
OwotCisgICAgY2FzZSBIZWFkZXI6CisgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+YWRk
SGVhZGVyV2l0aEhlaWdodChtX2hlaWdodCk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBj
YXNlIEZvb3RlcjogewotICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS0+
bWFpbkZyYW1lVmlldygpOwotICAgICAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBmcmFtZVZpZXctPnNldEZvb3RlckhlaWdodChtX2hlaWdodCk7Ci0K
LSAgICAgICAgR3JhcGhpY3NMYXllciogcGFyZW50TGF5ZXIgPSBmcmFtZVZpZXctPnNldFdhbnRz
TGF5ZXJGb3JGb290ZXIobV9sYXllcik7Ci0gICAgICAgIGlmICghcGFyZW50TGF5ZXIpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgbV9sYXllci5nZXQoKS5ib3VuZHMgPSBDR1JlY3RN
YWtlKDAsIDAsIHBhcmVudExheWVyLT5zaXplKCkud2lkdGgoKSwgcGFyZW50TGF5ZXItPnNpemUo
KS5oZWlnaHQoKSk7Ci0gICAgICAgIFtwYXJlbnRMYXllci0+cGxhdGZvcm1MYXllcigpIGFkZFN1
YmxheWVyOm1fbGF5ZXIuZ2V0KCldOwotCisgICAgY2FzZSBGb290ZXI6CisgICAgICAgIG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+YWRkRm9vdGVyV2l0aEhlaWdodChtX2hlaWdodCk7CiAgICAgICAg
IGJyZWFrOwotICAgIH0KICAgICBjYXNlIE5vdFNldDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgfQogfQogCit2b2lkIFBhZ2VCYW5uZXI6OmRpZEFkZFBhcmVudExheWVyKEdy
YXBoaWNzTGF5ZXIqIHBhcmVudExheWVyKQoreworICAgIGlmICghcGFyZW50TGF5ZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fbGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAw
LCBwYXJlbnRMYXllci0+c2l6ZSgpLndpZHRoKCksIHBhcmVudExheWVyLT5zaXplKCkuaGVpZ2h0
KCkpOworICAgIFtwYXJlbnRMYXllci0+cGxhdGZvcm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5
ZXIuZ2V0KCldOworfQorCiB2b2lkIFBhZ2VCYW5uZXI6OmRldGFjaEZyb21QYWdlKCkKIHsKICAg
ICBtX3R5cGUgPSBOb3RTZXQ7Cg==
</data>
<flag name="commit-queue"
          id="223560"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202146</attachid>
            <date>2013-05-17 13:30:25 -0700</date>
            <delta_ts>2013-05-17 13:45:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-8.txt</filename>
            <type>text/plain</type>
            <size>17782</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdp
bGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUtYXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAg
ICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3
NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRv
IGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92
ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisg
ICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6
OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVu
IGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRo
aXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9m
b290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgor
CisgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9sZCBGcmFtZVZpZXcgZnVuY3Rpb25zLiBB
ZGQgcmVmZXJlbmNlcyB0byBuZXcgUGFnZSAKKyAgICAgICAgZnVuY3Rpb25zLgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgIE5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIHdp
bGwgcGFzcyB0aGUgbmV3IGxheWVycyB1cCB0byBXSzIuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcik6
CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCisgICAgICAgIFJlbW92ZSBzZXRXYW50c0xheWVy
Rm9ySGVhZGVyL0Zvb3Rlci4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisKKyAgICAgICAgUGFn
ZSBub3cgY2FjaGVzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuIFdoZW4gdGhlIEZyYW1l
Vmlldy9STEMgaGF2ZSBiZWVuIAorICAgICAgICBkZXN0cm95ZWQsIGFuZCB0aGUgY2FjaGVkIGxh
eWVyL2hlaWdodCBpbmZvcm1hdGlvbiBvbiB0aG9zZSBjbGFzc2VzIGhhcyBiZWVuIGxvc3QsIAor
ICAgICAgICB0aGlzIGRhdGEgb24gUGFnZSB3aWxsIHBlcnNpc3Qgc28gdGhhdCB3ZSBjYW4gYnVp
bGQgdGhlIGxheWVycyBiYWNrIHVwLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFkZEhlYWRl
cldpdGhIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkRm9vdGVyV2l0aEhlaWdo
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoZWFk
ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9vdGVySGVpZ2h0KToKKworICAg
ICAgICBBcyBzb29uIGFzIHRoZSByb290IGdldHMgYSBiYWNraW5nLCByZWNyZWF0ZSB0aGUgaGVh
ZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGlmIAorICAgICAgICBuZWVkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorCisgICAgICAgIENhbGwgaW50byBD
aHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIFtD
dXN0b21HZXR0ZXJdIGZvciBnbG9iYWwgbmFtZWQgY29uc3RydWN0b3JzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg1OCw2ICs4NTgsOCBAQCBfX1pON1dlYkNvcmU0UGFn
ZTE2c2V0RGVmZXJzTG9hZGluZ0ViCiBfX1pON1dlYkNvcmU0UGFnZTE3d2lsbE1vdmVPZmZzY3Jl
ZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxOHJlbW92ZVNjaGVkdWxlUGFpckVOM1dURjEwUGFzc1Jl
ZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKIF9fWk43V2ViQ29yZTRQYWdlMThzZXRQYWdlU2Nh
bGVGYWN0b3JFZlJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEZvb3Rlcldp
dGhIZWlnaHRFaQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEhlYWRlcldpdGhIZWlnaHRFaQogX19a
TjdXZWJDb3JlNFBhZ2UxOWFkZExheW91dE1pbGVzdG9uZXNFagogX19aTjdXZWJDb3JlNFBhZ2Ux
OXNldFJ1YmJlckJhbmRzQXRUb3BFYgogX19aTjdXZWJDb3JlNFBhZ2UxOXZpc2l0ZWRTdGF0ZUNo
YW5nZWRFUE5TXzlQYWdlR3JvdXBFeQpAQCAtMTY1Miw4ICsxNjU0LDYgQEAgX19aTks3V2ViQ29y
ZTlGcmFtZVZpZXcxM3BhaW50QmVoYXZpb3JFdgogX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxNGRp
ZEZpcnN0TGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MTliYXNlQmFja2dyb3VuZENv
bG9yRXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MjBpc1NvZnR3YXJlUmVuZGVyYWJsZUV2Ci1f
X1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckZvb3RlckViCi1fX1pOSzdX
ZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckhlYWRlckViCiBfX1pOSzdXZWJDb3Jl
OUZyYW1lVmlldzIzZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JFdgogX19aTks3V2ViQ29yZTlGcmFt
ZVZpZXcyN3dpbmRvd0NsaXBSZWN0Rm9yRnJhbWVPd25lckVQS05TXzIxSFRNTEZyYW1lT3duZXJF
bGVtZW50RWIKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3Mjhpc0VuY2xvc2VkSW5Db21wb3NpdGlu
Z0xheWVyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTUw
MjkwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzc2LDYgKzM3Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4gPiYpIHsgfTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNl
OyB9OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIq
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciop
IHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTUwMjkwKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MDQsMjgg
KzkwNCw2IEBAIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6c2V0V2FudHNMYXllckYKICAgICBy
ZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVMYXllckZvckJvdHRvbU92ZXJo
YW5nQXJlYSh3YW50c0xheWVyKTsKIH0KIAotR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpzZXRX
YW50c0xheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikgY29uc3QKLXsKLSAgICBSZW5kZXJW
aWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwotICAgIGlmICghcmVuZGVyVmll
dykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQobV9mcmFtZSA9PSBtX2ZyYW1lLT5w
YWdlKCktPm1haW5GcmFtZSgpKTsKLQotICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9y
KCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKHdhbnRzTGF5ZXIpOwotfQotCi1HcmFwaGljc0xheWVy
KiBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JGb290ZXIoYm9vbCB3YW50c0xheWVyKSBjb25z
dAotewotICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7Ci0g
ICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEFTU0VSVChtX2Zy
YW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOwotCi0gICAgcmV0dXJuIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290ZXIod2FudHNMYXllcik7Ci19
Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAKIGJvb2wgRnJhbWVWaWV3Ojpm
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoRnJhbWUqIHJvb3RGcmFtZUZvckZsdXNo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiAxNTAyOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDksOCArNDA5
LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBHcmFwaGljc0xh
eWVyKiBzZXRXYW50c0xheWVyRm9yVG9wT3ZlckhhbmdBcmVhKGJvb2wpIGNvbnN0OwogICAgIEdy
YXBoaWNzTGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVySGFuZ0FyZWEoYm9vbCkgY29u
c3Q7Ci0gICAgR3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZvckhlYWRlcihib29sKSBjb25z
dDsKLSAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9yRm9vdGVyKGJvb2wpIGNvbnN0
OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWlnaHQoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZp
c2lvbiAxNTAyOTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIK
KyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
QEAgLTE3NSw2ICsxNzYsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykK
ICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkKICAgICAsIG1fcmVxdWVzdGVkTGF5b3V0TWls
ZXN0b25lcygwKQorICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKKyAgICAsIG1fZm9vdGVySGVpZ2h0
KDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoZmFsc2UpCiAj
aWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQpAQCAtMTI4MCw2ICsxMjgz
LDQwIEBAIFBhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJpbGl0eVN0YXQKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQordm9pZCBQYWdlOjphZGRIZWFkZXJXaXRo
SGVpZ2h0KGludCBoZWFkZXJIZWlnaHQpCit7CisgICAgbV9oZWFkZXJIZWlnaHQgPSBoZWFkZXJI
ZWlnaHQ7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1haW5GcmFtZSgpID8gbWFpbkZy
YW1lKCktPnZpZXcoKSA6IDA7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZpZXctPnJlbmRlclZpZXcoKTsK
KyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGZyYW1lVmlldy0+
c2V0SGVhZGVySGVpZ2h0KG1faGVhZGVySGVpZ2h0KTsKKyAgICByZW5kZXJWaWV3LT5jb21wb3Np
dG9yKCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKG1faGVhZGVySGVpZ2h0KTsKK30KKwordm9pZCBQ
YWdlOjphZGRGb290ZXJXaXRoSGVpZ2h0KGludCBmb290ZXJIZWlnaHQpCit7CisgICAgbV9mb290
ZXJIZWlnaHQgPSBmb290ZXJIZWlnaHQ7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1h
aW5GcmFtZSgpID8gbWFpbkZyYW1lKCktPnZpZXcoKSA6IDA7CisgICAgaWYgKCFmcmFtZVZpZXcp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZp
ZXctPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybjsK
KworICAgIGZyYW1lVmlldy0+c2V0Rm9vdGVySGVpZ2h0KG1fZm9vdGVySGVpZ2h0KTsKKyAgICBy
ZW5kZXJWaWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyRm9yRm9vdGVyKG1fZm9vdGVySGVp
Z2h0KTsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2U6OmFkZExheW91dE1pbGVzdG9uZXMoTGF5b3V0
TWlsZXN0b25lcyBtaWxlc3RvbmVzKQogewogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3
YW50IGEgZnVuY3Rpb24gdGhhdCByZXBsYWNlcyBtX2xheW91dE1pbGVzdG9uZXMgaW5zdGVhZCBv
ZiBqdXN0IGFkZGluZyB0byBpdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNTAyOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYg
KzM1NiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVMYXlvdXRNaWxlc3RvbmVzKExheW91
dE1pbGVzdG9uZXMpOwogICAgIExheW91dE1pbGVzdG9uZXMgcmVxdWVzdGVkTGF5b3V0TWlsZXN0
b25lcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lczsgfQogCisj
aWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorICAgIHZvaWQgYWRkSGVhZGVyV2l0aEhlaWdodChp
bnQpOworICAgIHZvaWQgYWRkRm9vdGVyV2l0aEhlaWdodChpbnQpOworI2VuZGlmCisKKyAgICBp
bnQgaGVhZGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWFkZXJIZWlnaHQ7IH0KKyAgICBp
bnQgZm9vdGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9mb290ZXJIZWlnaHQ7IH0KKwogICAg
IGJvb2wgaXNDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cygpIGNvbnN0OwogICAgIHZv
aWQgc3RhcnRDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cygpOwogICAgIHZvaWQgcmVz
ZXRSZWxldmFudFBhaW50ZWRPYmplY3RDb3VudGVyKCk7CkBAIC01MDMsNiArNTExLDkgQEAgcHJp
dmF0ZToKIAogICAgIExheW91dE1pbGVzdG9uZXMgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVz
OwogCisgICAgaW50IG1faGVhZGVySGVpZ2h0OworICAgIGludCBtX2Zvb3RlckhlaWdodDsKKwog
ICAgIEhhc2hTZXQ8UmVuZGVyT2JqZWN0Kj4gbV9yZWxldmFudFVucGFpbnRlZFJlbmRlck9iamVj
dHM7CiAgICAgUmVnaW9uIG1fdG9wUmVsZXZhbnRQYWludGVkUmVnaW9uOwogICAgIFJlZ2lvbiBt
X2JvdHRvbVJlbGV2YW50UGFpbnRlZFJlZ2lvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAxNTAyOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjYzLDYgKzY2MywxMiBAQCBib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlQmFja2luCiAgICAgICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YXR0
YWNoVG9TY3JvbGxpbmdDb29yZGluYXRvcldpdGhQYXJlbnQoMCk7CiAgICAgICAgICAgICAgICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZp
ZXcoKSk7CisgICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpIHsK
KyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUxh
eWVyRm9ySGVhZGVyKHBhZ2UtPmhlYWRlckhlaWdodCgpKTsKKyAgICAgICAgICAgICAgICAgICAg
dXBkYXRlTGF5ZXJGb3JGb290ZXIocGFnZS0+Zm9vdGVySGVpZ2h0KCkpOworI2VuZGlmCisgICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUaGlzIGxheWVy
IGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRhbnRzIGhhdmUgY2FjaGVkIHJlcGFpbnRzIHJlY3RzIHRo
YXQgYXJlIHJlbGF0aXZlIHRvCkBAIC0yNTYwLDYgKzI1NjYsOSBAQCBHcmFwaGljc0xheWVyKiBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAg
ICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9y
ZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBh
Z2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCktPmRpZEFkZEhlYWRlckxheWVy
KG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JIZWFkZXIu
Z2V0KCk7CiB9CiAKQEAgLTI1OTEsNiArMjYwMCw5IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXAKICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAgc2Ny
b2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShtX3JlbmRlclZp
ZXctPmZyYW1lVmlldygpKTsKIAorICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKQor
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS0+ZGlkQWRkRm9vdGVyTGF5ZXIobV9sYXll
ckZvckZvb3Rlci5nZXQoKSk7CisKICAgICByZXR1cm4gbV9sYXllckZvckZvb3Rlci5nZXQoKTsK
IH0KIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTMtMDUtMTcgIEJl
dGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIEhlYWRlcnMgYW5kIGZvb3Rl
cnMgd2lsbCBzb21ldGltZXMgZGlzYXBwZWFyIGFuZCByZS1hcHBlYXIgZHVyaW5nIHBhZ2UgbG9h
ZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjMz
NgorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
Mzg4Njc1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIFdlYkNvcmUtbGV2ZWwgQVBJIHRoYXQgV2ViS2l0IHVz
ZXMgdG8gY3JlYXRlIGEgYmFubmVyLiAKKyAgICAgICAgU3BlY2lmaWNhbGx5IHRoaXMgcGF0Y2gg
cmVtb3ZlcyBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JIZWFkZXIoKSwgd2hpY2ggY3JlYXRl
ZCAKKyAgICAgICAgYW5kIHJldHVybmVkIGEgbGF5ZXIuIEluc3RlYWQsIFdLMiB3aWxsIGNhbGwg
UGFnZTo6YWRkSGVhZGVyV2l0aEhlaWdodCgpLiBXaGVuIHRoZSAKKyAgICAgICAgbGF5ZXIgaGFz
IGJlZW4gY3JlYXRlZCwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byBXSzIgdmlhIENocm9tZUNsaWVu
dC4gVGhpcyB3aWxsIAorICAgICAgICBhbGxvdyBXZWJDb3JlIHRvIHJlLWNyZWF0ZSB0aGUgaGVh
ZGVyL2Zvb3RlciBsYXllcnMgYXMgbmVlZGVkIHdoZW5ldmVyIHRoZSAKKyAgICAgICAgRnJhbWVW
aWV3L1JlbmRlckxheWVyQ29tcG9zaXRvciBoYXZlIGJlZW4gZGVzdHJveWVkIGFuZCByZWNyZWF0
ZWQuCisKKyAgICAgICAgU2VuZCB0aGUgbGF5ZXJzIG92ZXIgdG8gUGFnZUJhbm5lci4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50KToKKworICAgICAgICBQYWdlQmFubmVyOjphZGRUb1BhZ2UoKSBub3cg
ZG9lcyBtdWNoIGxlc3Mgd29yayBzaW5jZSBpdCBjYW7igJl0IGdldCB0aGUgcGFyZW50IAorICAg
ICAgICBsYXllciByaWdodCBhd2F5LiBUaGUgd29yayB0aGF0IGlzIHVzZWQgdG8gZG8gb25jZSBp
dCBoYWQgdGhlIHBhcmVudCBsYXllciBpcyBub3cgCisgICAgICAgIHBlcmZvcm1lZCBpbiBkaWRB
ZGRQYXJlbnRMYXllcigpCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VCYW5uZXI6OmFkZFRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VCYW5uZXI6OmRpZEFk
ZFBhcmVudExheWVyKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTMtMDUtMTcgIE1hbnVlbCBS
ZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dLMl0gQWRkIHN1
cHBvcnQgZm9yIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZwpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0
aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5o
IgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJQYWdlQmFubmVyLmgiCiAj
aW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTg3Nyw0ICs4NzgsMTYgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmRpc2FibGVTdWRkZW5UZXJtaQogICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSk7CiB9CiAK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKiBo
ZWFkZXJQYXJlbnQpCit7CisgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS0+aGVh
ZGVyUGFnZUJhbm5lcigpKQorICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGhlYWRl
clBhcmVudCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcihH
cmFwaGljc0xheWVyKiBmb290ZXJQYXJlbnQpCit7CisgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5l
ciA9IG1fcGFnZS0+Zm9vdGVyUGFnZUJhbm5lcigpKQorICAgICAgICBiYW5uZXItPmRpZEFkZFBh
cmVudExheWVyKGZvb3RlclBhcmVudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxNTAyOTApCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjcsNiArMjI3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBwbHVn
SW5FeHRyYVN0eWxlU2hlZXQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBw
bHVnSW5FeHRyYVNjcmlwdCgpIGNvbnN0IE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIGRp
ZEFkZEhlYWRlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9W
RVJSSURFOworCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0
cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJv
b2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyOwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmNwcAkocmV2aXNp
b24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5u
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUGFnZUJh
bm5lci5oIgogCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NMYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTMsNiArNTQsMTAgQEAgYm9v
bCBQYWdlQmFubmVyOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1vdQogewogICAgIHJldHVybiBmYWxz
ZTsKIH0KKwordm9pZCBQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcihXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaAkocmV2
aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VC
YW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTAgQEAgT0JKQ19DTEFTUyBDQUxh
eWVyOwogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgogCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBHcmFwaGljc0xheWVyOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgV2ViUGFnZTsKQEAgLTY5LDYgKzczLDggQEAgcHVibGljOgogICAgIGJvb2wgbW91c2VF
dmVudChjb25zdCBXZWJNb3VzZUV2ZW50Jik7CiAgICAgdm9pZCBkaWRDaGFuZ2VEZXZpY2VTY2Fs
ZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rvcik7CiAKKyAgICB2b2lkIGRpZEFkZFBhcmVudExheWVy
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKwogcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMp
CiAgICAgZXhwbGljaXQgUGFnZUJhbm5lcihDQUxheWVyICosIGludCBoZWlnaHQsIENsaWVudCop
OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVy
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGFnZUJhbm5lck1hYy5tbQkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw0NyArNTcsMjYgQEAgdm9pZCBQYWdlQmFubmVyOjphZGRUb1BhZ2UoVHlwZSB0eXBlLCBX
ZQogICAgIEFTU0VSVChtX3dlYlBhZ2UpOwogCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBj
YXNlIEhlYWRlcjogewotICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS0+
bWFpbkZyYW1lVmlldygpOwotICAgICAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBmcmFtZVZpZXctPnNldEhlYWRlckhlaWdodChtX2hlaWdodCk7Ci0K
LSAgICAgICAgR3JhcGhpY3NMYXllciogcGFyZW50TGF5ZXIgPSBmcmFtZVZpZXctPnNldFdhbnRz
TGF5ZXJGb3JIZWFkZXIobV9sYXllcik7Ci0gICAgICAgIGlmICghcGFyZW50TGF5ZXIpIHsKLSAg
ICAgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cmVtb3ZlTGF5b3V0TWlsZXN0b25lcyhE
aWRGaXJzdEZsdXNoRm9ySGVhZGVyTGF5ZXIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5hZGRMYXlvdXRNaWxlc3RvbmVz
KERpZEZpcnN0Rmx1c2hGb3JIZWFkZXJMYXllcik7Ci0KLSAgICAgICAgbV9sYXllci5nZXQoKS5i
b3VuZHMgPSBDR1JlY3RNYWtlKDAsIDAsIHBhcmVudExheWVyLT5zaXplKCkud2lkdGgoKSwgcGFy
ZW50TGF5ZXItPnNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAgIFtwYXJlbnRMYXllci0+cGxhdGZv
cm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCldOwotCisgICAgY2FzZSBIZWFkZXI6
CisgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+YWRkSGVhZGVyV2l0aEhlaWdodChtX2hl
aWdodCk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEZvb3RlcjogewotICAgICAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS0+bWFpbkZyYW1lVmlldygpOwotICAg
ICAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBmcmFt
ZVZpZXctPnNldEZvb3RlckhlaWdodChtX2hlaWdodCk7Ci0KLSAgICAgICAgR3JhcGhpY3NMYXll
ciogcGFyZW50TGF5ZXIgPSBmcmFtZVZpZXctPnNldFdhbnRzTGF5ZXJGb3JGb290ZXIobV9sYXll
cik7Ci0gICAgICAgIGlmICghcGFyZW50TGF5ZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgbV9sYXllci5nZXQoKS5ib3VuZHMgPSBDR1JlY3RNYWtlKDAsIDAsIHBhcmVudExheWVy
LT5zaXplKCkud2lkdGgoKSwgcGFyZW50TGF5ZXItPnNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAg
IFtwYXJlbnRMYXllci0+cGxhdGZvcm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCld
OwotCisgICAgY2FzZSBGb290ZXI6CisgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+YWRk
Rm9vdGVyV2l0aEhlaWdodChtX2hlaWdodCk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KICAgICBj
YXNlIE5vdFNldDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCit2
b2lkIFBhZ2VCYW5uZXI6OmRpZEFkZFBhcmVudExheWVyKEdyYXBoaWNzTGF5ZXIqIHBhcmVudExh
eWVyKQoreworICAgIGlmICghcGFyZW50TGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
bGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAwLCBwYXJlbnRMYXllci0+c2l6ZSgp
LndpZHRoKCksIHBhcmVudExheWVyLT5zaXplKCkuaGVpZ2h0KCkpOworICAgIFtwYXJlbnRMYXll
ci0+cGxhdGZvcm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCldOworfQorCiB2b2lk
IFBhZ2VCYW5uZXI6OmRldGFjaEZyb21QYWdlKCkKIHsKICAgICBtX3R5cGUgPSBOb3RTZXQ7Cg==
</data>
<flag name="commit-queue"
          id="223564"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202153</attachid>
            <date>2013-05-17 13:45:59 -0700</date>
            <delta_ts>2013-05-17 16:10:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-9.txt</filename>
            <type>text/plain</type>
            <size>17782</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MDI5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDEzLTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBIZWFkZXJzIGFuZCBmb290ZXJzIHdp
bGwgc29tZXRpbWVzIGRpc2FwcGVhciBhbmQgcmUtYXBwZWFyIGR1cmluZyBwYWdlIGxvYWRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTYzMzYKKyAg
ICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTM4ODY3
NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBjaGFuZ2VzIHRoZSBXZWJDb3JlLWxldmVsIEFQSSB0aGF0IFdlYktpdCB1c2VzIHRv
IGNyZWF0ZSBhIGJhbm5lci4gCisgICAgICAgIFNwZWNpZmljYWxseSB0aGlzIHBhdGNoIHJlbW92
ZXMgRnJhbWVWaWV3OjpzZXRXYW50c0xheWVyRm9ySGVhZGVyKCksIHdoaWNoIGNyZWF0ZWQgCisg
ICAgICAgIGFuZCByZXR1cm5lZCBhIGxheWVyLiBJbnN0ZWFkLCBXSzIgd2lsbCBjYWxsIFBhZ2U6
OmFkZEhlYWRlcldpdGhIZWlnaHQoKS4gV2hlbiB0aGUgCisgICAgICAgIGxheWVyIGhhcyBiZWVu
IGNyZWF0ZWQsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gV0syIHZpYSBDaHJvbWVDbGllbnQuIFRo
aXMgd2lsbCAKKyAgICAgICAgYWxsb3cgV2ViQ29yZSB0byByZS1jcmVhdGUgdGhlIGhlYWRlci9m
b290ZXIgbGF5ZXJzIGFzIG5lZWRlZCB3aGVuZXZlciB0aGUgCisgICAgICAgIEZyYW1lVmlldy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IgaGF2ZSBiZWVuIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkLgor
CisgICAgICAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9sZCBGcmFtZVZpZXcgZnVuY3Rpb25zLiBB
ZGQgcmVmZXJlbmNlcyB0byBuZXcgUGFnZSAKKyAgICAgICAgZnVuY3Rpb25zLgorICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgIE5ldyBDaHJvbWVDbGllbnQgZnVuY3Rpb25zIHdp
bGwgcGFzcyB0aGUgbmV3IGxheWVycyB1cCB0byBXSzIuCisgICAgICAgICogcGFnZS9DaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcik6
CisgICAgICAgIChDaHJvbWVDbGllbnQpOgorCisgICAgICAgIFJlbW92ZSBzZXRXYW50c0xheWVy
Rm9ySGVhZGVyL0Zvb3Rlci4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKEZyYW1lVmlldyk6CisKKyAgICAgICAgUGFn
ZSBub3cgY2FjaGVzIHRoZSBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuIFdoZW4gdGhlIEZyYW1l
Vmlldy9STEMgaGF2ZSBiZWVuIAorICAgICAgICBkZXN0cm95ZWQsIGFuZCB0aGUgY2FjaGVkIGxh
eWVyL2hlaWdodCBpbmZvcm1hdGlvbiBvbiB0aG9zZSBjbGFzc2VzIGhhcyBiZWVuIGxvc3QsIAor
ICAgICAgICB0aGlzIGRhdGEgb24gUGFnZSB3aWxsIHBlcnNpc3Qgc28gdGhhdCB3ZSBjYW4gYnVp
bGQgdGhlIGxheWVycyBiYWNrIHVwLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFkZEhlYWRl
cldpdGhIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWRkRm9vdGVyV2l0aEhlaWdo
dCk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoZWFk
ZXJIZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Zm9vdGVySGVpZ2h0KToKKworICAg
ICAgICBBcyBzb29uIGFzIHRoZSByb290IGdldHMgYSBiYWNraW5nLCByZWNyZWF0ZSB0aGUgaGVh
ZGVyIGFuZCBmb290ZXIgbGF5ZXJzIGlmIAorICAgICAgICBuZWVkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUJhY2tpbmcpOgorCisgICAgICAgIENhbGwgaW50byBD
aHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9ySGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIpOgorCiAyMDEzLTA1LTE3ICBDaHJpc3RvcGhlIER1
bWV6ICA8Y2guZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBHZXQgcmlkIG9mIFtD
dXN0b21HZXR0ZXJdIGZvciBnbG9iYWwgbmFtZWQgY29uc3RydWN0b3JzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTg1OCw2ICs4NTgsOCBAQCBfX1pON1dlYkNvcmU0UGFn
ZTE2c2V0RGVmZXJzTG9hZGluZ0ViCiBfX1pON1dlYkNvcmU0UGFnZTE3d2lsbE1vdmVPZmZzY3Jl
ZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxOHJlbW92ZVNjaGVkdWxlUGFpckVOM1dURjEwUGFzc1Jl
ZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKIF9fWk43V2ViQ29yZTRQYWdlMThzZXRQYWdlU2Nh
bGVGYWN0b3JFZlJLTlNfOEludFBvaW50RQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEZvb3Rlcldp
dGhIZWlnaHRFaQorX19aTjdXZWJDb3JlNFBhZ2UxOWFkZEhlYWRlcldpdGhIZWlnaHRFaQogX19a
TjdXZWJDb3JlNFBhZ2UxOWFkZExheW91dE1pbGVzdG9uZXNFagogX19aTjdXZWJDb3JlNFBhZ2Ux
OXNldFJ1YmJlckJhbmRzQXRUb3BFYgogX19aTjdXZWJDb3JlNFBhZ2UxOXZpc2l0ZWRTdGF0ZUNo
YW5nZWRFUE5TXzlQYWdlR3JvdXBFeQpAQCAtMTY1Miw4ICsxNjU0LDYgQEAgX19aTks3V2ViQ29y
ZTlGcmFtZVZpZXcxM3BhaW50QmVoYXZpb3JFdgogX19aTks3V2ViQ29yZTlGcmFtZVZpZXcxNGRp
ZEZpcnN0TGF5b3V0RXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MTliYXNlQmFja2dyb3VuZENv
bG9yRXYKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3MjBpc1NvZnR3YXJlUmVuZGVyYWJsZUV2Ci1f
X1pOSzdXZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckZvb3RlckViCi1fX1pOSzdX
ZWJDb3JlOUZyYW1lVmlldzIyc2V0V2FudHNMYXllckZvckhlYWRlckViCiBfX1pOSzdXZWJDb3Jl
OUZyYW1lVmlldzIzZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JFdgogX19aTks3V2ViQ29yZTlGcmFt
ZVZpZXcyN3dpbmRvd0NsaXBSZWN0Rm9yRnJhbWVPd25lckVQS05TXzIxSFRNTEZyYW1lT3duZXJF
bGVtZW50RWIKIF9fWk5LN1dlYkNvcmU5RnJhbWVWaWV3Mjhpc0VuY2xvc2VkSW5Db21wb3NpdGlu
Z0xheWVyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkocmV2aXNpb24gMTUw
MjkwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzc2LDYgKzM3Niw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2Np
YXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4gPiYpIHsgfTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNl
OyB9OwogCisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIq
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciop
IHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgeyB9CiB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gMTUwMjkwKQorKysgU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MDQsMjgg
KzkwNCw2IEBAIEdyYXBoaWNzTGF5ZXIqIEZyYW1lVmlldzo6c2V0V2FudHNMYXllckYKICAgICBy
ZXR1cm4gcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLT51cGRhdGVMYXllckZvckJvdHRvbU92ZXJo
YW5nQXJlYSh3YW50c0xheWVyKTsKIH0KIAotR3JhcGhpY3NMYXllciogRnJhbWVWaWV3OjpzZXRX
YW50c0xheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikgY29uc3QKLXsKLSAgICBSZW5kZXJW
aWV3KiByZW5kZXJWaWV3ID0gdGhpcy0+cmVuZGVyVmlldygpOwotICAgIGlmICghcmVuZGVyVmll
dykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBBU1NFUlQobV9mcmFtZSA9PSBtX2ZyYW1lLT5w
YWdlKCktPm1haW5GcmFtZSgpKTsKLQotICAgIHJldHVybiByZW5kZXJWaWV3LT5jb21wb3NpdG9y
KCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKHdhbnRzTGF5ZXIpOwotfQotCi1HcmFwaGljc0xheWVy
KiBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JGb290ZXIoYm9vbCB3YW50c0xheWVyKSBjb25z
dAotewotICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7Ci0g
ICAgaWYgKCFyZW5kZXJWaWV3KQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEFTU0VSVChtX2Zy
YW1lID09IG1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkpOwotCi0gICAgcmV0dXJuIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS0+dXBkYXRlTGF5ZXJGb3JGb290ZXIod2FudHNMYXllcik7Ci19
Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAKIGJvb2wgRnJhbWVWaWV3Ojpm
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzRnJhbWUoRnJhbWUqIHJvb3RGcmFtZUZvckZsdXNo
KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCShyZXZpc2lvbiAxNTAyOTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MDksOCArNDA5
LDYgQEAgcHVibGljOgogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBHcmFwaGljc0xh
eWVyKiBzZXRXYW50c0xheWVyRm9yVG9wT3ZlckhhbmdBcmVhKGJvb2wpIGNvbnN0OwogICAgIEdy
YXBoaWNzTGF5ZXIqIHNldFdhbnRzTGF5ZXJGb3JCb3R0b21PdmVySGFuZ0FyZWEoYm9vbCkgY29u
c3Q7Ci0gICAgR3JhcGhpY3NMYXllciogc2V0V2FudHNMYXllckZvckhlYWRlcihib29sKSBjb25z
dDsKLSAgICBHcmFwaGljc0xheWVyKiBzZXRXYW50c0xheWVyRm9yRm9vdGVyKGJvb2wpIGNvbnN0
OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGludCBoZWFkZXJIZWlnaHQoKSBjb25zdCBPVkVSUklE
RSB7IHJldHVybiBtX2hlYWRlckhlaWdodDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZp
c2lvbiAxNTAyOTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NSw2ICs2NSw3IEBACiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIK
KyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIK
QEAgLTE3NSw2ICsxNzYsOCBAQCBQYWdlOjpQYWdlKFBhZ2VDbGllbnRzJiBwYWdlQ2xpZW50cykK
ICNlbmRpZgogICAgICwgbV9kaXNwbGF5SUQoMCkKICAgICAsIG1fcmVxdWVzdGVkTGF5b3V0TWls
ZXN0b25lcygwKQorICAgICwgbV9oZWFkZXJIZWlnaHQoMCkKKyAgICAsIG1fZm9vdGVySGVpZ2h0
KDApCiAgICAgLCBtX2lzQ291bnRpbmdSZWxldmFudFJlcGFpbnRlZE9iamVjdHMoZmFsc2UpCiAj
aWZuZGVmIE5ERUJVRwogICAgICwgbV9pc1BhaW50aW5nKGZhbHNlKQpAQCAtMTI4MCw2ICsxMjgz
LDQwIEBAIFBhZ2VWaXNpYmlsaXR5U3RhdGUgUGFnZTo6dmlzaWJpbGl0eVN0YXQKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQordm9pZCBQYWdlOjphZGRIZWFkZXJXaXRo
SGVpZ2h0KGludCBoZWFkZXJIZWlnaHQpCit7CisgICAgbV9oZWFkZXJIZWlnaHQgPSBoZWFkZXJI
ZWlnaHQ7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1haW5GcmFtZSgpID8gbWFpbkZy
YW1lKCktPnZpZXcoKSA6IDA7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVybjsK
KworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZpZXctPnJlbmRlclZpZXcoKTsK
KyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybjsKKworICAgIGZyYW1lVmlldy0+
c2V0SGVhZGVySGVpZ2h0KG1faGVhZGVySGVpZ2h0KTsKKyAgICByZW5kZXJWaWV3LT5jb21wb3Np
dG9yKCktPnVwZGF0ZUxheWVyRm9ySGVhZGVyKG1faGVhZGVySGVpZ2h0KTsKK30KKwordm9pZCBQ
YWdlOjphZGRGb290ZXJXaXRoSGVpZ2h0KGludCBmb290ZXJIZWlnaHQpCit7CisgICAgbV9mb290
ZXJIZWlnaHQgPSBmb290ZXJIZWlnaHQ7CisKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1h
aW5GcmFtZSgpID8gbWFpbkZyYW1lKCktPnZpZXcoKSA6IDA7CisgICAgaWYgKCFmcmFtZVZpZXcp
CisgICAgICAgIHJldHVybjsKKworICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSBmcmFtZVZp
ZXctPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybjsK
KworICAgIGZyYW1lVmlldy0+c2V0Rm9vdGVySGVpZ2h0KG1fZm9vdGVySGVpZ2h0KTsKKyAgICBy
ZW5kZXJWaWV3LT5jb21wb3NpdG9yKCktPnVwZGF0ZUxheWVyRm9yRm9vdGVyKG1fZm9vdGVySGVp
Z2h0KTsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2U6OmFkZExheW91dE1pbGVzdG9uZXMoTGF5b3V0
TWlsZXN0b25lcyBtaWxlc3RvbmVzKQogewogICAgIC8vIEluIHRoZSBmdXR1cmUsIHdlIG1heSB3
YW50IGEgZnVuY3Rpb24gdGhhdCByZXBsYWNlcyBtX2xheW91dE1pbGVzdG9uZXMgaW5zdGVhZCBv
ZiBqdXN0IGFkZGluZyB0byBpdC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNTAyOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzU2LDYg
KzM1NiwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVMYXlvdXRNaWxlc3RvbmVzKExheW91
dE1pbGVzdG9uZXMpOwogICAgIExheW91dE1pbGVzdG9uZXMgcmVxdWVzdGVkTGF5b3V0TWlsZXN0
b25lcygpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkTGF5b3V0TWlsZXN0b25lczsgfQogCisj
aWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorICAgIHZvaWQgYWRkSGVhZGVyV2l0aEhlaWdodChp
bnQpOworICAgIHZvaWQgYWRkRm9vdGVyV2l0aEhlaWdodChpbnQpOworI2VuZGlmCisKKyAgICBp
bnQgaGVhZGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWFkZXJIZWlnaHQ7IH0KKyAgICBp
bnQgZm9vdGVySGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9mb290ZXJIZWlnaHQ7IH0KKwogICAg
IGJvb2wgaXNDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cygpIGNvbnN0OwogICAgIHZv
aWQgc3RhcnRDb3VudGluZ1JlbGV2YW50UmVwYWludGVkT2JqZWN0cygpOwogICAgIHZvaWQgcmVz
ZXRSZWxldmFudFBhaW50ZWRPYmplY3RDb3VudGVyKCk7CkBAIC01MDMsNiArNTExLDkgQEAgcHJp
dmF0ZToKIAogICAgIExheW91dE1pbGVzdG9uZXMgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVz
OwogCisgICAgaW50IG1faGVhZGVySGVpZ2h0OworICAgIGludCBtX2Zvb3RlckhlaWdodDsKKwog
ICAgIEhhc2hTZXQ8UmVuZGVyT2JqZWN0Kj4gbV9yZWxldmFudFVucGFpbnRlZFJlbmRlck9iamVj
dHM7CiAgICAgUmVnaW9uIG1fdG9wUmVsZXZhbnRQYWludGVkUmVnaW9uOwogICAgIFJlZ2lvbiBt
X2JvdHRvbVJlbGV2YW50UGFpbnRlZFJlZ2lvbjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lvbiAxNTAyOTAp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjYzLDYgKzY2MywxMiBAQCBib29sIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlQmFja2luCiAgICAgICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+YXR0
YWNoVG9TY3JvbGxpbmdDb29yZGluYXRvcldpdGhQYXJlbnQoMCk7CiAgICAgICAgICAgICAgICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LT5mcmFtZVZp
ZXcoKSk7CisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQorICAgICAgICAgICAgICAgIGlmIChQ
YWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKSB7CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUxh
eWVyRm9ySGVhZGVyKHBhZ2UtPmhlYWRlckhlaWdodCgpKTsKKyAgICAgICAgICAgICAgICAgICAg
dXBkYXRlTGF5ZXJGb3JGb290ZXIocGFnZS0+Zm9vdGVySGVpZ2h0KCkpOworICAgICAgICAgICAg
ICAgIH0KKyNlbmRpZgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAvLyBUaGlzIGxheWVy
IGFuZCBhbGwgb2YgaXRzIGRlc2NlbmRhbnRzIGhhdmUgY2FjaGVkIHJlcGFpbnRzIHJlY3RzIHRo
YXQgYXJlIHJlbGF0aXZlIHRvCkBAIC0yNTYwLDYgKzI1NjYsOSBAQCBHcmFwaGljc0xheWVyKiBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwCiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAg
ICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9y
ZW5kZXJWaWV3LT5mcmFtZVZpZXcoKSk7CiAKKyAgICBpZiAoUGFnZSogcGFnZSA9IHRoaXMtPnBh
Z2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCktPmRpZEFkZEhlYWRlckxheWVy
KG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JIZWFkZXIu
Z2V0KCk7CiB9CiAKQEAgLTI1OTEsNiArMjYwMCw5IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXAKICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAgc2Ny
b2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShtX3JlbmRlclZp
ZXctPmZyYW1lVmlldygpKTsKIAorICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKQor
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS0+ZGlkQWRkRm9vdGVyTGF5ZXIobV9sYXll
ckZvckZvb3Rlci5nZXQoKSk7CisKICAgICByZXR1cm4gbV9sYXllckZvckZvb3Rlci5nZXQoKTsK
IH0KIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTMtMDUtMTcgIEJl
dGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIEhlYWRlcnMgYW5kIGZvb3Rl
cnMgd2lsbCBzb21ldGltZXMgZGlzYXBwZWFyIGFuZCByZS1hcHBlYXIgZHVyaW5nIHBhZ2UgbG9h
ZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNjMz
NgorICAgICAgICAtYW5kIGNvcnJlc3BvbmRpbmctCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
Mzg4Njc1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGNoYW5nZXMgdGhlIFdlYkNvcmUtbGV2ZWwgQVBJIHRoYXQgV2ViS2l0IHVz
ZXMgdG8gY3JlYXRlIGEgYmFubmVyLiAKKyAgICAgICAgU3BlY2lmaWNhbGx5IHRoaXMgcGF0Y2gg
cmVtb3ZlcyBGcmFtZVZpZXc6OnNldFdhbnRzTGF5ZXJGb3JIZWFkZXIoKSwgd2hpY2ggY3JlYXRl
ZCAKKyAgICAgICAgYW5kIHJldHVybmVkIGEgbGF5ZXIuIEluc3RlYWQsIFdLMiB3aWxsIGNhbGwg
UGFnZTo6YWRkSGVhZGVyV2l0aEhlaWdodCgpLiBXaGVuIHRoZSAKKyAgICAgICAgbGF5ZXIgaGFz
IGJlZW4gY3JlYXRlZCwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byBXSzIgdmlhIENocm9tZUNsaWVu
dC4gVGhpcyB3aWxsIAorICAgICAgICBhbGxvdyBXZWJDb3JlIHRvIHJlLWNyZWF0ZSB0aGUgaGVh
ZGVyL2Zvb3RlciBsYXllcnMgYXMgbmVlZGVkIHdoZW5ldmVyIHRoZSAKKyAgICAgICAgRnJhbWVW
aWV3L1JlbmRlckxheWVyQ29tcG9zaXRvciBoYXZlIGJlZW4gZGVzdHJveWVkIGFuZCByZWNyZWF0
ZWQuCisKKyAgICAgICAgU2VuZCB0aGUgbGF5ZXJzIG92ZXIgdG8gUGFnZUJhbm5lci4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50KToKKworICAgICAgICBQYWdlQmFubmVyOjphZGRUb1BhZ2UoKSBub3cg
ZG9lcyBtdWNoIGxlc3Mgd29yayBzaW5jZSBpdCBjYW7igJl0IGdldCB0aGUgcGFyZW50IAorICAg
ICAgICBsYXllciByaWdodCBhd2F5LiBUaGUgd29yayB0aGF0IGlzIHVzZWQgdG8gZG8gb25jZSBp
dCBoYWQgdGhlIHBhcmVudCBsYXllciBpcyBub3cgCisgICAgICAgIHBlcmZvcm1lZCBpbiBkaWRB
ZGRQYXJlbnRMYXllcigpCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvbWFjL1BhZ2VCYW5uZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VCYW5uZXI6OmFkZFRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VCYW5uZXI6OmRpZEFk
ZFBhcmVudExheWVyKToKKyAgICAgICAgKFdlYktpdCk6CisKIDIwMTMtMDUtMTcgIE1hbnVlbCBS
ZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dLMl0gQWRkIHN1
cHBvcnQgZm9yIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZwpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOYXZpZ2F0
aW9uQWN0aW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5o
IgogI2luY2x1ZGUgIkxheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJQYWdlQmFubmVyLmgiCiAj
aW5jbHVkZSAiV2ViQ29sb3JDaG9vc2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTg3Nyw0ICs4NzgsMTYgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmRpc2FibGVTdWRkZW5UZXJtaQogICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSk7CiB9CiAK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKiBo
ZWFkZXJQYXJlbnQpCit7CisgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS0+aGVh
ZGVyUGFnZUJhbm5lcigpKQorICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGhlYWRl
clBhcmVudCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcihH
cmFwaGljc0xheWVyKiBmb290ZXJQYXJlbnQpCit7CisgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5l
ciA9IG1fcGFnZS0+Zm9vdGVyUGFnZUJhbm5lcigpKQorICAgICAgICBiYW5uZXItPmRpZEFkZFBh
cmVudExheWVyKGZvb3RlclBhcmVudCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCShyZXZpc2lvbiAxNTAyOTApCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yMjcsNiArMjI3LDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBwbHVn
SW5FeHRyYVN0eWxlU2hlZXQoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0cmluZyBw
bHVnSW5FeHRyYVNjcmlwdCgpIGNvbnN0IE9WRVJSSURFOwogCisgICAgdmlydHVhbCB2b2lkIGRp
ZEFkZEhlYWRlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIE9W
RVJSSURFOworCiAgICAgU3RyaW5nIG1fY2FjaGVkVG9vbFRpcDsKICAgICBtdXRhYmxlIFJlZlB0
cjxXZWJGcmFtZT4gbV9jYWNoZWRGcmFtZVNldExhcmdlc3RGcmFtZTsKICAgICBtdXRhYmxlIGJv
b2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyOwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmNwcAkocmV2aXNp
b24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5u
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiUGFnZUJh
bm5lci5oIgogCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhp
Y3NMYXllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTMsNiArNTQsMTAgQEAgYm9v
bCBQYWdlQmFubmVyOjptb3VzZUV2ZW50KGNvbnN0IFdlYk1vdQogewogICAgIHJldHVybiBmYWxz
ZTsKIH0KKwordm9pZCBQYWdlQmFubmVyOjpkaWRBZGRQYXJlbnRMYXllcihXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikKK3sKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlQmFubmVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VCYW5uZXIuaAkocmV2
aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1BhZ2VC
YW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTAgQEAgT0JKQ19DTEFTUyBDQUxh
eWVyOwogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgogCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBHcmFwaGljc0xheWVyOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgV2ViUGFnZTsKQEAgLTY5LDYgKzczLDggQEAgcHVibGljOgogICAgIGJvb2wgbW91c2VF
dmVudChjb25zdCBXZWJNb3VzZUV2ZW50Jik7CiAgICAgdm9pZCBkaWRDaGFuZ2VEZXZpY2VTY2Fs
ZUZhY3RvcihmbG9hdCBzY2FsZUZhY3Rvcik7CiAKKyAgICB2b2lkIGRpZEFkZFBhcmVudExheWVy
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKKwogcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMp
CiAgICAgZXhwbGljaXQgUGFnZUJhbm5lcihDQUxheWVyICosIGludCBoZWlnaHQsIENsaWVudCop
OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVy
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvUGFnZUJhbm5lck1hYy5tbQkocmV2aXNpb24gMTUwMjkwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QYWdlQmFubmVyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw0NyArNTcsMjYgQEAgdm9pZCBQYWdlQmFubmVyOjphZGRUb1BhZ2UoVHlwZSB0eXBlLCBX
ZQogICAgIEFTU0VSVChtX3dlYlBhZ2UpOwogCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBj
YXNlIEhlYWRlcjogewotICAgICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS0+
bWFpbkZyYW1lVmlldygpOwotICAgICAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBmcmFtZVZpZXctPnNldEhlYWRlckhlaWdodChtX2hlaWdodCk7Ci0K
LSAgICAgICAgR3JhcGhpY3NMYXllciogcGFyZW50TGF5ZXIgPSBmcmFtZVZpZXctPnNldFdhbnRz
TGF5ZXJGb3JIZWFkZXIobV9sYXllcik7Ci0gICAgICAgIGlmICghcGFyZW50TGF5ZXIpIHsKLSAg
ICAgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cmVtb3ZlTGF5b3V0TWlsZXN0b25lcyhE
aWRGaXJzdEZsdXNoRm9ySGVhZGVyTGF5ZXIpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgbV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5hZGRMYXlvdXRNaWxlc3RvbmVz
KERpZEZpcnN0Rmx1c2hGb3JIZWFkZXJMYXllcik7Ci0KLSAgICAgICAgbV9sYXllci5nZXQoKS5i
b3VuZHMgPSBDR1JlY3RNYWtlKDAsIDAsIHBhcmVudExheWVyLT5zaXplKCkud2lkdGgoKSwgcGFy
ZW50TGF5ZXItPnNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAgIFtwYXJlbnRMYXllci0+cGxhdGZv
cm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCldOwotCisgICAgY2FzZSBIZWFkZXI6
CisgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+YWRkSGVhZGVyV2l0aEhlaWdodChtX2hl
aWdodCk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEZvb3RlcjogewotICAgICAg
ICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS0+bWFpbkZyYW1lVmlldygpOwotICAg
ICAgICBpZiAoIWZyYW1lVmlldykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBmcmFt
ZVZpZXctPnNldEZvb3RlckhlaWdodChtX2hlaWdodCk7Ci0KLSAgICAgICAgR3JhcGhpY3NMYXll
ciogcGFyZW50TGF5ZXIgPSBmcmFtZVZpZXctPnNldFdhbnRzTGF5ZXJGb3JGb290ZXIobV9sYXll
cik7Ci0gICAgICAgIGlmICghcGFyZW50TGF5ZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgbV9sYXllci5nZXQoKS5ib3VuZHMgPSBDR1JlY3RNYWtlKDAsIDAsIHBhcmVudExheWVy
LT5zaXplKCkud2lkdGgoKSwgcGFyZW50TGF5ZXItPnNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAg
IFtwYXJlbnRMYXllci0+cGxhdGZvcm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCld
OwotCisgICAgY2FzZSBGb290ZXI6CisgICAgICAgIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+YWRk
Rm9vdGVyV2l0aEhlaWdodChtX2hlaWdodCk7CiAgICAgICAgIGJyZWFrOwotICAgIH0KICAgICBj
YXNlIE5vdFNldDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogfQogCit2
b2lkIFBhZ2VCYW5uZXI6OmRpZEFkZFBhcmVudExheWVyKEdyYXBoaWNzTGF5ZXIqIHBhcmVudExh
eWVyKQoreworICAgIGlmICghcGFyZW50TGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
bGF5ZXIuZ2V0KCkuYm91bmRzID0gQ0dSZWN0TWFrZSgwLCAwLCBwYXJlbnRMYXllci0+c2l6ZSgp
LndpZHRoKCksIHBhcmVudExheWVyLT5zaXplKCkuaGVpZ2h0KCkpOworICAgIFtwYXJlbnRMYXll
ci0+cGxhdGZvcm1MYXllcigpIGFkZFN1YmxheWVyOm1fbGF5ZXIuZ2V0KCldOworfQorCiB2b2lk
IFBhZ2VCYW5uZXI6OmRldGFjaEZyb21QYWdlKCkKIHsKICAgICBtX3R5cGUgPSBOb3RTZXQ7Cg==
</data>
<flag name="review"
          id="223565"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>