<?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>66430</bug_id>
          
          <creation_ts>2011-08-17 16:46:02 -0700</creation_ts>
          <short_desc>[chromium] Remove LayerRendererChromium references from the LayerChromium tree</short_desc>
          <delta_ts>2011-09-02 10:35:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>
          <dependson>66065</dependson>
    
    <dependson>66432</dependson>
    
    <dependson>66433</dependson>
    
    <dependson>66434</dependson>
    
    <dependson>66435</dependson>
    
    <dependson>66439</dependson>
    
    <dependson>66807</dependson>
          <blocked>67438</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="Adrienne Walker">enne</assigned_to>
          <cc>enne</cc>
    
    <cc>husky</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>452725</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-17 16:46:02 -0700</bug_when>
    <thetext>LayerRendererChromium is a compositor thread-side class that currently both LayerChromium- and CCLayerImpl-derived classes access, mostly to get at the context and settings.  LayerChromium::layerRenderer() and LayerChromium::layerRendererContext() should both be removed, once alternate functionality is put in place for all of the LayerChromium-derived classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460705</commentid>
    <comment_count>1</comment_count>
      <attachid>106011</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-09-01 12:46:27 -0700</bug_when>
    <thetext>Created attachment 106011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460708</commentid>
    <comment_count>2</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-09-01 12:48:26 -0700</bug_when>
    <thetext>This needs bug 66807 to land before this patch will apply, so leaving the review flag off.

nduca: I&apos;d love if you could sanity check what I did in WebGLLayerChromium to punch through the compositor context in the single-threaded case.  I used a bunch of functions that looked like they were temporary and would eventually go away.  If you have a better idea about how to do this, I&apos;ll take suggestions.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460714</commentid>
    <comment_count>3</comment_count>
      <attachid>106013</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-09-01 12:51:02 -0700</bug_when>
    <thetext>Created attachment 106013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460871</commentid>
    <comment_count>4</comment_count>
      <attachid>106013</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-09-01 15:57:56 -0700</bug_when>
    <thetext>Comment on attachment 106013
Patch

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

Me &lt;3&apos;s this patch.

&gt; Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp:152
&gt; +    return 0;

ASSERT(false); CRASH()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460900</commentid>
    <comment_count>5</comment_count>
      <attachid>106059</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-09-01 16:26:15 -0700</bug_when>
    <thetext>Created attachment 106059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460933</commentid>
    <comment_count>6</comment_count>
      <attachid>106059</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-01 17:00:36 -0700</bug_when>
    <thetext>Comment on attachment 106059
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461071</commentid>
    <comment_count>7</comment_count>
      <attachid>106059</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-09-02 00:19:09 -0700</bug_when>
    <thetext>Comment on attachment 106059
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp:149
&gt; +#if USE(THREADED_COMPOSITING)

Sorry for the late breaking feedback, but can we do this as a runtime check? E.g. layerTreeHost()-&gt;settings().useThreadedCompositing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461249</commentid>
    <comment_count>8</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-09-02 09:10:10 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 106059 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=106059&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/chromium/WebGLLayerChromium.cpp:149
&gt; &gt; +#if USE(THREADED_COMPOSITING)
&gt; 
&gt; Sorry for the late breaking feedback, but can we do this as a runtime check? E.g. layerTreeHost()-&gt;settings().useThreadedCompositing

Ah, you&apos;re totally right.  I&apos;ll fix that when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461303</commentid>
    <comment_count>9</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-09-02 10:35:10 -0700</bug_when>
    <thetext>Committed r94431: &lt;http://trac.webkit.org/changeset/94431&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106011</attachid>
            <date>2011-09-01 12:46:27 -0700</date>
            <delta_ts>2011-09-01 12:50:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66430-20110901124626.patch</filename>
            <type>text/plain</type>
            <size>27091</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQzMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1OTg4MjkzZGNhZWIwMmQ0
