<?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>87419</bug_id>
          
          <creation_ts>2012-05-24 13:06:47 -0700</creation_ts>
          <short_desc>[BlackBerry] Implement select popup and remove old hook to air popup</short_desc>
          <delta_ts>2012-05-24 15:33:35 -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 BlackBerry</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>0</everconfirmed>
          <reporter name="Crystal Zhang">haizhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <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>633094</commentid>
    <comment_count>0</comment_count>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-05-24 13:06:47 -0700</bug_when>
    <thetext>Implement select popup client and remove the old hook for air popup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633110</commentid>
    <comment_count>1</comment_count>
      <attachid>143877</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-05-24 13:22:25 -0700</bug_when>
    <thetext>Created attachment 143877
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633241</commentid>
    <comment_count>2</comment_count>
      <attachid>143899</attachid>
    <who name="Crystal Zhang">haizhang</who>
    <bug_when>2012-05-24 14:36:40 -0700</bug_when>
    <thetext>Created attachment 143899
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633270</commentid>
    <comment_count>3</comment_count>
      <attachid>143899</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-05-24 14:57:43 -0700</bug_when>
    <thetext>Comment on attachment 143899
updated patch

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

Looks good.

&gt; Source/WebCore/Resources/blackberry/popupControlBlackBerry.css:66
&gt; +}

I think this could have been placed in WebCore/css too, but this works as well.

&gt; Source/WebKit/blackberry/WebCoreSupport/SelectPopupClient.cpp:147
&gt; +        const WTF::Vector&lt;HTMLElement*&gt;&amp; items = m_element-&gt;listItems();

You do not need the WTF:: prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633300</commentid>
    <comment_count>4</comment_count>
      <attachid>143899</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-24 15:33:31 -0700</bug_when>
    <thetext>Comment on attachment 143899
updated patch

Clearing flags on attachment: 143899

Committed r118436: &lt;http://trac.webkit.org/changeset/118436&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633301</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-24 15:33:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143877</attachid>
            <date>2012-05-24 13:22:25 -0700</date>
            <delta_ts>2012-05-24 14:36:40 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0001-2012-05-24-Crystal-Zhang-haizhang-rim.com.patch</filename>
            <type>text/plain</type>
            <size>26701</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSA3MjZiNjFmOWEzZmQ5MDNlMDI3NTY2YzQxYTVjNzI0ZGZjZDBlZWY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxoYWl6aGFuZ0ByaW0uY29tPgpEYXRl
