<?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>90170</bug_id>
          
          <creation_ts>2012-06-28 06:28:54 -0700</creation_ts>
          <short_desc>[EFL] Add Gamepad support</short_desc>
          <delta_ts>2012-07-01 23:22:37 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>659459</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-28 06:28:54 -0700</bug_when>
    <thetext>The EFL port does not currently support Gamepads. I&apos;m planning to add support by using udev, via the EEZE library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659612</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-28 10:55:30 -0700</bug_when>
    <thetext>EEZE library does not currently support JOYSTICK devices so I wrote a patch for it: http://trac.enlightenment.org/e/ticket/1100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660445</commentid>
    <comment_count>2</comment_count>
      <attachid>150170</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-29 07:08:59 -0700</bug_when>
    <thetext>Created attachment 150170
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660584</commentid>
    <comment_count>3</comment_count>
      <attachid>150170</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-29 10:01:02 -0700</bug_when>
    <thetext>Comment on attachment 150170
Patch

Clearing flags for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660670</commentid>
    <comment_count>4</comment_count>
      <attachid>150225</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-29 11:35:17 -0700</bug_when>
    <thetext>Created attachment 150225
Patch

Actually tested with a gamepad and fixed a few bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660679</commentid>
    <comment_count>5</comment_count>
      <attachid>150229</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-29 11:39:59 -0700</bug_when>
    <thetext>Created attachment 150229
Patch

Fix changelog entries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661097</commentid>
    <comment_count>6</comment_count>
      <attachid>150229</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-06-30 16:41:28 -0700</bug_when>
    <thetext>Comment on attachment 150229
Patch

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

&gt; Source/cmake/FindEFL.cmake:7
&gt; +  eina&gt;=1.2.0

I bump efl libraries version on Bug 90333 because of supporting network information APIs. I wonder whether Bug 90333 can support this patch as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661224</commentid>
    <comment_count>7</comment_count>
      <attachid>150229</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-01 19:10:32 -0700</bug_when>
    <thetext>Comment on attachment 150229
Patch

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

&gt; Source/WebCore/platform/efl/GamepadsEfl.cpp:208
&gt; +void GamepadsEfl::updateGamepadList(GamepadList* into)

into?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661242</commentid>
    <comment_count>8</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-01 19:59:24 -0700</bug_when>
    <thetext>Christophe, if possible, I would like to land Bug 90333. So, could you let me know if Bug 90333 can support this patch as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661255</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-01 22:29:13 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 150229 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=150229&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/efl/GamepadsEfl.cpp:208
&gt; &gt; +void GamepadsEfl::updateGamepadList(GamepadList* into)
&gt; 
&gt; into?

Yes, I copied the prototype from Gamepads.h in WebCore/platform:
void sampleGamepads(GamepadList* into);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661258</commentid>
    <comment_count>10</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-01 22:32:57 -0700</bug_when>
    <thetext>*** Bug 90333 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661270</commentid>
    <comment_count>11</comment_count>
      <attachid>150229</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-01 23:22:31 -0700</bug_when>
    <thetext>Comment on attachment 150229
Patch

Clearing flags on attachment: 150229

