<?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>48410</bug_id>
          
          <creation_ts>2010-10-27 04:04:48 -0700</creation_ts>
          <short_desc>IDBObjectStoreBackend and IDBIndexBackend should not depend on IDBDatabaseBackend</short_desc>
          <delta_ts>2010-11-05 04:53:57 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>andreip</cc>
    
    <cc>hans</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>300106</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-27 04:04:48 -0700</bug_when>
    <thetext>IDBObjectStoreBackend and IDBIndexBackend should not depend on IDBDatabaseBackend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300107</commentid>
    <comment_count>1</comment_count>
      <attachid>72001</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-27 04:06:28 -0700</bug_when>
    <thetext>Created attachment 72001
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300109</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-27 04:06:56 -0700</bug_when>
    <thetext>An easy one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300156</commentid>
    <comment_count>3</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-10-27 05:52:08 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>302778</commentid>
    <comment_count>4</comment_count>
      <attachid>72001</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-11-01 10:50:35 -0700</bug_when>
    <thetext>Comment on attachment 72001
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305227</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-11-05 04:53:57 -0700</bug_when>
    <thetext>Committed r71408: &lt;http://trac.webkit.org/changeset/71408&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72001</attachid>
            <date>2010-10-27 04:06:28 -0700</date>
            <delta_ts>2010-11-01 10:50:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48410-20101027120625.patch</filename>
            <type>text/plain</type>
            <size>21353</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjkzMWU3NjE1OGE3ZjA1ZTIwM2VhMWY2ZGY3MDRhNDRmN2ExOTRmMi4uMTBkMjJkMDdiNDJhMmRh