OiBUaHUsIDI0IE1heSAyMDEyIDE2OjIwOjAyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0w
NS0yNCAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CgogICAgICAgICAgICAgICAg
QWRkIHBvcHVwIGNvbnRyb2wgY3NzIGZpbGUgYW5kIG1vZGlmeSBjbWFrZSBmaWxlIGFjY29yZGlu
Z2x5LgoKICAgICAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICAgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgogICAgICAgICAgICAgICAgKiBS
ZXNvdXJjZXMvYmxhY2tiZXJyeS9wb3B1cENvbnRyb2xCbGFja0JlcnJ5LmNzczogQWRkZWQuCiAg
ICAgICAgICAgICAgICAoaHRtbCk6CiAgICAgICAgICAgICAgICAoYm9keSk6CiAgICAgICAgICAg
ICAgICAoLmJvdHRvbWJ1dHRvbk9LKToKICAgICAgICAgICAgICAgICguYm90dG9tYnV0dG9uQ2Fu
Y2VsKToKICAgICAgICAgICAgICAgICgudGFibGVidXR0b24pOgoKICAgICAgICAyMDEyLTA1LTI0
ICBDcnlzdGFsIFpoYW5nICA8aGFpemhhbmdAcmltLmNvbT4KCiAgICAgICAgICAgICAgICBBZGQg
U2VsZWN0IHBvcHVwIGNsaWVudCwgbW9kaWZ5IGlucHV0SGFuZGxlciBhY2NvcmRpbmdseS4KCiAg
ICAgICAgICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgICAgICAg
ICAqIEFwaS9XZWJQYWdlQ2xpZW50Lmg6CiAgICAgICAgICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1NlbGVjdFBvcHVwQ2xpZW50LmNwcDogQWRkZWQuCiAgICAgICAgICAgICAgICAoV2ViQ29yZSk6
CiAgICAgICAgICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6OlNlbGVjdFBvcHVw
Q2xpZW50KToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVudDo6flNl
bGVjdFBvcHVwQ2xpZW50KToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENs
aWVudDo6dXBkYXRlKToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVu
dDo6Z2VuZXJhdGVIVE1MKToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENs
aWVudDo6Y2xvc2VQb3B1cCk6CiAgICAgICAgICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBD
bGllbnQ6OmNvbnRlbnRTaXplKToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1
cENsaWVudDo6aHRtbFNvdXJjZSk6CiAgICAgICAgICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9w
dXBDbGllbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CiAgICAgICAgICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0UG9wdXBDbGllbnQ6OmRpZENsb3NlUG9wdXApOgogICAgICAgICAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50Ojp3cml0ZURvY3VtZW50KToKICAgICAgICAgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuaDogQWRkZWQuCiAgICAgICAgICAg
ICAgICAoV2ViS2l0KToKICAgICAgICAgICAgICAgIChXZWJDb3JlKToKICAgICAgICAgICAgICAg
IChTZWxlY3RQb3B1cENsaWVudCk6CiAgICAgICAgICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcDoKICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0
SGFuZGxlcjo6b3BlblNlbGVjdFBvcHVwKToKICAgICAgICAgICAgICAgICogV2ViS2l0U3VwcG9y
dC9JbnB1dEhhbmRsZXIuaDoKICAgICAgICAgICAgICAgIChXZWJDb3JlKToKICAgICAgICAgICAg
ICAgIChJbnB1dEhhbmRsZXIpOgogICAgICAgICAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1dlYlBv
cHVwVHlwZS5oOiBBZGRlZC4KICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5KToKICAgICAgICAg
ICAgICAgIChXZWJLaXQpOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxNyArKwogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlICAgICAgICAgICAgfCAgICAxICsKIC4uLi9ibGFja2JlcnJ5L3BvcHVwQ29udHJv
bEJsYWNrQmVycnkuY3NzICAgICAgICAgIHwgICA2NiArKysrKysrCiBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJL
aXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaCAgICAgICB8ICAgIDEgLQogU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgfCAgIDM1ICsr
KysKIC4uLi9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAgICAgICAgICAgIHwg
IDE4MiArKysrKysrKysrKysrKysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
U2VsZWN0UG9wdXBDbGllbnQuaCAgfCAgIDYyICsrKysrKysKIC4uLi9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcCAgICAgIHwgICA3OCArKysrKy0tLS0KIC4uLi9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5oIHwgICAgMyArCiAuLi4v
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9XZWJQb3B1cFR5cGUuaCB8ICAgMzUgKysr
KwogMTIgZmlsZXMgY2hhbmdlZCwgNDYwIGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9ibGFja2JlcnJ5L3Bv
cHVwQ29udHJvbEJsYWNrQmVycnkuY3NzCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxl
Y3RQb3B1cENsaWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvV2ViUG9wdXBUeXBlLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUzZGI1OC4u
NTMzMmJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA1LTI0ICBDcnlzdGFs
IFpoYW5nICA8aGFpemhhbmdAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gSW1wbGVt
ZW50IHNlbGVjdCBwb3B1cCBhbmQgcmVtb3ZlIG9sZCBob29rIHRvIGFpciBwb3B1cAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc0MTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IGZpbGVzIHRv
IG1ha2UgZmlsZSwgYWRkIGNzcyBmaWxlIGZvciBzZWxlY3QgcG9wdXAuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogUmVzb3VyY2VzL2JsYWNrYmVycnkv
cG9wdXBDb250cm9sQmxhY2tCZXJyeS5jc3M6IEFkZGVkLgorICAgICAgICAoaHRtbCk6CisgICAg
ICAgIChib2R5KToKKyAgICAgICAgKC5ib3R0b21idXR0b25PSyk6CisgICAgICAgICguYm90dG9t
YnV0dG9uQ2FuY2VsKToKKyAgICAgICAgKC50YWJsZWJ1dHRvbik6CisKIDIwMTItMDUtMjQgIEdy
ZWcgU3BlbmNlciAgPGdzcGVuY2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNSFRNTCBmaWxl
cyBzaG91bGQgYmUgbG9hZGFibGUgZnJvbSBhbGwgc2NoZW1lcyBjb25zaWRlcmVkIGxvY2FsLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4IDA2YTE2YzUuLmYyZDA4
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTEwNiw2ICsx
MDYsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIExJU1QoQVBQRU5EIFdlYkNvcmVf
VVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMKICAgICAke1dFQkNPUkVfRElSfS9jc3MvbWVkaWFDb250
cm9sc0JsYWNrQmVycnkuY3NzCiAgICAgJHtXRUJDT1JFX0RJUn0vY3NzL3RoZW1lQmxhY2tCZXJy
eS5jc3MKKyAgICAke1dFQkNPUkVfRElSfS9SZXNvdXJjZXMvYmxhY2tiZXJyeS9wb3B1cENvbnRy
b2xCbGFja0JlcnJ5LmNzcwogKQogCiBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9ibGFja2JlcnJ5L3Bv
cHVwQ29udHJvbEJsYWNrQmVycnkuY3NzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2JsYWNr
YmVycnkvcG9wdXBDb250cm9sQmxhY2tCZXJyeS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYWJkNjUzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jl
c291cmNlcy9ibGFja2JlcnJ5L3BvcHVwQ29udHJvbEJsYWNrQmVycnkuY3NzCkBAIC0wLDAgKzEs
NjYgQEAKK2h0bWwgeworICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICBsZWZ0OiAwOworICAgIHRv
cDogMDsKKyAgICBib3R0b206IDA7CisgICAgcmlnaHQ6IDA7CisgICAgb3ZlcmZsb3c6IGhpZGRl
bjsKK30KKworYm9keSB7CisgICAgcGFkZGluZzogMDsKKyAgICBtYXJnaW46IDA7CisgICAgZm9u
dC1mYW1pbHk6ICJNeXJpYWQgUHJvIiwgIkFyaWFsIiwgIkhlbHZldGljYSIsIHNhbnMtc2VyaWY7
Cit9CisKKy5ib3R0b21idXR0b25PSyB7IAorICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0
aWNhLCBzYW5zLXNlcmlmOworICAgIGZvbnQtc2l6ZTogMTRweDsKKyAgICBmb250LXN0eWxlOiBv
YmxpcXVlOworICAgIGNvbG9yOiByZ2JhKDE2LCAxNiwgMTYsIDAuNik7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogcmdiYSg2LCA2LCA2LCAwLjYpOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAg
ICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIGhlaWdo
dDogMzBweDsKKyAgICB3aWR0aDogNzBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOwor
ICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICBib3R0b206IGF1dG87Cit9CisKKy5ib3R0b21idXR0
b25DYW5jZWwgeworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlm
OworICAgIGZvbnQtc2l6ZTogMTRweDsKKyAgICBmb250LXN0eWxlOiBvYmxpcXVlOworICAgIGNv
bG9yOiByZ2JhKDE2LCAxNiwgMTYsIDAuNik7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg2
LCA2LCA2LCAwLjYpOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICB2ZXJ0aWNhbC1hbGln
bjogbWlkZGxlOworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIGhlaWdodDogMzBweDsKKyAgICB3
aWR0aDogNzBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCAjMDAwOworICAgIHBvc2l0aW9uOiBm
aXhlZDsKKyAgICBib3R0b206IGF1dG87CisgICAgbGVmdDogODBweDsKK30KKworLnRhYmxlYnV0
dG9uIHsKKyAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKKyAg
ICBmb250LXNpemU6IDE2cHg7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgYmFja2dyb3Vu
ZC1jb2xvcjogI0UyRTRFMzsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgd2lkdGg6IDEwMCU7Cisg
ICAgYm9yZGVyLXRvcC1zdHlsZTogbm9uZTsKKyAgICBib3JkZXItcmlnaHQtc3R5bGU6IG5vbmU7
CisgICAgYm9yZGVyLWxlZnQtc3R5bGU6IG5vbmU7CisgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTog
bm9uZTsKKyAgICBtYXJnaW46IDAgYXV0bzsKKyAgICBwb3NpdGlvbjpyZWxhdGl2ZTsKKyAgICB0
b3A6MCU7CisgICAgbGVmdDowJTsKKyAgICBib3R0b206MCU7CisgICAgcmlnaHQ6MCU7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDQwMGM2MjMuLjBjZTc2MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTItMDUtMjQgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29tPgorCisgICAgICAgIFtC
bGFja0JlcnJ5XSBJbXBsZW1lbnQgc2VsZWN0IHBvcHVwIGFuZCByZW1vdmUgb2xkIGhvb2sgdG8g
YWlyIHBvcHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzQxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBuZXcgZmlsZXMgdG8gbWFrZSBmaWxlLgorICAgICAgICAKKyAgICAgICAgKiBQbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2U6CisKIDIwMTItMDUtMjQgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAg
PHJha3Vjb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQsIHVuYnJlYWsg
YG1ha2UgaW5zdGFsbCcgYWZ0ZXIgcjExNzA0Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVy
cnkuY21ha2UKaW5kZXggYWUyODdkZi4uZWY5MzUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJs
YWNrQmVycnkuY21ha2UKQEAgLTc2LDYgKzc2LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJD
RVMKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlcklt
cGwuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9WaWJyYXRpb25DbGllbnRCbGFj
a0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvUGFnZVBvcHVwQmxhY2tC
ZXJyeS5jcHAKKyAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50
LmNwcAogICAgIGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9CYWNraW5nU3RvcmVDb21wb3NpdGlu
Z1N1cmZhY2UuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZVRp
bGUuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZUNsaWVudC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKaW5kZXgg
MmFlOTczZi4uNGMxMDIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlQ2xpZW50LmgKQEAgLTE2Miw3ICsxNjIsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgcmVzZXRCYWNrRm9yd2FyZExpc3QodW5zaWduZWQgbGlzdFNpemUsIHVuc2lnbmVkIGN1cnJl
bnRJbmRleCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIG9wZW5Qb3B1cExpc3QoYm9vbCBtdWx0
aXBsZSwgaW50IHNpemUsIGNvbnN0IFNjb3BlQXJyYXk8V2ViU3RyaW5nPiYgbGFiZWxzLCBib29s
KiBlbmFibGVkcywgY29uc3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIG9wZW5EYXRlVGltZVBvcHVwKGludCB0eXBlLCBjb25zdCBXZWJTdHJp
bmcmIHZhbHVlLCBjb25zdCBXZWJTdHJpbmcmIG1pbiwgY29uc3QgV2ViU3RyaW5nJiBtYXgsIGRv
dWJsZSBzdGVwKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5Db2xvclBvcHVwKGNvbnN0IFdl
YlN0cmluZyYgdmFsdWUpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXgg
YjdlNmEzMi4uNDQ5YmRkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzggQEAKKzIwMTItMDUtMjQgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29tPgor
CisgICAgICAgIFtCbGFja0JlcnJ5XSBJbXBsZW1lbnQgc2VsZWN0IHBvcHVwIGFuZCByZW1vdmUg
b2xkIGhvb2sgdG8gYWlyIHBvcHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NzQxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorICAgICAgICAKKyAgICAgICAgSW50cm9kdWNlIG5ldyBodG1sIHNlbGVjdCBwb3B1cCBjbGll
bnQsIHJlbW92ZSB0aGUgb2xkIGhvb2sgdG8gYWlyIHBvcHVwLgorCisgICAgICAgICogQXBpL1dl
YlBhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVu
dC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3RQb3B1cENsaWVudDo6U2VsZWN0UG9wdXBDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0UG9wdXBDbGllbnQ6On5TZWxlY3RQb3B1cENsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RQb3B1cENsaWVudDo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFBvcHVw
Q2xpZW50OjpnZW5lcmF0ZUhUTUwpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGll
bnQ6OmNsb3NlUG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6OmNv
bnRlbnRTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50OjpodG1sU291
cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50OjpzZXRWYWx1ZUFuZENs
b3NlUG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6OmRpZENsb3Nl
UG9wdXApOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6OndyaXRlRG9jdW1l
bnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2VsZWN0
UG9wdXBDbGllbnQpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6SW5wdXRIYW5kbGVyOjpvcGVuU2VsZWN0UG9w
dXApOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmg6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKElucHV0SGFuZGxlcik6CisgICAgICAgICogV2ViS2l0U3VwcG9y
dC9XZWJQb3B1cFR5cGUuaDogQWRkZWQuCisgICAgICAgIChCbGFja0JlcnJ5KToKKyAgICAgICAg
KFdlYktpdCk6CisKIDIwMTItMDUtMjQgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4K
IAogICAgICAgICBQb3NzaWJsZSBtaXNzaW5nIGxheW91dCBpbiBJcmlzIGJyb3dzZXIgYWZ0ZXIg
aGlkaW5nIFZLQgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMDQ1NmEyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAKQEAgLTAsMCAr
MSwxODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExp
bWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiU2VsZWN0UG9wdXBDbGllbnQuaCIKKworI2luY2x1
ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRXcml0ZXIuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9u
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlBhZ2VQb3B1cC5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgor
I2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCisjaW5jbHVkZSAiV2ViUGFnZV9wLmgi
CisKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKKyNkZWZpbmUgQ0VMTF9I
RUlHSFQgMzAKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTZWxlY3RQb3B1cENsaWVudDo6U2Vs
ZWN0UG9wdXBDbGllbnQoYm9vbCBtdWx0aXBsZSwgaW50IHNpemUsIGNvbnN0IFNjb3BlQXJyYXk8
QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmc+JiBsYWJlbHMsIGJvb2wqIGVuYWJsZWRzLAor
ICAgIGNvbnN0IGludCogaXRlbVR5cGUsIGJvb2wqIHNlbGVjdGVkcywgQmxhY2tCZXJyeTo6V2Vi
S2l0OjpXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZSwgSFRNTFNlbGVjdEVsZW1lbnQqIGVsZW1lbnQp
CisgICAgOiBtX211bHRpcGxlKG11bHRpcGxlKQorICAgICwgbV9zaXplKHNpemUpCisgICAgLCBt
X3dlYlBhZ2Uod2ViUGFnZSkKKyAgICAsIG1fZWxlbWVudChlbGVtZW50KQoreworICAgIGdlbmVy
YXRlSFRNTChtdWx0aXBsZSwgc2l6ZSwgbGFiZWxzLCBlbmFibGVkcywgaXRlbVR5cGUsIHNlbGVj
dGVkcyk7Cit9CisKK1NlbGVjdFBvcHVwQ2xpZW50Ojp+U2VsZWN0UG9wdXBDbGllbnQoKQorewor
fQorCit2b2lkIFNlbGVjdFBvcHVwQ2xpZW50Ojp1cGRhdGUoYm9vbCBtdWx0aXBsZSwgaW50IHNp
emUsIGNvbnN0IFNjb3BlQXJyYXk8QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmc+JiBsYWJl
bHMsIGJvb2wqIGVuYWJsZWRzLAorICAgIGNvbnN0IGludCogaXRlbVR5cGUsIGJvb2wqIHNlbGVj
dGVkcywgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSosIEhUTUxTZWxlY3RFbGVt
ZW50KiBlbGVtZW50KQoreworICAgIG1fbXVsdGlwbGUgPSBtdWx0aXBsZTsKKyAgICBtX3NpemUg
PSBzaXplOworICAgIG1fZWxlbWVudCA9IGVsZW1lbnQ7CisgICAgZ2VuZXJhdGVIVE1MKG11bHRp
cGxlLCBzaXplLCBsYWJlbHMsIGVuYWJsZWRzLCBpdGVtVHlwZSwgc2VsZWN0ZWRzKTsKK30KKwor
dm9pZCBTZWxlY3RQb3B1cENsaWVudDo6Z2VuZXJhdGVIVE1MKGJvb2wgbXVsdGlwbGUsIGludCBz
aXplLCBjb25zdCBTY29wZUFycmF5PEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nPiYgbGFi
ZWxzLCBib29sKiBlbmFibGVkcywKKyAgICBjb25zdCBpbnQqIGl0ZW1UeXBlLCBib29sKiBzZWxl
Y3RlZHMpCit7CisgICAgU3RyaW5nQnVpbGRlciBzb3VyY2U7CisgICAgU3RyaW5nIGZ1bGxQYXRo
KFJFU09VUkNFX1BBVEgpOworICAgIFN0cmluZyBzaW5nbGVTZWxlY3RJbWFnZSgic2luZ2xlU2Vs
ZWN0LnBuZyIpOworICAgIFN0cmluZyBtdWx0aVNlbGVjdEltYWdlKCJtdWx0aVNlbGVjdC5wbmci
KTsKKyAgICBzb3VyY2UuYXBwZW5kKCI8aGVhZD48c3R5bGU+XG4iKTsKKyAgICAvLyBJbmNsdWRl
IENTUyBmaWxlLgorICAgIHNvdXJjZS5hcHBlbmQocG9wdXBDb250cm9sQmxhY2tCZXJyeVVzZXJB
Z2VudFN0eWxlU2hlZXQsCisgICAgICAgICAgICBzaXplb2YocG9wdXBDb250cm9sQmxhY2tCZXJy
eVVzZXJBZ2VudFN0eWxlU2hlZXQpKTsKKyAgICBzb3VyY2UuYXBwZW5kKCI8L3N0eWxlPjwvaGVh
ZD48Ym9keT5cbiIpOworICAgIHNvdXJjZS5hcHBlbmQoIjxzY3JpcHQ+XG4iKTsKKyAgICBzb3Vy
Y2UuYXBwZW5kKCJ2YXIgb3B0aW9ucz1uZXcgQXJyYXkoIiArIFN0cmluZzo6bnVtYmVyKHNpemUp
ICsgIik7Iik7CisgICAgc291cmNlLmFwcGVuZCgiZm9yICh2YXIgaSA9IDA7IGkgPCAiICsgU3Ry
aW5nOjpudW1iZXIoc2l6ZSkgKyAiOyBpKysgKSIpOworICAgIHNvdXJjZS5hcHBlbmQoInsgb3B0
aW9uc1tpXSA9IGZhbHNlIDsiKTsKKyAgICBzb3VyY2UuYXBwZW5kKCJ2YXIgaW1hZ2VpZCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKFwiaW1hZ2VcIiArIHBhcnNlSW50KGkpKTsgaW1hZ2VpZC5z
dHlsZS52aXNpYmlsaXR5ID0gZmFsc2U7IH0iKTsKKyAgICBzb3VyY2UuYXBwZW5kKCJmdW5jdGlv
biBPaygpIHsgdmFyIHNlbGVjdGVkcyA9IFwiXCI7Iik7CisgICAgc291cmNlLmFwcGVuZCgiZm9y
ICh2YXIgaSA9IDA7IGkgPCAiICsgU3RyaW5nOjpudW1iZXIoc2l6ZSkgKyAiOyBpKysgKSIpOwor
ICAgIHNvdXJjZS5hcHBlbmQoInsgIGlmIChvcHRpb25zW2ldKSBzZWxlY3RlZHMgKz0gJzEnOyBl
bHNlIHNlbGVjdGVkcyArPSAnMCc7fSIpOworICAgIHNvdXJjZS5hcHBlbmQoIndpbmRvdy5zZXRW
YWx1ZUFuZENsb3NlUG9wdXAoc2VsZWN0ZWRzLCB3aW5kb3cucG9wVXApOyB3aW5kb3cuY2xvc2Uo
KTt9Iik7CisgICAgc291cmNlLmFwcGVuZCgiZnVuY3Rpb24gQ2FuY2VsKCkgeyB2YXIgc2VsZWN0
ZWRzID0gXCJcIjsiKTsKKyAgICBzb3VyY2UuYXBwZW5kKCJmb3IgKHZhciBpID0gMDsgaSA8ICIg
KyBTdHJpbmc6Om51bWJlcihzaXplKSArICI7IGkrKyApIik7CisgICAgc291cmNlLmFwcGVuZCgi
c2VsZWN0ZWRzICs9ICcwJzsiKTsKKyAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cuc2V0VmFsdWVB
bmRDbG9zZVBvcHVwKHNlbGVjdGVkcywgd2luZG93LnBvcFVwKTsgd2luZG93LmNsb3NlKCk7fSIp
OworICAgIGlmIChtX211bHRpcGxlKQorICAgICAgICBzb3VyY2UuYXBwZW5kKCJmdW5jdGlvbiBT
ZWxlY3QoaSkgeyBvcHRpb25zW2ldID0gIW9wdGlvbnNbaV07IHZhciBpbWFnZWlkID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoXCJpbWFnZVwiICsgcGFyc2VJbnQoaSkpOyBpbWFnZWlkLnN0eWxl
LnZpc2liaWxpdHkgPSBvcHRpb25zW2ldOyB9Iik7CisgICAgZWxzZSB7CisgICAgICAgIHNvdXJj
ZS5hcHBlbmQoImZ1bmN0aW9uIFNlbGVjdChpKSB7IGZvciAodmFyIGogPSAwOyBqIDwgIiArIFN0
cmluZzo6bnVtYmVyKHNpemUpICsgIjsgaisrICkiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZCgi
eyBvcHRpb25zW2pdID0gZmFsc2U7ICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kKCJ2YXIgaW1h
Z2VpZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiaW1hZ2VcIiArIHBhcnNlSW50KGopKTsg
aW1hZ2VpZC5zdHlsZS52aXNpYmlsaXR5ID0gZmFsc2U7IH0iKTsKKyAgICAgICAgc291cmNlLmFw
cGVuZCgib3B0aW9uc1tpXSA9IHRydWU7ICIpOworICAgICAgICBzb3VyY2UuYXBwZW5kKCJ2YXIg
aW1hZ2VpZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiaW1hZ2VcIiArIHBhcnNlSW50KGkp
KTsgaW1hZ2VpZC5zdHlsZS52aXNpYmlsaXR5ID0gdHJ1ZTsgfSIpOworICAgIH0KKyAgICBzb3Vy
Y2UuYXBwZW5kKCI8L3NjcmlwdD5cbiIpOworCisgICAgaW50IHRhYmxlV2lkdGggPSBjb250ZW50
U2l6ZSgpLndpZHRoKCk7CisgICAgaW50IHRhYmxlSGVpZ2h0ID0gQ0VMTF9IRUlHSFQgKiBzaXpl
OworICAgIHNvdXJjZS5hcHBlbmQoIjx0YWJsZSB3aWR0aD1cIiIgKyBTdHJpbmc6Om51bWJlcih0
YWJsZVdpZHRoKSArICJcIiBoZWlnaHQ9XCIiICsgU3RyaW5nOjpudW1iZXIodGFibGVIZWlnaHQp
CisgICAgICAgICsgIlwiIGJvcmRlcj1cIjBcIiBmcmFtZT1cInZvaWRcIiBydWxlcz1cInJvd3Nc
Ij4gIik7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyBpKyspIHsKKyAgICAgICAgc291
cmNlLmFwcGVuZCgiIDx0cj4gPHRkIGJnY29sb3I9XCIjRTJFNEUzXCIgd2lkdGg9XCI4MCVcIj48
aW5wdXQgY2xhc3M9XCJ0YWJsZWJ1dHRvblwiIGlkPVwiYnV0dG9uIiArIFN0cmluZzo6bnVtYmVy
KGkpCisgICAgICAgICAgICArICJcIiB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCIiICsgU3RyaW5n
KGxhYmVsc1tpXS5pbXBsKCkpICsgIlwiIG9uY2xpY2s9XCJTZWxlY3QoIiArIFN0cmluZzo6bnVt
YmVyKGkpICsgIik7XCIgLz4iKTsKKyAgICAgICAgc291cmNlLmFwcGVuZCgiPC90ZD4iKTsKKyAg
ICAgICAgc291cmNlLmFwcGVuZCgiPHRkIGJnY29sb3I9XCIjRTJFNEUzXCIgd2lkdGg9XCIyMCVc
Ij48aW5wdXQgdHlwZT1cImltYWdlXCIgaWQ9XCJpbWFnZSIgKyBTdHJpbmc6Om51bWJlcihpKSAr
ICJcIiBzcmM9XCIgIiArIGZ1bGxQYXRoCisgICAgICAgICAgICArIHNpbmdsZVNlbGVjdEltYWdl
ICsgIiBcIiAvPjwvdGQ+IDwvdHI+Iik7CisgICAgfQorICAgIHNvdXJjZS5hcHBlbmQoIjwvdGFi
bGU+Iik7CisgICAgc291cmNlLmFwcGVuZCgiPHRhYmxlIGJvcmRlcj1cIjBcIiBjZWxscGFkZGlu
Zz1cIjBcIiBjZWxsc3BhY2luZz1cIjBcIj4gPHRyPiA8dGQ+Iik7CisgICAgc291cmNlLmFwcGVu
ZCgiPGlucHV0IGNsYXNzPVwiYm90dG9tYnV0dG9uT0tcIiBuYW1lPVwiYnRuT2tcIiB0eXBlPVwi
YnV0dG9uXCIgdmFsdWU9XCJPa1wiICIpOworICAgIHNvdXJjZS5hcHBlbmQoIm9uY2xpY2s9XCJP
aygpO1wiIC8+PC90ZD4gPHRkIG5vd3JhcD1cIm5vd3JhcFwiPiA8aW5wdXQgY2xhc3M9XCJib3R0
b21idXR0b25DYW5jZWxcIiB0eXBlPVwiYnV0dG9uXCIgdmFsdWU9XCJDYW5jZWxcIiBvbmNsaWNr
PVwiQ2FuY2VsKCk7XCIgLz4iKTsKKyAgICBzb3VyY2UuYXBwZW5kKCI8L3RkPiA8L3RyPjwvdGFi
bGU+Iik7CisgICAgc291cmNlLmFwcGVuZCgiPC9ib2R5PlxuIik7CisgICAgZnByaW50ZihzdGRl
cnIsICJHZW5lcmF0ZWQgc291cmNlOlxuJXMiLCBzb3VyY2UudG9TdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICBtX3NvdXJjZSA9IHNvdXJjZS50b1N0cmluZygpOworfQorCit2b2lkIFNlbGVj
dFBvcHVwQ2xpZW50OjpjbG9zZVBvcHVwKCkKK3sKKyAgICBBU1NFUlQobV93ZWJQYWdlKTsKKyAg
ICBtX3dlYlBhZ2UtPm1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5jbG9zZVBhZ2VQb3B1cCgw
KTsKK30KKworSW50U2l6ZSBTZWxlY3RQb3B1cENsaWVudDo6Y29udGVudFNpemUoKQoreworICAg
IC8vIEZpeG1lOiB3aWxsIGdlbmVyYXRlIGNvbnRlbnQgc2l6ZSBkeW5hbWljYWxseQorICAgIHJl
dHVybiBJbnRTaXplKDMyMCwgMjU2KTsKK30KKworU3RyaW5nIFNlbGVjdFBvcHVwQ2xpZW50Ojpo
dG1sU291cmNlKCkKK3sKKyAgICByZXR1cm4gbV9zb3VyY2U7Cit9CisKK3ZvaWQgU2VsZWN0UG9w
dXBDbGllbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cChpbnQsIGNvbnN0IFN0cmluZyYgc3RyaW5n
VmFsdWUpCit7CisKKyAgICBBU1NFUlQobV9zaXplID09IHN0cmluZ1ZhbHVlLmxlbmd0aCgpKTsK
KworICAgIGlmIChtX3NpemUgPiAwKSB7CisgICAgICAgIGJvb2wgc2VsZWN0ZWRzW21fc2l6ZV07
CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3NpemU7IGkrKykKKyAgICAgICAg
ICAgIHNlbGVjdGVkc1tpXSA9IHN0cmluZ1ZhbHVlW2ldIC0gMzI7CisKKyAgICAgICAgY29uc3Qg
V1RGOjpWZWN0b3I8SFRNTEVsZW1lbnQqPiYgaXRlbXMgPSBtX2VsZW1lbnQtPmxpc3RJdGVtcygp
OworCisgICAgICAgIGlmIChpdGVtcy5zaXplKCkgIT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50
PihtX3NpemUpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEhUTUxPcHRpb25FbGVt
ZW50KiBvcHRpb247CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3NpemU7IGkr
KykgeworICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0
aW9uVGFnKSkgeworICAgICAgICAgICAgICAgIG9wdGlvbiA9IHN0YXRpY19jYXN0PEhUTUxPcHRp
b25FbGVtZW50Kj4oaXRlbXNbaV0pOworICAgICAgICAgICAgICAgIG9wdGlvbi0+c2V0U2VsZWN0
ZWRTdGF0ZShzZWxlY3RlZHNbaV0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
ICAgIC8vIEZvcmNlIHJlcGFpbnQgYmVjYXVzZSB3ZSBkbyBub3Qgc2VuZCBtb3VzZSBldmVudHMg
dG8gdGhlIHNlbGVjdCBlbGVtZW50CisgICAgLy8gYW5kIHRoZSBlbGVtZW50IGRvZXNuJ3QgYXV0
b21hdGljYWxseSByZXBhaW50IGl0c2VsZi4KKyAgICBtX2VsZW1lbnQtPmRpc3BhdGNoRm9ybUNv
bnRyb2xDaGFuZ2VFdmVudCgpOworICAgIG1fZWxlbWVudC0+cmVuZGVyZXIoKS0+cmVwYWludCgp
OworICAgIGNsb3NlUG9wdXAoKTsKK30KKwordm9pZCBTZWxlY3RQb3B1cENsaWVudDo6ZGlkQ2xv
c2VQb3B1cCgpCit7CisgICAgbV93ZWJQYWdlID0gMDsKKyAgICBtX2VsZW1lbnQgPSAwOworfQor
Cit2b2lkIFNlbGVjdFBvcHVwQ2xpZW50Ojp3cml0ZURvY3VtZW50KERvY3VtZW50V3JpdGVyJiB3
cml0ZXIpCit7CisgICAgd3JpdGVyLnNldE1JTUVUeXBlKCJ0ZXh0L2h0bWwiKTsKKyAgICB3cml0
ZXIuYmVnaW4oS1VSTCgpKTsKKyAgICB3cml0ZXIuYWRkRGF0YShtX3NvdXJjZS51dGY4KCkuZGF0
YSgpLCBtX3NvdXJjZS51dGY4KCkubGVuZ3RoKCkpOworICAgIHdyaXRlci5lbmQoKTsKK30KK30K
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1Nl
bGVjdFBvcHVwQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBv
cnQvU2VsZWN0UG9wdXBDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mYzJmNDQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJl
CisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBC
b3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaWZuZGVmIFNlbGVjdFBvcHVwQ2xp
ZW50X2gKKyNkZWZpbmUgU2VsZWN0UG9wdXBDbGllbnRfaAorCisjaW5jbHVkZSAiSW50U2l6ZS5o
IgorI2luY2x1ZGUgIlBhZ2VQb3B1cENsaWVudC5oIgorI2luY2x1ZGUgIlNjb3BlUG9pbnRlci5o
IgorI2luY2x1ZGUgIldURlN0cmluZy5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCituYW1l
c3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcml2
YXRlOworfQorfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEb2N1bWVudFdyaXRlcjsK
K2NsYXNzIEhUTUxTZWxlY3RFbGVtZW50OworY2xhc3MgUGFnZVBvcHVwOworCitjbGFzcyBTZWxl
Y3RQb3B1cENsaWVudCA6IHB1YmxpYyBQYWdlUG9wdXBDbGllbnQgeworcHVibGljOgorICAgIFNl
bGVjdFBvcHVwQ2xpZW50KGJvb2wgbXVsdGlwbGUsIGludCBzaXplLCBjb25zdCBTY29wZUFycmF5
PEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nPiYgbGFiZWxzLCBib29sKiBlbmFibGVkcywg
Y29uc3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzLCBCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VQcml2YXRlKiwgSFRNTFNlbGVjdEVsZW1lbnQqKTsKKyAgICB+U2VsZWN0UG9wdXBD
bGllbnQoKTsKKworICAgIHZvaWQgdXBkYXRlKGJvb2wgbXVsdGlwbGUsIGludCBzaXplLCBjb25z
dCBTY29wZUFycmF5PEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nPiYgbGFiZWxzLCBib29s
KiBlbmFibGVkcywgY29uc3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzLCBCbGFja0Jl
cnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKiwgSFRNTFNlbGVjdEVsZW1lbnQqKTsKKworICAg
IHZvaWQgZ2VuZXJhdGVIVE1MKGJvb2wgbXVsdGlwbGUsIGludCBzaXplLCBjb25zdCBTY29wZUFy
cmF5PEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nPiYgbGFiZWxzLCBib29sKiBlbmFibGVk
cywgY29uc3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzKTsKKworICAgIHZvaWQgd3Jp
dGVEb2N1bWVudChEb2N1bWVudFdyaXRlciYpOworICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50
U2l6ZSgpOworICAgIHZpcnR1YWwgU3RyaW5nIGh0bWxTb3VyY2UoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VmFsdWVBbmRDbG9zZVBvcHVwKGludCwgY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVh
bCB2b2lkIGRpZENsb3NlUG9wdXAoKTsKKyAgICB2b2lkIGNsb3NlUG9wdXAoKTsKKworICAgIGJv
b2wgbV9tdWx0aXBsZTsKKyAgICB1bnNpZ25lZCBtX3NpemU7CisgICAgU3RyaW5nIG1fc291cmNl
OworICAgIEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZTsKKyAg
ICBIVE1MU2VsZWN0RWxlbWVudCogbV9lbGVtZW50OworfTsKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1
cHBvcnQvSW5wdXRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0lucHV0SGFuZGxlci5jcHAKaW5kZXggZThjMjRiYy4uNTMyMjE0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRs
ZXIuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIK
ICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTY29wZVBvaW50ZXIuaCIKKyNp
bmNsdWRlICJTZWxlY3RQb3B1cENsaWVudC5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkhhbmRsZXIu
aCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJXZWJQYWdlQ2xpZW50Lmgi
CkBAIC0xMTI3LDQ2ICsxMTI4LDYxIEBAIGJvb2wgSW5wdXRIYW5kbGVyOjpvcGVuU2VsZWN0UG9w
dXAoSFRNTFNlbGVjdEVsZW1lbnQqIHNlbGVjdCkKIAogICAgIG1fY3VycmVudEZvY3VzRWxlbWVu
dCA9IHNlbGVjdDsKICAgICBtX2N1cnJlbnRGb2N1c0VsZW1lbnRUeXBlID0gU2VsZWN0UG9wdXA7
CisKICAgICBjb25zdCBXVEY6OlZlY3RvcjxIVE1MRWxlbWVudCo+JiBsaXN0SXRlbXMgPSBzZWxl
Y3QtPmxpc3RJdGVtcygpOwogICAgIGludCBzaXplID0gbGlzdEl0ZW1zLnNpemUoKTsKLSAgICBp
ZiAoIXNpemUpIHsKLSAgICAgICAgU2NvcGVBcnJheTxXZWJTdHJpbmc+IGxhYmVsczsKLSAgICAg
ICAgYm9vbCogZW5hYmxlZHMgPSAwOwotICAgICAgICBpbnQqIGl0ZW1UeXBlcyA9IDA7Ci0gICAg
ICAgIGJvb2wqIHNlbGVjdGVkcyA9IDA7Ci0gICAgICAgIG1fd2ViUGFnZS0+bV9jbGllbnQtPm9w
ZW5Qb3B1cExpc3QoZmFsc2UsIHNpemUsIGxhYmVscywgZW5hYmxlZHMsIGl0ZW1UeXBlcywgc2Vs
ZWN0ZWRzKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQogCiAgICAgYm9vbCBtdWx0aXBs
ZSA9IHNlbGVjdC0+bXVsdGlwbGUoKTsKLQogICAgIFNjb3BlQXJyYXk8V2ViU3RyaW5nPiBsYWJl
bHM7CiAgICAgbGFiZWxzLnJlc2V0KG5ldyBXZWJTdHJpbmdbc2l6ZV0pOwotICAgIGJvb2wqIGVu
YWJsZWRzID0gbmV3IGJvb2xbc2l6ZV07Ci0gICAgaW50KiBpdGVtVHlwZXMgPSBuZXcgaW50W3Np
emVdOwotICAgIGJvb2wqIHNlbGVjdGVkcyA9IG5ldyBib29sW3NpemVdOworICAgIGJvb2wqIGVu
YWJsZWRzOworICAgIGludCogaXRlbVR5cGVzOworICAgIGJvb2wqIHNlbGVjdGVkczsKIAotICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIGlmIChsaXN0SXRlbXNb
aV0tPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRpb25UYWcpKSB7Ci0gICAgICAgICAgICBIVE1M
T3B0aW9uRWxlbWVudCogb3B0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihs
aXN0SXRlbXNbaV0pOwotICAgICAgICAgICAgbGFiZWxzW2ldID0gb3B0aW9uLT50ZXh0SW5kZW50
ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7Ci0gICAgICAgICAgICBlbmFibGVkc1tpXSA9IG9wdGlv
bi0+ZGlzYWJsZWQoKSA/IDAgOiAxOwotICAgICAgICAgICAgc2VsZWN0ZWRzW2ldID0gb3B0aW9u
LT5zZWxlY3RlZCgpOwotICAgICAgICAgICAgaXRlbVR5cGVzW2ldID0gVHlwZU9wdGlvbjsKLSAg
ICAgICAgfSBlbHNlIGlmIChsaXN0SXRlbXNbaV0tPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRn
cm91cFRhZykpIHsKLSAgICAgICAgICAgIEhUTUxPcHRHcm91cEVsZW1lbnQqIG9wdEdyb3VwID0g
c3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGxpc3RJdGVtc1tpXSk7Ci0gICAgICAg
ICAgICBsYWJlbHNbaV0gPSBvcHRHcm91cC0+Z3JvdXBMYWJlbFRleHQoKTsKLSAgICAgICAgICAg
IGVuYWJsZWRzW2ldID0gb3B0R3JvdXAtPmRpc2FibGVkKCkgPyAwIDogMTsKLSAgICAgICAgICAg
IHNlbGVjdGVkc1tpXSA9IGZhbHNlOwotICAgICAgICAgICAgaXRlbVR5cGVzW2ldID0gVHlwZUdy
b3VwOwotICAgICAgICB9IGVsc2UgaWYgKGxpc3RJdGVtc1tpXS0+aGFzVGFnTmFtZShIVE1MTmFt
ZXM6OmhyVGFnKSkgewotICAgICAgICAgICAgZW5hYmxlZHNbaV0gPSBmYWxzZTsKLSAgICAgICAg
ICAgIHNlbGVjdGVkc1tpXSA9IGZhbHNlOwotICAgICAgICAgICAgaXRlbVR5cGVzW2ldID0gVHlw
ZVNlcGFyYXRvcjsKKyAgICBpZiAoIXNpemUpIHsKKyAgICAgICAgZW5hYmxlZHMgPSAwOworICAg
ICAgICBpdGVtVHlwZXMgPSAwOworICAgICAgICBzZWxlY3RlZHMgPSAwOworCisgICAgICAgIGlm
ICghbV9zZWxlY3RDbGllbnQpCisgICAgICAgICAgICBtX3NlbGVjdENsaWVudCA9IG5ldyBTZWxl
Y3RQb3B1cENsaWVudChtdWx0aXBsZSwgc2l6ZSwgbGFiZWxzLCBlbmFibGVkcywgaXRlbVR5cGVz
LCBzZWxlY3RlZHMsIG1fd2ViUGFnZSwgc2VsZWN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbV9zZWxlY3RDbGllbnQtPnVwZGF0ZShtdWx0aXBsZSwgc2l6ZSwgbGFiZWxzLCBlbmFibGVk
cywgaXRlbVR5cGVzLCBzZWxlY3RlZHMsIG1fd2ViUGFnZSwgc2VsZWN0KTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBlbmFibGVkcyA9IG5ldyBib29sW3NpemVdOworICAgICAgICBpdGVtVHlwZXMg
PSBuZXcgaW50W3NpemVdOworICAgICAgICBzZWxlY3RlZHMgPSBuZXcgYm9vbFtzaXplXTsKKwor
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgaWYg
KGxpc3RJdGVtc1tpXS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9wdGlvblRhZykpIHsKKyAgICAg
ICAgICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gc3RhdGljX2Nhc3Q8SFRNTE9w
dGlvbkVsZW1lbnQqPihsaXN0SXRlbXNbaV0pOworICAgICAgICAgICAgICAgIGxhYmVsc1tpXSA9
IG9wdGlvbi0+dGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpOworICAgICAgICAgICAg
ICAgIGVuYWJsZWRzW2ldID0gb3B0aW9uLT5kaXNhYmxlZCgpID8gMCA6IDE7CisgICAgICAgICAg
ICAgICAgc2VsZWN0ZWRzW2ldID0gb3B0aW9uLT5zZWxlY3RlZCgpOworICAgICAgICAgICAgICAg
IGl0ZW1UeXBlc1tpXSA9IFR5cGVPcHRpb247CisgICAgICAgICAgICB9IGVsc2UgaWYgKGxpc3RJ
dGVtc1tpXS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6Om9wdGdyb3VwVGFnKSkgeworICAgICAgICAg
ICAgICAgIEhUTUxPcHRHcm91cEVsZW1lbnQqIG9wdEdyb3VwID0gc3RhdGljX2Nhc3Q8SFRNTE9w
dEdyb3VwRWxlbWVudCo+KGxpc3RJdGVtc1tpXSk7CisgICAgICAgICAgICAgICAgbGFiZWxzW2ld
ID0gb3B0R3JvdXAtPmdyb3VwTGFiZWxUZXh0KCk7CisgICAgICAgICAgICAgICAgZW5hYmxlZHNb
aV0gPSBvcHRHcm91cC0+ZGlzYWJsZWQoKSA/IDAgOiAxOworICAgICAgICAgICAgICAgIHNlbGVj
dGVkc1tpXSA9IGZhbHNlOworICAgICAgICAgICAgICAgIGl0ZW1UeXBlc1tpXSA9IFR5cGVHcm91
cDsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAobGlzdEl0ZW1zW2ldLT5oYXNUYWdOYW1lKEhUTUxO
YW1lczo6aHJUYWcpKSB7CisgICAgICAgICAgICAgICAgZW5hYmxlZHNbaV0gPSBmYWxzZTsKKyAg
ICAgICAgICAgICAgICBzZWxlY3RlZHNbaV0gPSBmYWxzZTsKKyAgICAgICAgICAgICAgICBpdGVt
VHlwZXNbaV0gPSBUeXBlU2VwYXJhdG9yOworICAgICAgICAgICAgfQogICAgICAgICB9CisKKyAg
ICAgICAgaWYgKCFtX3NlbGVjdENsaWVudCkKKyAgICAgICAgICAgIG1fc2VsZWN0Q2xpZW50ID0g
bmV3IFNlbGVjdFBvcHVwQ2xpZW50KG11bHRpcGxlLCBzaXplLCBsYWJlbHMsIGVuYWJsZWRzLCBp
dGVtVHlwZXMsIHNlbGVjdGVkcywgbV93ZWJQYWdlLCBzZWxlY3QpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBtX3NlbGVjdENsaWVudC0+dXBkYXRlKG11bHRpcGxlLCBzaXplLCBsYWJlbHMs
IGVuYWJsZWRzLCBpdGVtVHlwZXMsIHNlbGVjdGVkcywgbV93ZWJQYWdlLCBzZWxlY3QpOwogICAg
IH0KIAotICAgIG1fd2ViUGFnZS0+bV9jbGllbnQtPm9wZW5Qb3B1cExpc3QobXVsdGlwbGUsIHNp
emUsIGxhYmVscywgZW5hYmxlZHMsIGl0ZW1UeXBlcywgc2VsZWN0ZWRzKTsKKyAgICBpZiAoIXNl
bGVjdC0+ZG9jdW1lbnQoKS0+dmlldygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgV2Vi
Q29yZTo6SW50UmVjdCBlbGVtZW50UmVjdEluUm9vdFZpZXcgPSBzZWxlY3QtPmRvY3VtZW50KCkt
PnZpZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3KHNlbGVjdC0+Z2V0UmVjdCgpKTsKKyAgICBtX3dl
YlBhZ2UtPm1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5vcGVuUGFnZVBvcHVwKG1fc2VsZWN0
Q2xpZW50LCBlbGVtZW50UmVjdEluUm9vdFZpZXcpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFu
ZGxlci5oCmluZGV4IGM2MzM0NDcuLjI1NmY5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5oCkBAIC0zNyw2ICszNyw3
IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7CiBjbGFzcyBIVE1MU2VsZWN0RWxlbWVudDsKIGNs
YXNzIEludFJlY3Q7CiBjbGFzcyBOb2RlOworY2xhc3MgU2VsZWN0UG9wdXBDbGllbnQ7CiB9CiAK
IG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKQEAgLTE5Miw2ICsxOTMsOCBAQCBwcml2YXRlOgogCiAg
ICAgUGVuZGluZ0tleWJvYXJkU3RhdGVDaGFuZ2UgbV9wZW5kaW5nS2V5Ym9hcmRWaXNpYmlsaXR5
Q2hhbmdlOwogICAgIGJvb2wgbV9kZWxheUtleWJvYXJkVmlzaWJpbGl0eUNoYW5nZTsKKworICAg
IFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50KiBtX3NlbGVjdENsaWVudDsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1dlYlBvcHVw
VHlwZS5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvV2ViUG9wdXBU
eXBlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDE0NjRmZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1dlYlBv
cHVwVHlwZS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisgKi8KKworI2lmbmRlZiBXZWJQb3B1cFR5cGVfaAorI2RlZmluZSBXZWJQb3B1cFR5cGVf
aAorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVt
IFdlYlBvcHVwVHlwZSB7CisgICAgV2ViUG9wdXBUeXBlTm9uZSwgLy8gTm90IGEgcG9wdXAuCisg
ICAgV2ViUG9wdXBUeXBlU2VsZWN0LCAvLyBTZWxlY3QgQ29udHJvbAorICAgIFdlYlBvcHVwVHlw
ZURheXRpbWUsIC8vIERheXRpbWUgY29udHJvbAorfTsKKworfQorfQorCisjZW5kaWYgLy8gV2Vi
UG9wdXBUeXBlX2gKLS0gCjEuNy40LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143899</attachid>
            <date>2012-05-24 14:36:40 -0700</date>
            <delta_ts>2012-05-24 15:33:31 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>0001-2012-05-24-Crystal-Zhang-haizhang-rim.com.patch</filename>
            <type>text/plain</type>
            <size>26639</size>
            <attacher name="Crystal Zhang">haizhang</attacher>
            
              <data encoding="base64">RnJvbSAwOTQ4MDAyMWFjNmYwMzFkMzc1YmI3YTZjYWVmOTViYzRiZGVjZGIyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDcnlzdGFsIFpoYW5nIDxoYWl6aGFuZ0ByaW0uY29tPgpEYXRl
