<?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>68224</bug_id>
          
          <creation_ts>2011-09-15 23:28:20 -0700</creation_ts>
          <short_desc>[Chromium] Get rid of WebAccessibilityCache</short_desc>
          <delta_ts>2011-10-10 10:23:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dominic Mazzoni">dmazzoni</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>468327</commentid>
    <comment_count>0</comment_count>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-09-15 23:28:20 -0700</bug_when>
    <thetext>WebAccessibilityCache is duplicating the functionality of AXObjectCache rather than replacing it.

In addition, it&apos;s resulting in a subtle and confusing bug: because it uses a hash from pointer to ID, occasionally an object will be deleted, but another object will be allocated that coincidentally happens to get the same pointer address. When this happens, WebAccessibilityCache gives it the same ID, which can cause all sorts of anomalous behavior.

Strategy: first add the necessary methods to wrap the existing AXObjectCache functionality needed. Then remove WebAccessibilityCache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476186</commentid>
    <comment_count>1</comment_count>
      <attachid>109315</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-09-30 11:06:10 -0700</bug_when>
    <thetext>Created attachment 109315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>476188</commentid>
    <comment_count>2</comment_count>
      <attachid>109315</attachid>
    <who name="Dominic Mazzoni">dmazzoni</who>
    <bug_when>2011-09-30 11:07:59 -0700</bug_when>
    <thetext>Comment on attachment 109315
Patch

Note: the changes to remove the dependency on WebAccessibilityCache landed in Chromium 24 hours ago. I edited WebKit.gyp and made sure that Chromium compiles.

Just double-checking, are there any other files I need to edit when removing source files from WebKit/chromium?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480990</commentid>
    <comment_count>3</comment_count>
      <attachid>109315</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-10 10:23:32 -0700</bug_when>
    <thetext>Comment on attachment 109315
Patch

Clearing flags on attachment: 109315

Committed r97068: &lt;http://trac.webkit.org/changeset/97068&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480991</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-10 10:23:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109315</attachid>
            <date>2011-09-30 11:06:10 -0700</date>
            <delta_ts>2011-10-10 10:23:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68224-20110930110609.patch</filename>
            <type>text/plain</type>
            <size>18011</size>
            <attacher name="Dominic Mazzoni">dmazzoni</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA5NjQwNSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTEtMDktMzAgIERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CisK
