<?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>74614</bug_id>
          
          <creation_ts>2011-12-15 09:08:16 -0800</creation_ts>
          <short_desc>[Chromium] Upstream the RenderTheme and ScrollbarTheme for Android</short_desc>
          <delta_ts>2012-01-05 04:22:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>66687</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peter Beverloo">peter</reporter>
          <assigned_to name="Peter Beverloo">peter</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jrg</cc>
    
    <cc>levin</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>521944</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2011-12-15 09:08:16 -0800</bug_when>
    <thetext>[Chromium] Upstream the RenderTheme and ScrollbarTheme for Android</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521975</commentid>
    <comment_count>1</comment_count>
      <attachid>119443</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2011-12-15 09:47:24 -0800</bug_when>
    <thetext>Created attachment 119443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521985</commentid>
    <comment_count>2</comment_count>
      <attachid>119443</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-15 09:55:20 -0800</bug_when>
    <thetext>Comment on attachment 119443
Patch

Attachment 119443 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10903296</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522001</commentid>
    <comment_count>3</comment_count>
      <attachid>119451</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2011-12-15 10:11:17 -0800</bug_when>
    <thetext>Created attachment 119451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524636</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2011-12-20 08:54:08 -0800</bug_when>
    <thetext>Ping. I cc&apos;ed some people who previously did reviews on RenderThemeChromiumLinux.cpp or showed up in git blame themselves, is there another person I should ask?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528782</commentid>
    <comment_count>5</comment_count>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-01-03 08:17:34 -0800</bug_when>
    <thetext>Ping again..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>528924</commentid>
    <comment_count>6</comment_count>
      <attachid>119451</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-03 11:51:11 -0800</bug_when>
    <thetext>Comment on attachment 119451
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        No new tests. (OOPS!)

We can&apos;t land a patch with this line.  You should replace it with an explanation of how this code is tested.

&gt; Source/WebCore/platform/chromium/ScrollbarThemeChromiumAndroid.cpp:78
&gt; +    // HorizontalScrollbar

Should this be an ASSERT ?

&gt; Source/WebCore/rendering/RenderThemeChromiumAndroid.cpp:48
&gt; +    static RenderTheme* rt = RenderThemeChromiumAndroid::create().leakRef();

rt =&gt; renderTheme

&gt; Source/WebCore/rendering/RenderThemeChromiumAndroid.cpp:49
&gt; +    return rt;

So, every Page as a common render theme.

&gt; Source/WebCore/rendering/RenderThemeChromiumLinux.cpp:77
&gt; +#if !OS(ANDROID)
&gt;  PassRefPtr&lt;RenderTheme&gt; RenderTheme::themeForPage(Page* page)
&gt;  {
&gt;      static RenderTheme* rt = RenderThemeChromiumLinux::create().leakRef();
&gt;      return rt;
&gt;  }
&gt; +#endif

Another option is to break this out into a separate file, but I think this is ok.  I would have added a comment referring the reader to RenderThemeChromiumAndroid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529525</commentid>
    <comment_count>7</comment_count>
      <attachid>119451</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-01-04 07:45:11 -0800</bug_when>
    <thetext>Comment on attachment 119451
Patch

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

Thank you for the review. Revised patch upcoming.

&gt;&gt; Source/WebCore/ChangeLog:17
&gt;&gt; +        No new tests. (OOPS!)
&gt; 
&gt; We can&apos;t land a patch with this line.  You should replace it with an explanation of how this code is tested.

Done.

&gt;&gt; Source/WebCore/platform/chromium/ScrollbarThemeChromiumAndroid.cpp:78
&gt;&gt; +    // HorizontalScrollbar
&gt; 
&gt; Should this be an ASSERT ?

No, this was here to emphasize that the following IntSize() return applies to horizontal scrollbars. Given that the ScrollbarOrientation enum only has two values I do not think an assert would be beneficial here.

&gt;&gt; Source/WebCore/rendering/RenderThemeChromiumAndroid.cpp:48
&gt;&gt; +    static RenderTheme* rt = RenderThemeChromiumAndroid::create().leakRef();
&gt; 
&gt; rt =&gt; renderTheme

Done.

&gt;&gt; Source/WebCore/rendering/RenderThemeChromiumAndroid.cpp:49
&gt;&gt; +    return rt;
&gt; 
&gt; So, every Page as a common render theme.

Correct.

&gt;&gt; Source/WebCore/rendering/RenderThemeChromiumLinux.cpp:77
&gt;&gt; +#endif
&gt; 
&gt; Another option is to break this out into a separate file, but I think this is ok.  I would have added a comment referring the reader to RenderThemeChromiumAndroid.

Ok. I added a comment pointing towards RTCA.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529527</commentid>
    <comment_count>8</comment_count>
      <attachid>121110</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-01-04 07:46:20 -0800</bug_when>
    <thetext>Created attachment 121110
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529529</commentid>
    <comment_count>9</comment_count>
      <attachid>121110</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-01-04 07:51:31 -0800</bug_when>
    <thetext>Comment on attachment 121110
Updated patch

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530182</commentid>
    <comment_count>10</comment_count>
      <attachid>121110</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 04:22:23 -0800</bug_when>
    <thetext>Comment on attachment 121110
Updated patch

Clearing flags on attachment: 121110

Committed r104139: &lt;http://trac.webkit.org/changeset/104139&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530183</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 04:22:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119443</attachid>
            <date>2011-12-15 09:47:24 -0800</date>
            <delta_ts>2011-12-15 10:11:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74614-20111215174722.patch</filename>
            <type>text/plain</type>
            <size>19913</size>
            <attacher name="Peter Beverloo">peter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE4ZjM3YjkwOGEzZGE3