OiBUaHUsIDI0IE1heSAyMDEyIDE2OjIwOjAyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMi0w
NS0yNCAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CgogICAgICAgICAgICAgICAg
QWRkIHBvcHVwIGNvbnRyb2wgY3NzIGZpbGUgYW5kIG1vZGlmeSBjbWFrZSBmaWxlIGFjY29yZGlu
Z2x5LgoKICAgICAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAg
ICAgICAgICAgICogUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlOgogICAgICAgICAgICAgICAgKiBS
ZXNvdXJjZXMvYmxhY2tiZXJyeS9wb3B1cENvbnRyb2xCbGFja0JlcnJ5LmNzczogQWRkZWQuCiAg
ICAgICAgICAgICAgICAoaHRtbCk6CiAgICAgICAgICAgICAgICAoYm9keSk6CiAgICAgICAgICAg
ICAgICAoLmJvdHRvbWJ1dHRvbk9LKToKICAgICAgICAgICAgICAgICguYm90dG9tYnV0dG9uQ2Fu
Y2VsKToKICAgICAgICAgICAgICAgICgudGFibGVidXR0b24pOgoKICAgICAgICAyMDEyLTA1LTI0
ICBDcnlzdGFsIFpoYW5nICA8aGFpemhhbmdAcmltLmNvbT4KCiAgICAgICAgICAgICAgICBBZGQg
U2VsZWN0IHBvcHVwIGNsaWVudCwgbW9kaWZ5IGlucHV0SGFuZGxlciBhY2NvcmRpbmdseS4KCiAg
ICAgICAgICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgICAgICAg
ICAqIEFwaS9XZWJQYWdlQ2xpZW50Lmg6CiAgICAgICAgICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1NlbGVjdFBvcHVwQ2xpZW50LmNwcDogQWRkZWQuCiAgICAgICAgICAgICAgICAoV2ViQ29yZSk6
CiAgICAgICAgICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6OlNlbGVjdFBvcHVw
Q2xpZW50KToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVudDo6flNl
bGVjdFBvcHVwQ2xpZW50KToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENs
aWVudDo6dXBkYXRlKToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVu
dDo6Z2VuZXJhdGVIVE1MKToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENs
aWVudDo6Y2xvc2VQb3B1cCk6CiAgICAgICAgICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBD
bGllbnQ6OmNvbnRlbnRTaXplKToKICAgICAgICAgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1
cENsaWVudDo6aHRtbFNvdXJjZSk6CiAgICAgICAgICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9w
dXBDbGllbnQ6OnNldFZhbHVlQW5kQ2xvc2VQb3B1cCk6CiAgICAgICAgICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0UG9wdXBDbGllbnQ6OmRpZENsb3NlUG9wdXApOgogICAgICAgICAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50Ojp3cml0ZURvY3VtZW50KToKICAgICAgICAgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuaDogQWRkZWQuCiAgICAgICAgICAg
ICAgICAoV2ViS2l0KToKICAgICAgICAgICAgICAgIChXZWJDb3JlKToKICAgICAgICAgICAgICAg
IChTZWxlY3RQb3B1cENsaWVudCk6CiAgICAgICAgICAgICAgICAqIFdlYktpdFN1cHBvcnQvSW5w
dXRIYW5kbGVyLmNwcDoKICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OklucHV0
SGFuZGxlcjo6b3BlblNlbGVjdFBvcHVwKToKICAgICAgICAgICAgICAgICogV2ViS2l0U3VwcG9y
dC9JbnB1dEhhbmRsZXIuaDoKICAgICAgICAgICAgICAgIChXZWJDb3JlKToKICAgICAgICAgICAg
ICAgIChJbnB1dEhhbmRsZXIpOgogICAgICAgICAgICAgICAgKiBXZWJLaXRTdXBwb3J0L1dlYlBv
cHVwVHlwZS5oOiBBZGRlZC4KICAgICAgICAgICAgICAgIChCbGFja0JlcnJ5KToKICAgICAgICAg
ICAgICAgIChXZWJLaXQpOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxNyArKwogU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0Jl
cnJ5LmNtYWtlICAgICAgICAgICAgfCAgICAxICsKIC4uLi9ibGFja2JlcnJ5L3BvcHVwQ29udHJv
bEJsYWNrQmVycnkuY3NzICAgICAgICAgIHwgICA2NiArKysrKysrCiBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKysKIFNvdXJjZS9XZWJL
aXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlICAgICAgICAgICAgIHwgICAgMSArCiBTb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2VDbGllbnQuaCAgICAgICB8ICAgIDEgLQogU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgfCAgIDM1ICsr
KysKIC4uLi9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5jcHAgICAgICAgICAgIHwg
IDE4MSArKysrKysrKysrKysrKysrKysrKwogLi4uL2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
U2VsZWN0UG9wdXBDbGllbnQuaCAgfCAgIDYyICsrKysrKysKIC4uLi9ibGFja2JlcnJ5L1dlYktp
dFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcCAgICAgIHwgICA3MyArKysrKy0tLS0KIC4uLi9XZWJL
aXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5oIHwgICAgMyArCiAuLi4v
V2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9XZWJQb3B1cFR5cGUuaCB8ICAgMzUgKysr
KwogMTIgZmlsZXMgY2hhbmdlZCwgNDU0IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQog
Y3JlYXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9ibGFja2JlcnJ5L3Bv
cHVwQ29udHJvbEJsYWNrQmVycnkuY3NzCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcAogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxl
Y3RQb3B1cENsaWVudC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYktpdFN1cHBvcnQvV2ViUG9wdXBUeXBlLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUzZGI1OC4u
NTMzMmJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA1LTI0ICBDcnlzdGFs
IFpoYW5nICA8aGFpemhhbmdAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gSW1wbGVt
ZW50IHNlbGVjdCBwb3B1cCBhbmQgcmVtb3ZlIG9sZCBob29rIHRvIGFpciBwb3B1cAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc0MTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IGZpbGVzIHRv
IG1ha2UgZmlsZSwgYWRkIGNzcyBmaWxlIGZvciBzZWxlY3QgcG9wdXAuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisgICAgICAgICogUmVzb3VyY2VzL2JsYWNrYmVycnkv
cG9wdXBDb250cm9sQmxhY2tCZXJyeS5jc3M6IEFkZGVkLgorICAgICAgICAoaHRtbCk6CisgICAg
ICAgIChib2R5KToKKyAgICAgICAgKC5ib3R0b21idXR0b25PSyk6CisgICAgICAgICguYm90dG9t
YnV0dG9uQ2FuY2VsKToKKyAgICAgICAgKC50YWJsZWJ1dHRvbik6CisKIDIwMTItMDUtMjQgIEdy
ZWcgU3BlbmNlciAgPGdzcGVuY2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNSFRNTCBmaWxl
cyBzaG91bGQgYmUgbG9hZGFibGUgZnJvbSBhbGwgc2NoZW1lcyBjb25zaWRlcmVkIGxvY2FsLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCmluZGV4IDA2YTE2YzUuLmYyZDA4
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTEwNiw2ICsx
MDYsNyBAQCBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKIExJU1QoQVBQRU5EIFdlYkNvcmVf
VVNFUl9BR0VOVF9TVFlMRV9TSEVFVFMKICAgICAke1dFQkNPUkVfRElSfS9jc3MvbWVkaWFDb250
cm9sc0JsYWNrQmVycnkuY3NzCiAgICAgJHtXRUJDT1JFX0RJUn0vY3NzL3RoZW1lQmxhY2tCZXJy
eS5jc3MKKyAgICAke1dFQkNPUkVfRElSfS9SZXNvdXJjZXMvYmxhY2tiZXJyeS9wb3B1cENvbnRy
b2xCbGFja0JlcnJ5LmNzcwogKQogCiBMSVNUKEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNU
T1JJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Jlc291cmNlcy9ibGFja2JlcnJ5L3Bv
cHVwQ29udHJvbEJsYWNrQmVycnkuY3NzIGIvU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzL2JsYWNr
YmVycnkvcG9wdXBDb250cm9sQmxhY2tCZXJyeS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNTYwZGU1MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Jl
c291cmNlcy9ibGFja2JlcnJ5L3BvcHVwQ29udHJvbEJsYWNrQmVycnkuY3NzCkBAIC0wLDAgKzEs
NjYgQEAKK2h0bWwgeworICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICBsZWZ0OiAwOworICAgIHRv
cDogMDsKKyAgICBib3R0b206IDA7CisgICAgcmlnaHQ6IDA7CisgICAgb3ZlcmZsb3c6IGhpZGRl
bjsKK30KKworYm9keSB7CisgICAgcGFkZGluZzogMDsKKyAgICBtYXJnaW46IDA7CisgICAgZm9u
dC1mYW1pbHk6ICJNeXJpYWQgUHJvIiwgIkFyaWFsIiwgIkhlbHZldGljYSIsIHNhbnMtc2VyaWY7
Cit9CisKKy5ib3R0b21idXR0b25PSyB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRp
Y2EsIHNhbnMtc2VyaWY7CisgICAgZm9udC1zaXplOiAxNHB4OworICAgIGZvbnQtc3R5bGU6IG9i
bGlxdWU7CisgICAgY29sb3I6IHJnYmEoMTYsIDE2LCAxNiwgMC42KTsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2JhKDYsIDYsIDYsIDAuNik7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAg
IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgaGVpZ2h0
OiAzMHB4OworICAgIHdpZHRoOiA3MHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7Cisg
ICAgcG9zaXRpb246IGZpeGVkOworICAgIGJvdHRvbTogYXV0bzsKK30KKworLmJvdHRvbWJ1dHRv
bkNhbmNlbCB7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7
CisgICAgZm9udC1zaXplOiAxNHB4OworICAgIGZvbnQtc3R5bGU6IG9ibGlxdWU7CisgICAgY29s
b3I6IHJnYmEoMTYsIDE2LCAxNiwgMC42KTsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDYs
IDYsIDYsIDAuNik7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIHZlcnRpY2FsLWFsaWdu
OiBtaWRkbGU7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgaGVpZ2h0OiAzMHB4OworICAgIHdp
ZHRoOiA3MHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMDA7CisgICAgcG9zaXRpb246IGZp
eGVkOworICAgIGJvdHRvbTogYXV0bzsKKyAgICBsZWZ0OiA4MHB4OworfQorCisudGFibGVidXR0
b24geworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOworICAg
IGZvbnQtc2l6ZTogMTZweDsKKyAgICBmb250LXdlaWdodDogYm9sZDsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiAjRTJFNEUzOworICAgIGhlaWdodDogMTAwJTsKKyAgICB3aWR0aDogMTAwJTsKKyAg
ICBib3JkZXItdG9wLXN0eWxlOiBub25lOworICAgIGJvcmRlci1yaWdodC1zdHlsZTogbm9uZTsK
KyAgICBib3JkZXItbGVmdC1zdHlsZTogbm9uZTsKKyAgICBib3JkZXItYm90dG9tLXN0eWxlOiBu
b25lOworICAgIG1hcmdpbjogMCBhdXRvOworICAgIHBvc2l0aW9uOnJlbGF0aXZlOworICAgIHRv
cDowJTsKKyAgICBsZWZ0OjAlOworICAgIGJvdHRvbTowJTsKKyAgICByaWdodDowJTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNDAwYzYyMy4uNTZjNzlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAx
Mi0wNS0yNCAgQ3J5c3RhbCBaaGFuZyAgPGhhaXpoYW5nQHJpbS5jb20+CisKKyAgICAgICAgW0Js
YWNrQmVycnldIEltcGxlbWVudCBzZWxlY3QgcG9wdXAgYW5kIHJlbW92ZSBvbGQgaG9vayB0byBh
aXIgcG9wdXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg3NDE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIG5ldyBmaWxlcyB0byBtYWtlIGZpbGUuCisKKyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVy
cnkuY21ha2U6CisKIDIwMTItMDUtMjQgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vjb0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQsIHVuYnJlYWsgYG1ha2UgaW5z
dGFsbCcgYWZ0ZXIgcjExNzA0Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1C
bGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UK
aW5kZXggYWUyODdkZi4uZWY5MzUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnku
Y21ha2UKQEAgLTc2LDYgKzc2LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBi
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L05vdGlmaWNhdGlvblByZXNlbnRlckltcGwuY3BwCiAg
ICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9WaWJyYXRpb25DbGllbnRCbGFja0JlcnJ5LmNw
cAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvUGFnZVBvcHVwQmxhY2tCZXJyeS5jcHAK
KyAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1NlbGVjdFBvcHVwQ2xpZW50LmNwcAogICAg
IGJsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9CYWNraW5nU3RvcmVDb21wb3NpdGluZ1N1cmZhY2Uu
Y3BwCiAgICAgYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZVRpbGUuY3BwCiAg
ICAgYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L0JhY2tpbmdTdG9yZUNsaWVudC5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50LmgKaW5kZXggMmFlOTczZi4u
NGMxMDIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlQ2xpZW50
LmgKQEAgLTE2Miw3ICsxNjIsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRC
YWNrRm9yd2FyZExpc3QodW5zaWduZWQgbGlzdFNpemUsIHVuc2lnbmVkIGN1cnJlbnRJbmRleCkg
PSAwOwogCi0gICAgdmlydHVhbCB2b2lkIG9wZW5Qb3B1cExpc3QoYm9vbCBtdWx0aXBsZSwgaW50
IHNpemUsIGNvbnN0IFNjb3BlQXJyYXk8V2ViU3RyaW5nPiYgbGFiZWxzLCBib29sKiBlbmFibGVk
cywgY29uc3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9wZW5EYXRlVGltZVBvcHVwKGludCB0eXBlLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVl
LCBjb25zdCBXZWJTdHJpbmcmIG1pbiwgY29uc3QgV2ViU3RyaW5nJiBtYXgsIGRvdWJsZSBzdGVw
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5Db2xvclBvcHVwKGNvbnN0IFdlYlN0cmluZyYg
dmFsdWUpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggYjdlNmEzMi4u
YzA4OTNhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAK
KzIwMTItMDUtMjQgIENyeXN0YWwgWmhhbmcgIDxoYWl6aGFuZ0ByaW0uY29tPgorCisgICAgICAg
IFtCbGFja0JlcnJ5XSBJbXBsZW1lbnQgc2VsZWN0IHBvcHVwIGFuZCByZW1vdmUgb2xkIGhvb2sg
dG8gYWlyIHBvcHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NzQxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEludHJvZHVjZSBuZXcgaHRtbCBzZWxlY3QgcG9wdXAgY2xpZW50LCByZW1vdmUgdGhlIG9s
ZCBob29rIHRvIGFpciBwb3B1cC4KKworICAgICAgICAqIEFwaS9XZWJQYWdlQ2xpZW50Lmg6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6OlNl
bGVjdFBvcHVwQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50Ojp+
U2VsZWN0UG9wdXBDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0UG9wdXBDbGllbnQ6
OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVudDo6Z2VuZXJhdGVI
VE1MKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50OjpjbG9zZVBvcHVwKToK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50Ojpjb250ZW50U2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVudDo6aHRtbFNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVudDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50OjpkaWRDbG9zZVBvcHVwKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlbGVjdFBvcHVwQ2xpZW50Ojp3cml0ZURvY3VtZW50KToKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNlbGVjdFBvcHVwQ2xpZW50KToKKyAg
ICAgICAgKiBXZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5jcHA6CisgICAgICAgIChCbGFja0Jl
cnJ5OjpXZWJLaXQ6OklucHV0SGFuZGxlcjo6b3BlblNlbGVjdFBvcHVwKToKKyAgICAgICAgKiBX
ZWJLaXRTdXBwb3J0L0lucHV0SGFuZGxlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChJbnB1dEhhbmRsZXIpOgorICAgICAgICAqIFdlYktpdFN1cHBvcnQvV2ViUG9wdXBUeXBlLmg6
IEFkZGVkLgorICAgICAgICAoQmxhY2tCZXJyeSk6CisgICAgICAgIChXZWJLaXQpOgorCiAyMDEy
LTA1LTI0ICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CiAKICAgICAgICAgUG9zc2li
bGUgbWlzc2luZyBsYXlvdXQgaW4gSXJpcyBicm93c2VyIGFmdGVyIGhpZGluZyBWS0IKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1
cENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2Vs
ZWN0UG9wdXBDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjky
ZjY1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuY3BwCkBAIC0wLDAgKzEsMTgxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUK
KyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKwor
I2luY2x1ZGUgIlNlbGVjdFBvcHVwQ2xpZW50LmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNp
bmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkRvY3VtZW50V3JpdGVyLmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQ
YWdlUG9wdXAuaCIKKyNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJVc2VyQWdl
bnRTdHlsZVNoZWV0cy5oIgorI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgorCisjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQnVpbGRlci5oPgorCisjZGVmaW5lIENFTExfSEVJR0hUIDMwCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworU2VsZWN0UG9wdXBDbGllbnQ6OlNlbGVjdFBvcHVwQ2xpZW50KGJv
b2wgbXVsdGlwbGUsIGludCBzaXplLCBjb25zdCBTY29wZUFycmF5PEJsYWNrQmVycnk6OldlYktp
dDo6V2ViU3RyaW5nPiYgbGFiZWxzLCBib29sKiBlbmFibGVkcywKKyAgICBjb25zdCBpbnQqIGl0
ZW1UeXBlLCBib29sKiBzZWxlY3RlZHMsIEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZh
dGUqIHdlYlBhZ2UsIEhUTUxTZWxlY3RFbGVtZW50KiBlbGVtZW50KQorICAgIDogbV9tdWx0aXBs
ZShtdWx0aXBsZSkKKyAgICAsIG1fc2l6ZShzaXplKQorICAgICwgbV93ZWJQYWdlKHdlYlBhZ2Up
CisgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkKK3sKKyAgICBnZW5lcmF0ZUhUTUwobXVsdGlwbGUs
IHNpemUsIGxhYmVscywgZW5hYmxlZHMsIGl0ZW1UeXBlLCBzZWxlY3RlZHMpOworfQorCitTZWxl
Y3RQb3B1cENsaWVudDo6flNlbGVjdFBvcHVwQ2xpZW50KCkKK3sKK30KKwordm9pZCBTZWxlY3RQ
b3B1cENsaWVudDo6dXBkYXRlKGJvb2wgbXVsdGlwbGUsIGludCBzaXplLCBjb25zdCBTY29wZUFy
cmF5PEJsYWNrQmVycnk6OldlYktpdDo6V2ViU3RyaW5nPiYgbGFiZWxzLCBib29sKiBlbmFibGVk
cywKKyAgICBjb25zdCBpbnQqIGl0ZW1UeXBlLCBib29sKiBzZWxlY3RlZHMsIEJsYWNrQmVycnk6
OldlYktpdDo6V2ViUGFnZVByaXZhdGUqLCBIVE1MU2VsZWN0RWxlbWVudCogZWxlbWVudCkKK3sK
KyAgICBtX211bHRpcGxlID0gbXVsdGlwbGU7CisgICAgbV9zaXplID0gc2l6ZTsKKyAgICBtX2Vs
ZW1lbnQgPSBlbGVtZW50OworICAgIGdlbmVyYXRlSFRNTChtdWx0aXBsZSwgc2l6ZSwgbGFiZWxz
LCBlbmFibGVkcywgaXRlbVR5cGUsIHNlbGVjdGVkcyk7Cit9CisKK3ZvaWQgU2VsZWN0UG9wdXBD
bGllbnQ6OmdlbmVyYXRlSFRNTChib29sIG11bHRpcGxlLCBpbnQgc2l6ZSwgY29uc3QgU2NvcGVB
cnJheTxCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlN0cmluZz4mIGxhYmVscywgYm9vbCogZW5hYmxl
ZHMsCisgICAgY29uc3QgaW50KiBpdGVtVHlwZSwgYm9vbCogc2VsZWN0ZWRzKQoreworICAgIFN0
cmluZ0J1aWxkZXIgc291cmNlOworICAgIFN0cmluZyBmdWxsUGF0aChSRVNPVVJDRV9QQVRIKTsK
KyAgICBTdHJpbmcgc2luZ2xlU2VsZWN0SW1hZ2UoInNpbmdsZVNlbGVjdC5wbmciKTsKKyAgICBT
dHJpbmcgbXVsdGlTZWxlY3RJbWFnZSgibXVsdGlTZWxlY3QucG5nIik7CisgICAgc291cmNlLmFw
cGVuZCgiPGhlYWQ+PHN0eWxlPlxuIik7CisgICAgLy8gSW5jbHVkZSBDU1MgZmlsZS4KKyAgICBz
b3VyY2UuYXBwZW5kKHBvcHVwQ29udHJvbEJsYWNrQmVycnlVc2VyQWdlbnRTdHlsZVNoZWV0LAor
ICAgICAgICAgICAgc2l6ZW9mKHBvcHVwQ29udHJvbEJsYWNrQmVycnlVc2VyQWdlbnRTdHlsZVNo
ZWV0KSk7CisgICAgc291cmNlLmFwcGVuZCgiPC9zdHlsZT48L2hlYWQ+PGJvZHk+XG4iKTsKKyAg
ICBzb3VyY2UuYXBwZW5kKCI8c2NyaXB0PlxuIik7CisgICAgc291cmNlLmFwcGVuZCgidmFyIG9w
dGlvbnM9bmV3IEFycmF5KCIgKyBTdHJpbmc6Om51bWJlcihzaXplKSArICIpOyIpOworICAgIHNv
dXJjZS5hcHBlbmQoImZvciAodmFyIGkgPSAwOyBpIDwgIiArIFN0cmluZzo6bnVtYmVyKHNpemUp
ICsgIjsgaSsrICkiKTsKKyAgICBzb3VyY2UuYXBwZW5kKCJ7IG9wdGlvbnNbaV0gPSBmYWxzZSA7
Iik7CisgICAgc291cmNlLmFwcGVuZCgidmFyIGltYWdlaWQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChcImltYWdlXCIgKyBwYXJzZUludChpKSk7IGltYWdlaWQuc3R5bGUudmlzaWJpbGl0eSA9
IGZhbHNlOyB9Iik7CisgICAgc291cmNlLmFwcGVuZCgiZnVuY3Rpb24gT2soKSB7IHZhciBzZWxl
Y3RlZHMgPSBcIlwiOyIpOworICAgIHNvdXJjZS5hcHBlbmQoImZvciAodmFyIGkgPSAwOyBpIDwg
IiArIFN0cmluZzo6bnVtYmVyKHNpemUpICsgIjsgaSsrICkiKTsKKyAgICBzb3VyY2UuYXBwZW5k
KCJ7ICBpZiAob3B0aW9uc1tpXSkgc2VsZWN0ZWRzICs9ICcxJzsgZWxzZSBzZWxlY3RlZHMgKz0g
JzAnO30iKTsKKyAgICBzb3VyY2UuYXBwZW5kKCJ3aW5kb3cuc2V0VmFsdWVBbmRDbG9zZVBvcHVw
KHNlbGVjdGVkcywgd2luZG93LnBvcFVwKTsgd2luZG93LmNsb3NlKCk7fSIpOworICAgIHNvdXJj
ZS5hcHBlbmQoImZ1bmN0aW9uIENhbmNlbCgpIHsgdmFyIHNlbGVjdGVkcyA9IFwiXCI7Iik7Cisg
ICAgc291cmNlLmFwcGVuZCgiZm9yICh2YXIgaSA9IDA7IGkgPCAiICsgU3RyaW5nOjpudW1iZXIo
c2l6ZSkgKyAiOyBpKysgKSIpOworICAgIHNvdXJjZS5hcHBlbmQoInNlbGVjdGVkcyArPSAnMCc7
Iik7CisgICAgc291cmNlLmFwcGVuZCgid2luZG93LnNldFZhbHVlQW5kQ2xvc2VQb3B1cChzZWxl
Y3RlZHMsIHdpbmRvdy5wb3BVcCk7IHdpbmRvdy5jbG9zZSgpO30iKTsKKyAgICBpZiAobV9tdWx0
aXBsZSkKKyAgICAgICAgc291cmNlLmFwcGVuZCgiZnVuY3Rpb24gU2VsZWN0KGkpIHsgb3B0aW9u
c1tpXSA9ICFvcHRpb25zW2ldOyB2YXIgaW1hZ2VpZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KFwiaW1hZ2VcIiArIHBhcnNlSW50KGkpKTsgaW1hZ2VpZC5zdHlsZS52aXNpYmlsaXR5ID0gb3B0
aW9uc1tpXTsgfSIpOworICAgIGVsc2UgeworICAgICAgICBzb3VyY2UuYXBwZW5kKCJmdW5jdGlv
biBTZWxlY3QoaSkgeyBmb3IgKHZhciBqID0gMDsgaiA8ICIgKyBTdHJpbmc6Om51bWJlcihzaXpl
KSArICI7IGorKyApIik7CisgICAgICAgIHNvdXJjZS5hcHBlbmQoInsgb3B0aW9uc1tqXSA9IGZh
bHNlOyAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZCgidmFyIGltYWdlaWQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZChcImltYWdlXCIgKyBwYXJzZUludChqKSk7IGltYWdlaWQuc3R5bGUudmlz
aWJpbGl0eSA9IGZhbHNlOyB9Iik7CisgICAgICAgIHNvdXJjZS5hcHBlbmQoIm9wdGlvbnNbaV0g
PSB0cnVlOyAiKTsKKyAgICAgICAgc291cmNlLmFwcGVuZCgidmFyIGltYWdlaWQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZChcImltYWdlXCIgKyBwYXJzZUludChpKSk7IGltYWdlaWQuc3R5bGUu
dmlzaWJpbGl0eSA9IHRydWU7IH0iKTsKKyAgICB9CisgICAgc291cmNlLmFwcGVuZCgiPC9zY3Jp
cHQ+XG4iKTsKKworICAgIGludCB0YWJsZVdpZHRoID0gY29udGVudFNpemUoKS53aWR0aCgpOwor
ICAgIGludCB0YWJsZUhlaWdodCA9IENFTExfSEVJR0hUICogc2l6ZTsKKyAgICBzb3VyY2UuYXBw
ZW5kKCI8dGFibGUgd2lkdGg9XCIiICsgU3RyaW5nOjpudW1iZXIodGFibGVXaWR0aCkgKyAiXCIg
aGVpZ2h0PVwiIiArIFN0cmluZzo6bnVtYmVyKHRhYmxlSGVpZ2h0KQorICAgICAgICArICJcIiBi
b3JkZXI9XCIwXCIgZnJhbWU9XCJ2b2lkXCIgcnVsZXM9XCJyb3dzXCI+ICIpOworICAgIGZvciAo
aW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgIHNvdXJjZS5hcHBlbmQoIiA8dHI+
IDx0ZCBiZ2NvbG9yPVwiI0UyRTRFM1wiIHdpZHRoPVwiODAlXCI+PGlucHV0IGNsYXNzPVwidGFi
bGVidXR0b25cIiBpZD1cImJ1dHRvbiIgKyBTdHJpbmc6Om51bWJlcihpKQorICAgICAgICAgICAg
KyAiXCIgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiIiArIFN0cmluZyhsYWJlbHNbaV0uaW1wbCgp
KSArICJcIiBvbmNsaWNrPVwiU2VsZWN0KCIgKyBTdHJpbmc6Om51bWJlcihpKSArICIpO1wiIC8+
Iik7CisgICAgICAgIHNvdXJjZS5hcHBlbmQoIjwvdGQ+Iik7CisgICAgICAgIHNvdXJjZS5hcHBl
bmQoIjx0ZCBiZ2NvbG9yPVwiI0UyRTRFM1wiIHdpZHRoPVwiMjAlXCI+PGlucHV0IHR5cGU9XCJp
bWFnZVwiIGlkPVwiaW1hZ2UiICsgU3RyaW5nOjpudW1iZXIoaSkgKyAiXCIgc3JjPVwiICIgKyBm
dWxsUGF0aAorICAgICAgICAgICAgKyBzaW5nbGVTZWxlY3RJbWFnZSArICIgXCIgLz48L3RkPiA8
L3RyPiIpOworICAgIH0KKyAgICBzb3VyY2UuYXBwZW5kKCI8L3RhYmxlPiIpOworICAgIHNvdXJj
ZS5hcHBlbmQoIjx0YWJsZSBib3JkZXI9XCIwXCIgY2VsbHBhZGRpbmc9XCIwXCIgY2VsbHNwYWNp
bmc9XCIwXCI+IDx0cj4gPHRkPiIpOworICAgIHNvdXJjZS5hcHBlbmQoIjxpbnB1dCBjbGFzcz1c
ImJvdHRvbWJ1dHRvbk9LXCIgbmFtZT1cImJ0bk9rXCIgdHlwZT1cImJ1dHRvblwiIHZhbHVlPVwi
T2tcIiAiKTsKKyAgICBzb3VyY2UuYXBwZW5kKCJvbmNsaWNrPVwiT2soKTtcIiAvPjwvdGQ+IDx0
ZCBub3dyYXA9XCJub3dyYXBcIj4gPGlucHV0IGNsYXNzPVwiYm90dG9tYnV0dG9uQ2FuY2VsXCIg
dHlwZT1cImJ1dHRvblwiIHZhbHVlPVwiQ2FuY2VsXCIgb25jbGljaz1cIkNhbmNlbCgpO1wiIC8+
Iik7CisgICAgc291cmNlLmFwcGVuZCgiPC90ZD4gPC90cj48L3RhYmxlPiIpOworICAgIHNvdXJj
ZS5hcHBlbmQoIjwvYm9keT5cbiIpOworICAgIG1fc291cmNlID0gc291cmNlLnRvU3RyaW5nKCk7
Cit9CisKK3ZvaWQgU2VsZWN0UG9wdXBDbGllbnQ6OmNsb3NlUG9wdXAoKQoreworICAgIEFTU0VS
VChtX3dlYlBhZ2UpOworICAgIG1fd2ViUGFnZS0+bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCkt
PmNsb3NlUGFnZVBvcHVwKDApOworfQorCitJbnRTaXplIFNlbGVjdFBvcHVwQ2xpZW50Ojpjb250
ZW50U2l6ZSgpCit7CisgICAgLy8gRml4bWU6IHdpbGwgZ2VuZXJhdGUgY29udGVudCBzaXplIGR5
bmFtaWNhbGx5CisgICAgcmV0dXJuIEludFNpemUoMzIwLCAyNTYpOworfQorCitTdHJpbmcgU2Vs
ZWN0UG9wdXBDbGllbnQ6Omh0bWxTb3VyY2UoKQoreworICAgIHJldHVybiBtX3NvdXJjZTsKK30K
Kwordm9pZCBTZWxlY3RQb3B1cENsaWVudDo6c2V0VmFsdWVBbmRDbG9zZVBvcHVwKGludCwgY29u
c3QgU3RyaW5nJiBzdHJpbmdWYWx1ZSkKK3sKKworICAgIEFTU0VSVChtX3NpemUgPT0gc3RyaW5n
VmFsdWUubGVuZ3RoKCkpOworCisgICAgaWYgKG1fc2l6ZSA+IDApIHsKKyAgICAgICAgYm9vbCBz
ZWxlY3RlZHNbbV9zaXplXTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fc2l6
ZTsgaSsrKQorICAgICAgICAgICAgc2VsZWN0ZWRzW2ldID0gc3RyaW5nVmFsdWVbaV0gLSAzMjsK
KworICAgICAgICBjb25zdCBXVEY6OlZlY3RvcjxIVE1MRWxlbWVudCo+JiBpdGVtcyA9IG1fZWxl
bWVudC0+bGlzdEl0ZW1zKCk7CisKKyAgICAgICAgaWYgKGl0ZW1zLnNpemUoKSAhPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZCBpbnQ+KG1fc2l6ZSkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbjsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoaXRlbXNbaV0tPmhhc1RhZ05h
bWUoSFRNTE5hbWVzOjpvcHRpb25UYWcpKSB7CisgICAgICAgICAgICAgICAgb3B0aW9uID0gc3Rh
dGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihpdGVtc1tpXSk7CisgICAgICAgICAgICAgICAg
b3B0aW9uLT5zZXRTZWxlY3RlZFN0YXRlKHNlbGVjdGVkc1tpXSk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICB9CisgICAgLy8gRm9yY2UgcmVwYWludCBiZWNhdXNlIHdlIGRvIG5vdCBz
ZW5kIG1vdXNlIGV2ZW50cyB0byB0aGUgc2VsZWN0IGVsZW1lbnQKKyAgICAvLyBhbmQgdGhlIGVs
ZW1lbnQgZG9lc24ndCBhdXRvbWF0aWNhbGx5IHJlcGFpbnQgaXRzZWxmLgorICAgIG1fZWxlbWVu
dC0+ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CisgICAgbV9lbGVtZW50LT5yZW5k
ZXJlcigpLT5yZXBhaW50KCk7CisgICAgY2xvc2VQb3B1cCgpOworfQorCit2b2lkIFNlbGVjdFBv
cHVwQ2xpZW50OjpkaWRDbG9zZVBvcHVwKCkKK3sKKyAgICBtX3dlYlBhZ2UgPSAwOworICAgIG1f
ZWxlbWVudCA9IDA7Cit9CisKK3ZvaWQgU2VsZWN0UG9wdXBDbGllbnQ6OndyaXRlRG9jdW1lbnQo
RG9jdW1lbnRXcml0ZXImIHdyaXRlcikKK3sKKyAgICB3cml0ZXIuc2V0TUlNRVR5cGUoInRleHQv
aHRtbCIpOworICAgIHdyaXRlci5iZWdpbihLVVJMKCkpOworICAgIHdyaXRlci5hZGREYXRhKG1f
c291cmNlLnV0ZjgoKS5kYXRhKCksIG1fc291cmNlLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgd3Jp
dGVyLmVuZCgpOworfQorfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
V2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9TZWxlY3RQb3B1cENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmZjMmY0NDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvU2VsZWN0UG9wdXBDbGllbnQuaApAQCAtMCww
ICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBM
aW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5k
ZWYgU2VsZWN0UG9wdXBDbGllbnRfaAorI2RlZmluZSBTZWxlY3RQb3B1cENsaWVudF9oCisKKyNp
bmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSAiUGFnZVBvcHVwQ2xpZW50LmgiCisjaW5jbHVk
ZSAiU2NvcGVQb2ludGVyLmgiCisjaW5jbHVkZSAiV1RGU3RyaW5nLmgiCisjaW5jbHVkZSAiV2Vi
U3RyaW5nLmgiCisKK25hbWVzcGFjZSBCbGFja0JlcnJ5IHsKK25hbWVzcGFjZSBXZWJLaXQgewor
Y2xhc3MgV2ViUGFnZVByaXZhdGU7Cit9Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNz
IERvY3VtZW50V3JpdGVyOworY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7CitjbGFzcyBQYWdlUG9w
dXA7CisKK2NsYXNzIFNlbGVjdFBvcHVwQ2xpZW50IDogcHVibGljIFBhZ2VQb3B1cENsaWVudCB7
CitwdWJsaWM6CisgICAgU2VsZWN0UG9wdXBDbGllbnQoYm9vbCBtdWx0aXBsZSwgaW50IHNpemUs
IGNvbnN0IFNjb3BlQXJyYXk8QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmc+JiBsYWJlbHMs
IGJvb2wqIGVuYWJsZWRzLCBjb25zdCBpbnQqIGl0ZW1UeXBlLCBib29sKiBzZWxlY3RlZHMsIEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqLCBIVE1MU2VsZWN0RWxlbWVudCopOwor
ICAgIH5TZWxlY3RQb3B1cENsaWVudCgpOworCisgICAgdm9pZCB1cGRhdGUoYm9vbCBtdWx0aXBs
ZSwgaW50IHNpemUsIGNvbnN0IFNjb3BlQXJyYXk8QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJp
bmc+JiBsYWJlbHMsIGJvb2wqIGVuYWJsZWRzLCBjb25zdCBpbnQqIGl0ZW1UeXBlLCBib29sKiBz
ZWxlY3RlZHMsIEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqLCBIVE1MU2VsZWN0
RWxlbWVudCopOworCisgICAgdm9pZCBnZW5lcmF0ZUhUTUwoYm9vbCBtdWx0aXBsZSwgaW50IHNp
emUsIGNvbnN0IFNjb3BlQXJyYXk8QmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJTdHJpbmc+JiBsYWJl
bHMsIGJvb2wqIGVuYWJsZWRzLCBjb25zdCBpbnQqIGl0ZW1UeXBlLCBib29sKiBzZWxlY3RlZHMp
OworCisgICAgdm9pZCB3cml0ZURvY3VtZW50KERvY3VtZW50V3JpdGVyJik7CisgICAgdmlydHVh
bCBJbnRTaXplIGNvbnRlbnRTaXplKCk7CisgICAgdmlydHVhbCBTdHJpbmcgaHRtbFNvdXJjZSgp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUFuZENsb3NlUG9wdXAoaW50LCBjb25zdCBTdHJp
bmcmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xvc2VQb3B1cCgpOworICAgIHZvaWQgY2xvc2VQ
b3B1cCgpOworCisgICAgYm9vbCBtX211bHRpcGxlOworICAgIHVuc2lnbmVkIG1fc2l6ZTsKKyAg
ICBTdHJpbmcgbV9zb3VyY2U7CisgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0
ZSogbV93ZWJQYWdlOworICAgIEhUTUxTZWxlY3RFbGVtZW50KiBtX2VsZW1lbnQ7Cit9OworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRIYW5kbGVyLmNwcAppbmRleCBlOGMyNGJjLi5h
ZjJkYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9y
dC9JbnB1dEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRT
dXBwb3J0L0lucHV0SGFuZGxlci5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJSZW5k
ZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlcldpZGdldC5oIgogI2luY2x1ZGUgIlNj
b3BlUG9pbnRlci5oIgorI2luY2x1ZGUgIlNlbGVjdFBvcHVwQ2xpZW50LmgiCiAjaW5jbHVkZSAi
U2VsZWN0aW9uSGFuZGxlci5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUg
IldlYlBhZ2VDbGllbnQuaCIKQEAgLTExMjIsNTEgKzExMjMsNjEgQEAgYm9vbCBJbnB1dEhhbmRs
ZXI6Om9wZW5TZWxlY3RQb3B1cChIVE1MU2VsZWN0RWxlbWVudCogc2VsZWN0KQogICAgIGlmICgh
c2VsZWN0IHx8IHNlbGVjdC0+ZGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgLy8gSWYgdGhlcmUncyBubyB2aWV3LCBkbyBub3RoaW5nIGFuZCByZXR1cm4uCisgICAgaWYg
KCFzZWxlY3QtPmRvY3VtZW50KCktPnZpZXcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAg
ICAgaWYgKGlzQWN0aXZlVGV4dEVkaXQoKSkKICAgICAgICAgY2xlYXJDdXJyZW50Rm9jdXNFbGVt
ZW50KCk7CiAKICAgICBtX2N1cnJlbnRGb2N1c0VsZW1lbnQgPSBzZWxlY3Q7CiAgICAgbV9jdXJy
ZW50Rm9jdXNFbGVtZW50VHlwZSA9IFNlbGVjdFBvcHVwOworCiAgICAgY29uc3QgV1RGOjpWZWN0
b3I8SFRNTEVsZW1lbnQqPiYgbGlzdEl0ZW1zID0gc2VsZWN0LT5saXN0SXRlbXMoKTsKICAgICBp
bnQgc2l6ZSA9IGxpc3RJdGVtcy5zaXplKCk7Ci0gICAgaWYgKCFzaXplKSB7Ci0gICAgICAgIFNj
b3BlQXJyYXk8V2ViU3RyaW5nPiBsYWJlbHM7Ci0gICAgICAgIGJvb2wqIGVuYWJsZWRzID0gMDsK
LSAgICAgICAgaW50KiBpdGVtVHlwZXMgPSAwOwotICAgICAgICBib29sKiBzZWxlY3RlZHMgPSAw
OwotICAgICAgICBtX3dlYlBhZ2UtPm1fY2xpZW50LT5vcGVuUG9wdXBMaXN0KGZhbHNlLCBzaXpl
LCBsYWJlbHMsIGVuYWJsZWRzLCBpdGVtVHlwZXMsIHNlbGVjdGVkcyk7Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KIAogICAgIGJvb2wgbXVsdGlwbGUgPSBzZWxlY3QtPm11bHRpcGxlKCk7
Ci0KICAgICBTY29wZUFycmF5PFdlYlN0cmluZz4gbGFiZWxzOwogICAgIGxhYmVscy5yZXNldChu
ZXcgV2ViU3RyaW5nW3NpemVdKTsKLSAgICBib29sKiBlbmFibGVkcyA9IG5ldyBib29sW3NpemVd
OwotICAgIGludCogaXRlbVR5cGVzID0gbmV3IGludFtzaXplXTsKLSAgICBib29sKiBzZWxlY3Rl
ZHMgPSBuZXcgYm9vbFtzaXplXTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsr
KSB7Ci0gICAgICAgIGlmIChsaXN0SXRlbXNbaV0tPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRp
b25UYWcpKSB7Ci0gICAgICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gc3RhdGlj
X2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihsaXN0SXRlbXNbaV0pOwotICAgICAgICAgICAgbGFi
ZWxzW2ldID0gb3B0aW9uLT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7Ci0gICAg
ICAgICAgICBlbmFibGVkc1tpXSA9IG9wdGlvbi0+ZGlzYWJsZWQoKSA/IDAgOiAxOwotICAgICAg
ICAgICAgc2VsZWN0ZWRzW2ldID0gb3B0aW9uLT5zZWxlY3RlZCgpOwotICAgICAgICAgICAgaXRl
bVR5cGVzW2ldID0gVHlwZU9wdGlvbjsKLSAgICAgICAgfSBlbHNlIGlmIChsaXN0SXRlbXNbaV0t
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpvcHRncm91cFRhZykpIHsKLSAgICAgICAgICAgIEhUTUxP
cHRHcm91cEVsZW1lbnQqIG9wdEdyb3VwID0gc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVu
dCo+KGxpc3RJdGVtc1tpXSk7Ci0gICAgICAgICAgICBsYWJlbHNbaV0gPSBvcHRHcm91cC0+Z3Jv
dXBMYWJlbFRleHQoKTsKLSAgICAgICAgICAgIGVuYWJsZWRzW2ldID0gb3B0R3JvdXAtPmRpc2Fi
bGVkKCkgPyAwIDogMTsKLSAgICAgICAgICAgIHNlbGVjdGVkc1tpXSA9IGZhbHNlOwotICAgICAg
ICAgICAgaXRlbVR5cGVzW2ldID0gVHlwZUdyb3VwOwotICAgICAgICB9IGVsc2UgaWYgKGxpc3RJ
dGVtc1tpXS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmhyVGFnKSkgewotICAgICAgICAgICAgZW5h
YmxlZHNbaV0gPSBmYWxzZTsKLSAgICAgICAgICAgIHNlbGVjdGVkc1tpXSA9IGZhbHNlOwotICAg
ICAgICAgICAgaXRlbVR5cGVzW2ldID0gVHlwZVNlcGFyYXRvcjsKKyAgICBpZiAoIXNpemUpIHsK
KyAgICAgICAgaWYgKCFtX3NlbGVjdENsaWVudCkKKyAgICAgICAgICAgIG1fc2VsZWN0Q2xpZW50
ID0gbmV3IFNlbGVjdFBvcHVwQ2xpZW50KG11bHRpcGxlLCBzaXplLCBsYWJlbHMsIDAsIDAsIDAs
IG1fd2ViUGFnZSwgc2VsZWN0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9zZWxlY3RD
bGllbnQtPnVwZGF0ZShtdWx0aXBsZSwgc2l6ZSwgbGFiZWxzLCBlbmFibGVkcywgaXRlbVR5cGVz
LCBzZWxlY3RlZHMsIG1fd2ViUGFnZSwgc2VsZWN0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBi
b29sKiBlbmFibGVkcyA9IG5ldyBib29sW3NpemVdOworICAgICAgICBpbnQqIGl0ZW1UeXBlcyA9
IG5ldyBpbnRbc2l6ZV07CisgICAgICAgIGJvb2wqIHNlbGVjdGVkcyA9IG5ldyBib29sW3NpemVd
OworCisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAg
ICBpZiAobGlzdEl0ZW1zW2ldLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0aW9uVGFnKSkgewor
ICAgICAgICAgICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSBzdGF0aWNfY2FzdDxI
VE1MT3B0aW9uRWxlbWVudCo+KGxpc3RJdGVtc1tpXSk7CisgICAgICAgICAgICAgICAgbGFiZWxz
W2ldID0gb3B0aW9uLT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7CisgICAgICAg
ICAgICAgICAgZW5hYmxlZHNbaV0gPSBvcHRpb24tPmRpc2FibGVkKCkgPyAwIDogMTsKKyAgICAg
ICAgICAgICAgICBzZWxlY3RlZHNbaV0gPSBvcHRpb24tPnNlbGVjdGVkKCk7CisgICAgICAgICAg
ICAgICAgaXRlbVR5cGVzW2ldID0gVHlwZU9wdGlvbjsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
bGlzdEl0ZW1zW2ldLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6b3B0Z3JvdXBUYWcpKSB7CisgICAg
ICAgICAgICAgICAgSFRNTE9wdEdyb3VwRWxlbWVudCogb3B0R3JvdXAgPSBzdGF0aWNfY2FzdDxI
VE1MT3B0R3JvdXBFbGVtZW50Kj4obGlzdEl0ZW1zW2ldKTsKKyAgICAgICAgICAgICAgICBsYWJl
bHNbaV0gPSBvcHRHcm91cC0+Z3JvdXBMYWJlbFRleHQoKTsKKyAgICAgICAgICAgICAgICBlbmFi
bGVkc1tpXSA9IG9wdEdyb3VwLT5kaXNhYmxlZCgpID8gMCA6IDE7CisgICAgICAgICAgICAgICAg
c2VsZWN0ZWRzW2ldID0gZmFsc2U7CisgICAgICAgICAgICAgICAgaXRlbVR5cGVzW2ldID0gVHlw
ZUdyb3VwOworICAgICAgICAgICAgfSBlbHNlIGlmIChsaXN0SXRlbXNbaV0tPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjpoclRhZykpIHsKKyAgICAgICAgICAgICAgICBlbmFibGVkc1tpXSA9IGZhbHNl
OworICAgICAgICAgICAgICAgIHNlbGVjdGVkc1tpXSA9IGZhbHNlOworICAgICAgICAgICAgICAg
IGl0ZW1UeXBlc1tpXSA9IFR5cGVTZXBhcmF0b3I7CisgICAgICAgICAgICB9CiAgICAgICAgIH0K
KworICAgICAgICBpZiAoIW1fc2VsZWN0Q2xpZW50KQorICAgICAgICAgICAgbV9zZWxlY3RDbGll
bnQgPSBuZXcgU2VsZWN0UG9wdXBDbGllbnQobXVsdGlwbGUsIHNpemUsIGxhYmVscywgZW5hYmxl
ZHMsIGl0ZW1UeXBlcywgc2VsZWN0ZWRzLCBtX3dlYlBhZ2UsIHNlbGVjdCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIG1fc2VsZWN0Q2xpZW50LT51cGRhdGUobXVsdGlwbGUsIHNpemUsIGxh
YmVscywgZW5hYmxlZHMsIGl0ZW1UeXBlcywgc2VsZWN0ZWRzLCBtX3dlYlBhZ2UsIHNlbGVjdCk7
CiAgICAgfQogCi0gICAgbV93ZWJQYWdlLT5tX2NsaWVudC0+b3BlblBvcHVwTGlzdChtdWx0aXBs
ZSwgc2l6ZSwgbGFiZWxzLCBlbmFibGVkcywgaXRlbVR5cGVzLCBzZWxlY3RlZHMpOworICAgIFdl
YkNvcmU6OkludFJlY3QgZWxlbWVudFJlY3RJblJvb3RWaWV3ID0gc2VsZWN0LT5kb2N1bWVudCgp
LT52aWV3KCktPmNvbnRlbnRzVG9Sb290VmlldyhzZWxlY3QtPmdldFJlY3QoKSk7CisgICAgbV93
ZWJQYWdlLT5tX3BhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+b3BlblBhZ2VQb3B1cChtX3NlbGVj
dENsaWVudCwgZWxlbWVudFJlY3RJblJvb3RWaWV3KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYktpdFN1cHBvcnQvSW5wdXRI
YW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhh
bmRsZXIuaAppbmRleCBjNjMzNDQ3Li4yNTZmOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9JbnB1dEhhbmRsZXIuaApAQCAtMzcsNiArMzcs
NyBAQCBjbGFzcyBIVE1MSW5wdXRFbGVtZW50OwogY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiBj
bGFzcyBJbnRSZWN0OwogY2xhc3MgTm9kZTsKK2NsYXNzIFNlbGVjdFBvcHVwQ2xpZW50OwogfQog
CiBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7CkBAIC0xOTIsNiArMTkzLDggQEAgcHJpdmF0ZToKIAog
ICAgIFBlbmRpbmdLZXlib2FyZFN0YXRlQ2hhbmdlIG1fcGVuZGluZ0tleWJvYXJkVmlzaWJpbGl0
eUNoYW5nZTsKICAgICBib29sIG1fZGVsYXlLZXlib2FyZFZpc2liaWxpdHlDaGFuZ2U7CisKKyAg
ICBXZWJDb3JlOjpTZWxlY3RQb3B1cENsaWVudCogbV9zZWxlY3RDbGllbnQ7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9XZWJQb3B1
cFR5cGUuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJLaXRTdXBwb3J0L1dlYlBvcHVw
VHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NzdlODcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViS2l0U3VwcG9ydC9XZWJQ
b3B1cFR5cGUuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpZm5kZWYgV2ViUG9wdXBUeXBlX2gKKyNkZWZpbmUgV2ViUG9wdXBUeXBl
X2gKKworbmFtZXNwYWNlIEJsYWNrQmVycnkgeworCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51
bSBXZWJQb3B1cFR5cGUgeworICAgIFdlYlBvcHVwVHlwZU5vbmUsIC8vIE5vdCBhIHBvcHVwLgor
ICAgIFdlYlBvcHVwVHlwZVNlbGVjdCwgLy8gU2VsZWN0IENvbnRyb2wKKyAgICBXZWJQb3B1cFR5
cGVEYXRlLCAvLyBEYXRlIGNvbnRyb2wKK307CisKK30KK30KKworI2VuZGlmIC8vIFdlYlBvcHVw
VHlwZV9oCi0tIAoxLjcuNC4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>