<?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>91324</bug_id>
          
          <creation_ts>2012-07-14 08:07:39 -0700</creation_ts>
          <short_desc>Add IntentsClient.h to Modules/intents</short_desc>
          <delta_ts>2013-12-12 03:17:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>79327</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cdumez</cc>
    
    <cc>gbillock</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>669832</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-14 08:07:39 -0700</bug_when>
    <thetext>Virtual functions related to web intent are defined in FrameLoaderClient.h. The virtual functions should be moved  to the Modules/intents in order to finish modulation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>675207</commentid>
    <comment_count>1</comment_count>
      <attachid>153660</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-21 01:18:43 -0700</bug_when>
    <thetext>Created attachment 153660
WIP - for efl port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678842</commentid>
    <comment_count>2</comment_count>
      <attachid>154535</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-25 21:36:23 -0700</bug_when>
    <thetext>Created attachment 154535
WIP - for EFL and WK2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959143</commentid>
    <comment_count>3</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-12-12 03:17:08 -0800</bug_when>
    <thetext>The Web Intents feature was removed from the code base, so this work isn&apos;t required for the time being.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153660</attachid>
            <date>2012-07-21 01:18:43 -0700</date>
            <delta_ts>2012-07-25 21:36:23 -0700</delta_ts>
            <desc>WIP - for efl port.</desc>
            <filename>intentclient.patch</filename>
            <type>text/plain</type>
            <size>25026</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYjkyMDZhMy4uYjhkNDIyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTI2NDQsNiArMjY0NCw3IEBAIElGIChFTkFCTEVfV0VCX0lOVEVOVFMpCiAgICAg