MTI3YWYzY2NhYWQyYmEzZmYwYTVhMmFkZC4uZDUxMjcxMmUwYTkxMmY2MjI2NTJiNzQwZDY1MzEx
ODc0YjUwNzA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDExLTEyLTE1ICBQZXRl
ciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVw
c3RyZWFtIHRoZSBSZW5kZXJUaGVtZSBhbmQgU2Nyb2xsYmFyVGhlbWUgZm9yIEFuZHJvaWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjE0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBzdHJlYW0gdGhl
IFJlbmRlclRoZW1lIGFuZCBTY3JvbGxiYXJUaGVtZSBmb3IgQW5kcm9pZC4gVGhlc2UgYXJlCisg
ICAgICAgIG1vc3RseSBkZXJpdmVkIGZyb20gdGhlaXIgTGludXggdmFyaWFudHMuCisKKyAgICAg
ICAgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQgaW5oZXJpdHMgZnJvbSBSZW5kZXJUaGVtZUNo
cm9taXVtTGludXggYW5kCisgICAgICAgIG9ubHkgb3ZlcnJpZGVzIHRoZSB0aHJlZSBtZXRob2Rz
IHdoaWNoIGhhdmUgZGlmZmVyZW50IGJlaGF2aW9yLgorICAgICAgICBTY3JvbGxiYXJzIHdpbGwg
YmUgZHJhd24gaW4gdGhlIHRocmVhZGVkIGNvbXBvc2l0b3IgZm9yIEFuZHJvaWQgKHdoaWNoCisg
ICAgICAgIHdpbGwgYmUgdXBzdHJlYW1lZCBsYXRlciksIGJ1dCBmb3IgaW5jcmVhc2VkIGxheW91
dCB0ZXN0IHBhcml0eSB3ZSdsbAorICAgICAgICBtYXRjaCBDaHJvbWl1bS1MaW51eC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpzY3JvbGxiYXJUaGlja25lc3MpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OnBhaW50U2Nyb2xs
YmFyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUNocm9taXVt
QW5kcm9pZDo6c2hvdWxkQ2VudGVyT25UaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxi
YXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YnV0dG9uU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZDo6bWluaW11bVRodW1iTGVuZ3RoKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5oOiBB
ZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6flJlbmRlclRoZW1l
Q2hyb21pdW1BbmRyb2lkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1B
bmRyb2lkOjpzeXN0ZW1Db2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9t
aXVtQW5kcm9pZDo6YWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5bGUpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oOiBBZGRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Lmg6CisKIDIwMTEtMTItMTQgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29s
ZSBzaG91bGQgc2hvdyBuZXR3b3JrIG1lc3NhZ2VzIG9yaWdpbnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDI5OTBkYzdkMmExNzQ1MjZmY2Q5OTExMDlmMzYyM2RmZGM4ZDc3YzcuLmVl
NDRiMzYzMzgxMDdlZmQxNjk5ODA4MzMwNzBhMGFhN2ZkYTFjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTItMTUgIFBldGVyIEJldmVybG9vICA8
cGV0ZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gVXBzdHJlYW0gdGhlIFJl
bmRlclRoZW1lIGFuZCBTY3JvbGxiYXJUaGVtZSBmb3IgQW5kcm9pZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRTY3JvbGxiYXJDb2xvcnMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2VsZWN0aW9uQ29sb3JzKToKKwogMjAxMS0xMi0x
NCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBEYXRhYmFzZU9ic2VydmVyIG5lZWRzIHRocmVhZHNhZmUgZml4ZXMgYW5kIG90aGVyIGNsZWFu
LXVwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCA4ODYyMDNkMGFk
MGQ3NTcxMmYxMTNkOGI4MThmNzMzOGM1ZTMyOTgyLi45NTE4MGZhNjk0MjRjZDk0YjU5YWQ1Mjc3
YzlhYWVhNjJkM2U4YTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApA
QCAtMTc1MSw3ICsxNzUxLDcgQEAKICAgICAgICAgWydPUz09Im1hYyInLCB7CiAgICAgICAgICAg
J3NvdXJjZXMvJzogWwogICAgICAgICAgICAgIyBSZW5kZXJUaGVtZUNocm9taXVtU2tpYSBpcyBu
b3QgdXNlZCBvbiBtYWMgc2luY2UgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYwotICAgICAgICAgICAg
IyBkb2VzIG5vdCByZWZlcmVuY2UgdGhlIFNraWEgY29kZSB0aGF0IGlzIHVzZWQgYnkgV2luZG93
cyBhbmQgTGludXguCisgICAgICAgICAgICAjIGRvZXMgbm90IHJlZmVyZW5jZSB0aGUgU2tpYSBj
b2RlIHRoYXQgaXMgdXNlZCBieSBXaW5kb3dzLCBMaW51eCBhbmQgQW5kcm9pZC4KICAgICAgICAg
ICAgIFsnZXhjbHVkZScsICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWFcXC5jcHAk
J10sCiAgICAgICAgICAgXSwKICAgICAgICAgfV0sCkBAIC0xNzc4LDYgKzE3NzgsMTEgQEAKICAg
ICAgICAgICAgIFsnZXhjbHVkZScsICdXaW5cXC5jcHAkJ10sCiAgICAgICAgICAgXSwKICAgICAg
ICAgfV0sCisgICAgICAgIFsnT1M9PSJhbmRyb2lkIicsIHsKKyAgICAgICAgICAnc291cmNlcy8n
OiBbCisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1MaW51eFxcLmNwcCQnXSwKKyAgICAgICAgICBdLAorICAgICAgICB9XSwKICAgICAgIF0sCiAg
ICAgfSwKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDJjNmVhYjVmMjFhM2M1NmIxNGRjZDJl
YmVjYTQ1MTBjYjk5MWUxYi4uNjY0MTMzN2RlM2RkZTEwMzY4MDVkNDIzZWNjZWZmMzQ0Yjg1MzI5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzMwNCw2ICszMzA0LDggQEAKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJPdmVybGF5VXRpbGl0aWVzQ2hyb21pdW1NYWMubW0n
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW0u
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9t
aXVtLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hy
b21pdW1BbmRyb2lkLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xs
YmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUxpbnV4LmgnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1NYWMuaCcsCkBAIC00NzQy
LDYgKzQ3NDQsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQu
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL1JlbmRlclRoZW1lLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bUxpbnV4LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1MaW51eC5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bU1hYy5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZjRhOTlkYWE2NDA3ZDI2ZmMwOWIxYmNmMzU0NDM2ZTgyZmNlM2EyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVD
aHJvbWl1bUFuZHJvaWQuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaCIKKworI2lu
Y2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZl
bnQuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN1cHBvcnQuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXIu
aCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKy8vIE9uIEFuZHJvaWQsIHRoZSB0aHJlYWRlZCBjb21wb3NpdG9yIGlzIGluIGNoYXJn
ZSBvZiBkcmF3aW5nIHRoZSBzY3JvbGxiYXIsCisvLyBzbyBzZXQgdGhlIGludGVybmFsIHNjcm9s
bGJhciB0aGlja25lc3MgYW5kIGJ1dHRvbiBsZW5ndGggdG8gYmUgemVyby4KK3N0YXRpYyBjb25z
dCBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzVmFsdWUgPSAwOworc3RhdGljIGNvbnN0IGludCBidXR0
b25MZW5ndGggPSAwOworCitTY3JvbGxiYXJUaGVtZSogU2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRo
ZW1lKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFNjcm9sbGJhclRoZW1lQ2hyb21pdW1B
bmRyb2lkLCB0aGVtZSwgKCkpOworICAgIHJldHVybiAmdGhlbWU7Cit9CisKK2ludCBTY3JvbGxi
YXJUaGVtZUNocm9taXVtQW5kcm9pZDo6c2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRy
b2xTaXplIGNvbnRyb2xTaXplKQoreworICAgIGlmIChQbGF0Zm9ybVN1cHBvcnQ6OmxheW91dFRl
c3RNb2RlKCkpIHsKKyAgICAgICAgLy8gTWF0Y2ggQ2hyb21pdW0tTGludXggZm9yIER1bXBSZW5k
ZXJUcmVlLCBzbyB0aGUgbGF5b3V0IHRlc3QgcmVzdWx0cworICAgICAgICAvLyBjYW4gYmUgc2hh
cmVkLiBUaGUgd2lkdGggb2Ygc2Nyb2xsYmFyIGRvd24gYXJyb3cgc2hvdWxkIGVxdWFsIHRoZQor
ICAgICAgICAvLyB3aWR0aCBvZiB0aGUgdmVydGljYWwgc2Nyb2xsYmFyLgorICAgICAgICBJbnRT
aXplIHNjcm9sbGJhclNpemUgPSBQbGF0Zm9ybVN1cHBvcnQ6OmdldFRoZW1lUGFydFNpemUoUGxh
dGZvcm1TdXBwb3J0OjpQYXJ0U2Nyb2xsYmFyRG93bkFycm93KTsKKyAgICAgICAgcmV0dXJuIHNj
cm9sbGJhclNpemUud2lkdGgoKTsKKyAgICB9CisgICAgcmV0dXJuIHNjcm9sbGJhclRoaWNrbmVz
c1ZhbHVlOworfQorCit2b2lkIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpwYWludFNj
cm9sbGJhckJhY2tncm91bmQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBTY3JvbGxiYXIqIHNj
cm9sbGJhcikKK3sKKyAgICAvLyBQYWludCBibGFjayBiYWNrZ3JvdW5kIGluIER1bXBSZW5kZXJU
cmVlLCBvdGhlcndpc2UgdGhlIHBpeGVscyBpbiB0aGUgc2Nyb2xsYmFyIGFyZWEgZGVwZW5kCisg
ICAgLy8gb24gdGhlaXIgcHJldmlvdXMgc3RhdGUsIHdoaWNoIG1ha2VzIHRoZSBkdW1wZWQgcmVz
dWx0IHVuZGV0ZXJtaW5lZC4KKyAgICBpZiAoUGxhdGZvcm1TdXBwb3J0OjpsYXlvdXRUZXN0TW9k
ZSgpKQorICAgICAgICBjb250ZXh0LT5maWxsUmVjdChzY3JvbGxiYXItPmZyYW1lUmVjdCgpLCBD
b2xvcjo6YmxhY2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworfQorCitib29sIFNjcm9sbGJhclRo
ZW1lQ2hyb21pdW1BbmRyb2lkOjpzaG91bGRDZW50ZXJPblRodW1iKFNjcm9sbGJhciosIGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0KQoreworICAgIHJldHVybiB0cnVlOworfQorCitJbnRT
aXplIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpidXR0b25TaXplKFNjcm9sbGJhciog
c2Nyb2xsYmFyKQoreworICAgIGlmIChzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gVmVydGlj
YWxTY3JvbGxiYXIpCisgICAgICAgIHJldHVybiBJbnRTaXplKHNjcm9sbGJhclRoaWNrbmVzc1Zh
bHVlLCBidXR0b25MZW5ndGgpOworCisgICAgLy8gSG9yaXpvbnRhbFNjcm9sbGJhcgorICAgIHJl
dHVybiBJbnRTaXplKGJ1dHRvbkxlbmd0aCwgc2Nyb2xsYmFyVGhpY2tuZXNzVmFsdWUpOworfQor
CitpbnQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6Om1pbmltdW1UaHVtYkxlbmd0aChT
Y3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICByZXR1cm4gMiAqIHNjcm9sbGJhclRoaWNrbmVz
cyhzY3JvbGxiYXItPmNvbnRyb2xTaXplKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJU
aGVtZUNocm9taXVtQW5kcm9pZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDdjOTAxNjc4NmNi
MjRmODhkZmI5NGFlNGZjMjE2ZmU2ZTcwYmZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaApA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5k
cm9pZF9oCisjZGVmaW5lIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkX2gKKworI2luY2x1
ZGUgIlNjcm9sbGJhclRoZW1lQ2hyb21pdW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVt
ZUNocm9taXVtIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJUaGlja25lc3Mo
U2Nyb2xsYmFyQ29udHJvbFNpemUpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIHBh
aW50U2Nyb2xsYmFyQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxiYXIqKTsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXIqLCBjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmKTsKKyAgICB2aXJ0dWFsIEludFNpemUgYnV0dG9uU2l6ZShTY3JvbGxi
YXIqKTsKKyAgICB2aXJ0dWFsIGludCBtaW5pbXVtVGh1bWJMZW5ndGgoU2Nyb2xsYmFyKik7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjUxZWJjZjE2MTcxNDFhYTI5MTQ0NGIzYjZkNTc3YTkzNGY4NzNkZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5k
cm9pZC5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oIgorCisjaW5jbHVkZSAiQ1NTVmFs
dWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiUGFpbnRJbmZvLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
CisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIK
KyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hl
ZXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4g
UmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZCgpKTsKK30KKworUGFzc1JlZlB0cjxS
ZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKiBwYWdlKQoreworICAg
IHN0YXRpYyBSZW5kZXJUaGVtZSogcnQgPSBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6Y3Jl
YXRlKCkubGVha1JlZigpOworICAgIHJldHVybiBydDsKK30KKworUmVuZGVyVGhlbWVDaHJvbWl1
bUFuZHJvaWQ6On5SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZCgpCit7Cit9CisKK0NvbG9yIFJl
bmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpzeXN0ZW1Db2xvcihpbnQgY3NzVmFsdWVJZCkgY29u
c3QKK3sKKyAgICBpZiAoUGxhdGZvcm1TdXBwb3J0OjpsYXlvdXRUZXN0TW9kZSgpICYmIGNzc1Zh
bHVlSWQgPT0gQ1NTVmFsdWVCdXR0b25mYWNlKSB7CisgICAgICAgIC8vIE1hdGNoIENocm9taXVt
IExpbnV4JyBidXR0b24gY29sb3IgaW4gbGF5b3V0IHRlc3RzLgorICAgICAgICBzdGF0aWMgY29u
c3QgQ29sb3IgbGludXhCdXR0b25HcmF5Q29sb3IoMHhmZmRkZGRkZCk7CisgICAgICAgIHJldHVy
biBsaW51eEJ1dHRvbkdyYXlDb2xvcjsKKyAgICB9CisgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpz
eXN0ZW1Db2xvcihjc3NWYWx1ZUlkKTsKK30KKwordm9pZCBSZW5kZXJUaGVtZUNocm9taXVtQW5k
cm9pZDo6YWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRl
clN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit7CisgICAgaWYgKFBsYXRmb3JtU3VwcG9y
dDo6bGF5b3V0VGVzdE1vZGUoKSkgeworICAgICAgICAvLyBNYXRjaCBDaHJvbWl1bSBMaW51eCBz
cGluIGJ1dHRvbiBzdHlsZSBpbiBsYXlvdXQgdGVzdHMuCisgICAgICAgIC8vIEZJWE1FOiBDb25z
aWRlciByZW1vdmluZyB0aGUgY29uZGl0aW9uYWwgaWYgYSBmdXR1cmUgQW5kcm9pZCB0aGVtZSBt
YXRjaGVzIHRoaXMuCisgICAgICAgIEludFNpemUgc2l6ZSA9IFBsYXRmb3JtU3VwcG9ydDo6Z2V0
VGhlbWVQYXJ0U2l6ZShQbGF0Zm9ybVN1cHBvcnQ6OlBhcnRJbm5lclNwaW5CdXR0b24pOworCisg
ICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53aWR0aCgpLCBGaXhlZCkpOworICAg
ICAgICBzdHlsZS0+c2V0TWluV2lkdGgoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTdi
OWQ5ODg1MWI4OTZkMzM4MGIxMjFhYjJhYWRjZjVlZDBhNDdhMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oCkBA
IC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lk
X2gKKyNkZWZpbmUgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWRfaAorCisjaW5jbHVkZSAiUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQgOiBwdWJsaWMgUmVuZGVyVGhlbWVDaHJvbWl1bUxp
bnV4IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4gY3JlYXRl
KCk7CisKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKGludCBjc3NWYWxpZElkKSBjb25z
dDsKKworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RJbm5lclNwaW5CdXR0b25TdHlsZShDU1NTdHls
ZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CisKK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB+UmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQoKTsKKworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWRf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1MaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bUxpbnV4LmNwcAppbmRleCBjZjc4ZTVkZDY4ZWJjYjQ3MWFiZDgwZTQ3ZDJkN2M1YmVmNDJlNDdk
Li43ZTUxYmE1YzA1YTkxYmRhMTI3NjIwN2MwNmJhMGIzNWJhZWM0NzM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcApA
QCAtNjgsMTEgKzY4LDEzIEBAIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eDo6Y3JlYXRlKCkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbmRlclRoZW1l
Q2hyb21pdW1MaW51eCgpKTsKIH0KIAorI2lmICFPUyhBTkRST0lEKQogUGFzc1JlZlB0cjxSZW5k
ZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKiBwYWdlKQogewogICAgIHN0
YXRpYyBSZW5kZXJUaGVtZSogcnQgPSBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmNyZWF0ZSgp
LmxlYWtSZWYoKTsKICAgICByZXR1cm4gcnQ7CiB9CisjZW5kaWYKIAogUmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4OjpSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oCmluZGV4IDA5OTAw
MWRmZDcyNzE5YmU0MzQ0NDRkMmU3MmYyM2RhMzZiYzA0MDQuLjk5ZDkwMjI5YmMxYjEwNDgyODky
Y2ZhM2RjMmI0YzdiNTA1MWQ3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgKQEAgLTgzLDEwICs4MywxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbmFjdGl2ZUJhY2tncm91bmRDb2xvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlRm9yZWdyb3VuZENvbG9yKTsKIAotICAgIHBy
aXZhdGU6CisgICAgcHJvdGVjdGVkOgogICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXgo
KTsKICAgICAgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CiAKKyAgICBw
cml2YXRlOgogICAgICAgICAvLyBBIGdlbmVyYWwgbWV0aG9kIGFza2luZyBpZiBhbnkgY29udHJv
bCB0aW50aW5nIGlzIHN1cHBvcnRlZCBhdCBhbGwuCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0NvbnRyb2xUaW50cygpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKaW5kZXggNmUyNzJiOWRhZWQzOWFiOWM2NjhlMGU5YjdkNDNiN2M0N2I0
OWNmZS4uMmUwNDllZjBiZTc1OTdhZGE5NTU4YThjNzliZmE5OTc4ZTdhZjZmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjUyNyw3ICsyNTI3LDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbihib29sIGZv
cmJpZGRlbiwgY29uc3QgV2ViU3RyaW5nJgogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2Nyb2xsYmFy
Q29sb3JzKHVuc2lnbmVkIGluYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgYWN0aXZlQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW5zaWduZWQgdHJhY2tDb2xvcikgewotI2lmIE9TKFVOSVgpICYmICFP
UyhEQVJXSU4pCisjaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikgJiYgIU9TKEFORFJPSUQpCiAg
ICAgUGxhdGZvcm1UaGVtZUNocm9taXVtTGludXg6OnNldFNjcm9sbGJhckNvbG9ycyhpbmFjdGl2
ZUNvbG9yLCBhY3RpdmVDb2xvciwgdHJhY2tDb2xvcik7CiAjZW5kaWYKIH0KQEAgLTI1MzYsNyAr
MjUzNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFNlbGVjdGlvbkNvbG9ycyh1bnNpZ25lZCBh
Y3RpdmVCYWNrZ3JvdW5kQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5zaWduZWQgYWN0aXZlRm9yZWdyb3VuZENvbG9yLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlQmFja2dyb3VuZENvbG9yLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGluYWN0aXZlRm9yZWdyb3Vu
ZENvbG9yKSB7Ci0jaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikKKyNpZiBPUyhVTklYKSAmJiAh
T1MoREFSV0lOKSAmJiAhT1MoQU5EUk9JRCkKICAgICBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6
OnNldFNlbGVjdGlvbkNvbG9ycyhhY3RpdmVCYWNrZ3JvdW5kQ29sb3IsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlRm9yZWdyb3VuZENvbG9y
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluYWN0
aXZlQmFja2dyb3VuZENvbG9yLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119451</attachid>
            <date>2011-12-15 10:11:17 -0800</date>
            <delta_ts>2012-01-04 07:46:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74614-20111215181116.patch</filename>
            <type>text/plain</type>
            <size>20010</size>
            <attacher name="Peter Beverloo">peter</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE4ZjM3YjkwOGEzZGE3