NWU2Mzk1NTgyNDA2ZmU1NmEyMjYyMGQ5Li4wNWU1MTYzMjQ5NDYwMmZiZDViNmNmN2EzNGE3ZWJk
YzRlNjMyZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTEtMDktMDEgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92
ZSBMYXllclJlbmRlcmVyQ2hyb21pdW0gcmVmZXJlbmNlcyBmcm9tIHRoZSBMYXllckNocm9taXVt
IHRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2
NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICBSZXBsYWNlIHJlZmVyZW5jZXMgdG8g
TGF5ZXJSZW5kZXJlckNocm9taXVtIGluIHRoZSBMYXllckNocm9taXVtIHRyZWUKKyAgICAgICAg
d2l0aCByZWZlcmVuY2VzIHRvIExheWVyVHJlZUhvc3QuIFRoZSBMYXllclJlbmRlcmVyQ2hyb21p
dW0gcHJvcGVydHkKKyAgICAgICAgaXMgbm8gbG9uZ2VyIHN5bmNlZCBhbmQgaW5zdGVhZCBpcyBz
ZXQgcmVjdXJzaXZlbHkgb24gdGhlIENDTGF5ZXJJbXBsCisgICAgICAgIHRyZWUgZHVyaW5nIGNv
bW1pdC4KKworICAgICAgICBXZWJHTExheWVyQ2hyb21pdW0ncyBwYWludFJlbmRlcmVkUmVzdWx0
c1RvQ2FudmFzIGZ1bmN0aW9uIGlzCisgICAgICAgIHRlbXBvcmFyaWx5IHR1cm5lZCBvZmYgZm9y
IHRocmVhZGVkIGNvbXBvc2l0aW5nIGJlY2F1c2UgaXQgbmVlZHMKKyAgICAgICAgYWNjZXNzIHRv
IHRoZSBjb21wb3NpdG9yIGNvbnRleHQuCisKKyAgICAgICAgUHJldmlvdXNseSwgY2hhbmdpbmcg
dGhlIGxheWVyIHJlbmRlcmVyIG9uIGEgbGF5ZXIgY2FsbGVkIGNsZWFudXAKKyAgICAgICAgcmVz
b3VyY2VzIG9uIHRoYXQgbGF5ZXIuICBOb3csIGNhbGwgdGhhdCBleHBsaWNpdGx5IGNsZWFuIHVw
IGFsbAorICAgICAgICByZXNvdXJjZXMgZXhwbGljaXRseSBmcm9tIHRoZSBwcm94eSB3aGVuIHRo
ZSBsYXllciByZW5kZXJlciBnZXRzCisgICAgICAgIGNyZWF0ZWQuIFRoaXMgY2xlYW5zIHVwIGFs
bCBvZiB0aGUgTWFuYWdlZFRleHR1cmUgb2JqZWN0cyB3aGljaCBtYXkgYmUKKyAgICAgICAgaGFu
Z2luZyBvbnRvIHN0YWxlIEdyYXBoaWNzQ29udGV4dDNEIHBvaW50ZXJzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllckNocm9taXVtOjpjbGVhbnVwUmVzb3VyY2VzUmVjdXJzaXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJDaHJvbWl1bTo6bGF5ZXJUcmVlSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpUaWxlZExheWVy
Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVU
aWxlU2l6ZUFuZFRpbGluZ09wdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hy
b21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNo
cm9taXVtOjp0ZXh0dXJlTWFuYWdlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGlsZWRMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
TGF5ZXJDaHJvbWl1bTo6VmlkZW9MYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvTGF5ZXJDaHJvbWl1bTo6Y2xlYW51cFJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpW
aWRlb0xheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9MYXllckNocm9taXVtOjpyZXNlcnZlVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTExheWVyQ2hyb21pdW06OnBhaW50UmVuZGVyZWRSZXN1bHRzVG9DYW52YXMp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xMYXllckNocm9taXVtOjpzZXRUZXh0dXJlVXBkYXRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTExheWVyQ2hyb21pdW06OmxheWVyUmVuZGVyZXJD
b250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVy
Q2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2V0TGF5ZXJSZW5k
ZXJlclJlY3Vyc2l2ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojpj
b21taXRUbyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OmRpZFJlY3JlYXRl
R3JhcGhpY3NDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdEltcGw6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKToKKwogMjAxMS0wOC0zMSAgTmF0IER1
Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBJbnRyb2R1Y2Ug
Q0NTaW5nbGVUaHJlYWRQcm94eSBpbiBvcmRlciB0byBtb3ZlIExheWVyUmVuZGVyZXIgdG8gQ0NM
YXllclRyZWVIb3N0SW1wbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCBlZWVhYmIyMTBhYTFi
MzI1ODljNjcxYjhjMzcxMTE0NDkyYjAzMzEwLi5kNjQ4OGIwNzYwMGZjMjY5NGE0ZmRjM2E4NGQy
MTgxZmJkNWJhMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtOTYsMzYgKzk2LDI5IEBA
IHZvaWQgTGF5ZXJDaHJvbWl1bTo6Y2xlYW51cFJlc291cmNlcygpCiB7CiB9CiAKLXZvaWQgTGF5
ZXJDaHJvbWl1bTo6c2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShMYXllclJlbmRlcmVyQ2hyb21p
dW0qIHJlbmRlcmVyKQordm9pZCBMYXllckNocm9taXVtOjpjbGVhbnVwUmVzb3VyY2VzUmVjdXJz
aXZlKCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyAr
K2kpCi0gICAgICAgIGNoaWxkcmVuKClbaV0tPnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUocmVu
ZGVyZXIpOworICAgICAgICBjaGlsZHJlbigpW2ldLT5jbGVhbnVwUmVzb3VyY2VzUmVjdXJzaXZl
KCk7CiAKICAgICBpZiAobWFza0xheWVyKCkpCi0gICAgICAgIG1hc2tMYXllcigpLT5zZXRMYXll
clJlbmRlcmVyUmVjdXJzaXZlKHJlbmRlcmVyKTsKKyAgICAgICAgbWFza0xheWVyKCktPmNsZWFu
dXBSZXNvdXJjZXNSZWN1cnNpdmUoKTsKICAgICBpZiAocmVwbGljYUxheWVyKCkpCi0gICAgICAg
IHJlcGxpY2FMYXllcigpLT5zZXRMYXllclJlbmRlcmVyUmVjdXJzaXZlKHJlbmRlcmVyKTsKKyAg
ICAgICAgcmVwbGljYUxheWVyKCktPmNsZWFudXBSZXNvdXJjZXNSZWN1cnNpdmUoKTsKIAotICAg
IHNldExheWVyUmVuZGVyZXIocmVuZGVyZXIpOworICAgIGNsZWFudXBSZXNvdXJjZXMoKTsKIH0K
IAotdm9pZCBMYXllckNocm9taXVtOjpzZXRMYXllclJlbmRlcmVyKExheWVyUmVuZGVyZXJDaHJv
bWl1bSogcmVuZGVyZXIpCit2b2lkIExheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QoQ0NM
YXllclRyZWVIb3N0KiBob3N0KQogewogICAgIC8vIElmIHdlJ3JlIGNoYW5naW5nIGxheWVyIHJl
bmRlcmVycyB0aGVuIHdlIG5lZWQgdG8gZnJlZSB1cCBhbnkgcmVzb3VyY2VzCiAgICAgLy8gYWxs
b2NhdGVkIGJ5IHRoZSBvbGQgcmVuZGVyZXIuCi0gICAgaWYgKGxheWVyUmVuZGVyZXIoKSAmJiBs
YXllclJlbmRlcmVyKCkgIT0gcmVuZGVyZXIpIHsKKyAgICBpZiAobGF5ZXJUcmVlSG9zdCgpICYm
IGxheWVyVHJlZUhvc3QoKSAhPSBob3N0KSB7CiAgICAgICAgIGNsZWFudXBSZXNvdXJjZXMoKTsK
ICAgICAgICAgc2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgfQotICAgIG1fbGF5ZXJSZW5kZXJlciA9
IHJlbmRlcmVyOwogCi0gICAgLy8gRklYTUU6IE9uY2Ugc2V0TGF5ZXJSZW5kZXJlciBpcyBubyBs
b25nZXIgbmVlZGVkIG9uIHRoZSBMYXllckNocm9taXVtCi0gICAgLy8gdHJlZSwgbW92ZSB0aGlz
IGNhbGwgdG8gTGF5ZXJSZW5kZXJlckNocm9taXVtOjpwYWludExheWVyQ29udGVudHMuCi0gICAg
c2V0TGF5ZXJUcmVlSG9zdChyZW5kZXJlci0+b3duZXIoKSk7Ci19Ci0KLXZvaWQgTGF5ZXJDaHJv
bWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqKQoteworICAgIG1fbGF5ZXJU
cmVlSG9zdCA9IGhvc3Q7CiB9CiAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHNDb21taXQo
KQpAQCAtMzMyLDcgKzMyNSw2IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNU
byhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5ZXItPnNldERvdWJsZVNpZGVkKG1fZG91Ymxl
U2lkZWQpOwogICAgIGxheWVyLT5zZXREcmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KCkpOwogICAg
IGxheWVyLT5zZXRJc1Jvb3RMYXllcihtX2lzUm9vdExheWVyKTsKLSAgICBsYXllci0+c2V0TGF5
ZXJSZW5kZXJlcihtX2xheWVyUmVuZGVyZXIuZ2V0KCkpOwogICAgIGxheWVyLT5zZXRNYXNrc1Rv
Qm91bmRzKG1fbWFza3NUb0JvdW5kcyk7CiAgICAgbGF5ZXItPnNldE5hbWUobV9uYW1lKTsKICAg
ICBsYXllci0+c2V0T3BhY2l0eShtX29wYWNpdHkpOwpAQCAtMzQ5LDEyICszNDEsNiBAQCB2b2lk
IExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQogICAg
ICAgICByZXBsaWNhTGF5ZXIoKS0+cHVzaFByb3BlcnRpZXNUbyhsYXllci0+cmVwbGljYUxheWVy
KCkpOwogfQogCi1HcmFwaGljc0NvbnRleHQzRCogTGF5ZXJDaHJvbWl1bTo6bGF5ZXJSZW5kZXJl
ckNvbnRleHQoKSBjb25zdAotewotICAgIEFTU0VSVChsYXllclJlbmRlcmVyKCkpOwotICAgIHJl
dHVybiBsYXllclJlbmRlcmVyKCktPmNvbnRleHQoKTsKLX0KLQogdm9pZCBMYXllckNocm9taXVt
OjpkcmF3VGV4dHVyZWRRdWFkKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgcHJvamVjdGlvbk1hdHJpeCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIGRyYXdNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgb3BhY2l0eSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF0cml4TG9jYXRpb24sIGludCBhbHBoYUxvY2F0
aW9uKQpAQCAtNDM2LDExICs0MjIsNiBAQCB2b2lkIExheWVyQ2hyb21pdW06OnNldEJvcmRlcldp
ZHRoKGZsb2F0IHdpZHRoKQogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKLUxheWVyUmVuZGVy
ZXJDaHJvbWl1bSogTGF5ZXJDaHJvbWl1bTo6bGF5ZXJSZW5kZXJlcigpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbGF5ZXJSZW5kZXJlci5nZXQoKTsKLX0KLQogdm9pZCBMYXllckNocm9taXVtOjpj
cmVhdGVSZW5kZXJTdXJmYWNlKCkKIHsKICAgICBBU1NFUlQoIW1fcmVuZGVyU3VyZmFjZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmgKaW5kZXggZmUyZTRjNzEzNzNiZTUyNWQ1OGM2M2I3Y2UwYTgxZWE4ZTFl
NWM4Ny4uYTdlYjIwODM1MjY3YTM0YTBhNDUwMzk4NmYxYjA1Yzg3MjQ3YjUxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uaApAQCAtNTUsNyArNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBD
Q0xheWVySW1wbDsKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDNEOwotY2xhc3MgTGF5ZXJSZW5kZXJlckNocm9taXVtOwogCiAvLyBCYXNlIGNsYXNzIGZvciBj
b21wb3NpdGVkIGxheWVycy4gU3BlY2lhbCBsYXllciB0eXBlcyBhcmUgZGVyaXZlZCBmcm9tCiAv
LyB0aGlzIGNsYXNzLgpAQCAtMTUzLDEzICsxNTIsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJ
c1Jvb3RMYXllcihib29sIGlzUm9vdExheWVyKSB7IG1faXNSb290TGF5ZXIgPSBpc1Jvb3RMYXll
cjsgfQogICAgIGJvb2wgaXNSb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2lzUm9vdExheWVy
OyB9CiAKLSAgICB2b2lkIHNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUoTGF5ZXJSZW5kZXJlckNo
cm9taXVtKik7Ci0KLSAgICAvLyBEZXJpdmVkIHR5cGVzIG11c3Qgb3ZlcnJpZGUgdGhpcyBtZXRo
b2QgaWYgdGhleSBuZWVkIHRvIHJlYWN0IHRvIGEgY2hhbmdlCi0gICAgLy8gaW4gdGhlIExheWVy
UmVuZGVyZXJDaHJvbWl1bS4KLSAgICAvLyBGSVhNRSwgcmVwbGFjZSB3aXRoIENDTGF5ZXJUcmVl
SG9zdC4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJSZW5kZXJlcihMYXllclJlbmRlcmVyQ2hy
b21pdW0qKTsKLQogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVl
SG9zdCopOwogCiAgICAgdm9pZCBzZXRPd25lcihHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVy
KSB7IG1fb3duZXIgPSBvd25lcjsgfQpAQCAtMTkwLDEwICsxODIsNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCopOwogCi0gICAgLy8g
QmVnaW4gY2FsbHMgdGhhdCBmb3J3YXJkIHRvIHRoZSBDQ0xheWVySW1wbC4KLSAgICBMYXllclJl
bmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIoKSBjb25zdDsKLSAgICAvLyBFbmQgY2FsbHMg
dGhhdCBmb3J3YXJkIHRvIHRoZSBDQ0xheWVySW1wbC4KLQogICAgIHR5cGVkZWYgUHJvZ3JhbUJp
bmRpbmc8VmVydGV4U2hhZGVyUG9zLCBGcmFnbWVudFNoYWRlckNvbG9yPiBCb3JkZXJQcm9ncmFt
OwogCiAgICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcklkOyB9CkBAIC0yMTgsNiAr
MjA2LDkgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgb2YgdGhlIGxheWVy
J3MgZGVzY2VuZGFudHMgaGFzIGNvbnRlbnQgdG8gZHJhdy4KICAgICBib29sIGRlc2NlbmRhbnRE
cmF3c0NvbnRlbnQoKTsKIAorICAgIENDTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC5nZXQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBj
bGVhbnVwUmVzb3VyY2VzUmVjdXJzaXZlKCk7CisKIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0xh
eWVyQ2hyb21pdW0qIG1fb3duZXI7CiAgICAgZXhwbGljaXQgTGF5ZXJDaHJvbWl1bShHcmFwaGlj
c0xheWVyQ2hyb21pdW0qIG93bmVyKTsKQEAgLTIyNyw4ICsyMTgsNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgLy8gaG9sZCBjb250ZXh0LWRlcGVuZGVudCByZXNvdXJjZXMgc3VjaCBhcyB0ZXh0dXJlcy4K
ICAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cFJlc291cmNlcygpOwogCi0gICAgR3JhcGhpY3NDb250
ZXh0M0QqIGxheWVyUmVuZGVyZXJDb250ZXh0KCkgY29uc3Q7Ci0KICAgICBzdGF0aWMgdm9pZCB0
b0dMTWF0cml4KGZsb2F0KiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIAogICAgIHZv
aWQgZHVtcExheWVyKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBjb25zdDsKQEAgLTI2Nyw3ICsy
NTYsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiBtX2No
aWxkcmVuOwogICAgIExheWVyQ2hyb21pdW0qIG1fcGFyZW50OwogCi0gICAgUmVmUHRyPExheWVy
UmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRlcmVyOworICAgIFJlZlB0cjxDQ0xheWVyVHJl
ZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKIAogICAgIC8vIExheWVyIHByb3BlcnRpZXMuCiAgICAg
SW50U2l6ZSBtX2JvdW5kczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmlu
ZGV4IDlkNzE0YWUzZGRjNzI4OGIwMjVmN2I3MTM5NWZiZDgyNDVlZTNhNDQuLmIzNWE1MmQ0NzUx
OGE1YTkyMjE4OWZiNDI1OTRkNzA0YTQ0YTVlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmNwcApAQCAtNTgwLDkgKzU4MCwxMiBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJv
bWl1bTo6dXBkYXRlTGF5ZXJzKCkKIAogdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdM
YXllcnMoKQogewotICAgIGlmICghcm9vdExheWVyKCkpCisgICAgaWYgKCFyb290TGF5ZXJJbXBs
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdhbGsgdGhl
IHRyZWUgaGVyZS4gVGhpcyBjb3VsZCBiZSBwYXNzZWQgdmlhIGRyYXcuCisgICAgcm9vdExheWVy
SW1wbCgpLT5zZXRMYXllclJlbmRlcmVyUmVjdXJzaXZlKHRoaXMpOworCiAgICAgbV9yZW5kZXJT
dXJmYWNlVGV4dHVyZU1hbmFnZXItPnNldE1lbW9yeUxpbWl0Qnl0ZXModGV4dHVyZU1lbW9yeUhp
Z2hMaW1pdEJ5dGVzIC0gbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5jdXJyZW50TWVtb3J5VXNl
Qnl0ZXMoKSk7CiAgICAgZHJhd0xheWVyc0ludGVybmFsKCk7CiAKQEAgLTY1OSwxMSArNjYyLDYg
QEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBM
YXllckxpc3QmIHJlbmRlclN1cmZhY2VMYXkKICAgICAgICAgUmVuZGVyU3VyZmFjZUNocm9taXVt
KiByZW5kZXJTdXJmYWNlID0gcmVuZGVyU3VyZmFjZUxheWVyLT5yZW5kZXJTdXJmYWNlKCk7CiAg
ICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlKTsKIAotICAgICAgICAvLyBNYWtlIHN1cmUgYW55
IHJlbmRlclN1cmZhY2VMYXllciBpcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBsYXllclJlbmRlcmVy
LgotICAgICAgICAvLyBUaGlzIGlzIGEgZGVmZW5zaXZlIGFzc2lnbm1lbnQgaW4gY2FzZSB0aGUg
b3duZXIgb2YgdGhpcyBsYXllciBoYXNuJ3QKLSAgICAgICAgLy8gc2V0IHRoZSBsYXllclJlbmRl
cmVyIG9uIHRoaXMgbGF5ZXIgYWxyZWFkeS4KLSAgICAgICAgcmVuZGVyU3VyZmFjZUxheWVyLT5z
ZXRMYXllclJlbmRlcmVyKHRoaXMpOwotCiAgICAgICAgIC8vIFJlbmRlciBzdXJmYWNlcyB3aG9z
ZSBkcmF3YWJsZSBhcmVhIGhhcyB6ZXJvIHdpZHRoIG9yIGhlaWdodAogICAgICAgICAvLyB3aWxs
IGhhdmUgbm8gbGF5ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGVtIGFuZCBzaG91bGQgYmUgc2tpcHBl
ZC4KICAgICAgICAgaWYgKCFyZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKS5zaXplKCkpCkBAIC02
ODIsMTcgKzY4MCwxNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6cGFpbnRMYXllckNv
bnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheQogICAgICAgICAgICAgaWYg
KGxheWVyLT5yZW5kZXJTdXJmYWNlKCkgJiYgbGF5ZXItPnJlbmRlclN1cmZhY2UoKSAhPSByZW5k
ZXJTdXJmYWNlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBsYXll
ci0+c2V0TGF5ZXJSZW5kZXJlcih0aGlzKTsKKyAgICAgICAgICAgIGxheWVyLT5zZXRMYXllclRy
ZWVIb3N0KG93bmVyKCkpOwogCiAgICAgICAgICAgICBpZiAoIWxheWVyLT5vcGFjaXR5KCkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGlmIChsYXllci0+bWFza0xh
eWVyKCkpCi0gICAgICAgICAgICAgICAgbGF5ZXItPm1hc2tMYXllcigpLT5zZXRMYXllclJlbmRl
cmVyKHRoaXMpOworICAgICAgICAgICAgICAgIGxheWVyLT5tYXNrTGF5ZXIoKS0+c2V0TGF5ZXJU
cmVlSG9zdChvd25lcigpKTsKICAgICAgICAgICAgIGlmIChsYXllci0+cmVwbGljYUxheWVyKCkp
IHsKLSAgICAgICAgICAgICAgICBsYXllci0+cmVwbGljYUxheWVyKCktPnNldExheWVyUmVuZGVy
ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnJlcGxpY2FMYXllcigpLT5zZXRMYXll
clRyZWVIb3N0KG93bmVyKCkpOwogICAgICAgICAgICAgICAgIGlmIChsYXllci0+cmVwbGljYUxh
eWVyKCktPm1hc2tMYXllcigpKQotICAgICAgICAgICAgICAgICAgICBsYXllci0+cmVwbGljYUxh
eWVyKCktPm1hc2tMYXllcigpLT5zZXRMYXllclJlbmRlcmVyKHRoaXMpOworICAgICAgICAgICAg
ICAgICAgICBsYXllci0+cmVwbGljYUxheWVyKCktPm1hc2tMYXllcigpLT5zZXRMYXllclRyZWVI
b3N0KG93bmVyKCkpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAobGF5ZXItPmJv
dW5kcygpLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwCmlu
ZGV4IDAwNjE0MzMyNTU5YTRmM2M0OGM0OWRkODQxNDk3NzU0YzEzOWJhYzQuLmE1ZmQ3NGIxOTAy
MGZmNDIxZDQ2NTdmN2VjZGU5N2MzZmIyYzE4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFj
ZUNocm9taXVtLmNwcApAQCAtNDgsMTIgKzQ4LDYgQEAgUmVuZGVyU3VyZmFjZUNocm9taXVtOjp+
UmVuZGVyU3VyZmFjZUNocm9taXVtKCkKIHsKIH0KIAotTGF5ZXJSZW5kZXJlckNocm9taXVtKiBS
ZW5kZXJTdXJmYWNlQ2hyb21pdW06OmxheWVyUmVuZGVyZXIoKQotewotICAgIEFTU0VSVChtX293
bmluZ0xheWVyKTsKLSAgICByZXR1cm4gbV9vd25pbmdMYXllci0+bGF5ZXJSZW5kZXJlcigpOwot
fQotCiBGbG9hdFJlY3QgUmVuZGVyU3VyZmFjZUNocm9taXVtOjpkcmF3YWJsZUNvbnRlbnRSZWN0
KCkgY29uc3QKIHsKICAgICBGbG9hdFJlY3QgbG9jYWxDb250ZW50UmVjdCgtMC41ICogbV9jb250
ZW50UmVjdC53aWR0aCgpLCAtMC41ICogbV9jb250ZW50UmVjdC5oZWlnaHQoKSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZh
Y2VDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
UmVuZGVyU3VyZmFjZUNocm9taXVtLmgKaW5kZXggNTFiZGNmYTUxMTljZjI2Y2ZiMDZkMmJmMWU4
YmUxNmExOTdjNDVkNC4uNGEwNjJjNTY0MGZkNDQ5MThkMjliOTNjNjY5YjkyNzk0Njg0MzM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVu
ZGVyU3VyZmFjZUNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmgKQEAgLTg3LDggKzg3LDYgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TWFza0xheWVyKExheWVyQ2hyb21pdW0qIG1hc2tMYXllcikgeyBt
X21hc2tMYXllciA9IG1hc2tMYXllcjsgfQogCiBwcml2YXRlOgotICAgIExheWVyUmVuZGVyZXJD
aHJvbWl1bSogbGF5ZXJSZW5kZXJlcigpOwotCiAgICAgTGF5ZXJDaHJvbWl1bSogbV9vd25pbmdM
YXllcjsKICAgICBMYXllckNocm9taXVtKiBtX21hc2tMYXllcjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5jcHAKaW5kZXggY2ZkZjEyM2FmYTc0M2RiMjE2MTQzN2ZkOWJlOWQzNDQ3MThm
NDZhOS4uYzkxZGJhN2M0MzkxMmFjZGUzZjdlMDAxNWU1YTRiMDBjOWQzN2U5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNo
cm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBAIC02NSw3ICs2NSw2IEBAIHByaXZhdGU6CiAKIFRp
bGVkTGF5ZXJDaHJvbWl1bTo6VGlsZWRMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1
bSogb3duZXIpCiAgICAgOiBMYXllckNocm9taXVtKG93bmVyKQotICAgICwgbV9sYXllclRyZWVI
b3N0KDApCiAgICAgLCBtX3RpbGluZ09wdGlvbihBdXRvVGlsZSkKICAgICAsIG1fdGV4dHVyZUZv
cm1hdChHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKQogICAgICwgbV9za2lwc0RyYXco
ZmFsc2UpCkBAIC0xMTYsNyArMTE1LDcgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0
ZVRpbGVTaXplQW5kVGlsaW5nT3B0aW9uKCkKICAgICAgICAgaXNUaWxlZCA9IGF1dG9UaWxlZDsK
IAogICAgIEludFNpemUgcmVxdWVzdGVkU2l6ZSA9IGlzVGlsZWQgPyB0aWxlU2l6ZSA6IGNvbnRl
bnRCb3VuZHMoKTsKLSAgICBjb25zdCBpbnQgbWF4U2l6ZSA9IG1fbGF5ZXJUcmVlSG9zdC0+bGF5
ZXJSZW5kZXJlckNhcGFiaWxpdGllcygpLm1heFRleHR1cmVTaXplOworICAgIGNvbnN0IGludCBt
YXhTaXplID0gbGF5ZXJUcmVlSG9zdCgpLT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkubWF4
VGV4dHVyZVNpemU7CiAgICAgSW50U2l6ZSBjbGFtcGVkU2l6ZSA9IHJlcXVlc3RlZFNpemUuc2hy
dW5rVG8oSW50U2l6ZShtYXhTaXplLCBtYXhTaXplKSk7CiAgICAgbV90aWxlci0+c2V0VGlsZVNp
emUoY2xhbXBlZFNpemUpOwogfQpAQCAtMTM4LDcgKzEzNyw3IEBAIGJvb2wgVGlsZWRMYXllckNo
cm9taXVtOjpkcmF3c0NvbnRlbnQoKSBjb25zdAogdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnNl
dExheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0KiBob3N0KQogewogICAgIExheWVyQ2hyb21p
dW06OnNldExheWVyVHJlZUhvc3QoaG9zdCk7Ci0gICAgbV9sYXllclRyZWVIb3N0ID0gaG9zdDsK
KwogICAgIGlmIChtX3RpbGVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTI4MSw5ICsyODAsOSBA
QCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFt
JiB0cywgaW50IGluZGVudCkgY29uc3QKIAogVGV4dHVyZU1hbmFnZXIqIFRpbGVkTGF5ZXJDaHJv
bWl1bTo6dGV4dHVyZU1hbmFnZXIoKSBjb25zdAogewotICAgIGlmICghbGF5ZXJSZW5kZXJlcigp
KQorICAgIGlmICghbGF5ZXJUcmVlSG9zdCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gbGF5ZXJSZW5kZXJlcigpLT5jb250ZW50c1RleHR1cmVNYW5hZ2VyKCk7CisgICAgcmV0dXJu
IGxheWVyVHJlZUhvc3QoKS0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpOwogfQogCiBVcGRhdGFi
bGVUaWxlKiBUaWxlZExheWVyQ2hyb21pdW06OnRpbGVBdChpbnQgaSwgaW50IGopIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxl
ZExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGJiMjg2ZDY2MGRhYWU5MTU4YjZiMDUyMDY2
MzA0NTFiMzkwY2NhN2IuLjU4NTY5MTgxNDQwNjkzZjYwZjZkZDZiMjk5Y2JiOWRjODlkMWE0NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCkBAIC04OCw4ICs4OCw2IEBAIHByaXZhdGU6
CiAKICAgICBUZXh0dXJlTWFuYWdlciogdGV4dHVyZU1hbmFnZXIoKSBjb25zdDsKIAotICAgIEND
TGF5ZXJUcmVlSG9zdCogbV9sYXllclRyZWVIb3N0OwotCiAgICAgLy8gU3RhdGUgaGVsZCBiZXR3
ZWVuIHVwZGF0ZSBhbmQgdXBsb2FkLgogICAgIEludFJlY3QgbV9wYWludFJlY3Q7CiAgICAgSW50
UmVjdCBtX3VwZGF0ZVJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcAppbmRleCA3
NjA3MjgxZjBmMGQxODQzMWEzN2FiMmU2NTBiODIxMTA3YmE1ZWEyLi4wNWQ0NTVjYzlhMzYxNjdi
ZDRkYTE0YWFlYTcwOTBiNjg5NTY0MzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHAKQEAgLTU2LDcgKzU2LDYgQEAgVmlkZW9MYXllckNocm9taXVtOjpWaWRlb0xheWVyQ2hyb21p
dW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lciwgVmlkZW9GcmFtZVAKICAgICAsIG1fc2tp
cHNEcmF3KHRydWUpCiAgICAgLCBtX2ZyYW1lRm9ybWF0KFZpZGVvRnJhbWVDaHJvbWl1bTo6SW52
YWxpZCkKICAgICAsIG1fcHJvdmlkZXIocHJvdmlkZXIpCi0gICAgLCBtX2xheWVyVHJlZUhvc3Qo
MCkKICAgICAsIG1fY3VycmVudEZyYW1lKDApCiB7CiB9CkBAIC03NCw2ICs3Myw4IEBAIFBhc3NS
ZWZQdHI8Q0NMYXllckltcGw+IFZpZGVvTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlQ0NMYXllckltcGwo
KQogdm9pZCBWaWRlb0xheWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXMoKQogewogICAgIExh
eWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXMoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IDM7ICsraSkKKyAgICAgICAgbV90ZXh0dXJlc1tpXS5tX3RleHR1cmUucmVsZWFzZSgpOwog
ICAgIHJlbGVhc2VDdXJyZW50RnJhbWUoKTsKIH0KIApAQCAtMTQ1LDE4ICsxNDYsMTYgQEAgdm9p
ZCBWaWRlb0xheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVy
KQogICAgIH0KIH0KIAotdm9pZCBWaWRlb0xheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3Qo
Q0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KQordm9pZCBWaWRlb0xheWVyQ2hyb21pdW06
OnNldExheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0KiBob3N0KQogewotICAgIExheWVyQ2hy
b21pdW06OnNldExheWVyVHJlZUhvc3QobGF5ZXJUcmVlSG9zdCk7Ci0gICAgaWYgKG1fbGF5ZXJU
cmVlSG9zdCA9PSBsYXllclRyZWVIb3N0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2xheWVy
VHJlZUhvc3QgPSBsYXllclRyZWVIb3N0OwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAz
OyArK2kpIHsKLSAgICAgICAgbV90ZXh0dXJlc1tpXS5tX3Zpc2libGVTaXplID0gSW50U2l6ZSgp
OwotICAgICAgICBtX3RleHR1cmVzW2ldLm1fdGV4dHVyZSA9IE1hbmFnZWRUZXh0dXJlOjpjcmVh
dGUobGF5ZXJUcmVlSG9zdC0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpKTsKKyAgICBpZiAobGF5
ZXJUcmVlSG9zdCgpICE9IGhvc3QpIHsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCAz
OyArK2kpIHsKKyAgICAgICAgICAgIG1fdGV4dHVyZXNbaV0ubV92aXNpYmxlU2l6ZSA9IEludFNp
emUoKTsKKyAgICAgICAgICAgIG1fdGV4dHVyZXNbaV0ubV90ZXh0dXJlID0gTWFuYWdlZFRleHR1
cmU6OmNyZWF0ZShob3N0LT5jb250ZW50c1RleHR1cmVNYW5hZ2VyKCkpOworICAgICAgICB9CiAg
ICAgfQorCisgICAgTGF5ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChob3N0KTsKIH0KIAog
R0MzRGVudW0gVmlkZW9MYXllckNocm9taXVtOjpkZXRlcm1pbmVUZXh0dXJlRm9ybWF0KGNvbnN0
IFZpZGVvRnJhbWVDaHJvbWl1bSogZnJhbWUpCkBAIC0xNzUsMTEgKzE3NCwxMSBAQCBHQzNEZW51
bSBWaWRlb0xheWVyQ2hyb21pdW06OmRldGVybWluZVRleHR1cmVGb3JtYXQoY29uc3QgVmlkZW9G
cmFtZUNocm9taXVtKiBmcgogCiBib29sIFZpZGVvTGF5ZXJDaHJvbWl1bTo6cmVzZXJ2ZVRleHR1
cmVzKGNvbnN0IFZpZGVvRnJhbWVDaHJvbWl1bSogZnJhbWUsIEdDM0RlbnVtIHRleHR1cmVGb3Jt
YXQpCiB7Ci0gICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgQVNTRVJUKGxheWVyVHJl
ZUhvc3QoKSk7CiAgICAgQVNTRVJUKGZyYW1lKTsKICAgICBBU1NFUlQodGV4dHVyZUZvcm1hdCAh
PSBHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9WQUxVRSk7CiAKLSAgICBpbnQgbWF4VGV4dHVy
ZVNpemUgPSBtX2xheWVyVHJlZUhvc3QtPmxheWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5tYXhU
ZXh0dXJlU2l6ZTsKKyAgICBpbnQgbWF4VGV4dHVyZVNpemUgPSBsYXllclRyZWVIb3N0KCktPmxh
eWVyUmVuZGVyZXJDYXBhYmlsaXRpZXMoKS5tYXhUZXh0dXJlU2l6ZTsKIAogICAgIGZvciAodW5z
aWduZWQgcGxhbmUgPSAwOyBwbGFuZSA8IGZyYW1lLT5wbGFuZXMoKTsgcGxhbmUrKykgewogICAg
ICAgICBJbnRTaXplIHJlcXVpcmVkVGV4dHVyZVNpemUgPSBmcmFtZS0+cmVxdWlyZWRUZXh0dXJl
U2l6ZShwbGFuZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDVlNDUzNGM4YTc2
MzFlMmMxYjViZWYzNDIxYmZlNDI3ZGE2NmZhMDQuLjdiMTU2ZmIxNDBhYjAxZDNkNWQ5ZjE3ZjRl
MzRiZTczZjI3M2JlMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oCkBAIC04Myw3ICs4
Myw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3NraXBzRHJhdzsKICAgICBWaWRlb0ZyYW1lQ2hy
b21pdW06OkZvcm1hdCBtX2ZyYW1lRm9ybWF0OwogICAgIFZpZGVvRnJhbWVQcm92aWRlciogbV9w
cm92aWRlcjsKLSAgICBDQ0xheWVyVHJlZUhvc3QqIG1fbGF5ZXJUcmVlSG9zdDsKIAogICAgIFRl
eHR1cmUgbV90ZXh0dXJlc1szXTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHAKaW5k
ZXggMDMxOWMxNGFiNGNlOWQxNDJmNTUyODBhYzU0OTA1YjA5MWE4NjFjNC4uOGI3MGIxYTQyOGZj
YTU1ZDljYzY1OTNkNjVjNTM3MDhlN2ZmZjRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21p
dW0uY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgV2ViR0xMYXllckNocm9taXVtOjp1cGRhdGVD
b21wb3NpdG9yUmVzb3VyY2VzKEdyYXBoaWNzQ29udGV4dDNEKiByZW5kZXJlckNvCiAKIGJvb2wg
V2ViR0xMYXllckNocm9taXVtOjpwYWludFJlbmRlcmVkUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVm
ZmVyKiBpbWFnZUJ1ZmZlcikKIHsKLSAgICBpZiAobV90ZXh0dXJlVXBkYXRlZCB8fCAhbGF5ZXJS
ZW5kZXJlcigpIHx8ICFkcmF3c0NvbnRlbnQoKSkKKyAgICBpZiAobV90ZXh0dXJlVXBkYXRlZCB8
fCAhbGF5ZXJSZW5kZXJlckNvbnRleHQoKSB8fCAhZHJhd3NDb250ZW50KCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIEludFNpemUgZnJhbWVidWZmZXJTaXplID0gbV9jb250ZXh0LT5n
ZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpOwpAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgV2Vi
R0xMYXllckNocm9taXVtOjpzZXRUZXh0dXJlVXBkYXRlZCgpCiAgICAgbV90ZXh0dXJlVXBkYXRl
ZCA9IHRydWU7CiAgICAgLy8gSWYgV2ViR0wgY29tbWFuZHMgYXJlIGlzc3VlZCBvdXRzaWRlIG9m
IGEgdGhlIGFuaW1hdGlvbiBjYWxsYmFja3MsIHRoZW4gdXNlCiAgICAgLy8gY2FsbCByYXRlTGlt
aXRPZmZzY3JlZW5Db250ZXh0Q0hST01JVU0oKSB0byBrZWVwIHRoZSBjb250ZXh0IGZyb20gZ2V0
dGluZyB0b28gZmFyIGFoZWFkLgotICAgIGlmIChsYXllclJlbmRlcmVyKCkgJiYgIWxheWVyUmVu
ZGVyZXIoKS0+b3duZXIoKS0+YW5pbWF0aW5nKCkgJiYgbV9jb250ZXh0U3VwcG9ydHNSYXRlTGlt
aXRpbmdFeHRlbnNpb24gJiYgIW1fcmF0ZUxpbWl0aW5nVGltZXIuaXNBY3RpdmUoKSkKKyAgICBp
ZiAobGF5ZXJUcmVlSG9zdCgpICYmICFsYXllclRyZWVIb3N0KCktPmFuaW1hdGluZygpICYmIG1f
Y29udGV4dFN1cHBvcnRzUmF0ZUxpbWl0aW5nRXh0ZW5zaW9uICYmICFtX3JhdGVMaW1pdGluZ1Rp
bWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fcmF0ZUxpbWl0aW5nVGltZXIuc3RhcnRPbmVTaG90
KDApOwogfQogCkBAIC0xNDQsNiArMTQ0LDE3IEBAIHZvaWQgV2ViR0xMYXllckNocm9taXVtOjpz
ZXRDb250ZXh0KGNvbnN0IEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogICAgIG1fY29udGV4
dFN1cHBvcnRzUmF0ZUxpbWl0aW5nRXh0ZW5zaW9uID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25z
KCktPnN1cHBvcnRzKCJHTF9DSFJPTUlVTV9yYXRlX2xpbWl0X29mZnNjcmVlbl9jb250ZXh0Iik7
CiB9CiAKK0dyYXBoaWNzQ29udGV4dDNEKiBXZWJHTExheWVyQ2hyb21pdW06OmxheWVyUmVuZGVy
ZXJDb250ZXh0KCkKK3sKKyNpZiBVU0UoVEhSRUFERURfQ09NUE9TSVRJTkcpCisgICAgLy8gRklY
TUU6IEluIHRoZSB0aHJlYWRlZCBjYXNlLCBwYWludFJlbmRlcmVkUmVzdWx0c1RvQ2FudmFzIG11
c3QgYmUKKyAgICAvLyByZWZhY3RvcmVkIHRvIGJlIGFzeW5jaHJvbm91cy4gQ3VycmVudGx5IHRo
aXMgaXMgdW5pbXBsZW1lbnRlZC4KKyAgICByZXR1cm4gMDsKKyNlbHNlCisgICAgcmV0dXJuIGxh
eWVyVHJlZUhvc3QoKS0+Y29udGV4dCgpOworI2VuZGlmCit9CisKIHZvaWQgV2ViR0xMYXllckNo
cm9taXVtOjpyYXRlTGltaXRDb250ZXh0KFRpbWVyPFdlYkdMTGF5ZXJDaHJvbWl1bT4qKQogewog
ICAgIFRSQUNFX0VWRU5UKCJXZWJHTExheWVyQ2hyb21pdW06OnJhdGVMaW1pdENvbnRleHQiLCB0
aGlzLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmgKaW5kZXggMWVhOGZjMTFiMDkzZmI1
YWMxYWY1NjlkZDliMmM5NzBlMjFkZDZjMC4uODYyZmE4OGYzZmIwODhlOTY4ODkyNDhmODMyNGJj
NDYyM2YwNWIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmgKQEAgLTY0LDYgKzY0LDgg
QEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJHTExheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXll
ckNocm9taXVtKiBvd25lcik7CiAgICAgZnJpZW5kIGNsYXNzIFdlYkdMTGF5ZXJDaHJvbWl1bVJh
dGVMaW1pdFRhc2s7CiAKKyAgICBHcmFwaGljc0NvbnRleHQzRCogbGF5ZXJSZW5kZXJlckNvbnRl
eHQoKTsKKwogICAgIHZvaWQgcmF0ZUxpbWl0Q29udGV4dChUaW1lcjxXZWJHTExheWVyQ2hyb21p
dW0+Kik7CiAKICAgICAvLyBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1MYXllciBoYXMgYSBz
aWRlLWVmZmVjdCBvZiBhc3NpZ25pbmcgaXRzZWxmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5k
ZXggNzQ1ODYxYWEzMDVhMGI1ZjQwNjY4MDcwZWJhM2ZmZTYzNzYwNmVhYy4uOTgzZDRiZTAxNjRk
ZGQ2OTZiNDJjN2ZkNDk4YmZjZTcxMTQ0ZTdmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApA
QCAtMTE5LDYgKzExOSwxOSBAQCB2b2lkIENDTGF5ZXJJbXBsOjpzZXRMYXllclJlbmRlcmVyKExh
eWVyUmVuZGVyZXJDaHJvbWl1bSogcmVuZGVyZXIpCiAgICAgbV9sYXllclJlbmRlcmVyID0gcmVu
ZGVyZXI7CiB9CiAKK3ZvaWQgQ0NMYXllckltcGw6OnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUo
TGF5ZXJSZW5kZXJlckNocm9taXVtKiByZW5kZXJlcikKK3sKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCisgICAgICAgIGNoaWxkcmVuKClbaV0tPnNl
dExheWVyUmVuZGVyZXJSZWN1cnNpdmUocmVuZGVyZXIpOworCisgICAgaWYgKG1hc2tMYXllcigp
KQorICAgICAgICBtYXNrTGF5ZXIoKS0+c2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShyZW5kZXJl
cik7CisgICAgaWYgKHJlcGxpY2FMYXllcigpKQorICAgICAgICByZXBsaWNhTGF5ZXIoKS0+c2V0
TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShyZW5kZXJlcik7CisKKyAgICBzZXRMYXllclJlbmRlcmVy
KHJlbmRlcmVyKTsKK30KKwogdm9pZCBDQ0xheWVySW1wbDo6Y3JlYXRlUmVuZGVyU3VyZmFjZSgp
CiB7CiAgICAgQVNTRVJUKCFtX3JlbmRlclN1cmZhY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKaW5k
ZXggODNiMDM0NjAyMDU3ODY0NWY0NzlmYjc4ZWI5YTkxYzY1ZGE2NTI1My4uMWNlZTRkMzJhODBh
YzdmM2Y4ODU5YjBkZmZlZWY5ZDRjNGU0Zjc0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCkBAIC0x
MjQsNiArMTI0LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhd0RlYnVnQm9yZGVyKCk7CiAKICAg
ICB2b2lkIHNldExheWVyUmVuZGVyZXIoTGF5ZXJSZW5kZXJlckNocm9taXVtKik7CisgICAgdm9p
ZCBzZXRMYXllclJlbmRlcmVyUmVjdXJzaXZlKExheWVyUmVuZGVyZXJDaHJvbWl1bSopOwogICAg
IExheWVyUmVuZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlcigpIGNvbnN0IHsgcmV0dXJuIG1f
bGF5ZXJSZW5kZXJlci5nZXQoKTsgfQogCiAgICAgQ0NSZW5kZXJTdXJmYWNlKiByZW5kZXJTdXJm
YWNlKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJTdXJmYWNlLmdldCgpOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcAppbmRleCBkZWI5ZDRmZDY0M2RlZjQyM2NhMTJhM2JiN2VmZjYx
NWYzY2RlNjlkLi41OTI5YmNjMTgxOGZiZDdiOGE5MDc5MmMxZTI5ZTY2ZmFiMjI0NTgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTExNCwxNCArMTE0LDkgQEAgdm9pZCBD
Q0xheWVyVHJlZUhvc3Q6OmNvbW1pdFRvKENDTGF5ZXJUcmVlSG9zdEltcGwqIGhvc3RJbXBsKQog
ICAgIGhvc3RJbXBsLT5zZXRTb3VyY2VGcmFtZU51bWJlcihmcmFtZU51bWJlcigpKTsKIAogICAg
IC8vIFN5bmNocm9uaXplIHRyZWVzLCBpZiBvbmUgZXhpc3RzIGF0IGFsbC4uLgotICAgIGlmIChy
b290TGF5ZXIoKSkgewotICAgICAgICAvLyBUaGUgbGF5ZXJSZW5kZXJlciBuZWVkcyB0byBiZSBz
ZXQgc28gdGhhdCBjaGlsZCBsYXllcnMgcGljayB1cCB0aGUgbGF5ZXJSZW5kZXJlcgotICAgICAg
ICAvLyBhcyB3ZWxsIGR1cmluZyB0aGUgc3luY2hyb25pemUgc3RlcC4KLSAgICAgICAgaWYgKHJv
b3RMYXllcigpLT5wbGF0Zm9ybUxheWVyKCktPmxheWVyUmVuZGVyZXIoKSAhPSBob3N0SW1wbC0+
bGF5ZXJSZW5kZXJlcigpKQotICAgICAgICAgICAgcm9vdExheWVyKCktPnBsYXRmb3JtTGF5ZXIo
KS0+c2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShob3N0SW1wbC0+bGF5ZXJSZW5kZXJlcigpKTsK
LQorICAgIGlmIChyb290TGF5ZXIoKSkKICAgICAgICAgaG9zdEltcGwtPnNldFJvb3RMYXllcihU
cmVlU3luY2hyb25pemVyOjpzeW5jaHJvbml6ZVRyZWVzKHJvb3RMYXllcigpLT5wbGF0Zm9ybUxh
eWVyKCksIGhvc3RJbXBsLT5yb290TGF5ZXIoKSkpOwotICAgIH0gZWxzZQorICAgIGVsc2UKICAg
ICAgICAgaG9zdEltcGwtPnNldFJvb3RMYXllcigwKTsKIAogICAgIG1fZnJhbWVOdW1iZXIrKzsK
QEAgLTE0NCw2ICsxMzksOCBAQCBQYXNzT3duUHRyPENDTGF5ZXJUcmVlSG9zdEltcGw+IENDTGF5
ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdEltcGwoKQogCiB2b2lkIENDTGF5ZXJUcmVl
SG9zdDo6ZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoYm9vbCBzdWNjZXNzKQogeworICAgIGlm
IChyb290TGF5ZXIoKSkKKyAgICAgICAgcm9vdExheWVyKCktPnBsYXRmb3JtTGF5ZXIoKS0+Y2xl
YW51cFJlc291cmNlc1JlY3Vyc2l2ZSgpOwogICAgIG1fY2xpZW50LT5kaWRSZWNyZWF0ZUdyYXBo
aWNzQ29udGV4dChzdWNjZXNzKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmNwcAppbmRleCA0M2M3NDU2Y2Y4ZjdiMzczOGNkNDUzNjkzODk5OWNlNGE3OGEzYjVmLi41
OTNmYWI4NTVlNjAxMzU2NTU2NTk0NGJkMzEzODA5NTdkMzI4NDk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApAQCAtMTQzLDEwICsxNDMsNiBAQCBib29sIENDTGF5
ZXJUcmVlSG9zdEltcGw6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKENDTGF5ZXJUcmVlSG9zdCog
aW1wbEhhY2ssIFBhcwogICAgICAgICAgICAgbGF5ZXJSZW5kZXJlciA9IExheWVyUmVuZGVyZXJD
aHJvbWl1bTo6Y3JlYXRlKG1fbGF5ZXJSZW5kZXJlci0+b3duZXIoKSwgdGhpcywgY29udGV4dCk7
CiAgICAgfQogCi0gICAgLy8gSWYgcmVjcmVhdGluZyByZW5kZXJlciwgdXBkYXRlIHRoZSBsYXll
cnMgdG8gcG9pbnQgYXQgdGhlIG5ldyByZW5kZXJlcgotICAgIGlmIChtX2xheWVyUmVuZGVyZXIp
Ci0gICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+cm9vdExheWVyKCktPnBsYXRmb3JtTGF5ZXIoKS0+
c2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShsYXllclJlbmRlcmVyLmdldCgpKTsKLQogICAgIG1f
bGF5ZXJSZW5kZXJlciA9IGxheWVyUmVuZGVyZXI7CiAgICAgcmV0dXJuIG1fbGF5ZXJSZW5kZXJl
cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTM3MWRhMWU5ZDYyNzA5ZmNhZTdl
MjcxODhjZTUzZWU1MTFlYjA0Ny4uMjM3NmE1Y2Y5YWMxMDkzODhmZDBmMWZiNzdlODM2MjgwZDUz
ZDNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0w
OS0wMSAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBnb29nbGUuY29tPgorCisgICAgICAgIFtjaHJv
bWl1bV0gUmVtb3ZlIExheWVyUmVuZGVyZXJDaHJvbWl1bSByZWZlcmVuY2VzIGZyb20gdGhlIExh
eWVyQ2hyb21pdW0gdHJlZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjY0MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDaGFuZ2UgcmVmZXJlbmNlcyB0byBMYXllclJlbmRlcmVyQ2hyb21pdW0gdG8gQ0NM
YXllclRyZWVIb3N0LgorCisgICAgICAgICogc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6YWNjZWxlcmF0
ZWRSZW5kZXJpbmdJblVzZSk6CisKIDIwMTEtMDgtMzEgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gSW50cm9kdWNlIENDU2luZ2xlVGhyZWFkUHJv
eHkgaW4gb3JkZXIgdG8gbW92ZSBMYXllclJlbmRlcmVyIHRvIENDTGF5ZXJUcmVlSG9zdEltcGwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xp
ZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuY3BwCmluZGV4IDVjODE0MTE3NThlNDNkYjhkNWJlMDNiNWE5ZmEwOGFjNWYwYjI2
NGYuLmNlNTFhZmNiNWRiYWY5YzY1NDY3YzJiNzUwMjM0ZGYyMzJhZjFiOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBs
LmNwcApAQCAtNTcyLDcgKzU3Miw3IEBAIGJvb2wgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpz
dXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3QKIAogYm9vbCBXZWJNZWRpYVBsYXll
ckNsaWVudEltcGw6OmFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2UoKQogewotICAgIHJldHVybiBt
X3ZpZGVvTGF5ZXIuZ2V0KCkgJiYgbV92aWRlb0xheWVyLT5sYXllclJlbmRlcmVyKCk7CisgICAg
cmV0dXJuIG1fdmlkZW9MYXllci5nZXQoKSAmJiBtX3ZpZGVvTGF5ZXItPmxheWVyVHJlZUhvc3Qo
KTsKIH0KIAogVmlkZW9GcmFtZUNocm9taXVtKiBXZWJNZWRpYVBsYXllckNsaWVudEltcGw6Omdl
dEN1cnJlbnRGcmFtZSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106013</attachid>
            <date>2011-09-01 12:51:02 -0700</date>
            <delta_ts>2011-09-01 16:26:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66430-20110901125100.patch</filename>
            <type>text/plain</type>
            <size>27089</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQzMjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1OTg4MjkzZGNhZWIwMmQ0