ICAgTW9kdWxlcy9pbnRlbnRzL0RlbGl2ZXJlZEludGVudC5jcHAKICAgICAgICBNb2R1bGVzL2lu
dGVudHMvRE9NV2luZG93SW50ZW50cy5jcHAKICAgICAgICBNb2R1bGVzL2ludGVudHMvSW50ZW50
LmNwcAorICAgICAgIE1vZHVsZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmNwcAogICAgICAg
IE1vZHVsZXMvaW50ZW50cy9JbnRlbnRSZXF1ZXN0LmNwcAogICAgICAgIE1vZHVsZXMvaW50ZW50
cy9OYXZpZ2F0b3JJbnRlbnRzLmNwcAogICAgICkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5M2MzNTk1Li42Mjhl
NjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTItMDctMjEgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBBZGQgSW50ZW50c0NsaWVu
dC5oIHRvIE1vZHVsZXMvaW50ZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTEzMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBWaXJ0dWFsIGZ1bmN0aW9ucyByZWxhdGVkIHRvIHdlYiBpbnRlbnQgYXJl
IGRlZmluZWQgaW4gRnJhbWVMb2FkZXJDbGllbnQuaC4KKyAgICAgICAgVGhlIHZpcnR1YWwgZnVu
Y3Rpb25zIHNob3VsZCBiZSBtb3ZlZCB0byB0aGUgTW9kdWxlcy9pbnRlbnRzIGluIG9yZGVyIHRv
IGZpbmlzaCBtb2R1bGF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0IGNhc2VzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogTW9kdWxlcy9pbnRlbnRzL0ludGVudENsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoSW50ZW50Q2xpZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2ludGVudHMv
SW50ZW50Q29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlbnRDb250cm9sbGVyOjpJbnRlbnRDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVudENvbnRyb2xsZXI6On5JbnRlbnRDb250cm9sbGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVudENvbnRyb2xsZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlbnRDb250cm9sbGVyOjpmcm9tKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVudENvbnRyb2xs
ZXI6OnN1cHBsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OnByb3ZpZGVJbnRlbnRUbyk6
CisgICAgICAgICogTW9kdWxlcy9pbnRlbnRzL0ludGVudENvbnRyb2xsZXIuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEludGVudENvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZW50Q29udHJvbGxlcjo6Y2xpZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2lu
dGVudHMvTmF2aWdhdG9ySW50ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JJ
bnRlbnRzOjpOYXZpZ2F0b3JJbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdmlnYXRvcklu
dGVudHM6OmZyb20pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpOYXZp
Z2F0b3JJbnRlbnRzOjp3ZWJraXRTdGFydEFjdGl2aXR5KToKKyAgICAgICAgKFdlYkNvcmU6Ok5h
dmlnYXRvckludGVudHM6OmNvbnRyb2xsZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9O
YXZpZ2F0b3JJbnRlbnRzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5hdmlnYXRv
ckludGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9ySW50ZW50czo6cGFnZSk6Cisg
ICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogbG9hZGVyL0VtcHR5
Q2xpZW50cy5oOgorICAgICAgICAoRW1wdHlGcmFtZUxvYWRlckNsaWVudCk6CisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0w
Ny0xNyAgR2Fib3IgQmFsbGFiYXMgIDxnYWJvcmJAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAg
IFtRdF1bVjhdIFJlbW92ZSB0aGUgVjggcmVsYXRlZCBjb2RlcGF0aHMgYW5kIGNvbmZpZ3VyYXRp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9JbnRlbnRDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9JbnRlbnRDbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDFmN2RjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL0ludGVudENsaWVudC5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgSW50ZW50Q2xpZW50X2gKKyNkZWZpbmUgSW50ZW50Q2xpZW50X2gK
KworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKworI2luY2x1ZGUgIkludGVudFJlcXVlc3QuaCIK
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBQYWdlOworCitjbGFzcyBJbnRlbnRDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPEludGVudFJlcXVlc3Q+KSA9IDA7Cit9
OworCit2b2lkIHByb3ZpZGVJbnRlbnRUbyhQYWdlKiwgSW50ZW50Q2xpZW50Kik7CisKK30KKwor
I2VuZGlmCisjZW5kaWYgLy8gSW50ZW50Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xZTYyZDIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbnRlbnRzL0ludGVudENvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW50ZW50Q29udHJvbGxl
ci5oIgorCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0ludGVudENvbnRyb2xsZXI6OkludGVudENvbnRyb2xsZXIoSW50ZW50Q2xpZW50KiBjbGllbnQp
CisgICAgOiBtX2NsaWVudChjbGllbnQpCit7Cit9CisKK0ludGVudENvbnRyb2xsZXI6On5JbnRl
bnRDb250cm9sbGVyKCkKK3sKK30KKworUGFzc093blB0cjxJbnRlbnRDb250cm9sbGVyPiBJbnRl
bnRDb250cm9sbGVyOjpjcmVhdGUoSW50ZW50Q2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBJbnRlbnRDb250cm9sbGVyKGNsaWVudCkpOworfQorCitJbnRlbnRDb250
cm9sbGVyKiBJbnRlbnRDb250cm9sbGVyOjpmcm9tKFBhZ2UqIHBhZ2UpCit7CisgICAgSW50ZW50
Q29udHJvbGxlciogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PEludGVudENvbnRyb2xsZXIqPihT
dXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsKKworICAgIEFT
U0VSVChzdXBwbGVtZW50KTsKKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKworY29uc3QgQXRv
bWljU3RyaW5nJiBJbnRlbnRDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiSW50ZW50Q29udHJvbGxlciIp
KTsKKyAgICByZXR1cm4gbmFtZTsKK30KKwordm9pZCBwcm92aWRlSW50ZW50VG8oUGFnZSogcGFn
ZSwgSW50ZW50Q2xpZW50KiBjbGllbnQpCit7CisgICAgSW50ZW50Q29udHJvbGxlcjo6cHJvdmlk
ZVRvKHBhZ2UsIEludGVudENvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCksIEludGVudENvbnRy
b2xsZXI6OmNyZWF0ZShjbGllbnQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9JTlRFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbnRlbnRzL0ludGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZTdkMWRlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJ
bnRlbnRDb250cm9sbGVyX2gKKyNkZWZpbmUgSW50ZW50Q29udHJvbGxlcl9oCisKKyNpZiBFTkFC
TEUoV0VCX0lOVEVOVFMpCisKKyNpbmNsdWRlICJJbnRlbnRDbGllbnQuaCIKKyNpbmNsdWRlICJT
dXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisK
K2NsYXNzIEludGVudENvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitwdWJs
aWM6CisgICAgfkludGVudENvbnRyb2xsZXIoKTsKKworICAgIEludGVudENsaWVudCogY2xpZW50
KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHN0YXRpYyBQYXNzT3duUHRyPEludGVudENv
bnRyb2xsZXI+IGNyZWF0ZShJbnRlbnRDbGllbnQqKTsKKworICAgIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIEludGVudENvbnRyb2xsZXIq
IGZyb20oUGFnZSopOworICAgCitwcml2YXRlOgorICAgIEludGVudENvbnRyb2xsZXIoSW50ZW50
Q2xpZW50Kik7CisKKyAgICBJbnRlbnRDbGllbnQqIG1fY2xpZW50OworfTsKKworfQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9JTlRFTlRTKQorI2VuZGlmIC8vIEludGVudENvbnRyb2xsZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVudHMu
Y3BwCmluZGV4IGFjNGM3MmIuLjNmZmI1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW50ZW50cy9OYXZpZ2F0b3JJbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ludGVudHMvTmF2aWdhdG9ySW50ZW50cy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CkBAIC00MSw3
ICs0Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTmF2aWdhdG9ySW50ZW50czo6TmF2
aWdhdG9ySW50ZW50cygpCitOYXZpZ2F0b3JJbnRlbnRzOjpOYXZpZ2F0b3JJbnRlbnRzKFBhZ2Uq
IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKIHsKIH0KIApAQCAtNDksNiArNTEsMTcgQEAgTmF2
aWdhdG9ySW50ZW50czo6fk5hdmlnYXRvckludGVudHMoKQogewogfQogCitOYXZpZ2F0b3JJbnRl
bnRzKiBOYXZpZ2F0b3JJbnRlbnRzOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckludGVu
dHMiKSk7CisgICAgTmF2aWdhdG9ySW50ZW50cyogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5h
dmlnYXRvckludGVudHMqPihTdXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2aWdhdG9yLCBu
YW1lKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcg
TmF2aWdhdG9ySW50ZW50cyhuYXZpZ2F0b3ItPmZyYW1lKCktPmRvY3VtZW50KCktPnBhZ2UoKSk7
CisgICAgICAgIHByb3ZpZGVUbyhuYXZpZ2F0b3IsIG5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQp
KTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKIHZvaWQgTmF2aWdhdG9ySW50
ZW50czo6d2Via2l0U3RhcnRBY3Rpdml0eShOYXZpZ2F0b3IqIG5hdmlnYXRvciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPEludGVudD4gaW50
ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQ
dHI8SW50ZW50UmVzdWx0Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywKQEAgLTcyLDcgKzg1LDE1
IEBAIHZvaWQgTmF2aWdhdG9ySW50ZW50czo6d2Via2l0U3RhcnRBY3Rpdml0eShOYXZpZ2F0b3Iq
IG5hdmlnYXRvciwKIAogICAgIFJlZlB0cjxJbnRlbnRSZXF1ZXN0PiByZXF1ZXN0ID0gSW50ZW50
UmVxdWVzdDo6Y3JlYXRlKG5hdmlnYXRvci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbnQs
IHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7Ci0gICAgbmF2aWdhdG9yLT5mcmFtZSgp
LT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoSW50ZW50KHJlcXVlc3QpOworICAgCisgICAg
TmF2aWdhdG9ySW50ZW50czo6ZnJvbShuYXZpZ2F0b3IpLT5jb250cm9sbGVyKCktPmNsaWVudCgp
LT5kaXNwYXRjaEludGVudChyZXF1ZXN0KTsKK30KKworSW50ZW50Q29udHJvbGxlciogTmF2aWdh
dG9ySW50ZW50czo6Y29udHJvbGxlcigpCit7CisgICAgaWYgKCFtX2NvbnRyb2xsZXIpCisgICAg
ICAgIG1fY29udHJvbGxlciA9IEludGVudENvbnRyb2xsZXI6OmZyb20ocGFnZSgpKTsKKyAgICBy
ZXR1cm4gbV9jb250cm9sbGVyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvTmF2aWdhdG9ySW50ZW50cy5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVudHMuaAppbmRleCA0
NzFlMjE4Li4zM2FjMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVu
dHMvTmF2aWdhdG9ySW50ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50
cy9OYXZpZ2F0b3JJbnRlbnRzLmgKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKIAorI2luY2x1ZGUgIkludGVudENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTdXBw
bGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM1LDE2ICszNywyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJ
bnRlbnQ7CiBjbGFzcyBJbnRlbnRSZXN1bHRDYWxsYmFjazsKIGNsYXNzIE5hdmlnYXRvcjsKK2Ns
YXNzIFBhZ2U7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNsYXNzIE5hdmlnYXRv
ckludGVudHMgeworY2xhc3MgTmF2aWdhdG9ySW50ZW50cyA6IHB1YmxpYyBTdXBwbGVtZW50PE5h
dmlnYXRvcj4gewogcHVibGljOgorICAgIHZpcnR1YWwgfk5hdmlnYXRvckludGVudHMoKTsKKwor
ICAgIHN0YXRpYyBOYXZpZ2F0b3JJbnRlbnRzKiBmcm9tKE5hdmlnYXRvciopOworCiAgICAgc3Rh
dGljIHZvaWQgd2Via2l0U3RhcnRBY3Rpdml0eShOYXZpZ2F0b3IqLCBQYXNzUmVmUHRyPEludGVu
dD4sIFBhc3NSZWZQdHI8SW50ZW50UmVzdWx0Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFz
c1JlZlB0cjxJbnRlbnRSZXN1bHRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpOwogCiBwcml2YXRlOgotICAgIE5hdmlnYXRvckludGVudHMoKTsKLSAgICB+TmF2aWdhdG9y
SW50ZW50cygpOworICAgIE5hdmlnYXRvckludGVudHMoUGFnZSopOworCisgICAgUGFnZSogcGFn
ZSgpIHsgcmV0dXJuIG1fcGFnZTsgfQorICAgIEludGVudENvbnRyb2xsZXIqIGNvbnRyb2xsZXIo
KTsKKworICAgIEludGVudENvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBQYWdlKiBtX3Bh
Z2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCmluZGV4IGIyZGJlY2UuLjQ5MDc5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCkBAIC0zOSwxMCArMzksNiBAQAogI2luY2x1ZGUgIkNvbG9yQ2hv
b3Nlci5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpIAotI2luY2x1ZGUgIklu
dGVudFJlcXVlc3QuaCIgCi0jZW5kaWYgCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBm
aWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCkBAIC0x
NTIsMTIgKzE0OCw2IEBAIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRW1wdHlG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRlCiAgICAgcmV0dXJuIFBhc3NS
ZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4oKTsKIH0KIAotI2lmIEVOQUJMRShXRUJfSU5U
RU5UUykKLXZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hJbnRlbnQoUGFzc1Jl
ZlB0cjxJbnRlbnRSZXF1ZXN0PikKLXsKLX0KLSNlbmRpZgotCiB2b2lkIEVtcHR5VGV4dENoZWNr
ZXJDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNraW5n
UmVxdWVzdD4pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYTE3
ZTk0OS4uMjM0MDA4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMzc2
LDkgKzM3Niw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdv
cmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpIE9WRVJSSURFOwogCi0jaWYg
RU5BQkxFKFdFQl9JTlRFTlRTKQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVudChQYXNz
UmVmUHRyPEludGVudFJlcXVlc3Q+KSBPVkVSUklERTsKLSNlbmRpZgogfTsKIAogY2xhc3MgRW1w
dHlUZXh0Q2hlY2tlckNsaWVudCA6IHB1YmxpYyBUZXh0Q2hlY2tlckNsaWVudCB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGJlODEwMjguLmE1NDRkMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC04MCw5ICs4
MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgIGNsYXNzIEhUTUxQbHVnSW5F
bGVtZW50OwogICAgIGNsYXNzIEludFNpemU7Ci0jaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQotICAg
IGNsYXNzIEludGVudFJlcXVlc3Q7Ci0jZW5kaWYKICAgICBjbGFzcyBLVVJMOwogICAgIGNsYXNz
IE1lc3NhZ2VFdmVudDsKICAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwpAQCAtMzMwLDkgKzMy
Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBlbWJlZGRlciBpbnRlcmNlcHRlZCB0aGUgcG9zdE1lc3NhZ2UgY2FsbAogICAgICAgICB2aXJ0
dWFsIGJvb2wgd2lsbENoZWNrQW5kRGlzcGF0Y2hNZXNzYWdlRXZlbnQoU2VjdXJpdHlPcmlnaW4q
IC8qdGFyZ2V0Ki8sIE1lc3NhZ2VFdmVudCopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSNp
ZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVu
dChQYXNzUmVmUHRyPEludGVudFJlcXVlc3Q+KSA9IDA7Ci0jZW5kaWYKICNpZiBFTkFCTEUoV0VC
X0lOVEVOVFNfVEFHKQogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNl
KGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IEtVUkwmIGhy
ZWYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgZGlzcG9zaXRpb24pIHsgfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGIyM2FjNmQuLjk1ZDM5ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTItMDctMjEgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBBZGQgSW50ZW50c0NsaWVudC5oIHRvIE1vZHVsZXMvaW50ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEzMjQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtRWZs
LmNtYWtlOiBBZGQgSW50ZW50Q2xpZW50RWZsLmggfCBjcHAuCisKIDIwMTItMDctMTcgIFJ5dWFu
IENob2kgIDxyeXVhbi5jaG9pQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIE1vdmUgY29k
ZXMgcmVsYXRlZCB0byB0aGVtZSBzZXR0aW5nIGZyb20gV2lkZ2V0IHRvIFJlbmRlclRoZW1lCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCA2ZWY3MjMzLi4xY2I5NTJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm1FZmwuY21ha2UKQEAgLTEwNCw2ICsxMDQsMTIgQEAgSUYgKEVOQUJMRV9SRUdJU1RFUl9QUk9U
T0NPTF9IQU5ETEVSIE9SIEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpCiAgICkKIEVORElG
ICgpCiAKK0lGIChFTkFCTEVfV0VCX0lOVEVOVFMpCisgIExJU1QoQVBQRU5EIFdlYktpdF9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvaW50ZW50cyIKKyAg
KQorRU5ESUYgKCkKKwogTElTVChBUFBFTkQgV2ViS2l0X1NPVVJDRVMKICAgICBlZmwvV2ViQ29y
ZVN1cHBvcnQvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQv
QmF0dGVyeUNsaWVudEVmbC5jcHAKQEAgLTExOCw2ICsxMjQsNyBAQCBMSVNUKEFQUEVORCBXZWJL
aXRfU09VUkNFUwogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9GdWxsc2NyZWVuVmlkZW9Db250cm9s
bGVyRWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRFZmwu
Y3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudEVmbC5jcHAKKyAgICBl
ZmwvV2ViQ29yZVN1cHBvcnQvSW50ZW50Q2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3Vw
cG9ydC9OZXR3b3JrSW5mb0NsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvTm90
aWZpY2F0aW9uUHJlc2VudGVyQ2xpZW50RWZsLmNwcAogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Q
YWdlQ2xpZW50RWZsLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IDFkNGYyZDQuLmZkMGZkNmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMi0wNy0yMSAgR3l1eW91bmcgS2lt
ICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIEFkZCBJbnRlbnRzQ2xpZW50
LmggdG8gTW9kdWxlcy9pbnRlbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MTMyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE1vdmUgZnVuY3Rpb25zIHJlbGF0ZWQgdG8gd2ViIGludGVudHMgZnJvbSBG
cmFtZUxvYWRlckNsaWVudEVmbCB0byBJbnRlbnRDbGllbnRFZmwuCisgICAgICAgIEluIGFkZGl0
aW9uLCBld2tfdmlldyBzdXBwb3J0cyBzdXBwbGVtZW50IGZvciBJbnRlbnRzLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6CisgICAgICAgIChGcmFtZUxvYWRl
ckNsaWVudEVmbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvSW50ZW50Q2xpZW50RWZsLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVudENs
aWVudEVmbDo6SW50ZW50Q2xpZW50RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVudENsaWVu
dEVmbDo6ZGlzcGF0Y2hJbnRlbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ludGVudENs
aWVudEVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSW50ZW50Q2xp
ZW50RWZsKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVudENsaWVudEVmbDo6fkludGVudENsaWVu
dEVmbCk6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9ld2tfdmlld19w
cml2X25ldyk6CisKIDIwMTItMDctMTcgIFZpdmVrIEdhbGF0YWdlICA8dml2ZWtnYWxhdGFnZUBn
bWFpbC5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogcmVmYWN0b3IgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6Y29ubmVjdEZyb250ZW5kKCkgdG8gYWNjZXB0IEluc3BlY3RvckZyb250ZW5kQ2hh
bm5lbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA1MDcyZGUyLi4zMWM4MWQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuY3BwCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5j
bHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCi0jaW5jbHVk
ZSAiSW50ZW50UmVxdWVzdC5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKQEAgLTEwNDIsMTUgKzEw
NDEsNiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEJlY29tZUZyYW1l
c2V0KGJvb2wpCiB7CiB9CiAKLSNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi12b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPFdlYkNvcmU6OkludGVudFJl
cXVlc3Q+IGludGVudFJlcXVlc3QpCi17Ci0gICAgRXdrX0ludGVudF9SZXF1ZXN0KiBld2tSZXF1
ZXN0ID0gZXdrX2ludGVudF9yZXF1ZXN0X25ldyhpbnRlbnRSZXF1ZXN0KTsKLSAgICBld2tfZnJh
bWVfaW50ZW50X25ldyhtX2ZyYW1lLCBld2tSZXF1ZXN0KTsKLSAgICBld2tfaW50ZW50X3JlcXVl
c3RfdW5yZWYoZXdrUmVxdWVzdCk7Ci19Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXRUJfSU5URU5U
U19UQUcpCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpyZWdpc3RlckludGVudFNlcnZpY2Uo
Y29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgS1VSTCYgaHJl
ZiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBkaXNwb3NpdGlvbikKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5oCmluZGV4IDYzZDhhNDQuLmJjOTQwZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAtMTg1
LDkgKzE4NSw2IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9h
ZGVyQ2xpZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCk7CiAgICAgdmlydHVhbCB2b2lkIHByZXBh
cmVGb3JEYXRhU291cmNlUmVwbGFjZW1lbnQoKTsKLSNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0g
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW50ZW50KFBhc3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50
UmVxdWVzdD4pOwotI2VuZGlmCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKICAgICB2aXJ0
dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IEtVUkwmIGhyZWYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNv
bnN0IFN0cmluZyYgZGlzcG9zaXRpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnRlbnRDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktp
dC9lZmwvV2ViQ29yZVN1cHBvcnQvSW50ZW50Q2xpZW50RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wN2I1ODc3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW50ZW50Q2xpZW50RWZsLmNwcApAQCAtMCwwICsxLDU2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisg
KiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJbnRlbnRDbGllbnRFZmwuaCIKKworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKworI2lu
Y2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCisjaW5jbHVkZSAiSGlzdG9yeUl0ZW0uaCIKKyNp
bmNsdWRlICJJbnRlbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiZXdrX2ZyYW1lX3ByaXZhdGUuaCIK
KyNpbmNsdWRlICJld2tfaW50ZW50X3ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK0ludGVudENsaWVudEVmbDo6SW50ZW50Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQor
eworfQorCit2b2lkIEludGVudENsaWVudEVmbDo6ZGlzcGF0Y2hJbnRlbnQoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PiBpbnRlbnRSZXF1ZXN0KQoreworICAgIEV3a19JbnRlbnRf
UmVxdWVzdCogZXdrUmVxdWVzdCA9IGV3a19pbnRlbnRfcmVxdWVzdF9uZXcoaW50ZW50UmVxdWVz
dCk7CisgICAgZXdrX2ZyYW1lX2ludGVudF9uZXcobV9mcmFtZSwgZXdrUmVxdWVzdCk7CisgICAg
ZXdrX2ludGVudF9yZXF1ZXN0X3VucmVmKGV3a1JlcXVlc3QpOworfQorCit9CisjZW5kaWYgLy8g
RU5BQkxFKFdFQl9JTlRFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvSW50ZW50Q2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9JbnRlbnRDbGllbnRFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hMzg2Y2JlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvSW50ZW50Q2xpZW50RWZsLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEludGVudENsaWVudEVmbF9oCisjZGVmaW5lIEludGVudENsaWVu
dEVmbF9oCisKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCisjaW5jbHVkZSAiSW50ZW50Q2xpZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW50ZW50Q2xpZW50RWZsIDogcHVi
bGljIFdlYkNvcmU6OkludGVudENsaWVudCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgSW50ZW50
Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KTsKKyAgICB+SW50ZW50Q2xpZW50RWZsKCkgeyB9
CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnRlbnQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
bnRlbnRSZXF1ZXN0Pik7CisKK3ByaXZhdGU6CisgICAgRXZhc19PYmplY3QqIG1fZnJhbWU7Cit9
OworfQorCisjZW5kaWYKKyNlbmRpZiAvLyBJbnRlbnRDbGllbnRFZmxfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5jcHAKaW5kZXggZjA4NTlkZi4uMWM1YTlmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ZpZXcuY3BwCkBAIC0xMDcsNiArMTA3LDEwIEBACiAjaW5jbHVkZSAiUmVnaXN0ZXJQcm90
b2NvbEhhbmRsZXJDbGllbnRFZmwuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRT
KQorI2luY2x1ZGUgIkludGVudENsaWVudEVmbC5oIgorI2VuZGlmCisKIHN0YXRpYyBjb25zdCBm
bG9hdCB6b29tTWluaW11bSA9IDAuMDU7CiBzdGF0aWMgY29uc3QgZmxvYXQgem9vbU1heGltdW0g
PSA0LjA7CiAKQEAgLTc2NSw2ICs3NjksMTAgQEAgc3RhdGljIEV3a19WaWV3X1ByaXZhdGVfRGF0
YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1NtYXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAg
ICBXZWJDb3JlOjpwcm92aWRlUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJUbyhwcml2LT5wYWdlLmdl
dCgpLCBuZXcgV2ViQ29yZTo6UmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnRFZmwoc21hcnRE
YXRhLT5zZWxmKSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKyAgICBXZWJD
b3JlOjpwcm92aWRlSW50ZW50VG8ocHJpdi0+cGFnZS5nZXQoKSwgbmV3IFdlYkNvcmU6OkludGVu
dENsaWVudEVmbChzbWFydERhdGEtPm1haW5fZnJhbWUpKTsKKyNlbmRpZgorCiAgICAgcHJpdi0+
cGFnZVNldHRpbmdzID0gcHJpdi0+cGFnZS0+c2V0dGluZ3MoKTsKIAogICAgIHByaXYtPnZpZXdw
b3J0QXJndW1lbnRzLndpZHRoID0gV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0
bzsK
</data>
<flag name="commit-queue"
          id="162671"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154535</attachid>
            <date>2012-07-25 21:36:23 -0700</date>
            <delta_ts>2012-07-25 21:36:23 -0700</delta_ts>
            <desc>WIP - for EFL and WK2</desc>
            <filename>intentclient.patch</filename>
            <type>text/plain</type>
            <size>33136</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMjhiNjllMy4uMzk0MjhkMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTgxMCw2ICs4MTAsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxl
cy9pbnRlbnRzL0RPTVdpbmRvd0ludGVudHMuY3BwCiAgICAgTW9kdWxlcy9pbnRlbnRzL0RlbGl2
ZXJlZEludGVudC5jcHAKICAgICBNb2R1bGVzL2ludGVudHMvSW50ZW50LmNwcAorICAgIE1vZHVs
ZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmNwcAogICAgIE1vZHVsZXMvaW50ZW50cy9JbnRl
bnRSZXF1ZXN0LmNwcAogICAgIE1vZHVsZXMvaW50ZW50cy9OYXZpZ2F0b3JJbnRlbnRzLmNwcAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNTk4MjI0OC4uZjk4MjA5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3
IEBACisyMDEyLTA3LTI1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+
CisKKyAgICAgICAgQWRkIEludGVudHNDbGllbnQuaCB0byBNb2R1bGVzL2ludGVudHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMzI0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVmlydHVhbCBmdW5jdGlv
bnMgcmVsYXRlZCB0byB3ZWIgaW50ZW50IGFyZSBkZWZpbmVkIGluIEZyYW1lTG9hZGVyQ2xpZW50
LmguCisgICAgICAgIFRoZSB2aXJ0dWFsIGZ1bmN0aW9ucyBzaG91bGQgYmUgbW92ZWQgdG8gdGhl
IE1vZHVsZXMvaW50ZW50cyBpbiBvcmRlciB0byBmaW5pc2ggbW9kdWxhdGlvbi4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdCBjYXNlcy4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9JbnRlbnRDbGll
bnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKEludGVudENsaWVudCk6
CisgICAgICAgICogTW9kdWxlcy9pbnRlbnRzL0ludGVudENvbnRyb2xsZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZW50Q29udHJvbGxlcjo6
SW50ZW50Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlbnRDb250cm9sbGVyOjp+
SW50ZW50Q29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3JlOjpJbnRlbnRDb250cm9sbGVyOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZW50Q29udHJvbGxlcjo6ZnJvbSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlbnRDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpwcm92aWRlSW50ZW50VG8pOgorICAgICAgICAqIE1vZHVsZXMvaW50ZW50cy9J
bnRlbnRDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJ
bnRlbnRDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVudENvbnRyb2xsZXI6OmNs
aWVudCk6CisgICAgICAgICogTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVudHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9ySW50ZW50czo6TmF2aWdhdG9ySW50ZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JJbnRlbnRzOjpmcm9tKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6TmF2aWdhdG9ySW50ZW50czo6d2Via2l0U3RhcnRBY3Rp
dml0eSk6CisgICAgICAgIChXZWJDb3JlOjpOYXZpZ2F0b3JJbnRlbnRzOjpjb250cm9sbGVyKToK
KyAgICAgICAgKiBNb2R1bGVzL2ludGVudHMvTmF2aWdhdG9ySW50ZW50cy5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChOYXZpZ2F0b3JJbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5hdmlnYXRvckludGVudHM6OnBhZ2UpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMu
Y3BwOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKEVtcHR5RnJh
bWVMb2FkZXJDbGllbnQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgor
ICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDctMjUgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEyMTQyMCk6IFBlcmZvcm1hbmNlIHJl
Z3Jlc3Npb24gb2YgZm9ybSBzdGF0ZSBzYXZpbmcgZm9yIHBhZ2VzIHdpdGggbXVsdGlwbGUgZm9y
bXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9JbnRlbnRDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50cy9JbnRlbnRDbGllbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NDFmN2RjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL0ludGVudENsaWVudC5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgSW50ZW50Q2xpZW50X2gKKyNkZWZpbmUgSW50ZW50Q2xpZW50X2gK
KworI2lmIEVOQUJMRShXRUJfSU5URU5UUykKKworI2luY2x1ZGUgIkludGVudFJlcXVlc3QuaCIK
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBQYWdlOworCitjbGFzcyBJbnRlbnRDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1
YWwgdm9pZCBkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPEludGVudFJlcXVlc3Q+KSA9IDA7Cit9
OworCit2b2lkIHByb3ZpZGVJbnRlbnRUbyhQYWdlKiwgSW50ZW50Q2xpZW50Kik7CisKK30KKwor
I2VuZGlmCisjZW5kaWYgLy8gSW50ZW50Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4xZTYyZDIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbnRlbnRzL0ludGVudENvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNzQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9m
IEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW50ZW50Q29udHJvbGxl
ci5oIgorCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0ludGVudENvbnRyb2xsZXI6OkludGVudENvbnRyb2xsZXIoSW50ZW50Q2xpZW50KiBjbGllbnQp
CisgICAgOiBtX2NsaWVudChjbGllbnQpCit7Cit9CisKK0ludGVudENvbnRyb2xsZXI6On5JbnRl
bnRDb250cm9sbGVyKCkKK3sKK30KKworUGFzc093blB0cjxJbnRlbnRDb250cm9sbGVyPiBJbnRl
bnRDb250cm9sbGVyOjpjcmVhdGUoSW50ZW50Q2xpZW50KiBjbGllbnQpCit7CisgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBJbnRlbnRDb250cm9sbGVyKGNsaWVudCkpOworfQorCitJbnRlbnRDb250
cm9sbGVyKiBJbnRlbnRDb250cm9sbGVyOjpmcm9tKFBhZ2UqIHBhZ2UpCit7CisgICAgSW50ZW50
Q29udHJvbGxlciogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PEludGVudENvbnRyb2xsZXIqPihT
dXBwbGVtZW50PFBhZ2U+Ojpmcm9tKHBhZ2UsIHN1cHBsZW1lbnROYW1lKCkpKTsKKworICAgIEFT
U0VSVChzdXBwbGVtZW50KTsKKyAgICByZXR1cm4gc3VwcGxlbWVudDsKK30KKworY29uc3QgQXRv
bWljU3RyaW5nJiBJbnRlbnRDb250cm9sbGVyOjpzdXBwbGVtZW50TmFtZSgpCit7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG5hbWUsICgiSW50ZW50Q29udHJvbGxlciIp
KTsKKyAgICByZXR1cm4gbmFtZTsKK30KKwordm9pZCBwcm92aWRlSW50ZW50VG8oUGFnZSogcGFn
ZSwgSW50ZW50Q2xpZW50KiBjbGllbnQpCit7CisgICAgSW50ZW50Q29udHJvbGxlcjo6cHJvdmlk
ZVRvKHBhZ2UsIEludGVudENvbnRyb2xsZXI6OnN1cHBsZW1lbnROYW1lKCksIEludGVudENvbnRy
b2xsZXI6OmNyZWF0ZShjbGllbnQpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9JTlRFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbnRlbnRzL0ludGVudENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZTdkMWRlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW50ZW50cy9JbnRlbnRDb250cm9sbGVyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgUmlnaHRzIFJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBJ
bnRlbnRDb250cm9sbGVyX2gKKyNkZWZpbmUgSW50ZW50Q29udHJvbGxlcl9oCisKKyNpZiBFTkFC
TEUoV0VCX0lOVEVOVFMpCisKKyNpbmNsdWRlICJJbnRlbnRDbGllbnQuaCIKKyNpbmNsdWRlICJT
dXBwbGVtZW50YWJsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFBhZ2U7CisK
K2NsYXNzIEludGVudENvbnRyb2xsZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CitwdWJs
aWM6CisgICAgfkludGVudENvbnRyb2xsZXIoKTsKKworICAgIEludGVudENsaWVudCogY2xpZW50
KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgIHN0YXRpYyBQYXNzT3duUHRyPEludGVudENv
bnRyb2xsZXI+IGNyZWF0ZShJbnRlbnRDbGllbnQqKTsKKworICAgIHN0YXRpYyBjb25zdCBBdG9t
aWNTdHJpbmcmIHN1cHBsZW1lbnROYW1lKCk7CisgICAgc3RhdGljIEludGVudENvbnRyb2xsZXIq
IGZyb20oUGFnZSopOworICAgCitwcml2YXRlOgorICAgIEludGVudENvbnRyb2xsZXIoSW50ZW50
Q2xpZW50Kik7CisKKyAgICBJbnRlbnRDbGllbnQqIG1fY2xpZW50OworfTsKKworfQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9JTlRFTlRTKQorI2VuZGlmIC8vIEludGVudENvbnRyb2xsZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVudHMu
Y3BwCmluZGV4IGFjNGM3MmIuLjNmZmI1MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW50ZW50cy9OYXZpZ2F0b3JJbnRlbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ludGVudHMvTmF2aWdhdG9ySW50ZW50cy5jcHAKQEAgLTEsNSArMSw2IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDEyLCBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CkBAIC00MSw3
ICs0Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTmF2aWdhdG9ySW50ZW50czo6TmF2
aWdhdG9ySW50ZW50cygpCitOYXZpZ2F0b3JJbnRlbnRzOjpOYXZpZ2F0b3JJbnRlbnRzKFBhZ2Uq
IHBhZ2UpCisgICAgOiBtX3BhZ2UocGFnZSkKIHsKIH0KIApAQCAtNDksNiArNTEsMTcgQEAgTmF2
aWdhdG9ySW50ZW50czo6fk5hdmlnYXRvckludGVudHMoKQogewogfQogCitOYXZpZ2F0b3JJbnRl
bnRzKiBOYXZpZ2F0b3JJbnRlbnRzOjpmcm9tKE5hdmlnYXRvciogbmF2aWdhdG9yKQoreworICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBuYW1lLCAoIk5hdmlnYXRvckludGVu
dHMiKSk7CisgICAgTmF2aWdhdG9ySW50ZW50cyogc3VwcGxlbWVudCA9IHN0YXRpY19jYXN0PE5h
dmlnYXRvckludGVudHMqPihTdXBwbGVtZW50PE5hdmlnYXRvcj46OmZyb20obmF2aWdhdG9yLCBu
YW1lKSk7CisgICAgaWYgKCFzdXBwbGVtZW50KSB7CisgICAgICAgIHN1cHBsZW1lbnQgPSBuZXcg
TmF2aWdhdG9ySW50ZW50cyhuYXZpZ2F0b3ItPmZyYW1lKCktPmRvY3VtZW50KCktPnBhZ2UoKSk7
CisgICAgICAgIHByb3ZpZGVUbyhuYXZpZ2F0b3IsIG5hbWUsIGFkb3B0UHRyKHN1cHBsZW1lbnQp
KTsKKyAgICB9CisgICAgcmV0dXJuIHN1cHBsZW1lbnQ7Cit9CisKIHZvaWQgTmF2aWdhdG9ySW50
ZW50czo6d2Via2l0U3RhcnRBY3Rpdml0eShOYXZpZ2F0b3IqIG5hdmlnYXRvciwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXNzUmVmUHRyPEludGVudD4gaW50
ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhc3NSZWZQ
dHI8SW50ZW50UmVzdWx0Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywKQEAgLTcyLDcgKzg1LDE1
IEBAIHZvaWQgTmF2aWdhdG9ySW50ZW50czo6d2Via2l0U3RhcnRBY3Rpdml0eShOYXZpZ2F0b3Iq
IG5hdmlnYXRvciwKIAogICAgIFJlZlB0cjxJbnRlbnRSZXF1ZXN0PiByZXF1ZXN0ID0gSW50ZW50
UmVxdWVzdDo6Y3JlYXRlKG5hdmlnYXRvci0+ZnJhbWUoKS0+ZG9jdW1lbnQoKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbnQs
IHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjayk7Ci0gICAgbmF2aWdhdG9yLT5mcmFtZSgp
LT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoSW50ZW50KHJlcXVlc3QpOworICAgCisgICAg
TmF2aWdhdG9ySW50ZW50czo6ZnJvbShuYXZpZ2F0b3IpLT5jb250cm9sbGVyKCktPmNsaWVudCgp
LT5kaXNwYXRjaEludGVudChyZXF1ZXN0KTsKK30KKworSW50ZW50Q29udHJvbGxlciogTmF2aWdh
dG9ySW50ZW50czo6Y29udHJvbGxlcigpCit7CisgICAgaWYgKCFtX2NvbnRyb2xsZXIpCisgICAg
ICAgIG1fY29udHJvbGxlciA9IEludGVudENvbnRyb2xsZXI6OmZyb20ocGFnZSgpKTsKKyAgICBy
ZXR1cm4gbV9jb250cm9sbGVyOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVudHMvTmF2aWdhdG9ySW50ZW50cy5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbnRlbnRzL05hdmlnYXRvckludGVudHMuaAppbmRleCA0
NzFlMjE4Li4zM2FjMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ludGVu
dHMvTmF2aWdhdG9ySW50ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW50ZW50
cy9OYXZpZ2F0b3JJbnRlbnRzLmgKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShXRUJf
SU5URU5UUykKIAorI2luY2x1ZGUgIkludGVudENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJTdXBw
bGVtZW50YWJsZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTM1LDE2ICszNywyNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJ
bnRlbnQ7CiBjbGFzcyBJbnRlbnRSZXN1bHRDYWxsYmFjazsKIGNsYXNzIE5hdmlnYXRvcjsKK2Ns
YXNzIFBhZ2U7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKLWNsYXNzIE5hdmlnYXRv
ckludGVudHMgeworY2xhc3MgTmF2aWdhdG9ySW50ZW50cyA6IHB1YmxpYyBTdXBwbGVtZW50PE5h
dmlnYXRvcj4gewogcHVibGljOgorICAgIHZpcnR1YWwgfk5hdmlnYXRvckludGVudHMoKTsKKwor
ICAgIHN0YXRpYyBOYXZpZ2F0b3JJbnRlbnRzKiBmcm9tKE5hdmlnYXRvciopOworCiAgICAgc3Rh
dGljIHZvaWQgd2Via2l0U3RhcnRBY3Rpdml0eShOYXZpZ2F0b3IqLCBQYXNzUmVmUHRyPEludGVu
dD4sIFBhc3NSZWZQdHI8SW50ZW50UmVzdWx0Q2FsbGJhY2s+IHN1Y2Nlc3NDYWxsYmFjaywgUGFz
c1JlZlB0cjxJbnRlbnRSZXN1bHRDYWxsYmFjaz4gZXJyb3JDYWxsYmFjaywgRXhjZXB0aW9uQ29k
ZSYpOwogCiBwcml2YXRlOgotICAgIE5hdmlnYXRvckludGVudHMoKTsKLSAgICB+TmF2aWdhdG9y
SW50ZW50cygpOworICAgIE5hdmlnYXRvckludGVudHMoUGFnZSopOworCisgICAgUGFnZSogcGFn
ZSgpIHsgcmV0dXJuIG1fcGFnZTsgfQorICAgIEludGVudENvbnRyb2xsZXIqIGNvbnRyb2xsZXIo
KTsKKworICAgIEludGVudENvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKKyAgICBQYWdlKiBtX3Bh
Z2U7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCmluZGV4IGIyZGJlY2UuLjQ5MDc5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCkBAIC0zOSwxMCArMzksNiBAQAogI2luY2x1ZGUgIkNvbG9yQ2hv
b3Nlci5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpIAotI2luY2x1ZGUgIklu
dGVudFJlcXVlc3QuaCIgCi0jZW5kaWYgCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBm
aWxsV2l0aEVtcHR5Q2xpZW50cyhQYWdlOjpQYWdlQ2xpZW50cyYgcGFnZUNsaWVudHMpCkBAIC0x
NTIsMTIgKzE0OCw2IEBAIFBhc3NSZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4gRW1wdHlG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRlCiAgICAgcmV0dXJuIFBhc3NS
ZWZQdHI8RnJhbWVOZXR3b3JraW5nQ29udGV4dD4oKTsKIH0KIAotI2lmIEVOQUJMRShXRUJfSU5U
RU5UUykKLXZvaWQgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hJbnRlbnQoUGFzc1Jl
ZlB0cjxJbnRlbnRSZXF1ZXN0PikKLXsKLX0KLSNlbmRpZgotCiB2b2lkIEVtcHR5VGV4dENoZWNr
ZXJDbGllbnQ6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNraW5n
UmVxdWVzdD4pCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggYTAy
Nzk5Ny4uNWE5MmI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMzc1
LDkgKzM3NSw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxGcmFtZU5ldHdv
cmtpbmdDb250ZXh0PiBjcmVhdGVOZXR3b3JraW5nQ29udGV4dCgpIE9WRVJSSURFOwogCi0jaWYg
RU5BQkxFKFdFQl9JTlRFTlRTKQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVudChQYXNz
UmVmUHRyPEludGVudFJlcXVlc3Q+KSBPVkVSUklERTsKLSNlbmRpZgogfTsKIAogY2xhc3MgRW1w
dHlUZXh0Q2hlY2tlckNsaWVudCA6IHB1YmxpYyBUZXh0Q2hlY2tlckNsaWVudCB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGJlODEwMjguLmE1NDRkMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC04MCw5ICs4
MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogICAgIGNsYXNzIEhUTUxQbHVnSW5F
bGVtZW50OwogICAgIGNsYXNzIEludFNpemU7Ci0jaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQotICAg
IGNsYXNzIEludGVudFJlcXVlc3Q7Ci0jZW5kaWYKICAgICBjbGFzcyBLVVJMOwogICAgIGNsYXNz
IE1lc3NhZ2VFdmVudDsKICAgICBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwpAQCAtMzMwLDkgKzMy
Nyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRo
ZSBlbWJlZGRlciBpbnRlcmNlcHRlZCB0aGUgcG9zdE1lc3NhZ2UgY2FsbAogICAgICAgICB2aXJ0
dWFsIGJvb2wgd2lsbENoZWNrQW5kRGlzcGF0Y2hNZXNzYWdlRXZlbnQoU2VjdXJpdHlPcmlnaW4q
IC8qdGFyZ2V0Ki8sIE1lc3NhZ2VFdmVudCopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSNp
ZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0gICAgICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEludGVu
dChQYXNzUmVmUHRyPEludGVudFJlcXVlc3Q+KSA9IDA7Ci0jZW5kaWYKICNpZiBFTkFCTEUoV0VC
X0lOVEVOVFNfVEFHKQogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNl
KGNvbnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IEtVUkwmIGhy
ZWYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgZGlzcG9zaXRpb24pIHsgfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDFlZmQ3NmEuLjA2Mjc5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTIgQEAKKzIwMTItMDctMjUgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBBZGQgSW50ZW50c0NsaWVudC5oIHRvIE1vZHVsZXMvaW50ZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTEzMjQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtRWZs
LmNtYWtlOiBBZGQgSW50ZW50Q2xpZW50RWZsLmggfCBjcHAuCisKIDIwMTItMDctMjUgIEtpaG9u
ZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIEZp
bGUgQ2hvb3NlciBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtRWZsLmNtYWtlCmluZGV4IDdkZGYzNjQuLmU1YmEz
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMTA1LDYgKzEwNSwxMiBAQCBJRiAoRU5B
QkxFX1JFR0lTVEVSX1BST1RPQ09MX0hBTkRMRVIgT1IgRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUikKICAgKQogRU5ESUYgKCkKIAorSUYgKEVOQUJMRV9XRUJfSU5URU5UUykKKyAgTElTVChB
UFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9k
dWxlcy9pbnRlbnRzIgorICApCitFTkRJRiAoKQorCiBMSVNUKEFQUEVORCBXZWJLaXRfU09VUkNF
UwogICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAogICAgIGVm
bC9XZWJDb3JlU3VwcG9ydC9CYXR0ZXJ5Q2xpZW50RWZsLmNwcApAQCAtMTE5LDYgKzEyNSw3IEBA
IExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0Z1bGxz
Y3JlZW5WaWRlb0NvbnRyb2xsZXJFZmwuY3BwCiAgICAgZWZsL1dlYkNvcmVTdXBwb3J0L0ljb25E
YXRhYmFzZUNsaWVudEVmbC5jcHAKICAgICBlZmwvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xp
ZW50RWZsLmNwcAorICAgIGVmbC9XZWJDb3JlU3VwcG9ydC9JbnRlbnRDbGllbnRFZmwuY3BwCiAg
ICAgZWZsL1dlYkNvcmVTdXBwb3J0L05ldHdvcmtJbmZvQ2xpZW50RWZsLmNwcAogICAgIGVmbC9X
ZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRFZmwuY3BwCiAgICAgZWZs
L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRFZmwuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZjg3
YTkwOC4uYmUzNjQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDEyLTA3
LTI1ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKKyAgICAgICAg
QWRkIEludGVudHNDbGllbnQuaCB0byBNb2R1bGVzL2ludGVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxMzI0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmdW5jdGlvbnMgcmVsYXRlZCB0byB3
ZWIgaW50ZW50cyBmcm9tIEZyYW1lTG9hZGVyQ2xpZW50RWZsIHRvIEludGVudENsaWVudEVmbC4K
KyAgICAgICAgSW4gYWRkaXRpb24sIGV3a192aWV3IHN1cHBvcnRzIHN1cHBsZW1lbnQgZm9yIElu
dGVudHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaDoKKyAg
ICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50RWZsKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9J
bnRlbnRDbGllbnRFZmwuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZW50Q2xpZW50RWZsOjpJbnRlbnRDbGllbnRFZmwpOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZW50Q2xpZW50RWZsOjpkaXNwYXRjaEludGVudCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvSW50ZW50Q2xpZW50RWZsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChJbnRlbnRDbGllbnRFZmwpOgorICAgICAgICAoV2ViQ29yZTo6SW50ZW50Q2xpZW50
RWZsOjp+SW50ZW50Q2xpZW50RWZsKToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAg
ICAgICAoX2V3a192aWV3X3ByaXZfbmV3KToKKworMjAxMi0wNy0yNSAgR3l1eW91bmcgS2ltICA8
Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCiAgICAgICAgIFtFRkxdIFVzZSBlaW5hX3N0cmlu
Z3NoYXJlX2FkZCBpbnN0ZWFkIG9mIHN0cmR1cC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkyMDcyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCBkMjY5
NjFiLi4xY2ZlOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC00NSw3ICs0NSw2IEBACiAjaW5j
bHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRN
TEZvcm1FbGVtZW50LmgiCi0jaW5jbHVkZSAiSW50ZW50UmVxdWVzdC5oIgogI2luY2x1ZGUgIk1J
TUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKQEAgLTEwMTgsMTUgKzEwMTcsNiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpkaXNwYXRjaERpZEJlY29tZUZyYW1lc2V0KGJvb2wpCiB7CiB9CiAKLSNpZiBFTkFCTEUoV0VC
X0lOVEVOVFMpCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaEludGVudChQYXNz
UmVmUHRyPFdlYkNvcmU6OkludGVudFJlcXVlc3Q+IGludGVudFJlcXVlc3QpCi17Ci0gICAgRXdr
X0ludGVudF9SZXF1ZXN0KiBld2tSZXF1ZXN0ID0gZXdrX2ludGVudF9yZXF1ZXN0X25ldyhpbnRl
bnRSZXF1ZXN0KTsKLSAgICBld2tfZnJhbWVfaW50ZW50X25ldyhtX2ZyYW1lLCBld2tSZXF1ZXN0
KTsKLSAgICBld2tfaW50ZW50X3JlcXVlc3RfdW5yZWYoZXdrUmVxdWVzdCk7Ci19Ci0jZW5kaWYK
LQogI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpyZWdpc3RlckludGVudFNlcnZpY2UoY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IFN0cmlu
ZyYgdHlwZSwgY29uc3QgS1VSTCYgaHJlZiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3Ry
aW5nJiBkaXNwb3NpdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4IDYzZDhhNDQuLmJjOTQwZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuaApAQCAtMTg1LDkgKzE4NSw2IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgcHJv
dmlzaW9uYWxMb2FkU3RhcnRlZCgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKCk7
CiAgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNlUmVwbGFjZW1lbnQoKTsKLSNp
ZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoSW50ZW50KFBh
c3NSZWZQdHI8V2ViQ29yZTo6SW50ZW50UmVxdWVzdD4pOwotI2VuZGlmCiAjaWYgRU5BQkxFKFdF
Ql9JTlRFTlRTX1RBRykKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlKGNv
bnN0IFN0cmluZyYgYWN0aW9uLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IEtVUkwmIGhyZWYs
IGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgZGlzcG9zaXRpb24pOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnRlbnRDbGll
bnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW50ZW50Q2xpZW50
RWZsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2I1ODc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW50ZW50Q2xp
ZW50RWZsLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnRlbnRDbGllbnRFZmwuaCIKKworI2lmIEVO
QUJMRShXRUJfSU5URU5UUykKKworI2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCisjaW5j
bHVkZSAiSGlzdG9yeUl0ZW0uaCIKKyNpbmNsdWRlICJJbnRlbnRSZXF1ZXN0LmgiCisjaW5jbHVk
ZSAiZXdrX2ZyYW1lX3ByaXZhdGUuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3ByaXZhdGUuaCIK
KyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludGVudENsaWVudEVmbDo6SW50ZW50Q2xpZW50
RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQoreworfQorCit2b2lkIEludGVudENsaWVudEVmbDo6ZGlz
cGF0Y2hJbnRlbnQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PiBpbnRlbnRSZXF1
ZXN0KQoreworICAgIEV3a19JbnRlbnRfUmVxdWVzdCogZXdrUmVxdWVzdCA9IGV3a19pbnRlbnRf
cmVxdWVzdF9uZXcoaW50ZW50UmVxdWVzdCk7CisgICAgZXdrX2ZyYW1lX2ludGVudF9uZXcobV9m
cmFtZSwgZXdrUmVxdWVzdCk7CisgICAgZXdrX2ludGVudF9yZXF1ZXN0X3VucmVmKGV3a1JlcXVl
c3QpOworfQorCit9CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9JTlRFTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW50ZW50Q2xpZW50RWZsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9JbnRlbnRDbGllbnRFZmwuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMzg2Y2JlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvSW50ZW50Q2xpZW50RWZsLmgKQEAgLTAsMCAr
MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisg
KgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEludGVudENsaWVudEVm
bF9oCisjZGVmaW5lIEludGVudENsaWVudEVmbF9oCisKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFMp
CisjaW5jbHVkZSAiSW50ZW50Q2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgSW50ZW50Q2xpZW50RWZsIDogcHVibGljIFdlYkNvcmU6OkludGVudENsaWVudCB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgSW50ZW50Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KTsKKyAg
ICB+SW50ZW50Q2xpZW50RWZsKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnRl
bnQoUGFzc1JlZlB0cjxXZWJDb3JlOjpJbnRlbnRSZXF1ZXN0Pik7CisKK3ByaXZhdGU6CisgICAg
RXZhc19PYmplY3QqIG1fZnJhbWU7Cit9OworfQorCisjZW5kaWYKKyNlbmRpZiAvLyBJbnRlbnRD
bGllbnRFZmxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggODE5YjdlMy4uZDQ2
Y2RiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0xMDcsNiArMTA3LDEwIEBA
CiAjaW5jbHVkZSAiUmVnaXN0ZXJQcm90b2NvbEhhbmRsZXJDbGllbnRFZmwuaCIKICNlbmRpZgog
CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorI2luY2x1ZGUgIkludGVudENsaWVudEVmbC5oIgor
I2VuZGlmCisKIHN0YXRpYyBjb25zdCBmbG9hdCB6b29tTWluaW11bSA9IDAuMDU7CiBzdGF0aWMg
Y29uc3QgZmxvYXQgem9vbU1heGltdW0gPSA0LjA7CiAKQEAgLTc2NSw2ICs3NjksMTAgQEAgc3Rh
dGljIEV3a19WaWV3X1ByaXZhdGVfRGF0YSogX2V3a192aWV3X3ByaXZfbmV3KEV3a19WaWV3X1Nt
YXJ0X0RhdGEqIHNtYXJ0RGF0YSkKICAgICBXZWJDb3JlOjpwcm92aWRlUmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJUbyhwcml2LT5wYWdlLmdldCgpLCBuZXcgV2ViQ29yZTo6UmVnaXN0ZXJQcm90b2Nv
bEhhbmRsZXJDbGllbnRFZmwoc21hcnREYXRhLT5zZWxmKSk7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShXRUJfSU5URU5UUykKKyAgICBXZWJDb3JlOjpwcm92aWRlSW50ZW50VG8ocHJpdi0+cGFnZS5n
ZXQoKSwgbmV3IFdlYkNvcmU6OkludGVudENsaWVudEVmbChzbWFydERhdGEtPm1haW5fZnJhbWUp
KTsKKyNlbmRpZgorCiAgICAgcHJpdi0+cGFnZVNldHRpbmdzID0gcHJpdi0+cGFnZS0+c2V0dGlu
Z3MoKTsKIAogICAgIHByaXYtPnZpZXdwb3J0QXJndW1lbnRzLndpZHRoID0gV2ViQ29yZTo6Vmll
d3BvcnRBcmd1bWVudHM6OlZhbHVlQXV0bzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKaW5kZXggZTZkM2Jl
ZS4uZjdmMjMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKQEAgLTQzNyw2ICs0MzcsNyBAQCBTRVQo
V2ViS2l0Ml9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJHZW9sb2Nh
dGlvbkNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHAKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckZy
b250ZW5kQ2xpZW50LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW50ZW50
Q2xpZW50LmNwcAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTmV0d29ya0luZm9D
bGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuY3BwCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDNmZDI5OWQu
LmQ4ZjgxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC03MywxMiAr
NzMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2lkZ2V0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
aW5kb3dGZWF0dXJlcy5oPgogCi0jaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQotI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlSW50ZW50UmVxdWVzdC5oIgotI2luY2x1ZGUgIkludGVudERhdGEuaCIKLSNp
bmNsdWRlIDxXZWJDb3JlL0ludGVudFJlcXVlc3QuaD4KLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdF
Ql9JTlRFTlRTX1RBRykKICNpbmNsdWRlICJJbnRlbnRTZXJ2aWNlSW5mby5oIgogI2luY2x1ZGUg
IldlYkludGVudFNlcnZpY2VJbmZvLmgiCkBAIC0xNTU1LDIyICsxNTQ5LDYgQEAgYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6c2hvdWxkQ2FjaGVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgaWQKIH0KICNlbmRpZiAvLyBQTEFURk9STShXSU4pICYmIFVTRShDRk5FVFdP
UkspCiAKLSNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaEludGVudChQYXNzUmVmUHRyPEludGVudFJlcXVlc3Q+IHJlcXVlc3QpCi17Ci0g
ICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKLSAgICBpZiAoIXdlYlBhZ2Up
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxBUElPYmplY3Q+IHVzZXJEYXRhOwotICAg
IFJlZlB0cjxJbmplY3RlZEJ1bmRsZUludGVudFJlcXVlc3Q+IGJ1bmRsZUludGVudFJlcXVlc3Qg
PSBJbmplY3RlZEJ1bmRsZUludGVudFJlcXVlc3Q6OmNyZWF0ZShyZXF1ZXN0LmdldCgpKTsKLSAg
ICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZFJlY2VpdmVJbnRlbnRG
b3JGcmFtZSh3ZWJQYWdlLCBtX2ZyYW1lLCBidW5kbGVJbnRlbnRSZXF1ZXN0LmdldCgpLCB1c2Vy
RGF0YSk7Ci0KLSAgICBJbnRlbnREYXRhIGludGVudERhdGEocmVxdWVzdC0+aW50ZW50KCkpOwot
ICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZUludGVu
dEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgaW50ZW50RGF0YSwgSW5qZWN0ZWRCdW5kbGVV
c2VyTWVzc2FnZUVuY29kZXIodXNlckRhdGEuZ2V0KCkpKSk7Ci19Ci0jZW5kaWYKLQogI2lmIEVO
QUJMRShXRUJfSU5URU5UU19UQUcpCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWdpc3Rl
ckludGVudFNlcnZpY2UoY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgS1VSTCYgaHJlZiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBkaXNw
b3NpdGlvbikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAyMDdlNDQyLi5i
ODIyNTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yOCwxMiArMjgsNiBA
QAogCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlckNsaWVudC5oPgogCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0jaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQotY2xhc3MgSW50ZW50UmVxdWVzdDsK
LSNlbmRpZgotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUGx1Z2luVmlldzsKQEAg
LTIyOCw5ICsyMjIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJl
c3BvbnNlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YSwgdW5zaWduZWQgbG9uZyBsb25nIGxlbmd0aCkgT1ZFUlJJREU7CiAjZW5kaWYKIAotI2lm
IEVOQUJMRShXRUJfSU5URU5UUykKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnRlbnQoUGFz
c1JlZlB0cjxXZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PikgT1ZFUlJJREU7Ci0jZW5kaWYKICNpZiBF
TkFCTEUoV0VCX0lOVEVOVFNfVEFHKQogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckludGVudFNl
cnZpY2UoY29uc3QgU3RyaW5nJiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgV2Vi
Q29yZTo6S1VSTCYgaHJlZiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBkaXNw
b3NpdGlvbikgT1ZFUlJJREU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW50ZW50Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW50ZW50Q2xpZW50LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjE2MjhlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnRlbnRDbGllbnQu
Y3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkludGVudENsaWVudC5oIgorCisjaWYgRU5BQkxFKFdFQl9J
TlRFTlRTKQorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlSW50ZW50UmVxdWVzdC5oIgorI2luY2x1
ZGUgIkluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaCIKKyNpbmNsdWRlICJJbnRlbnRE
YXRhLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0ludGVudFJlcXVlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit2b2lkIFdlYkludGVudENsaWVudDo6ZGlzcGF0Y2hJbnRlbnQoUGFz
c1JlZlB0cjxJbnRlbnRSZXF1ZXN0PiByZXF1ZXN0KQoreworICAgIFdlYlBhZ2UqIHdlYlBhZ2Ug
PSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBSZWZQdHI8QVBJT2JqZWN0PiB1c2VyRGF0YTsKKyAgICBSZWZQdHI8SW5qZWN0ZWRCdW5k
bGVJbnRlbnRSZXF1ZXN0PiBidW5kbGVJbnRlbnRSZXF1ZXN0ID0gSW5qZWN0ZWRCdW5kbGVJbnRl
bnRSZXF1ZXN0OjpjcmVhdGUocmVxdWVzdC5nZXQoKSk7CisgICAgd2ViUGFnZS0+aW5qZWN0ZWRC
dW5kbGVMb2FkZXJDbGllbnQoKS5kaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWUod2ViUGFnZSwgbV9m
cmFtZSwgYnVuZGxlSW50ZW50UmVxdWVzdC5nZXQoKSwgdXNlckRhdGEpOworCisgICAgSW50ZW50
RGF0YSBpbnRlbnREYXRhKHJlcXVlc3QtPmludGVudCgpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShtX2ZyYW1lLT5m
cmFtZUlEKCksIGludGVudERhdGEsIEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VFbmNvZGVyKHVz
ZXJEYXRhLmdldCgpKSkpOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0lOVEVOVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
SW50ZW50Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkludGVudENsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRl
OTE4MzgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkludGVudENsaWVudC5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJJbnRlbnRDbGllbnRfaAorI2RlZmluZSBXZWJJbnRlbnRD
bGllbnRfaAorCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQorI2luY2x1ZGUgPFdlYkNvcmUvSW50
ZW50Q2xpZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEludGVudFJlcXVlc3Q7
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJGcmFtZTsKKyAKK2NsYXNzIFdl
YkludGVudENsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpJbnRlbnRDbGllbnQgeworcHVibGljOgor
ICAgIFdlYkludGVudENsaWVudChXZWJGcmFtZSopOworICAgIH5XZWJJbnRlbnRDbGllbnQoKTsK
KworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hJbnRlbnQoUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJbnRlbnRSZXF1ZXN0PikgT1ZFUlJJREU7CisgICAKKyAgICBXZWJGcmFtZSogbV9m
cmFtZTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShXRUJfSU5URU5UUykKKyNlbmRpZiAv
LyBXZWJJbmVudENsaWVudF9oCg==
</data>
<flag name="commit-queue"
          id="163778"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
      

    </bug>

</bugzilla>