<?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>101668</bug_id>
          
          <creation_ts>2012-11-08 17:06:29 -0800</creation_ts>
          <short_desc>IndexedDB: simplify use of RecordIdentifier</short_desc>
          <delta_ts>2012-11-16 15:30:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>102018</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>101415</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762339</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-08 17:06:29 -0800</bug_when>
    <thetext>IndexedDB: simplify use of RecordIdentifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762340</commentid>
    <comment_count>1</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-08 17:08:25 -0800</bug_when>
    <thetext>This patch simplifies the use of RecordIdentifier, which really has just become a simple structure with a few helper methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762341</commentid>
    <comment_count>2</comment_count>
      <attachid>173154</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-08 17:08:37 -0800</bug_when>
    <thetext>Created attachment 173154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762354</commentid>
    <comment_count>3</comment_count>
      <attachid>173154</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-08 17:18:23 -0800</bug_when>
    <thetext>Comment on attachment 173154
Patch

Not sure where the change log went... coming up in a bit

Also this won&apos;t apply until the parent bug lands</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769719</commentid>
    <comment_count>4</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-11-16 15:30:15 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 102018 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173154</attachid>
            <date>2012-11-08 17:08:37 -0800</date>
            <delta_ts>2012-11-08 17:18:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101668-20121108170645.patch</filename>
            <type>text/plain</type>
            <size>23759</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzOTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcAppbmRleCAwZmNiMTk3MGRmNTA1N2Iw