KyAgICAgICAgW0Nocm9taXVtXSBHZXQgcmlkIG9mIFdlYkFjY2Vzc2liaWxpdHlDYWNoZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4MjI0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lw
OgorICAgICAgICAqIHB1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Q2FjaGUuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzcmMvV2ViQWNjZXNzaWJpbGl0eUNhY2hlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBzcmMvV2ViQWNjZXNzaWJpbGl0eUNhY2hlSW1wbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
c3JjL1dlYkFjY2Vzc2liaWxpdHlDYWNoZUltcGwuaDogUmVtb3ZlZC4KKwogMjAxMS0wOS0yOSAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW2Nocm9taXVtXSBleHBvc2UgaW5zcGVjdG9yIHByb3RvY29sIHZlcnNpb24gdG8gdGhl
IGVtYmVkZGVyLgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAkocmV2aXNpb24gOTY0
MDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMyw3ICsxMDMsNiBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvbWFjL1dlYlNjcmVl
bkluZm9GYWN0b3J5LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvbWFjL1dlYlN1YnN0cmlu
Z1V0aWwuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9tYWMvV2ViVGhlbWVFbmdpbmUuaCcs
Ci0gICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Q2FjaGUuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkFjY2Vzc2liaWxpdHlSb2xlLmgnLApAQCAtNDMyLDkgKzQzMSw2
IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJUZXh0Q2hlY2tpbmdDb21wbGV0aW9uSW1wbC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvVmlkZW9GcmFtZUNocm9taXVtSW1wbC5jcHAnLAog
ICAgICAgICAgICAgICAgICdzcmMvVmlkZW9GcmFtZUNocm9taXVtSW1wbC5oJywKLSAgICAgICAg
ICAgICAgICAnc3JjL1dlYkFjY2Vzc2liaWxpdHlDYWNoZS5jcHAnLAotICAgICAgICAgICAgICAg
ICdzcmMvV2ViQWNjZXNzaWJpbGl0eUNhY2hlSW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdz
cmMvV2ViQWNjZXNzaWJpbGl0eUNhY2hlSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3QuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkFuaW1h
dGlvbkNvbnRyb2xsZXJJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJBbmltYXRp
b25Db250cm9sbGVySW1wbC5oJywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkFjY2Vzc2liaWxpdHlDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlDYWNoZS5oCShyZXZpc2lvbiA5NjQwMikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkFjY2Vzc2liaWxpdHlDYWNoZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDkg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkFjY2Vzc2liaWxpdHlDYWNo
ZV9oCi0jZGVmaW5lIFdlYkFjY2Vzc2liaWxpdHlDYWNoZV9oCi0KLSNpbmNsdWRlICJXZWJDb21t
b24uaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlZpZXc7Ci1jbGFzcyBXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0OwotCi1jbGFzcyBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGUgewotcHVi
bGljOgotICAgIFdlYkFjY2Vzc2liaWxpdHlDYWNoZSgpIHt9Ci0gICAgdmlydHVhbCB+V2ViQWNj
ZXNzaWJpbGl0eUNhY2hlKCkge30KLQotICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIFdlYkFjY2Vz
c2liaWxpdHlDYWNoZSogY3JlYXRlKCk7Ci0gICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBl
bmFibGVBY2Nlc3NpYmlsaXR5KCk7Ci0gICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgYm9vbCBhY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpOwotCi0gICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoV2ViVmll
dyogdmlldykgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc0luaXRpYWxpemVkKCkgY29uc3QgPSAw
OwotCi0gICAgdmlydHVhbCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0IGdldE9iamVjdEJ5SWQoaW50
KSA9IDA7Ci0gICAgdmlydHVhbCBpbnQgYWRkT3JHZXRJZChjb25zdCBXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0JiBvYmplY3QpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNDYWNoZWQoY29uc3QgV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdCYpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoaW50
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKCkgPSAwOwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
QWNjZXNzaWJpbGl0eUNhY2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5Q2FjaGUuY3BwCShyZXZpc2lvbiA5NjQwMikKKysrIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkFjY2Vzc2liaWxpdHlDYWNoZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0g
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
ZWJBY2Nlc3NpYmlsaXR5Q2FjaGUuaCIKLQotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKLQot
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi12b2lkIFdl
YkFjY2Vzc2liaWxpdHlDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpCi17Ci0gICAgQVhPYmpl
Y3RDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwotfQotCi1ib29sIFdlYkFjY2Vzc2liaWxp
dHlDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKQotewotICAgIHJldHVybiBBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsLmNw
cAkocmV2aXNpb24gOTY0MDIpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nl
c3NpYmlsaXR5Q2FjaGVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwxNzcgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsLmgi
Ci0KLSNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCi0jaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRnJhbWUuaCIKLQotI2lu
Y2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKLSNpbmNsdWRlICJXZWJGcmFtZUltcGwu
aCIKLSNpbmNsdWRlICJXZWJWaWV3SW1wbC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNvbnN0IGludCBpbnZhbGlkT2JqZWN0SWQgPSAtMTsK
LWNvbnN0IGludCBmaXJzdE9iamVjdElkID0gMTAwMDsKLQotc3RhdGljIFBhc3NSZWZQdHI8QWNj
ZXNzaWJpbGl0eU9iamVjdD4gdG9BY2Nlc3NpYmlsaXR5T2JqZWN0KGNvbnN0IFdlYkFjY2Vzc2li
aWxpdHlPYmplY3QmIG9iamVjdCkKLXsKLSAgICByZXR1cm4gb2JqZWN0OwotfQotCi0vLyBXZWJW
aWV3IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotV2ViQWNjZXNzaWJpbGl0eUNhY2hlKiBXZWJBY2Nlc3NpYmlsaXR5Q2Fj
aGU6OmNyZWF0ZSgpCi17Ci0gICAgcmV0dXJuIG5ldyBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBs
KCk7Ci19Ci0KLS8vIFdlYWtIYW5kbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1QYXNzUmVmUHRyPFdlYkFjY2Vzc2liaWxp
dHlDYWNoZUltcGw6OldlYWtIYW5kbGU+IFdlYkFjY2Vzc2liaWxpdHlDYWNoZUltcGw6OldlYWtI
YW5kbGU6OmNyZWF0ZShBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCi17Ci0gICAgUmVmUHRy
PFdlYkFjY2Vzc2liaWxpdHlDYWNoZUltcGw6OldlYWtIYW5kbGU+IHdlYWtIYW5kbGUgPSBhZG9w
dFJlZihuZXcgV2ViQWNjZXNzaWJpbGl0eUNhY2hlSW1wbDo6V2Vha0hhbmRsZShvYmplY3QpKTsK
LSAgICB3ZWFrSGFuZGxlLT5tX29iamVjdC0+c2V0V3JhcHBlcih3ZWFrSGFuZGxlLmdldCgpKTsK
LSAgICAKLSAgICByZXR1cm4gd2Vha0hhbmRsZS5yZWxlYXNlKCk7Ci19Ci0KLVdlYkFjY2Vzc2li
aWxpdHlDYWNoZUltcGw6OldlYWtIYW5kbGU6OldlYWtIYW5kbGUoQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0KQotICAgIDogQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIob2JqZWN0KQotewot
fQotCi0vLyBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotdm9pZCBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsOjpXZWFr
SGFuZGxlOjpkZXRhY2goKQotewotICAgIGlmIChtX29iamVjdCkKLSAgICAgICAgbV9vYmplY3Qg
PSAwOwotfQotCi1XZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsOjpXZWJBY2Nlc3NpYmlsaXR5Q2Fj
aGVJbXBsKCkKLSAgICA6IG1fbmV4dE5ld0lkKGZpcnN0T2JqZWN0SWQpCi0gICAgLCBtX2luaXRp
YWxpemVkKGZhbHNlKQotewotfQotCi1XZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsOjp+V2ViQWNj
ZXNzaWJpbGl0eUNhY2hlSW1wbCgpCi17Ci19Ci0KLXZvaWQgV2ViQWNjZXNzaWJpbGl0eUNhY2hl
SW1wbDo6aW5pdGlhbGl6ZShXZWJWaWV3KiB2aWV3KQotewotICAgIEFYT2JqZWN0Q2FjaGU6OmVu
YWJsZUFjY2Vzc2liaWxpdHkoKTsKLSAgICBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0IHJvb3QgPSB2
aWV3LT5hY2Nlc3NpYmlsaXR5T2JqZWN0KCk7Ci0gICAgaWYgKHJvb3QuaXNOdWxsKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiByb290T2JqZWN0
ID0gdG9BY2Nlc3NpYmlsaXR5T2JqZWN0KHJvb3QpOwotCi0gICAgLy8gSW5zZXJ0IHJvb3QgaW4g
aGFzaG1hcHMuCi0gICAgbV9vYmplY3RNYXAuc2V0KG1fbmV4dE5ld0lkLCBXZWFrSGFuZGxlOjpj
cmVhdGUocm9vdE9iamVjdC5nZXQoKSkpOwotICAgIG1faWRNYXAuc2V0KHJvb3RPYmplY3QuZ2V0
KCksIG1fbmV4dE5ld0lkKyspOwotCi0gICAgbV9pbml0aWFsaXplZCA9IHRydWU7Ci19Ci0KLVdl
YkFjY2Vzc2liaWxpdHlPYmplY3QgV2ViQWNjZXNzaWJpbGl0eUNhY2hlSW1wbDo6Z2V0T2JqZWN0
QnlJZChpbnQgaWQpCi17Ci0gICAgT2JqZWN0TWFwOjppdGVyYXRvciBpdCA9IG1fb2JqZWN0TWFw
LmZpbmQoaWQpOwotCi0gICAgaWYgKGl0ID09IG1fb2JqZWN0TWFwLmVuZCgpIHx8ICFpdC0+c2Vj
b25kKQotICAgICAgICByZXR1cm4gV2ViQWNjZXNzaWJpbGl0eU9iamVjdCgpOwotCi0gICAgcmV0
dXJuIFdlYkFjY2Vzc2liaWxpdHlPYmplY3QoaXQtPnNlY29uZC0+YWNjZXNzaWJpbGl0eU9iamVj
dCgpKTsKLX0KLQotdm9pZCBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsOjpyZW1vdmUoaW50IGlk
KQotewotICAgIE9iamVjdE1hcDo6aXRlcmF0b3IgaXQgPSBtX29iamVjdE1hcC5maW5kKGlkKTsK
LQotICAgIGlmIChpdCA9PSBtX29iamVjdE1hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKGl0LT5zZWNvbmQpIHsKLSAgICAgICAgLy8gRXJhc2UgZWxlbWVudCBmcm9tIHJldmVy
c2UgaGFzaG1hcC4KLSAgICAgICAgSWRNYXA6Oml0ZXJhdG9yIGl0MiA9IG1faWRNYXAuZmluZChp
dC0+c2Vjb25kLT5hY2Nlc3NpYmlsaXR5T2JqZWN0KCkpOwotICAgICAgICBpZiAoaXQyICE9IG1f
aWRNYXAuZW5kKCkpCi0gICAgICAgICAgICBtX2lkTWFwLnJlbW92ZShpdDIpOwotICAgIH0KLQot
ICAgIG1fb2JqZWN0TWFwLnJlbW92ZShpdCk7Ci19Ci0KLXZvaWQgV2ViQWNjZXNzaWJpbGl0eUNh
Y2hlSW1wbDo6Y2xlYXIoKQotewotICAgIG1fb2JqZWN0TWFwLmNsZWFyKCk7Ci0gICAgbV9pZE1h
cC5jbGVhcigpOwotfQotCi1pbnQgV2ViQWNjZXNzaWJpbGl0eUNhY2hlSW1wbDo6YWRkT3JHZXRJ
ZChjb25zdCBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QpCi17Ci0gICAgaWYgKCFvYmpl
Y3QuaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gaW52YWxpZE9iamVjdElkOwotCi0gICAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG8gPSB0b0FjY2Vzc2liaWxpdHlPYmplY3Qob2JqZWN0
KTsKLQotICAgIElkTWFwOjppdGVyYXRvciBpdCA9IG1faWRNYXAuZmluZChvLmdldCgpKTsKLQot
ICAgIGlmIChpdCAhPSBtX2lkTWFwLmVuZCgpKQotICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsK
LQotICAgIC8vIEluc2VydCBuZXcgYWNjZXNzaWJpbGl0eSBvYmplY3QgaW4gaGFzaG1hcHMgYW5k
IHJldHVybiBpdHMgbmV3bHkKLSAgICAvLyBhc3NpZ25lZCBhY2Nlc3NpYmlsaXR5IG9iamVjdCBp
ZC4KLSAgICBtX29iamVjdE1hcC5zZXQobV9uZXh0TmV3SWQsIFdlYWtIYW5kbGU6OmNyZWF0ZShv
LmdldCgpKSk7Ci0gICAgbV9pZE1hcC5zZXQoby5nZXQoKSwgbV9uZXh0TmV3SWQpOwotCi0gICAg
cmV0dXJuIG1fbmV4dE5ld0lkKys7Ci19Ci0KLWJvb2wgV2ViQWNjZXNzaWJpbGl0eUNhY2hlSW1w
bDo6aXNDYWNoZWQoY29uc3QgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQotewotICAg
IGlmICghb2JqZWN0LmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgUmVm
UHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IG8gPSB0b0FjY2Vzc2liaWxpdHlPYmplY3Qob2JqZWN0
KTsKLSAgICBJZE1hcDo6aXRlcmF0b3IgaXQgPSBtX2lkTWFwLmZpbmQoby5nZXQoKSk7Ci0gICAg
aWYgKGl0ID09IG1faWRNYXAuZW5kKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkFjY2Vzc2liaWxpdHlDYWNoZUltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsLmgJKHJldmlzaW9uIDk2
NDAyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQWNjZXNzaWJpbGl0eUNhY2hl
SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkFjY2Vzc2li
aWxpdHlDYWNoZUltcGxfaAotI2RlZmluZSBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsX2gKLQot
I2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLmgiCi0jaW5jbHVkZSAiV2ViQWNj
ZXNzaWJpbGl0eUNhY2hlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gRklYTUU6IFNob3Vs
ZCBiZSBlbGltaW5hdGVkIHRvIHVzZSBBWE9iamVjdENhY2hlIGluc3RlYWQuCi1jbGFzcyBXZWJB
Y2Nlc3NpYmlsaXR5Q2FjaGVJbXBsIDogcHVibGljIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eUNh
Y2hlIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShXZWJWaWV3KiB2aWV3
KTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNJbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5p
dGlhbGl6ZWQ7IH0KLQotICAgIHZpcnR1YWwgV2ViQWNjZXNzaWJpbGl0eU9iamVjdCBnZXRPYmpl
Y3RCeUlkKGludCk7Ci0gICAgdmlydHVhbCBpbnQgYWRkT3JHZXRJZChjb25zdCBXZWJLaXQ6Oldl
YkFjY2Vzc2liaWxpdHlPYmplY3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNDYWNoZWQoY29uc3Qg
V2ViQWNjZXNzaWJpbGl0eU9iamVjdCYpOwotCi0gICAgdmlydHVhbCB2b2lkIHJlbW92ZShpbnQp
OwotICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpOwotCi1wcm90ZWN0ZWQ6Ci0gICAgZnJpZW5kIGNs
YXNzIFdlYktpdDo6V2ViQWNjZXNzaWJpbGl0eUNhY2hlOwotCi0gICAgV2ViQWNjZXNzaWJpbGl0
eUNhY2hlSW1wbCgpOwotICAgIH5XZWJBY2Nlc3NpYmlsaXR5Q2FjaGVJbXBsKCk7Ci0KLXByaXZh
dGU6Ci0gICAgLy8gRklYTUU6IFRoaXMgY2FuIGJlIGp1c3QgcGFydCBvZiBDaHJvbWl1bSdzIEFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyLgotICAgIGNsYXNzIFdlYWtIYW5kbGUgOiBwdWJsaWMg
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgewotICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2Vha0hhbmRsZT4gY3JlYXRlKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3QqKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwotICAgIHByaXZh
dGU6Ci0gICAgICAgIFdlYWtIYW5kbGUoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdCopOwot
ICAgIH07Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBSZWZQdHI8V2Vha0hhbmRsZT4gPiBP
YmplY3RNYXA7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3QqLCBpbnQ+IElkTWFwOwotCi0gICAgLy8gSGFzaG1hcCBmb3IgY2FjaGluZyBvZiBlbGVtZW50
cyBpbiB1c2UgYnkgdGhlIEFULCBtYXBwaW5nIGlkIChpbnQpIHRvCi0gICAgLy8gV2ViQWNjZXNz
aWJpbGl0eU9iamVjdC4KLSAgICBPYmplY3RNYXAgbV9vYmplY3RNYXA7Ci0gICAgLy8gSGFzaG1h
cCBmb3IgY2FjaGluZyBvZiBlbGVtZW50cyBpbiB1c2UgYnkgdGhlIEFULCBtYXBwaW5nIGEKLSAg
ICAvLyBBY2Nlc3NpYmlsaXR5T2JqZWN0IHBvaW50ZXIgdG8gaXRzIGlkIChpbnQpLiBOZWVkZWQg
Zm9yIHJldmVyc2UgbG9va3VwLAotICAgIC8vIHRvIGVuc3VyZSB1bm5lY2Vzc2FyeSBkdXBsaWNh
dGUgZW50cmllcyBhcmUgbm90IGNyZWF0ZWQgaW4gdGhlCi0gICAgLy8gT2JqZWN0TWFwIGFuZCBm
b3IgZm9jdXMgY2hhbmdlcyBpbiBXZWJLaXQuCi0gICAgSWRNYXAgbV9pZE1hcDsKLQotICAgIC8v
IFVuaXF1ZSBpZGVudGlmaWVyIGZvciByZXRyaWV2aW5nIGFuIGFjY2Vzc2liaWxpdHkgb2JqZWN0
IGZyb20gdGhlIHBhZ2UncwotICAgIC8vIGhhc2htYXBzLiBJZCBpcyBhbHdheXMgMCBmb3IgdGhl
IHJvb3Qgb2YgdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0Ci0gICAgLy8gaGllcmFyY2h5IChvbiBh
IHBlci1yZW5kZXJlciBwcm9jZXNzIGJhc2lzKS4KLSAgICBpbnQgbV9uZXh0TmV3SWQ7Ci0KLSAg
ICBib29sIG1faW5pdGlhbGl6ZWQ7Ci19OwotCi19Ci0KLSNlbmRpZgpJbmRleDogVG9vbHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gOTY0MDUpCisr
KyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0w
OS0zMCAgRG9taW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KKworICAgICAgICBb
Q2hyb21pdW1dIEdldCByaWQgb2YgV2ViQWNjZXNzaWJpbGl0eUNhY2hlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgyMjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpiaW5kVG9KYXZhc2NyaXB0KToKKwogMjAxMS0wOS0zMCAgUWkgWmhhbmcgIDxx
aS4yLnpoYW5nQG5va2lhLmNvbT4KIAogICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldEFwcENhY2hlTWF4aW11bVNpemUKSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5jcHAJKHJldmlzaW9uIDk2NDAyKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICsz
Miw2IEBACiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCIKIAogI2luY2x1ZGUg
IlRlc3RTaGVsbC5oIgotI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlDYWNoZS5oIgogI2luY2x1
ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2lu
Y2x1ZGUgIldlYlN0cmluZy5oIgpAQCAtNTcsNyArNTYsNyBAQCBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6QWNjZXNzaWJpbGl0eUNvCiAKIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmJp
bmRUb0phdmFzY3JpcHQoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIGNsYXNzbmFt
ZSkKIHsKLSAgICBXZWJBY2Nlc3NpYmlsaXR5Q2FjaGU6OmVuYWJsZUFjY2Vzc2liaWxpdHkoKTsK
KyAgICBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CiAgICAg
Q3BwQm91bmRDbGFzczo6YmluZFRvSmF2YXNjcmlwdChmcmFtZSwgY2xhc3NuYW1lKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>