MTI3YWYzY2NhYWQyYmEzZmYwYTVhMmFkZC4uZDUxMjcxMmUwYTkxMmY2MjI2NTJiNzQwZDY1MzEx
ODc0YjUwNzA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDExLTEyLTE1ICBQZXRl
ciBCZXZlcmxvbyAgPHBldGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVw
c3RyZWFtIHRoZSBSZW5kZXJUaGVtZSBhbmQgU2Nyb2xsYmFyVGhlbWUgZm9yIEFuZHJvaWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjE0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBzdHJlYW0gdGhl
IFJlbmRlclRoZW1lIGFuZCBTY3JvbGxiYXJUaGVtZSBmb3IgQW5kcm9pZC4gVGhlc2UgYXJlCisg
ICAgICAgIG1vc3RseSBkZXJpdmVkIGZyb20gdGhlaXIgTGludXggdmFyaWFudHMuCisKKyAgICAg
ICAgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQgaW5oZXJpdHMgZnJvbSBSZW5kZXJUaGVtZUNo
cm9taXVtTGludXggYW5kCisgICAgICAgIG9ubHkgb3ZlcnJpZGVzIHRoZSB0aHJlZSBtZXRob2Rz
IHdoaWNoIGhhdmUgZGlmZmVyZW50IGJlaGF2aW9yLgorICAgICAgICBTY3JvbGxiYXJzIHdpbGwg
YmUgZHJhd24gaW4gdGhlIHRocmVhZGVkIGNvbXBvc2l0b3IgZm9yIEFuZHJvaWQgKHdoaWNoCisg
ICAgICAgIHdpbGwgYmUgdXBzdHJlYW1lZCBsYXRlciksIGJ1dCBmb3IgaW5jcmVhc2VkIGxheW91
dCB0ZXN0IHBhcml0eSB3ZSdsbAorICAgICAgICBtYXRjaCBDaHJvbWl1bS1MaW51eC4KKworICAg
ICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRoZW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpzY3JvbGxiYXJUaGlja25lc3MpOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OnBhaW50U2Nyb2xs
YmFyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUNocm9taXVt
QW5kcm9pZDo6c2hvdWxkQ2VudGVyT25UaHVtYik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxi
YXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YnV0dG9uU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZDo6bWluaW11bVRodW1iTGVuZ3RoKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5oOiBB
ZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6flJlbmRlclRoZW1l
Q2hyb21pdW1BbmRyb2lkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1B
bmRyb2lkOjpzeXN0ZW1Db2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9t
aXVtQW5kcm9pZDo6YWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5bGUpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oOiBBZGRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Lmg6CisKIDIwMTEtMTItMTQgIFZzZXZvbG9kIFZsYXNv
diAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ29uc29s
ZSBzaG91bGQgc2hvdyBuZXR3b3JrIG1lc3NhZ2VzIG9yaWdpbnMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDI5OTBkYzdkMmExNzQ1MjZmY2Q5OTExMDlmMzYyM2RmZGM4ZDc3YzcuLmVl
NDRiMzYzMzgxMDdlZmQxNjk5ODA4MzMwNzBhMGFhN2ZkYTFjMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTItMTUgIFBldGVyIEJldmVybG9vICA8
cGV0ZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gVXBzdHJlYW0gdGhlIFJl
bmRlclRoZW1lIGFuZCBTY3JvbGxiYXJUaGVtZSBmb3IgQW5kcm9pZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ2MTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRTY3JvbGxiYXJDb2xvcnMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2VsZWN0aW9uQ29sb3JzKToKKwogMjAxMS0xMi0x
NCAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBEYXRhYmFzZU9ic2VydmVyIG5lZWRzIHRocmVhZHNhZmUgZml4ZXMgYW5kIG90aGVyIGNsZWFu
LXVwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCA4ODYyMDNkMGFk
MGQ3NTcxMmYxMTNkOGI4MThmNzMzOGM1ZTMyOTgyLi5hMmFmNWZlNTQ5ZWIzYzBlNTJmM2JmYWYw
OWZmNTg2NDFkNzU5YmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApA
QCAtMTc1MSw3ICsxNzUxLDcgQEAKICAgICAgICAgWydPUz09Im1hYyInLCB7CiAgICAgICAgICAg
J3NvdXJjZXMvJzogWwogICAgICAgICAgICAgIyBSZW5kZXJUaGVtZUNocm9taXVtU2tpYSBpcyBu
b3QgdXNlZCBvbiBtYWMgc2luY2UgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYwotICAgICAgICAgICAg
IyBkb2VzIG5vdCByZWZlcmVuY2UgdGhlIFNraWEgY29kZSB0aGF0IGlzIHVzZWQgYnkgV2luZG93
cyBhbmQgTGludXguCisgICAgICAgICAgICAjIGRvZXMgbm90IHJlZmVyZW5jZSB0aGUgU2tpYSBj
b2RlIHRoYXQgaXMgdXNlZCBieSBXaW5kb3dzLCBMaW51eCBhbmQgQW5kcm9pZC4KICAgICAgICAg
ICAgIFsnZXhjbHVkZScsICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWFcXC5jcHAk
J10sCiAgICAgICAgICAgXSwKICAgICAgICAgfV0sCkBAIC0xNzc4LDYgKzE3NzgsMTUgQEAKICAg
ICAgICAgICAgIFsnZXhjbHVkZScsICdXaW5cXC5jcHAkJ10sCiAgICAgICAgICAgXSwKICAgICAg
ICAgfV0sCisgICAgICAgIFsnT1M9PSJhbmRyb2lkIicsIHsKKyAgICAgICAgICAnc291cmNlcy8n
OiBbCisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1MaW51eFxcLmNwcCQnXSwKKyAgICAgICAgICBdLAorICAgICAgICB9LCB7CisgICAgICAgICAg
J3NvdXJjZXMvJzogWworICAgICAgICAgICAgWydleGNsdWRlJywgJ0FuZHJvaWRcXC5jcHAkJ10s
CisgICAgICAgICAgXSwKKyAgICAgICAgfV0sCiAgICAgICBdLAogICAgIH0sCiAgICAgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IGQyYzZlYWI1ZjIxYTNjNTZiMTRkY2QyZWJlY2E0NTEwY2I5OTFlMWIu
LjY2NDEzMzdkZTNkZGUxMDM2ODA1ZDQyM2VjY2VmZjM0NGI4NTMyOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTMzMDQsNiArMzMwNCw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
U2Nyb2xsYmFyT3ZlcmxheVV0aWxpdGllc0Nocm9taXVtTWFjLm1tJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bS5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1B
bmRyb2lkLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1l
Q2hyb21pdW1MaW51eC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9s
bGJhclRoZW1lQ2hyb21pdW1MaW51eC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTWFjLmgnLApAQCAtNDc0Miw2ICs0NzQ0LDggQEAKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5k
ZXJUaGVtZS5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFu
ZHJvaWQuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFu
ZHJvaWQuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51
eC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXgu
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9T
Y3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWY0YTk5ZGFhNjQw
N2QyNmZjMDliMWJjZjM1NDQzNmU4MmZjZTNhMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNw
cApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybUNv
bnRleHRTa2lhLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCisjaW5jbHVkZSAiVHJh
bnNmb3JtYXRpb25NYXRyaXguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBPbiBBbmRy
b2lkLCB0aGUgdGhyZWFkZWQgY29tcG9zaXRvciBpcyBpbiBjaGFyZ2Ugb2YgZHJhd2luZyB0aGUg
c2Nyb2xsYmFyLAorLy8gc28gc2V0IHRoZSBpbnRlcm5hbCBzY3JvbGxiYXIgdGhpY2tuZXNzIGFu
ZCBidXR0b24gbGVuZ3RoIHRvIGJlIHplcm8uCitzdGF0aWMgY29uc3QgaW50IHNjcm9sbGJhclRo
aWNrbmVzc1ZhbHVlID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgYnV0dG9uTGVuZ3RoID0gMDsKKwor
U2Nyb2xsYmFyVGhlbWUqIFNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCit7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZCwgdGhlbWUsICgp
KTsKKyAgICByZXR1cm4gJnRoZW1lOworfQorCitpbnQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFu
ZHJvaWQ6OnNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSBjb250cm9sU2l6
ZSkKK3sKKyAgICBpZiAoUGxhdGZvcm1TdXBwb3J0OjpsYXlvdXRUZXN0TW9kZSgpKSB7CisgICAg
ICAgIC8vIE1hdGNoIENocm9taXVtLUxpbnV4IGZvciBEdW1wUmVuZGVyVHJlZSwgc28gdGhlIGxh
eW91dCB0ZXN0IHJlc3VsdHMKKyAgICAgICAgLy8gY2FuIGJlIHNoYXJlZC4gVGhlIHdpZHRoIG9m
IHNjcm9sbGJhciBkb3duIGFycm93IHNob3VsZCBlcXVhbCB0aGUKKyAgICAgICAgLy8gd2lkdGgg
b2YgdGhlIHZlcnRpY2FsIHNjcm9sbGJhci4KKyAgICAgICAgSW50U2l6ZSBzY3JvbGxiYXJTaXpl
ID0gUGxhdGZvcm1TdXBwb3J0OjpnZXRUaGVtZVBhcnRTaXplKFBsYXRmb3JtU3VwcG9ydDo6UGFy
dFNjcm9sbGJhckRvd25BcnJvdyk7CisgICAgICAgIHJldHVybiBzY3JvbGxiYXJTaXplLndpZHRo
KCk7CisgICAgfQorICAgIHJldHVybiBzY3JvbGxiYXJUaGlja25lc3NWYWx1ZTsKK30KKwordm9p
ZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRTY3JvbGxiYXJCYWNrZ3JvdW5k
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCit7CisgICAg
Ly8gUGFpbnQgYmxhY2sgYmFja2dyb3VuZCBpbiBEdW1wUmVuZGVyVHJlZSwgb3RoZXJ3aXNlIHRo
ZSBwaXhlbHMgaW4gdGhlIHNjcm9sbGJhciBhcmVhIGRlcGVuZAorICAgIC8vIG9uIHRoZWlyIHBy
ZXZpb3VzIHN0YXRlLCB3aGljaCBtYWtlcyB0aGUgZHVtcGVkIHJlc3VsdCB1bmRldGVybWluZWQu
CisgICAgaWYgKFBsYXRmb3JtU3VwcG9ydDo6bGF5b3V0VGVzdE1vZGUoKSkKKyAgICAgICAgY29u
dGV4dC0+ZmlsbFJlY3Qoc2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSwgQ29sb3I6OmJsYWNrLCBDb2xv
clNwYWNlRGV2aWNlUkdCKTsKK30KKworYm9vbCBTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9p
ZDo6c2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXIqLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmIGV2dCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50U2l6ZSBTY3JvbGxiYXJUaGVt
ZUNocm9taXVtQW5kcm9pZDo6YnV0dG9uU2l6ZShTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAg
ICBpZiAoc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyKQorICAg
ICAgICByZXR1cm4gSW50U2l6ZShzY3JvbGxiYXJUaGlja25lc3NWYWx1ZSwgYnV0dG9uTGVuZ3Ro
KTsKKworICAgIC8vIEhvcml6b250YWxTY3JvbGxiYXIKKyAgICByZXR1cm4gSW50U2l6ZShidXR0
b25MZW5ndGgsIHNjcm9sbGJhclRoaWNrbmVzc1ZhbHVlKTsKK30KKworaW50IFNjcm9sbGJhclRo
ZW1lQ2hyb21pdW1BbmRyb2lkOjptaW5pbXVtVGh1bWJMZW5ndGgoU2Nyb2xsYmFyKiBzY3JvbGxi
YXIpCit7CisgICAgcmV0dXJuIDIgKiBzY3JvbGxiYXJUaGlja25lc3Moc2Nyb2xsYmFyLT5jb250
cm9sU2l6ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJv
aWQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hy
b21pdW1BbmRyb2lkLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA3YzkwMTY3ODZjYjI0Zjg4ZGZiOTRhZTRmYzIx
NmZlNmU3MGJmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWRfaAorI2RlZmluZSBT
Y3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZF9oCisKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVt
ZUNocm9taXVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU2Nyb2xsYmFyVGhl
bWVDaHJvbWl1bUFuZHJvaWQgOiBwdWJsaWMgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bSB7CitwdWJs
aWM6CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsYmFyVGhpY2tuZXNzKFNjcm9sbGJhckNvbnRyb2xT
aXplKTsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBwYWludFNjcm9sbGJhckJhY2tn
cm91bmQoR3JhcGhpY3NDb250ZXh0KiwgU2Nyb2xsYmFyKik7CisgICAgdmlydHVhbCBib29sIHNo
b3VsZENlbnRlck9uVGh1bWIoU2Nyb2xsYmFyKiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7
CisgICAgdmlydHVhbCBJbnRTaXplIGJ1dHRvblNpemUoU2Nyb2xsYmFyKik7CisgICAgdmlydHVh
bCBpbnQgbWluaW11bVRodW1iTGVuZ3RoKFNjcm9sbGJhciopOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1MWViY2YxNjE3
MTQxYWEyOTE0NDRiM2I2ZDU3N2E5MzRmODczZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCkBAIC0wLDAg
KzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVyVGhl
bWVDaHJvbWl1bUFuZHJvaWQuaCIKKworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKyNp
bmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIlBhaW50SW5mby5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtU3VwcG9ydC5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRl
clByb2dyZXNzLmgiCisjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCisjaW5jbHVkZSAiU2Nyb2xs
YmFyVGhlbWUuaCIKKyNpbmNsdWRlICJVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRlclRoZW1lQ2hyb21p
dW1BbmRyb2lkOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVuZGVyVGhl
bWVDaHJvbWl1bUFuZHJvaWQoKSk7Cit9CisKK1Bhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRl
clRoZW1lOjp0aGVtZUZvclBhZ2UoUGFnZSogcGFnZSkKK3sKKyAgICBzdGF0aWMgUmVuZGVyVGhl
bWUqIHJ0ID0gUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmNyZWF0ZSgpLmxlYWtSZWYoKTsK
KyAgICByZXR1cm4gcnQ7Cit9CisKK1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjp+UmVuZGVy
VGhlbWVDaHJvbWl1bUFuZHJvaWQoKQoreworfQorCitDb2xvciBSZW5kZXJUaGVtZUNocm9taXVt
QW5kcm9pZDo6c3lzdGVtQ29sb3IoaW50IGNzc1ZhbHVlSWQpIGNvbnN0Cit7CisgICAgaWYgKFBs
YXRmb3JtU3VwcG9ydDo6bGF5b3V0VGVzdE1vZGUoKSAmJiBjc3NWYWx1ZUlkID09IENTU1ZhbHVl
QnV0dG9uZmFjZSkgeworICAgICAgICAvLyBNYXRjaCBDaHJvbWl1bSBMaW51eCcgYnV0dG9uIGNv
bG9yIGluIGxheW91dCB0ZXN0cy4KKyAgICAgICAgc3RhdGljIGNvbnN0IENvbG9yIGxpbnV4QnV0
dG9uR3JheUNvbG9yKDB4ZmZkZGRkZGQpOworICAgICAgICByZXR1cm4gbGludXhCdXR0b25HcmF5
Q29sb3I7CisgICAgfQorICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoY3NzVmFs
dWVJZCk7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmFkanVzdElubmVy
U3BpbkJ1dHRvblN0eWxlKENTU1N0eWxlU2VsZWN0b3IqLCBSZW5kZXJTdHlsZSogc3R5bGUsIEVs
ZW1lbnQqKSBjb25zdAoreworICAgIGlmIChQbGF0Zm9ybVN1cHBvcnQ6OmxheW91dFRlc3RNb2Rl
KCkpIHsKKyAgICAgICAgLy8gTWF0Y2ggQ2hyb21pdW0gTGludXggc3BpbiBidXR0b24gc3R5bGUg
aW4gbGF5b3V0IHRlc3RzLgorICAgICAgICAvLyBGSVhNRTogQ29uc2lkZXIgcmVtb3ZpbmcgdGhl
IGNvbmRpdGlvbmFsIGlmIGEgZnV0dXJlIEFuZHJvaWQgdGhlbWUgbWF0Y2hlcyB0aGlzLgorICAg
ICAgICBJbnRTaXplIHNpemUgPSBQbGF0Zm9ybVN1cHBvcnQ6OmdldFRoZW1lUGFydFNpemUoUGxh
dGZvcm1TdXBwb3J0OjpQYXJ0SW5uZXJTcGluQnV0dG9uKTsKKworICAgICAgICBzdHlsZS0+c2V0
V2lkdGgoTGVuZ3RoKHNpemUud2lkdGgoKSwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldE1p
bldpZHRoKExlbmd0aChzaXplLndpZHRoKCksIEZpeGVkKSk7CisgICAgfQorfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3YjlkOTg4NTFiODk2ZDMzODBi
MTIxYWIyYWFkY2Y1ZWQwYTQ3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZF9oCisjZGVmaW5lIFJlbmRl
clRoZW1lQ2hyb21pdW1BbmRyb2lkX2gKKworI2luY2x1ZGUgIlJlbmRlclRoZW1lQ2hyb21pdW1M
aW51eC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFJlbmRlclRoZW1lQ2hyb21p
dW1BbmRyb2lkIDogcHVibGljIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpOworCisgICAgdmlydHVh
bCBDb2xvciBzeXN0ZW1Db2xvcihpbnQgY3NzVmFsaWRJZCkgY29uc3Q7CisKKyAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5bGUoQ1NTU3R5bGVTZWxlY3RvciosIFJlbmRl
clN0eWxlKiwgRWxlbWVudCopIGNvbnN0OworCitwcml2YXRlOgorICAgIHZpcnR1YWwgflJlbmRl
clRoZW1lQ2hyb21pdW1BbmRyb2lkKCk7CisKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKaW5kZXgg
Y2Y3OGU1ZGQ2OGViY2I0NzFhYmQ4MGU0N2QyZDdjNWJlZjQyZTQ3ZC4uN2U1MWJhNWMwNWE5MWJk
YTEyNzYyMDdjMDZiYTBiMzViYWVjNDczNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5jcHAKQEAgLTY4LDExICs2OCwxMyBA
QCBQYXNzUmVmUHRyPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZUNocm9taXVtTGludXg6OmNyZWF0
ZSgpCiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW5kZXJUaGVtZUNocm9taXVtTGludXgoKSk7
CiB9CiAKKyNpZiAhT1MoQU5EUk9JRCkKIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRlclRo
ZW1lOjp0aGVtZUZvclBhZ2UoUGFnZSogcGFnZSkKIHsKICAgICBzdGF0aWMgUmVuZGVyVGhlbWUq
IHJ0ID0gUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpjcmVhdGUoKS5sZWFrUmVmKCk7CiAgICAg
cmV0dXJuIHJ0OwogfQorI2VuZGlmCiAKIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6UmVuZGVy
VGhlbWVDaHJvbWl1bUxpbnV4KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTGludXguaAppbmRleCAwOTkwMDFkZmQ3MjcxOWJlNDM0NDQ0
ZDJlNzJmMjNkYTM2YmMwNDA0Li45OWQ5MDIyOWJjMWIxMDQ4Mjg5MmNmYTNkYzJiNGM3YjUwNTFk
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1MaW51eC5oCkBAIC04MywxMCArODMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5hY3RpdmVCYWNr
Z3JvdW5kQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCBpbmFjdGl2ZUZvcmVncm91bmRDb2xvcik7CiAKLSAgICBwcml2YXRlOgorICAgIHByb3Rl
Y3RlZDoKICAgICAgICAgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CiAgICAgICAgIHZpcnR1
YWwgflJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCgpOwogCisgICAgcHJpdmF0ZToKICAgICAgICAg
Ly8gQSBnZW5lcmFsIG1ldGhvZCBhc2tpbmcgaWYgYW55IGNvbnRyb2wgdGludGluZyBpcyBzdXBw
b3J0ZWQgYXQgYWxsLgogICAgICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDb250cm9sVGludHMo
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmlu
ZGV4IDZlMjcyYjlkYWVkMzlhYjljNjY4ZTBlOWI3ZDQzYjdjNDdiNDljZmUuLjJlMDQ5ZWYwYmU3
NTk3YWRhOTU1OGE4Yzc5YmZhOTk3OGU3YWY2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTI1MjcsNyArMjUyNyw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW4oYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFdl
YlN0cmluZyYKIHZvaWQgV2ViVmlld0ltcGw6OnNldFNjcm9sbGJhckNvbG9ycyh1bnNpZ25lZCBp
bmFjdGl2ZUNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGFjdGl2ZUNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIHRyYWNrQ29sb3IpIHsKLSNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKQorI2lmIE9T
KFVOSVgpICYmICFPUyhEQVJXSU4pICYmICFPUyhBTkRST0lEKQogICAgIFBsYXRmb3JtVGhlbWVD
aHJvbWl1bUxpbnV4OjpzZXRTY3JvbGxiYXJDb2xvcnMoaW5hY3RpdmVDb2xvciwgYWN0aXZlQ29s
b3IsIHRyYWNrQ29sb3IpOwogI2VuZGlmCiB9CkBAIC0yNTM2LDcgKzI1MzYsNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRTZWxlY3Rpb25Db2xvcnModW5zaWduZWQgYWN0aXZlQmFja2dyb3VuZENv
bG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2
ZUZvcmVncm91bmRDb2xvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBpbmFjdGl2ZUJhY2tncm91bmRDb2xvciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbmFjdGl2ZUZvcmVncm91bmRDb2xvcikgewotI2lmIE9T
KFVOSVgpICYmICFPUyhEQVJXSU4pCisjaWYgT1MoVU5JWCkgJiYgIU9TKERBUldJTikgJiYgIU9T
KEFORFJPSUQpCiAgICAgUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpzZXRTZWxlY3Rpb25Db2xv
cnMoYWN0aXZlQmFja2dyb3VuZENvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFjdGl2ZUZvcmVncm91bmRDb2xvciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmFjdGl2ZUJhY2tncm91bmRDb2xv
ciwK
</data>
<flag name="review"
          id="119480"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121110</attachid>
            <date>2012-01-04 07:46:20 -0800</date>
            <delta_ts>2012-01-05 04:22:23 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>theme-patch-2.patch</filename>
            <type>text/plain</type>
            <size>19411</size>
            <attacher name="Peter Beverloo">peter</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNzBiNTllLi4zNTYxZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTItMDEtMDQgIFBldGVyIEJldmVybG9vICA8cGV0ZXJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtDaHJvbWl1bV0gVXBzdHJlYW0gdGhlIFJlbmRlclRoZW1lIGFuZCBTY3JvbGxiYXJU
