<?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>125176</bug_id>
          
          <creation_ts>2013-12-03 12:04:41 -0800</creation_ts>
          <short_desc>Remove TiledCoreAnimationDrawingArea(Proxy)IOS</short_desc>
          <delta_ts>2013-12-03 12:36:29 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>enrica</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>956033</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-03 12:04:41 -0800</bug_when>
    <thetext>It’s unused code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956040</commentid>
    <comment_count>1</comment_count>
      <attachid>218323</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-03 12:12:10 -0800</bug_when>
    <thetext>Created attachment 218323
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956054</commentid>
    <comment_count>2</comment_count>
      <attachid>218326</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-03 12:28:17 -0800</bug_when>
    <thetext>Created attachment 218326
patch

missed one reference</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>956056</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-03 12:36:29 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/160031</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218323</attachid>
            <date>2013-12-03 12:12:10 -0800</date>
            <delta_ts>2013-12-03 12:28:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>tcadaios.diff</filename>
            <type>text/plain</type>
            <size>17448</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxOWMwNzM0Li5kYjc3NjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTMtMTItMDMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKFByb3h5KUlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1MTc2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHVu
dXNlZCBjb2RlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tDb250ZW50Vmlldy5t
bToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHlJT1MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1MubW06IFJlbW92ZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0Fy
ZWE6OmNyZWF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYUlPUy5oOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1MubW06IFJlbW92ZWQu
CisKIDIwMTMtMTItMDMgIFRhbWFzIEdlcmdlbHkgIDx0Z2VyZ2VseS51LXN6ZWdlZEBwYXJ0bmVy
LnNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSBXVEY6OiBwcmVmaXggZnJvbSB0eXBlcyBp
biBtZXNzYWdlcy5pbiBmaWxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDhiNWJiYWEuLmYwNzQ4YTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMjgs
NyArMjgsNiBAQAogCiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbElPUy5oIgogI2ltcG9ydCAiUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgotI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWFQcm94eUlPUy5oIgogI2ltcG9ydCAiVUlXS1JlbW90ZVZpZXcuaCIKICNp
bXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwUHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHlJT1MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODg4NDc1MC4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHlJT1MuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1Nf
aAotI2RlZmluZSBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TX2gKLQotI2lu
Y2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eUlPUyA6IHB1YmxpYyBEcmF3aW5nQXJlYVByb3h5IHsKLXB1YmxpYzoKLSAgICBleHBs
aWNpdCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TKFdlYlBhZ2VQcm94eSop
OwotICAgIHZpcnR1YWwgflRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1MoKTsK
LQotcHJpdmF0ZToKLSAgICAvLyBEcmF3aW5nQXJlYVByb3h5Ci0gICAgdmlydHVhbCB2b2lkIGRl
dmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNp
emVEaWRDaGFuZ2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXll
clRyZWVDb250ZXh0JikgT1ZFUlJJREU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1NfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBhYTdkMDc2Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eUlPUy5tbQorKysgL2Rldi9udWxs
CkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBv
cnQgIlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1MuaCIKLQotI2ltcG9ydCAi
RHJhd2luZ0FyZWFNZXNzYWdlcy5oIgotI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0
ICJXZWJQcm9jZXNzUHJveHkuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TOjpU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TKFdlYlBhZ2VQcm94eSogd2ViUGFn
ZVByb3h5KQotICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5cGVUaWxlZENvcmVB
bmltYXRpb25JT1MsIHdlYlBhZ2VQcm94eSkKLXsKLX0KLSAgICAKLVRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHlJT1M6On5UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
SU9TKCkKLXsKLX0KLQotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9T
OjpkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCi17Ci0gICAgbV93ZWJQYWdlUHJveHktPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0RGV2aWNlU2NhbGVGYWN0b3Io
bV93ZWJQYWdlUHJveHktPmRldmljZVNjYWxlRmFjdG9yKCkpLCBtX3dlYlBhZ2VQcm94eS0+cGFn
ZUlEKCkpOwotfQotCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1M6
OnNpemVEaWRDaGFuZ2UoKQotewotICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6RHJhd2luZ0FyZWE6OlVwZGF0ZUdlb21ldHJ5KG1fc2l6ZSwgSW50U2l6ZSgpKSwg
bV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpKTsKLX0KLQotdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5SU9TOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJl
ZUNvbnRleHQpCi17Ci0gICAgbV93ZWJQYWdlUHJveHktPmVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAK
aW5kZXggNzE2ODJjYS4uZjE2MTVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCkBAIC0yOCwxMCArMjgsNiBAQAogI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbmFsLmg+CiAKIC8vIFN1YmNsYXNzZXMKLSNpZiBQTEFURk9STShJT1MpCi0j
aW5jbHVkZSAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1MuaCIKLSNlbmRpZgotCiAj
aWYgUExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgi
CiAjaW5jbHVkZSAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCIKQEAgLTUxLDEwICs0
Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNyZWF0ZShX
ZWJQYWdlKiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiB7CiAgICAgc3dpdGNoIChwYXJhbWV0ZXJz
LmRyYXdpbmdBcmVhVHlwZSkgewogI2lmIFBMQVRGT1JNKE1BQykKLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVUaWxlZENvcmVBbmltYXRpb25JT1M6Ci0gICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9T
Pih3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKLSNlbHNlCisjaWYgIVBMQVRGT1JNKElPUykKICAgICBj
YXNlIERyYXdpbmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbjoKICAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBh
cmFtZXRlcnMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhSU9TLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5MjU0ODkuLjAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYUlPUy5oCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1NfaAotI2Rl
ZmluZSBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYUlPU19oCi0KLSNpbmNsdWRlICJEcmF3
aW5nQXJlYS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvTGF5ZXJGbHVzaFNjaGVkdWxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
TGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
LQotT0JKQ19DTEFTUyBDQUNvbnRleHQ7Ci1PQkpDX0NMQVNTIENBTGF5ZXI7Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1jbGFzcyBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYUlPUyA6IHB1
YmxpYyBEcmF3aW5nQXJlYSwgcHJpdmF0ZSBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50LCBw
cml2YXRlIFdlYkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewotcHVibGljOgotICAg
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TKFdlYlBhZ2UqLCBjb25zdCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJik7Ci0gICAgdmlydHVhbCB+VGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFJT1MoKTsKLQotcHJpdmF0ZToKLSAgICAvLyBEcmF3aW5nQXJlYQotICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3Qs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1
c2goKSBPVkVSUklERTsKLQotICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKLSAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRl
ZChjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBPVkVSUklERTsKLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50
cyhjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIGluQ2xpcCkgT1ZFUlJJREU7Ci0gICAgCi0gICAgdmlydHVhbCBmbG9hdCBtaW5pbXVt
RG9jdW1lbnRTY2FsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd0Nv
bXBvc2l0aW5nTGF5ZXJWaXN1YWxEZWdyYWRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwotCi0gICAg
Ly8gTGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudAotICAgIHZpcnR1YWwgYm9vbCBmbHVzaExheWVy
cygpIE9WRVJSSURFOwotCi0gICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGxheWVyUG9zaXRpb24pOwotICAgIHZpcnR1YWwgdm9pZCBzZXRE
ZXZpY2VTY2FsZUZhY3RvcihmbG9hdCkgT1ZFUlJJREU7Ci0KLSAgICBXZWJDb3JlOjpMYXllckZs
dXNoU2NoZWR1bGVyIG1fbGF5ZXJGbHVzaFNjaGVkdWxlcjsKLQotICAgIFJldGFpblB0cjxDQUNv
bnRleHQ+IG1fY29udGV4dDsKLSAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9yb290TGF5ZXI7Ci0K
LSAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9jb250ZW50TGF5ZXI7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhSU9TX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9pb3MvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
SU9TLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWFlZDkwLi4wMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWFJT1MubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNjUgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFJT1MuaCIKLQotI2ltcG9ydCAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgi
Ci0jaW1wb3J0ICJXZWJQYWdlLmgiCi0jaW1wb3J0IDxRdWFydHpDb3JlL0NBQ29udGV4dC5oPgot
I2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+Ci0jaW1wb3J0IDxVSUtpdC9VSUtpdC5o
PgotI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0jaW1wb3J0IDxXZWJDb3Jl
L0dyYXBoaWNzTGF5ZXJDQS5oPgotI2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KLSNpbXBv
cnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgot
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYUlPUzo6flRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TKCkKLXsKLSAgICBtX2xh
eWVyRmx1c2hTY2hlZHVsZXIuaW52YWxpZGF0ZSgpOwotfQotCi1UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYUlPUzo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1MoV2ViUGFnZSog
d2ViUGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLSAg
ICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbklPUywgd2Vi
UGFnZSkKLSAgICAsIG1fbGF5ZXJGbHVzaFNjaGVkdWxlcih0aGlzKQotewotICAgIFBhZ2UqIHBh
Z2UgPSB3ZWJQYWdlLT5jb3JlUGFnZSgpOwotCi0gICAgcGFnZS0+c2V0dGluZ3MoKS5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKLSAgICBwYWdlLT5zZXR0aW5ncygpLnNldFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yRW5hYmxlZCh0cnVlKTsKLSAgICBwYWdlLT5zZXR0aW5ncygpLnNldERlbGVn
YXRlc1BhZ2VTY2FsaW5nKHRydWUpOwotICAgIAotICAgIG1fcm9vdExheWVyID0gW0NBTGF5ZXIg
bGF5ZXJdOwotICAgIENHUmVjdCByb290TGF5ZXJGcmFtZSA9IG1fd2ViUGFnZS0+Ym91bmRzKCk7
Ci0gICAgbV9yb290TGF5ZXIuZ2V0KCkuZnJhbWUgPSByb290TGF5ZXJGcmFtZTsKLSAgICBtX3Jv
b3RMYXllci5nZXQoKS5vcGFxdWUgPSBZRVM7Ci0KLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGlj
dGlvbmFyeT4gb3B0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBp
bml0XSk7Ci0KLSAgICBbb3B0aW9ucy5nZXQoKSBzZXRPYmplY3Q6QFlFUyBmb3JLZXk6a0NBQ29u
dGV4dElnbm9yZXNIaXRUZXN0XTsKLQotICAgIG1fY29udGV4dCA9IFtDQUNvbnRleHQgcmVtb3Rl
Q29udGV4dFdpdGhPcHRpb25zOm9wdGlvbnMuZ2V0KCldOwotICAgIFttX2NvbnRleHQuZ2V0KCkg
c2V0TGV2ZWw6LUNHRkxPQVRfTUFYXTsKLSAgICAKLSAgICBbbV9jb250ZXh0LmdldCgpIHNldExh
eWVyOm1fcm9vdExheWVyLmdldCgpXTsKLQotICAgIExheWVyVHJlZUNvbnRleHQgbGF5ZXJUcmVl
Q29udGV4dDsKLSAgICBsYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IFttX2NvbnRleHQuZ2V0
KCkgY29udGV4dElkXTsKLQotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6RHJhd2luZ0Fy
ZWFQcm94eTo6RW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgwLCBsYXllclRyZWVDb250
ZXh0KSk7Ci0KLSAgICBwYWdlLT5zZXR0aW5ncygpLnNldFNob3dEZWJ1Z0JvcmRlcnModHJ1ZSk7
Ci0gICAgcGFnZS0+c2V0dGluZ3MoKS5zZXRTaG93UmVwYWludENvdW50ZXIoZmFsc2UpOwotfQot
Ci12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TOjpzZXROZWVkc0Rpc3BsYXko
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFJT1M6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhSU9TOjpzY3JvbGwoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUm
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFJT1M6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdy
YXBoaWNzTGF5ZXIpCi17Ci0gICAgQ0FMYXllciAqcm9vdENvbXBvc2l0aW5nTGF5ZXIgPSBncmFw
aGljc0xheWVyID8gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwotICAgIGlm
ICghcm9vdENvbXBvc2l0aW5nTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtDQVRyYW5z
YWN0aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNd
OwotICAgIAotICAgIG1fcm9vdExheWVyLmdldCgpLnN1YmxheWVycyA9IFtOU0FycmF5IGFycmF5
V2l0aE9iamVjdDpyb290Q29tcG9zaXRpbmdMYXllcl07Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBj
b21taXRdOwotfQotCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TOjpzY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCi17Ci0gICAgbV9sYXllckZsdXNoU2NoZWR1bGVy
LnNjaGVkdWxlKCk7Ci19Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1M6
OnNob3VsZFVzZVRpbGVkQmFja2luZyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYUlP
Uzo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHRp
bWUpCi17Ci19Ci0gICAgCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TOjpu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQotewotfQotCi12b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXll
clBhaW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQotewotfQotCi1mbG9hdCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYUlPUzo6bWluaW11bURvY3VtZW50U2NhbGUoKSBj
b25zdAotewotICAgIHJldHVybiAxLjA7Ci19Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFJT1M6OmFsbG93Q29tcG9zaXRpbmdMYXllclZpc3VhbERlZ3JhZGF0aW9uKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFJT1M6OmZsdXNoTGF5ZXJzKCkKLXsKLSAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAg
ICAgICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgpOwotICAgICAgICByZXR1cm4gbV93ZWJQ
YWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUluY2x1ZGluZ1N1YmZyYW1lcygpOwotICAgIH0KLX0KLQotdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYUlPUzo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGxheWVyUG9zaXRpb24pCi17Ci0gICAgbV93ZWJQYWdl
LT5zZXRTaXplKHZpZXdTaXplKTsKLSAgICBtX3dlYlBhZ2UtPmxheW91dElmTmVlZGVkKCk7Ci19
Ci0KLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1M6OnNldERldmljZVNjYWxl
RmFjdG9yKGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQotewotICAgIG1fd2ViUGFnZS0+c2V0RGV2
aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0b3IpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218326</attachid>
            <date>2013-12-03 12:28:17 -0800</date>
            <delta_ts>2013-12-03 12:33:39 -0800</delta_ts>
            <desc>patch</desc>
            <filename>tcadaios.diff</filename>
            <type>text/plain</type>
            <size>17958</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxOWMwNzM0Li4xZGQ3NDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTMtMTItMDMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKFByb3h5KUlPUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI1MTc2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHVu
dXNlZCBjb2RlLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tDb250ZW50Vmlldy5t
bToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHlJT1MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1MubW06IFJlbW92ZWQuCisgICAgICAgICogU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5n
QXJlYS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpjcmVhdGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJ
T1MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TLm1tOiBSZW1vdmVkLgorCiAyMDEzLTEyLTAzICBUYW1h
cyBHZXJnZWx5ICA8dGdlcmdlbHkudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgV1RGOjogcHJlZml4IGZyb20gdHlwZXMgaW4gbWVzc2FnZXMuaW4gZmlsZXMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKaW5kZXggN2ZmYjdjMi4uMTZh
M2JkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaApAQCAtMzAsOSAr
MzAsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogZW51bSBEcmF3aW5nQXJlYVR5cGUgewogI2lm
IFBMQVRGT1JNKE1BQykKLSNpZiBQTEFURk9STShJT1MpCi0gICAgRHJhd2luZ0FyZWFUeXBlVGls
ZWRDb3JlQW5pbWF0aW9uSU9TLAotI2Vsc2UKKyNpZiAhUExBVEZPUk0oSU9TKQogICAgIERyYXdp
bmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbiwKICNlbmRpZgogICAgIERyYXdpbmdBcmVhVHlw
ZVJlbW90ZUxheWVyVHJlZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lv
cy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDhiNWJiYWEuLmYwNzQ4YTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMjgsNyAr
MjgsNiBAQAogCiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbElPUy5oIgogI2ltcG9ydCAiUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgotI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFQcm94eUlPUy5oIgogI2ltcG9ydCAiVUlXS1JlbW90ZVZpZXcuaCIKICNpbXBv
cnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jy
b3dzaW5nQ29udGV4dEdyb3VwUHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHlJT1MuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODg4NDc1MC4uMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhUHJveHlJT1MuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1NfaAot
I2RlZmluZSBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TX2gKLQotI2luY2x1
ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eUlPUyA6IHB1YmxpYyBEcmF3aW5nQXJlYVByb3h5IHsKLXB1YmxpYzoKLSAgICBleHBsaWNp
dCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TKFdlYlBhZ2VQcm94eSopOwot
ICAgIHZpcnR1YWwgflRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1MoKTsKLQot
cHJpdmF0ZToKLSAgICAvLyBEcmF3aW5nQXJlYVByb3h5Ci0gICAgdmlydHVhbCB2b2lkIGRldmlj
ZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHNpemVE
aWRDaGFuZ2UoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRy
ZWVDb250ZXh0JikgT1ZFUlJJREU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2Vu
ZGlmIC8vIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1NfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhYTdkMDc2Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eUlPUy5tbQorKysgL2Rldi9udWxsCkBA
IC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQg
IlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1MuaCIKLQotI2ltcG9ydCAiRHJh
d2luZ0FyZWFNZXNzYWdlcy5oIgotI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0ICJX
ZWJQcm9jZXNzUHJveHkuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TOjpUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TKFdlYlBhZ2VQcm94eSogd2ViUGFnZVBy
b3h5KQotICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5cGVUaWxlZENvcmVBbmlt
YXRpb25JT1MsIHdlYlBhZ2VQcm94eSkKLXsKLX0KLSAgICAKLVRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhUHJveHlJT1M6On5UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9T
KCkKLXsKLX0KLQotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5SU9TOjpk
ZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCi17Ci0gICAgbV93ZWJQYWdlUHJveHktPnByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6U2V0RGV2aWNlU2NhbGVGYWN0b3IobV93
ZWJQYWdlUHJveHktPmRldmljZVNjYWxlRmFjdG9yKCkpLCBtX3dlYlBhZ2VQcm94eS0+cGFnZUlE
KCkpOwotfQotCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHlJT1M6OnNp
emVEaWRDaGFuZ2UoKQotewotICAgIG1fd2ViUGFnZVByb3h5LT5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6RHJhd2luZ0FyZWE6OlVwZGF0ZUdlb21ldHJ5KG1fc2l6ZSwgSW50U2l6ZSgpKSwgbV93
ZWJQYWdlUHJveHktPnBhZ2VJRCgpKTsKLX0KLQotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5SU9TOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNv
bnRleHQpCi17Ci0gICAgbV93ZWJQYWdlUHJveHktPmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKaW5k
ZXggNzE2ODJjYS4uZjE2MTVkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCkBAIC0yOCwxMCArMjgsNiBAQAogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbmFsLmg+CiAKIC8vIFN1YmNsYXNzZXMKLSNpZiBQTEFURk9STShJT1MpCi0jaW5j
bHVkZSAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1MuaCIKLSNlbmRpZgotCiAjaWYg
UExBVEZPUk0oTUFDKQogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAj
aW5jbHVkZSAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCIKQEAgLTUxLDEwICs0Nyw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNyZWF0ZShXZWJQ
YWdlKiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiB7CiAgICAgc3dpdGNoIChwYXJhbWV0ZXJzLmRy
YXdpbmdBcmVhVHlwZSkgewogI2lmIFBMQVRGT1JNKE1BQykKLSNpZiBQTEFURk9STShJT1MpCi0g
ICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVUaWxlZENvcmVBbmltYXRpb25JT1M6Ci0gICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TPih3
ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKLSNlbHNlCisjaWYgIVBMQVRGT1JNKElPUykKICAgICBjYXNl
IERyYXdpbmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbjoKICAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFt
ZXRlcnMpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
SU9TLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ5MjU0ODkuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYUlPUy5oCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1NfaAotI2RlZmlu
ZSBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYUlPU19oCi0KLSNpbmNsdWRlICJEcmF3aW5n
QXJlYS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllckNsaWVudC5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvTGF5ZXJGbHVzaFNjaGVkdWxlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTGF5
ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQot
T0JKQ19DTEFTUyBDQUNvbnRleHQ7Ci1PQkpDX0NMQVNTIENBTGF5ZXI7Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYUlPUyA6IHB1Ymxp
YyBEcmF3aW5nQXJlYSwgcHJpdmF0ZSBXZWJDb3JlOjpHcmFwaGljc0xheWVyQ2xpZW50LCBwcml2
YXRlIFdlYkNvcmU6OkxheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQgewotcHVibGljOgotICAgIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TKFdlYlBhZ2UqLCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7Ci0gICAgdmlydHVhbCB+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFJT1MoKTsKLQotcHJpdmF0ZToKLSAgICAvLyBEcmF3aW5nQXJlYQotICAgIHZpcnR1YWwg
dm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVl
ZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KSBPVkVSUklERTsKLQotICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBj
b25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUpIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBPVkVSUklERTsKLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhj
b25zdCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
V2ViQ29yZTo6R3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGluQ2xpcCkgT1ZFUlJJREU7Ci0gICAgCi0gICAgdmlydHVhbCBmbG9hdCBtaW5pbXVtRG9j
dW1lbnRTY2FsZSgpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgYm9vbCBhbGxvd0NvbXBv
c2l0aW5nTGF5ZXJWaXN1YWxEZWdyYWRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwotCi0gICAgLy8g
TGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudAotICAgIHZpcnR1YWwgYm9vbCBmbHVzaExheWVycygp
IE9WRVJSSURFOwotCi0gICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KLSAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGxheWVyUG9zaXRpb24pOwotICAgIHZpcnR1YWwgdm9pZCBzZXREZXZp
Y2VTY2FsZUZhY3RvcihmbG9hdCkgT1ZFUlJJREU7Ci0KLSAgICBXZWJDb3JlOjpMYXllckZsdXNo
U2NoZWR1bGVyIG1fbGF5ZXJGbHVzaFNjaGVkdWxlcjsKLQotICAgIFJldGFpblB0cjxDQUNvbnRl
eHQ+IG1fY29udGV4dDsKLSAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9yb290TGF5ZXI7Ci0KLSAg
ICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9jb250ZW50TGF5ZXI7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhSU9TX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9T
Lm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NWFlZDkwLi4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFJT1MubW0KKysrIC9kZXYvbnVsbApAQCAtMSwxNjUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFJT1MuaCIKLQotI2ltcG9ydCAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCi0j
aW1wb3J0ICJXZWJQYWdlLmgiCi0jaW1wb3J0IDxRdWFydHpDb3JlL0NBQ29udGV4dC5oPgotI2lt
cG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3JlLmg+Ci0jaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgot
I2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9GcmFtZVZpZXcuaD4K
LSNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0dy
YXBoaWNzTGF5ZXJDQS5oPgotI2ltcG9ydCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YUlPUzo6flRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TKCkKLXsKLSAgICBtX2xheWVy
Rmx1c2hTY2hlZHVsZXIuaW52YWxpZGF0ZSgpOwotfQotCi1UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYUlPUzo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1MoV2ViUGFnZSogd2Vi
UGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKLSAgICA6
IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbklPUywgd2ViUGFn
ZSkKLSAgICAsIG1fbGF5ZXJGbHVzaFNjaGVkdWxlcih0aGlzKQotewotICAgIFBhZ2UqIHBhZ2Ug
PSB3ZWJQYWdlLT5jb3JlUGFnZSgpOwotCi0gICAgcGFnZS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNv
bXBvc2l0aW5nTW9kZSh0cnVlKTsKLSAgICBwYWdlLT5zZXR0aW5ncygpLnNldFNjcm9sbGluZ0Nv
b3JkaW5hdG9yRW5hYmxlZCh0cnVlKTsKLSAgICBwYWdlLT5zZXR0aW5ncygpLnNldERlbGVnYXRl
c1BhZ2VTY2FsaW5nKHRydWUpOwotICAgIAotICAgIG1fcm9vdExheWVyID0gW0NBTGF5ZXIgbGF5
ZXJdOwotICAgIENHUmVjdCByb290TGF5ZXJGcmFtZSA9IG1fd2ViUGFnZS0+Ym91bmRzKCk7Ci0g
ICAgbV9yb290TGF5ZXIuZ2V0KCkuZnJhbWUgPSByb290TGF5ZXJGcmFtZTsKLSAgICBtX3Jvb3RM
YXllci5nZXQoKS5vcGFxdWUgPSBZRVM7Ci0KLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGljdGlv
bmFyeT4gb3B0aW9ucyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0
XSk7Ci0KLSAgICBbb3B0aW9ucy5nZXQoKSBzZXRPYmplY3Q6QFlFUyBmb3JLZXk6a0NBQ29udGV4
dElnbm9yZXNIaXRUZXN0XTsKLQotICAgIG1fY29udGV4dCA9IFtDQUNvbnRleHQgcmVtb3RlQ29u
dGV4dFdpdGhPcHRpb25zOm9wdGlvbnMuZ2V0KCldOwotICAgIFttX2NvbnRleHQuZ2V0KCkgc2V0
TGV2ZWw6LUNHRkxPQVRfTUFYXTsKLSAgICAKLSAgICBbbV9jb250ZXh0LmdldCgpIHNldExheWVy
Om1fcm9vdExheWVyLmdldCgpXTsKLQotICAgIExheWVyVHJlZUNvbnRleHQgbGF5ZXJUcmVlQ29u
dGV4dDsKLSAgICBsYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IFttX2NvbnRleHQuZ2V0KCkg
Y29udGV4dElkXTsKLQotICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWFQ
cm94eTo6RW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgwLCBsYXllclRyZWVDb250ZXh0
KSk7Ci0KLSAgICBwYWdlLT5zZXR0aW5ncygpLnNldFNob3dEZWJ1Z0JvcmRlcnModHJ1ZSk7Ci0g
ICAgcGFnZS0+c2V0dGluZ3MoKS5zZXRTaG93UmVwYWludENvdW50ZXIoZmFsc2UpOwotfQotCi12
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TOjpzZXROZWVkc0Rpc3BsYXkoKQot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFJT1M6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhSU9TOjpzY3JvbGwoY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFNpemUmKQot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFJT1M6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBo
aWNzTGF5ZXIpCi17Ci0gICAgQ0FMYXllciAqcm9vdENvbXBvc2l0aW5nTGF5ZXIgPSBncmFwaGlj
c0xheWVyID8gZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpIDogbmlsOwotICAgIGlmICgh
cm9vdENvbXBvc2l0aW5nTGF5ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIFtDQVRyYW5zYWN0
aW9uIGJlZ2luXTsKLSAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwot
ICAgIAotICAgIG1fcm9vdExheWVyLmdldCgpLnN1YmxheWVycyA9IFtOU0FycmF5IGFycmF5V2l0
aE9iamVjdDpyb290Q29tcG9zaXRpbmdMYXllcl07Ci0KLSAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwotfQotCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TOjpzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCi17Ci0gICAgbV9sYXllckZsdXNoU2NoZWR1bGVyLnNj
aGVkdWxlKCk7Ci19Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1M6OnNo
b3VsZFVzZVRpbGVkQmFja2luZyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYUlPUzo6
bm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91YmxlIHRpbWUp
Ci17Ci19Ci0gICAgCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TOjpub3Rp
ZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQotewotfQotCi12b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhSU9TOjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCwgR3JhcGhpY3NMYXllclBh
aW50aW5nUGhhc2UsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQotewotfQotCi1mbG9hdCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYUlPUzo6bWluaW11bURvY3VtZW50U2NhbGUoKSBjb25z
dAotewotICAgIHJldHVybiAxLjA7Ci19Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFJT1M6OmFsbG93Q29tcG9zaXRpbmdMYXllclZpc3VhbERlZ3JhZGF0aW9uKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFJT1M6OmZsdXNoTGF5ZXJzKCkKLXsKLSAgICBAYXV0b3JlbGVhc2Vwb29sIHsKLSAgICAg
ICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgpOwotICAgICAgICByZXR1cm4gbV93ZWJQYWdl
LT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUlu
Y2x1ZGluZ1N1YmZyYW1lcygpOwotICAgIH0KLX0KLQotdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYUlPUzo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIGxheWVyUG9zaXRpb24pCi17Ci0gICAgbV93ZWJQYWdlLT5z
ZXRTaXplKHZpZXdTaXplKTsKLSAgICBtX3dlYlBhZ2UtPmxheW91dElmTmVlZGVkKCk7Ci19Ci0K
LXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFJT1M6OnNldERldmljZVNjYWxlRmFj
dG9yKGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQotewotICAgIG1fd2ViUGFnZS0+c2V0RGV2aWNl
U2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0b3IpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQK
</data>
<flag name="review"
          id="241707"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>