Committed r121657: &lt;http://trac.webkit.org/changeset/121657&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661271</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-01 23:22:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150170</attachid>
            <date>2012-06-29 07:08:59 -0700</date>
            <delta_ts>2012-06-29 11:35:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90170_gamepad_support.patch</filename>
            <type>text/plain</type>
            <size>20115</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA0MmJkMTdkLi5kZDBjNjg1
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDYtMjkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBBZGQgR2FtZXBhZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDE3MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRFRkwuY21h
a2U6IEJ1bXAgRUZMIGxpYnMgZGVwZW5kZW5jaWVzLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlOiBUdXJuIG9uIEdBTUVQQUQgZmxhZyBvbiBFRkwgcG9ydC4KKyAgICAg
ICAgKiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZTogQWRkIEdBTUVQQUQgZmxhZyB0byBDTWFr
ZS4KKwogMjAxMi0wNi0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBbUmVmYWN0b3JpbmddIE5vZGVSZW5kZXJpbmdDb250ZXh0IGN0b3IgY291bGQgYmUg
YnVpbHQgb24gdG9wIG9mIHRoZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMGMz
MDNlLi43MmQzNDAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDYtMjkgIENocmlzdG9w
aGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBB
ZGQgR2FtZXBhZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MDE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVuc2tpcCBnYW1lcGFkL2dhbWVwYWQtYXBpLmh0bWwgbm93IHRoYXQgR2FtZXBh
ZAorICAgICAgICBzdXBwb3J0IGlzIGVuYWJsZWQgb24gRUZMIHBvcnQuCisKKyAgICAgICAgZ2Ft
ZXBhZC9nYW1lcGFkLXBvbGxpbmctYWNjZXNzLmh0bWwgaXMgc3RpbGwKKyAgICAgICAgc2tpcHBl
ZCBiZWNhdXNlIGl0IHJlcXVpcmVzIGFkZGl0aW9uYWwgdGVzdAorICAgICAgICBpbmZyYXN0cnVj
dHVyZS4KKworICAgICAgICAqIHBsYXRmb3JtL2VmbC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRm
b3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTA2LTI5ICBKw6Fub3MgQmFkaWNzICA8
amJhZGljc0BpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRl
bmluZyBhZnRlciByMTIxNDk0LiBBZGRlZCBuZXcgYmFzZWxpbmUgdG8KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1NraXBwZWQKaW5kZXggM2ZhYzAzOS4uZGM2NWNlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBw
ZWQKQEAgLTc0Nyw5ICs3NDcsNiBAQCBmYXN0L2Zvcm1zL21vbnRoCiBmYXN0L2Zvcm1zL3RpbWUK
IGZhc3QvZm9ybXMvd2VlawogCi0jIEVOQUJMRV9HQU1FUEFEIG5vdCBlbmFibGVkLgotZ2FtZXBh
ZC8KLQogIyBIaURQSSB0ZXN0cyByZXF1aXJlIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgZW5oYW5jZW1l
bnRzCiBmYXN0L2hpZHBpCiBzdmcvYXMtaW1hZ2UvaW1hZ2UtcmVzcGVjdHMtZGV2aWNlU2NhbGVG
YWN0b3IuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBhNDEwMjc4Li45ODA1YTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNjkxLDYgKzY5MSw5IEBAIEJVR1dLODY2MzcgOiBlZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLW1hcmtlci1kZXNjcmlwdGlvbi5odG1sID0gVEVYVAogLy8gTG9va3MgbGlrZSBz
b21lIHJhY2UgY29uZGl0aW9uIGR1cmluZyBsb2FkaW5nLgogQlVHV0s4NTk3NyA6IGZhc3QvY3Nz
L2ZvbnQtZmFjZS1kb3dubG9hZC1lcnJvci5odG1sID0gVElNRU9VVAogCisvLyBNaXNzaW5nIHRl
c3QgaW5mcmFzdHJ1Y3R1cmUsIG5vIGdhbWVwYWRzIGF2YWlsYWJsZS4KK0JVR1dLRUZMIDogZ2Ft
ZXBhZC9nYW1lcGFkLXBvbGxpbmctYWNjZXNzLmh0bWwgPSBURVhUCisKIC8vIEZhaWxzIG9uIEdU
SysgYW5kIFF0IGFzIHdlbGwuCiBCVUdXSzg2NDQ1IDogZmFzdC9tdWx0aWNvbC9zcGxpdC1pbi10
b3AtbWFyZ2luLmh0bWwgPSBJTUFHRQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDVjNTY0OTUu
LjZjZjcyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC05Niw2ICs5Niw3IEBAIFNFVChXZWJD
b3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKIAogU0VUKFdlYkNvcmVfSURMX0lOQ0xVREVTCiAgICAg
TW9kdWxlcy9maWxlc3lzdGVtCisgICAgTW9kdWxlcy9nYW1lcGFkCiAgICAgTW9kdWxlcy9nZW9s
b2NhdGlvbgogICAgIE1vZHVsZXMvaW5kZXhlZGRiCiAgICAgTW9kdWxlcy9xdW90YQpAQCAtMjQ3
NSw2ICsyNDc2LDIyIEBAIElGIChFTkFCTEVfQkFUVEVSWV9TVEFUVVMpCiAgICAgKQogRU5ESUYg
KCkKIAorSUYgKEVOQUJMRV9HQU1FUEFEKQorICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9nYW1lcGFkIgor
ICAgICkKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUworICAgICAgICBNb2R1bGVz
L2dhbWVwYWQvR2FtZXBhZC5pZGwKKyAgICAgICAgTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWRMaXN0
LmlkbAorICAgICAgICBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5pZGwKKyAgICAp
CisgICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIE1vZHVsZXMvZ2FtZXBh
ZC9HYW1lcGFkLmNwcAorICAgICAgICBNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZExpc3QuY3BwCisg
ICAgICAgIE1vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNwcAorICAgICkKK0VORElG
ICgpCisKIElGIChFTkFCTEVfTUVESUFfU1RSRUFNKQogICAgIExJU1QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAgICAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlh
c3RyZWFtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNTM5NWIyZS4uODE1ZGIzYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQ1IEBACisyMDEyLTA2LTI5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1l
ekBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEdhbWVwYWQgc3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAxNzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
dGhlIEdhbWVwYWQgZmVhdHVyZSBvbiB0aGUgRUZMIHBvcnQuCisKKyAgICAgICAgVGhlIGltcGxl
bWVudGF0aW9uIG9mIHRoaXMgY2xhc3MgcmVsaWVzIG9uIHRoZSBMaW51eAorICAgICAgICBrZXJu
ZWwgam95c3RpY2sgQVBJLgorCisgICAgICAgIEdhbWVwYWQgZGV2aWNlcyBhcmUgcmVjb2duaXpl
ZCB0aHJvdWdoIHRoZSBHYW1lcGFkc0VmbAorICAgICAgICBjbGFzcywgb2Ygd2hpY2ggaW1wbGVt
ZW50YXRpb24gaXMgYmFzZWQgb24gRWV6ZQorICAgICAgICBsaWJyYXJ5LiBUaGlzIHdheSBkZXZp
Y2VzIGFyZSBwcm9wZXJseSByZWdpc3RlcmVkIG9uCisgICAgICAgIGNvbm5lY3Rpb24gYXMgb2Jq
ZWN0cyBvZiB0aGUgR2FtZXBhZERldmljZUVmbCBjbGFzcworICAgICAgICB3aGljaCBpbmhlcml0
cyBHYW1lcGFkRGV2aWNlTGludXguIEdhbWVwYWREZXZpY2VFZmwKKyAgICAgICAgcmVhZHMgdGhl
IGpveXN0aWNrIGRhdGEgdGhyb3VnaCBhbiBFY29yZV9GZF9IYW5kbGVyCisgICAgICAgIGFuZCB1
cGRhdGVzIHRoZSBkZXZpY2Ugc3RhdGUgYWNjb3JkaW5nbHkuIFRoZQorICAgICAgICBHYW1lcGFk
c0VmbCBvYmplY3QgaXMgdGhlbiBwb2xsZWQgZm9yIGdhbWVwYWRzIGRhdGEKKyAgICAgICAgdGhy
b3VnaCB0aGUgc2FtcGxlR2FtZXBhZHMgbWV0aG9kLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAt
IGFscmVhZHkgdGVzdGVkIGJ5IGdhbWVwYWQvKgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0dh
bWVwYWRzRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEdhbWVw
YWREZXZpY2VFZmwpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VFZmw6OkdhbWVwYWREZXZpY2VFZmwp
OgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6fkdhbWVwYWREZXZpY2VFZmwp
OgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6cmVhZENhbGxiYWNrKToKKyAg
ICAgICAgKEdhbWVwYWRzRWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzRWZsOjpvbkdh
bWVQYWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZHNFZmw6OkdhbWVwYWRzRWZs
KToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzRWZsOjp+R2FtZXBhZHNFZmwpOgorICAgICAg
ICAoV2ViQ29yZTo6R2FtZXBhZHNFZmw6OnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdhbWVwYWRzRWZsOjp1bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWRzRWZsOjp1cGRhdGVHYW1lcGFkTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpzYW1wbGVH
YW1lcGFkcyk6CisKIDIwMTItMDYtMjkgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmVtb3ZlIGEgI2luY2x1ZGUgZXJyb25lb3VzbHkgYWRkZWQgaW4gcjEyMDg5
Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggMjJhZjBlNi4uOTRlNjkwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTgsNiArOCw3IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUwogICAiJHtXRUJDT1JFX0RJUn0vcGFnZS9lZmwiCiAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9lZmwiCiAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFw
aGljcy9lZmwiCisgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9saW51eCIKICAgIiR7V0VCQ09S
RV9ESVJ9L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lciIKICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL25ldHdvcmsvc291cCIKICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQv
ZWZsIgpAQCAtMzMsNiArMzQsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgcGxh
dGZvcm0vZWZsL0VmbFNjcmVlblV0aWxpdGllcy5jcHAKICAgcGxhdGZvcm0vZWZsL0V2ZW50TG9v
cEVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0ZpbGVTeXN0ZW1FZmwuY3BwCisgIHBsYXRmb3JtL2Vm
bC9HYW1lcGFkc0VmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0tVUkxFZmwuY3BwCiAgIHBsYXRmb3Jt
L2VmbC9MYW5ndWFnZUVmbC5jcHAKICAgcGxhdGZvcm0vZWZsL0xvY2FsaXplZFN0cmluZ3NFZmwu
Y3BwCkBAIC03NCw2ICs3Niw3IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICBwbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCiAgIHBsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3BuZy9QTkdJbWFnZURlY29kZXIuY3BwCiAgIHBsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKKyAgcGxhdGZvcm0vbGludXgvR2Ft
ZXBhZERldmljZUxpbnV4LmNwcAogICBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvRGVw
cmVjYXRlZFBlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKICAgcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Z3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAogICBwbGF0Zm9ybS9uZXR3
b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKQEAgLTMwNywzICszMTAsMTIgQEAgSUYgKEVOQUJM
RV9XRUJfQVVESU8pCiAgIEFERF9ERUZJTklUSU9OUygtRFVOSU5TVEFMTEVEX0FVRElPX1JFU09V
UkNFU19ESVI9IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2F1ZGlvL3Jlc291cmNlcyIpCiBFTkRJ
RiAoKQogCitJRiAoRU5BQkxFX0dBTUVQQUQpCisgIExJU1QoQVBQRU5EIFdlYkNvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7RUVaRV9JTkNMVURFX0RJUlN9CisgICkKKyAgTElTVChBUFBF
TkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0VFWkVfTElCUkFSSUVTfQorICApCitFTkRJRiAo
KQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvR2FtZXBhZHNFZmwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZsLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDE1ZGZhCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZsLmNwcApAQCAtMCwwICsxLDIy
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkdhbWVwYWRzLmgiCisKKyNpZiBFTkFCTEUoR0FNRVBBRCkKKworI2luY2x1ZGUgIkdhbWVwYWRE
ZXZpY2VMaW51eC5oIgorI2luY2x1ZGUgIkdhbWVwYWRMaXN0LmgiCisjaW5jbHVkZSA8RWNvcmUu
aD4KKyNpbmNsdWRlIDxFZXplLmg+CisjaW5jbHVkZSA8RWluYS5oPgorI2luY2x1ZGUgPHVuaXN0
ZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSGFzaC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdhbWVwYWREZXZpY2VF
ZmwgOiBwdWJsaWMgR2FtZXBhZERldmljZUxpbnV4IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c093blB0cjxHYW1lcGFkRGV2aWNlRWZsPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VGaWxl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBHYW1lcGFkRGV2aWNlRWZsKGRl
dmljZUZpbGUpKTsKKyAgICB9CisgICAgfkdhbWVwYWREZXZpY2VFZmwoKTsKKworcHJpdmF0ZToK
KyAgICBHYW1lcGFkRGV2aWNlRWZsKGNvbnN0IFN0cmluZyYgZGV2aWNlRmlsZSk7CisgICAgc3Rh
dGljIEVpbmFfQm9vbCByZWFkQ2FsbGJhY2sodm9pZCogdXNlckRhdGEsIEVjb3JlX0ZkX0hhbmRs
ZXIqKTsKKworICAgIEVjb3JlX0ZkX0hhbmRsZXIqIG1fZmRIYW5kbGVyOworfTsKKworR2FtZXBh
ZERldmljZUVmbDo6R2FtZXBhZERldmljZUVmbChjb25zdCBTdHJpbmcmIGRldmljZUZpbGUpCisg
ICAgOiBHYW1lcGFkRGV2aWNlTGludXgoZGV2aWNlRmlsZSkKKyAgICAsIG1fZmRIYW5kbGVyKDAp
Cit7CisgICAgaWYgKG1fZmlsZURlc2NyaXB0b3IgPT0gLTEpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZmRIYW5kbGVyID0gZWNvcmVfbWFpbl9mZF9oYW5kbGVyX2FkZChtX2ZpbGVEZXNjcmlw
dG9yLCBFQ09SRV9GRF9SRUFELCByZWFkQ2FsbGJhY2ssIHRoaXMsIDAsIDApOworICAgIGlmICgh
bV9mZEhhbmRsZXIpCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgRWNv
cmVfRmRfSGFuZGxlci4iKTsKK30KKworR2FtZXBhZERldmljZUVmbDo6fkdhbWVwYWREZXZpY2VF
ZmwoKQoreworICAgIGlmIChtX2ZkSGFuZGxlcikKKyAgICAgICAgZWNvcmVfbWFpbl9mZF9oYW5k
bGVyX2RlbChtX2ZkSGFuZGxlcik7Cit9CisKK0VpbmFfQm9vbCBHYW1lcGFkRGV2aWNlRWZsOjpy
ZWFkQ2FsbGJhY2sodm9pZCogdXNlckRhdGEsIEVjb3JlX0ZkX0hhbmRsZXIqIGZkSGFuZGxlcikK
K3sKKyAgICBHYW1lcGFkRGV2aWNlRWZsKiBnYW1lcGFkRGV2aWNlID0gc3RhdGljX2Nhc3Q8R2Ft
ZXBhZERldmljZUVmbCo+KHVzZXJEYXRhKTsKKworICAgIGlmIChlY29yZV9tYWluX2ZkX2hhbmRs
ZXJfYWN0aXZlX2dldChmZEhhbmRsZXIsIEVDT1JFX0ZEX0VSUk9SKSkgeworICAgICAgICBMT0df
RVJST1IoIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHdhdGNoaW5nIHRoZSBqb3lzdGljayBmaWxl
IGRlc2NyaXB0b3IsIGFib3J0aW5nLiIpOworICAgICAgICByZXR1cm4gRUNPUkVfQ0FMTEJBQ0tf
Q0FOQ0VMOworICAgIH0KKworICAgIGludCBmZERldmljZSA9IGVjb3JlX21haW5fZmRfaGFuZGxl
cl9mZF9nZXQoZmRIYW5kbGVyKTsKKyAgICBzdHJ1Y3QganNfZXZlbnQgZXZlbnQ7CisgICAgY29u
c3Qgc3NpemVfdCBsZW4gPSByZWFkKGZkRGV2aWNlLCAmZXZlbnQsIHNpemVvZihldmVudCkpOwor
CisgICAgaWYgKGxlbiA8PSAwKSB7CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIHJlYWQg
am95c3RpY2sgZmlsZSBkZXNjcmlwdG9yLCBhYm9ydGluZy4iKTsKKyAgICAgICAgcmV0dXJuIEVD
T1JFX0NBTExCQUNLX0NBTkNFTDsKKyAgICB9CisgICAgaWYgKGxlbiAhPSBzaXplb2YoZXZlbnQp
KSB7CisgICAgICAgIExPR19FUlJPUigiV3JvbmcganNfZXZlbnQgc2l6ZSByZWFkIG9uIGZpbGUg
ZGVzY3JpcHRvciwgaWdub3JpbmcuIik7CisgICAgICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19S
RU5FVzsKKyAgICB9CisKKyAgICBnYW1lcGFkRGV2aWNlLT51cGRhdGVGb3JFdmVudChldmVudCk7
CisgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX1JFTkVXOworfQorCitjbGFzcyBHYW1lcGFkc0Vm
bCB7CitwdWJsaWM6CisgICAgR2FtZXBhZHNFZmwoc2l6ZV90IGxlbmd0aCk7CisKKyAgICB2b2lk
IHJlZ2lzdGVyRGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlRmlsZSk7CisgICAgdm9pZCB1bnJl
Z2lzdGVyRGV2aWNlKGNvbnN0IFN0cmluZyYgZGV2aWNlRmlsZSk7CisKKyAgICB2b2lkIHVwZGF0
ZUdhbWVwYWRMaXN0KEdhbWVwYWRMaXN0Kik7CisKK3ByaXZhdGU6CisgICAgfkdhbWVwYWRzRWZs
KCk7CisgICAgc3RhdGljIHZvaWQgb25HYW1lUGFkQ2hhbmdlKGNvbnN0IGNoYXIqIHN5c3BhdGgs
IEVlemVfVWRldl9FdmVudCwgdm9pZCogdXNlckRhdGEsIEVlemVfVWRldl9XYXRjaCogd2F0Y2hl
cik7CisKKyAgICBWZWN0b3I8T3duUHRyPEdhbWVwYWREZXZpY2VFZmw+ID4gbV9zbG90czsKKyAg
ICBIYXNoTWFwPFN0cmluZywgR2FtZXBhZERldmljZUVmbCo+IG1fZGV2aWNlTWFwOworCisgICAg
RWV6ZV9VZGV2X1dhdGNoKiBtX2dhbWVwYWRzV2F0Y2hlcjsKK307CisKK3ZvaWQgR2FtZXBhZHNF
Zmw6Om9uR2FtZVBhZENoYW5nZShjb25zdCBjaGFyKiBzeXNwYXRoLCBFZXplX1VkZXZfRXZlbnQg
ZXZlbnQsIHZvaWQqIHVzZXJEYXRhLCBFZXplX1VkZXZfV2F0Y2gqIHdhdGNoZXIpCit7CisgICAg
R2FtZXBhZHNFZmwqIGdhbWVwYWRzRWZsID0gc3RhdGljX2Nhc3Q8R2FtZXBhZHNFZmwqPih1c2Vy
RGF0YSk7CisKKyAgICBzd2l0Y2ggKGV2ZW50KSB7CisgICAgY2FzZSBFRVpFX1VERVZfRVZFTlRf
QUREOgorICAgICAgICBnYW1lcGFkc0VmbC0+cmVnaXN0ZXJEZXZpY2UoU3RyaW5nOjpmcm9tVVRG
OChzeXNwYXRoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRUVaRV9VREVWX0VWRU5UX1JF
TU9WRToKKyAgICAgICAgZ2FtZXBhZHNFZmwtPnJlZ2lzdGVyRGV2aWNlKFN0cmluZzo6ZnJvbVVU
Rjgoc3lzcGF0aCkpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK0dhbWVwYWRzRWZsOjpHYW1lcGFkc0VmbChzaXplX3QgbGVuZ3RoKQor
ICAgIDogbV9zbG90cyhsZW5ndGgpCisgICAgLCBtX2dhbWVwYWRzV2F0Y2hlcigwKQoreworICAg
IGlmIChlZXplX2luaXQoKSA8IDApIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gaW5p
dGlhbGl6ZSBlZXplIGxpYnJhcnkuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAv
LyBXYXRjaCBmb3IgZ2FtZXBhZHMgYWRkaXRpb25zIC8gcmVtb3ZhbHMKKyAgICBtX2dhbWVwYWRz
V2F0Y2hlciA9IGVlemVfdWRldl93YXRjaF9hZGQoRUVaRV9VREVWX1RZUEVfSk9ZU1RJQ0ssIChF
RVpFX1VERVZfRVZFTlRfQUREIHwgRUVaRV9VREVWX0VWRU5UX1JFTU9WRSksIG9uR2FtZVBhZENo
YW5nZSwgdGhpcyk7CisKKyAgICAvLyBMaXN0IGF2YWlsYWJsZSBnYW1lcGFkcy4KKyAgICBFaW5h
X0xpc3QqIGdhbWVwYWRzID0gZWV6ZV91ZGV2X2ZpbmRfYnlfdHlwZShFRVpFX1VERVZfVFlQRV9K
T1lTVElDSywgMCk7CisgICAgdm9pZCogc3lzcGF0aDsKKyAgICBFSU5BX0xJU1RfRlJFRShnYW1l
cGFkcywgc3lzcGF0aCkgeworICAgICAgICBjaGFyKiBkZXZpY2VGaWxlID0gc3RhdGljX2Nhc3Q8
Y2hhcio+KHN5c3BhdGgpOworICAgICAgICByZWdpc3RlckRldmljZShTdHJpbmc6OmZyb21VVEY4
KGRldmljZUZpbGUpKTsKKyAgICAgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoZGV2aWNlRmlsZSk7
CisgICAgfQorfQorCitHYW1lcGFkc0VmbDo6fkdhbWVwYWRzRWZsKCkKK3sKKyAgICBpZiAobV9n
YW1lcGFkc1dhdGNoZXIpCisgICAgICAgIGVlemVfdWRldl93YXRjaF9kZWwobV9nYW1lcGFkc1dh
dGNoZXIpOworICAgIGVlemVfc2h1dGRvd24oKTsKK30KKwordm9pZCBHYW1lcGFkc0VmbDo6cmVn
aXN0ZXJEZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VGaWxlKQoreworICAgIEFTU0VSVCghbV9k
ZXZpY2VNYXAuY29udGFpbnMoZGV2aWNlRmlsZSkpOworCisgICAgY29uc3Qgc2l6ZV90IHNsb3RD
b3VudCA9IG1fc2xvdHMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXgg
PCBzbG90Q291bnQ7ICsraW5kZXgpIHsKKyAgICAgICAgaWYgKCFtX3Nsb3RzW2luZGV4XSkgewor
ICAgICAgICAgICAgbV9zbG90c1tpbmRleF0gPSBHYW1lcGFkRGV2aWNlRWZsOjpjcmVhdGUoZGV2
aWNlRmlsZSk7CisgICAgICAgICAgICBtX2RldmljZU1hcC5hZGQoZGV2aWNlRmlsZSwgbV9zbG90
c1tpbmRleF0uZ2V0KCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9Cit9
CisKK3ZvaWQgR2FtZXBhZHNFZmw6OnVucmVnaXN0ZXJEZXZpY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VGaWxlKQoreworICAgIEFTU0VSVChtX2RldmljZU1hcC5jb250YWlucyhkZXZpY2VGaWxlKSk7
CisKKyAgICBHYW1lcGFkRGV2aWNlRWZsKiBnYW1lcGFkRGV2aWNlID0gbV9kZXZpY2VNYXAudGFr
ZShkZXZpY2VGaWxlKTsKKyAgICBjb25zdCBzaXplX3QgaW5kZXggPSBtX3Nsb3RzLmZpbmQoZ2Ft
ZXBhZERldmljZSk7CisgICAgQVNTRVJUKGluZGV4ICE9IG5vdEZvdW5kKTsKKworICAgIG1fc2xv
dHNbaW5kZXhdLmNsZWFyKCk7Cit9CisKK3ZvaWQgR2FtZXBhZHNFZmw6OnVwZGF0ZUdhbWVwYWRM
aXN0KEdhbWVwYWRMaXN0KiBpbnRvKQoreworICAgIEFTU0VSVChtX3Nsb3RzLnNpemUoKSA9PSBp
bnRvLT5sZW5ndGgoKSk7CisKKyAgICBjb25zdCBzaXplX3Qgc2xvdENvdW50ID0gbV9zbG90cy5z
aXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzbG90Q291bnQ7ICsraSkgeworICAg
ICAgICBpZiAobV9zbG90c1tpXS5nZXQoKSAmJiBtX3Nsb3RzW2ldLT5jb25uZWN0ZWQoKSkgewor
ICAgICAgICAgICAgR2FtZXBhZERldmljZUVmbCogZ2FtZXBhZERldmljZSA9IG1fc2xvdHNbaV0u
Z2V0KCk7CisgICAgICAgICAgICBSZWZQdHI8R2FtZXBhZD4gZ2FtZXBhZCA9IGludG8tPml0ZW0o
aSk7CisgICAgICAgICAgICBpZiAoIWdhbWVwYWQpCisgICAgICAgICAgICAgICAgZ2FtZXBhZCA9
IEdhbWVwYWQ6OmNyZWF0ZSgpOworCisgICAgICAgICAgICBnYW1lcGFkLT5pbmRleChpKTsKKyAg
ICAgICAgICAgIGdhbWVwYWQtPmlkKGdhbWVwYWREZXZpY2UtPmlkKCkpOworICAgICAgICAgICAg
Z2FtZXBhZC0+dGltZXN0YW1wKGdhbWVwYWREZXZpY2UtPnRpbWVzdGFtcCgpKTsKKyAgICAgICAg
ICAgIGdhbWVwYWQtPmF4ZXMoZ2FtZXBhZERldmljZS0+YXhlc0NvdW50KCksIGdhbWVwYWREZXZp
Y2UtPmF4ZXNEYXRhKCkpOworICAgICAgICAgICAgZ2FtZXBhZC0+YnV0dG9ucyhnYW1lcGFkRGV2
aWNlLT5idXR0b25zQ291bnQoKSwgZ2FtZXBhZERldmljZS0+YnV0dG9uc0RhdGEoKSk7CisKKyAg
ICAgICAgICAgIGludG8tPnNldChpLCBnYW1lcGFkKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBpbnRvLT5zZXQoaSwgMCk7CisgICAgfQorfQorCit2b2lkIHNhbXBsZUdhbWVwYWRzKEdh
bWVwYWRMaXN0KiBpbnRvKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoR2FtZXBhZHNFZmws
IGdhbWVwYWRzRWZsLCAoaW50by0+bGVuZ3RoKCkpKTsKKyAgICBnYW1lcGFkc0VmbC51cGRhdGVH
YW1lcGFkTGlzdChpbnRvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKEdBTUVQQUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZEVGTC5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9GaW5kRUZMLmNtYWtlCmluZGV4IDE0NjZmOGIuLjA1NGI4NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9GaW5kRUZMLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9G
aW5kRUZMLmNtYWtlCkBAIC0xLDIwICsxLDIwIEBACiBJTkNMVURFKEZpbmRQa2dDb25maWcpCiAK
IFBLR19DSEVDS19NT0RVTEVTIChFREpFIFJFUVVJUkVEIGVkamU+PTEuMC4wKQotUEtHX0NIRUNL
X01PRFVMRVMgKEVDT1JFIFJFUVVJUkVEIGVjb3JlPj0xLjAuMCkKK1BLR19DSEVDS19NT0RVTEVT
IChFQ09SRSBSRVFVSVJFRCBlY29yZT49MS4yLjApCiBQS0dfQ0hFQ0tfTU9EVUxFUyAoRUNPUkVf
RVZBUyBSRVFVSVJFRCBlY29yZS1ldmFzPj0xLjAuMCkKIFBLR19DSEVDS19NT0RVTEVTIChFRkxE
RVBTIFJFUVVJUkVECi0gIGVpbmE+PTEuMC45OTkuNjM1NjgKKyAgZWluYT49MS4yLjAKICAgZXZh
cz49MS4wLjAKLSAgZWNvcmU+PTEuMC45OTkuNTk3NjMKKyAgZWNvcmU+PTEuMi4wCiAgIGVjb3Jl
LWZpbGU+PTEuMC4wCiAgIGVjb3JlLWV2YXM+PTEuMC45OTkuNTk3NjMKICAgZWRqZT49MS4wLjAK
ICAgZXVraXQ+PTEuMS4wCiAgIGVkYnVzPj0xLjEuMAogICBlY29yZS1pbnB1dD49MS4wLjAKLSAg
ZWV6ZT49MS4xLjk5KQotUEtHX0NIRUNLX01PRFVMRVMgKEVJTkEgUkVRVUlSRUQgZWluYT49MS4w
LjApCisgIGVlemU+PTEuMi45OSkKK1BLR19DSEVDS19NT0RVTEVTIChFSU5BIFJFUVVJUkVEIGVp
bmE+PTEuMi4wKQogUEtHX0NIRUNLX01PRFVMRVMgKEVDT1JFX1ggZWNvcmUteD49MS4wLjApCiBQ
S0dfQ0hFQ0tfTU9EVUxFUyAoRVZBUyBSRVFVSVJFRCBldmFzPj0xLjAuMCkKIFBLR19DSEVDS19N
T0RVTEVTIChFVUtJVCBSRVFVSVJFRCBldWtpdD49MS4xLjApCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0VmbC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCmlu
ZGV4IGE5ZTg4NjkuLjc5ZTJlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZs
LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zRWZsLmNtYWtlCkBAIC03NSw2ICs3NSw3
IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EUkFHX1NVUFBPUlQg
T04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRkFTVF9NT0JJTEVf
U0NST0xMSU5HIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZJ
TFRFUlMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRlVMTFND
UkVFTl9BUEkgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0FN
RVBBRCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HTElCX1NV
UFBPUlQgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUiBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9M
RUdBQ1lfV0VCS0lUX0JMT0JfQlVJTERFUiBPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZWNv
bmZpZy5oLmNtYWtlIGIvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKaW5kZXggYWNmMjBlZC4u
OTMzYzBjYyAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UKKysrIGIvU291
cmNlL2NtYWtlY29uZmlnLmguY21ha2UKQEAgLTMzLDYgKzMzLDcgQEAKICNjbWFrZWRlZmluZTAx
IEVOQUJMRV9GSVhFRF9SRVBPUlRFRF9TSVpFCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfRlRQRElS
CiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfRlVMTFNDUkVFTl9BUEkKKyNjbWFrZWRlZmluZTAxIEVO
QUJMRV9HQU1FUEFECiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfR0VPTE9DQVRJT04KICNjbWFrZWRl
ZmluZTAxIEVOQUJMRV9HTElCX1NVUFBPUlQKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9JQ09OREFU
QUJBU0UKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAwN2FmZjY3Li5lZjBhNWVhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDYtMjkgIENocmlzdG9waGUgRHVt
ZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBBZGQgR2Ft
ZXBhZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05MDE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOiBUdXJuIG9uIEdBTUVQQUQg
ZmxhZworICAgICAgICBieSBkZWZhdWx0IGZvciBFRkwgcG9ydC4KKyAgICAgICAgKiBlZmwvamhi
dWlsZC5tb2R1bGVzOiBCdW1wIGRlcGVuZGVuY3kgdmVyc2lvbnMgb2YgRUZMIGxpYnMKKyAgICAg
ICAgc2luY2UgdGhlIGxhdGVzdCBFZXplIGlzIHJlcXVpcmVkIGZvciBnYW1lcGFkIHN1cHBvcnQu
CisKIDIwMTItMDYtMjggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgRE9NSFRNTENvbGxlY3Rpb246Oml0ZW0gbWF5IHJldHVybiBhIHdyb25nIGVsZW1lbnQgYWZ0
ZXIgbmFtZWRJdGVtIGlzIGNhbGxlZApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
ZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0
LnBtCmluZGV4IDVhYWQwNTAuLjQxM2NjNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVh
dHVyZUxpc3QucG0KQEAgLTIxNCw3ICsyMTQsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9GVUxMU0NSRUVOX0FQSSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVNYWNX
ZWJLaXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNCbGFja0JlcnJ5KCkgfHwgaXNRdCgp
KSwgdmFsdWUgPT4gXCRmdWxsc2NyZWVuQVBJU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImdhbWVwYWQiLCBkZXNjID0+ICJUb2dnbGUgR2FtZXBhZCBzdXBwb3J0IiwKLSAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0dBTUVQQUQiLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkZ2Ft
ZXBhZFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dBTUVQQUQiLCBkZWZhdWx0
ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAK
ICAgICB7IG9wdGlvbiA9PiAiZ2VvbG9jYXRpb24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRp
b24gc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1
bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzQmxhY2tCZXJyeSgpKSwgdmFs
dWUgPT4gXCRnZW9sb2NhdGlvblN1cHBvcnQgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL2VmbC9qaGJ1
aWxkLm1vZHVsZXMgYi9Ub29scy9lZmwvamhidWlsZC5tb2R1bGVzCmluZGV4IDk4MTFlYzIuLmQ5
NTEzNDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL2VmbC9qaGJ1aWxkLm1vZHVsZXMKKysrIGIvVG9vbHMv
ZWZsL2poYnVpbGQubW9kdWxlcwpAQCAtMTYwLDEzICsxNjAsMTMgQEAKICAgPGF1dG90b29scyBp
ZD0iZWluYSIgPgogICAgIDxicmFuY2ggbW9kdWxlPSJlaW5hIgogICAgICAgICAgICAgcmVwbz0i
ZW5saWdodGVubWVudC5vcmciCi0gICAgICAgICAgICByZXZpc2lvbj0iNjg2MjkiLz4KKyAgICAg
ICAgICAgIHJldmlzaW9uPSI3MzAyNyIvPgogICA8L2F1dG90b29scz4KIAogICA8YXV0b3Rvb2xz
IGlkPSJlbWJyeW8iPgogICAgIDxicmFuY2ggbW9kdWxlPSJlbWJyeW8iCiAgICAgICAgICAgICBy
ZXBvPSJlbmxpZ2h0ZW5tZW50Lm9yZyIKLSAgICAgICAgICAgIHJldmlzaW9uPSI2ODYyOSIvPgor
ICAgICAgICAgICAgcmV2aXNpb249IjczMDI3Ii8+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAg
IDxkZXAgcGFja2FnZT0iZWluYSIvPgogICAgIDwvZGVwZW5kZW5jaWVzPgpAQCAtMTc1LDEzICsx
NzUsMTMgQEAKICAgPGF1dG90b29scyBpZD0iZXZhcyI+CiAgICAgPGJyYW5jaCBtb2R1bGU9ImV2
YXMiCiAgICAgICAgICAgICByZXBvPSJlbmxpZ2h0ZW5tZW50Lm9yZyIKLSAgICAgICAgICAgIHJl
dmlzaW9uPSI2ODYyOSIvPgorICAgICAgICAgICAgcmV2aXNpb249IjczMDI3Ii8+CiAgIDwvYXV0
b3Rvb2xzPgogCiAgIDxhdXRvdG9vbHMgaWQ9ImVjb3JlIj4KICAgICA8YnJhbmNoIG1vZHVsZT0i
ZWNvcmUiCiAgICAgICAgICAgICByZXBvPSJlbmxpZ2h0ZW5tZW50Lm9yZyIKLSAgICAgICAgICAg
IHJldmlzaW9uPSI2ODYyOSIvPgorICAgICAgICAgICAgcmV2aXNpb249IjczMDI3Ii8+CiAgICAg
PGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZWluYSIvPgogICAgICAgPGRlcCBw
YWNrYWdlPSJldmFzIi8+CkBAIC0xOTEsNyArMTkxLDcgQEAKICAgPGF1dG90b29scyBpZD0iZWV0
Ij4KICAgICA8YnJhbmNoIG1vZHVsZT0iZWV0IgogICAgICAgICAgICAgcmVwbz0iZW5saWdodGVu
bWVudC5vcmciCi0gICAgICAgICAgICByZXZpc2lvbj0iNjg2MjkiLz4KKyAgICAgICAgICAgIHJl
dmlzaW9uPSI3MzAyNyIvPgogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9
ImVpbmEiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KQEAgLTIwMCw3ICsyMDAsNyBAQAogICA8YXV0
b3Rvb2xzIGlkPSJlZGplIj4KICAgICA8YnJhbmNoIG1vZHVsZT0iZWRqZSIKICAgICAgICAgICAg
IHJlcG89ImVubGlnaHRlbm1lbnQub3JnIgotICAgICAgICAgICAgcmV2aXNpb249IjY4NjI5Ii8+
CisgICAgICAgICAgICByZXZpc2lvbj0iNzMwMjciLz4KICAgICA8ZGVwZW5kZW5jaWVzPgogICAg
ICAgPGRlcCBwYWNrYWdlPSJlZXQiLz4KICAgICAgIDxkZXAgcGFja2FnZT0iZWNvcmUiLz4KQEAg
LTIxMiw3ICsyMTIsNyBAQAogICA8YXV0b3Rvb2xzIGlkPSJlX2RidXMiPgogICAgIDxicmFuY2gg
bW9kdWxlPSJlX2RidXMiCiAgICAgICAgICAgICByZXBvPSJlbmxpZ2h0ZW5tZW50Lm9yZyIKLSAg
ICAgICAgICAgIHJldmlzaW9uPSI2ODYyOSIvPgorICAgICAgICAgICAgcmV2aXNpb249IjczMDI3
Ii8+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZWNvcmUiLz4KICAg
ICAgIDxkZXAgcGFja2FnZT0iZWluYSIvPgpAQCAtMjIyLDcgKzIyMiw3IEBACiAgIDxhdXRvdG9v
bHMgaWQ9ImVlemUiPgogICAgIDxicmFuY2ggbW9kdWxlPSJlZXplIgogICAgICAgICAgICAgcmVw
bz0iZW5saWdodGVubWVudC5vcmciCi0gICAgICAgICAgICByZXZpc2lvbj0iNjg2MjkiLz4KKyAg
ICAgICAgICAgIHJldmlzaW9uPSI3MzAyNyIvPgogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8
ZGVwIHBhY2thZ2U9ImVjb3JlIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImVpbmEiLz4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150225</attachid>
            <date>2012-06-29 11:35:17 -0700</date>
            <delta_ts>2012-06-29 11:39:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90170_gamepad_support.patch</filename>
            <type>text/plain</type>
            <size>21068</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhOGY0NjVkLi5mNGJjNDUx
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC00LDYgKzQsMTcgQEAK
IAogICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CiAKKzIwMTItMDYt
MjkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBBZGQgR2FtZXBhZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDE3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRFRkwuY21ha2U6IEJ1bXAg
RUZMIGxpYnMgZGVwZW5kZW5jaWVzLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zRWZs
LmNtYWtlOiBUdXJuIG9uIEdBTUVQQUQgZmxhZyBvbiBFRkwgcG9ydC4KKyAgICAgICAgKiBTb3Vy
Y2UvY21ha2Vjb25maWcuaC5jbWFrZTogQWRkIEdBTUVQQUQgZmxhZyB0byBDTWFrZS4KKwogMjAx
Mi0wNi0yOCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBb
UmVmYWN0b3JpbmddIE5vZGVSZW5kZXJpbmdDb250ZXh0IGN0b3IgY291bGQgYmUgYnVpbHQgb24g
dG9wIG9mIHRoZSBDb21wb3NlZFNoYWRvd1RyZWVXYWxrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2MzAwZDU3Li4zNDY0
YmJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xNDAsNiArMTQwLDIzIEBACiAgICAgICAgICogZmFzdC9jc3MvY3NzLWtl
eWZyYW1lLXVuZXhwZWN0ZWQtZW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAgICogZmFz
dC9jc3MvY3NzLWtleWZyYW1lLXVuZXhwZWN0ZWQtZW5kLmh0bWw6IEFkZGVkLgogCisyMDEyLTA2
LTI5ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAg
ICAgICAgW0VGTF0gQWRkIEdhbWVwYWQgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTAxNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVbnNraXAgZ2FtZXBhZC9nYW1lcGFkLWFwaS5odG1sIG5v
dyB0aGF0IEdhbWVwYWQKKyAgICAgICAgc3VwcG9ydCBpcyBlbmFibGVkIG9uIEVGTCBwb3J0Lgor
CisgICAgICAgIGdhbWVwYWQvZ2FtZXBhZC1wb2xsaW5nLWFjY2Vzcy5odG1sIGlzIHN0aWxsCisg
ICAgICAgIHNraXBwZWQgYmVjYXVzZSBpdCByZXF1aXJlcyBhZGRpdGlvbmFsIHRlc3QKKyAgICAg
ICAgaW5mcmFzdHJ1Y3R1cmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0wNi0yOSAgSsOh
bm9zIEJhZGljcyAgPGpiYWRpY3NAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFtRdF0gVW5y
ZXZpZXdlZCBnYXJkZW5pbmcgYWZ0ZXIgcjEyMTQ5NC4gQWRkZWQgbmV3IGJhc2VsaW5lIHRvCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDNmYWMwMzkuLmRjNjVjZTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9Ta2lwcGVkCkBAIC03NDcsOSArNzQ3LDYgQEAgZmFzdC9mb3Jtcy9tb250aAogZmFz
dC9mb3Jtcy90aW1lCiBmYXN0L2Zvcm1zL3dlZWsKIAotIyBFTkFCTEVfR0FNRVBBRCBub3QgZW5h
YmxlZC4KLWdhbWVwYWQvCi0KICMgSGlEUEkgdGVzdHMgcmVxdWlyZSB0ZXN0IGluZnJhc3RydWN0
dXJlIGVuaGFuY2VtZW50cwogZmFzdC9oaWRwaQogc3ZnL2FzLWltYWdlL2ltYWdlLXJlc3BlY3Rz
LWRldmljZVNjYWxlRmFjdG9yLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggYTQxMDI3OC4uOTgwNWEwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTY5MSw2ICs2OTEsOSBAQCBCVUdXSzg2NjM3IDogZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1tYXJrZXItZGVzY3JpcHRpb24uaHRtbCA9IFRFWFQKIC8v
IExvb2tzIGxpa2Ugc29tZSByYWNlIGNvbmRpdGlvbiBkdXJpbmcgbG9hZGluZy4KIEJVR1dLODU5
NzcgOiBmYXN0L2Nzcy9mb250LWZhY2UtZG93bmxvYWQtZXJyb3IuaHRtbCA9IFRJTUVPVVQKIAor
Ly8gTWlzc2luZyB0ZXN0IGluZnJhc3RydWN0dXJlLCBubyBnYW1lcGFkcyBhdmFpbGFibGUuCitC
VUdXS0VGTCA6IGdhbWVwYWQvZ2FtZXBhZC1wb2xsaW5nLWFjY2Vzcy5odG1sID0gVEVYVAorCiAv
LyBGYWlscyBvbiBHVEsrIGFuZCBRdCBhcyB3ZWxsLgogQlVHV0s4NjQ0NSA6IGZhc3QvbXVsdGlj
b2wvc3BsaXQtaW4tdG9wLW1hcmdpbi5odG1sID0gSU1BR0UKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA1YzU2NDk1Li42Y2Y3MjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtOTYsNiArOTYs
NyBAQCBTRVQoV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTCiAKIFNFVChXZWJDb3JlX0lETF9J
TkNMVURFUwogICAgIE1vZHVsZXMvZmlsZXN5c3RlbQorICAgIE1vZHVsZXMvZ2FtZXBhZAogICAg
IE1vZHVsZXMvZ2VvbG9jYXRpb24KICAgICBNb2R1bGVzL2luZGV4ZWRkYgogICAgIE1vZHVsZXMv
cXVvdGEKQEAgLTI0NzUsNiArMjQ3NiwyMiBAQCBJRiAoRU5BQkxFX0JBVFRFUllfU1RBVFVTKQog
ICAgICkKIEVORElGICgpCiAKK0lGIChFTkFCTEVfR0FNRVBBRCkKKyAgICBMSVNUKEFQUEVORCBX
ZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVs
ZXMvZ2FtZXBhZCIKKyAgICApCisgICAgTElTVChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKKyAg
ICAgICAgTW9kdWxlcy9nYW1lcGFkL0dhbWVwYWQuaWRsCisgICAgICAgIE1vZHVsZXMvZ2FtZXBh
ZC9HYW1lcGFkTGlzdC5pZGwKKyAgICAgICAgTW9kdWxlcy9nYW1lcGFkL05hdmlnYXRvckdhbWVw
YWQuaWRsCisgICAgKQorICAgIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgICAgICBN
b2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5jcHAKKyAgICAgICAgTW9kdWxlcy9nYW1lcGFkL0dhbWVw
YWRMaXN0LmNwcAorICAgICAgICBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2FtZXBhZC5jcHAK
KyAgICApCitFTkRJRiAoKQorCiBJRiAoRU5BQkxFX01FRElBX1NUUkVBTSkKICAgICBMSVNUKEFQ
UEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAgICAgJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9tZWRpYXN0cmVhbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBhNmE1MmMuLjNhZjVhM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTYzMSw2ICs2MzEsNDggQEAKICAgICAgICAgKFdlYkluc3BlY3Rvci5zaG93Q29u
c29sZSk6CiAgICAgICAgIChXZWJJbnNwZWN0b3Iuc2hvd1BhbmVsKToKIAorMjAxMi0wNi0yOSAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAg
IFtFRkxdIEFkZCBHYW1lcGFkIHN1cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkwMTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBHYW1lcGFkIGZlYXR1cmUgb24g
dGhlIEVGTCBwb3J0LgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGNsYXNz
IHJlbGllcyBvbiB0aGUgTGludXgKKyAgICAgICAga2VybmVsIGpveXN0aWNrIEFQSS4KKworICAg
ICAgICBHYW1lcGFkIGRldmljZXMgYXJlIHJlY29nbml6ZWQgdGhyb3VnaCB0aGUgR2FtZXBhZHNF
ZmwKKyAgICAgICAgY2xhc3MsIG9mIHdoaWNoIGltcGxlbWVudGF0aW9uIGlzIGJhc2VkIG9uIEVl
emUKKyAgICAgICAgbGlicmFyeS4gVGhpcyB3YXkgZGV2aWNlcyBhcmUgcHJvcGVybHkgcmVnaXN0
ZXJlZCBvbgorICAgICAgICBjb25uZWN0aW9uIGFzIG9iamVjdHMgb2YgdGhlIEdhbWVwYWREZXZp
Y2VFZmwgY2xhc3MKKyAgICAgICAgd2hpY2ggaW5oZXJpdHMgR2FtZXBhZERldmljZUxpbnV4LiBH
YW1lcGFkRGV2aWNlRWZsCisgICAgICAgIHJlYWRzIHRoZSBqb3lzdGljayBkYXRhIHRocm91Z2gg
YW4gRWNvcmVfRmRfSGFuZGxlcgorICAgICAgICBhbmQgdXBkYXRlcyB0aGUgZGV2aWNlIHN0YXRl
IGFjY29yZGluZ2x5LiBUaGUKKyAgICAgICAgR2FtZXBhZHNFZmwgb2JqZWN0IGlzIHRoZW4gcG9s
bGVkIGZvciBnYW1lcGFkcyBkYXRhCisgICAgICAgIHRocm91Z2ggdGhlIHNhbXBsZUdhbWVwYWRz
IG1ldGhvZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgLSBhbHJlYWR5IHRlc3RlZCBieSBnYW1l
cGFkLyoKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFBsYXRmb3JtRWZs
LmNtYWtlOgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9HYW1lcGFkc0VmbC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChHYW1lcGFkRGV2aWNlRWZsKToKKyAgICAgICAg
KFdlYkNvcmU6OkdhbWVwYWREZXZpY2VFZmw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpH
YW1lcGFkRGV2aWNlRWZsOjpHYW1lcGFkRGV2aWNlRWZsKToKKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWREZXZpY2VFZmw6On5HYW1lcGFkRGV2aWNlRWZsKToKKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWREZXZpY2VFZmw6OnJlYWRDYWxsYmFjayk6CisgICAgICAgIChHYW1lcGFkc0VmbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHYW1lcGFkc0VmbDo6b25HYW1lUGFkQ2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdhbWVwYWRzRWZsOjpHYW1lcGFkc0VmbCk6CisgICAgICAgIChXZWJDb3JlOjpH
YW1lcGFkc0VmbDo6fkdhbWVwYWRzRWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzRWZs
OjpyZWdpc3RlckRldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkc0VmbDo6dW5yZWdp
c3RlckRldmljZSk6CisgICAgICAgIChXZWJDb3JlOjpHYW1lcGFkc0VmbDo6dXBkYXRlR2FtZXBh
ZExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6c2FtcGxlR2FtZXBhZHMpOgorCiAyMDEyLTA2LTI5
ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBhICNp
bmNsdWRlIGVycm9uZW91c2x5IGFkZGVkIGluIHIxMjA4OTYuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNt
YWtlCmluZGV4IDIyYWYwZTYuLjk0ZTY5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBA
IC04LDYgKzgsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
IiR7V0VCQ09SRV9ESVJ9L3BhZ2UvZWZsIgogICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZWZs
IgogICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZWZsIgorICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vbGludXgiCiAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIiCiAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAi
CiAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VmbCIKQEAgLTMzLDYgKzM0LDcgQEAg
TElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGls
aXRpZXMuY3BwCiAgIHBsYXRmb3JtL2VmbC9FdmVudExvb3BFZmwuY3BwCiAgIHBsYXRmb3JtL2Vm
bC9GaWxlU3lzdGVtRWZsLmNwcAorICBwbGF0Zm9ybS9lZmwvR2FtZXBhZHNFZmwuY3BwCiAgIHBs
YXRmb3JtL2VmbC9LVVJMRWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvTGFuZ3VhZ2VFZmwuY3BwCiAg
IHBsYXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNzQsNiArNzYsNyBAQCBM
SVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBl
Zy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAogICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5H
SW1hZ2VEZWNvZGVyLmNwcAogICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFn
ZURlY29kZXIuY3BwCisgIHBsYXRmb3JtL2xpbnV4L0dhbWVwYWREZXZpY2VMaW51eC5jcHAKICAg
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhh
bmRsZXIuY3BwCiAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNl
bnRlckdTdHJlYW1lci5jcHAKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAu
Y3BwCkBAIC0zMDcsMyArMzEwLDEyIEBAIElGIChFTkFCTEVfV0VCX0FVRElPKQogICBBRERfREVG
SU5JVElPTlMoLURVTklOU1RBTExFRF9BVURJT19SRVNPVVJDRVNfRElSPSIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMiKQogRU5ESUYgKCkKIAorSUYgKEVOQUJMRV9HQU1F
UEFEKQorICBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0VF
WkVfSU5DTFVERV9ESVJTfQorICApCisgIExJU1QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCisg
ICAgJHtFRVpFX0xJQlJBUklFU30KKyAgKQorRU5ESUYgKCkKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VmbC9HYW1lcGFkc0VmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYmU5MzA4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9HYW1lcGFkc0VmbC5jcHAKQEAgLTAsMCArMSwyNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHYW1lcGFkcy5oIgorCisjaWYgRU5B
QkxFKEdBTUVQQUQpCisKKyNpbmNsdWRlICJHYW1lcGFkRGV2aWNlTGludXguaCIKKyNpbmNsdWRl
ICJHYW1lcGFkTGlzdC5oIgorI2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8RWV6ZS5oPgor
I2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQv
Q1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciBqb3lzdGlja1ByZWZpeFtdID0gIi9kZXYv
aW5wdXQvanMiOworCitjbGFzcyBHYW1lcGFkRGV2aWNlRWZsIDogcHVibGljIEdhbWVwYWREZXZp
Y2VMaW51eCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8R2FtZXBhZERldmljZUVm
bD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlRmlsZSkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFB0cihuZXcgR2FtZXBhZERldmljZUVmbChkZXZpY2VGaWxlKSk7CisgICAgfQorICAg
IH5HYW1lcGFkRGV2aWNlRWZsKCk7CisgICAgdm9pZCByZXNldEZkSGFuZGxlcigpIHsgbV9mZEhh
bmRsZXIgPSAwOyB9CisKK3ByaXZhdGU6CisgICAgR2FtZXBhZERldmljZUVmbChjb25zdCBTdHJp
bmcmIGRldmljZUZpbGUpOworICAgIHN0YXRpYyBFaW5hX0Jvb2wgcmVhZENhbGxiYWNrKHZvaWQq
IHVzZXJEYXRhLCBFY29yZV9GZF9IYW5kbGVyKik7CisKKyAgICBFY29yZV9GZF9IYW5kbGVyKiBt
X2ZkSGFuZGxlcjsKK307CisKK0dhbWVwYWREZXZpY2VFZmw6OkdhbWVwYWREZXZpY2VFZmwoY29u
c3QgU3RyaW5nJiBkZXZpY2VGaWxlKQorICAgIDogR2FtZXBhZERldmljZUxpbnV4KGRldmljZUZp
bGUpCisgICAgLCBtX2ZkSGFuZGxlcigwKQoreworICAgIGlmIChtX2ZpbGVEZXNjcmlwdG9yIDwg
MCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mZEhhbmRsZXIgPSBlY29yZV9tYWluX2ZkX2hh
bmRsZXJfYWRkKG1fZmlsZURlc2NyaXB0b3IsIEVDT1JFX0ZEX1JFQUQsIHJlYWRDYWxsYmFjaywg
dGhpcywgMCwgMCk7CisgICAgaWYgKCFtX2ZkSGFuZGxlcikKKyAgICAgICAgTE9HX0VSUk9SKCJG
YWlsZWQgdG8gY3JlYXRlIHRoZSBFY29yZV9GZF9IYW5kbGVyLiIpOworfQorCitHYW1lcGFkRGV2
aWNlRWZsOjp+R2FtZXBhZERldmljZUVmbCgpCit7CisgICAgaWYgKG1fZmRIYW5kbGVyKQorICAg
ICAgICBlY29yZV9tYWluX2ZkX2hhbmRsZXJfZGVsKG1fZmRIYW5kbGVyKTsKK30KKworRWluYV9C
b29sIEdhbWVwYWREZXZpY2VFZmw6OnJlYWRDYWxsYmFjayh2b2lkKiB1c2VyRGF0YSwgRWNvcmVf
RmRfSGFuZGxlciogZmRIYW5kbGVyKQoreworICAgIEdhbWVwYWREZXZpY2VFZmwqIGdhbWVwYWRE
ZXZpY2UgPSBzdGF0aWNfY2FzdDxHYW1lcGFkRGV2aWNlRWZsKj4odXNlckRhdGEpOworCisgICAg
aWYgKGVjb3JlX21haW5fZmRfaGFuZGxlcl9hY3RpdmVfZ2V0KGZkSGFuZGxlciwgRUNPUkVfRkRf
RVJST1IpKSB7CisgICAgICAgIExPR19FUlJPUigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgd2F0
Y2hpbmcgdGhlIGpveXN0aWNrIGZpbGUgZGVzY3JpcHRvciwgYWJvcnRpbmcuIik7CisgICAgICAg
IGdhbWVwYWREZXZpY2UtPnJlc2V0RmRIYW5kbGVyKCk7CisgICAgICAgIHJldHVybiBFQ09SRV9D
QUxMQkFDS19DQU5DRUw7CisgICAgfQorCisgICAgaW50IGZkRGV2aWNlID0gZWNvcmVfbWFpbl9m
ZF9oYW5kbGVyX2ZkX2dldChmZEhhbmRsZXIpOworICAgIHN0cnVjdCBqc19ldmVudCBldmVudDsK
KyAgICBjb25zdCBzc2l6ZV90IGxlbiA9IHJlYWQoZmREZXZpY2UsICZldmVudCwgc2l6ZW9mKGV2
ZW50KSk7CisKKyAgICBpZiAobGVuIDw9IDApIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gcmVhZCBqb3lzdGljayBmaWxlIGRlc2NyaXB0b3IsIGFib3J0aW5nLiIpOworICAgICAgICBn
YW1lcGFkRGV2aWNlLT5yZXNldEZkSGFuZGxlcigpOworICAgICAgICByZXR1cm4gRUNPUkVfQ0FM
TEJBQ0tfQ0FOQ0VMOworICAgIH0KKyAgICBpZiAobGVuICE9IHNpemVvZihldmVudCkpIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJXcm9uZyBqc19ldmVudCBzaXplIHJlYWQgb24gZmlsZSBkZXNjcmlw
dG9yLCBpZ25vcmluZy4iKTsKKyAgICAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX1JFTkVXOwor
ICAgIH0KKworICAgIGdhbWVwYWREZXZpY2UtPnVwZGF0ZUZvckV2ZW50KGV2ZW50KTsKKyAgICBy
ZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfUkVORVc7Cit9CisKK2NsYXNzIEdhbWVwYWRzRWZsIHsKK3B1
YmxpYzoKKyAgICBHYW1lcGFkc0VmbChzaXplX3QgbGVuZ3RoKTsKKworICAgIHZvaWQgcmVnaXN0
ZXJEZXZpY2UoY29uc3QgU3RyaW5nJiBzeXNwYXRoKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJEZXZp
Y2UoY29uc3QgU3RyaW5nJiBzeXNwYXRoKTsKKworICAgIHZvaWQgdXBkYXRlR2FtZXBhZExpc3Qo
R2FtZXBhZExpc3QqKTsKKworcHJpdmF0ZToKKyAgICB+R2FtZXBhZHNFZmwoKTsKKyAgICBzdGF0
aWMgdm9pZCBvbkdhbWVQYWRDaGFuZ2UoY29uc3QgY2hhciogc3lzcGF0aCwgRWV6ZV9VZGV2X0V2
ZW50LCB2b2lkKiB1c2VyRGF0YSwgRWV6ZV9VZGV2X1dhdGNoKiB3YXRjaGVyKTsKKworICAgIFZl
Y3RvcjxPd25QdHI8R2FtZXBhZERldmljZUVmbD4gPiBtX3Nsb3RzOworICAgIEhhc2hNYXA8U3Ry
aW5nLCBHYW1lcGFkRGV2aWNlRWZsKj4gbV9kZXZpY2VNYXA7CisKKyAgICBFZXplX1VkZXZfV2F0
Y2gqIG1fZ2FtZXBhZHNXYXRjaGVyOworfTsKKwordm9pZCBHYW1lcGFkc0VmbDo6b25HYW1lUGFk
Q2hhbmdlKGNvbnN0IGNoYXIqIHN5c3BhdGgsIEVlemVfVWRldl9FdmVudCBldmVudCwgdm9pZCog
dXNlckRhdGEsIEVlemVfVWRldl9XYXRjaCogd2F0Y2hlcikKK3sKKyAgICBHYW1lcGFkc0VmbCog
Z2FtZXBhZHNFZmwgPSBzdGF0aWNfY2FzdDxHYW1lcGFkc0VmbCo+KHVzZXJEYXRhKTsKKworICAg
IHN3aXRjaCAoZXZlbnQpIHsKKyAgICBjYXNlIEVFWkVfVURFVl9FVkVOVF9BREQ6CisgICAgICAg
IGdhbWVwYWRzRWZsLT5yZWdpc3RlckRldmljZShTdHJpbmc6OmZyb21VVEY4KHN5c3BhdGgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBFRVpFX1VERVZfRVZFTlRfUkVNT1ZFOgorICAgICAg
ICBnYW1lcGFkc0VmbC0+dW5yZWdpc3RlckRldmljZShTdHJpbmc6OmZyb21VVEY4KHN5c3BhdGgp
KTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQor
fQorCitHYW1lcGFkc0VmbDo6R2FtZXBhZHNFZmwoc2l6ZV90IGxlbmd0aCkKKyAgICA6IG1fc2xv
dHMobGVuZ3RoKQorICAgICwgbV9nYW1lcGFkc1dhdGNoZXIoMCkKK3sKKyAgICBpZiAoZWV6ZV9p
bml0KCkgPCAwKSB7CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxpemUgZWV6
ZSBsaWJyYXJ5LiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2F0Y2ggZm9y
IGdhbWVwYWRzIGFkZGl0aW9ucyAvIHJlbW92YWxzLgorICAgIG1fZ2FtZXBhZHNXYXRjaGVyID0g
ZWV6ZV91ZGV2X3dhdGNoX2FkZChFRVpFX1VERVZfVFlQRV9KT1lTVElDSywgKEVFWkVfVURFVl9F
VkVOVF9BREQgfCBFRVpFX1VERVZfRVZFTlRfUkVNT1ZFKSwgb25HYW1lUGFkQ2hhbmdlLCB0aGlz
KTsKKworICAgIC8vIExpc3QgYXZhaWxhYmxlIGdhbWVwYWRzLgorICAgIEVpbmFfTGlzdCogZ2Ft
ZXBhZHMgPSBlZXplX3VkZXZfZmluZF9ieV90eXBlKEVFWkVfVURFVl9UWVBFX0pPWVNUSUNLLCAw
KTsKKyAgICB2b2lkKiBkYXRhOworICAgIEVJTkFfTElTVF9GUkVFKGdhbWVwYWRzLCBkYXRhKSB7
CisgICAgICAgIGNoYXIqIHN5c3BhdGggPSBzdGF0aWNfY2FzdDxjaGFyKj4oZGF0YSk7CisgICAg
ICAgIHJlZ2lzdGVyRGV2aWNlKFN0cmluZzo6ZnJvbVVURjgoc3lzcGF0aCkpOworICAgICAgICBl
aW5hX3N0cmluZ3NoYXJlX2RlbChzeXNwYXRoKTsKKyAgICB9Cit9CisKK0dhbWVwYWRzRWZsOjp+
R2FtZXBhZHNFZmwoKQoreworICAgIGlmIChtX2dhbWVwYWRzV2F0Y2hlcikKKyAgICAgICAgZWV6
ZV91ZGV2X3dhdGNoX2RlbChtX2dhbWVwYWRzV2F0Y2hlcik7CisgICAgZWV6ZV9zaHV0ZG93bigp
OworfQorCit2b2lkIEdhbWVwYWRzRWZsOjpyZWdpc3RlckRldmljZShjb25zdCBTdHJpbmcmIHN5
c3BhdGgpCit7CisgICAgaWYgKG1fZGV2aWNlTWFwLmNvbnRhaW5zKHN5c3BhdGgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBNYWtlIHN1cmUgaXQgaXMgYSB2YWxpZCBqb3lzdGljay4KKyAg
ICBjb25zdCBjaGFyKiBkZXZpY2VGaWxlID0gZWV6ZV91ZGV2X3N5c3BhdGhfZ2V0X2RldnBhdGgo
c3lzcGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoIWRldmljZUZpbGUgfHwgIWVpbmFfc3Ry
X2hhc19wcmVmaXgoZGV2aWNlRmlsZSwgam95c3RpY2tQcmVmaXgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBMT0coR2FtZXBhZCwgIlJlZ2lzdGVyaW5nIGdhbWVwYWQgYXQgJXMsIGRldmljZUZp
bGU6ICVzIiwgc3lzcGF0aC51dGY4KCkuZGF0YSgpLCBkZXZpY2VGaWxlKTsKKworICAgIGNvbnN0
IHNpemVfdCBzbG90Q291bnQgPSBtX3Nsb3RzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpbmRl
eCA9IDA7IGluZGV4IDwgc2xvdENvdW50OyArK2luZGV4KSB7CisgICAgICAgIGlmICghbV9zbG90
c1tpbmRleF0pIHsKKyAgICAgICAgICAgIG1fc2xvdHNbaW5kZXhdID0gR2FtZXBhZERldmljZUVm
bDo6Y3JlYXRlKFN0cmluZzo6ZnJvbVVURjgoZGV2aWNlRmlsZSkpOworICAgICAgICAgICAgbV9k
ZXZpY2VNYXAuYWRkKHN5c3BhdGgsIG1fc2xvdHNbaW5kZXhdLmdldCgpKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEdhbWVwYWRzRWZsOjp1bnJlZ2lz
dGVyRGV2aWNlKGNvbnN0IFN0cmluZyYgc3lzcGF0aCkKK3sKKyAgICBpZiAoIW1fZGV2aWNlTWFw
LmNvbnRhaW5zKHN5c3BhdGgpKQorICAgICAgICByZXR1cm47CisKKyAgICBMT0coR2FtZXBhZCwg
IlJlZ2lzdGVyaW5nIGdhbWVwYWQgYXQgJXMsIiwgc3lzcGF0aC51dGY4KCkuZGF0YSgpKTsKKwor
ICAgIEdhbWVwYWREZXZpY2VFZmwqIGdhbWVwYWREZXZpY2UgPSBtX2RldmljZU1hcC50YWtlKHN5
c3BhdGgpOworICAgIGNvbnN0IHNpemVfdCBpbmRleCA9IG1fc2xvdHMuZmluZChnYW1lcGFkRGV2
aWNlKTsKKyAgICBBU1NFUlQoaW5kZXggIT0gbm90Rm91bmQpOworCisgICAgbV9zbG90c1tpbmRl
eF0uY2xlYXIoKTsKK30KKwordm9pZCBHYW1lcGFkc0VmbDo6dXBkYXRlR2FtZXBhZExpc3QoR2Ft
ZXBhZExpc3QqIGludG8pCit7CisgICAgQVNTRVJUKG1fc2xvdHMuc2l6ZSgpID09IGludG8tPmxl
bmd0aCgpKTsKKworICAgIGNvbnN0IHNpemVfdCBzbG90Q291bnQgPSBtX3Nsb3RzLnNpemUoKTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNsb3RDb3VudDsgKytpKSB7CisgICAgICAgIGlm
IChtX3Nsb3RzW2ldLmdldCgpICYmIG1fc2xvdHNbaV0tPmNvbm5lY3RlZCgpKSB7CisgICAgICAg
ICAgICBHYW1lcGFkRGV2aWNlRWZsKiBnYW1lcGFkRGV2aWNlID0gbV9zbG90c1tpXS5nZXQoKTsK
KyAgICAgICAgICAgIFJlZlB0cjxHYW1lcGFkPiBnYW1lcGFkID0gaW50by0+aXRlbShpKTsKKyAg
ICAgICAgICAgIGlmICghZ2FtZXBhZCkKKyAgICAgICAgICAgICAgICBnYW1lcGFkID0gR2FtZXBh
ZDo6Y3JlYXRlKCk7CisKKyAgICAgICAgICAgIGdhbWVwYWQtPmluZGV4KGkpOworICAgICAgICAg
ICAgZ2FtZXBhZC0+aWQoZ2FtZXBhZERldmljZS0+aWQoKSk7CisgICAgICAgICAgICBnYW1lcGFk
LT50aW1lc3RhbXAoZ2FtZXBhZERldmljZS0+dGltZXN0YW1wKCkpOworICAgICAgICAgICAgZ2Ft
ZXBhZC0+YXhlcyhnYW1lcGFkRGV2aWNlLT5heGVzQ291bnQoKSwgZ2FtZXBhZERldmljZS0+YXhl
c0RhdGEoKSk7CisgICAgICAgICAgICBnYW1lcGFkLT5idXR0b25zKGdhbWVwYWREZXZpY2UtPmJ1
dHRvbnNDb3VudCgpLCBnYW1lcGFkRGV2aWNlLT5idXR0b25zRGF0YSgpKTsKKworICAgICAgICAg
ICAgaW50by0+c2V0KGksIGdhbWVwYWQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGlu
dG8tPnNldChpLCAwKTsKKyAgICB9Cit9CisKK3ZvaWQgc2FtcGxlR2FtZXBhZHMoR2FtZXBhZExp
c3QqIGludG8pCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChHYW1lcGFkc0VmbCwgZ2FtZXBh
ZHNFZmwsIChpbnRvLT5sZW5ndGgoKSkpOworICAgIGdhbWVwYWRzRWZsLnVwZGF0ZUdhbWVwYWRM
aXN0KGludG8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kRUZMLmNtYWtlIGIvU291
cmNlL2NtYWtlL0ZpbmRFRkwuY21ha2UKaW5kZXggMTQ2NmY4Yi4uMDU0Yjg2YiAxMDA2NDQKLS0t
IGEvU291cmNlL2NtYWtlL0ZpbmRFRkwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRFRkwu
Y21ha2UKQEAgLTEsMjAgKzEsMjAgQEAKIElOQ0xVREUoRmluZFBrZ0NvbmZpZykKIAogUEtHX0NI
RUNLX01PRFVMRVMgKEVESkUgUkVRVUlSRUQgZWRqZT49MS4wLjApCi1QS0dfQ0hFQ0tfTU9EVUxF
UyAoRUNPUkUgUkVRVUlSRUQgZWNvcmU+PTEuMC4wKQorUEtHX0NIRUNLX01PRFVMRVMgKEVDT1JF
IFJFUVVJUkVEIGVjb3JlPj0xLjIuMCkKIFBLR19DSEVDS19NT0RVTEVTIChFQ09SRV9FVkFTIFJF
UVVJUkVEIGVjb3JlLWV2YXM+PTEuMC4wKQogUEtHX0NIRUNLX01PRFVMRVMgKEVGTERFUFMgUkVR
VUlSRUQKLSAgZWluYT49MS4wLjk5OS42MzU2OAorICBlaW5hPj0xLjIuMAogICBldmFzPj0xLjAu
MAotICBlY29yZT49MS4wLjk5OS41OTc2MworICBlY29yZT49MS4yLjAKICAgZWNvcmUtZmlsZT49
MS4wLjAKICAgZWNvcmUtZXZhcz49MS4wLjk5OS41OTc2MwogICBlZGplPj0xLjAuMAogICBldWtp
dD49MS4xLjAKICAgZWRidXM+PTEuMS4wCiAgIGVjb3JlLWlucHV0Pj0xLjAuMAotICBlZXplPj0x
LjEuOTkpCi1QS0dfQ0hFQ0tfTU9EVUxFUyAoRUlOQSBSRVFVSVJFRCBlaW5hPj0xLjAuMCkKKyAg
ZWV6ZT49MS4yLjk5KQorUEtHX0NIRUNLX01PRFVMRVMgKEVJTkEgUkVRVUlSRUQgZWluYT49MS4y
LjApCiBQS0dfQ0hFQ0tfTU9EVUxFUyAoRUNPUkVfWCBlY29yZS14Pj0xLjAuMCkKIFBLR19DSEVD
S19NT0RVTEVTIChFVkFTIFJFUVVJUkVEIGV2YXM+PTEuMC4wKQogUEtHX0NIRUNLX01PRFVMRVMg
KEVVS0lUIFJFUVVJUkVEIGV1a2l0Pj0xLjEuMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXggYTll
ODg2OS4uNzllMmViNCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UK
KysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTc1LDYgKzc1LDcgQEAgV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RSQUdfU1VQUE9SVCBPTikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJ
TkcgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRklMVEVSUyBP
TikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GVUxMU0NSRUVOX0FQ
SSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HQU1FUEFEIE9O
KQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dMSUJfU1VQUE9SVCBP
TikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xFR0FDWV9X
RUJLSVRfQkxPQl9CVUlMREVSIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmgu
Y21ha2UgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCBhY2YyMGVkLi45MzNjMGNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2UvY21h
a2Vjb25maWcuaC5jbWFrZQpAQCAtMzMsNiArMzMsNyBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxF
X0ZJWEVEX1JFUE9SVEVEX1NJWkUKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9GVFBESVIKICNjbWFr
ZWRlZmluZTAxIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQorI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0dB
TUVQQUQKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9HRU9MT0NBVElPTgogI2NtYWtlZGVmaW5lMDEg
RU5BQkxFX0dMSUJfU1VQUE9SVAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lDT05EQVRBQkFTRQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEzNzVl
MzQuLjNkNmFmYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTUyLDYgKzUyLDE4IEBACiAgICAgICAgICogcW1ha2UvbWtzcGVjcy9mZWF0dXJl
cy9kZWZhdWx0X3Bvc3QucHJmOgogICAgICAgICAqIHFtYWtlL21rc3BlY3MvZmVhdHVyZXMvZnVu
Y3Rpb25zLnByZjoKIAorMjAxMi0wNi0yOSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUu
ZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIEFkZCBHYW1lcGFkIHN1cHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTcwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHBlcmwvRmVhdHVyZUxpc3QucG06IFR1cm4gb24gR0FNRVBBRCBmbGFnCisgICAgICAgIGJ5
IGRlZmF1bHQgZm9yIEVGTCBwb3J0LgorICAgICAgICAqIGVmbC9qaGJ1aWxkLm1vZHVsZXM6IEJ1
bXAgZGVwZW5kZW5jeSB2ZXJzaW9ucyBvZiBFRkwgbGlicworICAgICAgICBzaW5jZSB0aGUgbGF0
ZXN0IEVlemUgaXMgcmVxdWlyZWQgZm9yIGdhbWVwYWQgc3VwcG9ydC4KKwogMjAxMi0wNi0yOCAg
Unlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBET01IVE1MQ29sbGVj
dGlvbjo6aXRlbSBtYXkgcmV0dXJuIGEgd3JvbmcgZWxlbWVudCBhZnRlciBuYW1lZEl0ZW0gaXMg
Y2FsbGVkCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3Qu
cG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggNWFhZDA1
MC4uNDEzY2M2MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVM
aXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAt
MjE0LDcgKzIxNCw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0ZVTExTQ1JFRU5fQVBJIiwgZGVmYXVsdCA9PiAoaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzRWZs
KCkgfHwgaXNHdGsoKSB8fCBpc0JsYWNrQmVycnkoKSB8fCBpc1F0KCkpLCB2YWx1ZSA9PiBcJGZ1
bGxzY3JlZW5BUElTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2FtZXBhZCIsIGRlc2Mg
PT4gIlRvZ2dsZSBHYW1lcGFkIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfR0FN
RVBBRCIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRnYW1lcGFkU3VwcG9ydCB9LAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfR0FNRVBBRCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwg
aXNHdGsoKSksIHZhbHVlID0+IFwkZ2FtZXBhZFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJnZW9sb2NhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBHZW9sb2NhdGlvbiBzdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdl
YktpdCgpIHx8IGlzR3RrKCkgfHwgaXNCbGFja0JlcnJ5KCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0
aW9uU3VwcG9ydCB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvZWZsL2poYnVpbGQubW9kdWxlcyBiL1Rv
b2xzL2VmbC9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggOTgxMWVjMi4uZDk1MTM0MiAxMDA2NDQKLS0t
IGEvVG9vbHMvZWZsL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy9lZmwvamhidWlsZC5tb2R1
bGVzCkBAIC0xNjAsMTMgKzE2MCwxMyBAQAogICA8YXV0b3Rvb2xzIGlkPSJlaW5hIiA+CiAgICAg
PGJyYW5jaCBtb2R1bGU9ImVpbmEiCiAgICAgICAgICAgICByZXBvPSJlbmxpZ2h0ZW5tZW50Lm9y
ZyIKLSAgICAgICAgICAgIHJldmlzaW9uPSI2ODYyOSIvPgorICAgICAgICAgICAgcmV2aXNpb249
IjczMDI3Ii8+CiAgIDwvYXV0b3Rvb2xzPgogCiAgIDxhdXRvdG9vbHMgaWQ9ImVtYnJ5byI+CiAg
ICAgPGJyYW5jaCBtb2R1bGU9ImVtYnJ5byIKICAgICAgICAgICAgIHJlcG89ImVubGlnaHRlbm1l
bnQub3JnIgotICAgICAgICAgICAgcmV2aXNpb249IjY4NjI5Ii8+CisgICAgICAgICAgICByZXZp
c2lvbj0iNzMwMjciLz4KICAgICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJl
aW5hIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+CkBAIC0xNzUsMTMgKzE3NSwxMyBAQAogICA8YXV0
b3Rvb2xzIGlkPSJldmFzIj4KICAgICA8YnJhbmNoIG1vZHVsZT0iZXZhcyIKICAgICAgICAgICAg
IHJlcG89ImVubGlnaHRlbm1lbnQub3JnIgotICAgICAgICAgICAgcmV2aXNpb249IjY4NjI5Ii8+
CisgICAgICAgICAgICByZXZpc2lvbj0iNzMwMjciLz4KICAgPC9hdXRvdG9vbHM+CiAKICAgPGF1
dG90b29scyBpZD0iZWNvcmUiPgogICAgIDxicmFuY2ggbW9kdWxlPSJlY29yZSIKICAgICAgICAg
ICAgIHJlcG89ImVubGlnaHRlbm1lbnQub3JnIgotICAgICAgICAgICAgcmV2aXNpb249IjY4NjI5
Ii8+CisgICAgICAgICAgICByZXZpc2lvbj0iNzMwMjciLz4KICAgICA8ZGVwZW5kZW5jaWVzPgog
ICAgICAgPGRlcCBwYWNrYWdlPSJlaW5hIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImV2YXMiLz4K
QEAgLTE5MSw3ICsxOTEsNyBAQAogICA8YXV0b3Rvb2xzIGlkPSJlZXQiPgogICAgIDxicmFuY2gg
bW9kdWxlPSJlZXQiCiAgICAgICAgICAgICByZXBvPSJlbmxpZ2h0ZW5tZW50Lm9yZyIKLSAgICAg
ICAgICAgIHJldmlzaW9uPSI2ODYyOSIvPgorICAgICAgICAgICAgcmV2aXNpb249IjczMDI3Ii8+
CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZWluYSIvPgogICAgIDwv
ZGVwZW5kZW5jaWVzPgpAQCAtMjAwLDcgKzIwMCw3IEBACiAgIDxhdXRvdG9vbHMgaWQ9ImVkamUi
PgogICAgIDxicmFuY2ggbW9kdWxlPSJlZGplIgogICAgICAgICAgICAgcmVwbz0iZW5saWdodGVu
bWVudC5vcmciCi0gICAgICAgICAgICByZXZpc2lvbj0iNjg2MjkiLz4KKyAgICAgICAgICAgIHJl
dmlzaW9uPSI3MzAyNyIvPgogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9
ImVldCIvPgogICAgICAgPGRlcCBwYWNrYWdlPSJlY29yZSIvPgpAQCAtMjEyLDcgKzIxMiw3IEBA
CiAgIDxhdXRvdG9vbHMgaWQ9ImVfZGJ1cyI+CiAgICAgPGJyYW5jaCBtb2R1bGU9ImVfZGJ1cyIK
ICAgICAgICAgICAgIHJlcG89ImVubGlnaHRlbm1lbnQub3JnIgotICAgICAgICAgICAgcmV2aXNp
b249IjY4NjI5Ii8+CisgICAgICAgICAgICByZXZpc2lvbj0iNzMwMjciLz4KICAgICA8ZGVwZW5k
ZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJlY29yZSIvPgogICAgICAgPGRlcCBwYWNrYWdl
PSJlaW5hIi8+CkBAIC0yMjIsNyArMjIyLDcgQEAKICAgPGF1dG90b29scyBpZD0iZWV6ZSI+CiAg
ICAgPGJyYW5jaCBtb2R1bGU9ImVlemUiCiAgICAgICAgICAgICByZXBvPSJlbmxpZ2h0ZW5tZW50
Lm9yZyIKLSAgICAgICAgICAgIHJldmlzaW9uPSI2ODYyOSIvPgorICAgICAgICAgICAgcmV2aXNp
b249IjczMDI3Ii8+CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZWNv
cmUiLz4KICAgICAgIDxkZXAgcGFja2FnZT0iZWluYSIvPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150229</attachid>
            <date>2012-06-29 11:39:59 -0700</date>
            <delta_ts>2012-07-01 23:22:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90170_gamepad_support.patch</filename>
            <type>text/plain</type>
            <size>20653</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBhOGY0NjVkLi5hZWFkNzZk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTItMDYtMjkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBBZGQgR2FtZXBhZCBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDE3MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRFRkwuY21h