ODFjMTUxMDZlMTEzOGFhYTIzMzdiNWU0Li5lNzM3NmQxNjgxZjRmMmMzMzk4YTVhMTRhZTNmOTY0
YzM1ZTAxYzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTY1NCw3ICs2NTQsNyBAQCBzdGF0aWMgaW50NjRfdCBn
ZXROZXdWZXJzaW9uTnVtYmVyKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0
X3QgZGF0YQogICAgIHJldHVybiB2ZXJzaW9uOwogfQogCi1ib29sIElEQkJhY2tpbmdTdG9yZTo6
cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXks
IGNvbnN0IFN0cmluZyYgdmFsdWUsIFJlY29yZElkZW50aWZpZXIqIHJlY29yZElkZW50aWZpZXIp
Cit2b2lkIElEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5JiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIFJlY29yZElkZW50
aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCiB7CiAgICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3Rv
cmU6OnB1dFJlY29yZCIpOwogICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKQEAgLTY3MSw5ICs2
NzEsNyBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NAogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBl
eGlzdHNFbnRyeUtleSA9IEV4aXN0c0VudHJ5S2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0
U3RvcmVJZCwga2V5KTsKICAgICBsZXZlbERCVHJhbnNhY3Rpb24tPnB1dChleGlzdHNFbnRyeUtl
eSwgZW5jb2RlSW50KHZlcnNpb24pKTsKIAotICAgIHJlY29yZElkZW50aWZpZXItPnNldFByaW1h
cnlLZXkoZW5jb2RlSURCS2V5KGtleSkpOwotICAgIHJlY29yZElkZW50aWZpZXItPnNldFZlcnNp
b24odmVyc2lvbik7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmVjb3JkSWRlbnRpZmllci0+cmVz
ZXQoZW5jb2RlSURCS2V5KGtleSksIHZlcnNpb24pOwogfQogCiB2b2lkIElEQkJhY2tpbmdTdG9y
ZTo6Y2xlYXJPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCkBAIC02ODYs
MTUgKzY4NCwxNSBAQCB2b2lkIElEQkJhY2tpbmdTdG9yZTo6Y2xlYXJPYmplY3RTdG9yZShJREJC
YWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbgogICAgIGRlbGV0ZVJhbmdlKGxl
dmVsREJUcmFuc2FjdGlvbiwgc3RhcnRLZXksIHN0b3BLZXkpOwogfQogCi12b2lkIElEQkJhY2tp
bmdTdG9yZTo6ZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3Qg
UmVjb3JkSWRlbnRpZmllciogcmVjb3JkSWRlbnRpZmllcikKK3ZvaWQgSURCQmFja2luZ1N0b3Jl
OjpkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
IGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBSZWNvcmRJ
ZGVudGlmaWVyJiByZWNvcmRJZGVudGlmaWVyKQogewogICAgIElEQl9UUkFDRSgiSURCQmFja2lu
Z1N0b3JlOjpkZWxldGVSZWNvcmQiKTsKICAgICBMZXZlbERCVHJhbnNhY3Rpb24qIGxldmVsREJU
cmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2Fj
dGlvbkZyb20odHJhbnNhY3Rpb24pOwogCi0gICAgY29uc3QgVmVjdG9yPGNoYXI+IG9iamVjdFN0
b3JlRGF0YUtleSA9IE9iamVjdFN0b3JlRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVj
dFN0b3JlSWQsIHJlY29yZElkZW50aWZpZXItPnByaW1hcnlLZXkoKSk7CisgICAgY29uc3QgVmVj
dG9yPGNoYXI+IG9iamVjdFN0b3JlRGF0YUtleSA9IE9iamVjdFN0b3JlRGF0YUtleTo6ZW5jb2Rl
KGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIHJlY29yZElkZW50aWZpZXIucHJpbWFyeUtleSgp
KTsKICAgICBsZXZlbERCVHJhbnNhY3Rpb24tPnJlbW92ZShvYmplY3RTdG9yZURhdGFLZXkpOwog
Ci0gICAgY29uc3QgVmVjdG9yPGNoYXI+IGV4aXN0c0VudHJ5S2V5ID0gRXhpc3RzRW50cnlLZXk6
OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCByZWNvcmRJZGVudGlmaWVyLT5wcmlt
YXJ5S2V5KCkpOworICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBleGlzdHNFbnRyeUtleSA9IEV4aXN0
c0VudHJ5S2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgcmVjb3JkSWRlbnRp
Zmllci5wcmltYXJ5S2V5KCkpOwogICAgIGxldmVsREJUcmFuc2FjdGlvbi0+cmVtb3ZlKGV4aXN0
c0VudHJ5S2V5KTsKIH0KIApAQCAtNzQxLDE5ICs3MzksMTggQEAgaW50NjRfdCBJREJCYWNraW5n
U3RvcmU6OmdldEtleUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlOjpUcmFu
c2FjdGkKICAgICByZXR1cm4ga2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcjsKIH0KIAotYm9vbCBJ
REJCYWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJC
YWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgbmV3TnVtYmVyLCBib29sIGNoZWNrQ3Vy
cmVudCkKK3ZvaWQgSURCQmFja2luZ1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvckN1cnJl
bnROdW1iZXIoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0
X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5ld051bWJlciwg
Ym9vbCBjaGVja0N1cnJlbnQpCiB7CiAgICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBsZXZlbERCVHJh
bnNhY3Rpb24gPSBJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uOjpsZXZlbERCVHJhbnNhY3Rp
b25Gcm9tKHRyYW5zYWN0aW9uKTsKIAogICAgIGlmIChjaGVja0N1cnJlbnQpIHsKICAgICAgICAg
aW50NjRfdCBjdXJyZW50TnVtYmVyID0gZ2V0S2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcih0cmFu
c2FjdGlvbiwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCk7CiAgICAgICAgIGlmIChuZXdOdW1i
ZXIgPD0gY3VycmVudE51bWJlcikKLSAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAogICAgIGNvbnN0IFZlY3RvcjxjaGFyPiBrZXlHZW5lcmF0b3JD
dXJyZW50TnVtYmVyS2V5ID0gT2JqZWN0U3RvcmVNZXRhRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNl
SWQsIG9iamVjdFN0b3JlSWQsIE9iamVjdFN0b3JlTWV0YURhdGFLZXk6OktleUdlbmVyYXRvckN1
cnJlbnROdW1iZXIpOwogICAgIHB1dEludChsZXZlbERCVHJhbnNhY3Rpb24sIGtleUdlbmVyYXRv
ckN1cnJlbnROdW1iZXJLZXksIG5ld051bWJlcik7Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAKIGJv
b2wgSURCQmFja2luZ1N0b3JlOjprZXlFeGlzdHNJbk9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiBrZXksIFJlY29yZElkZW50aWZpZXIqIGZvdW5k
UmVjb3JkSWRlbnRpZmllcikKQEAgLTc3MCw4ICs3NjcsNyBAQCBib29sIElEQkJhY2tpbmdTdG9y
ZTo6a2V5RXhpc3RzSW5PYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0
cmFucwogICAgIGlmICghZGVjb2RlVmFySW50KGRhdGEuYmVnaW4oKSwgZGF0YS5lbmQoKSwgdmVy
c2lvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZvdW5kUmVjb3JkSWRlbnRpZmll
ci0+c2V0UHJpbWFyeUtleShlbmNvZGVJREJLZXkoa2V5KSk7Ci0gICAgZm91bmRSZWNvcmRJZGVu
dGlmaWVyLT5zZXRWZXJzaW9uKHZlcnNpb24pOworICAgIGZvdW5kUmVjb3JkSWRlbnRpZmllci0+
cmVzZXQoZW5jb2RlSURCS2V5KGtleSksIHZlcnNpb24pOwogICAgIHJldHVybiB0cnVlOwogfQog
CkBAIC04OTUsMjEgKzg5MSwyMCBAQCB2b2lkIElEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXgo
SURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludAogICAgIGRlbGV0
ZVJhbmdlKGxldmVsREJUcmFuc2FjdGlvbiwgaW5kZXhEYXRhU3RhcnQsIGluZGV4RGF0YUVuZCk7
CiB9CiAKLWJvb2wgSURCQmFja2luZ1N0b3JlOjpwdXRJbmRleERhdGFGb3JSZWNvcmQoSURCQmFj
a2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYga2V5
LCBjb25zdCBSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlmaWVyKQordm9pZCBJREJCYWNr
aW5nU3RvcmU6OnB1dEluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBrZXksIGNvbnN0IFJlY29yZElkZW50
aWZpZXImIHJlY29yZElkZW50aWZpZXIpCiB7CiAgICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3Rv
cmU6OnB1dEluZGV4RGF0YUZvclJlY29yZCIpOwogICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsK
ICAgICBBU1NFUlQoaW5kZXhJZCA+PSBNaW5pbXVtSW5kZXhJZCk7CiAKICAgICBMZXZlbERCVHJh
bnNhY3Rpb24qIGxldmVsREJUcmFuc2FjdGlvbiA9IElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rp
b246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rpb24pOwotICAgIGNvbnN0IFZlY3Rv
cjxjaGFyPiBpbmRleERhdGFLZXkgPSBJbmRleERhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBv
YmplY3RTdG9yZUlkLCBpbmRleElkLCBlbmNvZGVJREJLZXkoa2V5KSwgcmVjb3JkSWRlbnRpZmll
ci0+cHJpbWFyeUtleSgpKTsKKyAgICBjb25zdCBWZWN0b3I8Y2hhcj4gaW5kZXhEYXRhS2V5ID0g
SW5kZXhEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwg
ZW5jb2RlSURCS2V5KGtleSksIHJlY29yZElkZW50aWZpZXIucHJpbWFyeUtleSgpKTsKIAogICAg
IFZlY3RvcjxjaGFyPiBkYXRhOwotICAgIGRhdGEuYXBwZW5kKGVuY29kZVZhckludChyZWNvcmRJ
ZGVudGlmaWVyLT52ZXJzaW9uKCkpKTsKLSAgICBkYXRhLmFwcGVuZChyZWNvcmRJZGVudGlmaWVy
LT5wcmltYXJ5S2V5KCkpOworICAgIGRhdGEuYXBwZW5kKGVuY29kZVZhckludChyZWNvcmRJZGVu
dGlmaWVyLnZlcnNpb24oKSkpOworICAgIGRhdGEuYXBwZW5kKHJlY29yZElkZW50aWZpZXIucHJp
bWFyeUtleSgpKTsKIAogICAgIGxldmVsREJUcmFuc2FjdGlvbi0+cHV0KGluZGV4RGF0YUtleSwg
ZGF0YSk7Ci0gICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGZpbmRHcmVhdGVzdEtl
eUxlc3NUaGFuT3JFcXVhbChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBW
ZWN0b3I8Y2hhcj4mIHRhcmdldCwgVmVjdG9yPGNoYXI+JiBmb3VuZEtleSkKQEAgLTk0MCwxMCAr
OTM1LDkgQEAgc3RhdGljIGJvb2wgZmluZEdyZWF0ZXN0S2V5TGVzc1RoYW5PckVxdWFsKExldmVs
REJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGNvbnMKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBJREJCYWNraW5nU3RvcmU6OmRlbGV0ZUluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5n
U3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCwgaW50NjRfdCwgaW50NjRfdCwgY29uc3QgUmVj
b3JkSWRlbnRpZmllciopCit2b2lkIElEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlSW5kZXhEYXRhRm9y
UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90LCBpbnQ2NF90LCBp
bnQ2NF90LCBjb25zdCBSZWNvcmRJZGVudGlmaWVyJikKIHsKICAgICAvLyBGSVhNRTogVGhpcyBp
c24ndCBuZWVkZWQgc2luY2Ugd2UgaW52YWxpZGF0ZSBpbmRleCBkYXRhIHZpYSB0aGUgdmVyc2lv
biBudW1iZXIgbWVjaGFuaXNtLgotICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCB2
ZXJzaW9uRXhpc3RzKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IHZlcnNpb24sIGNvbnN0IFZl
Y3RvcjxjaGFyPiYgZW5jb2RlZFByaW1hcnlLZXkpCkBAIC0xMTg2LDEwICsxMTgwLDYgQEAgcHVi
bGljOgogCiAgICAgLy8gSURCQmFja2luZ1N0b3JlOjpDdXJzb3IKICAgICB2aXJ0dWFsIFN0cmlu
ZyB2YWx1ZSgpIGNvbnN0IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBTdHJpbmcoKTsg
fQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZp
ZXI+IHJlY29yZElkZW50aWZpZXIoKSBPVkVSUklERQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1f
aWRlbnRpZmllcjsKLSAgICB9CiAgICAgdmlydHVhbCBib29sIGxvYWRDdXJyZW50Um93KCk7CiAK
IHByaXZhdGU6CkBAIC0xMjAzLDcgKzExOTMsNiBAQCBwcml2YXRlOgogICAgIHsKICAgICB9CiAK
LSAgICBSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyPiBtX2lkZW50aWZp
ZXI7CiB9OwogCiBib29sIE9iamVjdFN0b3JlS2V5Q3Vyc29ySW1wbDo6bG9hZEN1cnJlbnRSb3co
KQpAQCAtMTIyOCw3ICsxMjE3LDcgQEAgYm9vbCBPYmplY3RTdG9yZUtleUN1cnNvckltcGw6Omxv
YWRDdXJyZW50Um93KCkKICAgICB9CiAKICAgICAvLyBGSVhNRTogVGhpcyByZS1lbmNvZGVzIHdo
YXQgd2FzIGp1c3QgZGVjb2RlZDsgdHJ5IGFuZCBvcHRpbWl6ZS4KLSAgICBtX2lkZW50aWZpZXIg
PSBJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXI6OmNyZWF0ZShlbmNvZGVJREJLZXko
Km1fY3VycmVudEtleSksIHZlcnNpb24pOworICAgIG1fcmVjb3JkSWRlbnRpZmllciA9IElEQkJh
Y2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllcihlbmNvZGVJREJLZXkoKm1fY3VycmVudEtleSks
IHZlcnNpb24pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC0xMjQ3LDEwICsxMjM2LDYgQEAg
cHVibGljOgogCiAgICAgLy8gSURCQmFja2luZ1N0b3JlOjpDdXJzb3IKICAgICB2aXJ0dWFsIFN0
cmluZyB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudFZhbHVlOyB9Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllcj4gcmVjb3JkSWRl
bnRpZmllcigpIE9WRVJSSURFCi0gICAgewotICAgICAgICByZXR1cm4gbV9pZGVudGlmaWVyOwot
ICAgIH0KICAgICB2aXJ0dWFsIGJvb2wgbG9hZEN1cnJlbnRSb3coKTsKIAogcHJpdmF0ZToKQEAg
LTEyNjYsNyArMTI1MSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgU3RyaW5nIG1fY3VycmVu
dFZhbHVlOwotICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXI+IG1f
aWRlbnRpZmllcjsKKyAgICBJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXIgbV9yZWNv
cmRJZGVudGlmaWVyOwogfTsKIAogYm9vbCBPYmplY3RTdG9yZUN1cnNvckltcGw6OmxvYWRDdXJy
ZW50Um93KCkKQEAgLTEyOTEsNyArMTI3Niw3IEBAIGJvb2wgT2JqZWN0U3RvcmVDdXJzb3JJbXBs
Ojpsb2FkQ3VycmVudFJvdygpCiAgICAgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgcmUtZW5jb2Rl
cyB3aGF0IHdhcyBqdXN0IGRlY29kZWQ7IHRyeSBhbmQgb3B0aW1pemUuCi0gICAgbV9pZGVudGlm
aWVyID0gSURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyOjpjcmVhdGUoZW5jb2RlSURC
S2V5KCptX2N1cnJlbnRLZXkpLCB2ZXJzaW9uKTsKKyAgICBtX3JlY29yZElkZW50aWZpZXIucmVz
ZXQoZW5jb2RlSURCS2V5KCptX2N1cnJlbnRLZXkpLCB2ZXJzaW9uKTsKIAogICAgIG1fY3VycmVu
dFZhbHVlID0gZGVjb2RlU3RyaW5nKHZhbHVlUG9zaXRpb24sIG1faXRlcmF0b3ItPnZhbHVlKCku
ZW5kKCkpOwogCkBAIC0xMzEzLDcgKzEyOTgsNyBAQCBwdWJsaWM6CiAgICAgLy8gSURCQmFja2lu
Z1N0b3JlOjpDdXJzb3IKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0IHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25zdCB7IHJldHVybiBtX3ByaW1hcnlLZXk7IH0KLSAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyPiBy
ZWNvcmRJZGVudGlmaWVyKCkgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KKyAg
ICB2aXJ0dWFsIGNvbnN0IElEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllciYgcmVjb3Jk
SWRlbnRpZmllcigpIGNvbnN0IHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBtX3JlY29y
ZElkZW50aWZpZXI7IH0KICAgICB2aXJ0dWFsIGJvb2wgbG9hZEN1cnJlbnRSb3coKTsKIAogcHJp
dmF0ZToKQEAgLTEzOTIsNyArMTM3Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBJREJCYWNraW5nU3Rv
cmU6OkN1cnNvcgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZTsgfQogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkoKSBjb25z
dCB7IHJldHVybiBtX3ByaW1hcnlLZXk7IH0KLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCQmFj
a2luZ1N0b3JlOjpSZWNvcmRJZGVudGlmaWVyPiByZWNvcmRJZGVudGlmaWVyKCkgeyBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIGNvbnN0IElEQkJhY2tpbmdT
dG9yZTo6UmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0IHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IHJldHVybiBtX3JlY29yZElkZW50aWZpZXI7IH0KICAgICBib29sIGxv
YWRDdXJyZW50Um93KCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDI1MmRlZTFmNWEyODkxZjc0Njc2
ZTE1YmI3M2UzMDE5MzVhODVhOGIuLmY3Y2U4M2UwZDc0MzliMDUwMWIyYzA4ZDYxNWUwYzQxZTZi
NzNkMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJh
Y2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJh
Y2tpbmdTdG9yZS5oCkBAIC02MSwzOSArNjEsMzQgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBjcmVhdGVPYmplY3RTdG9yZShJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCk7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7CiAKLSAgICBjbGFzcyBSZWNvcmRJ
ZGVudGlmaWVyIDogcHVibGljIFJlZkNvdW50ZWQ8UmVjb3JkSWRlbnRpZmllcj4geworICAgIGNs
YXNzIFJlY29yZElkZW50aWZpZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8UmVjb3JkSWRlbnRpZmllcj4gY3JlYXRlKGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFy
eUtleSwgaW50NjRfdCB2ZXJzaW9uKSB7IHJldHVybiBhZG9wdFJlZihuZXcgUmVjb3JkSWRlbnRp
ZmllcihwcmltYXJ5S2V5LCB2ZXJzaW9uKSk7IH0KLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVjb3JkSWRlbnRpZmllcj4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFJlY29yZElk
ZW50aWZpZXIoKSk7IH0KLSAgICAgICAgdmlydHVhbCB+UmVjb3JkSWRlbnRpZmllcigpIHsgfQor
ICAgICAgICBSZWNvcmRJZGVudGlmaWVyKGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFyeUtleSwg
aW50NjRfdCB2ZXJzaW9uKSA6IG1fcHJpbWFyeUtleShwcmltYXJ5S2V5KSwgbV92ZXJzaW9uKHZl
cnNpb24pIHsgQVNTRVJUKCFwcmltYXJ5S2V5LmlzRW1wdHkoKSk7IH0KKyAgICAgICAgUmVjb3Jk
SWRlbnRpZmllcigpIDogbV9wcmltYXJ5S2V5KCksIG1fdmVyc2lvbigtMSkgeyB9CiAKLSAgICAg
ICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX3ByaW1hcnlLZXkuaXNF
bXB0eSgpOyB9CisgICAgICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJpbWFy
eUtleS5pc0VtcHR5KCk7IH0KICAgICAgICAgVmVjdG9yPGNoYXI+IHByaW1hcnlLZXkoKSBjb25z
dCB7IHJldHVybiBtX3ByaW1hcnlLZXk7IH0KLSAgICAgICAgdm9pZCBzZXRQcmltYXJ5S2V5KGNv
bnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFyeUtleSkgeyBtX3ByaW1hcnlLZXkgPSBwcmltYXJ5S2V5
OyB9CiAgICAgICAgIGludDY0X3QgdmVyc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fdmVyc2lvbjsg
fQotICAgICAgICB2b2lkIHNldFZlcnNpb24oaW50NjRfdCB2ZXJzaW9uKSB7IG1fdmVyc2lvbiA9
IHZlcnNpb247IH0KKyAgICAgICAgdm9pZCByZXNldChjb25zdCBWZWN0b3I8Y2hhcj4mIHByaW1h
cnlLZXksIGludDY0X3QgdmVyc2lvbikgeyBtX3ByaW1hcnlLZXkgPSBwcmltYXJ5S2V5OyBtX3Zl
cnNpb24gPSB2ZXJzaW9uOyB9CiAKICAgICBwcml2YXRlOgotICAgICAgICBSZWNvcmRJZGVudGlm
aWVyKGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpbWFyeUtleSwgaW50NjRfdCB2ZXJzaW9uKSA6IG1f
cHJpbWFyeUtleShwcmltYXJ5S2V5KSwgbV92ZXJzaW9uKHZlcnNpb24pIHsgQVNTRVJUKCFwcmlt
YXJ5S2V5LmlzRW1wdHkoKSk7IH0KLSAgICAgICAgUmVjb3JkSWRlbnRpZmllcigpIDogbV9wcmlt
YXJ5S2V5KCksIG1fdmVyc2lvbigtMSkgeyB9Ci0KICAgICAgICAgVmVjdG9yPGNoYXI+IG1fcHJp
bWFyeUtleTsgLy8gRklYTUU6IE1ha2UgaXQgbW9yZSBjbGVhciB0aGF0IHRoaXMgaXMgdGhlICpl
bmNvZGVkKiB2ZXJzaW9uIG9mIHRoZSBrZXkuCiAgICAgICAgIGludDY0X3QgbV92ZXJzaW9uOwog
ICAgIH07CiAKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpU
cmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXkmKTsKLSAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5JiwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgUmVjb3JkSWRlbnRpZmllciop
OworICAgIHZpcnR1YWwgdm9pZCBwdXRSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlv
biosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJL
ZXkmLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBSZWNvcmRJZGVudGlmaWVyKik7CiAgICAgdmlydHVh
bCB2b2lkIGNsZWFyT2JqZWN0U3RvcmUoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgUmVjb3JkSWRlbnRpZmllciop
OworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2Fj
dGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBS
ZWNvcmRJZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBpbnQ2NF90IGdldEtleUdlbmVyYXRvckN1
cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJh
c2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKLSAgICB2aXJ0dWFsIGJvb2wgbWF5YmVVcGRh
dGVLZXlHZW5lcmF0b3JDdXJyZW50TnVtYmVyKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24q
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBuZXdT
dGF0ZSwgYm9vbCBjaGVja0N1cnJlbnQpOworICAgIHZpcnR1YWwgdm9pZCBtYXliZVVwZGF0ZUtl
eUdlbmVyYXRvckN1cnJlbnROdW1iZXIoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IG5ld1N0YXRl
LCBib29sIGNoZWNrQ3VycmVudCk7CiAgICAgdmlydHVhbCBib29sIGtleUV4aXN0c0luT2JqZWN0
U3RvcmUoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmLCBSZWNvcmRJZGVudGlmaWVyKiBm
b3VuZFJlY29yZElkZW50aWZpZXIpOwogCiAgICAgdmlydHVhbCBWZWN0b3I8SURCSW5kZXhNZXRh
ZGF0YT4gZ2V0SW5kZXhlcyhpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCk7CiAgICAgdmlydHVhbCBib29sIGNyZWF0ZUluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNh
Y3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRf
dCBpbmRleElkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGlz
VW5pcXVlLCBib29sIGlzTXVsdGlFbnRyeSk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4
KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkKTsKLSAgICB2aXJ0dWFsIGJvb2wgcHV0
SW5kZXhEYXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25z
dCBJREJLZXkmLCBjb25zdCBSZWNvcmRJZGVudGlmaWVyKik7Ci0gICAgdmlydHVhbCBib29sIGRl
bGV0ZUluZGV4RGF0YUZvclJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50
NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwg
Y29uc3QgUmVjb3JkSWRlbnRpZmllciopOworICAgIHZpcnR1YWwgdm9pZCBwdXRJbmRleERhdGFG
b3JSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJ
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSYs
IGNvbnN0IFJlY29yZElkZW50aWZpZXImKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXhE
YXRhRm9yUmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBSZWNv
cmRJZGVudGlmaWVyJik7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQktleT4gZ2V0UHJpbWFy
eUtleVZpYUluZGV4KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJL
ZXkmKTsKICAgICB2aXJ0dWFsIGJvb2wga2V5RXhpc3RzSW5JbmRleChJREJCYWNraW5nU3RvcmU6
OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQs
IGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5JiBpbmRleEtleSwgUmVmUHRyPElEQktleT4m
IGZvdW5kUHJpbWFyeUtleSk7CiAKQEAgLTExMywxMyArMTA4LDYgQEAgcHVibGljOgogICAgICAg
ICAgICAgYm9vbCB1bmlxdWU7CiAgICAgICAgIH07CiAKLSAgICAgICAgQ3Vyc29yKExldmVsREJU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGNvbnN0IEN1cnNvck9wdGlvbnMmIGN1cnNvck9wdGlv
bnMpCi0gICAgICAgICAgICA6IG1fdHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCi0gICAgICAgICAg
ICAsIG1fY3Vyc29yT3B0aW9ucyhjdXJzb3JPcHRpb25zKQotICAgICAgICB7Ci0gICAgICAgIH0K
LSAgICAgICAgQ3Vyc29yKGNvbnN0IElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yKiBvdGhlcik7Ci0K
ICAgICAgICAgUGFzc1JlZlB0cjxJREJLZXk+IGtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVu
dEtleTsgfQogICAgICAgICBib29sIGNvbnRpbnVlRnVuY3Rpb24oY29uc3QgSURCS2V5KiA9IDAs
IEl0ZXJhdG9yU3RhdGUgPSBTZWVrKTsKICAgICAgICAgYm9vbCBhZHZhbmNlKHVuc2lnbmVkIGxv
bmcpOwpAQCAtMTI4LDExICsxMTYsMTggQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8Q3Vyc29yPiBjbG9uZSgpID0gMDsKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
QktleT4gcHJpbWFyeUtleSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudEtleTsgfQogICAgICAg
ICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0ID0gMDsKLSAgICAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFJlY29yZElkZW50aWZpZXI+IHJlY29yZElkZW50aWZpZXIoKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgY29uc3QgUmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllcigpIGNvbnN0
ICB7IHJldHVybiBtX3JlY29yZElkZW50aWZpZXI7IH0KICAgICAgICAgdmlydHVhbCB+Q3Vyc29y
KCkgeyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBsb2FkQ3VycmVudFJvdygpID0gMDsKIAogICAg
IHByb3RlY3RlZDoKKyAgICAgICAgQ3Vyc29yKExldmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rp
b24sIGNvbnN0IEN1cnNvck9wdGlvbnMmIGN1cnNvck9wdGlvbnMpCisgICAgICAgICAgICA6IG1f
dHJhbnNhY3Rpb24odHJhbnNhY3Rpb24pCisgICAgICAgICAgICAsIG1fY3Vyc29yT3B0aW9ucyhj
dXJzb3JPcHRpb25zKQorICAgICAgICB7CisgICAgICAgIH0KKyAgICAgICAgQ3Vyc29yKGNvbnN0
IElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yKiBvdGhlcik7CisKICAgICAgICAgYm9vbCBpc1Bhc3RC
b3VuZHMoKSBjb25zdDsKICAgICAgICAgYm9vbCBoYXZlRW50ZXJlZFJhbmdlKCkgY29uc3Q7CiAK
QEAgLTE0MCw2ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IEN1cnNvck9wdGlvbnMg
bV9jdXJzb3JPcHRpb25zOwogICAgICAgICBPd25QdHI8TGV2ZWxEQkl0ZXJhdG9yPiBtX2l0ZXJh
dG9yOwogICAgICAgICBSZWZQdHI8SURCS2V5PiBtX2N1cnJlbnRLZXk7CisgICAgICAgIElEQkJh
Y2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllciBtX3JlY29yZElkZW50aWZpZXI7CiAgICAgfTsK
IAogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDdXJzb3I+IG9wZW5PYmplY3RTdG9yZUtleUN1cnNv
cihJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleVJhbmdlKiwgSURCQ3Vyc29yOjpEaXJlY3Rp
b24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCAxMmMzNzNmZTA2MjEwNjM0MWY4
ZDMyM2Y5MGNmODJkMGE4MzljZWEwLi5hYWU2MGQ2NDk0OGUxMDFkZWMwMWE0ZjM2NTk2NjhiMWU0
ZDBlZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtMTU5LDE2ICsxNTksMTMg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBib29sIHdyaXRl
SW5kZXhLZXlzKGNvbnN0IElEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllciogcmVjb3Jk
SWRlbnRpZmllciwgSURCQmFja2luZ1N0b3JlJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCkgY29uc3QKKyAgICB2b2lkIHdyaXRlSW5kZXhLZXlzKGNvbnN0IElEQkJh
Y2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllciYgcmVjb3JkSWRlbnRpZmllciwgSURCQmFja2lu
Z1N0b3JlJiBiYWNraW5nU3RvcmUsIElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCkgY29uc3QK
ICAgICB7CiAgICAgICAgIGludDY0X3QgaW5kZXhJZCA9IG1faW5kZXhNZXRhZGF0YS5pZDsKICAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2luZGV4S2V5cy5zaXplKCk7ICsraSkgewot
ICAgICAgICAgICAgaWYgKCFiYWNraW5nU3RvcmUuZGVsZXRlSW5kZXhEYXRhRm9yUmVjb3JkKHRy
YW5zYWN0aW9uLCBkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkLCByZWNvcmRJZGVu
dGlmaWVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBpZiAo
IWJhY2tpbmdTdG9yZS5wdXRJbmRleERhdGFGb3JSZWNvcmQodHJhbnNhY3Rpb24sIGRhdGFiYXNl
SWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsICoobV9pbmRleEtleXMpW2ldLmdldCgpLCByZWNv
cmRJZGVudGlmaWVyKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg
ICBiYWNraW5nU3RvcmUuZGVsZXRlSW5kZXhEYXRhRm9yUmVjb3JkKHRyYW5zYWN0aW9uLCBkYXRh
YmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkLCByZWNvcmRJZGVudGlmaWVyKTsKKyAgICAg
ICAgICAgIGJhY2tpbmdTdG9yZS5wdXRJbmRleERhdGFGb3JSZWNvcmQodHJhbnNhY3Rpb24sIGRh
dGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsICoobV9pbmRleEtleXMpW2ldLmdldCgp
LCByZWNvcmRJZGVudGlmaWVyKTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKIHByaXZhdGU6CkBAIC0yMzYsOCArMjMzLDggQEAgdm9pZCBJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsOjpzZXRJbmRleEtleXMoUGFzc1JlZlB0cjxJREJLZXk+IHBycFByaW1hcnlLZXks
IGMKICAgICBSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24gPSBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpmcm9tKHRyYW5zYWN0aW9uUHRyKTsKIAogICAgIC8v
IEZJWE1FOiBUaGlzIG1ldGhvZCBjb3VsZCBiZSBhc3luY2hyb25vdXMsIGJ1dCB3ZSBuZWVkIHRv
IGV2YWx1YXRlIGlmIGl0J3Mgd29ydGggdGhlIGV4dHJhIGNvbXBsZXhpdHkuCi0gICAgUmVmUHRy
PElEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllcj4gcmVjb3JkSWRlbnRpZmllciA9IElE
QkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmllcjo6Y3JlYXRlKCk7Ci0gICAgaWYgKCFiYWNr
aW5nU3RvcmUoKS0+a2V5RXhpc3RzSW5PYmplY3RTdG9yZSh0cmFuc2FjdGlvbi0+YmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24oKSwgZGF0YWJhc2VJZCgpLCBpZCgpLCAqcHJpbWFyeUtleSwgcmVjb3Jk
SWRlbnRpZmllci5nZXQoKSkpIHsKKyAgICBJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZp
ZXIgcmVjb3JkSWRlbnRpZmllcjsKKyAgICBpZiAoIWJhY2tpbmdTdG9yZSgpLT5rZXlFeGlzdHNJ
bk9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBkYXRh
YmFzZUlkKCksIGlkKCksICpwcmltYXJ5S2V5LCAmcmVjb3JkSWRlbnRpZmllcikpIHsKICAgICAg
ICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNTIs
MTAgKzI0OSw3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6c2V0SW5kZXhLZXlz
KFBhc3NSZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBjCiAKICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGluZGV4V3JpdGVycy5zaXplKCk7ICsraSkgewogICAgICAgICBJbmRleFdyaXRl
ciogaW5kZXhXcml0ZXIgPSBpbmRleFdyaXRlcnNbaV0uZ2V0KCk7Ci0gICAgICAgIGlmICghaW5k
ZXhXcml0ZXItPndyaXRlSW5kZXhLZXlzKHJlY29yZElkZW50aWZpZXIuZ2V0KCksICpiYWNraW5n
U3RvcmUoKSwgdHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIGRhdGFiYXNl
SWQoKSwgbV9tZXRhZGF0YS5pZCkpIHsKLSAgICAgICAgICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CisgICAgICAgIGluZGV4V3JpdGVyLT53
cml0ZUluZGV4S2V5cyhyZWNvcmRJZGVudGlmaWVyLCAqYmFja2luZ1N0b3JlKCksIHRyYW5zYWN0
aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBkYXRhYmFzZUlkKCksIG1fbWV0YWRhdGEu
aWQpOwogICAgIH0KIH0KIApAQCAtMzI5LDggKzMyMyw4IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8CiAKICAgICBBU1NFUlQoa2V5ICYmIGtleS0+aXNWYWxpZCgpKTsKIAotICAgIFJlZlB0cjxJ
REJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXI+IHJlY29yZElkZW50aWZpZXIgPSBJREJC
YWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXI6OmNyZWF0ZSgpOwotICAgIGlmIChwdXRNb2Rl
ID09IEFkZE9ubHkgJiYgb2JqZWN0U3RvcmUtPmJhY2tpbmdTdG9yZSgpLT5rZXlFeGlzdHNJbk9i
amVjdFN0b3JlKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBvYmplY3RT
dG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwgKmtleSwgcmVjb3JkSWRlbnRp
Zmllci5nZXQoKSkpIHsKKyAgICBJREJCYWNraW5nU3RvcmU6OlJlY29yZElkZW50aWZpZXIgcmVj
b3JkSWRlbnRpZmllcjsKKyAgICBpZiAocHV0TW9kZSA9PSBBZGRPbmx5ICYmIG9iamVjdFN0b3Jl
LT5iYWNraW5nU3RvcmUoKS0+a2V5RXhpc3RzSW5PYmplY3RTdG9yZSh0cmFuc2FjdGlvbi0+YmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgb2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0
U3RvcmUtPmlkKCksICprZXksICZyZWNvcmRJZGVudGlmaWVyKSkgewogICAgICAgICBjYWxsYmFj
a3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpDT05TVFJBSU5UX0VSUiwgIktleSBhbHJlYWR5IGV4aXN0cyBpbiB0aGUgb2JqZWN0IHN0b3Jl
LiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTM0NCwyMiArMzM4LDExIEBAIHZvaWQg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8CiAKICAgICAvLyBCZWZvcmUgdGhpcyBwb2ludCwgZG9uJ3QgZG8g
YW55IG11dGF0aW9uLiAgQWZ0ZXIgdGhpcyBwb2ludCwgcm9sbGJhY2sgdGhlIHRyYW5zYWN0aW9u
IGluIGNhc2Ugb2YgZXJyb3IuCiAKLSAgICBpZiAoIW9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUo
KS0+cHV0UmVjb3JkKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBvYmpl
Y3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwgKmtleSwgdmFsdWUtPnRv
V2lyZVN0cmluZygpLCByZWNvcmRJZGVudGlmaWVyLmdldCgpKSkgewotICAgICAgICBSZWZQdHI8
SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IgPSBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0
YWJhc2VFeGNlcHRpb246OlVOS05PV05fRVJSLCAiRXJyb3Igd3JpdGluZyBkYXRhIHRvIHN0YWJs
ZSBzdG9yYWdlLiIpOwotICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoZXJyb3IpOwotICAgICAg
ICB0cmFuc2FjdGlvbi0+YWJvcnQoZXJyb3IpOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
IG9iamVjdFN0b3JlLT5iYWNraW5nU3RvcmUoKS0+cHV0UmVjb3JkKHRyYW5zYWN0aW9uLT5iYWNr
aW5nU3RvcmVUcmFuc2FjdGlvbigpLCBvYmplY3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RT
dG9yZS0+aWQoKSwgKmtleSwgdmFsdWUtPnRvV2lyZVN0cmluZygpLCAmcmVjb3JkSWRlbnRpZmll
cik7CiAKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluZGV4V3JpdGVycy5zaXplKCk7ICsr
aSkgewogICAgICAgICBJbmRleFdyaXRlciogaW5kZXhXcml0ZXIgPSBpbmRleFdyaXRlcnNbaV0u
Z2V0KCk7Ci0gICAgICAgIGlmICghaW5kZXhXcml0ZXItPndyaXRlSW5kZXhLZXlzKHJlY29yZElk
ZW50aWZpZXIuZ2V0KCksICpvYmplY3RTdG9yZS0+YmFja2luZ1N0b3JlKCksIHRyYW5zYWN0aW9u
LT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBvYmplY3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBv
YmplY3RTdG9yZS0+bV9tZXRhZGF0YS5pZCkpIHsKLQotICAgICAgICAgICAgUmVmUHRyPElEQkRh
dGFiYXNlRXJyb3I+IGVycm9yID0gSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpVTktOT1dOX0VSUiwgIkVycm9yIHdyaXRpbmcgZGF0YSB0byBzdGFibGUgc3Rv
cmFnZS4iKTsKLSAgICAgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihlcnJvcik7Ci0gICAgICAg
ICAgICB0cmFuc2FjdGlvbi0+YWJvcnQoZXJyb3IpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9CisgICAgICAgIGluZGV4V3JpdGVyLT53cml0ZUluZGV4S2V5cyhyZWNvcmRJZGVudGlm
aWVyLCAqb2JqZWN0U3RvcmUtPmJhY2tpbmdTdG9yZSgpLCB0cmFuc2FjdGlvbi0+YmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24oKSwgb2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwgb2JqZWN0U3RvcmUt
Pm1fbWV0YWRhdGEuaWQpOwogICAgIH0KIAogICAgIGlmIChhdXRvSW5jcmVtZW50ICYmIHB1dE1v
ZGUgIT0gQ3Vyc29yVXBkYXRlICYmIGtleS0+dHlwZSgpID09IElEQktleTo6TnVtYmVyVHlwZSkK
QEAgLTM4NywyMCArMzcwLDE2IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6ZGVs
ZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcHJwS2V5UmFuCiB2b2lkIElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw6OmRlbGV0ZUludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2Fj
dGlvbikKIHsKICAgICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmRlbGV0
ZUludGVybmFsIik7Ci0gICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZTo6UmVjb3JkSWRlbnRpZmll
cj4gcmVjb3JkSWRlbnRpZmllcjsKIAogICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU6OkN1cnNv
cj4gYmFja2luZ1N0b3JlQ3Vyc29yID0gb2JqZWN0U3RvcmUtPmJhY2tpbmdTdG9yZSgpLT5vcGVu
T2JqZWN0U3RvcmVDdXJzb3IodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCks
IG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpLCBrZXlSYW5nZS5n
ZXQoKSwgSURCQ3Vyc29yOjpORVhUKTsKICAgICBpZiAoYmFja2luZ1N0b3JlQ3Vyc29yKSB7CiAK
ICAgICAgICAgZG8gewotICAgICAgICAgICAgcmVjb3JkSWRlbnRpZmllciA9IGJhY2tpbmdTdG9y
ZUN1cnNvci0+cmVjb3JkSWRlbnRpZmllcigpOwotCiAgICAgICAgICAgICBmb3IgKElEQk9iamVj
dFN0b3JlQmFja2VuZEltcGw6OkluZGV4TWFwOjppdGVyYXRvciBpdCA9IG9iamVjdFN0b3JlLT5t
X2luZGV4ZXMuYmVnaW4oKTsgaXQgIT0gb2JqZWN0U3RvcmUtPm1faW5kZXhlcy5lbmQoKTsgKytp
dCkgewotICAgICAgICAgICAgICAgIGJvb2wgc3VjY2VzcyA9IG9iamVjdFN0b3JlLT5iYWNraW5n
U3RvcmUoKS0+ZGVsZXRlSW5kZXhEYXRhRm9yUmVjb3JkKHRyYW5zYWN0aW9uLT5iYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbigpLCBvYmplY3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+
aWQoKSwgaXQtPmtleSwgcmVjb3JkSWRlbnRpZmllci5nZXQoKSk7Ci0gICAgICAgICAgICAgICAg
QVNTRVJUX1VOVVNFRChzdWNjZXNzLCBzdWNjZXNzKTsKKyAgICAgICAgICAgICAgICBvYmplY3RT
dG9yZS0+YmFja2luZ1N0b3JlKCktPmRlbGV0ZUluZGV4RGF0YUZvclJlY29yZCh0cmFuc2FjdGlv
bi0+YmFja2luZ1N0b3JlVHJhbnNhY3Rpb24oKSwgb2JqZWN0U3RvcmUtPmRhdGFiYXNlSWQoKSwg
b2JqZWN0U3RvcmUtPmlkKCksIGl0LT5rZXksIGJhY2tpbmdTdG9yZUN1cnNvci0+cmVjb3JkSWRl
bnRpZmllcigpKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgb2JqZWN0U3RvcmUtPmJh
Y2tpbmdTdG9yZSgpLT5kZWxldGVSZWNvcmQodHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5z
YWN0aW9uKCksIG9iamVjdFN0b3JlLT5kYXRhYmFzZUlkKCksIG9iamVjdFN0b3JlLT5pZCgpLCBy
ZWNvcmRJZGVudGlmaWVyLmdldCgpKTsKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLT5iYWNraW5n
U3RvcmUoKS0+ZGVsZXRlUmVjb3JkKHRyYW5zYWN0aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlv
bigpLCBvYmplY3RTdG9yZS0+ZGF0YWJhc2VJZCgpLCBvYmplY3RTdG9yZS0+aWQoKSwgYmFja2lu
Z1N0b3JlQ3Vyc29yLT5yZWNvcmRJZGVudGlmaWVyKCkpOwogCiAgICAgICAgIH0gd2hpbGUgKGJh
Y2tpbmdTdG9yZUN1cnNvci0+Y29udGludWVGdW5jdGlvbigwKSk7CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>