<?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>95679</bug_id>
          
          <creation_ts>2012-09-03 04:26:02 -0700</creation_ts>
          <short_desc>[chromium] Wire up scrollable sublayers in ScrollingCoordinatorChromium</short_desc>
          <delta_ts>2012-09-05 10:25:23 -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>Platform</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>78862</dependson>
          <blocked>66687</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sami Kyöstilä">skyostil</reporter>
          <assigned_to name="Sami Kyöstilä">skyostil</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>710541</commentid>
    <comment_count>0</comment_count>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-03 04:26:02 -0700</bug_when>
    <thetext>We should implement scrollable sublayers in ScrollingCoordinatorChromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>710660</commentid>
    <comment_count>1</comment_count>
      <attachid>161929</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-03 08:02:40 -0700</bug_when>
    <thetext>Created attachment 161929
Patch

Patch (requires 78862).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711341</commentid>
    <comment_count>2</comment_count>
      <attachid>161929</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-04 12:26:06 -0700</bug_when>
    <thetext>Comment on attachment 161929
Patch

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

&gt; Source/WebKit/chromium/tests/GraphicsLayerChromiumTest.cpp:132
&gt; +    MOCK_CONST_METHOD0(isActive, bool());

I don&apos;t think you really need a mock here at all - you just need a fake.  I&apos;d drop the gmock macros, etc, and just have empty implementations of the pure virtuals

&gt; Source/WebKit/chromium/tests/WebLayerTest.cpp:185
&gt; +        m_didScrollCalled = true;

here, on the flip side, you&apos;ve basically hand-rolled gmock&apos;s EXPECT_CALL :). I would use the gmock macros here since it&apos;s a small pure virtual interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711937</commentid>
    <comment_count>3</comment_count>
      <attachid>162216</attachid>
    <who name="Sami Kyöstilä">skyostil</who>
    <bug_when>2012-09-05 04:29:49 -0700</bug_when>
    <thetext>Created attachment 162216
Patch

- Added missing WebLayerScrollClient.h.
- Not rolling my own test infrastructure :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711939</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 04:35:13 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712121</commentid>
    <comment_count>5</comment_count>
      <attachid>162216</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-05 09:18:20 -0700</bug_when>
    <thetext>Comment on attachment 162216
Patch

Great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712202</commentid>
    <comment_count>6</comment_count>
      <attachid>162216</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 10:25:20 -0700</bug_when>
    <thetext>Comment on attachment 162216
Patch

Clearing flags on attachment: 162216

Committed r127605: &lt;http://trac.webkit.org/changeset/127605&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712203</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 10:25:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161929</attachid>
            <date>2012-09-03 08:02:40 -0700</date>
            <delta_ts>2012-09-05 04:29:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95679-20120903160223.patch</filename>
            <type>text/plain</type>
            <size>24599</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBkYWRiMjRiNzRmMTMx
ZmJhMTU2MTBjY2Q2MDMzNDUzMTQzMGUyODRiLi45ZTk3OGM2YTMzYzM4OWI1NjAwYmYxMmU4MWRj
MWRmYmY0ZjAyYTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOC0zMCAg
U2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVt
XSBXaXJlIHVwIHNjcm9sbGFibGUgc3VibGF5ZXJzIGluIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ2hy
b21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1
Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50
cm9kdWNlIFdlYkxheWVyU2Nyb2xsQ2xpZW50IGZvciBnZXR0aW5nIG5vdGlmaWVkIGFib3V0IHNj
cm9sbCBldmVudHMgdGFyZ2V0aW5nIGEgV2ViTGF5ZXIuCisKKyAgICAgICAgKiBQbGF0Zm9ybS5n
eXBpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJMYXllci5oOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKFdlYkxheWVyKToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2Vi
TGF5ZXJTY3JvbGxDbGllbnQuaDoKKwogMjAxMi0wOS0wMSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0
b21teXdAZ29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IEFkZCBNZWRpYVN0
cmVhbSBtYW5hZ2VtZW50IHRvIFJUQ1BlZXJDb25uZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI4YjM3
NDE2Y2QzZjg3ZTJhYTBlMjhlNzI2Y2YwYzBkNTNhMDlmOC4uMjJkNzdkMzJhZTgyMTYzMGUwMzhi
N2RjZjllZGZlYzFmNTc2OTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA4
LTMwICBTYW1pIEt5b3N0aWxhICA8c2t5b3N0aWxAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hy
b21pdW1dIFdpcmUgdXAgc2Nyb2xsYWJsZSBzdWJsYXllcnMgaW4gU2Nyb2xsaW5nQ29vcmRpbmF0
b3JDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTU2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgc2Nyb2xsYWJsZSBzdWJsYXllcnMgaW4gU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
aHJvbWl1bSBhbmQgaW50cm9kdWNlIGEKKyAgICAgICAgV2ViTGF5ZXJTY3JvbGxDbGllbnQgd2hp
Y2ggaXMgbm90aWZpZWQgb2Ygc2Nyb2xsIGV2ZW50cyBvbiBpdHMgYXNzb2NpYXRlZAorICAgICAg
ICBzY3JvbGwgbGF5ZXIuIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSB1c2VzIGl0IHRvIGFwcGx5IHNj
cm9sbCBldmVudHMgdGFyZ2V0ZWQgdG8KKyAgICAgICAgaXRzIHBsYXRmb3JtIGxheWVyIHRvIGEg
U2Nyb2xsYWJsZUFyZWEsIGkuZS4sIHRoZSBSZW5kZXJMYXllciBjb3JyZXNwb25kaW5nIHRvCisg
ICAgICAgIHRoZSBzY3JvbGxhYmxlIGVsZW1lbnQuCisKKyAgICAgICAgVGVzdHM6IEdyYXBoaWNz
TGF5ZXJDaHJvbWl1bVRlc3QuYXBwbHlTY3JvbGxUb1Njcm9sbGFibGVBcmVhCisgICAgICAgICAg
ICAgICBXZWJMYXllclRlc3QuU2Nyb2xsQ2xpZW50CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpHcmFwaGljc0xheWVyQ2hyb21pdW0pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpkaWRTY3JvbGwpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NM
YXllckNocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDaHJvbWl1bTo6c2V0U2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckNocm9taXVtOjpzY3JvbGxhYmxlQXJlYSk6CisgICAgICAgIChHcmFw
aGljc0xheWVyQ2hyb21pdW0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xheWVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnNldExheWVyU2Nyb2xsQ2xpZW50KToK
KyAgICAgICAgKExheWVyQ2hyb21pdW0pOgorCiAyMDEyLTA5LTAzICBTYW1pIEt5b3N0aWxhICA8
c2t5b3N0aWxAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZWdpc3RlciBzY3JvbGxpbmcgbGF5ZXJz
IHdpdGggU2Nyb2xsaW5nQ29vcmRpbmF0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZDVlNDE4ZGMzZTUyMWZkMTg0NDQ4NmE5ZTZjZWU0YTExYTIyMTEyZC4uMTE0YWFlMDNiNmJkN2Nk
NDQ1ZDVlNzZiODc2NTNlOTM5Y2Q3NzIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNiBAQAorMjAxMi0wOC0zMCAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBXaXJlIHVwIHNjcm9sbGFibGUgc3VibGF5ZXJz
IGluIFNjcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIFdlYkxheWVyU2Nyb2xsQ2xpZW50IGZv
ciBnZXR0aW5nIG5vdGlmaWVkIGFib3V0IHNjcm9sbCBldmVudHMgdGFyZ2V0aW5nIGEgV2ViTGF5
ZXIuCisKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTGF5ZXJJbXBsOjpzZXRNYXhTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMYXllckltcGw6OnNldFNjcm9sbENsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkxheWVySW1wbDo6c2Nyb2xsQnkpOgorICAgICAgICAqIHNyYy9XZWJMYXll
ckltcGwuaDoKKyAgICAgICAgKFdlYkxheWVySW1wbCk6CisgICAgICAgICogdGVzdHMvQ0NMYXll
clRyZWVIb3N0VGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVt
VGVzdC5jcHA6CisgICAgICAgIChNb2NrU2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYktpdDo6VEVTVF9GKToKKyAgICAgICAgKiB0ZXN0cy9XZWJMYXllclRl
c3QuY3BwOgorCiAyMDEyLTA5LTAxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSBidWlsZGZpeCB3aGVuIHVzZV9saWJj
Y19mb3JfY29tcG9zaXRvcj0xCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0u
Z3lwaSBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IDc2YTFiODljMTAyNDk4
YmZkYzI0ODFkN2E2ODZmOGZiYzMzMjAwYjcuLmJkODBkYmQ4NzA0YmZkYzUyODcxYjMyZTNmMzE3
YmRiM2VmMTk1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisr
KyBiL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC03OSw2ICs3OSw3IEBACiAgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkltYWdlTGF5ZXIuaCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vcHVibGljL1dlYklPU3VyZmFjZUxheWVyLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL3B1YmxpYy9XZWJMYXllci5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2Vi
TGF5ZXJTY3JvbGxDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkxh
eWVyVHJlZVZpZXcuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJl
ZVZpZXdDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkxvY2FsaXpl
ZFN0cmluZy5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViTGF5ZXIuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaApp
bmRleCA5YmRlYjRjMDFiYmM0MzA5ZGE2ODgwN2I0YWMxYmE4ZjhjOTg2Y2ExLi4xYmZmN2VmZTNk
NWEzMTY5MTAyMmU4ZWQzZjcwZmM4YjBiNjkxNzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9t
aXVtL3B1YmxpYy9XZWJMYXllci5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIFNrTWF0cml4NDQ7
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkFuaW1hdGlvbkRlbGVnYXRlOwogY2xhc3Mg
V2ViRmlsdGVyT3BlcmF0aW9uczsKK2NsYXNzIFdlYkxheWVyU2Nyb2xsQ2xpZW50OwogY2xhc3Mg
V2ViVHJhbnNmb3JtYXRpb25NYXRyaXg7CiBzdHJ1Y3QgV2ViRmxvYXRQb2ludDsKIHN0cnVjdCBX
ZWJGbG9hdFJlY3Q7CkBAIC0xNjUsNiArMTY2LDkgQEAgcHVibGljOgogCiAgICAgLy8gU2Nyb2xs
aW5nCiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKFdlYlBvaW50KSA9IDA7Cisg
ICAgdmlydHVhbCBXZWJQb2ludCBzY3JvbGxQb3NpdGlvbigpIGNvbnN0ID0gMDsKKworICAgIHZp
cnR1YWwgdm9pZCBzZXRNYXhTY3JvbGxQb3NpdGlvbihXZWJTaXplKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNjcm9sbGFibGUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRIYXZl
V2hlZWxFdmVudEhhbmRsZXJzKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxk
U2Nyb2xsT25NYWluVGhyZWFkKGJvb2wpID0gMDsKQEAgLTE3Miw2ICsxNzYsMTMgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0NvbnRhaW5lckZvckZpeGVkUG9zaXRpb25MYXllcnMo
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZFRvQ29udGFpbmVyTGF5ZXIoYm9v
bCkgPSAwOwogCisgICAgLy8gVGhlIHNjcm9sbCBjbGllbnQgaXMgbm90aWZpZWQgd2hlbiB0aGUg
c2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBXZWJMYXllcgorICAgIC8vIGNoYW5nZXMuIE9ubHkgYSBz
aW5nbGUgc2Nyb2xsIGNsaWVudCBjYW4gYmUgc2V0IGZvciBhIFdlYkxheWVyIGF0IGEgdGltZS4K
KyAgICAvLyBUaGUgV2ViTGF5ZXIgZG9lcyBub3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHNjcm9s
bCBjbGllbnQsIGFuZCBpdCBpcyB0aGUKKyAgICAvLyByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2xp
ZW50IHRvIHJlc2V0IHRoZSBsYXllcidzIHNjcm9sbCBjbGllbnQgYmVmb3JlCisgICAgLy8gZGVs
ZXRpbmcgdGhlIHNjcm9sbCBjbGllbnQuCisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbENsaWVu
dChXZWJMYXllclNjcm9sbENsaWVudCopID0gMDsKKwogICAgIC8vIEZvcmNlcyB0aGlzIGxheWVy
IHRvIHVzZSBhIHJlbmRlciBzdXJmYWNlLiBUaGVyZSBpcyBubyBiZW5lZml0IGluIGRvaW5nCiAg
ICAgLy8gc28sIGJ1dCB0aGlzIGlzIHRvIGZhY2lsaXRhdGUgYmVuY2htYXJrcyBhbmQgdGVzdHMu
CiAgICAgdmlydHVhbCB2b2lkIHNldEZvcmNlUmVuZGVyU3VyZmFjZShib29sKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jaHJvbWl1bS9TY3JvbGxpbmdD
b29yZGluYXRvckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2No
cm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3BwCmluZGV4IGJjNzlhYTg3MTJk
ZTNkYTAxNzNiNjllYzFiMDk1ZmFkN2M3YTA0MGMuLjJmNTViZWY5ZmNhODk2YmY0OWM2YmY4ZDFh
NWYwY2M0Y2MxMTgxZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21p
dW0uY3BwCkBAIC0yNDYsOSArMjQ2LDE4IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNl
dExheWVySXNGaXhlZFRvQ29udGFpbmVyTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIsCiAgICAg
ICAgIHNjcm9sbGFibGVMYXllci0+c2V0Rml4ZWRUb0NvbnRhaW5lckxheWVyKGVuYWJsZSk7CiB9
CiAKLXZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjcm9sbGFibGVBcmVhU2Nyb2xsTGF5ZXJE
aWRDaGFuZ2UoU2Nyb2xsYWJsZUFyZWEqLCBHcmFwaGljc0xheWVyKikKK3ZvaWQgU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OnNjcm9sbGFibGVBcmVhU2Nyb2xsTGF5ZXJEaWRDaGFuZ2UoU2Nyb2xsYWJs
ZUFyZWEqIHNjcm9sbGFibGVBcmVhLCBHcmFwaGljc0xheWVyKiBzY3JvbGxMYXllcikKIHsKLSAg
ICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIGlmICghc2Nyb2xsTGF5ZXIpCisgICAgICAgIHJl
dHVybjsKKyAgICBHcmFwaGljc0xheWVyQ2hyb21pdW0qIGxheWVyID0gc3RhdGljX2Nhc3Q8R3Jh
cGhpY3NMYXllckNocm9taXVtKj4oc2Nyb2xsTGF5ZXIpOworICAgIGxheWVyLT5zZXRTY3JvbGxh
YmxlQXJlYShzY3JvbGxhYmxlQXJlYSk7CisKKyAgICBpZiAoV2ViTGF5ZXIqIHdlYkxheWVyID0g
c2Nyb2xsTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkgeworICAgICAgICB3ZWJMYXllci0+c2V0U2Ny
b2xsYWJsZSh0cnVlKTsKKyAgICAgICAgd2ViTGF5ZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9s
bGFibGVBcmVhLT5zY3JvbGxQb3NpdGlvbigpKTsKKyAgICAgICAgd2ViTGF5ZXItPnNldE1heFNj
cm9sbFBvc2l0aW9uKEludFNpemUoc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFNpemUoSG9yaXpvbnRh
bFNjcm9sbGJhciksIHNjcm9sbGFibGVBcmVhLT5zY3JvbGxTaXplKFZlcnRpY2FsU2Nyb2xsYmFy
KSkpOworICAgIH0KIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAK
aW5kZXggYTE4YTNmOTU5YTAwOTE2ZDVhZTY2NmY1NDFmN2JhYmQ2ZGYxN2JhNy4uMGQ3Mjg5ZTNl
YWU3YjJkYjMwYmQzYWNkMzkxMTRhYTI2YzllMjAwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xh
eWVyQ2hyb21pdW0uY3BwCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiTmF0aXZlSW1hZ2VT
a2lhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJTa01h
dHJpeDQ0LmgiCiAjaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0
Zm9ybS5oPgpAQCAtOTAsNiArOTEsNyBAQCBHcmFwaGljc0xheWVyQ2hyb21pdW06OkdyYXBoaWNz
TGF5ZXJDaHJvbWl1bShHcmFwaGljc0xheWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2NvbnRl
bnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IoZmFsc2UpCiAgICAgLCBtX2luU2V0Q2hpbGRyZW4o
ZmFsc2UpCiAgICAgLCBtX3BhZ2VTY2FsZUNoYW5nZWQoZmFsc2UpCisgICAgLCBtX3Njcm9sbGFi
bGVBcmVhKDApCiB7CiAgICAgbV9vcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0
ZSA9IGFkb3B0UHRyKG5ldyBPcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJEZWxlZ2F0ZSh0
aGlzKSk7CiAKQEAgLTk5LDYgKzEwMSw3IEBAIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6R3JhcGhp
Y3NMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAgICAgbV9s
YXllciA9IGFkb3B0UHRyKFdlYkNvbnRlbnRMYXllcjo6Y3JlYXRlKG1fb3BhcXVlUmVjdFRyYWNr
aW5nQ29udGVudExheWVyRGVsZWdhdGUuZ2V0KCkpKTsKIAogICAgIG1fbGF5ZXItPmxheWVyKCkt
PnNldERyYXdzQ29udGVudChtX2RyYXdzQ29udGVudCAmJiBtX2NvbnRlbnRzVmlzaWJsZSk7Cisg
ICAgbV9sYXllci0+bGF5ZXIoKS0+c2V0U2Nyb2xsQ2xpZW50KHRoaXMpOwogICAgIGlmIChjbGll
bnQpCiAgICAgICAgIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpOwogICAgIHVwZGF0
ZURlYnVnSW5kaWNhdG9ycygpOwpAQCAtOTA3LDYgKzkxMCwxMiBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJDaHJvbWl1bTo6bm90aWZ5QW5pbWF0aW9uRmluaXNoZWQoZG91YmxlKQogICAgIC8vIERvIG5v
dGhpbmcuCiB9CiAKK3ZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpkaWRTY3JvbGwoKQorewor
ICAgIGlmIChtX3Njcm9sbGFibGVBcmVhKQorICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT5zY3Jv
bGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oSW50UG9pbnQobV9sYXllci0+bGF5ZXIoKS0+c2Ny
b2xsUG9zaXRpb24oKSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5oCmluZGV4IGVlOWEzOWVjYjQ2NjNkMDIyMDBiZTRmODllYTVmMTA5ZGM3MGQyYWEuLjFi
ODE1ZTkwZjg5NTA3OGQzMzIwNTA4NGNlYzI3YTNhNjc2YTZhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBo
aWNzTGF5ZXJDaHJvbWl1bS5oCkBAIC00MSwxMiArNDEsMTMgQEAKICNpbmNsdWRlIDxwdWJsaWMv
V2ViQ29udGVudExheWVyLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkltYWdlTGF5ZXIuaD4KICNp
bmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXIuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJTY3Jv
bGxDbGllbnQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIExheWVyQ2hyb21pdW07CiBjbGFzcyBQYXRoOworY2xhc3MgU2Nyb2xsYWJs
ZUFyZWE7CiAKIGNsYXNzIExpbmtIaWdobGlnaHRDbGllbnQgewogcHVibGljOgpAQCAtNTgsNyAr
NTksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+TGlua0hpZ2hsaWdodENsaWVudCgpIHsg
fQogfTsKIAotY2xhc3MgR3JhcGhpY3NMYXllckNocm9taXVtIDogcHVibGljIEdyYXBoaWNzTGF5
ZXIsIHB1YmxpYyBHcmFwaGljc0NvbnRleHRQYWludGVyLCBwdWJsaWMgV2ViS2l0OjpXZWJBbmlt
YXRpb25EZWxlZ2F0ZSB7CitjbGFzcyBHcmFwaGljc0xheWVyQ2hyb21pdW0gOiBwdWJsaWMgR3Jh
cGhpY3NMYXllciwgcHVibGljIEdyYXBoaWNzQ29udGV4dFBhaW50ZXIsIHB1YmxpYyBXZWJLaXQ6
OldlYkFuaW1hdGlvbkRlbGVnYXRlLCBwdWJsaWMgV2ViS2l0OjpXZWJMYXllclNjcm9sbENsaWVu
dCB7CiBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXllckNocm9taXVtKEdyYXBoaWNzTGF5ZXJDbGll
bnQqKTsKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyQ2hyb21pdW0oKTsKQEAgLTEzNCw2ICsx
MzUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENv
bG9yJiwgZmxvYXQgYm9yZGVyV2lkdGgpOwogICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VT
Y2FsZUZhY3RvckNoYW5nZWQoKTsKIAorICAgIHZvaWQgc2V0U2Nyb2xsYWJsZUFyZWEoU2Nyb2xs
YWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKSB7IG1fc2Nyb2xsYWJsZUFyZWEgPSBzY3JvbGxhYmxl
QXJlYTsgfQorICAgIFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWE7IH0KKwogICAgIC8vIEdyYXBoaWNzQ29udGV4dFBhaW50ZXIg
aW1wbGVtZW50YXRpb24uCiAgICAgdmlydHVhbCB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEludFJlY3QmIGNsaXApIE9WRVJSSURFOwogCkBAIC0xNDEsNiArMTQ1LDkgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGRvdWJsZSBzdGFy
dFRpbWUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25GaW5pc2hl
ZChkb3VibGUgZmluaXNoVGltZSkgT1ZFUlJJREU7CiAKKyAgICAvLyBXZWJMYXllclNjcm9sbENs
aWVudCBpbXBsZW1lbnRhdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2Nyb2xsKCkgT1ZFUlJJ
REU7CisKICAgICBXZWJLaXQ6OldlYkNvbnRlbnRMYXllciogY29udGVudExheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXllci5nZXQoKTsgfQogCiAgICAgLy8gRXhwb3NlZCBmb3IgdGVzdHMuCkBA
IC0yMDAsNiArMjA3LDggQEAgcHJpdmF0ZToKIAogICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IGludD4gQW5pbWF0aW9uSWRNYXA7CiAgICAgQW5pbWF0aW9uSWRNYXAgbV9hbmltYXRpb25JZE1h
cDsKKworICAgIFNjcm9sbGFibGVBcmVhKiBtX3Njcm9sbGFibGVBcmVhOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAppbmRleCA0ZTdmYTc0ZjU1NmU5
OWU4ODA0NTlkNTc1MzY2ODRkZDgxYTI4MWQ0Li4zNGExNzMwYTBlZWI4MjY1MTk5YzQyYjc2ODk0
MzM5NDVlNjAwYzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmNwcApAQCAtNDIsNiArNDIsOCBAQAog
I2luY2x1ZGUgIlRleHRTdHJlYW0uaCIKIAogI2luY2x1ZGUgPHB1YmxpYy9XZWJBbmltYXRpb25E
ZWxlZ2F0ZS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclNjcm9sbENsaWVudC5oPgorI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJTaXplLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBX
ZWJLaXQ6OldlYlRyYW5zZm9ybWF0aW9uTWF0cml4OwpAQCAtOTEsNyArOTMsNyBAQCBMYXllckNo
cm9taXVtOjpMYXllckNocm9taXVtKCkKICAgICAsIG1fc2NyZWVuU3BhY2VUcmFuc2Zvcm1Jc0Fu
aW1hdGluZyhmYWxzZSkKICAgICAsIG1fY29udGVudHNTY2FsZSgxLjApCiAgICAgLCBtX2xheWVy
QW5pbWF0aW9uRGVsZWdhdGUoMCkKLSAgICAsIG1fbGF5ZXJTY3JvbGxEZWxlZ2F0ZSgwKQorICAg
ICwgbV9sYXllclNjcm9sbENsaWVudCgwKQogewogICAgIGlmIChtX2xheWVySWQgPCAwKSB7CiAg
ICAgICAgIHNfbmV4dExheWVySWQgPSAxOwpAQCAtMzk1LDYgKzM5Nyw4IEBAIHZvaWQgTGF5ZXJD
aHJvbWl1bTo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9u
KQogICAgIGlmIChtX3Njcm9sbFBvc2l0aW9uID09IHNjcm9sbFBvc2l0aW9uKQogICAgICAgICBy
ZXR1cm47CiAgICAgbV9zY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOworICAgIGlmICht
X2xheWVyU2Nyb2xsQ2xpZW50KQorICAgICAgICBtX2xheWVyU2Nyb2xsQ2xpZW50LT5kaWRTY3Jv
bGwoKTsKICAgICBzZXROZWVkc0NvbW1pdCgpOwogfQogCkBAIC00MzksMTMgKzQ0Myw2IEBAIHZv
aWQgTGF5ZXJDaHJvbWl1bTo6c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb24oY29uc3QgUmVnaW9u
JiByZWdpb24pCiAgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAotdm9pZCBMYXllckNocm9taXVt
OjpzY3JvbGxCeShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKLXsKLSAgICBzZXRTY3JvbGxQ
b3NpdGlvbihzY3JvbGxQb3NpdGlvbigpICsgc2Nyb2xsRGVsdGEpOwotICAgIGlmIChtX2xheWVy
U2Nyb2xsRGVsZWdhdGUpCi0gICAgICAgIG1fbGF5ZXJTY3JvbGxEZWxlZ2F0ZS0+ZGlkU2Nyb2xs
KHNjcm9sbERlbHRhKTsKLX0KLQogdm9pZCBMYXllckNocm9taXVtOjpzZXREcmF3Q2hlY2tlcmJv
YXJkRm9yTWlzc2luZ1RpbGVzKGJvb2wgY2hlY2tlcmJvYXJkKQogewogICAgIGlmIChtX2RyYXdD
aGVja2VyYm9hcmRGb3JNaXNzaW5nVGlsZXMgPT0gY2hlY2tlcmJvYXJkKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oCmluZGV4IDJlNTQxZWU3YmVjYzNlMzdiNzliOTQ0NjRhZTY1NTY2NGExZThjNDUuLjk3NjFl
N2M2NzcwMjdmNDU0M2RiYTE1YjdiYTcwZmM2ZGNhYjE2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgK
QEAgLTU0LDYgKzU0LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJBbmltYXRp
b25EZWxlZ2F0ZTsKK2NsYXNzIFdlYkxheWVyU2Nyb2xsQ2xpZW50OwogfQogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC02OCwxNSArNjksNiBAQCBjbGFzcyBTY3JvbGxiYXJMYXllckNocm9taXVt
Owogc3RydWN0IENDQW5pbWF0aW9uRXZlbnQ7CiBzdHJ1Y3QgQ0NSZW5kZXJpbmdTdGF0czsKIAot
Ly8gRGVsZWdhdGUgZm9yIGhhbmRsaW5nIHNjcm9sbCBpbnB1dCBmb3IgYSBMYXllckNocm9taXVt
LgotY2xhc3MgTGF5ZXJDaHJvbWl1bVNjcm9sbERlbGVnYXRlIHsKLXB1YmxpYzoKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkU2Nyb2xsKGNvbnN0IEludFNpemUmKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAg
ICB2aXJ0dWFsIH5MYXllckNocm9taXVtU2Nyb2xsRGVsZWdhdGUoKSB7IH0KLX07Ci0KIC8vIEJh
c2UgY2xhc3MgZm9yIGNvbXBvc2l0ZWQgbGF5ZXJzLiBTcGVjaWFsIGxheWVyIHR5cGVzIGFyZSBk
ZXJpdmVkIGZyb20KIC8vIHRoaXMgY2xhc3MuCiBjbGFzcyBMYXllckNocm9taXVtIDogcHVibGlj
IFJlZkNvdW50ZWQ8TGF5ZXJDaHJvbWl1bT4sIHB1YmxpYyBDQ0xheWVyQW5pbWF0aW9uQ29udHJv
bGxlckNsaWVudCB7CkBAIC0xNzUsOCArMTY3LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFJlZ2lv
biYgbm9uRmFzdFNjcm9sbGFibGVSZWdpb24oKSB7IHJldHVybiBtX25vbkZhc3RTY3JvbGxhYmxl
UmVnaW9uOyB9CiAgICAgdm9pZCBzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBSZWdp
b24mKTsKICAgICB2b2lkIHNldE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uQ2hhbmdlZCgpIHsgbV9u
b25GYXN0U2Nyb2xsYWJsZVJlZ2lvbkNoYW5nZWQgPSB0cnVlOyB9Ci0gICAgdm9pZCBzZXRMYXll
clNjcm9sbERlbGVnYXRlKExheWVyQ2hyb21pdW1TY3JvbGxEZWxlZ2F0ZSogbGF5ZXJTY3JvbGxE
ZWxlZ2F0ZSkgeyBtX2xheWVyU2Nyb2xsRGVsZWdhdGUgPSBsYXllclNjcm9sbERlbGVnYXRlOyB9
Ci0gICAgdm9pZCBzY3JvbGxCeShjb25zdCBJbnRTaXplJik7CisgICAgdm9pZCBzZXRMYXllclNj
cm9sbENsaWVudChXZWJLaXQ6OldlYkxheWVyU2Nyb2xsQ2xpZW50KiBsYXllclNjcm9sbENsaWVu
dCkgeyBtX2xheWVyU2Nyb2xsQ2xpZW50ID0gbGF5ZXJTY3JvbGxDbGllbnQ7IH0KIAogICAgIHZv
aWQgc2V0RHJhd0NoZWNrZXJib2FyZEZvck1pc3NpbmdUaWxlcyhib29sKTsKICAgICBib29sIGRy
YXdDaGVja2VyYm9hcmRGb3JNaXNzaW5nVGlsZXMoKSBjb25zdCB7IHJldHVybiBtX2RyYXdDaGVj
a2VyYm9hcmRGb3JNaXNzaW5nVGlsZXM7IH0KQEAgLTM5Niw3ICszODcsNyBAQCBwcml2YXRlOgog
ICAgIGZsb2F0IG1fY29udGVudHNTY2FsZTsKIAogICAgIFdlYktpdDo6V2ViQW5pbWF0aW9uRGVs
ZWdhdGUqIG1fbGF5ZXJBbmltYXRpb25EZWxlZ2F0ZTsKLSAgICBMYXllckNocm9taXVtU2Nyb2xs
RGVsZWdhdGUqIG1fbGF5ZXJTY3JvbGxEZWxlZ2F0ZTsKKyAgICBXZWJLaXQ6OldlYkxheWVyU2Ny
b2xsQ2xpZW50KiBtX2xheWVyU2Nyb2xsQ2xpZW50OwogfTsKIAogdm9pZCBzb3J0TGF5ZXJzKFZl
Y3RvcjxSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIFZlY3RvcjxSZWZQdHI8TGF5
ZXJDaHJvbWl1bT4gPjo6aXRlcmF0b3IsIHZvaWQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhv
c3QuY3BwCmluZGV4IDA4NDc0YTFkMzdlZDE3ZDZjZDNlOTk2OTMyY2JjYzVhNmE1ODlkMTAuLjQw
MjZlZTgyM2RkYjAxNDcwZTdmNmQ2Nzg2OTJlNjVlNjEzMzE3YjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmNwcApAQCAtNjU4LDcgKzY1OCw3IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0
OjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IENDU2Nyb2xsQW5kU2NhbGVTZXQmIGluZm8pCiAg
ICAgICAgIGlmIChsYXllciA9PSByb290U2Nyb2xsTGF5ZXIpCiAgICAgICAgICAgICByb290U2Ny
b2xsRGVsdGEgKz0gaW5mby5zY3JvbGxzW2ldLnNjcm9sbERlbHRhOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBsYXllci0+c2Nyb2xsQnkoaW5mby5zY3JvbGxzW2ldLnNjcm9sbERlbHRhKTsK
KyAgICAgICAgICAgIGxheWVyLT5zZXRTY3JvbGxQb3NpdGlvbihsYXllci0+c2Nyb2xsUG9zaXRp
b24oKSArIGluZm8uc2Nyb2xsc1tpXS5zY3JvbGxEZWx0YSk7CiAgICAgfQogICAgIGlmICghcm9v
dFNjcm9sbERlbHRhLmlzWmVybygpIHx8IGluZm8ucGFnZVNjYWxlRGVsdGEgIT0gMSkKICAgICAg
ICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsQW5kU2NhbGUocm9vdFNjcm9sbERlbHRhLCBpbmZvLnBh
Z2VTY2FsZURlbHRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkxheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllckltcGwu
Y3BwCmluZGV4IDNhMzE2ZGZjZTAyMGQxNWQ3MGRkYmRmZDlkOGRiM2U5MzQ3NTA0OGEuLjg1Zjli
NGRiNDNkMjAxOWRiODI3NmVhZWY0MGRkMjJhMjFjNDVmMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcApAQCAtMzU1LDYgKzM1NSwxNiBAQCB2b2lkIFdl
YkxheWVySW1wbDo6c2V0U2Nyb2xsUG9zaXRpb24oV2ViUG9pbnQgcG9zaXRpb24pCiAgICAgbV9s
YXllci0+c2V0U2Nyb2xsUG9zaXRpb24ocG9zaXRpb24pOwogfQogCitXZWJQb2ludCBXZWJMYXll
ckltcGw6OnNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sYXllci0+c2Ny
b2xsUG9zaXRpb24oKTsKK30KKwordm9pZCBXZWJMYXllckltcGw6OnNldE1heFNjcm9sbFBvc2l0
aW9uKFdlYlNpemUgbWF4U2Nyb2xsUG9zaXRpb24pCit7CisgICAgbV9sYXllci0+c2V0TWF4U2Ny
b2xsUG9zaXRpb24obWF4U2Nyb2xsUG9zaXRpb24pOworfQorCiB2b2lkIFdlYkxheWVySW1wbDo6
c2V0U2Nyb2xsYWJsZShib29sIHNjcm9sbGFibGUpCiB7CiAgICAgbV9sYXllci0+c2V0U2Nyb2xs
YWJsZShzY3JvbGxhYmxlKTsKQEAgLTM5MSw2ICs0MDEsMTEgQEAgdm9pZCBXZWJMYXllckltcGw6
OnNldEZpeGVkVG9Db250YWluZXJMYXllcihib29sIGVuYWJsZSkKICAgICBtX2xheWVyLT5zZXRG
aXhlZFRvQ29udGFpbmVyTGF5ZXIoZW5hYmxlKTsKIH0KIAordm9pZCBXZWJMYXllckltcGw6OnNl
dFNjcm9sbENsaWVudChXZWJMYXllclNjcm9sbENsaWVudCogc2Nyb2xsQ2xpZW50KQoreworICAg
IG1fbGF5ZXItPnNldExheWVyU2Nyb2xsQ2xpZW50KHNjcm9sbENsaWVudCk7Cit9CisKIExheWVy
Q2hyb21pdW0qIFdlYkxheWVySW1wbDo6bGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiBtX2xh
eWVyLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5
ZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllckltcGwuaAppbmRl
eCBlMzRhZGRjZGIyZjY3ZmFiOGVlNmZjMjVkMmI4NDQ4OTk0M2ZmN2E5Li42NzM5ZmQ1ZWQxMTE3
ODhlNTBkNmI2NDQ4ZTY2MzRmOGY3YTgyMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJMYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJMYXllckltcGwuaApAQCAtOTQsMTIgKzk0LDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgdHJhbnNmZXJBbmltYXRpb25zVG8oV2ViTGF5ZXIqKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0Rm9yY2VSZW5kZXJTdXJmYWNlKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihXZWJQb2ludCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBXZWJQb2ludCBzY3JvbGxQb3NpdGlvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBzZXRNYXhTY3JvbGxQb3NpdGlvbihXZWJTaXplKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Nyb2xsYWJsZShib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
SGF2ZVdoZWVsRXZlbnRIYW5kbGVycyhib29sKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvdWxkU2Nyb2xsT25NYWluVGhyZWFkKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwg
dm9pZCBzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBXZWJWZWN0b3I8V2ViUmVjdD4m
KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNDb250YWluZXJGb3JGaXhlZFBvc2l0
aW9uTGF5ZXJzKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZFRvQ29u
dGFpbmVyTGF5ZXIoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbENs
aWVudChXZWJMYXllclNjcm9sbENsaWVudCopIE9WRVJSSURFOwogCiAgICAgV2ViQ29yZTo6TGF5
ZXJDaHJvbWl1bSogbGF5ZXIoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXggNTk2ZWVjYTRmZDEwNDVk
ZWZiMTY4ZDAyYjYxNGE5ZTA0Yjk3MmNhOC4uNTIxOTMwMjdjYzQ2NTE4ODEyYjBhYzUwOGEyMjAw
ZjA3MjU4YzNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xh
eWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC00MSw2ICs0MSw4IEBACiAjaW5jbHVkZSAiRmFrZVdl
YkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgiCiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KICNp
bmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJTY3Jv
bGxDbGllbnQuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5oPgogI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5UHRyLmg+CiAKQEAgLTIyMTIsNyAr
MjIxNCw3IEBAIHByaXZhdGU6CiAKIFNJTkdMRV9BTkRfTVVMVElfVEhSRUFEX1RFU1RfRihDQ0xh
eWVyVHJlZUhvc3RUZXN0TGF5ZXJBZGRlZFdpdGhBbmltYXRpb24pCiAKLWNsYXNzIENDTGF5ZXJU
cmVlSG9zdFRlc3RTY3JvbGxDaGlsZExheWVyIDogcHVibGljIENDTGF5ZXJUcmVlSG9zdFRlc3Qs
IHB1YmxpYyBMYXllckNocm9taXVtU2Nyb2xsRGVsZWdhdGUgeworY2xhc3MgQ0NMYXllclRyZWVI
b3N0VGVzdFNjcm9sbENoaWxkTGF5ZXIgOiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCwgcHVi
bGljIFdlYkxheWVyU2Nyb2xsQ2xpZW50IHsKIHB1YmxpYzoKICAgICBDQ0xheWVyVHJlZUhvc3RU
ZXN0U2Nyb2xsQ2hpbGRMYXllcigpCiAgICAgICAgIDogbV9zY3JvbGxBbW91bnQoMiwgMSkKQEAg
LTIyMzUsNyArMjIzNyw3IEBAIHB1YmxpYzoKICAgICAgICAgbV9yb290U2Nyb2xsTGF5ZXItPnNl
dE1heFNjcm9sbFBvc2l0aW9uKEludFNpemUoMTAwLCAxMDApKTsKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5yb290TGF5ZXIoKS0+YWRkQ2hpbGQobV9yb290U2Nyb2xsTGF5ZXIpOwogICAgICAg
ICBtX2NoaWxkTGF5ZXIgPSBDb250ZW50TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCZtX21vY2tEZWxl
Z2F0ZSk7Ci0gICAgICAgIG1fY2hpbGRMYXllci0+c2V0TGF5ZXJTY3JvbGxEZWxlZ2F0ZSh0aGlz
KTsKKyAgICAgICAgbV9jaGlsZExheWVyLT5zZXRMYXllclNjcm9sbENsaWVudCh0aGlzKTsKICAg
ICAgICAgbV9jaGlsZExheWVyLT5zZXRCb3VuZHMoSW50U2l6ZSg1MCwgNTApKTsKICAgICAgICAg
bV9jaGlsZExheWVyLT5zZXRJc0RyYXdhYmxlKHRydWUpOwogICAgICAgICBtX2NoaWxkTGF5ZXIt
PnNldFNjcm9sbGFibGUodHJ1ZSk7CkBAIC0yMjQ4LDkgKzIyNTAsOSBAQCBwdWJsaWM6CiAgICAg
ICAgIHBvc3RTZXROZWVkc0NvbW1pdFRvTWFpblRocmVhZCgpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCBkaWRTY3JvbGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpIE9WRVJSSURFCisg
ICAgdmlydHVhbCB2b2lkIGRpZFNjcm9sbCgpIE9WRVJSSURFCiAgICAgewotICAgICAgICBtX3Jl
cG9ydGVkU2Nyb2xsQW1vdW50ID0gc2Nyb2xsRGVsdGE7CisgICAgICAgIG1fZmluYWxTY3JvbGxQ
b3NpdGlvbiA9IG1fY2hpbGRMYXllci0+c2Nyb2xsUG9zaXRpb24oKTsKICAgICB9CiAKICAgICB2
aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0
YSwgZmxvYXQpIE9WRVJSSURFCkBAIC0yMjgwLDEyICsyMjgyLDEyIEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBhZnRlclRlc3QoKSBPVkVSUklERQogICAgIHsKLSAgICAgICAgRVhQRUNU
X0VRKG1fc2Nyb2xsQW1vdW50LCBtX3JlcG9ydGVkU2Nyb2xsQW1vdW50KTsKKyAgICAgICAgRVhQ
RUNUX0VRKEludFBvaW50KG1fc2Nyb2xsQW1vdW50KSwgbV9maW5hbFNjcm9sbFBvc2l0aW9uKTsK
ICAgICB9CiAKIHByaXZhdGU6CiAgICAgY29uc3QgSW50U2l6ZSBtX3Njcm9sbEFtb3VudDsKLSAg
ICBJbnRTaXplIG1fcmVwb3J0ZWRTY3JvbGxBbW91bnQ7CisgICAgSW50UG9pbnQgbV9maW5hbFNj
cm9sbFBvc2l0aW9uOwogICAgIE1vY2tDb250ZW50TGF5ZXJDaHJvbWl1bUNsaWVudCBtX21vY2tE
ZWxlZ2F0ZTsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbV9jaGlsZExheWVyOwogICAgIFJl
ZlB0cjxMYXllckNocm9taXVtPiBtX3Jvb3RTY3JvbGxMYXllcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
CmluZGV4IDllMmZiY2I2YTc1MzRjZWU0MDlkYzg3NjRlNWUxOTk4YWQxYTgzNDUuLjc2OTNlNzgw
NWFjMzliOGQ2NmFhNjQzMDE3Y2FkOTg1NjJkMzk4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcApA
QCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRlICJN
YXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlJvdGF0ZVRyYW5zZm9ybU9w
ZXJhdGlvbi5oIgorI2luY2x1ZGUgIlNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSAiVHJhbnNs
YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTGF5ZXJUcmVlVmlld1Rlc3RD
b21tb24uaCIKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgpAQCAtMTI2LDQgKzEyNyw0NSBAQCBU
RVNUX0YoR3JhcGhpY3NMYXllckNocm9taXVtVGVzdCwgc2hvdWxkU3RhcnRXaXRoQ29ycmVjdENv
bnRlbnRzU2NhbGUpCiAgICAgRVhQRUNUX0VRKDIsIG1fZ3JhcGhpY3NMYXllci0+Y29udGVudHNT
Y2FsZSgpKTsKIH0KIAorY2xhc3MgTW9ja1Njcm9sbGFibGVBcmVhIDogcHVibGljIFNjcm9sbGFi
bGVBcmVhIHsKK3B1YmxpYzoKKyAgICBNT0NLX0NPTlNUX01FVEhPRDAoaXNBY3RpdmUsIGJvb2wo
KSk7CisgICAgTU9DS19DT05TVF9NRVRIT0QxKHNjcm9sbFNpemUsIGludChTY3JvbGxiYXJPcmll
bnRhdGlvbikpOworICAgIE1PQ0tfQ09OU1RfTUVUSE9EMShzY3JvbGxQb3NpdGlvbiwgaW50KFNj
cm9sbGJhciopKTsKKyAgICBNT0NLX01FVEhPRDIoaW52YWxpZGF0ZVNjcm9sbGJhciwgdm9pZChT
Y3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikpOworICAgIE1PQ0tfQ09OU1RfTUVUSE9EMChpc1Nj
cm9sbENvcm5lclZpc2libGUsIGJvb2woKSk7CisgICAgTU9DS19DT05TVF9NRVRIT0QwKHNjcm9s
bENvcm5lclJlY3QsIEludFJlY3QoKSk7CisgICAgTU9DS19NRVRIT0QyKGludmFsaWRhdGVTY3Jv
bGxiYXJSZWN0LCB2b2lkKFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSk7CisgICAgTU9DS19N
RVRIT0QxKGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0LCB2b2lkKGNvbnN0IEludFJlY3QmKSk7
CisgICAgTU9DS19NRVRIT0QxKHNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24sIHZvaWQoY29u
c3QgSW50UG9pbnQmKSk7CisgICAgTU9DS19DT05TVF9NRVRIT0QwKGVuY2xvc2luZ1Njcm9sbGFi
bGVBcmVhLCBTY3JvbGxhYmxlQXJlYSooKSk7CisgICAgTU9DS19DT05TVF9NRVRIT0QwKG1pbmlt
dW1TY3JvbGxQb3NpdGlvbiwgSW50UG9pbnQoKSk7CisgICAgTU9DS19DT05TVF9NRVRIT0QwKG1h
eGltdW1TY3JvbGxQb3NpdGlvbiwgSW50UG9pbnQoKSk7CisgICAgTU9DS19DT05TVF9NRVRIT0Qx
KHZpc2libGVDb250ZW50UmVjdCwgSW50UmVjdChib29sKSk7CisgICAgTU9DS19DT05TVF9NRVRI
T0QwKGNvbnRlbnRzU2l6ZSwgSW50U2l6ZSgpKTsKKyAgICBNT0NLX0NPTlNUX01FVEhPRDAob3Zl
cmhhbmdBbW91bnQsIEludFNpemUoKSk7CisgICAgTU9DS19DT05TVF9NRVRIT0QwKGlzT25BY3Rp
dmVQYWdlLCBib29sKCkpOworICAgIE1PQ0tfQ09OU1RfTUVUSE9EMChzY3JvbGxhYmxlQXJlYUJv
dW5kaW5nQm94LCBJbnRSZWN0KCkpOworICAgIE1PQ0tfQ09OU1RfTUVUSE9EMChzY3JvbGxBbmlt
YXRvckVuYWJsZWQsIGJvb2woKSk7CisgICAgTU9DS19DT05TVF9NRVRIT0QwKHZpc2libGVXaWR0
aCwgaW50KCkpOworICAgIE1PQ0tfQ09OU1RfTUVUSE9EMCh2aXNpYmxlSGVpZ2h0LCBpbnQoKSk7
CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsT2Zmc2V0KGNvbnN0IEludFBvaW50JiBzY3Jv
bGxPZmZzZXQpIE9WRVJSSURFIHsgbV9zY3JvbGxQb3NpdGlvbiA9IHNjcm9sbE9mZnNldDsgfQor
ICAgIHZpcnR1YWwgSW50UG9pbnQgc2Nyb2xsUG9zaXRpb24oKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBtX3Njcm9sbFBvc2l0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgSW50UG9pbnQgbV9zY3Jv
bGxQb3NpdGlvbjsKK307CisKK1RFU1RfRihHcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LCBhcHBs
eVNjcm9sbFRvU2Nyb2xsYWJsZUFyZWEpCit7CisgICAgTW9ja1Njcm9sbGFibGVBcmVhIHNjcm9s
bGFibGVBcmVhOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0U2Nyb2xsYWJsZUFyZWEoJnNjcm9s
bGFibGVBcmVhKTsKKworICAgIFdlYlBvaW50IHNjcm9sbFBvc2l0aW9uKDcsIDkpOworICAgIG1f
cGxhdGZvcm1MYXllci0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24pOworCisgICAg
RVhQRUNUX0VRKHNjcm9sbFBvc2l0aW9uLCBXZWJQb2ludChzY3JvbGxhYmxlQXJlYS5zY3JvbGxQ
b3NpdGlvbigpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAKaW5kZXggODBhMTAzMWZiNjJjYTc2MjMwMDM0MDU1
ZWE3YWQ0ZDNiN2JkNzQ5NS4uNjY1Y2MxZGVlMDliOTA4ODZjZjdmYjQ3ZjZkYTFlZjMzYzNjNTMz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXllclRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUZXN0LmNwcApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXll
ci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYkZsb2F0UmVjdC5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclNjcm9sbENsaWVudC5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclRyZWVWaWV3Lmg+CiAjaW5jbHVkZSA8cHVibGlj
L1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUmVjdC5oPgpA
QCAtMTcyLDQgKzE3Myw0MCBAQCBURVNUX0YoV2ViTGF5ZXJUZXN0LCBDbGllbnQpCiAgICAgRVhQ
RUNUX0ZBTFNFKGNvbnRlbnRMYXllci0+bGF5ZXIoKS0+ZHJhd3NDb250ZW50KCkpOwogfQogCitj
bGFzcyBNb2NrU2Nyb2xsQ2xpZW50IDogcHVibGljIFdlYkxheWVyU2Nyb2xsQ2xpZW50IHsKK3B1
YmxpYzoKKyAgICBNb2NrU2Nyb2xsQ2xpZW50KCkKKyAgICAgICAgOiBtX2RpZFNjcm9sbENhbGxl
ZChmYWxzZSkKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZFNjcm9sbCgpIE9W
RVJSSURFCisgICAgeworICAgICAgICBtX2RpZFNjcm9sbENhbGxlZCA9IHRydWU7CisgICAgfQor
CisgICAgdm9pZCByZXNldERpZFNjcm9sbENhbGxlZCgpIHsgbV9kaWRTY3JvbGxDYWxsZWQgPSBm
YWxzZTsgfQorICAgIGJvb2wgZGlkU2Nyb2xsQ2FsbGVkKCkgY29uc3QgeyByZXR1cm4gbV9kaWRT
Y3JvbGxDYWxsZWQ7IH0KKworcHJpdmF0ZToKKyAgICBib29sIG1fZGlkU2Nyb2xsQ2FsbGVkOwor
fTsKKworVEVTVF9GKFdlYkxheWVyVGVzdCwgU2Nyb2xsQ2xpZW50KQoreworICAgIE1vY2tTY3Jv
bGxDbGllbnQgc2Nyb2xsQ2xpZW50OworCisgICAgbV9yb290TGF5ZXItPnNldFNjcm9sbENsaWVu
dCgmc2Nyb2xsQ2xpZW50KTsKKyAgICBFWFBFQ1RfRkFMU0Uoc2Nyb2xsQ2xpZW50LmRpZFNjcm9s
bENhbGxlZCgpKTsKKworICAgIG1fcm9vdExheWVyLT5zZXRTY3JvbGxQb3NpdGlvbihXZWJQb2lu
dCgxNCwgMTkpKTsKKyAgICBFWFBFQ1RfVFJVRShzY3JvbGxDbGllbnQuZGlkU2Nyb2xsQ2FsbGVk
KCkpOworCisgICAgc2Nyb2xsQ2xpZW50LnJlc2V0RGlkU2Nyb2xsQ2FsbGVkKCk7CisgICAgbV9y
b290TGF5ZXItPnNldFNjcm9sbFBvc2l0aW9uKFdlYlBvaW50KDE0LCAxOSkpOworICAgIEVYUEVD
VF9GQUxTRShzY3JvbGxDbGllbnQuZGlkU2Nyb2xsQ2FsbGVkKCkpOworCisgICAgbV9yb290TGF5
ZXItPnNldFNjcm9sbENsaWVudCgwKTsKK30KKwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162216</attachid>
            <date>2012-09-05 04:29:49 -0700</date>
            <delta_ts>2012-09-05 10:25:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95679-20120905122930.patch</filename>
            <type>text/plain</type>
            <size>26251</size>
            <attacher name="Sami Kyöstilä">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwNDlhNDAwNjk3OWZi