NDFiZTU4ZGY4YjcwZDg0YTVkZmNjODVlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMC0xMC0yNyAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJREJPYmplY3RTdG9yZUJhY2tlbmQgYW5kIElEQklu
ZGV4QmFja2VuZCBzaG91bGQgbm90IGRlcGVuZCBvbiBJREJEYXRhYmFzZUJhY2tlbmQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4NDEwCisKKyAgICAg
ICAgQnJlYWsgZGVwZW5kZW5jeSBjeWxlcyBiZXR3ZWVuIElEQkRhdGFiYXNlQmFja2VuZCBhbmQg
dGhlIG90aGVyIGNsYXNzZXMgbGlzdGVkLgorICAgICAgICBUaGlzIHdhcyBjYXVzaW5nIG1lbW9y
eSBsZWFrcy4KKworICAgICAgICAqIHN0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OklEQkN1cnNvckJhY2tlbmRJ
bXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjp1cGRhdGVJbnRl
cm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6cmVtb3ZlSW50
ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29yQmFja2VuZEltcGw6OmRhdGFiYXNl
KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJREJDdXJzb3JCYWNrZW5kSW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdG9yYWdl
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6bG9hZE9iamVjdFN0b3Jlcyk6CisgICAgICAgICogc3RvcmFn
ZS9JREJJbmRleEJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFj
a2VuZEltcGw6OklEQkluZGV4QmFja2VuZEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5k
ZXhCYWNrZW5kSW1wbDo6b3BlbkN1cnNvckludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkluZGV4QmFja2VuZEltcGw6OnNxbGl0ZURhdGFiYXNlKToKKyAgICAgICAgKiBzdG9yYWdlL0lE
QkluZGV4QmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZElt
cGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjpzdG9y
ZU5hbWUpOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGw6OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsOjpsb2FkSW5kZXhlcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsOjpzcWxpdGVEYXRhYmFzZSk6CisgICAgICAgICogc3RvcmFn
ZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsOjpjcmVhdGUpOgorCiAyMDEwLTEwLTI2ICBOaWtvbGFzIFppbW1l
cm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJvYiBC
dWlzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNw
cCBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKaW5kZXggNDBiNDZj
NmMyZGFhOWYxNzdmOWQyZTRiYjg3MWExZjk3MWNkYmFlMC4uOGQ1YzhhMWUwM2IwYTYyMTAwOTNl
YzVkOTFmYmNkYTM1NjgwYzkyNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkN1cnNv
ckJhY2tlbmRJbXBsLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZElt
cGwuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNs
dWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdC5o
IgorI2luY2x1ZGUgIklEQlNRTGl0ZURhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiU1FMaXRlRGF0YWJhc2UuaCIKICNpbmNs
dWRlICJTUUxpdGVTdGF0ZW1lbnQuaCIKQEAgLTQ0LDE5ICs0NSw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSURCQ3Vyc29yQmFja2VuZEltcGw6OklEQkN1cnNvckJhY2tlbmRJbXBsKFBh
c3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gaWRiT2JqZWN0U3RvcmUsIFBhc3NS
ZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rp
b24sIFBhc3NPd25QdHI8U1FMaXRlU3RhdGVtZW50PiBxdWVyeSwgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikKLSAgICA6IG1faWRiT2JqZWN0U3RvcmUoaWRiT2Jq
ZWN0U3RvcmUpCi0gICAgLCBtX2tleVJhbmdlKGtleVJhbmdlKQotICAgICwgbV9kaXJlY3Rpb24o
ZGlyZWN0aW9uKQotICAgICwgbV9xdWVyeShxdWVyeSkKLSAgICAsIG1faXNTZXJpYWxpemVkU2Ny
aXB0VmFsdWVDdXJzb3IodHJ1ZSkKLSAgICAsIG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCi17
Ci0gICAgbG9hZEN1cnJlbnRSb3coKTsKLX0KLQotSURCQ3Vyc29yQmFja2VuZEltcGw6OklEQkN1
cnNvckJhY2tlbmRJbXBsKFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaWRiSW5kZXgs
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJREJDdXJzb3I6OkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFBhc3NPd25QdHI8U1FMaXRlU3RhdGVtZW50PiBxdWVyeSwgYm9vbCBpc1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUN1cnNvciwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0
cmFuc2FjdGlvbikKLSAgICA6IG1faWRiSW5kZXgoaWRiSW5kZXgpCitJREJDdXJzb3JCYWNrZW5k
SW1wbDo6SURCQ3Vyc29yQmFja2VuZEltcGwoSURCU1FMaXRlRGF0YWJhc2UqIGRhdGFiYXNlLCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGly
ZWN0aW9uLCBQYXNzT3duUHRyPFNRTGl0ZVN0YXRlbWVudD4gcXVlcnksIGJvb2wgaXNTZXJpYWxp
emVkU2NyaXB0VmFsdWVDdXJzb3IsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJh
bnNhY3Rpb24pCisgICAgOiBtX2RhdGFiYXNlKGRhdGFiYXNlKQogICAgICwgbV9rZXlSYW5nZShr
ZXlSYW5nZSkKICAgICAsIG1fZGlyZWN0aW9uKGRpcmVjdGlvbikKICAgICAsIG1fcXVlcnkocXVl
cnkpCkBAIC0xMTMsNyArMTAzLDcgQEAgdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6dXBkYXRl
SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SUQKICAgICB9CiAK
ICAgICBTdHJpbmcgc3FsID0gIlVQREFURSBPYmplY3RTdG9yZURhdGEgU0VUIHZhbHVlID0gPyBX
SEVSRSBpZCA9ID8iOwotICAgIFNRTGl0ZVN0YXRlbWVudCB1cGRhdGVRdWVyeShjdXJzb3ItPmRh
dGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCksIHNxbCk7CisgICAgU1FMaXRlU3RhdGVtZW50IHVw
ZGF0ZVF1ZXJ5KGN1cnNvci0+ZGF0YWJhc2UoKSwgc3FsKTsKICAgICAKICAgICBib29sIG9rID0g
dXBkYXRlUXVlcnkucHJlcGFyZSgpID09IFNRTFJlc3VsdE9rOwogICAgIEFTU0VSVF9VTlVTRUQo
b2ssIG9rKTsgLy8gRklYTUU6IEJldHRlciBlcnJvciBoYW5kbGluZy4KQEAgLTE4OSw3ICsxNzks
NyBAQCB2b2lkIElEQkN1cnNvckJhY2tlbmRJbXBsOjpyZW1vdmVJbnRlcm5hbChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJRAogICAgIH0KIAogICAgIFN0cmluZyBzcWwgPSAi
REVMRVRFIEZST00gT2JqZWN0U3RvcmVEYXRhIFdIRVJFIGlkID0gPyI7Ci0gICAgU1FMaXRlU3Rh
dGVtZW50IGRlbGV0ZVF1ZXJ5KGN1cnNvci0+ZGF0YWJhc2UoKS0+c3FsaXRlRGF0YWJhc2UoKSwg
c3FsKTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgZGVsZXRlUXVlcnkoY3Vyc29yLT5kYXRhYmFzZSgp
LCBzcWwpOwogICAgIAogICAgIGJvb2wgb2sgPSBkZWxldGVRdWVyeS5wcmVwYXJlKCkgPT0gU1FM
UmVzdWx0T2s7CiAgICAgQVNTRVJUX1VOVVNFRChvaywgb2spOyAvLyBGSVhNRTogQmV0dGVyIGVy
cm9yIGhhbmRsaW5nLgpAQCAtMjE0LDExICsyMDQsOSBAQCB2b2lkIElEQkN1cnNvckJhY2tlbmRJ
bXBsOjpsb2FkQ3VycmVudFJvdygpCiAgICAgICAgIG1fY3VycmVudElEQktleVZhbHVlID0gSURC
S2V5Ojpmcm9tUXVlcnkoKm1fcXVlcnksIDQpOwogfQogCi1JREJEYXRhYmFzZUJhY2tlbmRJbXBs
KiBJREJDdXJzb3JCYWNrZW5kSW1wbDo6ZGF0YWJhc2UoKSBjb25zdAorU1FMaXRlRGF0YWJhc2Um
IElEQkN1cnNvckJhY2tlbmRJbXBsOjpkYXRhYmFzZSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1faWRi
T2JqZWN0U3RvcmUpCi0gICAgICAgIHJldHVybiBtX2lkYk9iamVjdFN0b3JlLT5kYXRhYmFzZSgp
OwotICAgIHJldHVybiBtX2lkYkluZGV4LT5vYmplY3RTdG9yZSgpLT5kYXRhYmFzZSgpOworICAg
IHJldHVybiBtX2RhdGFiYXNlLT5kYigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQ3Vyc29yQmFja2VuZEltcGwuaCBiL1dlYkNv
cmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCmluZGV4IDVkZDQ1ZjI1NjhiYjUwZGY3
OTQ5MzI3OGIyNDIyMmM4Yjg5OTcyYWIuLmI2NDZmMWNjMDIwZmY1MDBlZjJmYmYxZjQ2NmQ1Njcy
MGM5N2EzYTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1w
bC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDdXJzb3JCYWNrZW5kSW1wbC5oCkBAIC00MSwx
OSArNDEsMTcgQEAgY2xhc3MgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDsKIGNsYXNzIElEQkluZGV4
QmFja2VuZEltcGw7CiBjbGFzcyBJREJLZXlSYW5nZTsKIGNsYXNzIElEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGw7CitjbGFzcyBJREJTUUxpdGVEYXRhYmFzZTsKIGNsYXNzIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZTsKK2NsYXNzIFNRTGl0ZURhdGFiYXNlOwogY2xhc3MgU1FMaXRlU3Rh
dGVtZW50OwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogCiBjbGFzcyBJREJDdXJzb3JC
YWNrZW5kSW1wbCA6IHB1YmxpYyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNrZW5kSW1wbD4gY3JlYXRlKFBhc3NS
ZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rpb24sIFBh
c3NPd25QdHI8U1FMaXRlU3RhdGVtZW50PiBxdWVyeSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiB0cmFuc2FjdGlvbikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3JCYWNr
ZW5kSW1wbD4gY3JlYXRlKElEQlNRTGl0ZURhdGFiYXNlKiBkYXRhYmFzZSwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiwgUGFz
c093blB0cjxTUUxpdGVTdGF0ZW1lbnQ+IHF1ZXJ5LCBib29sIGlzU2VyaWFsaXplZFNjcmlwdFZh
bHVlQ3Vyc29yLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JCYWNrZW5kSW1wbChv
YmplY3RTdG9yZSwga2V5UmFuZ2UsIGRpcmVjdGlvbiwgcXVlcnksIHRyYW5zYWN0aW9uKSk7Ci0g
ICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbXBsPiBjcmVhdGUo
UGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBpbmRleCwgUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4ga2V5UmFuZ2UsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiwgUGFzc093blB0
cjxTUUxpdGVTdGF0ZW1lbnQ+IHF1ZXJ5LCBib29sIGlzU2VyaWFsaXplZFNjcmlwdFZhbHVlQ3Vy
c29yLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJDdXJzb3JCYWNrZW5kSW1wbChpbmRleCwg
a2V5UmFuZ2UsIGRpcmVjdGlvbiwgcXVlcnksIGlzU2VyaWFsaXplZFNjcmlwdFZhbHVlQ3Vyc29y
LCB0cmFuc2FjdGlvbikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkN1cnNvckJh
Y2tlbmRJbXBsKGRhdGFiYXNlLCBrZXlSYW5nZSwgZGlyZWN0aW9uLCBxdWVyeSwgaXNTZXJpYWxp
emVkU2NyaXB0VmFsdWVDdXJzb3IsIHRyYW5zYWN0aW9uKSk7CiAgICAgfQogICAgIHZpcnR1YWwg
fklEQkN1cnNvckJhY2tlbmRJbXBsKCk7CiAKQEAgLTY1LDExICs2MywxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZShQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIEV4Y2VwdGlv
bkNvZGUmKTsKIAogcHJpdmF0ZToKLSAgICBJREJDdXJzb3JCYWNrZW5kSW1wbChQYXNzUmVmUHRy
PElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgSURC
Q3Vyc29yOjpEaXJlY3Rpb24sIFBhc3NPd25QdHI8U1FMaXRlU3RhdGVtZW50PiBxdWVyeSwgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7Ci0gICAgSURCQ3Vyc29yQmFja2VuZEltcGwo
UGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4s
IElEQkN1cnNvcjo6RGlyZWN0aW9uLCBQYXNzT3duUHRyPFNRTGl0ZVN0YXRlbWVudD4gcXVlcnks
IGJvb2wgaXNTZXJpYWxpemVkU2NyaXB0VmFsdWVDdXJzb3IsIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSopOworICAgIElEQkN1cnNvckJhY2tlbmRJbXBsKElEQlNRTGl0ZURhdGFiYXNl
KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIElEQkN1cnNvcjo6RGlyZWN0aW9uLCBQYXNzT3du
UHRyPFNRTGl0ZVN0YXRlbWVudD4gcXVlcnksIGJvb2wgaXNTZXJpYWxpemVkU2NyaXB0VmFsdWVD
dXJzb3IsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOwogCiAgICAgdm9pZCBsb2Fk
Q3VycmVudFJvdygpOwotICAgIElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlKCkgY29u
c3Q7CisgICAgU1FMaXRlRGF0YWJhc2UmIGRhdGFiYXNlKCkgY29uc3Q7CiAKICAgICBzdGF0aWMg
dm9pZCB1cGRhdGVJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJ
REJDdXJzb3JCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKICAgICBzdGF0aWMgdm9pZCBjb250aW51ZUZ1bmN0
aW9uSW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCQ3Vyc29y
QmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
Pik7CkBAIC03Nyw5ICs3NCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgY29uc3QgaW50NjRf
dCBJbnZhbGlkSWQgPSAtMTsKIAotICAgIC8vIE9ubHkgb25lIG9yIHRoZSBvdGhlciBzaG91bGQg
YmUgdXNlZC4KLSAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gbV9pZGJPYmpl
Y3RTdG9yZTsKLSAgICBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gbV9pZGJJbmRleDsKKyAg
ICBSZWZQdHI8SURCU1FMaXRlRGF0YWJhc2U+IG1fZGF0YWJhc2U7CiAKICAgICBSZWZQdHI8SURC
S2V5UmFuZ2U+IG1fa2V5UmFuZ2U7CiAgICAgSURCQ3Vyc29yOjpEaXJlY3Rpb24gbV9kaXJlY3Rp
b247CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5j
cHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggMDIw
ZGRiOWUwYjg0NjE5MDQ0ZDU1ZGI0OTY2NzY3ZTA4NzY4ZjNiMy4uM2JlZThmZTRjMzA4YzI2N2U1
MTY2Njg4MjdmNWFkMWU5NjhmYTYyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIFBhc3NSZWZQdHI8SURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW50ZXJmYWNlPiAgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlT2JqZWN0
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsPiBvYmplY3RTdG9yZSA9IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0
ZSh0aGlzLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50KTsKKyAgICBSZWZQdHI8SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUgPSBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsOjpjcmVhdGUobV9zcWxpdGVEYXRhYmFzZS5nZXQoKSwgbmFtZSwga2V5UGF0aCwgYXV0b0lu
Y3JlbWVudCk7CiAgICAgQVNTRVJUKG9iamVjdFN0b3JlLT5uYW1lKCkgPT0gbmFtZSk7CiAKICAg
ICBSZWZQdHI8SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4gZGF0YWJhc2UgPSB0aGlzOwpAQCAtMjY1
LDcgKzI2NSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6bG9hZE9iamVjdFN0b3Jl
cygpCiAgICAgICAgIFN0cmluZyBrZXlQYXRoID0gb2JqZWN0U3RvcmVzUXVlcnkuZ2V0Q29sdW1u
VGV4dCgyKTsKICAgICAgICAgYm9vbCBhdXRvSW5jcmVtZW50ID0gISFvYmplY3RTdG9yZXNRdWVy
eS5nZXRDb2x1bW5JbnQoMyk7CiAKLSAgICAgICAgbV9vYmplY3RTdG9yZXMuc2V0KG5hbWUsIElE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZSh0aGlzLCBpZCwgbmFtZSwga2V5UGF0aCwg
YXV0b0luY3JlbWVudCkpOworICAgICAgICBtX29iamVjdFN0b3Jlcy5zZXQobmFtZSwgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y3JlYXRlKG1fc3FsaXRlRGF0YWJhc2UuZ2V0KCksIGlkLCBu
YW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50KSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKaW5kZXggMmE5OTFmYTdhYTM0ZGQzNjE0MjZiY2VlZTEy
ODg3ZTdjMjM2MTBkZC4uODRhZjIzNDg2ODYxMGM2YzQyYmUzMDNiMDkzNTQ5OGQ0MTJiY2QzNSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2VuZEltcGwuY3BwCisrKyBi
L1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmNwcApAQCAtMzYsMjQgKzM2LDI3
IEBACiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNs
dWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgiCisjaW5jbHVkZSAiSURCU1FMaXRlRGF0
YWJhc2UuaCIKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2luY2x1ZGUgIlNRTGl0ZVN0
YXRlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUlEQkluZGV4QmFja2VuZEltcGw6
OklEQkluZGV4QmFja2VuZEltcGwoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3Rv
cmUsIGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRo
LCBib29sIHVuaXF1ZSkKLSAgICA6IG1fb2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpCitJREJJbmRl
eEJhY2tlbmRJbXBsOjpJREJJbmRleEJhY2tlbmRJbXBsKElEQlNRTGl0ZURhdGFiYXNlKiBkYXRh
YmFzZSwgaW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHN0b3Jl
TmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSkKKyAgICA6IG1fZGF0YWJh
c2UoZGF0YWJhc2UpCiAgICAgLCBtX2lkKGlkKQogICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBt
X3N0b3JlTmFtZShzdG9yZU5hbWUpCiAgICAgLCBtX2tleVBhdGgoa2V5UGF0aCkKICAgICAsIG1f
dW5pcXVlKHVuaXF1ZSkKIHsKIH0KIAotSURCSW5kZXhCYWNrZW5kSW1wbDo6SURCSW5kZXhCYWNr
ZW5kSW1wbChJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiBvYmplY3RTdG9yZSwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKQotICAgIDogbV9v
YmplY3RTdG9yZShvYmplY3RTdG9yZSkKK0lEQkluZGV4QmFja2VuZEltcGw6OklEQkluZGV4QmFj
a2VuZEltcGwoSURCU1FMaXRlRGF0YWJhc2UqIGRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgc3RvcmVOYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5p
cXVlKQorICAgIDogbV9kYXRhYmFzZShkYXRhYmFzZSkKICAgICAsIG1faWQoSW52YWxpZElkKQog
ICAgICwgbV9uYW1lKG5hbWUpCisgICAgLCBtX3N0b3JlTmFtZShzdG9yZU5hbWUpCiAgICAgLCBt
X2tleVBhdGgoa2V5UGF0aCkKICAgICAsIG1fdW5pcXVlKHVuaXF1ZSkKIHsKQEAgLTYzLDExICs2
Niw2IEBAIElEQkluZGV4QmFja2VuZEltcGw6On5JREJJbmRleEJhY2tlbmRJbXBsKCkKIHsKIH0K
IAotU3RyaW5nIElEQkluZGV4QmFja2VuZEltcGw6OnN0b3JlTmFtZSgpCi17Ci0gICAgcmV0dXJu
IG1fb2JqZWN0U3RvcmUtPm5hbWUoKTsKLX0KLQogdm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpv
cGVuQ3Vyc29ySW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURC
SW5kZXhCYWNrZW5kSW1wbD4gaW5kZXgsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCB1
bnNpZ25lZCBzaG9ydCB1bnR5cGVkRGlyZWN0aW9uLCBib29sIG9iamVjdEN1cnNvciwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKQogewogICAgIC8vIFNldmVyYWwgZmlsZXMgZGVw
ZW5kIG9uIHRoaXMgb3JkZXIgb2Ygc2VsZWN0cy4KQEAgLTEwNiw3ICsxMDQsNyBAQCB2b2lkIElE
QkluZGV4QmFja2VuZEltcGw6Om9wZW5DdXJzb3JJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgUGFzc1JlZlB0cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUmVmUHRyPElE
QkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+IGN1cnNvciA9IElEQkN1cnNvckJhY2tlbmRJbXBsOjpj
cmVhdGUoaW5kZXgsIHJhbmdlLCBkaXJlY3Rpb24sIHF1ZXJ5LnJlbGVhc2UoKSwgb2JqZWN0Q3Vy
c29yLCB0cmFuc2FjdGlvbi5nZXQoKSk7CisgICAgUmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRl
cmZhY2U+IGN1cnNvciA9IElEQkN1cnNvckJhY2tlbmRJbXBsOjpjcmVhdGUoaW5kZXgtPm1fZGF0
YWJhc2UuZ2V0KCksIHJhbmdlLCBkaXJlY3Rpb24sIHF1ZXJ5LnJlbGVhc2UoKSwgb2JqZWN0Q3Vy
c29yLCB0cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29y
LnJlbGVhc2UoKSk7CiB9CiAKQEAgLTIwMCw3ICsxOTgsNyBAQCBib29sIElEQkluZGV4QmFja2Vu
ZEltcGw6OmFkZGluZ0tleUFsbG93ZWQoSURCS2V5KiBrZXkpCiAKIFNRTGl0ZURhdGFiYXNlJiBJ
REJJbmRleEJhY2tlbmRJbXBsOjpzcWxpdGVEYXRhYmFzZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fb2JqZWN0U3RvcmUtPmRhdGFiYXNlKCktPnNxbGl0ZURhdGFiYXNlKCk7CisgICAgcmV0dXJu
IG1fZGF0YWJhc2UtPmRiKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmggYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCSW5kZXhCYWNrZW5kSW1wbC5oCmluZGV4IGQ1ZTgxYWVkY2I5ZGE2ZmM3MGIzNDdkYjY2
ZTcyMjkyYjViOWE3ZWMuLmU2NDBiNWE2NTdkNWNhMzFiYWNmYjFhM2MxMmJiOGQyMzJlN2JjZjIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEJhY2tlbmRJbXBsLmgKKysrIGIv
V2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4QmFja2VuZEltcGwuaApAQCAtMzQsMTggKzM0LDE5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCS2V5OwogY2xhc3MgSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbDsKK2NsYXNzIElEQlNRTGl0ZURhdGFiYXNlOwogY2xhc3MgU1FMaXRlRGF0
YWJhc2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogCiBjbGFzcyBJREJJbmRleEJh
Y2tlbmRJbXBsIDogcHVibGljIElEQkluZGV4QmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gY3JlYXRlKElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGwqIG9iamVjdFN0b3JlLCBpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUpCisgICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gY3JlYXRlKElEQlNRTGl0ZURhdGFiYXNlKiBk
YXRhYmFzZSwgaW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHN0
b3JlTmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhCYWNrZW5kSW1wbChvYmplY3RTdG9yZSwg
aWQsIG5hbWUsIGtleVBhdGgsIHVuaXF1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IElEQkluZGV4QmFja2VuZEltcGwoZGF0YWJhc2UsIGlkLCBuYW1lLCBzdG9yZU5hbWUsIGtleVBh
dGgsIHVuaXF1ZSkpOwogICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tl
bmRJbXBsPiBjcmVhdGUoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmUsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSkKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbXBsPiBjcmVhdGUoSURCU1FMaXRl
RGF0YWJhc2UqIGRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgc3Rv
cmVOYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJJbmRleEJhY2tlbmRJbXBsKG9iamVjdFN0b3JlLCBu
YW1lLCBrZXlQYXRoLCB1bmlxdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJJ
bmRleEJhY2tlbmRJbXBsKGRhdGFiYXNlLCBuYW1lLCBzdG9yZU5hbWUsIGtleVBhdGgsIHVuaXF1
ZSkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5JREJJbmRleEJhY2tlbmRJbXBsKCk7CiAKQEAgLTYw
LDcgKzYxLDcgQEAgcHVibGljOgogCiAgICAgLy8gSW1wbGVtZW50cyBJREJJbmRleEJhY2tlbmRJ
bnRlcmZhY2UuCiAgICAgdmlydHVhbCBTdHJpbmcgbmFtZSgpIHsgcmV0dXJuIG1fbmFtZTsgfQot
ICAgIHZpcnR1YWwgU3RyaW5nIHN0b3JlTmFtZSgpOworICAgIHZpcnR1YWwgU3RyaW5nIHN0b3Jl
TmFtZSgpIHsgcmV0dXJuIG1fc3RvcmVOYW1lOyB9CiAgICAgdmlydHVhbCBTdHJpbmcga2V5UGF0
aCgpIHsgcmV0dXJuIG1fa2V5UGF0aDsgfQogICAgIHZpcnR1YWwgYm9vbCB1bmlxdWUoKSB7IHJl
dHVybiBtX3VuaXF1ZTsgfQogCkBAIC02OSwxMSArNzAsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBnZXRLZXkoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsK
IAotICAgIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqIG9iamVjdFN0b3JlKCkgY29uc3QgeyBy
ZXR1cm4gbV9vYmplY3RTdG9yZS5nZXQoKTsgfQotCiBwcml2YXRlOgotICAgIElEQkluZGV4QmFj
a2VuZEltcGwoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCosIGludDY0X3QgaWQsIGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSk7Ci0gICAgSURC
SW5kZXhCYWNrZW5kSW1wbChJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKTsKKyAgICBJREJJbmRl
eEJhY2tlbmRJbXBsKElEQlNRTGl0ZURhdGFiYXNlKiwgaW50NjRfdCBpZCwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHN0b3JlTmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBi
b29sIHVuaXF1ZSk7CisgICAgSURCSW5kZXhCYWNrZW5kSW1wbChJREJTUUxpdGVEYXRhYmFzZSos
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBzdG9yZU5hbWUsIGNvbnN0IFN0cmlu
ZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUpOwogCiAgICAgU1FMaXRlRGF0YWJhc2UmIHNxbGl0ZURh
dGFiYXNlKCkgY29uc3Q7CiAKQEAgLTgyLDEwICs4MSwxMSBAQCBwcml2YXRlOgogCiAgICAgc3Rh
dGljIGNvbnN0IGludDY0X3QgSW52YWxpZElkID0gMDsKIAotICAgIFJlZlB0cjxJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsPiBtX29iamVjdFN0b3JlOworICAgIFJlZlB0cjxJREJTUUxpdGVEYXRh
YmFzZT4gbV9kYXRhYmFzZTsKIAogICAgIGludDY0X3QgbV9pZDsKICAgICBTdHJpbmcgbV9uYW1l
OworICAgIFN0cmluZyBtX3N0b3JlTmFtZTsKICAgICBTdHJpbmcgbV9rZXlQYXRoOwogICAgIGJv
b2wgbV91bmlxdWU7CiB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlQmFja2VuZEltcGwuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuY3BwCmluZGV4IDQ4OTI1NTZjNDFiOGYwNjEwMmQ0MWQ0ZmZiYjZmNzEyZWVlMTNhOTMu
LjY1M2ZiNGUyN2I0NjVhOGU3NGE3ZGI3ZDAxNDY1NjE3MThjZmY5NTkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAK
ICNpbmNsdWRlICJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURCS2V5UGF0aEJhY2tlbmRJbXBs
LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKKyNpbmNsdWRlICJJREJTUUxpdGVEYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5o
IgpAQCAtNTIsNyArNTMsNyBAQCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjp+SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbCgpCiB7CiB9CiAKLUlEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OklE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGwoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCogZGF0YWJhc2Us
IGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBi
b29sIGF1dG9JbmNyZW1lbnQpCitJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsKElEQlNRTGl0ZURhdGFiYXNlKiBkYXRhYmFzZSwgaW50NjRfdCBpZCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3Jl
bWVudCkKICAgICA6IG1fZGF0YWJhc2UoZGF0YWJhc2UpCiAgICAgLCBtX2lkKGlkKQogICAgICwg
bV9uYW1lKG5hbWUpCkBAIC02Miw3ICs2Myw3IEBAIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6
OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGwoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCogZGF0CiAg
ICAgbG9hZEluZGV4ZXMoKTsKIH0KIAotSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKiBkYXRhYmFzZSwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVu
dCkKK0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGwo
SURCU1FMaXRlRGF0YWJhc2UqIGRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KQogICAgIDogbV9kYXRhYmFzZShkYXRh
YmFzZSkKICAgICAsIG1faWQoSW52YWxpZElkKQogICAgICwgbV9uYW1lKG5hbWUpCkBAIC0zMDEs
NyArMzAyLDcgQEAgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw6OmNyZWF0ZUluZGV4KGNvbnMKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogCi0gICAgUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gSURCSW5kZXhC
YWNrZW5kSW1wbDo6Y3JlYXRlKHRoaXMsIG5hbWUsIGtleVBhdGgsIHVuaXF1ZSk7CisgICAgUmVm
UHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4ID0gSURCSW5kZXhCYWNrZW5kSW1wbDo6Y3Jl
YXRlKG1fZGF0YWJhc2UuZ2V0KCksIG5hbWUsIG1fbmFtZSwga2V5UGF0aCwgdW5pcXVlKTsKICAg
ICBBU1NFUlQoaW5kZXgtPm5hbWUoKSA9PSBuYW1lKTsKIAogICAgIFJlZlB0cjxJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSA9IHRoaXM7CkBAIC00MjcsNyArNDI4LDcgQEAg
dm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpvcGVuQ3Vyc29ySW50ZXJuYWwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJl
ZlB0cjxJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlPiBjdXJzb3IgPSBJREJDdXJzb3JCYWNrZW5k
SW1wbDo6Y3JlYXRlKG9iamVjdFN0b3JlLCByYW5nZSwgZGlyZWN0aW9uLCBxdWVyeS5yZWxlYXNl
KCksIHRyYW5zYWN0aW9uLmdldCgpKTsKKyAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZT4gY3Vyc29yID0gSURCQ3Vyc29yQmFja2VuZEltcGw6OmNyZWF0ZShvYmplY3RTdG9yZS0+
bV9kYXRhYmFzZS5nZXQoKSwgcmFuZ2UsIGRpcmVjdGlvbiwgcXVlcnkucmVsZWFzZSgpLCB0cnVl
LCB0cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgY2FsbGJhY2tzLT5vblN1Y2Nlc3MoY3Vyc29yLnJl
bGVhc2UoKSk7CiB9CiAKQEAgLTQ0NSwxMyArNDQ2LDEzIEBAIHZvaWQgSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbDo6bG9hZEluZGV4ZXMoKQogICAgICAgICBTdHJpbmcga2V5UGF0aCA9IGluZGV4
UXVlcnkuZ2V0Q29sdW1uVGV4dCgyKTsKICAgICAgICAgYm9vbCB1bmlxdWUgPSAhIWluZGV4UXVl
cnkuZ2V0Q29sdW1uSW50KDMpOwogCi0gICAgICAgIG1faW5kZXhlcy5zZXQobmFtZSwgSURCSW5k
ZXhCYWNrZW5kSW1wbDo6Y3JlYXRlKHRoaXMsIGlkLCBuYW1lLCBrZXlQYXRoLCB1bmlxdWUpKTsK
KyAgICAgICAgbV9pbmRleGVzLnNldChuYW1lLCBJREJJbmRleEJhY2tlbmRJbXBsOjpjcmVhdGUo
bV9kYXRhYmFzZS5nZXQoKSwgaWQsIG5hbWUsIG1fbmFtZSwga2V5UGF0aCwgdW5pcXVlKSk7CiAg
ICAgfQogfQogCiBTUUxpdGVEYXRhYmFzZSYgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6c3Fs
aXRlRGF0YWJhc2UoKSBjb25zdCAKIHsKLSAgICByZXR1cm4gbV9kYXRhYmFzZS0+c3FsaXRlRGF0
YWJhc2UoKTsKKyAgICByZXR1cm4gbV9kYXRhYmFzZS0+ZGIoKTsKIH0KIAogdm9pZCBJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsOjpyZW1vdmVJbmRleEZyb21NYXAoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUs
IFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXgpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaAppbmRleCA2MGUwMTFmZDlkZmI2MjY3ZDBjOWFk
NTg4M2ZmYjY4ZTk5MDU0OWUzLi5hZGQ4NDliZTQ3NTg0MzIwZTE0NDE4M2Y2NWJiMzY4OWVlNWI3
OTJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKQEAg
LTM2LDE3ICszNiwxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIElEQkRhdGFiYXNl
QmFja2VuZEltcGw7CiBjbGFzcyBJREJJbmRleEJhY2tlbmRJbXBsOworY2xhc3MgSURCU1FMaXRl
RGF0YWJhc2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBT
UUxpdGVEYXRhYmFzZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIElE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGwgOiBwdWJsaWMgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50
ZXJmYWNlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsPiBjcmVhdGUoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCogZGF0YWJhc2UsIGludDY0
X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1
dG9JbmNyZW1lbnQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbD4gY3JlYXRlKElEQlNRTGl0ZURhdGFiYXNlKiBkYXRhYmFzZSwgaW50NjRfdCBpZCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVu
dCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbChkYXRhYmFzZSwgaWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQpKTsKICAg
ICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4gY3Jl
YXRlKElEQkRhdGFiYXNlQmFja2VuZEltcGwqIGRhdGFiYXNlLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IGNyZWF0ZShJREJTUUxpdGVEYXRh
YmFzZSogZGF0YWJhc2UsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRo
LCBib29sIGF1dG9JbmNyZW1lbnQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwoZGF0YWJhc2UsIG5hbWUsIGtleVBhdGgsIGF1dG9J
bmNyZW1lbnQpKTsKICAgICB9CkBAIC03NSwxMSArNzYsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgdW5zaWdu
ZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIElEQkRhdGFiYXNl
QmFja2VuZEltcGwqIGRhdGFiYXNlKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhYmFzZS5nZXQoKTsg
fQotCiBwcml2YXRlOgotICAgIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwoSURCRGF0YWJhc2VC
YWNrZW5kSW1wbCosIGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpOwotICAgIElEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCosIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpOworICAgIElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwoSURCU1FMaXRlRGF0YWJhc2UqLCBpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KTsKKyAgICBJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsKElEQlNRTGl0ZURhdGFiYXNlKiwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCk7CiAKICAg
ICB2b2lkIGxvYWRJbmRleGVzKCk7CiAgICAgU1FMaXRlRGF0YWJhc2UmIHNxbGl0ZURhdGFiYXNl
KCkgY29uc3Q7CkBAIC05NSw3ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgcmVt
b3ZlSW5kZXhGcm9tTWFwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+KTsK
ICAgICBzdGF0aWMgdm9pZCBhZGRJbmRleFRvTWFwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQ
YXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+LCBQYXNzUmVmUHRyPElEQkluZGV4
QmFja2VuZEltcGw+KTsKIAotICAgIFJlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiBtX2Rh
dGFiYXNlOworICAgIFJlZlB0cjxJREJTUUxpdGVEYXRhYmFzZT4gbV9kYXRhYmFzZTsKIAogICAg
IGludDY0X3QgbV9pZDsKICAgICBTdHJpbmcgbV9uYW1lOwo=
</data>
<flag name="review"
          id="62161"
          type_id="1"
          status="+"
          setter="steveblock"
    />
          </attachment>
      

    </bug>

</bugzilla>