NWU2Mzk1NTgyNDA2ZmU1NmEyMjYyMGQ5Li4wNWU1MTYzMjQ5NDYwMmZiZDViNmNmN2EzNGE3ZWJk
YzRlNjMyZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTEtMDktMDEgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92
ZSBMYXllclJlbmRlcmVyQ2hyb21pdW0gcmVmZXJlbmNlcyBmcm9tIHRoZSBMYXllckNocm9taXVt
IHRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2
NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICBSZXBsYWNlIHJlZmVyZW5jZXMgdG8g
TGF5ZXJSZW5kZXJlckNocm9taXVtIGluIHRoZSBMYXllckNocm9taXVtIHRyZWUKKyAgICAgICAg
d2l0aCByZWZlcmVuY2VzIHRvIExheWVyVHJlZUhvc3QuIFRoZSBMYXllclJlbmRlcmVyQ2hyb21p
dW0gcHJvcGVydHkKKyAgICAgICAgaXMgbm8gbG9uZ2VyIHN5bmNlZCBhbmQgaW5zdGVhZCBpcyBz
ZXQgcmVjdXJzaXZlbHkgb24gdGhlIENDTGF5ZXJJbXBsCisgICAgICAgIHRyZWUgZHVyaW5nIGNv
bW1pdC4KKworICAgICAgICBXZWJHTExheWVyQ2hyb21pdW0ncyBwYWludFJlbmRlcmVkUmVzdWx0
c1RvQ2FudmFzIGZ1bmN0aW9uIGlzCisgICAgICAgIHRlbXBvcmFyaWx5IHR1cm5lZCBvZmYgZm9y
IHRocmVhZGVkIGNvbXBvc2l0aW5nIGJlY2F1c2UgaXQgbmVlZHMKKyAgICAgICAgYWNjZXNzIHRv
IHRoZSBjb21wb3NpdG9yIGNvbnRleHQuCisKKyAgICAgICAgUHJldmlvdXNseSwgY2hhbmdpbmcg
dGhlIGxheWVyIHJlbmRlcmVyIG9uIGEgbGF5ZXIgY2FsbGVkIGNsZWFudXAKKyAgICAgICAgcmVz
b3VyY2VzIG9uIHRoYXQgbGF5ZXIuICBOb3csIGNhbGwgdGhhdCBleHBsaWNpdGx5IGNsZWFuIHVw
IGFsbAorICAgICAgICByZXNvdXJjZXMgZXhwbGljaXRseSBmcm9tIHRoZSBwcm94eSB3aGVuIHRo
ZSBsYXllciByZW5kZXJlciBnZXRzCisgICAgICAgIGNyZWF0ZWQuIFRoaXMgY2xlYW5zIHVwIGFs
bCBvZiB0aGUgTWFuYWdlZFRleHR1cmUgb2JqZWN0cyB3aGljaCBtYXkgYmUKKyAgICAgICAgaGFu
Z2luZyBvbnRvIHN0YWxlIEdyYXBoaWNzQ29udGV4dDNEIHBvaW50ZXJzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllckNocm9taXVtOjpjbGVhbnVwUmVzb3VyY2VzUmVjdXJzaXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJDaHJvbWl1bTo6bGF5ZXJUcmVlSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpUaWxlZExheWVy
Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVU
aWxlU2l6ZUFuZFRpbGluZ09wdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hy
b21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNo
cm9taXVtOjp0ZXh0dXJlTWFuYWdlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGlsZWRMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
TGF5ZXJDaHJvbWl1bTo6VmlkZW9MYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvTGF5ZXJDaHJvbWl1bTo6Y2xlYW51cFJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpW
aWRlb0xheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9MYXllckNocm9taXVtOjpyZXNlcnZlVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTExheWVyQ2hyb21pdW06OnBhaW50UmVuZGVyZWRSZXN1bHRzVG9DYW52YXMp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xMYXllckNocm9taXVtOjpzZXRUZXh0dXJlVXBkYXRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTExheWVyQ2hyb21pdW06OmxheWVyUmVuZGVyZXJD
b250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVy
Q2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2V0TGF5ZXJSZW5k
ZXJlclJlY3Vyc2l2ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojpj
b21taXRUbyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OmRpZFJlY3JlYXRl
R3JhcGhpY3NDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdEltcGw6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKToKKwogMjAxMS0wOC0zMSAgTmF0IER1
Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBJbnRyb2R1Y2Ug
Q0NTaW5nbGVUaHJlYWRQcm94eSBpbiBvcmRlciB0byBtb3ZlIExheWVyUmVuZGVyZXIgdG8gQ0NM
YXllclRyZWVIb3N0SW1wbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCBlZWVhYmIyMTBhYTFi
MzI1ODljNjcxYjhjMzcxMTE0NDkyYjAzMzEwLi5kNjQ4OGIwNzYwMGZjMjY5NGE0ZmRjM2E4NGQy
MTgxZmJkNWJhMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtOTYsMzYgKzk2LDI5IEBA
IHZvaWQgTGF5ZXJDaHJvbWl1bTo6Y2xlYW51cFJlc291cmNlcygpCiB7CiB9CiAKLXZvaWQgTGF5
ZXJDaHJvbWl1bTo6c2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShMYXllclJlbmRlcmVyQ2hyb21p
dW0qIHJlbmRlcmVyKQordm9pZCBMYXllckNocm9taXVtOjpjbGVhbnVwUmVzb3VyY2VzUmVjdXJz
aXZlKCkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyAr
K2kpCi0gICAgICAgIGNoaWxkcmVuKClbaV0tPnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUocmVu
ZGVyZXIpOworICAgICAgICBjaGlsZHJlbigpW2ldLT5jbGVhbnVwUmVzb3VyY2VzUmVjdXJzaXZl
KCk7CiAKICAgICBpZiAobWFza0xheWVyKCkpCi0gICAgICAgIG1hc2tMYXllcigpLT5zZXRMYXll
clJlbmRlcmVyUmVjdXJzaXZlKHJlbmRlcmVyKTsKKyAgICAgICAgbWFza0xheWVyKCktPmNsZWFu
dXBSZXNvdXJjZXNSZWN1cnNpdmUoKTsKICAgICBpZiAocmVwbGljYUxheWVyKCkpCi0gICAgICAg
IHJlcGxpY2FMYXllcigpLT5zZXRMYXllclJlbmRlcmVyUmVjdXJzaXZlKHJlbmRlcmVyKTsKKyAg
ICAgICAgcmVwbGljYUxheWVyKCktPmNsZWFudXBSZXNvdXJjZXNSZWN1cnNpdmUoKTsKIAotICAg
IHNldExheWVyUmVuZGVyZXIocmVuZGVyZXIpOworICAgIGNsZWFudXBSZXNvdXJjZXMoKTsKIH0K
IAotdm9pZCBMYXllckNocm9taXVtOjpzZXRMYXllclJlbmRlcmVyKExheWVyUmVuZGVyZXJDaHJv
bWl1bSogcmVuZGVyZXIpCit2b2lkIExheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QoQ0NM
YXllclRyZWVIb3N0KiBob3N0KQogewogICAgIC8vIElmIHdlJ3JlIGNoYW5naW5nIGxheWVyIHJl
bmRlcmVycyB0aGVuIHdlIG5lZWQgdG8gZnJlZSB1cCBhbnkgcmVzb3VyY2VzCiAgICAgLy8gYWxs
b2NhdGVkIGJ5IHRoZSBvbGQgcmVuZGVyZXIuCi0gICAgaWYgKGxheWVyUmVuZGVyZXIoKSAmJiBs
YXllclJlbmRlcmVyKCkgIT0gcmVuZGVyZXIpIHsKKyAgICBpZiAobGF5ZXJUcmVlSG9zdCgpICYm
IGxheWVyVHJlZUhvc3QoKSAhPSBob3N0KSB7CiAgICAgICAgIGNsZWFudXBSZXNvdXJjZXMoKTsK
ICAgICAgICAgc2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgfQotICAgIG1fbGF5ZXJSZW5kZXJlciA9
IHJlbmRlcmVyOwogCi0gICAgLy8gRklYTUU6IE9uY2Ugc2V0TGF5ZXJSZW5kZXJlciBpcyBubyBs
b25nZXIgbmVlZGVkIG9uIHRoZSBMYXllckNocm9taXVtCi0gICAgLy8gdHJlZSwgbW92ZSB0aGlz
IGNhbGwgdG8gTGF5ZXJSZW5kZXJlckNocm9taXVtOjpwYWludExheWVyQ29udGVudHMuCi0gICAg
c2V0TGF5ZXJUcmVlSG9zdChyZW5kZXJlci0+b3duZXIoKSk7Ci19Ci0KLXZvaWQgTGF5ZXJDaHJv
bWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3QqKQoteworICAgIG1fbGF5ZXJU
cmVlSG9zdCA9IGhvc3Q7CiB9CiAKIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0TmVlZHNDb21taXQo
KQpAQCAtMzMyLDcgKzMyNSw2IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNU
byhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgbGF5ZXItPnNldERvdWJsZVNpZGVkKG1fZG91Ymxl
U2lkZWQpOwogICAgIGxheWVyLT5zZXREcmF3c0NvbnRlbnQoZHJhd3NDb250ZW50KCkpOwogICAg
IGxheWVyLT5zZXRJc1Jvb3RMYXllcihtX2lzUm9vdExheWVyKTsKLSAgICBsYXllci0+c2V0TGF5
ZXJSZW5kZXJlcihtX2xheWVyUmVuZGVyZXIuZ2V0KCkpOwogICAgIGxheWVyLT5zZXRNYXNrc1Rv
Qm91bmRzKG1fbWFza3NUb0JvdW5kcyk7CiAgICAgbGF5ZXItPnNldE5hbWUobV9uYW1lKTsKICAg
ICBsYXllci0+c2V0T3BhY2l0eShtX29wYWNpdHkpOwpAQCAtMzQ5LDEyICszNDEsNiBAQCB2b2lk
IExheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8oQ0NMYXllckltcGwqIGxheWVyKQogICAg
ICAgICByZXBsaWNhTGF5ZXIoKS0+cHVzaFByb3BlcnRpZXNUbyhsYXllci0+cmVwbGljYUxheWVy
KCkpOwogfQogCi1HcmFwaGljc0NvbnRleHQzRCogTGF5ZXJDaHJvbWl1bTo6bGF5ZXJSZW5kZXJl
ckNvbnRleHQoKSBjb25zdAotewotICAgIEFTU0VSVChsYXllclJlbmRlcmVyKCkpOwotICAgIHJl
dHVybiBsYXllclJlbmRlcmVyKCktPmNvbnRleHQoKTsKLX0KLQogdm9pZCBMYXllckNocm9taXVt
OjpkcmF3VGV4dHVyZWRRdWFkKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBUcmFu
c2Zvcm1hdGlvbk1hdHJpeCYgcHJvamVjdGlvbk1hdHJpeCwgY29uc3QgVHJhbnNmb3JtYXRpb25N
YXRyaXgmIGRyYXdNYXRyaXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCwgZmxvYXQgb3BhY2l0eSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWF0cml4TG9jYXRpb24sIGludCBhbHBoYUxvY2F0
aW9uKQpAQCAtNDM2LDExICs0MjIsNiBAQCB2b2lkIExheWVyQ2hyb21pdW06OnNldEJvcmRlcldp
ZHRoKGZsb2F0IHdpZHRoKQogICAgIHNldE5lZWRzQ29tbWl0KCk7CiB9CiAKLUxheWVyUmVuZGVy
ZXJDaHJvbWl1bSogTGF5ZXJDaHJvbWl1bTo6bGF5ZXJSZW5kZXJlcigpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fbGF5ZXJSZW5kZXJlci5nZXQoKTsKLX0KLQogdm9pZCBMYXllckNocm9taXVtOjpj
cmVhdGVSZW5kZXJTdXJmYWNlKCkKIHsKICAgICBBU1NFUlQoIW1fcmVuZGVyU3VyZmFjZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
ckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmgKaW5kZXggZmUyZTRjNzEzNzNiZTUyNWQ1OGM2M2I3Y2UwYTgxZWE4ZTFl
NWM4Ny4uYTdlYjIwODM1MjY3YTM0YTBhNDUwMzk4NmYxYjA1Yzg3MjQ3YjUxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uaApAQCAtNTUsNyArNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBD
Q0xheWVySW1wbDsKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4
dDNEOwotY2xhc3MgTGF5ZXJSZW5kZXJlckNocm9taXVtOwogCiAvLyBCYXNlIGNsYXNzIGZvciBj
b21wb3NpdGVkIGxheWVycy4gU3BlY2lhbCBsYXllciB0eXBlcyBhcmUgZGVyaXZlZCBmcm9tCiAv
LyB0aGlzIGNsYXNzLgpAQCAtMTUzLDEzICsxNTIsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJ
c1Jvb3RMYXllcihib29sIGlzUm9vdExheWVyKSB7IG1faXNSb290TGF5ZXIgPSBpc1Jvb3RMYXll
cjsgfQogICAgIGJvb2wgaXNSb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2lzUm9vdExheWVy
OyB9CiAKLSAgICB2b2lkIHNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUoTGF5ZXJSZW5kZXJlckNo
cm9taXVtKik7Ci0KLSAgICAvLyBEZXJpdmVkIHR5cGVzIG11c3Qgb3ZlcnJpZGUgdGhpcyBtZXRo
b2QgaWYgdGhleSBuZWVkIHRvIHJlYWN0IHRvIGEgY2hhbmdlCi0gICAgLy8gaW4gdGhlIExheWVy
UmVuZGVyZXJDaHJvbWl1bS4KLSAgICAvLyBGSVhNRSwgcmVwbGFjZSB3aXRoIENDTGF5ZXJUcmVl
SG9zdC4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJSZW5kZXJlcihMYXllclJlbmRlcmVyQ2hy
b21pdW0qKTsKLQogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVl
SG9zdCopOwogCiAgICAgdm9pZCBzZXRPd25lcihHcmFwaGljc0xheWVyQ2hyb21pdW0qIG93bmVy
KSB7IG1fb3duZXIgPSBvd25lcjsgfQpAQCAtMTkwLDEwICsxODIsNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCopOwogCi0gICAgLy8g
QmVnaW4gY2FsbHMgdGhhdCBmb3J3YXJkIHRvIHRoZSBDQ0xheWVySW1wbC4KLSAgICBMYXllclJl
bmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIoKSBjb25zdDsKLSAgICAvLyBFbmQgY2FsbHMg
dGhhdCBmb3J3YXJkIHRvIHRoZSBDQ0xheWVySW1wbC4KLQogICAgIHR5cGVkZWYgUHJvZ3JhbUJp
bmRpbmc8VmVydGV4U2hhZGVyUG9zLCBGcmFnbWVudFNoYWRlckNvbG9yPiBCb3JkZXJQcm9ncmFt
OwogCiAgICAgaW50IGlkKCkgY29uc3QgeyByZXR1cm4gbV9sYXllcklkOyB9CkBAIC0yMTgsNiAr
MjA2LDkgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBhbnkgb2YgdGhlIGxheWVy
J3MgZGVzY2VuZGFudHMgaGFzIGNvbnRlbnQgdG8gZHJhdy4KICAgICBib29sIGRlc2NlbmRhbnRE
cmF3c0NvbnRlbnQoKTsKIAorICAgIENDTGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC5nZXQoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBj
bGVhbnVwUmVzb3VyY2VzUmVjdXJzaXZlKCk7CisKIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0xh
eWVyQ2hyb21pdW0qIG1fb3duZXI7CiAgICAgZXhwbGljaXQgTGF5ZXJDaHJvbWl1bShHcmFwaGlj
c0xheWVyQ2hyb21pdW0qIG93bmVyKTsKQEAgLTIyNyw4ICsyMTgsNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgLy8gaG9sZCBjb250ZXh0LWRlcGVuZGVudCByZXNvdXJjZXMgc3VjaCBhcyB0ZXh0dXJlcy4K
ICAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cFJlc291cmNlcygpOwogCi0gICAgR3JhcGhpY3NDb250
ZXh0M0QqIGxheWVyUmVuZGVyZXJDb250ZXh0KCkgY29uc3Q7Ci0KICAgICBzdGF0aWMgdm9pZCB0
b0dMTWF0cml4KGZsb2F0KiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKIAogICAgIHZv
aWQgZHVtcExheWVyKFRleHRTdHJlYW0mLCBpbnQgaW5kZW50KSBjb25zdDsKQEAgLTI2Nyw3ICsy
NTYsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPiBtX2No
aWxkcmVuOwogICAgIExheWVyQ2hyb21pdW0qIG1fcGFyZW50OwogCi0gICAgUmVmUHRyPExheWVy
UmVuZGVyZXJDaHJvbWl1bT4gbV9sYXllclJlbmRlcmVyOworICAgIFJlZlB0cjxDQ0xheWVyVHJl
ZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKIAogICAgIC8vIExheWVyIHByb3BlcnRpZXMuCiAgICAg
SW50U2l6ZSBtX2JvdW5kczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmlu
ZGV4IDlkNzE0YWUzZGRjNzI4OGIwMjVmN2I3MTM5NWZiZDgyNDVlZTNhNDQuLmIzNWE1MmQ0NzUx
OGE1YTkyMjE4OWZiNDI1OTRkNzA0YTQ0YTVlY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmNwcApAQCAtNTgwLDkgKzU4MCwxMiBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJv
bWl1bTo6dXBkYXRlTGF5ZXJzKCkKIAogdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmRyYXdM
YXllcnMoKQogewotICAgIGlmICghcm9vdExheWVyKCkpCisgICAgaWYgKCFyb290TGF5ZXJJbXBs
KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIEZJWE1FOiBObyBuZWVkIHRvIHdhbGsgdGhl
IHRyZWUgaGVyZS4gVGhpcyBjb3VsZCBiZSBwYXNzZWQgdmlhIGRyYXcuCisgICAgcm9vdExheWVy
SW1wbCgpLT5zZXRMYXllclJlbmRlcmVyUmVjdXJzaXZlKHRoaXMpOworCiAgICAgbV9yZW5kZXJT
dXJmYWNlVGV4dHVyZU1hbmFnZXItPnNldE1lbW9yeUxpbWl0Qnl0ZXModGV4dHVyZU1lbW9yeUhp
Z2hMaW1pdEJ5dGVzIC0gbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5jdXJyZW50TWVtb3J5VXNl
Qnl0ZXMoKSk7CiAgICAgZHJhd0xheWVyc0ludGVybmFsKCk7CiAKQEAgLTY1OSwxMSArNjYyLDYg
QEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OnBhaW50TGF5ZXJDb250ZW50cyhjb25zdCBM
YXllckxpc3QmIHJlbmRlclN1cmZhY2VMYXkKICAgICAgICAgUmVuZGVyU3VyZmFjZUNocm9taXVt
KiByZW5kZXJTdXJmYWNlID0gcmVuZGVyU3VyZmFjZUxheWVyLT5yZW5kZXJTdXJmYWNlKCk7CiAg
ICAgICAgIEFTU0VSVChyZW5kZXJTdXJmYWNlKTsKIAotICAgICAgICAvLyBNYWtlIHN1cmUgYW55
IHJlbmRlclN1cmZhY2VMYXllciBpcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBsYXllclJlbmRlcmVy
LgotICAgICAgICAvLyBUaGlzIGlzIGEgZGVmZW5zaXZlIGFzc2lnbm1lbnQgaW4gY2FzZSB0aGUg
b3duZXIgb2YgdGhpcyBsYXllciBoYXNuJ3QKLSAgICAgICAgLy8gc2V0IHRoZSBsYXllclJlbmRl
cmVyIG9uIHRoaXMgbGF5ZXIgYWxyZWFkeS4KLSAgICAgICAgcmVuZGVyU3VyZmFjZUxheWVyLT5z
ZXRMYXllclJlbmRlcmVyKHRoaXMpOwotCiAgICAgICAgIC8vIFJlbmRlciBzdXJmYWNlcyB3aG9z
ZSBkcmF3YWJsZSBhcmVhIGhhcyB6ZXJvIHdpZHRoIG9yIGhlaWdodAogICAgICAgICAvLyB3aWxs
IGhhdmUgbm8gbGF5ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGVtIGFuZCBzaG91bGQgYmUgc2tpcHBl
ZC4KICAgICAgICAgaWYgKCFyZW5kZXJTdXJmYWNlLT5sYXllckxpc3QoKS5zaXplKCkpCkBAIC02
ODIsMTcgKzY4MCwxNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6cGFpbnRMYXllckNv
bnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheQogICAgICAgICAgICAgaWYg
KGxheWVyLT5yZW5kZXJTdXJmYWNlKCkgJiYgbGF5ZXItPnJlbmRlclN1cmZhY2UoKSAhPSByZW5k
ZXJTdXJmYWNlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBsYXll
ci0+c2V0TGF5ZXJSZW5kZXJlcih0aGlzKTsKKyAgICAgICAgICAgIGxheWVyLT5zZXRMYXllclRy
ZWVIb3N0KG93bmVyKCkpOwogCiAgICAgICAgICAgICBpZiAoIWxheWVyLT5vcGFjaXR5KCkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGlmIChsYXllci0+bWFza0xh
eWVyKCkpCi0gICAgICAgICAgICAgICAgbGF5ZXItPm1hc2tMYXllcigpLT5zZXRMYXllclJlbmRl
cmVyKHRoaXMpOworICAgICAgICAgICAgICAgIGxheWVyLT5tYXNrTGF5ZXIoKS0+c2V0TGF5ZXJU
cmVlSG9zdChvd25lcigpKTsKICAgICAgICAgICAgIGlmIChsYXllci0+cmVwbGljYUxheWVyKCkp
IHsKLSAgICAgICAgICAgICAgICBsYXllci0+cmVwbGljYUxheWVyKCktPnNldExheWVyUmVuZGVy
ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnJlcGxpY2FMYXllcigpLT5zZXRMYXll
clRyZWVIb3N0KG93bmVyKCkpOwogICAgICAgICAgICAgICAgIGlmIChsYXllci0+cmVwbGljYUxh
eWVyKCktPm1hc2tMYXllcigpKQotICAgICAgICAgICAgICAgICAgICBsYXllci0+cmVwbGljYUxh
eWVyKCktPm1hc2tMYXllcigpLT5zZXRMYXllclJlbmRlcmVyKHRoaXMpOworICAgICAgICAgICAg
ICAgICAgICBsYXllci0+cmVwbGljYUxheWVyKCktPm1hc2tMYXllcigpLT5zZXRMYXllclRyZWVI
b3N0KG93bmVyKCkpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAobGF5ZXItPmJv
dW5kcygpLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwCmlu
ZGV4IDAwNjE0MzMyNTU5YTRmM2M0OGM0OWRkODQxNDk3NzU0YzEzOWJhYzQuLmE1ZmQ3NGIxOTAy
MGZmNDIxZDQ2NTdmN2VjZGU5N2MzZmIyYzE4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFj
ZUNocm9taXVtLmNwcApAQCAtNDgsMTIgKzQ4LDYgQEAgUmVuZGVyU3VyZmFjZUNocm9taXVtOjp+
UmVuZGVyU3VyZmFjZUNocm9taXVtKCkKIHsKIH0KIAotTGF5ZXJSZW5kZXJlckNocm9taXVtKiBS
ZW5kZXJTdXJmYWNlQ2hyb21pdW06OmxheWVyUmVuZGVyZXIoKQotewotICAgIEFTU0VSVChtX293
bmluZ0xheWVyKTsKLSAgICByZXR1cm4gbV9vd25pbmdMYXllci0+bGF5ZXJSZW5kZXJlcigpOwot
fQotCiBGbG9hdFJlY3QgUmVuZGVyU3VyZmFjZUNocm9taXVtOjpkcmF3YWJsZUNvbnRlbnRSZWN0
KCkgY29uc3QKIHsKICAgICBGbG9hdFJlY3QgbG9jYWxDb250ZW50UmVjdCgtMC41ICogbV9jb250
ZW50UmVjdC53aWR0aCgpLCAtMC41ICogbV9jb250ZW50UmVjdC5oZWlnaHQoKSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZh
Y2VDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
UmVuZGVyU3VyZmFjZUNocm9taXVtLmgKaW5kZXggNTFiZGNmYTUxMTljZjI2Y2ZiMDZkMmJmMWU4
YmUxNmExOTdjNDVkNC4uNGEwNjJjNTY0MGZkNDQ5MThkMjliOTNjNjY5YjkyNzk0Njg0MzM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVu
ZGVyU3VyZmFjZUNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmgKQEAgLTg3LDggKzg3LDYgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0TWFza0xheWVyKExheWVyQ2hyb21pdW0qIG1hc2tMYXllcikgeyBt
X21hc2tMYXllciA9IG1hc2tMYXllcjsgfQogCiBwcml2YXRlOgotICAgIExheWVyUmVuZGVyZXJD
aHJvbWl1bSogbGF5ZXJSZW5kZXJlcigpOwotCiAgICAgTGF5ZXJDaHJvbWl1bSogbV9vd25pbmdM
YXllcjsKICAgICBMYXllckNocm9taXVtKiBtX21hc2tMYXllcjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5jcHAKaW5kZXggY2ZkZjEyM2FmYTc0M2RiMjE2MTQzN2ZkOWJlOWQzNDQ3MThm
NDZhOS4uYzkxZGJhN2M0MzkxMmFjZGUzZjdlMDAxNWU1YTRiMDBjOWQzN2U5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNo
cm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCkBAIC02NSw3ICs2NSw2IEBAIHByaXZhdGU6CiAKIFRp
bGVkTGF5ZXJDaHJvbWl1bTo6VGlsZWRMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1
bSogb3duZXIpCiAgICAgOiBMYXllckNocm9taXVtKG93bmVyKQotICAgICwgbV9sYXllclRyZWVI
b3N0KDApCiAgICAgLCBtX3RpbGluZ09wdGlvbihBdXRvVGlsZSkKICAgICAsIG1fdGV4dHVyZUZv
cm1hdChHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKQogICAgICwgbV9za2lwc0RyYXco
ZmFsc2UpCkBAIC0xMTYsNyArMTE1LDcgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0
ZVRpbGVTaXplQW5kVGlsaW5nT3B0aW9uKCkKICAgICAgICAgaXNUaWxlZCA9IGF1dG9UaWxlZDsK
IAogICAgIEludFNpemUgcmVxdWVzdGVkU2l6ZSA9IGlzVGlsZWQgPyB0aWxlU2l6ZSA6IGNvbnRl
bnRCb3VuZHMoKTsKLSAgICBjb25zdCBpbnQgbWF4U2l6ZSA9IG1fbGF5ZXJUcmVlSG9zdC0+bGF5
ZXJSZW5kZXJlckNhcGFiaWxpdGllcygpLm1heFRleHR1cmVTaXplOworICAgIGNvbnN0IGludCBt
YXhTaXplID0gbGF5ZXJUcmVlSG9zdCgpLT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkubWF4
VGV4dHVyZVNpemU7CiAgICAgSW50U2l6ZSBjbGFtcGVkU2l6ZSA9IHJlcXVlc3RlZFNpemUuc2hy
dW5rVG8oSW50U2l6ZShtYXhTaXplLCBtYXhTaXplKSk7CiAgICAgbV90aWxlci0+c2V0VGlsZVNp
emUoY2xhbXBlZFNpemUpOwogfQpAQCAtMTM4LDcgKzEzNyw3IEBAIGJvb2wgVGlsZWRMYXllckNo
cm9taXVtOjpkcmF3c0NvbnRlbnQoKSBjb25zdAogdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnNl
dExheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0KiBob3N0KQogewogICAgIExheWVyQ2hyb21p
dW06OnNldExheWVyVHJlZUhvc3QoaG9zdCk7Ci0gICAgbV9sYXllclRyZWVIb3N0ID0gaG9zdDsK
KwogICAgIGlmIChtX3RpbGVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTI4MSw5ICsyODAsOSBA
QCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFt
JiB0cywgaW50IGluZGVudCkgY29uc3QKIAogVGV4dHVyZU1hbmFnZXIqIFRpbGVkTGF5ZXJDaHJv
bWl1bTo6dGV4dHVyZU1hbmFnZXIoKSBjb25zdAogewotICAgIGlmICghbGF5ZXJSZW5kZXJlcigp
KQorICAgIGlmICghbGF5ZXJUcmVlSG9zdCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1
cm4gbGF5ZXJSZW5kZXJlcigpLT5jb250ZW50c1RleHR1cmVNYW5hZ2VyKCk7CisgICAgcmV0dXJu
IGxheWVyVHJlZUhvc3QoKS0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpOwogfQogCiBVcGRhdGFi
bGVUaWxlKiBUaWxlZExheWVyQ2hyb21pdW06OnRpbGVBdChpbnQgaSwgaW50IGopIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxl
ZExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGJiMjg2ZDY2MGRhYWU5MTU4YjZiMDUyMDY2
MzA0NTFiMzkwY2NhN2IuLjU4NTY5MTgxNDQwNjkzZjYwZjZkZDZiMjk5Y2JiOWRjODlkMWE0NWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCkBAIC04OCw4ICs4OCw2IEBAIHByaXZhdGU6
CiAKICAgICBUZXh0dXJlTWFuYWdlciogdGV4dHVyZU1hbmFnZXIoKSBjb25zdDsKIAotICAgIEND
TGF5ZXJUcmVlSG9zdCogbV9sYXllclRyZWVIb3N0OwotCiAgICAgLy8gU3RhdGUgaGVsZCBiZXR3
ZWVuIHVwZGF0ZSBhbmQgdXBsb2FkLgogICAgIEludFJlY3QgbV9wYWludFJlY3Q7CiAgICAgSW50
UmVjdCBtX3VwZGF0ZVJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcAppbmRleCA3
NjA3MjgxZjBmMGQxODQzMWEzN2FiMmU2NTBiODIxMTA3YmE1ZWEyLi4zYWM1NzQ3Zjk0N2Q5MjM3
ZGIzMjgyZjU2YWQ4NmYyMGZiYTVmMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHAKQEAgLTU2LDcgKzU2LDYgQEAgVmlkZW9MYXllckNocm9taXVtOjpWaWRlb0xheWVyQ2hyb21p
dW0oR3JhcGhpY3NMYXllckNocm9taXVtKiBvd25lciwgVmlkZW9GcmFtZVAKICAgICAsIG1fc2tp
cHNEcmF3KHRydWUpCiAgICAgLCBtX2ZyYW1lRm9ybWF0KFZpZGVvRnJhbWVDaHJvbWl1bTo6SW52
YWxpZCkKICAgICAsIG1fcHJvdmlkZXIocHJvdmlkZXIpCi0gICAgLCBtX2xheWVyVHJlZUhvc3Qo
MCkKICAgICAsIG1fY3VycmVudEZyYW1lKDApCiB7CiB9CkBAIC03NCw2ICs3Myw4IEBAIFBhc3NS
ZWZQdHI8Q0NMYXllckltcGw+IFZpZGVvTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlQ0NMYXllckltcGwo
KQogdm9pZCBWaWRlb0xheWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXMoKQogewogICAgIExh
eWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXMoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IDM7ICsraSkKKyAgICAgICAgbV90ZXh0dXJlc1tpXS5tX3RleHR1cmUuY2xlYXIoKTsKICAg
ICByZWxlYXNlQ3VycmVudEZyYW1lKCk7CiB9CiAKQEAgLTE0NSwxOCArMTQ2LDE2IEBAIHZvaWQg
VmlkZW9MYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikK
ICAgICB9CiB9CiAKLXZvaWQgVmlkZW9MYXllckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0KEND
TGF5ZXJUcmVlSG9zdCogbGF5ZXJUcmVlSG9zdCkKK3ZvaWQgVmlkZW9MYXllckNocm9taXVtOjpz
ZXRMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdCogaG9zdCkKIHsKLSAgICBMYXllckNocm9t
aXVtOjpzZXRMYXllclRyZWVIb3N0KGxheWVyVHJlZUhvc3QpOwotICAgIGlmIChtX2xheWVyVHJl
ZUhvc3QgPT0gbGF5ZXJUcmVlSG9zdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sYXllclRy
ZWVIb3N0ID0gbGF5ZXJUcmVlSG9zdDsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzsg
KytpKSB7Ci0gICAgICAgIG1fdGV4dHVyZXNbaV0ubV92aXNpYmxlU2l6ZSA9IEludFNpemUoKTsK
LSAgICAgICAgbV90ZXh0dXJlc1tpXS5tX3RleHR1cmUgPSBNYW5hZ2VkVGV4dHVyZTo6Y3JlYXRl
KGxheWVyVHJlZUhvc3QtPmNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKSk7CisgICAgaWYgKGxheWVy
VHJlZUhvc3QoKSAhPSBob3N0KSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzsg
KytpKSB7CisgICAgICAgICAgICBtX3RleHR1cmVzW2ldLm1fdmlzaWJsZVNpemUgPSBJbnRTaXpl
KCk7CisgICAgICAgICAgICBtX3RleHR1cmVzW2ldLm1fdGV4dHVyZSA9IE1hbmFnZWRUZXh0dXJl
OjpjcmVhdGUoaG9zdC0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpKTsKKyAgICAgICAgfQogICAg
IH0KKworICAgIExheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QoaG9zdCk7CiB9CiAKIEdD
M0RlbnVtIFZpZGVvTGF5ZXJDaHJvbWl1bTo6ZGV0ZXJtaW5lVGV4dHVyZUZvcm1hdChjb25zdCBW
aWRlb0ZyYW1lQ2hyb21pdW0qIGZyYW1lKQpAQCAtMTc1LDExICsxNzQsMTEgQEAgR0MzRGVudW0g
VmlkZW9MYXllckNocm9taXVtOjpkZXRlcm1pbmVUZXh0dXJlRm9ybWF0KGNvbnN0IFZpZGVvRnJh
bWVDaHJvbWl1bSogZnIKIAogYm9vbCBWaWRlb0xheWVyQ2hyb21pdW06OnJlc2VydmVUZXh0dXJl
cyhjb25zdCBWaWRlb0ZyYW1lQ2hyb21pdW0qIGZyYW1lLCBHQzNEZW51bSB0ZXh0dXJlRm9ybWF0
KQogewotICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIEFTU0VSVChsYXllclRyZWVI
b3N0KCkpOwogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgQVNTRVJUKHRleHR1cmVGb3JtYXQgIT0g
R3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOwogCi0gICAgaW50IG1heFRleHR1cmVT
aXplID0gbV9sYXllclRyZWVIb3N0LT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkubWF4VGV4
dHVyZVNpemU7CisgICAgaW50IG1heFRleHR1cmVTaXplID0gbGF5ZXJUcmVlSG9zdCgpLT5sYXll
clJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkubWF4VGV4dHVyZVNpemU7CiAKICAgICBmb3IgKHVuc2ln
bmVkIHBsYW5lID0gMDsgcGxhbmUgPCBmcmFtZS0+cGxhbmVzKCk7IHBsYW5lKyspIHsKICAgICAg
ICAgSW50U2l6ZSByZXF1aXJlZFRleHR1cmVTaXplID0gZnJhbWUtPnJlcXVpcmVkVGV4dHVyZVNp
emUocGxhbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaAppbmRleCA1ZTQ1MzRjOGE3NjMx
ZTJjMWI1YmVmMzQyMWJmZTQyN2RhNjZmYTA0Li43YjE1NmZiMTQwYWIwMWQzZDVkOWYxN2Y0ZTM0
YmU3M2YyNzNiZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaApAQCAtODMsNyArODMs
NiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9za2lwc0RyYXc7CiAgICAgVmlkZW9GcmFtZUNocm9t
aXVtOjpGb3JtYXQgbV9mcmFtZUZvcm1hdDsKICAgICBWaWRlb0ZyYW1lUHJvdmlkZXIqIG1fcHJv
dmlkZXI7Ci0gICAgQ0NMYXllclRyZWVIb3N0KiBtX2xheWVyVHJlZUhvc3Q7CiAKICAgICBUZXh0
dXJlIG1fdGV4dHVyZXNbM107CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21pdW0uY3BwCmluZGV4
IDAzMTljMTRhYjRjZTlkMTQyZjU1MjgwYWM1NDkwNWIwOTFhODYxYzQuLjhiNzBiMWE0MjhmY2E1
NWQ5Y2M2NTkzZDY1YzUzNzA4ZTdmZmY0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVt
LmNwcApAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYkdMTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29t
cG9zaXRvclJlc291cmNlcyhHcmFwaGljc0NvbnRleHQzRCogcmVuZGVyZXJDbwogCiBib29sIFdl
YkdMTGF5ZXJDaHJvbWl1bTo6cGFpbnRSZW5kZXJlZFJlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZl
ciogaW1hZ2VCdWZmZXIpCiB7Ci0gICAgaWYgKG1fdGV4dHVyZVVwZGF0ZWQgfHwgIWxheWVyUmVu
ZGVyZXIoKSB8fCAhZHJhd3NDb250ZW50KCkpCisgICAgaWYgKG1fdGV4dHVyZVVwZGF0ZWQgfHwg
IWxheWVyUmVuZGVyZXJDb250ZXh0KCkgfHwgIWRyYXdzQ29udGVudCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBJbnRTaXplIGZyYW1lYnVmZmVyU2l6ZSA9IG1fY29udGV4dC0+Z2V0
SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKTsKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFdlYkdM
TGF5ZXJDaHJvbWl1bTo6c2V0VGV4dHVyZVVwZGF0ZWQoKQogICAgIG1fdGV4dHVyZVVwZGF0ZWQg
PSB0cnVlOwogICAgIC8vIElmIFdlYkdMIGNvbW1hbmRzIGFyZSBpc3N1ZWQgb3V0c2lkZSBvZiBh
IHRoZSBhbmltYXRpb24gY2FsbGJhY2tzLCB0aGVuIHVzZQogICAgIC8vIGNhbGwgcmF0ZUxpbWl0
T2Zmc2NyZWVuQ29udGV4dENIUk9NSVVNKCkgdG8ga2VlcCB0aGUgY29udGV4dCBmcm9tIGdldHRp
bmcgdG9vIGZhciBhaGVhZC4KLSAgICBpZiAobGF5ZXJSZW5kZXJlcigpICYmICFsYXllclJlbmRl
cmVyKCktPm93bmVyKCktPmFuaW1hdGluZygpICYmIG1fY29udGV4dFN1cHBvcnRzUmF0ZUxpbWl0
aW5nRXh0ZW5zaW9uICYmICFtX3JhdGVMaW1pdGluZ1RpbWVyLmlzQWN0aXZlKCkpCisgICAgaWYg
KGxheWVyVHJlZUhvc3QoKSAmJiAhbGF5ZXJUcmVlSG9zdCgpLT5hbmltYXRpbmcoKSAmJiBtX2Nv
bnRleHRTdXBwb3J0c1JhdGVMaW1pdGluZ0V4dGVuc2lvbiAmJiAhbV9yYXRlTGltaXRpbmdUaW1l
ci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3JhdGVMaW1pdGluZ1RpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKIH0KIApAQCAtMTQ0LDYgKzE0NCwxNyBAQCB2b2lkIFdlYkdMTGF5ZXJDaHJvbWl1bTo6c2V0
Q29udGV4dChjb25zdCBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICBtX2NvbnRleHRT
dXBwb3J0c1JhdGVMaW1pdGluZ0V4dGVuc2lvbiA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygp
LT5zdXBwb3J0cygiR0xfQ0hST01JVU1fcmF0ZV9saW1pdF9vZmZzY3JlZW5fY29udGV4dCIpOwog
fQogCitHcmFwaGljc0NvbnRleHQzRCogV2ViR0xMYXllckNocm9taXVtOjpsYXllclJlbmRlcmVy
Q29udGV4dCgpCit7CisjaWYgVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQorICAgIC8vIEZJWE1F
OiBJbiB0aGUgdGhyZWFkZWQgY2FzZSwgcGFpbnRSZW5kZXJlZFJlc3VsdHNUb0NhbnZhcyBtdXN0
IGJlCisgICAgLy8gcmVmYWN0b3JlZCB0byBiZSBhc3luY2hyb25vdXMuIEN1cnJlbnRseSB0aGlz
IGlzIHVuaW1wbGVtZW50ZWQuCisgICAgcmV0dXJuIDA7CisjZWxzZQorICAgIHJldHVybiBsYXll
clRyZWVIb3N0KCktPmNvbnRleHQoKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYkdMTGF5ZXJDaHJv
bWl1bTo6cmF0ZUxpbWl0Q29udGV4dChUaW1lcjxXZWJHTExheWVyQ2hyb21pdW0+KikKIHsKICAg
ICBUUkFDRV9FVkVOVCgiV2ViR0xMYXllckNocm9taXVtOjpyYXRlTGltaXRDb250ZXh0IiwgdGhp
cywgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9XZWJHTExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDFlYThmYzExYjA5M2ZiNWFj
MWFmNTY5ZGQ5YjJjOTcwZTIxZGQ2YzAuLjg2MmZhODhmM2ZiMDg4ZTk2ODg5MjQ4ZjgzMjRiYzQ2
MjNmMDViMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5oCkBAIC02NCw2ICs2NCw4IEBA
IHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR0xMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJD
aHJvbWl1bSogb3duZXIpOwogICAgIGZyaWVuZCBjbGFzcyBXZWJHTExheWVyQ2hyb21pdW1SYXRl
TGltaXRUYXNrOwogCisgICAgR3JhcGhpY3NDb250ZXh0M0QqIGxheWVyUmVuZGVyZXJDb250ZXh0
KCk7CisKICAgICB2b2lkIHJhdGVMaW1pdENvbnRleHQoVGltZXI8V2ViR0xMYXllckNocm9taXVt
PiopOwogCiAgICAgLy8gR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtTGF5ZXIgaGFzIGEgc2lk
ZS1lZmZlY3Qgb2YgYXNzaWduaW5nIGl0c2VsZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCmluZGV4
IDc0NTg2MWFhMzA1YTBiNWY0MDY2ODA3MGViYTNmZmU2Mzc2MDZlYWMuLjk4M2Q0YmUwMTY0ZGRk
Njk2YjQyYzdmZDQ5OGJmY2U3MTE0NGU3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKQEAg
LTExOSw2ICsxMTksMTkgQEAgdm9pZCBDQ0xheWVySW1wbDo6c2V0TGF5ZXJSZW5kZXJlcihMYXll
clJlbmRlcmVyQ2hyb21pdW0qIHJlbmRlcmVyKQogICAgIG1fbGF5ZXJSZW5kZXJlciA9IHJlbmRl
cmVyOwogfQogCit2b2lkIENDTGF5ZXJJbXBsOjpzZXRMYXllclJlbmRlcmVyUmVjdXJzaXZlKExh
eWVyUmVuZGVyZXJDaHJvbWl1bSogcmVuZGVyZXIpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQorICAgICAgICBjaGlsZHJlbigpW2ldLT5zZXRM
YXllclJlbmRlcmVyUmVjdXJzaXZlKHJlbmRlcmVyKTsKKworICAgIGlmIChtYXNrTGF5ZXIoKSkK
KyAgICAgICAgbWFza0xheWVyKCktPnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUocmVuZGVyZXIp
OworICAgIGlmIChyZXBsaWNhTGF5ZXIoKSkKKyAgICAgICAgcmVwbGljYUxheWVyKCktPnNldExh
eWVyUmVuZGVyZXJSZWN1cnNpdmUocmVuZGVyZXIpOworCisgICAgc2V0TGF5ZXJSZW5kZXJlcihy
ZW5kZXJlcik7Cit9CisKIHZvaWQgQ0NMYXllckltcGw6OmNyZWF0ZVJlbmRlclN1cmZhY2UoKQog
ewogICAgIEFTU0VSVCghbV9yZW5kZXJTdXJmYWNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmluZGV4
IDgzYjAzNDYwMjA1Nzg2NDVmNDc5ZmI3OGViOWE5MWM2NWRhNjUyNTMuLjFjZWU0ZDMyYTgwYWM3
ZjNmODg1OWIwZGZmZWVmOWQ0YzRlNGY3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAtMTI0
LDYgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdEZWJ1Z0JvcmRlcigpOwogCiAgICAg
dm9pZCBzZXRMYXllclJlbmRlcmVyKExheWVyUmVuZGVyZXJDaHJvbWl1bSopOworICAgIHZvaWQg
c2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShMYXllclJlbmRlcmVyQ2hyb21pdW0qKTsKICAgICBM
YXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX2xh
eWVyUmVuZGVyZXIuZ2V0KCk7IH0KIAogICAgIENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyU3VyZmFjZS5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggZGViOWQ0ZmQ2NDNkZWY0MjNjYTEyYTNiYjdlZmY2MTVm
M2NkZTY5ZC4uNTkyOWJjYzE4MThmYmQ3YjhhOTA3OTJjMWUyOWU2NmZhYjIyNDU4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0xMTQsMTQgKzExNCw5IEBAIHZvaWQgQ0NM
YXllclRyZWVIb3N0Ojpjb21taXRUbyhDQ0xheWVyVHJlZUhvc3RJbXBsKiBob3N0SW1wbCkKICAg
ICBob3N0SW1wbC0+c2V0U291cmNlRnJhbWVOdW1iZXIoZnJhbWVOdW1iZXIoKSk7CiAKICAgICAv
LyBTeW5jaHJvbml6ZSB0cmVlcywgaWYgb25lIGV4aXN0cyBhdCBhbGwuLi4KLSAgICBpZiAocm9v
dExheWVyKCkpIHsKLSAgICAgICAgLy8gVGhlIGxheWVyUmVuZGVyZXIgbmVlZHMgdG8gYmUgc2V0
IHNvIHRoYXQgY2hpbGQgbGF5ZXJzIHBpY2sgdXAgdGhlIGxheWVyUmVuZGVyZXIKLSAgICAgICAg
Ly8gYXMgd2VsbCBkdXJpbmcgdGhlIHN5bmNocm9uaXplIHN0ZXAuCi0gICAgICAgIGlmIChyb290
TGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLT5sYXllclJlbmRlcmVyKCkgIT0gaG9zdEltcGwtPmxh
eWVyUmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJvb3RMYXllcigpLT5wbGF0Zm9ybUxheWVyKCkt
PnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUoaG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKSk7Ci0K
KyAgICBpZiAocm9vdExheWVyKCkpCiAgICAgICAgIGhvc3RJbXBsLT5zZXRSb290TGF5ZXIoVHJl
ZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhyb290TGF5ZXIoKS0+cGxhdGZvcm1MYXll
cigpLCBob3N0SW1wbC0+cm9vdExheWVyKCkpKTsKLSAgICB9IGVsc2UKKyAgICBlbHNlCiAgICAg
ICAgIGhvc3RJbXBsLT5zZXRSb290TGF5ZXIoMCk7CiAKICAgICBtX2ZyYW1lTnVtYmVyKys7CkBA
IC0xNDQsNiArMTM5LDggQEAgUGFzc093blB0cjxDQ0xheWVyVHJlZUhvc3RJbXBsPiBDQ0xheWVy
VHJlZUhvc3Q6OmNyZWF0ZUxheWVyVHJlZUhvc3RJbXBsKCkKIAogdm9pZCBDQ0xheWVyVHJlZUhv
c3Q6OmRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wgc3VjY2VzcykKIHsKKyAgICBpZiAo
cm9vdExheWVyKCkpCisgICAgICAgIHJvb3RMYXllcigpLT5wbGF0Zm9ybUxheWVyKCktPmNsZWFu
dXBSZXNvdXJjZXNSZWN1cnNpdmUoKTsKICAgICBtX2NsaWVudC0+ZGlkUmVjcmVhdGVHcmFwaGlj
c0NvbnRleHQoc3VjY2Vzcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1w
bC5jcHAKaW5kZXggNDNjNzQ1NmNmOGY3YjM3MzhjZDQ1MzY5Mzg5OTljZTRhNzhhM2I1Zi4uNTkz
ZmFiODU1ZTYwMTM1NjU1NjU5NDRiZDMxMzgwOTU3ZDMyODQ5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0SW1wbC5jcHAKQEAgLTE0MywxMCArMTQzLDYgQEAgYm9vbCBDQ0xheWVy
VHJlZUhvc3RJbXBsOjppbml0aWFsaXplTGF5ZXJSZW5kZXJlcihDQ0xheWVyVHJlZUhvc3QqIGlt
cGxIYWNrLCBQYXMKICAgICAgICAgICAgIGxheWVyUmVuZGVyZXIgPSBMYXllclJlbmRlcmVyQ2hy
b21pdW06OmNyZWF0ZShtX2xheWVyUmVuZGVyZXItPm93bmVyKCksIHRoaXMsIGNvbnRleHQpOwog
ICAgIH0KIAotICAgIC8vIElmIHJlY3JlYXRpbmcgcmVuZGVyZXIsIHVwZGF0ZSB0aGUgbGF5ZXJz
IHRvIHBvaW50IGF0IHRoZSBuZXcgcmVuZGVyZXIKLSAgICBpZiAobV9sYXllclJlbmRlcmVyKQot
ICAgICAgICBtX2xheWVyUmVuZGVyZXItPnJvb3RMYXllcigpLT5wbGF0Zm9ybUxheWVyKCktPnNl
dExheWVyUmVuZGVyZXJSZWN1cnNpdmUobGF5ZXJSZW5kZXJlci5nZXQoKSk7Ci0KICAgICBtX2xh
eWVyUmVuZGVyZXIgPSBsYXllclJlbmRlcmVyOwogICAgIHJldHVybiBtX2xheWVyUmVuZGVyZXI7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDkzNzFkYTFlOWQ2MjcwOWZjYWU3ZTI3
MTg4Y2U1M2VlNTExZWIwNDcuLjIzNzZhNWNmOWFjMTA5Mzg4ZmQwZjFmYjc3ZTgzNjI4MGQ1M2Qz
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDkt
MDEgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21p
dW1dIFJlbW92ZSBMYXllclJlbmRlcmVyQ2hyb21pdW0gcmVmZXJlbmNlcyBmcm9tIHRoZSBMYXll
ckNocm9taXVtIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY2NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ2hhbmdlIHJlZmVyZW5jZXMgdG8gTGF5ZXJSZW5kZXJlckNocm9taXVtIHRvIENDTGF5
ZXJUcmVlSG9zdC4KKworICAgICAgICAqIHNyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNsaWVudEltcGw6OmFjY2VsZXJhdGVk
UmVuZGVyaW5nSW5Vc2UpOgorCiAyMDExLTA4LTMxICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEludHJvZHVjZSBDQ1NpbmdsZVRocmVhZFByb3h5
IGluIG9yZGVyIHRvIG1vdmUgTGF5ZXJSZW5kZXJlciB0byBDQ0xheWVyVHJlZUhvc3RJbXBsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTWVkaWFQbGF5ZXJDbGll
bnRJbXBsLmNwcAppbmRleCA1YzgxNDExNzU4ZTQzZGI4ZDViZTAzYjVhOWZhMDhhYzVmMGIyNjRm
Li5jZTUxYWZjYjVkYmFmOWM2NTQ2N2MyYjc1MDIzNGRmMjMyYWYxYjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1lZGlhUGxheWVyQ2xpZW50SW1wbC5j
cHAKQEAgLTU3Miw3ICs1NzIsNyBAQCBib29sIFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6c3Vw
cG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiAKIGJvb2wgV2ViTWVkaWFQbGF5ZXJD
bGllbnRJbXBsOjphY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNlKCkKIHsKLSAgICByZXR1cm4gbV92
aWRlb0xheWVyLmdldCgpICYmIG1fdmlkZW9MYXllci0+bGF5ZXJSZW5kZXJlcigpOworICAgIHJl
dHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCkgJiYgbV92aWRlb0xheWVyLT5sYXllclRyZWVIb3N0KCk7
CiB9CiAKIFZpZGVvRnJhbWVDaHJvbWl1bSogV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjpnZXRD
dXJyZW50RnJhbWUoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106059</attachid>
            <date>2011-09-01 16:26:15 -0700</date>
            <delta_ts>2011-09-02 00:19:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66430-20110901162614.patch</filename>
            <type>text/plain</type>
            <size>27110</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQzNTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MDg3NjcwOGJkZTI1ZWZk