a2U6IEJ1bXAgRUZMIGxpYnMgZGVwZW5kZW5jaWVzLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9P
cHRpb25zRWZsLmNtYWtlOiBUdXJuIG9uIEdBTUVQQUQgZmxhZyBvbiBFRkwgcG9ydC4KKyAgICAg
ICAgKiBTb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZTogQWRkIEdBTUVQQUQgZmxhZyB0byBDTWFr
ZS4KKwogMjAxMi0wNi0yOSAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIxMjE1MTgsIGFkZGluZyBhIG1p
c3Npbmcgc3ltYm9sIHRvIHN5bWJvbHMuZmlsdGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYzMDBkNTcuLjFhZjlkODYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wNi0yOSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNo
cmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIEFkZCBHYW1lcGFkIHN1
cHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkw
MTcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5z
a2lwIGdhbWVwYWQvZ2FtZXBhZC1hcGkuaHRtbCBub3cgdGhhdCBHYW1lcGFkCisgICAgICAgIHN1
cHBvcnQgaXMgZW5hYmxlZCBvbiBFRkwgcG9ydC4KKworICAgICAgICBnYW1lcGFkL2dhbWVwYWQt
cG9sbGluZy1hY2Nlc3MuaHRtbCBpcyBzdGlsbAorICAgICAgICBza2lwcGVkIGJlY2F1c2UgaXQg
cmVxdWlyZXMgYWRkaXRpb25hbCB0ZXN0CisgICAgICAgIGluZnJhc3RydWN0dXJlLgorCisgICAg
ICAgICogcGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnM6CisKIDIwMTItMDYtMjkgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggM2ZhYzAzOS4uZGM2NWNlOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1NraXBwZWQKQEAgLTc0Nyw5ICs3NDcsNiBAQCBmYXN0L2Zvcm1zL21vbnRoCiBm
YXN0L2Zvcm1zL3RpbWUKIGZhc3QvZm9ybXMvd2VlawogCi0jIEVOQUJMRV9HQU1FUEFEIG5vdCBl
bmFibGVkLgotZ2FtZXBhZC8KLQogIyBIaURQSSB0ZXN0cyByZXF1aXJlIHRlc3QgaW5mcmFzdHJ1
Y3R1cmUgZW5oYW5jZW1lbnRzCiBmYXN0L2hpZHBpCiBzdmcvYXMtaW1hZ2UvaW1hZ2UtcmVzcGVj
dHMtZGV2aWNlU2NhbGVGYWN0b3IuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBhNDEwMjc4Li45ODA1YTAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjkxLDYgKzY5MSw5IEBAIEJVR1dLODY2MzcgOiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLW1hcmtlci1kZXNjcmlwdGlvbi5odG1sID0gVEVYVAog
Ly8gTG9va3MgbGlrZSBzb21lIHJhY2UgY29uZGl0aW9uIGR1cmluZyBsb2FkaW5nLgogQlVHV0s4
NTk3NyA6IGZhc3QvY3NzL2ZvbnQtZmFjZS1kb3dubG9hZC1lcnJvci5odG1sID0gVElNRU9VVAog
CisvLyBNaXNzaW5nIHRlc3QgaW5mcmFzdHJ1Y3R1cmUsIG5vIGdhbWVwYWRzIGF2YWlsYWJsZS4K
K0JVR1dLRUZMIDogZ2FtZXBhZC9nYW1lcGFkLXBvbGxpbmctYWNjZXNzLmh0bWwgPSBURVhUCisK
IC8vIEZhaWxzIG9uIEdUSysgYW5kIFF0IGFzIHdlbGwuCiBCVUdXSzg2NDQ1IDogZmFzdC9tdWx0
aWNvbC9zcGxpdC1pbi10b3AtbWFyZ2luLmh0bWwgPSBJTUFHRQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
CmluZGV4IDVjNTY0OTUuLjZjZjcyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC05Niw2ICs5
Niw3IEBAIFNFVChXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKIAogU0VUKFdlYkNvcmVfSURM
X0lOQ0xVREVTCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtCisgICAgTW9kdWxlcy9nYW1lcGFkCiAg
ICAgTW9kdWxlcy9nZW9sb2NhdGlvbgogICAgIE1vZHVsZXMvaW5kZXhlZGRiCiAgICAgTW9kdWxl
cy9xdW90YQpAQCAtMjQ3NSw2ICsyNDc2LDIyIEBAIElGIChFTkFCTEVfQkFUVEVSWV9TVEFUVVMp
CiAgICAgKQogRU5ESUYgKCkKIAorSUYgKEVOQUJMRV9HQU1FUEFEKQorICAgIExJU1QoQVBQRU5E
IFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9nYW1lcGFkIgorICAgICkKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX0lETF9GSUxFUwor
ICAgICAgICBNb2R1bGVzL2dhbWVwYWQvR2FtZXBhZC5pZGwKKyAgICAgICAgTW9kdWxlcy9nYW1l
cGFkL0dhbWVwYWRMaXN0LmlkbAorICAgICAgICBNb2R1bGVzL2dhbWVwYWQvTmF2aWdhdG9yR2Ft
ZXBhZC5pZGwKKyAgICApCisgICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAg
IE1vZHVsZXMvZ2FtZXBhZC9HYW1lcGFkLmNwcAorICAgICAgICBNb2R1bGVzL2dhbWVwYWQvR2Ft
ZXBhZExpc3QuY3BwCisgICAgICAgIE1vZHVsZXMvZ2FtZXBhZC9OYXZpZ2F0b3JHYW1lcGFkLmNw
cAorICAgICkKK0VORElGICgpCisKIElGIChFTkFCTEVfTUVESUFfU1RSRUFNKQogICAgIExJU1Qo
QVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICAgICAke1dFQkNPUkVfRElS
fS9Nb2R1bGVzL21lZGlhc3RyZWFtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE2YTUyYy4uYTM0ZWNhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTA2LTI5ICBDaHJpc3RvcGhlIER1bWV6ICA8
Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF0gQWRkIEdhbWVwYWQg
c3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTAxNzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgdGhlIEdhbWVwYWQgZmVhdHVyZSBvbiB0aGUgRUZMIHBvcnQuCisKKyAg
ICAgICAgVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgY2xhc3MgcmVsaWVzIG9uIHRoZSBMaW51
eAorICAgICAgICBrZXJuZWwgam95c3RpY2sgQVBJLgorCisgICAgICAgIEdhbWVwYWQgZGV2aWNl
cyBhcmUgcmVjb2duaXplZCB0aHJvdWdoIHRoZSBHYW1lcGFkc0VmbAorICAgICAgICBjbGFzcywg
b2Ygd2hpY2ggaW1wbGVtZW50YXRpb24gaXMgYmFzZWQgb24gRWV6ZQorICAgICAgICBsaWJyYXJ5
LiBUaGlzIHdheSBkZXZpY2VzIGFyZSBwcm9wZXJseSByZWdpc3RlcmVkIG9uCisgICAgICAgIGNv
bm5lY3Rpb24gYXMgb2JqZWN0cyBvZiB0aGUgR2FtZXBhZERldmljZUVmbCBjbGFzcworICAgICAg
ICB3aGljaCBpbmhlcml0cyBHYW1lcGFkRGV2aWNlTGludXguIEdhbWVwYWREZXZpY2VFZmwKKyAg
ICAgICAgcmVhZHMgdGhlIGpveXN0aWNrIGRhdGEgdGhyb3VnaCBhbiBFY29yZV9GZF9IYW5kbGVy
CisgICAgICAgIGFuZCB1cGRhdGVzIHRoZSBkZXZpY2Ugc3RhdGUgYWNjb3JkaW5nbHkuIFRoZQor
ICAgICAgICBHYW1lcGFkc0VmbCBvYmplY3QgaXMgdGhlbiBwb2xsZWQgZm9yIGdhbWVwYWRzIGRh
dGEKKyAgICAgICAgdGhyb3VnaCB0aGUgc2FtcGxlR2FtZXBhZHMgbWV0aG9kLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAtIGFscmVhZHkgdGVzdGVkIGJ5IGdhbWVwYWQvKgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAgICog
cGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKEdhbWVwYWREZXZpY2VFZmwpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERl
dmljZUVmbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWREZXZpY2VFZmw6Okdh
bWVwYWREZXZpY2VFZmwpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6fkdh
bWVwYWREZXZpY2VFZmwpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZERldmljZUVmbDo6cmVh
ZENhbGxiYWNrKToKKyAgICAgICAgKEdhbWVwYWRzRWZsKToKKyAgICAgICAgKFdlYkNvcmU6Okdh
bWVwYWRzRWZsOjpvbkdhbWVQYWRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZHNF
Zmw6OkdhbWVwYWRzRWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzRWZsOjp+R2FtZXBh
ZHNFZmwpOgorICAgICAgICAoV2ViQ29yZTo6R2FtZXBhZHNFZmw6OnJlZ2lzdGVyRGV2aWNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdhbWVwYWRzRWZsOjp1bnJlZ2lzdGVyRGV2aWNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdhbWVwYWRzRWZsOjp1cGRhdGVHYW1lcGFkTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpzYW1wbGVHYW1lcGFkcyk6CisKIDIwMTItMDYtMjkgIE1paG5lYSBPdmlkZW5pZSAg
PG1paG5lYUBhZG9iZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggd2hlbiBmbG93aW5nIGEgZml4ZWQg
cG9zaXRpb25lZCBlbGVtZW50IGludG8gYSByZWdpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtl
CmluZGV4IDIyYWYwZTYuLjk0ZTY5MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtRWZsLmNtYWtlCkBAIC04
LDYgKzgsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgIiR7
V0VCQ09SRV9ESVJ9L3BhZ2UvZWZsIgogICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZWZsIgog
ICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvZWZsIgorICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vbGludXgiCiAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9nc3RyZWFtZXIiCiAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCiAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0L2VmbCIKQEAgLTMzLDYgKzM0LDcgQEAgTElT
VChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgIHBsYXRmb3JtL2VmbC9FZmxTY3JlZW5VdGlsaXRp
ZXMuY3BwCiAgIHBsYXRmb3JtL2VmbC9FdmVudExvb3BFZmwuY3BwCiAgIHBsYXRmb3JtL2VmbC9G
aWxlU3lzdGVtRWZsLmNwcAorICBwbGF0Zm9ybS9lZmwvR2FtZXBhZHNFZmwuY3BwCiAgIHBsYXRm
b3JtL2VmbC9LVVJMRWZsLmNwcAogICBwbGF0Zm9ybS9lZmwvTGFuZ3VhZ2VFZmwuY3BwCiAgIHBs
YXRmb3JtL2VmbC9Mb2NhbGl6ZWRTdHJpbmdzRWZsLmNwcApAQCAtNzQsNiArNzYsNyBAQCBMSVNU
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9K
UEVHSW1hZ2VEZWNvZGVyLmNwcAogICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9wbmcvUE5HSW1h
Z2VEZWNvZGVyLmNwcAogICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURl
Y29kZXIuY3BwCisgIHBsYXRmb3JtL2xpbnV4L0dhbWVwYWREZXZpY2VMaW51eC5jcHAKICAgcGxh
dGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkhhbmRs
ZXIuY3BwCiAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRl
ckdTdHJlYW1lci5jcHAKICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNvdXAuY3Bw
CkBAIC0zMDcsMyArMzEwLDEyIEBAIElGIChFTkFCTEVfV0VCX0FVRElPKQogICBBRERfREVGSU5J
VElPTlMoLURVTklOU1RBTExFRF9BVURJT19SRVNPVVJDRVNfRElSPSIke1dFQkNPUkVfRElSfS9w
bGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMiKQogRU5ESUYgKCkKIAorSUYgKEVOQUJMRV9HQU1FUEFE
KQorICBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0VFWkVf
SU5DTFVERV9ESVJTfQorICApCisgIExJU1QoQVBQRU5EIFdlYkNvcmVfTElCUkFSSUVTCisgICAg
JHtFRVpFX0xJQlJBUklFU30KKyAgKQorRU5ESUYgKCkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZWZsL0dhbWVwYWRzRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9HYW1lcGFkc0VmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYmU5MzA4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9HYW1lcGFkc0VmbC5jcHAKQEAgLTAsMCArMSwyNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHYW1lcGFkcy5oIgorCisjaWYgRU5BQkxF
KEdBTUVQQUQpCisKKyNpbmNsdWRlICJHYW1lcGFkRGV2aWNlTGludXguaCIKKyNpbmNsdWRlICJH
YW1lcGFkTGlzdC5oIgorI2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8RWV6ZS5oPgorI2lu
Y2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdGF0aWMgY29uc3QgY2hhciBqb3lzdGlja1ByZWZpeFtdID0gIi9kZXYvaW5w
dXQvanMiOworCitjbGFzcyBHYW1lcGFkRGV2aWNlRWZsIDogcHVibGljIEdhbWVwYWREZXZpY2VM
aW51eCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8R2FtZXBhZERldmljZUVmbD4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlRmlsZSkKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgR2FtZXBhZERldmljZUVmbChkZXZpY2VGaWxlKSk7CisgICAgfQorICAgIH5H
YW1lcGFkRGV2aWNlRWZsKCk7CisgICAgdm9pZCByZXNldEZkSGFuZGxlcigpIHsgbV9mZEhhbmRs
ZXIgPSAwOyB9CisKK3ByaXZhdGU6CisgICAgR2FtZXBhZERldmljZUVmbChjb25zdCBTdHJpbmcm
IGRldmljZUZpbGUpOworICAgIHN0YXRpYyBFaW5hX0Jvb2wgcmVhZENhbGxiYWNrKHZvaWQqIHVz
ZXJEYXRhLCBFY29yZV9GZF9IYW5kbGVyKik7CisKKyAgICBFY29yZV9GZF9IYW5kbGVyKiBtX2Zk
SGFuZGxlcjsKK307CisKK0dhbWVwYWREZXZpY2VFZmw6OkdhbWVwYWREZXZpY2VFZmwoY29uc3Qg
U3RyaW5nJiBkZXZpY2VGaWxlKQorICAgIDogR2FtZXBhZERldmljZUxpbnV4KGRldmljZUZpbGUp
CisgICAgLCBtX2ZkSGFuZGxlcigwKQoreworICAgIGlmIChtX2ZpbGVEZXNjcmlwdG9yIDwgMCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9mZEhhbmRsZXIgPSBlY29yZV9tYWluX2ZkX2hhbmRs
ZXJfYWRkKG1fZmlsZURlc2NyaXB0b3IsIEVDT1JFX0ZEX1JFQUQsIHJlYWRDYWxsYmFjaywgdGhp
cywgMCwgMCk7CisgICAgaWYgKCFtX2ZkSGFuZGxlcikKKyAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gY3JlYXRlIHRoZSBFY29yZV9GZF9IYW5kbGVyLiIpOworfQorCitHYW1lcGFkRGV2aWNl
RWZsOjp+R2FtZXBhZERldmljZUVmbCgpCit7CisgICAgaWYgKG1fZmRIYW5kbGVyKQorICAgICAg
ICBlY29yZV9tYWluX2ZkX2hhbmRsZXJfZGVsKG1fZmRIYW5kbGVyKTsKK30KKworRWluYV9Cb29s
IEdhbWVwYWREZXZpY2VFZmw6OnJlYWRDYWxsYmFjayh2b2lkKiB1c2VyRGF0YSwgRWNvcmVfRmRf
SGFuZGxlciogZmRIYW5kbGVyKQoreworICAgIEdhbWVwYWREZXZpY2VFZmwqIGdhbWVwYWREZXZp
Y2UgPSBzdGF0aWNfY2FzdDxHYW1lcGFkRGV2aWNlRWZsKj4odXNlckRhdGEpOworCisgICAgaWYg
KGVjb3JlX21haW5fZmRfaGFuZGxlcl9hY3RpdmVfZ2V0KGZkSGFuZGxlciwgRUNPUkVfRkRfRVJS
T1IpKSB7CisgICAgICAgIExPR19FUlJPUigiQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgd2F0Y2hp
bmcgdGhlIGpveXN0aWNrIGZpbGUgZGVzY3JpcHRvciwgYWJvcnRpbmcuIik7CisgICAgICAgIGdh
bWVwYWREZXZpY2UtPnJlc2V0RmRIYW5kbGVyKCk7CisgICAgICAgIHJldHVybiBFQ09SRV9DQUxM
QkFDS19DQU5DRUw7CisgICAgfQorCisgICAgaW50IGZkRGV2aWNlID0gZWNvcmVfbWFpbl9mZF9o
YW5kbGVyX2ZkX2dldChmZEhhbmRsZXIpOworICAgIHN0cnVjdCBqc19ldmVudCBldmVudDsKKyAg
ICBjb25zdCBzc2l6ZV90IGxlbiA9IHJlYWQoZmREZXZpY2UsICZldmVudCwgc2l6ZW9mKGV2ZW50
KSk7CisKKyAgICBpZiAobGVuIDw9IDApIHsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8g
cmVhZCBqb3lzdGljayBmaWxlIGRlc2NyaXB0b3IsIGFib3J0aW5nLiIpOworICAgICAgICBnYW1l
cGFkRGV2aWNlLT5yZXNldEZkSGFuZGxlcigpOworICAgICAgICByZXR1cm4gRUNPUkVfQ0FMTEJB
Q0tfQ0FOQ0VMOworICAgIH0KKyAgICBpZiAobGVuICE9IHNpemVvZihldmVudCkpIHsKKyAgICAg
ICAgTE9HX0VSUk9SKCJXcm9uZyBqc19ldmVudCBzaXplIHJlYWQgb24gZmlsZSBkZXNjcmlwdG9y
LCBpZ25vcmluZy4iKTsKKyAgICAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX1JFTkVXOworICAg
IH0KKworICAgIGdhbWVwYWREZXZpY2UtPnVwZGF0ZUZvckV2ZW50KGV2ZW50KTsKKyAgICByZXR1
cm4gRUNPUkVfQ0FMTEJBQ0tfUkVORVc7Cit9CisKK2NsYXNzIEdhbWVwYWRzRWZsIHsKK3B1Ymxp
YzoKKyAgICBHYW1lcGFkc0VmbChzaXplX3QgbGVuZ3RoKTsKKworICAgIHZvaWQgcmVnaXN0ZXJE
ZXZpY2UoY29uc3QgU3RyaW5nJiBzeXNwYXRoKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJEZXZpY2Uo
Y29uc3QgU3RyaW5nJiBzeXNwYXRoKTsKKworICAgIHZvaWQgdXBkYXRlR2FtZXBhZExpc3QoR2Ft
ZXBhZExpc3QqKTsKKworcHJpdmF0ZToKKyAgICB+R2FtZXBhZHNFZmwoKTsKKyAgICBzdGF0aWMg
dm9pZCBvbkdhbWVQYWRDaGFuZ2UoY29uc3QgY2hhciogc3lzcGF0aCwgRWV6ZV9VZGV2X0V2ZW50
LCB2b2lkKiB1c2VyRGF0YSwgRWV6ZV9VZGV2X1dhdGNoKiB3YXRjaGVyKTsKKworICAgIFZlY3Rv
cjxPd25QdHI8R2FtZXBhZERldmljZUVmbD4gPiBtX3Nsb3RzOworICAgIEhhc2hNYXA8U3RyaW5n
LCBHYW1lcGFkRGV2aWNlRWZsKj4gbV9kZXZpY2VNYXA7CisKKyAgICBFZXplX1VkZXZfV2F0Y2gq
IG1fZ2FtZXBhZHNXYXRjaGVyOworfTsKKwordm9pZCBHYW1lcGFkc0VmbDo6b25HYW1lUGFkQ2hh
bmdlKGNvbnN0IGNoYXIqIHN5c3BhdGgsIEVlemVfVWRldl9FdmVudCBldmVudCwgdm9pZCogdXNl
ckRhdGEsIEVlemVfVWRldl9XYXRjaCogd2F0Y2hlcikKK3sKKyAgICBHYW1lcGFkc0VmbCogZ2Ft
ZXBhZHNFZmwgPSBzdGF0aWNfY2FzdDxHYW1lcGFkc0VmbCo+KHVzZXJEYXRhKTsKKworICAgIHN3
aXRjaCAoZXZlbnQpIHsKKyAgICBjYXNlIEVFWkVfVURFVl9FVkVOVF9BREQ6CisgICAgICAgIGdh
bWVwYWRzRWZsLT5yZWdpc3RlckRldmljZShTdHJpbmc6OmZyb21VVEY4KHN5c3BhdGgpKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBFRVpFX1VERVZfRVZFTlRfUkVNT1ZFOgorICAgICAgICBn
YW1lcGFkc0VmbC0+dW5yZWdpc3RlckRldmljZShTdHJpbmc6OmZyb21VVEY4KHN5c3BhdGgpKTsK
KyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQor
CitHYW1lcGFkc0VmbDo6R2FtZXBhZHNFZmwoc2l6ZV90IGxlbmd0aCkKKyAgICA6IG1fc2xvdHMo
bGVuZ3RoKQorICAgICwgbV9nYW1lcGFkc1dhdGNoZXIoMCkKK3sKKyAgICBpZiAoZWV6ZV9pbml0
KCkgPCAwKSB7CisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGluaXRpYWxpemUgZWV6ZSBs
aWJyYXJ5LiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gV2F0Y2ggZm9yIGdh
bWVwYWRzIGFkZGl0aW9ucyAvIHJlbW92YWxzLgorICAgIG1fZ2FtZXBhZHNXYXRjaGVyID0gZWV6
ZV91ZGV2X3dhdGNoX2FkZChFRVpFX1VERVZfVFlQRV9KT1lTVElDSywgKEVFWkVfVURFVl9FVkVO
VF9BREQgfCBFRVpFX1VERVZfRVZFTlRfUkVNT1ZFKSwgb25HYW1lUGFkQ2hhbmdlLCB0aGlzKTsK
KworICAgIC8vIExpc3QgYXZhaWxhYmxlIGdhbWVwYWRzLgorICAgIEVpbmFfTGlzdCogZ2FtZXBh
ZHMgPSBlZXplX3VkZXZfZmluZF9ieV90eXBlKEVFWkVfVURFVl9UWVBFX0pPWVNUSUNLLCAwKTsK
KyAgICB2b2lkKiBkYXRhOworICAgIEVJTkFfTElTVF9GUkVFKGdhbWVwYWRzLCBkYXRhKSB7Cisg
ICAgICAgIGNoYXIqIHN5c3BhdGggPSBzdGF0aWNfY2FzdDxjaGFyKj4oZGF0YSk7CisgICAgICAg
IHJlZ2lzdGVyRGV2aWNlKFN0cmluZzo6ZnJvbVVURjgoc3lzcGF0aCkpOworICAgICAgICBlaW5h
X3N0cmluZ3NoYXJlX2RlbChzeXNwYXRoKTsKKyAgICB9Cit9CisKK0dhbWVwYWRzRWZsOjp+R2Ft
ZXBhZHNFZmwoKQoreworICAgIGlmIChtX2dhbWVwYWRzV2F0Y2hlcikKKyAgICAgICAgZWV6ZV91
ZGV2X3dhdGNoX2RlbChtX2dhbWVwYWRzV2F0Y2hlcik7CisgICAgZWV6ZV9zaHV0ZG93bigpOwor
fQorCit2b2lkIEdhbWVwYWRzRWZsOjpyZWdpc3RlckRldmljZShjb25zdCBTdHJpbmcmIHN5c3Bh
dGgpCit7CisgICAgaWYgKG1fZGV2aWNlTWFwLmNvbnRhaW5zKHN5c3BhdGgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBNYWtlIHN1cmUgaXQgaXMgYSB2YWxpZCBqb3lzdGljay4KKyAgICBj
b25zdCBjaGFyKiBkZXZpY2VGaWxlID0gZWV6ZV91ZGV2X3N5c3BhdGhfZ2V0X2RldnBhdGgoc3lz
cGF0aC51dGY4KCkuZGF0YSgpKTsKKyAgICBpZiAoIWRldmljZUZpbGUgfHwgIWVpbmFfc3RyX2hh
c19wcmVmaXgoZGV2aWNlRmlsZSwgam95c3RpY2tQcmVmaXgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBMT0coR2FtZXBhZCwgIlJlZ2lzdGVyaW5nIGdhbWVwYWQgYXQgJXMsIGRldmljZUZpbGU6
ICVzIiwgc3lzcGF0aC51dGY4KCkuZGF0YSgpLCBkZXZpY2VGaWxlKTsKKworICAgIGNvbnN0IHNp
emVfdCBzbG90Q291bnQgPSBtX3Nsb3RzLnNpemUoKTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9
IDA7IGluZGV4IDwgc2xvdENvdW50OyArK2luZGV4KSB7CisgICAgICAgIGlmICghbV9zbG90c1tp
bmRleF0pIHsKKyAgICAgICAgICAgIG1fc2xvdHNbaW5kZXhdID0gR2FtZXBhZERldmljZUVmbDo6
Y3JlYXRlKFN0cmluZzo6ZnJvbVVURjgoZGV2aWNlRmlsZSkpOworICAgICAgICAgICAgbV9kZXZp
Y2VNYXAuYWRkKHN5c3BhdGgsIG1fc2xvdHNbaW5kZXhdLmdldCgpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgfQorfQorCit2b2lkIEdhbWVwYWRzRWZsOjp1bnJlZ2lzdGVy
RGV2aWNlKGNvbnN0IFN0cmluZyYgc3lzcGF0aCkKK3sKKyAgICBpZiAoIW1fZGV2aWNlTWFwLmNv
bnRhaW5zKHN5c3BhdGgpKQorICAgICAgICByZXR1cm47CisKKyAgICBMT0coR2FtZXBhZCwgIlJl
Z2lzdGVyaW5nIGdhbWVwYWQgYXQgJXMsIiwgc3lzcGF0aC51dGY4KCkuZGF0YSgpKTsKKworICAg
IEdhbWVwYWREZXZpY2VFZmwqIGdhbWVwYWREZXZpY2UgPSBtX2RldmljZU1hcC50YWtlKHN5c3Bh
dGgpOworICAgIGNvbnN0IHNpemVfdCBpbmRleCA9IG1fc2xvdHMuZmluZChnYW1lcGFkRGV2aWNl
KTsKKyAgICBBU1NFUlQoaW5kZXggIT0gbm90Rm91bmQpOworCisgICAgbV9zbG90c1tpbmRleF0u
Y2xlYXIoKTsKK30KKwordm9pZCBHYW1lcGFkc0VmbDo6dXBkYXRlR2FtZXBhZExpc3QoR2FtZXBh
ZExpc3QqIGludG8pCit7CisgICAgQVNTRVJUKG1fc2xvdHMuc2l6ZSgpID09IGludG8tPmxlbmd0
aCgpKTsKKworICAgIGNvbnN0IHNpemVfdCBzbG90Q291bnQgPSBtX3Nsb3RzLnNpemUoKTsKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNsb3RDb3VudDsgKytpKSB7CisgICAgICAgIGlmICht
X3Nsb3RzW2ldLmdldCgpICYmIG1fc2xvdHNbaV0tPmNvbm5lY3RlZCgpKSB7CisgICAgICAgICAg
ICBHYW1lcGFkRGV2aWNlRWZsKiBnYW1lcGFkRGV2aWNlID0gbV9zbG90c1tpXS5nZXQoKTsKKyAg
ICAgICAgICAgIFJlZlB0cjxHYW1lcGFkPiBnYW1lcGFkID0gaW50by0+aXRlbShpKTsKKyAgICAg
ICAgICAgIGlmICghZ2FtZXBhZCkKKyAgICAgICAgICAgICAgICBnYW1lcGFkID0gR2FtZXBhZDo6
Y3JlYXRlKCk7CisKKyAgICAgICAgICAgIGdhbWVwYWQtPmluZGV4KGkpOworICAgICAgICAgICAg
Z2FtZXBhZC0+aWQoZ2FtZXBhZERldmljZS0+aWQoKSk7CisgICAgICAgICAgICBnYW1lcGFkLT50
aW1lc3RhbXAoZ2FtZXBhZERldmljZS0+dGltZXN0YW1wKCkpOworICAgICAgICAgICAgZ2FtZXBh
ZC0+YXhlcyhnYW1lcGFkRGV2aWNlLT5heGVzQ291bnQoKSwgZ2FtZXBhZERldmljZS0+YXhlc0Rh
dGEoKSk7CisgICAgICAgICAgICBnYW1lcGFkLT5idXR0b25zKGdhbWVwYWREZXZpY2UtPmJ1dHRv
bnNDb3VudCgpLCBnYW1lcGFkRGV2aWNlLT5idXR0b25zRGF0YSgpKTsKKworICAgICAgICAgICAg
aW50by0+c2V0KGksIGdhbWVwYWQpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIGludG8t
PnNldChpLCAwKTsKKyAgICB9Cit9CisKK3ZvaWQgc2FtcGxlR2FtZXBhZHMoR2FtZXBhZExpc3Qq
IGludG8pCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChHYW1lcGFkc0VmbCwgZ2FtZXBhZHNF
ZmwsIChpbnRvLT5sZW5ndGgoKSkpOworICAgIGdhbWVwYWRzRWZsLnVwZGF0ZUdhbWVwYWRMaXN0
KGludG8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
R0FNRVBBRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kRUZMLmNtYWtlIGIvU291cmNl
L2NtYWtlL0ZpbmRFRkwuY21ha2UKaW5kZXggMTQ2NmY4Yi4uMDU0Yjg2YiAxMDA2NDQKLS0tIGEv
U291cmNlL2NtYWtlL0ZpbmRFRkwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRFRkwuY21h
a2UKQEAgLTEsMjAgKzEsMjAgQEAKIElOQ0xVREUoRmluZFBrZ0NvbmZpZykKIAogUEtHX0NIRUNL
X01PRFVMRVMgKEVESkUgUkVRVUlSRUQgZWRqZT49MS4wLjApCi1QS0dfQ0hFQ0tfTU9EVUxFUyAo
RUNPUkUgUkVRVUlSRUQgZWNvcmU+PTEuMC4wKQorUEtHX0NIRUNLX01PRFVMRVMgKEVDT1JFIFJF
UVVJUkVEIGVjb3JlPj0xLjIuMCkKIFBLR19DSEVDS19NT0RVTEVTIChFQ09SRV9FVkFTIFJFUVVJ
UkVEIGVjb3JlLWV2YXM+PTEuMC4wKQogUEtHX0NIRUNLX01PRFVMRVMgKEVGTERFUFMgUkVRVUlS
RUQKLSAgZWluYT49MS4wLjk5OS42MzU2OAorICBlaW5hPj0xLjIuMAogICBldmFzPj0xLjAuMAot
ICBlY29yZT49MS4wLjk5OS41OTc2MworICBlY29yZT49MS4yLjAKICAgZWNvcmUtZmlsZT49MS4w
LjAKICAgZWNvcmUtZXZhcz49MS4wLjk5OS41OTc2MwogICBlZGplPj0xLjAuMAogICBldWtpdD49
MS4xLjAKICAgZWRidXM+PTEuMS4wCiAgIGVjb3JlLWlucHV0Pj0xLjAuMAotICBlZXplPj0xLjEu
OTkpCi1QS0dfQ0hFQ0tfTU9EVUxFUyAoRUlOQSBSRVFVSVJFRCBlaW5hPj0xLjAuMCkKKyAgZWV6
ZT49MS4yLjk5KQorUEtHX0NIRUNLX01PRFVMRVMgKEVJTkEgUkVRVUlSRUQgZWluYT49MS4yLjAp
CiBQS0dfQ0hFQ0tfTU9EVUxFUyAoRUNPUkVfWCBlY29yZS14Pj0xLjAuMCkKIFBLR19DSEVDS19N
T0RVTEVTIChFVkFTIFJFUVVJUkVEIGV2YXM+PTEuMC4wKQogUEtHX0NIRUNLX01PRFVMRVMgKEVV
S0lUIFJFUVVJUkVEIGV1a2l0Pj0xLjEuMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRp
b25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXggYTllODg2
OS4uNzllMmViNCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKKysr
IGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTc1LDYgKzc1LDcgQEAgV0VCS0lU
X09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RSQUdfU1VQUE9SVCBPTikKIFdFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GQVNUX01PQklMRV9TQ1JPTExJTkcg
T04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRklMVEVSUyBPTikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSBP
TikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HQU1FUEFEIE9OKQog
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dMSUJfU1VQUE9SVCBPTikK
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
IE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0xFR0FDWV9XRUJL
SVRfQkxPQl9CVUlMREVSIE9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21h
a2UgYi9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQppbmRleCBhY2YyMGVkLi45MzNjMGNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Vj
b25maWcuaC5jbWFrZQpAQCAtMzMsNiArMzMsNyBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0ZJ
WEVEX1JFUE9SVEVEX1NJWkUKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9GVFBESVIKICNjbWFrZWRl
ZmluZTAxIEVOQUJMRV9GVUxMU0NSRUVOX0FQSQorI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0dBTUVQ
QUQKICNjbWFrZWRlZmluZTAxIEVOQUJMRV9HRU9MT0NBVElPTgogI2NtYWtlZGVmaW5lMDEgRU5B
QkxFX0dMSUJfU1VQUE9SVAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX0lDT05EQVRBQkFTRQpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGEzNzVlMzQu
LjQ3ZmQ1NzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNi0yOSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlz
dG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIEFkZCBHYW1lcGFkIHN1cHBv
cnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMTcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06IFR1cm4gb24gR0FNRVBBRCBmbGFnCisgICAg
ICAgIGJ5IGRlZmF1bHQgZm9yIEVGTCBwb3J0LgorICAgICAgICAqIGVmbC9qaGJ1aWxkLm1vZHVs
ZXM6IEJ1bXAgZGVwZW5kZW5jeSB2ZXJzaW9ucyBvZiBFRkwgbGlicworICAgICAgICBzaW5jZSB0
aGUgbGF0ZXN0IEVlemUgaXMgcmVxdWlyZWQgZm9yIGdhbWVwYWQgc3VwcG9ydC4KKwogMjAxMi0w
Ni0yOSAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0
XVtXVFJdIEdldCByaWQgb2YgdXNpbmcgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCA1YWFkMDUwLi40MTNjYzYwIDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0yMTQsNyArMjE0LDcgQEAg
bXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlVMTFNDUkVFTl9BUEki
LCBkZWZhdWx0ID0+IChpc0FwcGxlTWFjV2ViS2l0KCkgfHwgaXNFZmwoKSB8fCBpc0d0aygpIHx8
IGlzQmxhY2tCZXJyeSgpIHx8IGlzUXQoKSksIHZhbHVlID0+IFwkZnVsbHNjcmVlbkFQSVN1cHBv
cnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJnYW1lcGFkIiwgZGVzYyA9PiAiVG9nZ2xlIEdhbWVw
YWQgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9
PiBpc0d0aygpLCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpKSwgdmFsdWUg
PT4gXCRnYW1lcGFkU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImdlb2xvY2F0aW9uIiwg
ZGVzYyA9PiAiVG9nZ2xlIEdlb2xvY2F0aW9uIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfR0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGso
KSB8fCBpc0JsYWNrQmVycnkoKSksIHZhbHVlID0+IFwkZ2VvbG9jYXRpb25TdXBwb3J0IH0sCmRp
ZmYgLS1naXQgYS9Ub29scy9lZmwvamhidWlsZC5tb2R1bGVzIGIvVG9vbHMvZWZsL2poYnVpbGQu
bW9kdWxlcwppbmRleCA5ODExZWMyLi5kOTUxMzQyIDEwMDY0NAotLS0gYS9Ub29scy9lZmwvamhi
dWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL2VmbC9qaGJ1aWxkLm1vZHVsZXMKQEAgLTE2MCwxMyAr
MTYwLDEzIEBACiAgIDxhdXRvdG9vbHMgaWQ9ImVpbmEiID4KICAgICA8YnJhbmNoIG1vZHVsZT0i
ZWluYSIKICAgICAgICAgICAgIHJlcG89ImVubGlnaHRlbm1lbnQub3JnIgotICAgICAgICAgICAg
cmV2aXNpb249IjY4NjI5Ii8+CisgICAgICAgICAgICByZXZpc2lvbj0iNzMwMjciLz4KICAgPC9h
dXRvdG9vbHM+CiAKICAgPGF1dG90b29scyBpZD0iZW1icnlvIj4KICAgICA8YnJhbmNoIG1vZHVs
ZT0iZW1icnlvIgogICAgICAgICAgICAgcmVwbz0iZW5saWdodGVubWVudC5vcmciCi0gICAgICAg
ICAgICByZXZpc2lvbj0iNjg2MjkiLz4KKyAgICAgICAgICAgIHJldmlzaW9uPSI3MzAyNyIvPgog
ICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImVpbmEiLz4KICAgICA8L2Rl
cGVuZGVuY2llcz4KQEAgLTE3NSwxMyArMTc1LDEzIEBACiAgIDxhdXRvdG9vbHMgaWQ9ImV2YXMi
PgogICAgIDxicmFuY2ggbW9kdWxlPSJldmFzIgogICAgICAgICAgICAgcmVwbz0iZW5saWdodGVu
bWVudC5vcmciCi0gICAgICAgICAgICByZXZpc2lvbj0iNjg2MjkiLz4KKyAgICAgICAgICAgIHJl
dmlzaW9uPSI3MzAyNyIvPgogICA8L2F1dG90b29scz4KIAogICA8YXV0b3Rvb2xzIGlkPSJlY29y
ZSI+CiAgICAgPGJyYW5jaCBtb2R1bGU9ImVjb3JlIgogICAgICAgICAgICAgcmVwbz0iZW5saWdo
dGVubWVudC5vcmciCi0gICAgICAgICAgICByZXZpc2lvbj0iNjg2MjkiLz4KKyAgICAgICAgICAg
IHJldmlzaW9uPSI3MzAyNyIvPgogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8ZGVwIHBhY2th
Z2U9ImVpbmEiLz4KICAgICAgIDxkZXAgcGFja2FnZT0iZXZhcyIvPgpAQCAtMTkxLDcgKzE5MSw3
IEBACiAgIDxhdXRvdG9vbHMgaWQ9ImVldCI+CiAgICAgPGJyYW5jaCBtb2R1bGU9ImVldCIKICAg
ICAgICAgICAgIHJlcG89ImVubGlnaHRlbm1lbnQub3JnIgotICAgICAgICAgICAgcmV2aXNpb249
IjY4NjI5Ii8+CisgICAgICAgICAgICByZXZpc2lvbj0iNzMwMjciLz4KICAgICA8ZGVwZW5kZW5j
aWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJlaW5hIi8+CiAgICAgPC9kZXBlbmRlbmNpZXM+CkBA
IC0yMDAsNyArMjAwLDcgQEAKICAgPGF1dG90b29scyBpZD0iZWRqZSI+CiAgICAgPGJyYW5jaCBt
b2R1bGU9ImVkamUiCiAgICAgICAgICAgICByZXBvPSJlbmxpZ2h0ZW5tZW50Lm9yZyIKLSAgICAg
ICAgICAgIHJldmlzaW9uPSI2ODYyOSIvPgorICAgICAgICAgICAgcmV2aXNpb249IjczMDI3Ii8+
CiAgICAgPGRlcGVuZGVuY2llcz4KICAgICAgIDxkZXAgcGFja2FnZT0iZWV0Ii8+CiAgICAgICA8
ZGVwIHBhY2thZ2U9ImVjb3JlIi8+CkBAIC0yMTIsNyArMjEyLDcgQEAKICAgPGF1dG90b29scyBp
ZD0iZV9kYnVzIj4KICAgICA8YnJhbmNoIG1vZHVsZT0iZV9kYnVzIgogICAgICAgICAgICAgcmVw
bz0iZW5saWdodGVubWVudC5vcmciCi0gICAgICAgICAgICByZXZpc2lvbj0iNjg2MjkiLz4KKyAg
ICAgICAgICAgIHJldmlzaW9uPSI3MzAyNyIvPgogICAgIDxkZXBlbmRlbmNpZXM+CiAgICAgICA8
ZGVwIHBhY2thZ2U9ImVjb3JlIi8+CiAgICAgICA8ZGVwIHBhY2thZ2U9ImVpbmEiLz4KQEAgLTIy
Miw3ICsyMjIsNyBAQAogICA8YXV0b3Rvb2xzIGlkPSJlZXplIj4KICAgICA8YnJhbmNoIG1vZHVs
ZT0iZWV6ZSIKICAgICAgICAgICAgIHJlcG89ImVubGlnaHRlbm1lbnQub3JnIgotICAgICAgICAg
ICAgcmV2aXNpb249IjY4NjI5Ii8+CisgICAgICAgICAgICByZXZpc2lvbj0iNzMwMjciLz4KICAg
ICA8ZGVwZW5kZW5jaWVzPgogICAgICAgPGRlcCBwYWNrYWdlPSJlY29yZSIvPgogICAgICAgPGRl
cCBwYWNrYWdlPSJlaW5hIi8+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>