MjIyZTU2NzY3N2E4ZmE0MjQ3ZTJjZjNkNzg4Li5lOTY3NGUyMzIxMGY3YTAwOTFhNDcxMzI3OTBl
MjhlNzI5MGY2ZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wOS0wNSAg
U2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFdpcmUgdXAgc2Nyb2xsYWJsZSBzdWJsYXllcnMgaW4gU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
aHJvbWl1bQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTU2NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bnRyb2R1Y2UgV2ViTGF5ZXJTY3JvbGxDbGllbnQgZm9yIGdldHRpbmcgbm90aWZpZWQgYWJvdXQg
c2Nyb2xsIGV2ZW50cyB0YXJnZXRpbmcgYSBXZWJMYXllci4KKworICAgICAgICAqIFBsYXRmb3Jt
Lmd5cGk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkxheWVyLmg6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViTGF5ZXIpOgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9X
ZWJMYXllclNjcm9sbENsaWVudC5oOgorCiAyMDEyLTA5LTA0ICBLZW5pY2hpIElzaGliYXNoaSAg
PGJhc2hpQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIEF0dGVtcHQgdG8gZml4
IGJ1aWxkIGZhaWx1cmUgb24gV2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI3ZmQxMWNiMGEzZjFiMDczOTFl
MmMwMmU4ODJkOTk2ZjgwZGI1ZC4uNGJiNGU4ODhkMDhlYzk4YTI2MzA5MDFmMDM0NmZkMTkyNzNm
NDhjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA5LTA1ICBTYW1pIEt5b3N0
aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gV2lyZSB1
cCBzY3JvbGxhYmxlIHN1YmxheWVycyBpbiBTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTY3OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBz
Y3JvbGxhYmxlIHN1YmxheWVycyBpbiBTY3JvbGxpbmdDb29yZGluYXRvckNocm9taXVtIGFuZCBp
bnRyb2R1Y2UgYQorICAgICAgICBXZWJMYXllclNjcm9sbENsaWVudCB3aGljaCBpcyBub3RpZmll
ZCBvZiBzY3JvbGwgZXZlbnRzIG9uIGl0cyBhc3NvY2lhdGVkCisgICAgICAgIHNjcm9sbCBsYXll
ci4gR3JhcGhpY3NMYXllckNocm9taXVtIHVzZXMgaXQgdG8gYXBwbHkgc2Nyb2xsIGV2ZW50cyB0
YXJnZXRlZCB0bworICAgICAgICBpdHMgcGxhdGZvcm0gbGF5ZXIgdG8gYSBTY3JvbGxhYmxlQXJl
YSwgaS5lLiwgdGhlIFJlbmRlckxheWVyIGNvcnJlc3BvbmRpbmcgdG8KKyAgICAgICAgdGhlIHNj
cm9sbGFibGUgZWxlbWVudC4KKworICAgICAgICBUZXN0czogR3JhcGhpY3NMYXllckNocm9taXVt
VGVzdC5hcHBseVNjcm9sbFRvU2Nyb2xsYWJsZUFyZWEKKyAgICAgICAgICAgICAgIFdlYkxheWVy
VGVzdC5TY3JvbGxDbGllbnQKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2hyb21pdW06OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyQ2hyb21pdW06OmRpZFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNo
cm9taXVtOjpzZXRTY3JvbGxhYmxlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ2hyb21pdW06OnNjcm9sbGFibGVBcmVhKToKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXJDaHJv
bWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1
bS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5ZXJDaHJvbWl1bTo6c2V0TGF5ZXJTY3JvbGxDbGllbnQpOgorICAgICAgICAoTGF5
ZXJDaHJvbWl1bSk6CisKIDIwMTItMDktMDUgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBnb29n
bGUuY29tPgogCiAgICAgICAgIEVuYWJsZS9kaXNhYmxlIGNvbXBvc2l0ZWQgc2Nyb2xsaW5nIGJh
c2VkIG9uIG92ZXJmbG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGYyMzRlN2IxNzgx
M2NhMDAxOGViNWZmZGVhNWUxYzNjMTUyZmU0YWQuLjBmYTZkNTZkODgzMGQ5Nzg2ZGI1Zjg0Mjdk
YmQzN2Y0OWZiMTUyZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMDktMDUgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBXaXJlIHVwIHNjcm9sbGFibGUgc3VibGF5ZXJzIGluIFNjcm9s
bGluZ0Nvb3JkaW5hdG9yQ2hyb21pdW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk1Njc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW50cm9kdWNlIFdlYkxheWVyU2Nyb2xsQ2xpZW50IGZvciBnZXR0aW5n
IG5vdGlmaWVkIGFib3V0IHNjcm9sbCBldmVudHMgdGFyZ2V0aW5nIGEgV2ViTGF5ZXIuCisKKyAg
ICAgICAgKiBzcmMvV2ViTGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJJ
bXBsOjpzZXRNYXhTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJMYXllckltcGw6OnNldFNjcm9sbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkxheWVySW1wbDo6c2Nyb2xsQnkpOgorICAgICAgICAqIHNyYy9XZWJMYXllckltcGwuaDoK
KyAgICAgICAgKFdlYkxheWVySW1wbCk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0
VGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHA6
CisgICAgICAgIChNb2NrU2Nyb2xsYWJsZUFyZWEpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYktpdDo6VEVTVF9GKToKKyAgICAgICAgKiB0ZXN0cy9XZWJMYXllclRlc3QuY3BwOgor
CiAyMDEyLTA5LTA0ICBUaWVuLVJlbiBDaGVuICA8dHJjaGVuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIFJlbmFtZSBXZWJWaWV3Q2xpZW50OjpoYW5kbGVEaXNhbWJpZ3VhdGlv
blBvcHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaSBiL1NvdXJj
ZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCmluZGV4IGJhZWI5NDQ0ZDZhMWVmNDM4YWEwYjY1YWE5
YTFjOGY2Mjk2YjNmMDMuLmRjZTE1M2FlOWI3Njk3NGYxNjJmZDM1MjdkOWM1MTFhMjQ3MGYzOTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpCisrKyBiL1NvdXJjZS9Q
bGF0Zm9ybS9QbGF0Zm9ybS5neXBpCkBAIC03OSw2ICs3OSw3IEBACiAgICAgICAgICAgICAnY2hy
b21pdW0vcHVibGljL1dlYkltYWdlTGF5ZXIuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVi
bGljL1dlYklPU3VyZmFjZUxheWVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9X
ZWJMYXllci5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJTY3JvbGxD
bGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkxvY2FsaXplZFN0cmluZy5oJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaCBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXIuaAppbmRleCA5YmRlYjRj
MDFiYmM0MzA5ZGE2ODgwN2I0YWMxYmE4ZjhjOTg2Y2ExLi4xYmZmN2VmZTNkNWEzMTY5MTAyMmU4
ZWQzZjcwZmM4YjBiNjkxNzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkxheWVyLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJMYXllci5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIFNrTWF0cml4NDQ7CiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIGNsYXNzIFdlYkFuaW1hdGlvbkRlbGVnYXRlOwogY2xhc3MgV2ViRmlsdGVyT3Bl
cmF0aW9uczsKK2NsYXNzIFdlYkxheWVyU2Nyb2xsQ2xpZW50OwogY2xhc3MgV2ViVHJhbnNmb3Jt
YXRpb25NYXRyaXg7CiBzdHJ1Y3QgV2ViRmxvYXRQb2ludDsKIHN0cnVjdCBXZWJGbG9hdFJlY3Q7
CkBAIC0xNjUsNiArMTY2LDkgQEAgcHVibGljOgogCiAgICAgLy8gU2Nyb2xsaW5nCiAgICAgdmly
dHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKFdlYlBvaW50KSA9IDA7CisgICAgdmlydHVhbCBX
ZWJQb2ludCBzY3JvbGxQb3NpdGlvbigpIGNvbnN0ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBz
ZXRNYXhTY3JvbGxQb3NpdGlvbihXZWJTaXplKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNj
cm9sbGFibGUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRIYXZlV2hlZWxFdmVudEhh
bmRsZXJzKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkU2Nyb2xsT25NYWlu
VGhyZWFkKGJvb2wpID0gMDsKQEAgLTE3Miw2ICsxNzYsMTMgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRJc0NvbnRhaW5lckZvckZpeGVkUG9zaXRpb25MYXllcnMoYm9vbCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZFRvQ29udGFpbmVyTGF5ZXIoYm9vbCkgPSAwOwogCisg
ICAgLy8gVGhlIHNjcm9sbCBjbGllbnQgaXMgbm90aWZpZWQgd2hlbiB0aGUgc2Nyb2xsIHBvc2l0
aW9uIG9mIHRoZSBXZWJMYXllcgorICAgIC8vIGNoYW5nZXMuIE9ubHkgYSBzaW5nbGUgc2Nyb2xs
IGNsaWVudCBjYW4gYmUgc2V0IGZvciBhIFdlYkxheWVyIGF0IGEgdGltZS4KKyAgICAvLyBUaGUg
V2ViTGF5ZXIgZG9lcyBub3QgdGFrZSBvd25lcnNoaXAgb2YgdGhlIHNjcm9sbCBjbGllbnQsIGFu
ZCBpdCBpcyB0aGUKKyAgICAvLyByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2xpZW50IHRvIHJlc2V0
IHRoZSBsYXllcidzIHNjcm9sbCBjbGllbnQgYmVmb3JlCisgICAgLy8gZGVsZXRpbmcgdGhlIHNj
cm9sbCBjbGllbnQuCisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbENsaWVudChXZWJMYXllclNj
cm9sbENsaWVudCopID0gMDsKKwogICAgIC8vIEZvcmNlcyB0aGlzIGxheWVyIHRvIHVzZSBhIHJl
bmRlciBzdXJmYWNlLiBUaGVyZSBpcyBubyBiZW5lZml0IGluIGRvaW5nCiAgICAgLy8gc28sIGJ1
dCB0aGlzIGlzIHRvIGZhY2lsaXRhdGUgYmVuY2htYXJrcyBhbmQgdGVzdHMuCiAgICAgdmlydHVh
bCB2b2lkIHNldEZvcmNlUmVuZGVyU3VyZmFjZShib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyU2Nyb2xsQ2xpZW50LmggYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyU2Nyb2xsQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODUwNGEzNDJlMDg5OTIwOTgwZDAzYzcyMTZhODg2MWYzYzgzMDM3YQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJTY3JvbGxD
bGllbnQuaApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkxheWVy
U2Nyb2xsQ2xpZW50X2gKKyNkZWZpbmUgV2ViTGF5ZXJTY3JvbGxDbGllbnRfaAorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworLy8gQSBjbGllbnQgdGhhdCBpcyBub3RpZmllZCBvZiBzY3JvbGxpbmcg
b24gYSBXZWJMYXllci4KK2NsYXNzIFdlYkxheWVyU2Nyb2xsQ2xpZW50IHsKK3B1YmxpYzoKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2Nyb2xsKCkgPSAwOworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwg
fldlYkxheWVyU2Nyb2xsQ2xpZW50KCkgeyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFdlYkxheWVyU2Nyb2xsQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2Nocm9taXVtL1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xsaW5n
Q29vcmRpbmF0b3JDaHJvbWl1bS5jcHAKaW5kZXggYmM3OWFhODcxMmRlM2RhMDE3M2I2OWVjMWIw
OTVmYWQ3YzdhMDQwYy4uMmY1NWJlZjlmY2E4OTZiZjQ5YzZiZjhkMWE1ZjBjYzRjYzExODFmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY2hyb21pdW0vU2Nyb2xs
aW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvY2hyb21pdW0vU2Nyb2xsaW5nQ29vcmRpbmF0b3JDaHJvbWl1bS5jcHAKQEAgLTI0Niw5
ICsyNDYsMTggQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6c2V0TGF5ZXJJc0ZpeGVkVG9D
b250YWluZXJMYXllcihHcmFwaGljc0xheWVyKiBsYXllciwKICAgICAgICAgc2Nyb2xsYWJsZUxh
eWVyLT5zZXRGaXhlZFRvQ29udGFpbmVyTGF5ZXIoZW5hYmxlKTsKIH0KIAotdm9pZCBTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5nZShTY3JvbGxh
YmxlQXJlYSosIEdyYXBoaWNzTGF5ZXIqKQordm9pZCBTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Ny
b2xsYWJsZUFyZWFTY3JvbGxMYXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJs
ZUFyZWEsIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbExheWVyKQogewotICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQuCisgICAgaWYgKCFzY3JvbGxMYXllcikKKyAgICAgICAgcmV0dXJuOworICAgIEdyYXBo
aWNzTGF5ZXJDaHJvbWl1bSogbGF5ZXIgPSBzdGF0aWNfY2FzdDxHcmFwaGljc0xheWVyQ2hyb21p
dW0qPihzY3JvbGxMYXllcik7CisgICAgbGF5ZXItPnNldFNjcm9sbGFibGVBcmVhKHNjcm9sbGFi
bGVBcmVhKTsKKworICAgIGlmIChXZWJMYXllciogd2ViTGF5ZXIgPSBzY3JvbGxMYXllci0+cGxh
dGZvcm1MYXllcigpKSB7CisgICAgICAgIHdlYkxheWVyLT5zZXRTY3JvbGxhYmxlKHRydWUpOwor
ICAgICAgICB3ZWJMYXllci0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsYWJsZUFyZWEtPnNjcm9s
bFBvc2l0aW9uKCkpOworICAgICAgICB3ZWJMYXllci0+c2V0TWF4U2Nyb2xsUG9zaXRpb24oSW50
U2l6ZShzY3JvbGxhYmxlQXJlYS0+c2Nyb2xsU2l6ZShIb3Jpem9udGFsU2Nyb2xsYmFyKSwgc2Ny
b2xsYWJsZUFyZWEtPnNjcm9sbFNpemUoVmVydGljYWxTY3JvbGxiYXIpKSk7CisgICAgfQogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmNwcAppbmRleCBhMThhM2Y5NTlh
MDA5MTZkNWFlNjY2ZjU0MWY3YmFiZDZkZjE3YmE3Li4wZDcyODllM2VhZTdiMmRiMzBiZDNhY2Qz
OTExNGFhMjZjOWUyMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9HcmFwaGljc0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5jcHAK
QEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNp
bmNsdWRlICJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgIlNrTWF0cml4NDQuaCIKICNpbmNs
dWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+CkBAIC05MCw2
ICs5MSw3IEBAIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6R3JhcGhpY3NMYXllckNocm9taXVtKEdy
YXBoaWNzTGF5ZXJDbGllbnQqIGNsaWVudCkKICAgICAsIG1fY29udGVudHNMYXllckhhc0JhY2tn
cm91bmRDb2xvcihmYWxzZSkKICAgICAsIG1faW5TZXRDaGlsZHJlbihmYWxzZSkKICAgICAsIG1f
cGFnZVNjYWxlQ2hhbmdlZChmYWxzZSkKKyAgICAsIG1fc2Nyb2xsYWJsZUFyZWEoMCkKIHsKICAg
ICBtX29wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlID0gYWRvcHRQdHIobmV3
IE9wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRMYXllckRlbGVnYXRlKHRoaXMpKTsKIApAQCAtOTks
NiArMTAxLDcgQEAgR3JhcGhpY3NMYXllckNocm9taXVtOjpHcmFwaGljc0xheWVyQ2hyb21pdW0o
R3JhcGhpY3NMYXllckNsaWVudCogY2xpZW50KQogICAgICAgICBtX2xheWVyID0gYWRvcHRQdHIo
V2ViQ29udGVudExheWVyOjpjcmVhdGUobV9vcGFxdWVSZWN0VHJhY2tpbmdDb250ZW50TGF5ZXJE
ZWxlZ2F0ZS5nZXQoKSkpOwogCiAgICAgbV9sYXllci0+bGF5ZXIoKS0+c2V0RHJhd3NDb250ZW50
KG1fZHJhd3NDb250ZW50ICYmIG1fY29udGVudHNWaXNpYmxlKTsKKyAgICBtX2xheWVyLT5sYXll
cigpLT5zZXRTY3JvbGxDbGllbnQodGhpcyk7CiAgICAgaWYgKGNsaWVudCkKICAgICAgICAgZGV2
aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7CiAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3Jz
KCk7CkBAIC05MDcsNiArOTEwLDEyIEBAIHZvaWQgR3JhcGhpY3NMYXllckNocm9taXVtOjpub3Rp
ZnlBbmltYXRpb25GaW5pc2hlZChkb3VibGUpCiAgICAgLy8gRG8gbm90aGluZy4KIH0KIAordm9p
ZCBHcmFwaGljc0xheWVyQ2hyb21pdW06OmRpZFNjcm9sbCgpCit7CisgICAgaWYgKG1fc2Nyb2xs
YWJsZUFyZWEpCisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbFRvT2Zmc2V0V2l0aG91
dEFuaW1hdGlvbihJbnRQb2ludChtX2xheWVyLT5sYXllcigpLT5zY3JvbGxQb3NpdGlvbigpKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKaW5kZXggZWU5
YTM5ZWNiNDY2M2QwMjIwMGJlNGY4OWVhNWYxMDlkYzcwZDJhYS4uMWI4MTVlOTBmODk1MDc4ZDMz
MjA1MDg0Y2VjMjdhM2E2NzZhNmFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR3JhcGhpY3NMYXllckNocm9taXVt
LmgKQEAgLTQxLDEyICs0MSwxMyBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb250ZW50TGF5ZXIu
aD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViSW1hZ2VMYXllci5oPgogI2luY2x1ZGUgPHB1YmxpYy9X
ZWJMYXllci5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclNjcm9sbENsaWVudC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTGF5
ZXJDaHJvbWl1bTsKIGNsYXNzIFBhdGg7CitjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIAogY2xhc3Mg
TGlua0hpZ2hsaWdodENsaWVudCB7CiBwdWJsaWM6CkBAIC01OCw3ICs1OSw3IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIH5MaW5rSGlnaGxpZ2h0Q2xpZW50KCkgeyB9CiB9OwogCi1jbGFzcyBH
cmFwaGljc0xheWVyQ2hyb21pdW0gOiBwdWJsaWMgR3JhcGhpY3NMYXllciwgcHVibGljIEdyYXBo
aWNzQ29udGV4dFBhaW50ZXIsIHB1YmxpYyBXZWJLaXQ6OldlYkFuaW1hdGlvbkRlbGVnYXRlIHsK
K2NsYXNzIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bSA6IHB1YmxpYyBHcmFwaGljc0xheWVyLCBwdWJs
aWMgR3JhcGhpY3NDb250ZXh0UGFpbnRlciwgcHVibGljIFdlYktpdDo6V2ViQW5pbWF0aW9uRGVs
ZWdhdGUsIHB1YmxpYyBXZWJLaXQ6OldlYkxheWVyU2Nyb2xsQ2xpZW50IHsKIHB1YmxpYzoKICAg
ICBHcmFwaGljc0xheWVyQ2hyb21pdW0oR3JhcGhpY3NMYXllckNsaWVudCopOwogICAgIHZpcnR1
YWwgfkdyYXBoaWNzTGF5ZXJDaHJvbWl1bSgpOwpAQCAtMTM0LDYgKzEzNSw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCBib3Jk
ZXJXaWR0aCk7CiAgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdl
ZCgpOwogCisgICAgdm9pZCBzZXRTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSogc2Nyb2xs
YWJsZUFyZWEpIHsgbV9zY3JvbGxhYmxlQXJlYSA9IHNjcm9sbGFibGVBcmVhOyB9CisgICAgU2Ny
b2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxhYmxl
QXJlYTsgfQorCiAgICAgLy8gR3JhcGhpY3NDb250ZXh0UGFpbnRlciBpbXBsZW1lbnRhdGlvbi4K
ICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYg
Y2xpcCkgT1ZFUlJJREU7CiAKQEAgLTE0MSw2ICsxNDUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoZG91YmxlIHN0YXJ0VGltZSkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUFuaW1hdGlvbkZpbmlzaGVkKGRvdWJsZSBmaW5pc2hU
aW1lKSBPVkVSUklERTsKIAorICAgIC8vIFdlYkxheWVyU2Nyb2xsQ2xpZW50IGltcGxlbWVudGF0
aW9uLgorICAgIHZpcnR1YWwgdm9pZCBkaWRTY3JvbGwoKSBPVkVSUklERTsKKwogICAgIFdlYktp
dDo6V2ViQ29udGVudExheWVyKiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2xheWVy
LmdldCgpOyB9CiAKICAgICAvLyBFeHBvc2VkIGZvciB0ZXN0cy4KQEAgLTIwMCw2ICsyMDcsOCBA
QCBwcml2YXRlOgogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgaW50PiBBbmltYXRpb25J
ZE1hcDsKICAgICBBbmltYXRpb25JZE1hcCBtX2FuaW1hdGlvbklkTWFwOworCisgICAgU2Nyb2xs
YWJsZUFyZWEqIG1fc2Nyb2xsYWJsZUFyZWE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9M
YXllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDRlN2ZhNzRmNTU2ZTk5ZTg4MDQ1OWQ1NzUzNjY4
NGRkODFhMjgxZDQuLjM0YTE3MzBhMGVlYjgyNjUxOTljNDJiNzY4OTQzMzk0NWU2MDBjODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0xheWVyQ2hyb21pdW0uY3BwCkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSAiVGV4dFN0
cmVhbS5oIgogCiAjaW5jbHVkZSA8cHVibGljL1dlYkFuaW1hdGlvbkRlbGVnYXRlLmg+CisjaW5j
bHVkZSA8cHVibGljL1dlYkxheWVyU2Nyb2xsQ2xpZW50Lmg+CisjaW5jbHVkZSA8cHVibGljL1dl
YlNpemUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIFdlYktpdDo6V2ViVHJhbnNm
b3JtYXRpb25NYXRyaXg7CkBAIC05MSw3ICs5Myw3IEBAIExheWVyQ2hyb21pdW06OkxheWVyQ2hy
b21pdW0oKQogICAgICwgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nKGZhbHNlKQog
ICAgICwgbV9jb250ZW50c1NjYWxlKDEuMCkKICAgICAsIG1fbGF5ZXJBbmltYXRpb25EZWxlZ2F0
ZSgwKQotICAgICwgbV9sYXllclNjcm9sbERlbGVnYXRlKDApCisgICAgLCBtX2xheWVyU2Nyb2xs
Q2xpZW50KDApCiB7CiAgICAgaWYgKG1fbGF5ZXJJZCA8IDApIHsKICAgICAgICAgc19uZXh0TGF5
ZXJJZCA9IDE7CkBAIC0zOTUsNiArMzk3LDggQEAgdm9pZCBMYXllckNocm9taXVtOjpzZXRTY3Jv
bGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiAgICAgaWYgKG1fc2Ny
b2xsUG9zaXRpb24gPT0gc2Nyb2xsUG9zaXRpb24pCiAgICAgICAgIHJldHVybjsKICAgICBtX3Nj
cm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9zaXRpb247CisgICAgaWYgKG1fbGF5ZXJTY3JvbGxDbGll
bnQpCisgICAgICAgIG1fbGF5ZXJTY3JvbGxDbGllbnQtPmRpZFNjcm9sbCgpOwogICAgIHNldE5l
ZWRzQ29tbWl0KCk7CiB9CiAKQEAgLTQzOSwxMyArNDQzLDYgQEAgdm9pZCBMYXllckNocm9taXVt
OjpzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihjb25zdCBSZWdpb24mIHJlZ2lvbikKICAgICBz
ZXROZWVkc0NvbW1pdCgpOwogfQogCi12b2lkIExheWVyQ2hyb21pdW06OnNjcm9sbEJ5KGNvbnN0
IEludFNpemUmIHNjcm9sbERlbHRhKQotewotICAgIHNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBv
c2l0aW9uKCkgKyBzY3JvbGxEZWx0YSk7Ci0gICAgaWYgKG1fbGF5ZXJTY3JvbGxEZWxlZ2F0ZSkK
LSAgICAgICAgbV9sYXllclNjcm9sbERlbGVnYXRlLT5kaWRTY3JvbGwoc2Nyb2xsRGVsdGEpOwot
fQotCiB2b2lkIExheWVyQ2hyb21pdW06OnNldERyYXdDaGVja2VyYm9hcmRGb3JNaXNzaW5nVGls
ZXMoYm9vbCBjaGVja2VyYm9hcmQpCiB7CiAgICAgaWYgKG1fZHJhd0NoZWNrZXJib2FyZEZvck1p
c3NpbmdUaWxlcyA9PSBjaGVja2VyYm9hcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggMmU1NDFl
ZTdiZWNjM2UzN2I3OWI5NDQ2NGFlNjU1NjY0YTFlOGM0NS4uOTc2MWU3YzY3NzAyN2Y0NTQzZGJh
MTViN2JhNzBmYzZkY2FiMTZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtNTQsNiArNTQsNyBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkFuaW1hdGlvbkRlbGVnYXRlOworY2xh
c3MgV2ViTGF5ZXJTY3JvbGxDbGllbnQ7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY4
LDE1ICs2OSw2IEBAIGNsYXNzIFNjcm9sbGJhckxheWVyQ2hyb21pdW07CiBzdHJ1Y3QgQ0NBbmlt
YXRpb25FdmVudDsKIHN0cnVjdCBDQ1JlbmRlcmluZ1N0YXRzOwogCi0vLyBEZWxlZ2F0ZSBmb3Ig
aGFuZGxpbmcgc2Nyb2xsIGlucHV0IGZvciBhIExheWVyQ2hyb21pdW0uCi1jbGFzcyBMYXllckNo
cm9taXVtU2Nyb2xsRGVsZWdhdGUgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBkaWRTY3Jv
bGwoY29uc3QgSW50U2l6ZSYpID0gMDsKLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkxheWVy
Q2hyb21pdW1TY3JvbGxEZWxlZ2F0ZSgpIHsgfQotfTsKLQogLy8gQmFzZSBjbGFzcyBmb3IgY29t
cG9zaXRlZCBsYXllcnMuIFNwZWNpYWwgbGF5ZXIgdHlwZXMgYXJlIGRlcml2ZWQgZnJvbQogLy8g
dGhpcyBjbGFzcy4KIGNsYXNzIExheWVyQ2hyb21pdW0gOiBwdWJsaWMgUmVmQ291bnRlZDxMYXll
ckNocm9taXVtPiwgcHVibGljIENDTGF5ZXJBbmltYXRpb25Db250cm9sbGVyQ2xpZW50IHsKQEAg
LTE3NSw4ICsxNjcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVnaW9uJiBub25GYXN0U2Nyb2xs
YWJsZVJlZ2lvbigpIHsgcmV0dXJuIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb247IH0KICAgICB2
b2lkIHNldE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKGNvbnN0IFJlZ2lvbiYpOwogICAgIHZvaWQg
c2V0Tm9uRmFzdFNjcm9sbGFibGVSZWdpb25DaGFuZ2VkKCkgeyBtX25vbkZhc3RTY3JvbGxhYmxl
UmVnaW9uQ2hhbmdlZCA9IHRydWU7IH0KLSAgICB2b2lkIHNldExheWVyU2Nyb2xsRGVsZWdhdGUo
TGF5ZXJDaHJvbWl1bVNjcm9sbERlbGVnYXRlKiBsYXllclNjcm9sbERlbGVnYXRlKSB7IG1fbGF5
ZXJTY3JvbGxEZWxlZ2F0ZSA9IGxheWVyU2Nyb2xsRGVsZWdhdGU7IH0KLSAgICB2b2lkIHNjcm9s
bEJ5KGNvbnN0IEludFNpemUmKTsKKyAgICB2b2lkIHNldExheWVyU2Nyb2xsQ2xpZW50KFdlYktp
dDo6V2ViTGF5ZXJTY3JvbGxDbGllbnQqIGxheWVyU2Nyb2xsQ2xpZW50KSB7IG1fbGF5ZXJTY3Jv
bGxDbGllbnQgPSBsYXllclNjcm9sbENsaWVudDsgfQogCiAgICAgdm9pZCBzZXREcmF3Q2hlY2tl
cmJvYXJkRm9yTWlzc2luZ1RpbGVzKGJvb2wpOwogICAgIGJvb2wgZHJhd0NoZWNrZXJib2FyZEZv
ck1pc3NpbmdUaWxlcygpIGNvbnN0IHsgcmV0dXJuIG1fZHJhd0NoZWNrZXJib2FyZEZvck1pc3Np
bmdUaWxlczsgfQpAQCAtMzk2LDcgKzM4Nyw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9jb250
ZW50c1NjYWxlOwogCiAgICAgV2ViS2l0OjpXZWJBbmltYXRpb25EZWxlZ2F0ZSogbV9sYXllckFu
aW1hdGlvbkRlbGVnYXRlOwotICAgIExheWVyQ2hyb21pdW1TY3JvbGxEZWxlZ2F0ZSogbV9sYXll
clNjcm9sbERlbGVnYXRlOworICAgIFdlYktpdDo6V2ViTGF5ZXJTY3JvbGxDbGllbnQqIG1fbGF5
ZXJTY3JvbGxDbGllbnQ7CiB9OwogCiB2b2lkIHNvcnRMYXllcnMoVmVjdG9yPFJlZlB0cjxMYXll
ckNocm9taXVtPiA+OjppdGVyYXRvciwgVmVjdG9yPFJlZlB0cjxMYXllckNocm9taXVtPiA+Ojpp
dGVyYXRvciwgdm9pZCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggMDg0
NzRhMWQzN2VkMTdkNmNkM2U5OTY5MzJjYmNjNWE2YTU4OWQxMC4uNDAyNmVlODIzZGRiMDE0NzBl
N2Y2ZDY3ODY5MmU2NWU2MTMzMTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3Bw
CkBAIC02NTgsNyArNjU4LDcgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmFwcGx5U2Nyb2xsQW5k
U2NhbGUoY29uc3QgQ0NTY3JvbGxBbmRTY2FsZVNldCYgaW5mbykKICAgICAgICAgaWYgKGxheWVy
ID09IHJvb3RTY3JvbGxMYXllcikKICAgICAgICAgICAgIHJvb3RTY3JvbGxEZWx0YSArPSBpbmZv
LnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGE7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxheWVy
LT5zY3JvbGxCeShpbmZvLnNjcm9sbHNbaV0uc2Nyb2xsRGVsdGEpOworICAgICAgICAgICAgbGF5
ZXItPnNldFNjcm9sbFBvc2l0aW9uKGxheWVyLT5zY3JvbGxQb3NpdGlvbigpICsgaW5mby5zY3Jv
bGxzW2ldLnNjcm9sbERlbHRhKTsKICAgICB9CiAgICAgaWYgKCFyb290U2Nyb2xsRGVsdGEuaXNa
ZXJvKCkgfHwgaW5mby5wYWdlU2NhbGVEZWx0YSAhPSAxKQogICAgICAgICBtX2NsaWVudC0+YXBw
bHlTY3JvbGxBbmRTY2FsZShyb290U2Nyb2xsRGVsdGEsIGluZm8ucGFnZVNjYWxlRGVsdGEpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVySW1wbC5jcHAKaW5kZXggM2EzMTZk
ZmNlMDIwZDE1ZDcwZGRiZGZkOWQ4ZGIzZTkzNDc1MDQ4YS4uODVmOWI0ZGI0M2QyMDE5ZGI4Mjc2
ZWFlZjQwZGQyMmEyMWM0NWYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJM
YXllckltcGwuY3BwCkBAIC0zNTUsNiArMzU1LDE2IEBAIHZvaWQgV2ViTGF5ZXJJbXBsOjpzZXRT
Y3JvbGxQb3NpdGlvbihXZWJQb2ludCBwb3NpdGlvbikKICAgICBtX2xheWVyLT5zZXRTY3JvbGxQ
b3NpdGlvbihwb3NpdGlvbik7CiB9CiAKK1dlYlBvaW50IFdlYkxheWVySW1wbDo6c2Nyb2xsUG9z
aXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2xheWVyLT5zY3JvbGxQb3NpdGlvbigpOwor
fQorCit2b2lkIFdlYkxheWVySW1wbDo6c2V0TWF4U2Nyb2xsUG9zaXRpb24oV2ViU2l6ZSBtYXhT
Y3JvbGxQb3NpdGlvbikKK3sKKyAgICBtX2xheWVyLT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtYXhT
Y3JvbGxQb3NpdGlvbik7Cit9CisKIHZvaWQgV2ViTGF5ZXJJbXBsOjpzZXRTY3JvbGxhYmxlKGJv
b2wgc2Nyb2xsYWJsZSkKIHsKICAgICBtX2xheWVyLT5zZXRTY3JvbGxhYmxlKHNjcm9sbGFibGUp
OwpAQCAtMzkxLDYgKzQwMSwxMSBAQCB2b2lkIFdlYkxheWVySW1wbDo6c2V0Rml4ZWRUb0NvbnRh
aW5lckxheWVyKGJvb2wgZW5hYmxlKQogICAgIG1fbGF5ZXItPnNldEZpeGVkVG9Db250YWluZXJM
YXllcihlbmFibGUpOwogfQogCit2b2lkIFdlYkxheWVySW1wbDo6c2V0U2Nyb2xsQ2xpZW50KFdl
YkxheWVyU2Nyb2xsQ2xpZW50KiBzY3JvbGxDbGllbnQpCit7CisgICAgbV9sYXllci0+c2V0TGF5
ZXJTY3JvbGxDbGllbnQoc2Nyb2xsQ2xpZW50KTsKK30KKwogTGF5ZXJDaHJvbWl1bSogV2ViTGF5
ZXJJbXBsOjpsYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbGF5ZXIuZ2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllckltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVySW1wbC5oCmluZGV4IGUzNGFkZGNkYjJmNjdm
YWI4ZWU2ZmMyNWQyYjg0NDg5OTQzZmY3YTkuLjY3MzlmZDVlZDExMTc4OGU1MGQ2YjY0NDhlNjYz
NGY4ZjdhODIwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxh
eWVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVySW1wbC5o
CkBAIC05NCwxMiArOTQsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0cmFuc2ZlckFu
aW1hdGlvbnNUbyhXZWJMYXllciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGb3Jj
ZVJlbmRlclN1cmZhY2UoYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKFdlYlBvaW50KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYlBvaW50IHNjcm9s
bFBvc2l0aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNldE1heFNjcm9s
bFBvc2l0aW9uKFdlYlNpemUpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxh
YmxlKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRIYXZlV2hlZWxFdmVudEhh
bmRsZXJzKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRTY3JvbGxP
bk1haW5UaHJlYWQoYm9vbCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldE5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKGNvbnN0IFdlYlZlY3RvcjxXZWJSZWN0PiYpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRJc0NvbnRhaW5lckZvckZpeGVkUG9zaXRpb25MYXllcnMoYm9vbCkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldEZpeGVkVG9Db250YWluZXJMYXllcihib29s
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsQ2xpZW50KFdlYkxheWVyU2Ny
b2xsQ2xpZW50KikgT1ZFUlJJREU7CiAKICAgICBXZWJDb3JlOjpMYXllckNocm9taXVtKiBsYXll
cigpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xh
eWVyVHJlZUhvc3RUZXN0LmNwcAppbmRleCA1OTZlZWNhNGZkMTA0NWRlZmIxNjhkMDJiNjE0YTll
MDRiOTcyY2E4Li41MjE5MzAyN2NjNDY1MTg4MTJiMGFjNTA4YTIyMDBmMDcyNThjM2ZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVz
dC5jcHAKQEAgLTQxLDYgKzQxLDggQEAKICNpbmNsdWRlICJGYWtlV2ViQ29tcG9zaXRvck91dHB1
dFN1cmZhY2UuaCIKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgogI2luY2x1ZGUgPHB1YmxpYy9Q
bGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclNjcm9sbENsaWVudC5oPgorI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJTaXplLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KIApAQCAtMjIxMiw3ICsyMjE0LDcgQEAgcHJpdmF0
ZToKIAogU0lOR0xFX0FORF9NVUxUSV9USFJFQURfVEVTVF9GKENDTGF5ZXJUcmVlSG9zdFRlc3RM
YXllckFkZGVkV2l0aEFuaW1hdGlvbikKIAotY2xhc3MgQ0NMYXllclRyZWVIb3N0VGVzdFNjcm9s
bENoaWxkTGF5ZXIgOiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0VGVzdCwgcHVibGljIExheWVyQ2hy
b21pdW1TY3JvbGxEZWxlZ2F0ZSB7CitjbGFzcyBDQ0xheWVyVHJlZUhvc3RUZXN0U2Nyb2xsQ2hp
bGRMYXllciA6IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RUZXN0LCBwdWJsaWMgV2ViTGF5ZXJTY3Jv
bGxDbGllbnQgewogcHVibGljOgogICAgIENDTGF5ZXJUcmVlSG9zdFRlc3RTY3JvbGxDaGlsZExh
eWVyKCkKICAgICAgICAgOiBtX3Njcm9sbEFtb3VudCgyLCAxKQpAQCAtMjIzNSw3ICsyMjM3LDcg
QEAgcHVibGljOgogICAgICAgICBtX3Jvb3RTY3JvbGxMYXllci0+c2V0TWF4U2Nyb2xsUG9zaXRp
b24oSW50U2l6ZSgxMDAsIDEwMCkpOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJvb3RMYXll
cigpLT5hZGRDaGlsZChtX3Jvb3RTY3JvbGxMYXllcik7CiAgICAgICAgIG1fY2hpbGRMYXllciA9
IENvbnRlbnRMYXllckNocm9taXVtOjpjcmVhdGUoJm1fbW9ja0RlbGVnYXRlKTsKLSAgICAgICAg
bV9jaGlsZExheWVyLT5zZXRMYXllclNjcm9sbERlbGVnYXRlKHRoaXMpOworICAgICAgICBtX2No
aWxkTGF5ZXItPnNldExheWVyU2Nyb2xsQ2xpZW50KHRoaXMpOwogICAgICAgICBtX2NoaWxkTGF5
ZXItPnNldEJvdW5kcyhJbnRTaXplKDUwLCA1MCkpOwogICAgICAgICBtX2NoaWxkTGF5ZXItPnNl
dElzRHJhd2FibGUodHJ1ZSk7CiAgICAgICAgIG1fY2hpbGRMYXllci0+c2V0U2Nyb2xsYWJsZSh0
cnVlKTsKQEAgLTIyNDgsOSArMjI1MCw5IEBAIHB1YmxpYzoKICAgICAgICAgcG9zdFNldE5lZWRz
Q29tbWl0VG9NYWluVGhyZWFkKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIGRpZFNjcm9s
bChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkgT1ZFUlJJREUKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkU2Nyb2xsKCkgT1ZFUlJJREUKICAgICB7Ci0gICAgICAgIG1fcmVwb3J0ZWRTY3JvbGxBbW91
bnQgPSBzY3JvbGxEZWx0YTsKKyAgICAgICAgbV9maW5hbFNjcm9sbFBvc2l0aW9uID0gbV9jaGls
ZExheWVyLT5zY3JvbGxQb3NpdGlvbigpOwogICAgIH0KIAogICAgIHZpcnR1YWwgdm9pZCBhcHBs
eVNjcm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCkgT1ZFUlJJ
REUKQEAgLTIyODAsMTIgKzIyODIsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGFm
dGVyVGVzdCgpIE9WRVJSSURFCiAgICAgewotICAgICAgICBFWFBFQ1RfRVEobV9zY3JvbGxBbW91
bnQsIG1fcmVwb3J0ZWRTY3JvbGxBbW91bnQpOworICAgICAgICBFWFBFQ1RfRVEoSW50UG9pbnQo
bV9zY3JvbGxBbW91bnQpLCBtX2ZpbmFsU2Nyb2xsUG9zaXRpb24pOwogICAgIH0KIAogcHJpdmF0
ZToKICAgICBjb25zdCBJbnRTaXplIG1fc2Nyb2xsQW1vdW50OwotICAgIEludFNpemUgbV9yZXBv
cnRlZFNjcm9sbEFtb3VudDsKKyAgICBJbnRQb2ludCBtX2ZpbmFsU2Nyb2xsUG9zaXRpb247CiAg
ICAgTW9ja0NvbnRlbnRMYXllckNocm9taXVtQ2xpZW50IG1fbW9ja0RlbGVnYXRlOwogICAgIFJl
ZlB0cjxMYXllckNocm9taXVtPiBtX2NoaWxkTGF5ZXI7CiAgICAgUmVmUHRyPExheWVyQ2hyb21p
dW0+IG1fcm9vdFNjcm9sbExheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggOWUyZmJjYjZh
NzUzNGNlZTQwOWRjODc2NGU1ZTE5OThhZDFhODM0NS4uNDNkZDdhZTlhYjgwMmU4Nzg1NjlmYjA5
OGU5N2IzMmU4YzE4M2UxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiR3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIk1hdHJpeDNEVHJhbnNmb3Jt
T3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgiCisjaW5j
bHVkZSAiU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJUcmFuc2xhdGVUcmFuc2Zvcm1PcGVy
YXRpb24uaCIKICNpbmNsdWRlICJXZWJMYXllclRyZWVWaWV3VGVzdENvbW1vbi5oIgogI2luY2x1
ZGUgPGd0ZXN0L2d0ZXN0Lmg+CkBAIC0xMjYsNCArMTI3LDM4IEBAIFRFU1RfRihHcmFwaGljc0xh
eWVyQ2hyb21pdW1UZXN0LCBzaG91bGRTdGFydFdpdGhDb3JyZWN0Q29udGVudHNTY2FsZSkKICAg
ICBFWFBFQ1RfRVEoMiwgbV9ncmFwaGljc0xheWVyLT5jb250ZW50c1NjYWxlKCkpOwogfQogCitj
bGFzcyBGYWtlU2Nyb2xsYWJsZUFyZWEgOiBwdWJsaWMgU2Nyb2xsYWJsZUFyZWEgeworcHVibGlj
OgorICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBpbnQgc2Nyb2xsU2l6ZShTY3JvbGxiYXJPcmllbnRhdGlvbikg
Y29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgaW50IHNjcm9sbFBvc2l0
aW9uKFNjcm9sbGJhciopIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIEludFJlY3QoKTsgfQorICAgIHZpcnR1YWwgaW50IHZpc2libGVXaWR0aCgp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGludCB2aXNpYmxlSGVp
Z2h0KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgSW50U2l6ZSBj
b250ZW50c1NpemUoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBJbnRTaXplKCk7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNPbkFjdGl2ZVBhZ2UoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxz
ZTsgfQorICAgIHZpcnR1YWwgU2Nyb2xsYWJsZUFyZWEqIGVuY2xvc2luZ1Njcm9sbGFibGVBcmVh
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBzY3Jv
bGxhYmxlQXJlYUJvdW5kaW5nQm94KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gSW50UmVjdCgp
OyB9CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhcios
IGNvbnN0IEludFJlY3QmKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVjdCYpIE9WRVJSSURFIHsgfQorCisgICAgdmly
dHVhbCB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBJbnRQb2ludCYgc2Nyb2xsT2Zmc2V0KSBP
VkVSUklERSB7IG1fc2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxPZmZzZXQ7IH0KKyAgICB2aXJ0dWFs
IEludFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9zY3Jv
bGxQb3NpdGlvbjsgfQorCitwcml2YXRlOgorICAgIEludFBvaW50IG1fc2Nyb2xsUG9zaXRpb247
Cit9OworCitURVNUX0YoR3JhcGhpY3NMYXllckNocm9taXVtVGVzdCwgYXBwbHlTY3JvbGxUb1Nj
cm9sbGFibGVBcmVhKQoreworICAgIEZha2VTY3JvbGxhYmxlQXJlYSBzY3JvbGxhYmxlQXJlYTsK
KyAgICBtX2dyYXBoaWNzTGF5ZXItPnNldFNjcm9sbGFibGVBcmVhKCZzY3JvbGxhYmxlQXJlYSk7
CisKKyAgICBXZWJQb2ludCBzY3JvbGxQb3NpdGlvbig3LCA5KTsKKyAgICBtX3BsYXRmb3JtTGF5
ZXItPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsKKworICAgIEVYUEVDVF9FUShz
Y3JvbGxQb3NpdGlvbiwgV2ViUG9pbnQoc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsUG9zaXRpb24oKSkp
OworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJMYXllclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9X
ZWJMYXllclRlc3QuY3BwCmluZGV4IDgwYTEwMzFmYjYyY2E3NjIzMDAzNDA1NWVhN2FkNGQzYjdi
ZDc0OTUuLjc3MzJlZGYxMGQ5NGRmNjJmYWRiOWVkZTQ3NzZkMTUwYTFkZTM5MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDxwdWJsaWMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViRmxvYXRQb2ludC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGbG9hdFJl
Y3QuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJTY3JvbGxDbGllbnQuaD4KICNpbmNsdWRl
IDxwdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllclRy
ZWVWaWV3Q2xpZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJlY3QuaD4KQEAgLTE3Miw0ICsx
NzMsMjggQEAgVEVTVF9GKFdlYkxheWVyVGVzdCwgQ2xpZW50KQogICAgIEVYUEVDVF9GQUxTRShj
b250ZW50TGF5ZXItPmxheWVyKCktPmRyYXdzQ29udGVudCgpKTsKIH0KIAorY2xhc3MgTW9ja1Nj
cm9sbENsaWVudCA6IHB1YmxpYyBXZWJMYXllclNjcm9sbENsaWVudCB7CitwdWJsaWM6CisgICAg
TU9DS19NRVRIT0QwKGRpZFNjcm9sbCwgdm9pZCgpKTsKK307CisKK1RFU1RfRihXZWJMYXllclRl
c3QsIG5vdGlmeVNjcm9sbENsaWVudCkKK3sKKyAgICBNb2NrU2Nyb2xsQ2xpZW50IHNjcm9sbENs
aWVudDsKKworICAgIEVYUEVDVF9DQUxMKHNjcm9sbENsaWVudCwgZGlkU2Nyb2xsKCkpLlRpbWVz
KDApOworICAgIG1fcm9vdExheWVyLT5zZXRTY3JvbGxDbGllbnQoJnNjcm9sbENsaWVudCk7Cisg
ICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJnNjcm9sbENsaWVudCk7CisKKyAg
ICBFWFBFQ1RfQ0FMTChzY3JvbGxDbGllbnQsIGRpZFNjcm9sbCgpKS5UaW1lcygxKTsKKyAgICBt
X3Jvb3RMYXllci0+c2V0U2Nyb2xsUG9zaXRpb24oV2ViUG9pbnQoMTQsIDE5KSk7CisgICAgTW9j
azo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJnNjcm9sbENsaWVudCk7CisKKyAgICBFWFBF
Q1RfQ0FMTChzY3JvbGxDbGllbnQsIGRpZFNjcm9sbCgpKS5UaW1lcygwKTsKKyAgICBtX3Jvb3RM
YXllci0+c2V0U2Nyb2xsUG9zaXRpb24oV2ViUG9pbnQoMTQsIDE5KSk7CisgICAgTW9jazo6VmVy
aWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJnNjcm9sbENsaWVudCk7CisKKyAgICBtX3Jvb3RMYXll
ci0+c2V0U2Nyb2xsQ2xpZW50KDApOworfQorCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>