aGVtZSBmb3IgQW5kcm9pZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQ2MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcHN0cmVhbSB0aGUgUmVuZGVyVGhlbWUgYW5kIFNjcm9sbGJhclRoZW1lIGZvciBB
bmRyb2lkLiBUaGVzZSBhcmUKKyAgICAgICAgbW9zdGx5IGRlcml2ZWQgZnJvbSB0aGVpciBMaW51
eCB2YXJpYW50cy4KKworICAgICAgICBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZCBpbmhlcml0
cyBmcm9tIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eCBhbmQKKyAgICAgICAgb25seSBvdmVycmlk
ZXMgdGhlIHRocmVlIG1ldGhvZHMgd2hpY2ggaGF2ZSBkaWZmZXJlbnQgYmVoYXZpb3IuCisgICAg
ICAgIFNjcm9sbGJhcnMgd2lsbCBiZSBkcmF3biBpbiB0aGUgdGhyZWFkZWQgY29tcG9zaXRvciBm
b3IgQW5kcm9pZCAod2hpY2gKKyAgICAgICAgd2lsbCBiZSB1cHN0cmVhbWVkIGxhdGVyKSwgYnV0
IGZvciBpbmNyZWFzZWQgbGF5b3V0IHRlc3QgcGFyaXR5IHdlJ2xsCisgICAgICAgIG1hdGNoIENo
cm9taXVtLUxpbnV4LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGhpcyBjb2RlIHdpbGwgYmUg
ZXhlcmNpc2VkIGJ5IGV4aXN0aW5nIGxheW91dCB0ZXN0cywgYW5kCisgICAgICAgIGJ5IG1hbnVh
bGx5IHZlcmlmeWluZyB0aGF0IHRoZW1lIHBhcnRzIHJlbmRlciBhcyBleHBlY3RlZC4KKworICAg
ICAgICAqIFdlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9p
ZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWU6Om5hdGl2ZVRo
ZW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpz
Y3JvbGxiYXJUaGlja25lc3MpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bUFuZHJvaWQ6OnBhaW50U2Nyb2xsYmFyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZDo6c2hvdWxkQ2VudGVyT25UaHVtYik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YnV0dG9uU2l6
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZDo6bWlu
aW11bVRodW1iTGVuZ3RoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJU
aGVtZUNocm9taXVtQW5kcm9pZC5oOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lQ2hyb21pdW1BbmRyb2lkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWU6OnRoZW1lRm9yUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9t
aXVtQW5kcm9pZDo6flJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpzeXN0ZW1Db2xvcik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YWRqdXN0SW5uZXJTcGluQnV0dG9u
U3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5o
OiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4Lmg6CisKIDIw
MTItMDEtMDMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBIVE1M
Q29uc3RydWN0aW9uU2l0ZTo6YXR0YWNoIHNob3VsZG4ndCByZXR1cm4gYSB2YWx1ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAppbmRleCBlNzljNzk4Li5hMjRiNDQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cApAQCAtMTc3MSw3ICsxNzcxLDcgQEAK
ICAgICAgICAgWydPUz09Im1hYyInLCB7CiAgICAgICAgICAgJ3NvdXJjZXMvJzogWwogICAgICAg
ICAgICAgIyBSZW5kZXJUaGVtZUNocm9taXVtU2tpYSBpcyBub3QgdXNlZCBvbiBtYWMgc2luY2Ug
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYwotICAgICAgICAgICAgIyBkb2VzIG5vdCByZWZlcmVuY2Ug
dGhlIFNraWEgY29kZSB0aGF0IGlzIHVzZWQgYnkgV2luZG93cyBhbmQgTGludXguCisgICAgICAg
ICAgICAjIGRvZXMgbm90IHJlZmVyZW5jZSB0aGUgU2tpYSBjb2RlIHRoYXQgaXMgdXNlZCBieSBX
aW5kb3dzLCBMaW51eCBhbmQgQW5kcm9pZC4KICAgICAgICAgICAgIFsnZXhjbHVkZScsICdyZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWFcXC5jcHAkJ10sCiAgICAgICAgICAgXSwKICAg
ICAgICAgfV0sCkBAIC0xNzk4LDYgKzE3OTgsMTUgQEAKICAgICAgICAgICAgIFsnZXhjbHVkZScs
ICdXaW5cXC5jcHAkJ10sCiAgICAgICAgICAgXSwKICAgICAgICAgfV0sCisgICAgICAgIFsnT1M9
PSJhbmRyb2lkIicsIHsKKyAgICAgICAgICAnc291cmNlcy8nOiBbCisgICAgICAgICAgICBbJ2lu
Y2x1ZGUnLCAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eFxcLmNwcCQnXSwKKyAg
ICAgICAgICBdLAorICAgICAgICB9LCB7CisgICAgICAgICAgJ3NvdXJjZXMvJzogWworICAgICAg
ICAgICAgWydleGNsdWRlJywgJ0FuZHJvaWRcXC5jcHAkJ10sCisgICAgICAgICAgXSwKKyAgICAg
ICAgfV0sCiAgICAgICBdLAogICAgIH0sCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDgzMDVm
Y2UuLjc3MmNjNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMDksNiArMzMwOSw4IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU1NMS2V5R2VuZXJhdG9yQ2hyb21pdW0uY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1
bS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9t
aXVtQW5kcm9pZC5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJh
clRoZW1lQ2hyb21pdW1BbmRyb2lkLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1MaW51eC5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtTWFjLmgnLApAQCAtNDc2Miw2
ICs0NzY0LDggQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50Lmgn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bUFuZHJvaWQuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1MaW51eC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTGludXguaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1NYWMuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWRiZWZhNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1Njcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRy
b2lkLmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgiCisKKyNpbmNsdWRlICJQbGF0
Zm9ybUNvbnRleHRTa2lhLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCisjaW5jbHVk
ZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBP
biBBbmRyb2lkLCB0aGUgdGhyZWFkZWQgY29tcG9zaXRvciBpcyBpbiBjaGFyZ2Ugb2YgZHJhd2lu
ZyB0aGUgc2Nyb2xsYmFyLAorLy8gc28gc2V0IHRoZSBpbnRlcm5hbCBzY3JvbGxiYXIgdGhpY2tu
ZXNzIGFuZCBidXR0b24gbGVuZ3RoIHRvIGJlIHplcm8uCitzdGF0aWMgY29uc3QgaW50IHNjcm9s
bGJhclRoaWNrbmVzc1ZhbHVlID0gMDsKK3N0YXRpYyBjb25zdCBpbnQgYnV0dG9uTGVuZ3RoID0g
MDsKKworU2Nyb2xsYmFyVGhlbWUqIFNjcm9sbGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZCwgdGhl
bWUsICgpKTsKKyAgICByZXR1cm4gJnRoZW1lOworfQorCitpbnQgU2Nyb2xsYmFyVGhlbWVDaHJv
bWl1bUFuZHJvaWQ6OnNjcm9sbGJhclRoaWNrbmVzcyhTY3JvbGxiYXJDb250cm9sU2l6ZSBjb250
cm9sU2l6ZSkKK3sKKyAgICBpZiAoUGxhdGZvcm1TdXBwb3J0OjpsYXlvdXRUZXN0TW9kZSgpKSB7
CisgICAgICAgIC8vIE1hdGNoIENocm9taXVtLUxpbnV4IGZvciBEdW1wUmVuZGVyVHJlZSwgc28g
dGhlIGxheW91dCB0ZXN0IHJlc3VsdHMKKyAgICAgICAgLy8gY2FuIGJlIHNoYXJlZC4gVGhlIHdp
ZHRoIG9mIHNjcm9sbGJhciBkb3duIGFycm93IHNob3VsZCBlcXVhbCB0aGUKKyAgICAgICAgLy8g
d2lkdGggb2YgdGhlIHZlcnRpY2FsIHNjcm9sbGJhci4KKyAgICAgICAgSW50U2l6ZSBzY3JvbGxi
YXJTaXplID0gUGxhdGZvcm1TdXBwb3J0OjpnZXRUaGVtZVBhcnRTaXplKFBsYXRmb3JtU3VwcG9y
dDo6UGFydFNjcm9sbGJhckRvd25BcnJvdyk7CisgICAgICAgIHJldHVybiBzY3JvbGxiYXJTaXpl
LndpZHRoKCk7CisgICAgfQorICAgIHJldHVybiBzY3JvbGxiYXJUaGlja25lc3NWYWx1ZTsKK30K
Kwordm9pZCBTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRTY3JvbGxiYXJCYWNr
Z3JvdW5kKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgU2Nyb2xsYmFyKiBzY3JvbGxiYXIpCit7
CisgICAgLy8gUGFpbnQgYmxhY2sgYmFja2dyb3VuZCBpbiBEdW1wUmVuZGVyVHJlZSwgb3RoZXJ3
aXNlIHRoZSBwaXhlbHMgaW4gdGhlIHNjcm9sbGJhciBhcmVhIGRlcGVuZAorICAgIC8vIG9uIHRo
ZWlyIHByZXZpb3VzIHN0YXRlLCB3aGljaCBtYWtlcyB0aGUgZHVtcGVkIHJlc3VsdCB1bmRldGVy
bWluZWQuCisgICAgaWYgKFBsYXRmb3JtU3VwcG9ydDo6bGF5b3V0VGVzdE1vZGUoKSkKKyAgICAg
ICAgY29udGV4dC0+ZmlsbFJlY3Qoc2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSwgQ29sb3I6OmJsYWNr
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKK30KKworYm9vbCBTY3JvbGxiYXJUaGVtZUNocm9taXVt
QW5kcm9pZDo6c2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXIqLCBjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmIGV2dCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50U2l6ZSBTY3JvbGxi
YXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YnV0dG9uU2l6ZShTY3JvbGxiYXIqIHNjcm9sbGJhcikK
K3sKKyAgICBpZiAoc2Nyb2xsYmFyLT5vcmllbnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFy
KQorICAgICAgICByZXR1cm4gSW50U2l6ZShzY3JvbGxiYXJUaGlja25lc3NWYWx1ZSwgYnV0dG9u
TGVuZ3RoKTsKKworICAgIHJldHVybiBJbnRTaXplKGJ1dHRvbkxlbmd0aCwgc2Nyb2xsYmFyVGhp
Y2tuZXNzVmFsdWUpOworfQorCitpbnQgU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6Om1p
bmltdW1UaHVtYkxlbmd0aChTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICByZXR1cm4gMiAq
IHNjcm9sbGJhclRoaWNrbmVzcyhzY3JvbGxiYXItPmNvbnRyb2xTaXplKCkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9TY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMDdjOTAxCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFyVGhlbWVDaHJvbWl1bUFu
ZHJvaWQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTY3JvbGxiYXJUaGVtZUNo
cm9taXVtQW5kcm9pZF9oCisjZGVmaW5lIFNjcm9sbGJhclRoZW1lQ2hyb21pdW1BbmRyb2lkX2gK
KworI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ2hyb21pdW0uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBTY3JvbGxiYXJUaGVtZUNocm9taXVtQW5kcm9pZCA6IHB1YmxpYyBTY3Jv
bGxiYXJUaGVtZUNocm9taXVtIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGludCBzY3JvbGxiYXJU
aGlja25lc3MoU2Nyb2xsYmFyQ29udHJvbFNpemUpOworCitwcm90ZWN0ZWQ6CisgICAgdmlydHVh
bCB2b2lkIHBhaW50U2Nyb2xsYmFyQmFja2dyb3VuZChHcmFwaGljc0NvbnRleHQqLCBTY3JvbGxi
YXIqKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXIqLCBj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKKyAgICB2aXJ0dWFsIEludFNpemUgYnV0dG9uU2l6
ZShTY3JvbGxiYXIqKTsKKyAgICB2aXJ0dWFsIGludCBtaW5pbXVtVGh1bWJMZW5ndGgoU2Nyb2xs
YmFyKik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQ1ZmMyMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5k
cm9pZC5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oIgorCisjaW5jbHVkZSAiQ1NTVmFs
dWVLZXl3b3Jkcy5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisjaW5jbHVkZSAiUGFpbnRJbmZvLmgi
CisjaW5jbHVkZSAiUGxhdGZvcm1TdXBwb3J0LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0Lmgi
CisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIK
KyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hl
ZXRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxSZW5kZXJUaGVtZT4g
UmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZCgpKTsKK30KKworUGFzc1JlZlB0cjxS
ZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKiBwYWdlKQoreworICAg
IHN0YXRpYyBSZW5kZXJUaGVtZSogcmVuZGVyVGhlbWUgPSBSZW5kZXJUaGVtZUNocm9taXVtQW5k
cm9pZDo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiByZW5kZXJUaGVtZTsKK30KKwor
UmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6On5SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZCgp
Cit7Cit9CisKK0NvbG9yIFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpzeXN0ZW1Db2xvcihp
bnQgY3NzVmFsdWVJZCkgY29uc3QKK3sKKyAgICBpZiAoUGxhdGZvcm1TdXBwb3J0OjpsYXlvdXRU
ZXN0TW9kZSgpICYmIGNzc1ZhbHVlSWQgPT0gQ1NTVmFsdWVCdXR0b25mYWNlKSB7CisgICAgICAg
IC8vIE1hdGNoIENocm9taXVtIExpbnV4JyBidXR0b24gY29sb3IgaW4gbGF5b3V0IHRlc3RzLgor
ICAgICAgICBzdGF0aWMgY29uc3QgQ29sb3IgbGludXhCdXR0b25HcmF5Q29sb3IoMHhmZmRkZGRk
ZCk7CisgICAgICAgIHJldHVybiBsaW51eEJ1dHRvbkdyYXlDb2xvcjsKKyAgICB9CisgICAgcmV0
dXJuIFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihjc3NWYWx1ZUlkKTsKK30KKwordm9pZCBSZW5k
ZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5bGUoQ1NTU3R5
bGVTZWxlY3RvciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit7CisgICAg
aWYgKFBsYXRmb3JtU3VwcG9ydDo6bGF5b3V0VGVzdE1vZGUoKSkgeworICAgICAgICAvLyBNYXRj
aCBDaHJvbWl1bSBMaW51eCBzcGluIGJ1dHRvbiBzdHlsZSBpbiBsYXlvdXQgdGVzdHMuCisgICAg
ICAgIC8vIEZJWE1FOiBDb25zaWRlciByZW1vdmluZyB0aGUgY29uZGl0aW9uYWwgaWYgYSBmdXR1
cmUgQW5kcm9pZCB0aGVtZSBtYXRjaGVzIHRoaXMuCisgICAgICAgIEludFNpemUgc2l6ZSA9IFBs
YXRmb3JtU3VwcG9ydDo6Z2V0VGhlbWVQYXJ0U2l6ZShQbGF0Zm9ybVN1cHBvcnQ6OlBhcnRJbm5l
clNwaW5CdXR0b24pOworCisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc2l6ZS53aWR0
aCgpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0TWluV2lkdGgoTGVuZ3RoKHNpemUud2lk
dGgoKSwgRml4ZWQpKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9p
ZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lk
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTdiOWQ5OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5k
cm9pZC5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFJlbmRlclRoZW1lQ2hyb21p
dW1BbmRyb2lkX2gKKyNkZWZpbmUgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWRfaAorCisjaW5j
bHVkZSAiUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQgOiBwdWJsaWMgUmVuZGVyVGhlbWVD
aHJvbWl1bUxpbnV4IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW5kZXJUaGVt
ZT4gY3JlYXRlKCk7CisKKyAgICB2aXJ0dWFsIENvbG9yIHN5c3RlbUNvbG9yKGludCBjc3NWYWxp
ZElkKSBjb25zdDsKKworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RJbm5lclNwaW5CdXR0b25TdHls
ZShDU1NTdHlsZVNlbGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CisKK3By
aXZhdGU6CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQoKTsKKworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUmVuZGVyVGhlbWVDaHJvbWl1
bUFuZHJvaWRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1MaW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDaHJvbWl1bUxpbnV4LmNwcAppbmRleCBjZjc4ZTVkLi5kNGVkMmExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmNwcApA
QCAtNjgsMTEgKzY4LDE0IEBAIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eDo6Y3JlYXRlKCkKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbmRlclRoZW1l
Q2hyb21pdW1MaW51eCgpKTsKIH0KIAorLy8gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZSBmb3Ig
QW5kcm9pZCBpcyBkZWZpbmVkIGluIFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcC4KKyNp
ZiAhT1MoQU5EUk9JRCkKIFBhc3NSZWZQdHI8UmVuZGVyVGhlbWU+IFJlbmRlclRoZW1lOjp0aGVt
ZUZvclBhZ2UoUGFnZSogcGFnZSkKIHsKICAgICBzdGF0aWMgUmVuZGVyVGhlbWUqIHJ0ID0gUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4OjpjcmVhdGUoKS5sZWFrUmVmKCk7CiAgICAgcmV0dXJuIHJ0
OwogfQorI2VuZGlmCiAKIFJlbmRlclRoZW1lQ2hyb21pdW1MaW51eDo6UmVuZGVyVGhlbWVDaHJv
bWl1bUxpbnV4KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTGludXguaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtTGludXguaAppbmRleCAwOTkwMDFkLi45OWQ5MDIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUxpbnV4LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1MaW51eC5oCkBAIC04
MywxMCArODMsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3IsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmFjdGl2ZUZvcmVn
cm91bmRDb2xvcik7CiAKLSAgICBwcml2YXRlOgorICAgIHByb3RlY3RlZDoKICAgICAgICAgUmVu
ZGVyVGhlbWVDaHJvbWl1bUxpbnV4KCk7CiAgICAgICAgIHZpcnR1YWwgflJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eCgpOwogCisgICAgcHJpdmF0ZToKICAgICAgICAgLy8gQSBnZW5lcmFsIG1ldGhv
ZCBhc2tpbmcgaWYgYW55IGNvbnRyb2wgdGludGluZyBpcyBzdXBwb3J0ZWQgYXQgYWxsLgogICAg
ICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNDb250cm9sVGludHMoKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCBhNDYwZGU2Li5lMTgyYmYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTEyLTE1ICBQZXRlciBCZXZlcmxvbyAg
PHBldGVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFVwc3RyZWFtIHRoZSBS
ZW5kZXJUaGVtZSBhbmQgU2Nyb2xsYmFyVGhlbWUgZm9yIEFuZHJvaWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjE0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0U2Nyb2xsYmFyQ29sb3JzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNlbGVjdGlvbkNvbG9ycyk6CisKIDIwMTItMDEt
MDMgIEthcmwgS29zY2hlciAgPHN1cGVyc2F0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBHaXZl
IGVtYmVkZGVycyBhIGNoYW5jZSB0byBoYW5kbGUgcG9zdE1lc3NhZ2UgY2FsbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAyNDc1MWUzLi5hZGE2ODJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0yNTI4
LDcgKzI1MjgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlk
ZGVuKGJvb2wgZm9yYmlkZGVuLCBjb25zdCBXZWJTdHJpbmcmCiB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRTY3JvbGxiYXJDb2xvcnModW5zaWduZWQgaW5hY3RpdmVDb2xvciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVDb2xvciwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja0NvbG9yKSB7Ci0jaWYgT1Mo
VU5JWCkgJiYgIU9TKERBUldJTikKKyNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKSAmJiAhT1Mo
QU5EUk9JRCkKICAgICBQbGF0Zm9ybVRoZW1lQ2hyb21pdW1MaW51eDo6c2V0U2Nyb2xsYmFyQ29s
b3JzKGluYWN0aXZlQ29sb3IsIGFjdGl2ZUNvbG9yLCB0cmFja0NvbG9yKTsKICNlbmRpZgogfQpA
QCAtMjUzNyw3ICsyNTM3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2VsZWN0aW9uQ29sb3Jz
KHVuc2lnbmVkIGFjdGl2ZUJhY2tncm91bmRDb2xvciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVGb3JlZ3JvdW5kQ29sb3IsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5hY3RpdmVCYWNrZ3JvdW5kQ29s
b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW5hY3Rp
dmVGb3JlZ3JvdW5kQ29sb3IpIHsKLSNpZiBPUyhVTklYKSAmJiAhT1MoREFSV0lOKQorI2lmIE9T
KFVOSVgpICYmICFPUyhEQVJXSU4pICYmICFPUyhBTkRST0lEKQogICAgIFJlbmRlclRoZW1lQ2hy
b21pdW1MaW51eDo6c2V0U2VsZWN0aW9uQ29sb3JzKGFjdGl2ZUJhY2tncm91bmRDb2xvciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVGb3Jl
Z3JvdW5kQ29sb3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5hY3RpdmVCYWNrZ3JvdW5kQ29sb3IsCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>