NjlkZDU4NjhiZDA0NjlkZGYxYWI4YzEzLi4yOTY3ZjgyNGY1YzdkYWIyMDYxMTVmMjU2Y2YxZmQy
Zjc0Njk5NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTEtMDktMDEgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92
ZSBMYXllclJlbmRlcmVyQ2hyb21pdW0gcmVmZXJlbmNlcyBmcm9tIHRoZSBMYXllckNocm9taXVt
IHRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2
NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICBSZXBsYWNlIHJlZmVyZW5jZXMgdG8g
TGF5ZXJSZW5kZXJlckNocm9taXVtIGluIHRoZSBMYXllckNocm9taXVtIHRyZWUKKyAgICAgICAg
d2l0aCByZWZlcmVuY2VzIHRvIExheWVyVHJlZUhvc3QuIFRoZSBMYXllclJlbmRlcmVyQ2hyb21p
dW0gcHJvcGVydHkKKyAgICAgICAgaXMgbm8gbG9uZ2VyIHN5bmNlZCBhbmQgaW5zdGVhZCBpcyBz
ZXQgcmVjdXJzaXZlbHkgb24gdGhlIENDTGF5ZXJJbXBsCisgICAgICAgIHRyZWUgZHVyaW5nIGNv
bW1pdC4KKworICAgICAgICBXZWJHTExheWVyQ2hyb21pdW0ncyBwYWludFJlbmRlcmVkUmVzdWx0
c1RvQ2FudmFzIGZ1bmN0aW9uIGlzCisgICAgICAgIHRlbXBvcmFyaWx5IHR1cm5lZCBvZmYgZm9y
IHRocmVhZGVkIGNvbXBvc2l0aW5nIGJlY2F1c2UgaXQgbmVlZHMKKyAgICAgICAgYWNjZXNzIHRv
IHRoZSBjb21wb3NpdG9yIGNvbnRleHQuCisKKyAgICAgICAgUHJldmlvdXNseSwgY2hhbmdpbmcg
dGhlIGxheWVyIHJlbmRlcmVyIG9uIGEgbGF5ZXIgY2FsbGVkIGNsZWFudXAKKyAgICAgICAgcmVz
b3VyY2VzIG9uIHRoYXQgbGF5ZXIuICBOb3csIGNhbGwgdGhhdCBleHBsaWNpdGx5IGNsZWFuIHVw
IGFsbAorICAgICAgICByZXNvdXJjZXMgZXhwbGljaXRseSBmcm9tIHRoZSBwcm94eSB3aGVuIHRo
ZSBsYXllciByZW5kZXJlciBnZXRzCisgICAgICAgIGNyZWF0ZWQuIFRoaXMgY2xlYW5zIHVwIGFs
bCBvZiB0aGUgTWFuYWdlZFRleHR1cmUgb2JqZWN0cyB3aGljaCBtYXkgYmUKKyAgICAgICAgaGFu
Z2luZyBvbnRvIHN0YWxlIEdyYXBoaWNzQ29udGV4dDNEIHBvaW50ZXJzLgorCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllckNocm9taXVtOjpjbGVhbnVwUmVzb3VyY2VzUmVjdXJzaXZlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJDaHJvbWl1bTo6cHVzaFByb3BlcnRpZXNUbyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5ZXJDaHJvbWl1bTo6bGF5ZXJUcmVlSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVycyk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnBhaW50TGF5ZXJDb250ZW50cyk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0u
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjpUaWxlZExheWVy
Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNocm9taXVtOjp1cGRhdGVU
aWxlU2l6ZUFuZFRpbGluZ09wdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZExheWVyQ2hy
b21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRMYXllckNo
cm9taXVtOjp0ZXh0dXJlTWFuYWdlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vVGlsZWRMYXllckNocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVv
TGF5ZXJDaHJvbWl1bTo6VmlkZW9MYXllckNocm9taXVtKToKKyAgICAgICAgKFdlYkNvcmU6OlZp
ZGVvTGF5ZXJDaHJvbWl1bTo6Y2xlYW51cFJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpW
aWRlb0xheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6
VmlkZW9MYXllckNocm9taXVtOjpyZXNlcnZlVGV4dHVyZXMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTExheWVyQ2hyb21pdW06OnBhaW50UmVuZGVyZWRSZXN1bHRzVG9DYW52YXMp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xMYXllckNocm9taXVtOjpzZXRUZXh0dXJlVXBkYXRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTExheWVyQ2hyb21pdW06OmxheWVyUmVuZGVyZXJD
b250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVy
Q2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1wbDo6c2V0TGF5ZXJSZW5k
ZXJlclJlY3Vyc2l2ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0xheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojpj
b21taXRUbyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OmRpZFJlY3JlYXRl
R3JhcGhpY3NDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdEltcGw6OmluaXRpYWxpemVMYXllclJlbmRlcmVyKToKKwogMjAxMS0wOS0wMSAgS2VudGFy
byBIYXJhICA8aGFyYWtlbkBnb29nbGUuY29tPgogCiAgICAgICAgIFR5cGVFcnJvciBzaG91bGQg
YmUgdGhyb3duIHdoZW4gYSBjb25zdHJ1Y3RvciBpcyBjYWxsZWQgYXMgYSBub3JtYWwgZnVuY3Rp
b24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IGVlZWFiYjIxMGFhMWIzMjU4OWM2NzFiOGMz
NzExMTQ0OTJiMDMzMTAuLmQ2NDg4YjA3NjAwZmMyNjk0YTRmZGMzYTg0ZDIxODFmYmQ1YmEyNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xh
eWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC05NiwzNiArOTYsMjkgQEAgdm9pZCBMYXllckNo
cm9taXVtOjpjbGVhbnVwUmVzb3VyY2VzKCkKIHsKIH0KIAotdm9pZCBMYXllckNocm9taXVtOjpz
ZXRMYXllclJlbmRlcmVyUmVjdXJzaXZlKExheWVyUmVuZGVyZXJDaHJvbWl1bSogcmVuZGVyZXIp
Cit2b2lkIExheWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXNSZWN1cnNpdmUoKQogewogICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKLSAgICAgICAg
Y2hpbGRyZW4oKVtpXS0+c2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShyZW5kZXJlcik7CisgICAg
ICAgIGNoaWxkcmVuKClbaV0tPmNsZWFudXBSZXNvdXJjZXNSZWN1cnNpdmUoKTsKIAogICAgIGlm
IChtYXNrTGF5ZXIoKSkKLSAgICAgICAgbWFza0xheWVyKCktPnNldExheWVyUmVuZGVyZXJSZWN1
cnNpdmUocmVuZGVyZXIpOworICAgICAgICBtYXNrTGF5ZXIoKS0+Y2xlYW51cFJlc291cmNlc1Jl
Y3Vyc2l2ZSgpOwogICAgIGlmIChyZXBsaWNhTGF5ZXIoKSkKLSAgICAgICAgcmVwbGljYUxheWVy
KCktPnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUocmVuZGVyZXIpOworICAgICAgICByZXBsaWNh
TGF5ZXIoKS0+Y2xlYW51cFJlc291cmNlc1JlY3Vyc2l2ZSgpOwogCi0gICAgc2V0TGF5ZXJSZW5k
ZXJlcihyZW5kZXJlcik7CisgICAgY2xlYW51cFJlc291cmNlcygpOwogfQogCi12b2lkIExheWVy
Q2hyb21pdW06OnNldExheWVyUmVuZGVyZXIoTGF5ZXJSZW5kZXJlckNocm9taXVtKiByZW5kZXJl
cikKK3ZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0TGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3Qq
IGhvc3QpCiB7CiAgICAgLy8gSWYgd2UncmUgY2hhbmdpbmcgbGF5ZXIgcmVuZGVyZXJzIHRoZW4g
d2UgbmVlZCB0byBmcmVlIHVwIGFueSByZXNvdXJjZXMKICAgICAvLyBhbGxvY2F0ZWQgYnkgdGhl
IG9sZCByZW5kZXJlci4KLSAgICBpZiAobGF5ZXJSZW5kZXJlcigpICYmIGxheWVyUmVuZGVyZXIo
KSAhPSByZW5kZXJlcikgeworICAgIGlmIChsYXllclRyZWVIb3N0KCkgJiYgbGF5ZXJUcmVlSG9z
dCgpICE9IGhvc3QpIHsKICAgICAgICAgY2xlYW51cFJlc291cmNlcygpOwogICAgICAgICBzZXRO
ZWVkc0Rpc3BsYXkoKTsKICAgICB9Ci0gICAgbV9sYXllclJlbmRlcmVyID0gcmVuZGVyZXI7CiAK
LSAgICAvLyBGSVhNRTogT25jZSBzZXRMYXllclJlbmRlcmVyIGlzIG5vIGxvbmdlciBuZWVkZWQg
b24gdGhlIExheWVyQ2hyb21pdW0KLSAgICAvLyB0cmVlLCBtb3ZlIHRoaXMgY2FsbCB0byBMYXll
clJlbmRlcmVyQ2hyb21pdW06OnBhaW50TGF5ZXJDb250ZW50cy4KLSAgICBzZXRMYXllclRyZWVI
b3N0KHJlbmRlcmVyLT5vd25lcigpKTsKLX0KLQotdm9pZCBMYXllckNocm9taXVtOjpzZXRMYXll
clRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdCopCi17CisgICAgbV9sYXllclRyZWVIb3N0ID0gaG9z
dDsKIH0KIAogdm9pZCBMYXllckNocm9taXVtOjpzZXROZWVkc0NvbW1pdCgpCkBAIC0zMzIsNyAr
MzI1LDYgQEAgdm9pZCBMYXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBs
KiBsYXllcikKICAgICBsYXllci0+c2V0RG91YmxlU2lkZWQobV9kb3VibGVTaWRlZCk7CiAgICAg
bGF5ZXItPnNldERyYXdzQ29udGVudChkcmF3c0NvbnRlbnQoKSk7CiAgICAgbGF5ZXItPnNldElz
Um9vdExheWVyKG1faXNSb290TGF5ZXIpOwotICAgIGxheWVyLT5zZXRMYXllclJlbmRlcmVyKG1f
bGF5ZXJSZW5kZXJlci5nZXQoKSk7CiAgICAgbGF5ZXItPnNldE1hc2tzVG9Cb3VuZHMobV9tYXNr
c1RvQm91bmRzKTsKICAgICBsYXllci0+c2V0TmFtZShtX25hbWUpOwogICAgIGxheWVyLT5zZXRP
cGFjaXR5KG1fb3BhY2l0eSk7CkBAIC0zNDksMTIgKzM0MSw2IEBAIHZvaWQgTGF5ZXJDaHJvbWl1
bTo6cHVzaFByb3BlcnRpZXNUbyhDQ0xheWVySW1wbCogbGF5ZXIpCiAgICAgICAgIHJlcGxpY2FM
YXllcigpLT5wdXNoUHJvcGVydGllc1RvKGxheWVyLT5yZXBsaWNhTGF5ZXIoKSk7CiB9CiAKLUdy
YXBoaWNzQ29udGV4dDNEKiBMYXllckNocm9taXVtOjpsYXllclJlbmRlcmVyQ29udGV4dCgpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKGxheWVyUmVuZGVyZXIoKSk7Ci0gICAgcmV0dXJuIGxheWVyUmVu
ZGVyZXIoKS0+Y29udGV4dCgpOwotfQotCiB2b2lkIExheWVyQ2hyb21pdW06OmRyYXdUZXh0dXJl
ZFF1YWQoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0
cml4JiBwcm9qZWN0aW9uTWF0cml4LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgZHJhd01h
dHJpeCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG9hdCB3aWR0aCwg
ZmxvYXQgaGVpZ2h0LCBmbG9hdCBvcGFjaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBtYXRyaXhMb2NhdGlvbiwgaW50IGFscGhhTG9jYXRpb24pCkBAIC00MzYs
MTEgKzQyMiw2IEBAIHZvaWQgTGF5ZXJDaHJvbWl1bTo6c2V0Qm9yZGVyV2lkdGgoZmxvYXQgd2lk
dGgpCiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAotTGF5ZXJSZW5kZXJlckNocm9taXVtKiBM
YXllckNocm9taXVtOjpsYXllclJlbmRlcmVyKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sYXll
clJlbmRlcmVyLmdldCgpOwotfQotCiB2b2lkIExheWVyQ2hyb21pdW06OmNyZWF0ZVJlbmRlclN1
cmZhY2UoKQogewogICAgIEFTU0VSVCghbV9yZW5kZXJTdXJmYWNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0u
aAppbmRleCBmZTJlNGM3MTM3M2JlNTI1ZDU4YzYzYjdjZTBhODFlYThlMWU1Yzg3Li5hN2ViMjA4
MzUyNjdhMzRhMGE0NTAzOTg2ZjFiMDVjODcyNDdiNTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCkBA
IC01NSw3ICs1NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENDTGF5ZXJJbXBsOwog
Y2xhc3MgQ0NMYXllclRyZWVIb3N0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7Ci1jbGFzcyBM
YXllclJlbmRlcmVyQ2hyb21pdW07CiAKIC8vIEJhc2UgY2xhc3MgZm9yIGNvbXBvc2l0ZWQgbGF5
ZXJzLiBTcGVjaWFsIGxheWVyIHR5cGVzIGFyZSBkZXJpdmVkIGZyb20KIC8vIHRoaXMgY2xhc3Mu
CkBAIC0xNTMsMTMgKzE1Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElzUm9vdExheWVyKGJv
b2wgaXNSb290TGF5ZXIpIHsgbV9pc1Jvb3RMYXllciA9IGlzUm9vdExheWVyOyB9CiAgICAgYm9v
bCBpc1Jvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1faXNSb290TGF5ZXI7IH0KIAotICAgIHZv
aWQgc2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShMYXllclJlbmRlcmVyQ2hyb21pdW0qKTsKLQot
ICAgIC8vIERlcml2ZWQgdHlwZXMgbXVzdCBvdmVycmlkZSB0aGlzIG1ldGhvZCBpZiB0aGV5IG5l
ZWQgdG8gcmVhY3QgdG8gYSBjaGFuZ2UKLSAgICAvLyBpbiB0aGUgTGF5ZXJSZW5kZXJlckNocm9t
aXVtLgotICAgIC8vIEZJWE1FLCByZXBsYWNlIHdpdGggQ0NMYXllclRyZWVIb3N0LgotICAgIHZp
cnR1YWwgdm9pZCBzZXRMYXllclJlbmRlcmVyKExheWVyUmVuZGVyZXJDaHJvbWl1bSopOwotCiAg
ICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Kik7CiAKICAg
ICB2b2lkIHNldE93bmVyKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpIHsgbV9vd25lciA9
IG93bmVyOyB9CkBAIC0xOTAsMTAgKzE4Miw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKik7CiAKLSAgICAvLyBCZWdpbiBjYWxscyB0
aGF0IGZvcndhcmQgdG8gdGhlIENDTGF5ZXJJbXBsLgotICAgIExheWVyUmVuZGVyZXJDaHJvbWl1
bSogbGF5ZXJSZW5kZXJlcigpIGNvbnN0OwotICAgIC8vIEVuZCBjYWxscyB0aGF0IGZvcndhcmQg
dG8gdGhlIENDTGF5ZXJJbXBsLgotCiAgICAgdHlwZWRlZiBQcm9ncmFtQmluZGluZzxWZXJ0ZXhT
aGFkZXJQb3MsIEZyYWdtZW50U2hhZGVyQ29sb3I+IEJvcmRlclByb2dyYW07CiAKICAgICBpbnQg
aWQoKSBjb25zdCB7IHJldHVybiBtX2xheWVySWQ7IH0KQEAgLTIxOCw2ICsyMDYsOSBAQCBwdWJs
aWM6CiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGFueSBvZiB0aGUgbGF5ZXIncyBkZXNjZW5kYW50
cyBoYXMgY29udGVudCB0byBkcmF3LgogICAgIGJvb2wgZGVzY2VuZGFudERyYXdzQ29udGVudCgp
OwogCisgICAgQ0NMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4g
bV9sYXllclRyZWVIb3N0LmdldCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGNsZWFudXBSZXNvdXJj
ZXNSZWN1cnNpdmUoKTsKKwogcHJvdGVjdGVkOgogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSog
bV9vd25lcjsKICAgICBleHBsaWNpdCBMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1
bSogb3duZXIpOwpAQCAtMjI3LDggKzIxOCw2IEBAIHByb3RlY3RlZDoKICAgICAvLyBob2xkIGNv
bnRleHQtZGVwZW5kZW50IHJlc291cmNlcyBzdWNoIGFzIHRleHR1cmVzLgogICAgIHZpcnR1YWwg
dm9pZCBjbGVhbnVwUmVzb3VyY2VzKCk7CiAKLSAgICBHcmFwaGljc0NvbnRleHQzRCogbGF5ZXJS
ZW5kZXJlckNvbnRleHQoKSBjb25zdDsKLQogICAgIHN0YXRpYyB2b2lkIHRvR0xNYXRyaXgoZmxv
YXQqLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogCiAgICAgdm9pZCBkdW1wTGF5ZXIo
VGV4dFN0cmVhbSYsIGludCBpbmRlbnQpIGNvbnN0OwpAQCAtMjY3LDcgKzI1Niw3IEBAIHByaXZh
dGU6CiAgICAgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+IG1fY2hpbGRyZW47CiAgICAg
TGF5ZXJDaHJvbWl1bSogbV9wYXJlbnQ7CiAKLSAgICBSZWZQdHI8TGF5ZXJSZW5kZXJlckNocm9t
aXVtPiBtX2xheWVyUmVuZGVyZXI7CisgICAgUmVmUHRyPENDTGF5ZXJUcmVlSG9zdD4gbV9sYXll
clRyZWVIb3N0OwogCiAgICAgLy8gTGF5ZXIgcHJvcGVydGllcy4KICAgICBJbnRTaXplIG1fYm91
bmRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggMjY5MjljYTE2
ZTIzMzk4NWY4ZDA2MDczOWU5NmI1NDgzNTg0YzkwZS4uYWFhZTQzMjRmOGQ3ZTgxMWI2NDg4Mjdj
OTJlNDg5NjI2ODQwYTIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3Bw
CkBAIC01NzUsOSArNTc1LDEyIEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9taXVtOjp1cGRhdGVM
YXllcnMoKQogCiB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6ZHJhd0xheWVycygpCiB7Ci0g
ICAgaWYgKCFyb290TGF5ZXIoKSkKKyAgICBpZiAoIXJvb3RMYXllckltcGwoKSkKICAgICAgICAg
cmV0dXJuOwogCisgICAgLy8gRklYTUU6IE5vIG5lZWQgdG8gd2FsayB0aGUgdHJlZSBoZXJlLiBU
aGlzIGNvdWxkIGJlIHBhc3NlZCB2aWEgZHJhdy4KKyAgICByb290TGF5ZXJJbXBsKCktPnNldExh
eWVyUmVuZGVyZXJSZWN1cnNpdmUodGhpcyk7CisKICAgICBtX3JlbmRlclN1cmZhY2VUZXh0dXJl
TWFuYWdlci0+c2V0TWVtb3J5TGltaXRCeXRlcyh0ZXh0dXJlTWVtb3J5SGlnaExpbWl0Qnl0ZXMg
LSBtX2NvbnRlbnRzVGV4dHVyZU1hbmFnZXItPmN1cnJlbnRNZW1vcnlVc2VCeXRlcygpKTsKICAg
ICBkcmF3TGF5ZXJzSW50ZXJuYWwoKTsKIApAQCAtNjU0LDEwICs2NTcsNyBAQCB2b2lkIExheWVy
UmVuZGVyZXJDaHJvbWl1bTo6cGFpbnRMYXllckNvbnRlbnRzKGNvbnN0IExheWVyTGlzdCYgcmVu
ZGVyU3VyZmFjZUxheQogICAgICAgICBSZW5kZXJTdXJmYWNlQ2hyb21pdW0qIHJlbmRlclN1cmZh
Y2UgPSByZW5kZXJTdXJmYWNlTGF5ZXItPnJlbmRlclN1cmZhY2UoKTsKICAgICAgICAgQVNTRVJU
KHJlbmRlclN1cmZhY2UpOwogCi0gICAgICAgIC8vIE1ha2Ugc3VyZSBhbnkgcmVuZGVyU3VyZmFj
ZUxheWVyIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGxheWVyUmVuZGVyZXIuCi0gICAgICAgIC8v
IFRoaXMgaXMgYSBkZWZlbnNpdmUgYXNzaWdubWVudCBpbiBjYXNlIHRoZSBvd25lciBvZiB0aGlz
IGxheWVyIGhhc24ndAotICAgICAgICAvLyBzZXQgdGhlIGxheWVyUmVuZGVyZXIgb24gdGhpcyBs
YXllciBhbHJlYWR5LgotICAgICAgICByZW5kZXJTdXJmYWNlTGF5ZXItPnNldExheWVyUmVuZGVy
ZXIodGhpcyk7CisgICAgICAgIHJlbmRlclN1cmZhY2VMYXllci0+c2V0TGF5ZXJUcmVlSG9zdChv
d25lcigpKTsKIAogICAgICAgICAvLyBSZW5kZXIgc3VyZmFjZXMgd2hvc2UgZHJhd2FibGUgYXJl
YSBoYXMgemVybyB3aWR0aCBvciBoZWlnaHQKICAgICAgICAgLy8gd2lsbCBoYXZlIG5vIGxheWVy
cyBhc3NvY2lhdGVkIHdpdGggdGhlbSBhbmQgc2hvdWxkIGJlIHNraXBwZWQuCkBAIC02NzcsMTcg
KzY3NywxNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6cGFpbnRMYXllckNvbnRlbnRz
KGNvbnN0IExheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheQogICAgICAgICAgICAgaWYgKGxheWVy
LT5yZW5kZXJTdXJmYWNlKCkgJiYgbGF5ZXItPnJlbmRlclN1cmZhY2UoKSAhPSByZW5kZXJTdXJm
YWNlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBsYXllci0+c2V0
TGF5ZXJSZW5kZXJlcih0aGlzKTsKKyAgICAgICAgICAgIGxheWVyLT5zZXRMYXllclRyZWVIb3N0
KG93bmVyKCkpOwogCiAgICAgICAgICAgICBpZiAoIWxheWVyLT5vcGFjaXR5KCkpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGlmIChsYXllci0+bWFza0xheWVyKCkp
Ci0gICAgICAgICAgICAgICAgbGF5ZXItPm1hc2tMYXllcigpLT5zZXRMYXllclJlbmRlcmVyKHRo
aXMpOworICAgICAgICAgICAgICAgIGxheWVyLT5tYXNrTGF5ZXIoKS0+c2V0TGF5ZXJUcmVlSG9z
dChvd25lcigpKTsKICAgICAgICAgICAgIGlmIChsYXllci0+cmVwbGljYUxheWVyKCkpIHsKLSAg
ICAgICAgICAgICAgICBsYXllci0+cmVwbGljYUxheWVyKCktPnNldExheWVyUmVuZGVyZXIodGhp
cyk7CisgICAgICAgICAgICAgICAgbGF5ZXItPnJlcGxpY2FMYXllcigpLT5zZXRMYXllclRyZWVI
b3N0KG93bmVyKCkpOwogICAgICAgICAgICAgICAgIGlmIChsYXllci0+cmVwbGljYUxheWVyKCkt
Pm1hc2tMYXllcigpKQotICAgICAgICAgICAgICAgICAgICBsYXllci0+cmVwbGljYUxheWVyKCkt
Pm1hc2tMYXllcigpLT5zZXRMYXllclJlbmRlcmVyKHRoaXMpOworICAgICAgICAgICAgICAgICAg
ICBsYXllci0+cmVwbGljYUxheWVyKCktPm1hc2tMYXllcigpLT5zZXRMYXllclRyZWVIb3N0KG93
bmVyKCkpOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAobGF5ZXItPmJvdW5kcygp
LmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9SZW5kZXJTdXJmYWNlQ2hyb21pdW0uY3BwCmluZGV4IDAw
NjE0MzMyNTU5YTRmM2M0OGM0OWRkODQxNDk3NzU0YzEzOWJhYzQuLmE1ZmQ3NGIxOTAyMGZmNDIx
ZDQ2NTdmN2VjZGU5N2MzZmIyYzE4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3VyZmFjZUNocm9t
aXVtLmNwcApAQCAtNDgsMTIgKzQ4LDYgQEAgUmVuZGVyU3VyZmFjZUNocm9taXVtOjp+UmVuZGVy
U3VyZmFjZUNocm9taXVtKCkKIHsKIH0KIAotTGF5ZXJSZW5kZXJlckNocm9taXVtKiBSZW5kZXJT
dXJmYWNlQ2hyb21pdW06OmxheWVyUmVuZGVyZXIoKQotewotICAgIEFTU0VSVChtX293bmluZ0xh
eWVyKTsKLSAgICByZXR1cm4gbV9vd25pbmdMYXllci0+bGF5ZXJSZW5kZXJlcigpOwotfQotCiBG
bG9hdFJlY3QgUmVuZGVyU3VyZmFjZUNocm9taXVtOjpkcmF3YWJsZUNvbnRlbnRSZWN0KCkgY29u
c3QKIHsKICAgICBGbG9hdFJlY3QgbG9jYWxDb250ZW50UmVjdCgtMC41ICogbV9jb250ZW50UmVj
dC53aWR0aCgpLCAtMC41ICogbV9jb250ZW50UmVjdC5oZWlnaHQoKSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1JlbmRlclN1cmZhY2VDaHJv
bWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVy
U3VyZmFjZUNocm9taXVtLmgKaW5kZXggNTFiZGNmYTUxMTljZjI2Y2ZiMDZkMmJmMWU4YmUxNmEx
OTdjNDVkNC4uNGEwNjJjNTY0MGZkNDQ5MThkMjliOTNjNjY5YjkyNzk0Njg0MzM3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUmVuZGVyU3Vy
ZmFjZUNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vUmVuZGVyU3VyZmFjZUNocm9taXVtLmgKQEAgLTg3LDggKzg3LDYgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0TWFza0xheWVyKExheWVyQ2hyb21pdW0qIG1hc2tMYXllcikgeyBtX21hc2tM
YXllciA9IG1hc2tMYXllcjsgfQogCiBwcml2YXRlOgotICAgIExheWVyUmVuZGVyZXJDaHJvbWl1
bSogbGF5ZXJSZW5kZXJlcigpOwotCiAgICAgTGF5ZXJDaHJvbWl1bSogbV9vd25pbmdMYXllcjsK
ICAgICBMYXllckNocm9taXVtKiBtX21hc2tMYXllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5ZXJDaHJv
bWl1bS5jcHAKaW5kZXggY2ZkZjEyM2FmYTc0M2RiMjE2MTQzN2ZkOWJlOWQzNDQ3MThmNDZhOS4u
YzkxZGJhN2M0MzkxMmFjZGUzZjdlMDAxNWU1YTRiMDBjOWQzN2U5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxl
ZExheWVyQ2hyb21pdW0uY3BwCkBAIC02NSw3ICs2NSw2IEBAIHByaXZhdGU6CiAKIFRpbGVkTGF5
ZXJDaHJvbWl1bTo6VGlsZWRMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3du
ZXIpCiAgICAgOiBMYXllckNocm9taXVtKG93bmVyKQotICAgICwgbV9sYXllclRyZWVIb3N0KDAp
CiAgICAgLCBtX3RpbGluZ09wdGlvbihBdXRvVGlsZSkKICAgICAsIG1fdGV4dHVyZUZvcm1hdChH
cmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKQogICAgICwgbV9za2lwc0RyYXcoZmFsc2Up
CkBAIC0xMTYsNyArMTE1LDcgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnVwZGF0ZVRpbGVT
aXplQW5kVGlsaW5nT3B0aW9uKCkKICAgICAgICAgaXNUaWxlZCA9IGF1dG9UaWxlZDsKIAogICAg
IEludFNpemUgcmVxdWVzdGVkU2l6ZSA9IGlzVGlsZWQgPyB0aWxlU2l6ZSA6IGNvbnRlbnRCb3Vu
ZHMoKTsKLSAgICBjb25zdCBpbnQgbWF4U2l6ZSA9IG1fbGF5ZXJUcmVlSG9zdC0+bGF5ZXJSZW5k
ZXJlckNhcGFiaWxpdGllcygpLm1heFRleHR1cmVTaXplOworICAgIGNvbnN0IGludCBtYXhTaXpl
ID0gbGF5ZXJUcmVlSG9zdCgpLT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkubWF4VGV4dHVy
ZVNpemU7CiAgICAgSW50U2l6ZSBjbGFtcGVkU2l6ZSA9IHJlcXVlc3RlZFNpemUuc2hydW5rVG8o
SW50U2l6ZShtYXhTaXplLCBtYXhTaXplKSk7CiAgICAgbV90aWxlci0+c2V0VGlsZVNpemUoY2xh
bXBlZFNpemUpOwogfQpAQCAtMTM4LDcgKzEzNyw3IEBAIGJvb2wgVGlsZWRMYXllckNocm9taXVt
OjpkcmF3c0NvbnRlbnQoKSBjb25zdAogdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnNldExheWVy
VHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0KiBob3N0KQogewogICAgIExheWVyQ2hyb21pdW06OnNl
dExheWVyVHJlZUhvc3QoaG9zdCk7Ci0gICAgbV9sYXllclRyZWVIb3N0ID0gaG9zdDsKKwogICAg
IGlmIChtX3RpbGVyKQogICAgICAgICByZXR1cm47CiAKQEAgLTI4MSw5ICsyODAsOSBAQCB2b2lk
IFRpbGVkTGF5ZXJDaHJvbWl1bTo6ZHVtcExheWVyUHJvcGVydGllcyhUZXh0U3RyZWFtJiB0cywg
aW50IGluZGVudCkgY29uc3QKIAogVGV4dHVyZU1hbmFnZXIqIFRpbGVkTGF5ZXJDaHJvbWl1bTo6
dGV4dHVyZU1hbmFnZXIoKSBjb25zdAogewotICAgIGlmICghbGF5ZXJSZW5kZXJlcigpKQorICAg
IGlmICghbGF5ZXJUcmVlSG9zdCgpKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbGF5
ZXJSZW5kZXJlcigpLT5jb250ZW50c1RleHR1cmVNYW5hZ2VyKCk7CisgICAgcmV0dXJuIGxheWVy
VHJlZUhvc3QoKS0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpOwogfQogCiBVcGRhdGFibGVUaWxl
KiBUaWxlZExheWVyQ2hyb21pdW06OnRpbGVBdChpbnQgaSwgaW50IGopIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVy
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Rp
bGVkTGF5ZXJDaHJvbWl1bS5oCmluZGV4IGJiMjg2ZDY2MGRhYWU5MTU4YjZiMDUyMDY2MzA0NTFi
MzkwY2NhN2IuLjU4NTY5MTgxNDQwNjkzZjYwZjZkZDZiMjk5Y2JiOWRjODlkMWE0NWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1RpbGVkTGF5
ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL1RpbGVkTGF5ZXJDaHJvbWl1bS5oCkBAIC04OCw4ICs4OCw2IEBAIHByaXZhdGU6CiAKICAg
ICBUZXh0dXJlTWFuYWdlciogdGV4dHVyZU1hbmFnZXIoKSBjb25zdDsKIAotICAgIENDTGF5ZXJU
cmVlSG9zdCogbV9sYXllclRyZWVIb3N0OwotCiAgICAgLy8gU3RhdGUgaGVsZCBiZXR3ZWVuIHVw
ZGF0ZSBhbmQgdXBsb2FkLgogICAgIEludFJlY3QgbV9wYWludFJlY3Q7CiAgICAgSW50UmVjdCBt
X3VwZGF0ZVJlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcAppbmRleCA3NjA3Mjgx
ZjBmMGQxODQzMWEzN2FiMmU2NTBiODIxMTA3YmE1ZWEyLi4zYWM1NzQ3Zjk0N2Q5MjM3ZGIzMjgy
ZjU2YWQ4NmYyMGZiYTVmMGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAKQEAg
LTU2LDcgKzU2LDYgQEAgVmlkZW9MYXllckNocm9taXVtOjpWaWRlb0xheWVyQ2hyb21pdW0oR3Jh
cGhpY3NMYXllckNocm9taXVtKiBvd25lciwgVmlkZW9GcmFtZVAKICAgICAsIG1fc2tpcHNEcmF3
KHRydWUpCiAgICAgLCBtX2ZyYW1lRm9ybWF0KFZpZGVvRnJhbWVDaHJvbWl1bTo6SW52YWxpZCkK
ICAgICAsIG1fcHJvdmlkZXIocHJvdmlkZXIpCi0gICAgLCBtX2xheWVyVHJlZUhvc3QoMCkKICAg
ICAsIG1fY3VycmVudEZyYW1lKDApCiB7CiB9CkBAIC03NCw2ICs3Myw4IEBAIFBhc3NSZWZQdHI8
Q0NMYXllckltcGw+IFZpZGVvTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlQ0NMYXllckltcGwoKQogdm9p
ZCBWaWRlb0xheWVyQ2hyb21pdW06OmNsZWFudXBSZXNvdXJjZXMoKQogewogICAgIExheWVyQ2hy
b21pdW06OmNsZWFudXBSZXNvdXJjZXMoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IDM7
ICsraSkKKyAgICAgICAgbV90ZXh0dXJlc1tpXS5tX3RleHR1cmUuY2xlYXIoKTsKICAgICByZWxl
YXNlQ3VycmVudEZyYW1lKCk7CiB9CiAKQEAgLTE0NSwxOCArMTQ2LDE2IEBAIHZvaWQgVmlkZW9M
YXllckNocm9taXVtOjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICB9
CiB9CiAKLXZvaWQgVmlkZW9MYXllckNocm9taXVtOjpzZXRMYXllclRyZWVIb3N0KENDTGF5ZXJU
cmVlSG9zdCogbGF5ZXJUcmVlSG9zdCkKK3ZvaWQgVmlkZW9MYXllckNocm9taXVtOjpzZXRMYXll
clRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdCogaG9zdCkKIHsKLSAgICBMYXllckNocm9taXVtOjpz
ZXRMYXllclRyZWVIb3N0KGxheWVyVHJlZUhvc3QpOwotICAgIGlmIChtX2xheWVyVHJlZUhvc3Qg
PT0gbGF5ZXJUcmVlSG9zdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sYXllclRyZWVIb3N0
ID0gbGF5ZXJUcmVlSG9zdDsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzsgKytpKSB7
Ci0gICAgICAgIG1fdGV4dHVyZXNbaV0ubV92aXNpYmxlU2l6ZSA9IEludFNpemUoKTsKLSAgICAg
ICAgbV90ZXh0dXJlc1tpXS5tX3RleHR1cmUgPSBNYW5hZ2VkVGV4dHVyZTo6Y3JlYXRlKGxheWVy
VHJlZUhvc3QtPmNvbnRlbnRzVGV4dHVyZU1hbmFnZXIoKSk7CisgICAgaWYgKGxheWVyVHJlZUhv
c3QoKSAhPSBob3N0KSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgMzsgKytpKSB7
CisgICAgICAgICAgICBtX3RleHR1cmVzW2ldLm1fdmlzaWJsZVNpemUgPSBJbnRTaXplKCk7Cisg
ICAgICAgICAgICBtX3RleHR1cmVzW2ldLm1fdGV4dHVyZSA9IE1hbmFnZWRUZXh0dXJlOjpjcmVh
dGUoaG9zdC0+Y29udGVudHNUZXh0dXJlTWFuYWdlcigpKTsKKyAgICAgICAgfQogICAgIH0KKwor
ICAgIExheWVyQ2hyb21pdW06OnNldExheWVyVHJlZUhvc3QoaG9zdCk7CiB9CiAKIEdDM0RlbnVt
IFZpZGVvTGF5ZXJDaHJvbWl1bTo6ZGV0ZXJtaW5lVGV4dHVyZUZvcm1hdChjb25zdCBWaWRlb0Zy
YW1lQ2hyb21pdW0qIGZyYW1lKQpAQCAtMTc1LDExICsxNzQsMTEgQEAgR0MzRGVudW0gVmlkZW9M
YXllckNocm9taXVtOjpkZXRlcm1pbmVUZXh0dXJlRm9ybWF0KGNvbnN0IFZpZGVvRnJhbWVDaHJv
bWl1bSogZnIKIAogYm9vbCBWaWRlb0xheWVyQ2hyb21pdW06OnJlc2VydmVUZXh0dXJlcyhjb25z
dCBWaWRlb0ZyYW1lQ2hyb21pdW0qIGZyYW1lLCBHQzNEZW51bSB0ZXh0dXJlRm9ybWF0KQogewot
ICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIEFTU0VSVChsYXllclRyZWVIb3N0KCkp
OwogICAgIEFTU0VSVChmcmFtZSk7CiAgICAgQVNTRVJUKHRleHR1cmVGb3JtYXQgIT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OklOVkFMSURfVkFMVUUpOwogCi0gICAgaW50IG1heFRleHR1cmVTaXplID0g
bV9sYXllclRyZWVIb3N0LT5sYXllclJlbmRlcmVyQ2FwYWJpbGl0aWVzKCkubWF4VGV4dHVyZVNp
emU7CisgICAgaW50IG1heFRleHR1cmVTaXplID0gbGF5ZXJUcmVlSG9zdCgpLT5sYXllclJlbmRl
cmVyQ2FwYWJpbGl0aWVzKCkubWF4VGV4dHVyZVNpemU7CiAKICAgICBmb3IgKHVuc2lnbmVkIHBs
YW5lID0gMDsgcGxhbmUgPCBmcmFtZS0+cGxhbmVzKCk7IHBsYW5lKyspIHsKICAgICAgICAgSW50
U2l6ZSByZXF1aXJlZFRleHR1cmVTaXplID0gZnJhbWUtPnJlcXVpcmVkVGV4dHVyZVNpemUocGxh
bmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vVmlkZW9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaAppbmRleCA1ZTQ1MzRjOGE3NjMxZTJjMWI1
YmVmMzQyMWJmZTQyN2RhNjZmYTA0Li43YjE1NmZiMTQwYWIwMWQzZDVkOWYxN2Y0ZTM0YmU3M2Yy
NzNiZTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uaApAQCAtODMsNyArODMsNiBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9za2lwc0RyYXc7CiAgICAgVmlkZW9GcmFtZUNocm9taXVtOjpG
b3JtYXQgbV9mcmFtZUZvcm1hdDsKICAgICBWaWRlb0ZyYW1lUHJvdmlkZXIqIG1fcHJvdmlkZXI7
Ci0gICAgQ0NMYXllclRyZWVIb3N0KiBtX2xheWVyVHJlZUhvc3Q7CiAKICAgICBUZXh0dXJlIG1f
dGV4dHVyZXNbM107CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21pdW0uY3BwCmluZGV4IDAzMTlj
MTRhYjRjZTlkMTQyZjU1MjgwYWM1NDkwNWIwOTFhODYxYzQuLmIwMzNhNDEyYWNmODdhYjEyNGI1
OTljMWJlZjYyMzk0ZDcyYWFhODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVtLmNwcApA
QCAtOTcsNyArOTcsNyBAQCB2b2lkIFdlYkdMTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29tcG9zaXRv
clJlc291cmNlcyhHcmFwaGljc0NvbnRleHQzRCogcmVuZGVyZXJDbwogCiBib29sIFdlYkdMTGF5
ZXJDaHJvbWl1bTo6cGFpbnRSZW5kZXJlZFJlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciogaW1h
Z2VCdWZmZXIpCiB7Ci0gICAgaWYgKG1fdGV4dHVyZVVwZGF0ZWQgfHwgIWxheWVyUmVuZGVyZXIo
KSB8fCAhZHJhd3NDb250ZW50KCkpCisgICAgaWYgKG1fdGV4dHVyZVVwZGF0ZWQgfHwgIWxheWVy
UmVuZGVyZXJDb250ZXh0KCkgfHwgIWRyYXdzQ29udGVudCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBJbnRTaXplIGZyYW1lYnVmZmVyU2l6ZSA9IG1fY29udGV4dC0+Z2V0SW50ZXJu
YWxGcmFtZWJ1ZmZlclNpemUoKTsKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFdlYkdMTGF5ZXJD
aHJvbWl1bTo6c2V0VGV4dHVyZVVwZGF0ZWQoKQogICAgIG1fdGV4dHVyZVVwZGF0ZWQgPSB0cnVl
OwogICAgIC8vIElmIFdlYkdMIGNvbW1hbmRzIGFyZSBpc3N1ZWQgb3V0c2lkZSBvZiBhIHRoZSBh
bmltYXRpb24gY2FsbGJhY2tzLCB0aGVuIHVzZQogICAgIC8vIGNhbGwgcmF0ZUxpbWl0T2Zmc2Ny
ZWVuQ29udGV4dENIUk9NSVVNKCkgdG8ga2VlcCB0aGUgY29udGV4dCBmcm9tIGdldHRpbmcgdG9v
IGZhciBhaGVhZC4KLSAgICBpZiAobGF5ZXJSZW5kZXJlcigpICYmICFsYXllclJlbmRlcmVyKCkt
Pm93bmVyKCktPmFuaW1hdGluZygpICYmIG1fY29udGV4dFN1cHBvcnRzUmF0ZUxpbWl0aW5nRXh0
ZW5zaW9uICYmICFtX3JhdGVMaW1pdGluZ1RpbWVyLmlzQWN0aXZlKCkpCisgICAgaWYgKGxheWVy
VHJlZUhvc3QoKSAmJiAhbGF5ZXJUcmVlSG9zdCgpLT5hbmltYXRpbmcoKSAmJiBtX2NvbnRleHRT
dXBwb3J0c1JhdGVMaW1pdGluZ0V4dGVuc2lvbiAmJiAhbV9yYXRlTGltaXRpbmdUaW1lci5pc0Fj
dGl2ZSgpKQogICAgICAgICBtX3JhdGVMaW1pdGluZ1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0K
IApAQCAtMTQ0LDYgKzE0NCwxOCBAQCB2b2lkIFdlYkdMTGF5ZXJDaHJvbWl1bTo6c2V0Q29udGV4
dChjb25zdCBHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKICAgICBtX2NvbnRleHRTdXBwb3J0
c1JhdGVMaW1pdGluZ0V4dGVuc2lvbiA9IG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBw
b3J0cygiR0xfQ0hST01JVU1fcmF0ZV9saW1pdF9vZmZzY3JlZW5fY29udGV4dCIpOwogfQogCitH
cmFwaGljc0NvbnRleHQzRCogV2ViR0xMYXllckNocm9taXVtOjpsYXllclJlbmRlcmVyQ29udGV4
dCgpCit7CisjaWYgVVNFKFRIUkVBREVEX0NPTVBPU0lUSU5HKQorICAgIC8vIEZJWE1FOiBJbiB0
aGUgdGhyZWFkZWQgY2FzZSwgcGFpbnRSZW5kZXJlZFJlc3VsdHNUb0NhbnZhcyBtdXN0IGJlCisg
ICAgLy8gcmVmYWN0b3JlZCB0byBiZSBhc3luY2hyb25vdXMuIEN1cnJlbnRseSB0aGlzIGlzIHVu
aW1wbGVtZW50ZWQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cisj
ZWxzZQorICAgIHJldHVybiBsYXllclRyZWVIb3N0KCktPmNvbnRleHQoKTsKKyNlbmRpZgorfQor
CiB2b2lkIFdlYkdMTGF5ZXJDaHJvbWl1bTo6cmF0ZUxpbWl0Q29udGV4dChUaW1lcjxXZWJHTExh
eWVyQ2hyb21pdW0+KikKIHsKICAgICBUUkFDRV9FVkVOVCgiV2ViR0xMYXllckNocm9taXVtOjpy
YXRlTGltaXRDb250ZXh0IiwgdGhpcywgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hyb21pdW0uaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5oCmlu
ZGV4IDFlYThmYzExYjA5M2ZiNWFjMWFmNTY5ZGQ5YjJjOTcwZTIxZGQ2YzAuLjg2MmZhODhmM2Zi
MDg4ZTk2ODg5MjQ4ZjgzMjRiYzQ2MjNmMDViMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1
bS5oCkBAIC02NCw2ICs2NCw4IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViR0xMYXllckNo
cm9taXVtKEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSogb3duZXIpOwogICAgIGZyaWVuZCBjbGFzcyBX
ZWJHTExheWVyQ2hyb21pdW1SYXRlTGltaXRUYXNrOwogCisgICAgR3JhcGhpY3NDb250ZXh0M0Qq
IGxheWVyUmVuZGVyZXJDb250ZXh0KCk7CisKICAgICB2b2lkIHJhdGVMaW1pdENvbnRleHQoVGlt
ZXI8V2ViR0xMYXllckNocm9taXVtPiopOwogCiAgICAgLy8gR3JhcGhpY3NDb250ZXh0M0Q6OnBs
YXRmb3JtTGF5ZXIgaGFzIGEgc2lkZS1lZmZlY3Qgb2YgYXNzaWduaW5nIGl0c2VsZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
ckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuY3BwCmluZGV4IDc0NTg2MWFhMzA1YTBiNWY0MDY2ODA3MGViYTNmZmU2Mzc2
MDZlYWMuLjk4M2Q0YmUwMTY0ZGRkNjk2YjQyYzdmZDQ5OGJmY2U3MTE0NGU3ZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5jcHAKQEAgLTExOSw2ICsxMTksMTkgQEAgdm9pZCBDQ0xheWVySW1wbDo6
c2V0TGF5ZXJSZW5kZXJlcihMYXllclJlbmRlcmVyQ2hyb21pdW0qIHJlbmRlcmVyKQogICAgIG1f
bGF5ZXJSZW5kZXJlciA9IHJlbmRlcmVyOwogfQogCit2b2lkIENDTGF5ZXJJbXBsOjpzZXRMYXll
clJlbmRlcmVyUmVjdXJzaXZlKExheWVyUmVuZGVyZXJDaHJvbWl1bSogcmVuZGVyZXIpCit7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQorICAgICAg
ICBjaGlsZHJlbigpW2ldLT5zZXRMYXllclJlbmRlcmVyUmVjdXJzaXZlKHJlbmRlcmVyKTsKKwor
ICAgIGlmIChtYXNrTGF5ZXIoKSkKKyAgICAgICAgbWFza0xheWVyKCktPnNldExheWVyUmVuZGVy
ZXJSZWN1cnNpdmUocmVuZGVyZXIpOworICAgIGlmIChyZXBsaWNhTGF5ZXIoKSkKKyAgICAgICAg
cmVwbGljYUxheWVyKCktPnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUocmVuZGVyZXIpOworCisg
ICAgc2V0TGF5ZXJSZW5kZXJlcihyZW5kZXJlcik7Cit9CisKIHZvaWQgQ0NMYXllckltcGw6OmNy
ZWF0ZVJlbmRlclN1cmZhY2UoKQogewogICAgIEFTU0VSVCghbV9yZW5kZXJTdXJmYWNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5oCmluZGV4IDgzYjAzNDYwMjA1Nzg2NDVmNDc5ZmI3OGViOWE5MWM2NWRh
NjUyNTMuLjFjZWU0ZDMyYTgwYWM3ZjNmODg1OWIwZGZmZWVmOWQ0YzRlNGY3NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuaApAQCAtMTI0LDYgKzEyNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYXdE
ZWJ1Z0JvcmRlcigpOwogCiAgICAgdm9pZCBzZXRMYXllclJlbmRlcmVyKExheWVyUmVuZGVyZXJD
aHJvbWl1bSopOworICAgIHZvaWQgc2V0TGF5ZXJSZW5kZXJlclJlY3Vyc2l2ZShMYXllclJlbmRl
cmVyQ2hyb21pdW0qKTsKICAgICBMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVyZXIo
KSBjb25zdCB7IHJldHVybiBtX2xheWVyUmVuZGVyZXIuZ2V0KCk7IH0KIAogICAgIENDUmVuZGVy
U3VyZmFjZSogcmVuZGVyU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyU3VyZmFjZS5n
ZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMWM4ZjU4N2IzNGM3
MTQ0YTYwMTM5NzBhZDk3NjU0ODdjYTk0YjkyYS4uMjllZTM4NGRiMjI1MTVmMGYyZWM3YjVhNGZi
ZDVlOGQ4YTY1YmQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCkBAIC0xMTQs
MTQgKzExNCw5IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0Ojpjb21taXRUbyhDQ0xheWVyVHJlZUhv
c3RJbXBsKiBob3N0SW1wbCkKICAgICBob3N0SW1wbC0+c2V0U291cmNlRnJhbWVOdW1iZXIoZnJh
bWVOdW1iZXIoKSk7CiAKICAgICAvLyBTeW5jaHJvbml6ZSB0cmVlcywgaWYgb25lIGV4aXN0cyBh
dCBhbGwuLi4KLSAgICBpZiAocm9vdExheWVyKCkpIHsKLSAgICAgICAgLy8gVGhlIGxheWVyUmVu
ZGVyZXIgbmVlZHMgdG8gYmUgc2V0IHNvIHRoYXQgY2hpbGQgbGF5ZXJzIHBpY2sgdXAgdGhlIGxh
eWVyUmVuZGVyZXIKLSAgICAgICAgLy8gYXMgd2VsbCBkdXJpbmcgdGhlIHN5bmNocm9uaXplIHN0
ZXAuCi0gICAgICAgIGlmIChyb290TGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLT5sYXllclJlbmRl
cmVyKCkgIT0gaG9zdEltcGwtPmxheWVyUmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJvb3RMYXll
cigpLT5wbGF0Zm9ybUxheWVyKCktPnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUoaG9zdEltcGwt
PmxheWVyUmVuZGVyZXIoKSk7Ci0KKyAgICBpZiAocm9vdExheWVyKCkpCiAgICAgICAgIGhvc3RJ
bXBsLT5zZXRSb290TGF5ZXIoVHJlZVN5bmNocm9uaXplcjo6c3luY2hyb25pemVUcmVlcyhyb290
TGF5ZXIoKS0+cGxhdGZvcm1MYXllcigpLCBob3N0SW1wbC0+cm9vdExheWVyKCkpKTsKLSAgICB9
IGVsc2UKKyAgICBlbHNlCiAgICAgICAgIGhvc3RJbXBsLT5zZXRSb290TGF5ZXIoMCk7CiAKICAg
ICBtX2ZyYW1lTnVtYmVyKys7CkBAIC0xNDQsNiArMTM5LDggQEAgUGFzc093blB0cjxDQ0xheWVy
VHJlZUhvc3RJbXBsPiBDQ0xheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyVHJlZUhvc3RJbXBsKCkK
IAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmRpZFJlY3JlYXRlR3JhcGhpY3NDb250ZXh0KGJvb2wg
c3VjY2VzcykKIHsKKyAgICBpZiAocm9vdExheWVyKCkpCisgICAgICAgIHJvb3RMYXllcigpLT5w
bGF0Zm9ybUxheWVyKCktPmNsZWFudXBSZXNvdXJjZXNSZWN1cnNpdmUoKTsKICAgICBtX2NsaWVu
dC0+ZGlkUmVjcmVhdGVHcmFwaGljc0NvbnRleHQoc3VjY2Vzcyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVl
SG9zdEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKaW5kZXggNDNjNzQ1NmNmOGY3YjM3MzhjZDQ1MzY5
Mzg5OTljZTRhNzhhM2I1Zi4uNTkzZmFiODU1ZTYwMTM1NjU1NjU5NDRiZDMxMzgwOTU3ZDMyODQ5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAKQEAgLTE0MywxMCAr
MTQzLDYgQEAgYm9vbCBDQ0xheWVyVHJlZUhvc3RJbXBsOjppbml0aWFsaXplTGF5ZXJSZW5kZXJl
cihDQ0xheWVyVHJlZUhvc3QqIGltcGxIYWNrLCBQYXMKICAgICAgICAgICAgIGxheWVyUmVuZGVy
ZXIgPSBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNyZWF0ZShtX2xheWVyUmVuZGVyZXItPm93bmVy
KCksIHRoaXMsIGNvbnRleHQpOwogICAgIH0KIAotICAgIC8vIElmIHJlY3JlYXRpbmcgcmVuZGVy
ZXIsIHVwZGF0ZSB0aGUgbGF5ZXJzIHRvIHBvaW50IGF0IHRoZSBuZXcgcmVuZGVyZXIKLSAgICBp
ZiAobV9sYXllclJlbmRlcmVyKQotICAgICAgICBtX2xheWVyUmVuZGVyZXItPnJvb3RMYXllcigp
LT5wbGF0Zm9ybUxheWVyKCktPnNldExheWVyUmVuZGVyZXJSZWN1cnNpdmUobGF5ZXJSZW5kZXJl
ci5nZXQoKSk7Ci0KICAgICBtX2xheWVyUmVuZGVyZXIgPSBsYXllclJlbmRlcmVyOwogICAgIHJl
dHVybiBtX2xheWVyUmVuZGVyZXI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdm
NDIxZWRjMTZhM2Q3NzA3MzY2NDgxYmI1MTlmOGE0MGIyZjM5YjIuLjA0NTk2YTc5M2VjYzg1YTlh
N2FkYWY4MGZlYmU3ODk4M2M2MTY1ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTEtMDktMDEgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNv
bT4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBMYXllclJlbmRlcmVyQ2hyb21pdW0gcmVm
ZXJlbmNlcyBmcm9tIHRoZSBMYXllckNocm9taXVtIHRyZWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIHJlZmVyZW5jZXMgdG8gTGF5ZXJSZW5k
ZXJlckNocm9taXVtIHRvIENDTGF5ZXJUcmVlSG9zdC4KKworICAgICAgICAqIHNyYy9XZWJNZWRp
YVBsYXllckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVBsYXllckNs
aWVudEltcGw6OmFjY2VsZXJhdGVkUmVuZGVyaW5nSW5Vc2UpOgorCiAyMDExLTA4LTI5ICBOYXQg
RHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEludHJvZHVj
ZSBDQ1NpbmdsZVRocmVhZFByb3h5IGluIG9yZGVyIHRvIG1vdmUgTGF5ZXJSZW5kZXJlciB0byBD
Q0xheWVyVHJlZUhvc3RJbXBsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJNZWRpYVBsYXllckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcAppbmRleCA1YzgxNDExNzU4ZTQzZGI4ZDVi
ZTAzYjVhOWZhMDhhYzVmMGIyNjRmLi5jZTUxYWZjYjVkYmFmOWM2NTQ2N2MyYjc1MDIzNGRmMjMy
YWYxYjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJNZWRpYVBs
YXllckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk1l
ZGlhUGxheWVyQ2xpZW50SW1wbC5jcHAKQEAgLTU3Miw3ICs1NzIsNyBAQCBib29sIFdlYk1lZGlh
UGxheWVyQ2xpZW50SW1wbDo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CiAK
IGJvb2wgV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsOjphY2NlbGVyYXRlZFJlbmRlcmluZ0luVXNl
KCkKIHsKLSAgICByZXR1cm4gbV92aWRlb0xheWVyLmdldCgpICYmIG1fdmlkZW9MYXllci0+bGF5
ZXJSZW5kZXJlcigpOworICAgIHJldHVybiBtX3ZpZGVvTGF5ZXIuZ2V0KCkgJiYgbV92aWRlb0xh
eWVyLT5sYXllclRyZWVIb3N0KCk7CiB9CiAKIFZpZGVvRnJhbWVDaHJvbWl1bSogV2ViTWVkaWFQ
bGF5ZXJDbGllbnRJbXBsOjpnZXRDdXJyZW50RnJhbWUoKQo=
</data>
<flag name="review"
          id="102399"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>