<?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>62013</bug_id>
          
          <creation_ts>2011-06-03 07:29:51 -0700</creation_ts>
          <short_desc>IndexedDB: Clean-up function prototypes in IDBLevelDBBackingStore.cpp</short_desc>
          <delta_ts>2011-06-06 01:09:40 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Wennborg">hans</reporter>
          <assigned_to name="Hans Wennborg">hans</assigned_to>
          <cc>dgrogan</cc>
    
    <cc>tonyg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>414870</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-06-03 07:29:51 -0700</bug_when>
    <thetext>IndexedDB: Clean-up function prototypes in IDBLevelDBBackingStore.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414874</commentid>
    <comment_count>1</comment_count>
      <attachid>95910</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-06-03 07:32:18 -0700</bug_when>
    <thetext>Created attachment 95910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414876</commentid>
    <comment_count>2</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-06-03 07:34:03 -0700</bug_when>
    <thetext>As suggested in review of Bug 61517.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415348</commentid>
    <comment_count>3</comment_count>
      <attachid>95910</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2011-06-03 18:29:45 -0700</bug_when>
    <thetext>Comment on attachment 95910
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415659</commentid>
    <comment_count>4</comment_count>
      <attachid>95910</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-06-05 15:50:41 -0700</bug_when>
    <thetext>Comment on attachment 95910
Patch

So much cleaner. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415733</commentid>
    <comment_count>5</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-06-06 01:09:40 -0700</bug_when>
    <thetext>Committed r88146: &lt;http://trac.webkit.org/changeset/88146&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95910</attachid>
            <date>2011-06-03 07:32:18 -0700</date>
            <delta_ts>2011-06-05 15:50:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62013-20110603153216.patch</filename>
            <type>text/plain</type>
            <size>21153</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc5OTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNTczN2Y5N2MxYzExOWRh
YTRmNTNkYjQ2NzYyOWM1NGY1YWM0YTAwLi5jYWY0ZWZjMjE2YzkxM2FlYzhjYzEzZGRmMjAyN2Zm
YWQ5MGU2ODIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDYtMDMgIEhhbnMg
V2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbmRleGVkREI6IENsZWFuLXVwIGZ1bmN0aW9uIHByb3Rv
dHlwZXMgaW4gSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMDEzCisKKyAgICAgICAgQ2xlYW4gdXAgdGhl
IHByb3RvdHlwZXMgZm9yIGN1cnNvciBvcGVuIGZ1bmN0aW9ucyBieSBpbnRyb2R1Y2luZyB0aGUK
KyAgICAgICAgQ3Vyc29yT3B0aW9ucyBzdHJ1Y3QuCisKKyAgICAgICAgSnVzdCBjbGVhbi11cCwg
bm8gbmV3IGZ1bmN0aW9uYWxpdHkgc28gbm8gbmV3IHRlc3RzLgorCisgICAgICAgICogc3RvcmFn
ZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvck9w
dGlvbnM6OkN1cnNvckltcGxDb21tb246OkN1cnNvckltcGxDb21tb24pOgorICAgICAgICAoV2Vi
Q29yZTo6Q3Vyc29yT3B0aW9uczo6Q3Vyc29ySW1wbENvbW1vbjo6Zmlyc3RTZWVrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkN1cnNvck9wdGlvbnM6OkN1cnNvckltcGxDb21tb246OmNvbnRpbnVlRnVu
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yT3B0aW9uczo6T2JqZWN0U3RvcmVDdXJz
b3JJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yT3B0aW9uczo6T2JqZWN0
U3RvcmVDdXJzb3JJbXBsOjpPYmplY3RTdG9yZUN1cnNvckltcGwpOgorICAgICAgICAoV2ViQ29y
ZTo6Q3Vyc29yT3B0aW9uczo6SW5kZXhLZXlDdXJzb3JJbXBsOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q3Vyc29yT3B0aW9uczo6SW5kZXhLZXlDdXJzb3JJbXBsOjpJbmRleEtleUN1cnNv
ckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yT3B0aW9uczo6SW5kZXhDdXJzb3JJbXBs
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yT3B0aW9uczo6SW5kZXhDdXJzb3JJ
bXBsOjpJbmRleEN1cnNvckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCTGV2ZWxEQkJhY2tp
bmdTdG9yZTo6b3Blbk9iamVjdFN0b3JlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkxl
dmVsREJCYWNraW5nU3RvcmU6Om9wZW5JbmRleEtleUN1cnNvcik6CisgICAgICAgIChXZWJDb3Jl
OjpJREJMZXZlbERCQmFja2luZ1N0b3JlOjpvcGVuSW5kZXhDdXJzb3IpOgorCiAyMDExLTA2LTAz
ICBQZXRlciBWYXJnYSAgPHB2YXJnYUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlci1zdGFt
cGVkIGJ5IENzYWJhIE9zenRyb2dvbuFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggODM1ZjU1MjgxM2IwMTgyMzM3N2UxODY1
ZmNiNmY3YzhjMTg1NzRhNy4uNmMyNTU5ODUzMmM4YmQ4NzI4Y2JhMzRhMDkxMDMwOTM1NzA2YTgw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJMZXZlbERCQmFja2luZ1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkxldmVsREJCYWNraW5nU3Rv
cmUuY3BwCkBAIC04MjEsNiArODIxLDE2IEBAIGJvb2wgSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6
a2V5RXhpc3RzSW5JbmRleChpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0CiB9CiAK
IG5hbWVzcGFjZSB7CisKK3N0cnVjdCBDdXJzb3JPcHRpb25zIHsKKyAgICBWZWN0b3I8Y2hhcj4g
bG93S2V5OworICAgIGJvb2wgbG93T3BlbjsKKyAgICBWZWN0b3I8Y2hhcj4gaGlnaEtleTsKKyAg
ICBib29sIGhpZ2hPcGVuOworICAgIGJvb2wgZm9yd2FyZDsKKyAgICBib29sIHVuaXF1ZTsKK307
CisKIGNsYXNzIEN1cnNvckltcGxDb21tb24gOiBwdWJsaWMgSURCQmFja2luZ1N0b3JlOjpDdXJz
b3IgewogcHVibGljOgogICAgIC8vIElEQkJhY2tpbmdTdG9yZTo6Q3Vyc29yCkBAIC04MzYsMjYg
Kzg0NiwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBmaXJzdFNlZWsoKTsKIAogcHJvdGVjdGVkOgot
ICAgIEN1cnNvckltcGxDb21tb24oTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29u
c3QgVmVjdG9yPGNoYXI+JiBsb3dLZXksIGJvb2wgbG93T3BlbiwgY29uc3QgVmVjdG9yPGNoYXI+
JiBoaWdoS2V5LCBib29sIGhpZ2hPcGVuLCBib29sIGZvcndhcmQsIGJvb2wgdW5pcXVlKQorICAg
IEN1cnNvckltcGxDb21tb24oTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29uc3Qg
Q3Vyc29yT3B0aW9ucyYgY3Vyc29yT3B0aW9ucykKICAgICAgICAgOiBtX3RyYW5zYWN0aW9uKHRy
YW5zYWN0aW9uKQotICAgICAgICAsIG1fbG93S2V5KGxvd0tleSkKLSAgICAgICAgLCBtX2xvd09w
ZW4obG93T3BlbikKLSAgICAgICAgLCBtX2hpZ2hLZXkoaGlnaEtleSkKLSAgICAgICAgLCBtX2hp
Z2hPcGVuKGhpZ2hPcGVuKQotICAgICAgICAsIG1fZm9yd2FyZChmb3J3YXJkKQotICAgICAgICAs
IG1fdW5pcXVlKHVuaXF1ZSkKKyAgICAgICAgLCBtX2N1cnNvck9wdGlvbnMoY3Vyc29yT3B0aW9u
cykKICAgICB7CiAgICAgfQogICAgIHZpcnR1YWwgfkN1cnNvckltcGxDb21tb24oKSB7fQogCiAg
ICAgTGV2ZWxEQlRyYW5zYWN0aW9uKiBtX3RyYW5zYWN0aW9uOworICAgIEN1cnNvck9wdGlvbnMg
bV9jdXJzb3JPcHRpb25zOwogICAgIE93blB0cjxMZXZlbERCSXRlcmF0b3I+IG1faXRlcmF0b3I7
Ci0gICAgVmVjdG9yPGNoYXI+IG1fbG93S2V5OwotICAgIGJvb2wgbV9sb3dPcGVuOwotICAgIFZl
Y3RvcjxjaGFyPiBtX2hpZ2hLZXk7Ci0gICAgYm9vbCBtX2hpZ2hPcGVuOwotICAgIGJvb2wgbV9m
b3J3YXJkOwotICAgIGJvb2wgbV91bmlxdWU7CiAgICAgUmVmUHRyPElEQktleT4gbV9jdXJyZW50
S2V5OwogfTsKIApAQCAtODYzLDQxICs4NjMsNDEgQEAgYm9vbCBDdXJzb3JJbXBsQ29tbW9uOjpm
aXJzdFNlZWsoKQogewogICAgIG1faXRlcmF0b3IgPSBtX3RyYW5zYWN0aW9uLT5jcmVhdGVJdGVy
YXRvcigpOwogCi0gICAgaWYgKG1fZm9yd2FyZCkKLSAgICAgICAgbV9pdGVyYXRvci0+c2Vlayht
X2xvd0tleSk7CisgICAgaWYgKG1fY3Vyc29yT3B0aW9ucy5mb3J3YXJkKQorICAgICAgICBtX2l0
ZXJhdG9yLT5zZWVrKG1fY3Vyc29yT3B0aW9ucy5sb3dLZXkpOwogICAgIGVsc2UKLSAgICAgICAg
bV9pdGVyYXRvci0+c2VlayhtX2hpZ2hLZXkpOworICAgICAgICBtX2l0ZXJhdG9yLT5zZWVrKG1f
Y3Vyc29yT3B0aW9ucy5oaWdoS2V5KTsKIAogICAgIGZvciAoOzspIHsKICAgICAgICAgaWYgKCFt
X2l0ZXJhdG9yLT5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAg
ICAgaWYgKG1fZm9yd2FyZCAmJiBtX2hpZ2hPcGVuICYmIGNvbXBhcmVJbmRleEtleXMobV9pdGVy
YXRvci0+a2V5KCksIG1faGlnaEtleSkgPj0gMCkKKyAgICAgICAgaWYgKG1fY3Vyc29yT3B0aW9u
cy5mb3J3YXJkICYmIG1fY3Vyc29yT3B0aW9ucy5oaWdoT3BlbiAmJiBjb21wYXJlSW5kZXhLZXlz
KG1faXRlcmF0b3ItPmtleSgpLCBtX2N1cnNvck9wdGlvbnMuaGlnaEtleSkgPj0gMCkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgaWYgKG1fZm9yd2FyZCAmJiAhbV9oaWdoT3Bl
biAmJiBjb21wYXJlSW5kZXhLZXlzKG1faXRlcmF0b3ItPmtleSgpLCBtX2hpZ2hLZXkpID4gMCkK
KyAgICAgICAgaWYgKG1fY3Vyc29yT3B0aW9ucy5mb3J3YXJkICYmICFtX2N1cnNvck9wdGlvbnMu
aGlnaE9wZW4gJiYgY29tcGFyZUluZGV4S2V5cyhtX2l0ZXJhdG9yLT5rZXkoKSwgbV9jdXJzb3JP
cHRpb25zLmhpZ2hLZXkpID4gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
aWYgKCFtX2ZvcndhcmQgJiYgbV9sb3dPcGVuICYmIGNvbXBhcmVJbmRleEtleXMobV9pdGVyYXRv
ci0+a2V5KCksIG1fbG93S2V5KSA8PSAwKQorICAgICAgICBpZiAoIW1fY3Vyc29yT3B0aW9ucy5m
b3J3YXJkICYmIG1fY3Vyc29yT3B0aW9ucy5sb3dPcGVuICYmIGNvbXBhcmVJbmRleEtleXMobV9p
dGVyYXRvci0+a2V5KCksIG1fY3Vyc29yT3B0aW9ucy5sb3dLZXkpIDw9IDApCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghbV9mb3J3YXJkICYmICFtX2xvd09wZW4gJiYg
Y29tcGFyZUluZGV4S2V5cyhtX2l0ZXJhdG9yLT5rZXkoKSwgbV9sb3dLZXkpIDwgMCkKKyAgICAg
ICAgaWYgKCFtX2N1cnNvck9wdGlvbnMuZm9yd2FyZCAmJiAhbV9jdXJzb3JPcHRpb25zLmxvd09w
ZW4gJiYgY29tcGFyZUluZGV4S2V5cyhtX2l0ZXJhdG9yLT5rZXkoKSwgbV9jdXJzb3JPcHRpb25z
Lmxvd0tleSkgPCAwKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGlmICht
X2ZvcndhcmQgJiYgbV9sb3dPcGVuKSB7CisgICAgICAgIGlmIChtX2N1cnNvck9wdGlvbnMuZm9y
d2FyZCAmJiBtX2N1cnNvck9wdGlvbnMubG93T3BlbikgewogICAgICAgICAgICAgLy8gbG93S2V5
IG5vdCBpbmNsdWRlZCBpbiB0aGUgcmFuZ2UuCi0gICAgICAgICAgICBpZiAoY29tcGFyZUluZGV4
S2V5cyhtX2l0ZXJhdG9yLT5rZXkoKSwgbV9sb3dLZXkpIDw9IDApIHsKKyAgICAgICAgICAgIGlm
IChjb21wYXJlSW5kZXhLZXlzKG1faXRlcmF0b3ItPmtleSgpLCBtX2N1cnNvck9wdGlvbnMubG93
S2V5KSA8PSAwKSB7CiAgICAgICAgICAgICAgICAgbV9pdGVyYXRvci0+bmV4dCgpOwogICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIGlm
ICghbV9mb3J3YXJkICYmIG1faGlnaE9wZW4pIHsKKyAgICAgICAgaWYgKCFtX2N1cnNvck9wdGlv
bnMuZm9yd2FyZCAmJiBtX2N1cnNvck9wdGlvbnMuaGlnaE9wZW4pIHsKICAgICAgICAgICAgIC8v
IGhpZ2hLZXkgbm90IGluY2x1ZGVkIGluIHRoZSByYW5nZS4KLSAgICAgICAgICAgIGlmIChjb21w
YXJlSW5kZXhLZXlzKG1faXRlcmF0b3ItPmtleSgpLCBtX2hpZ2hLZXkpID49IDApIHsKKyAgICAg
ICAgICAgIGlmIChjb21wYXJlSW5kZXhLZXlzKG1faXRlcmF0b3ItPmtleSgpLCBtX2N1cnNvck9w
dGlvbnMuaGlnaEtleSkgPj0gMCkgewogICAgICAgICAgICAgICAgIG1faXRlcmF0b3ItPnByZXYo
KTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CiAgICAgICAgIGlmICghbG9hZEN1cnJlbnRSb3coKSkgewotICAgICAgICAgICAgaWYgKG1fZm9y
d2FyZCkKKyAgICAgICAgICAgIGlmIChtX2N1cnNvck9wdGlvbnMuZm9yd2FyZCkKICAgICAgICAg
ICAgICAgICBtX2l0ZXJhdG9yLT5uZXh0KCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAg
ICAgICAgbV9pdGVyYXRvci0+cHJldigpOwpAQCAtOTE0LDcgKzkxNCw3IEBAIGJvb2wgQ3Vyc29y
SW1wbENvbW1vbjo6Y29udGludWVGdW5jdGlvbihjb25zdCBJREJLZXkqIGtleSkKICAgICBSZWZQ
dHI8SURCS2V5PiBwcmV2aW91c0tleSA9IG1fY3VycmVudEtleTsKIAogICAgIGZvciAoOzspIHsK
LSAgICAgICAgaWYgKG1fZm9yd2FyZCkKKyAgICAgICAgaWYgKG1fY3Vyc29yT3B0aW9ucy5mb3J3
YXJkKQogICAgICAgICAgICAgbV9pdGVyYXRvci0+bmV4dCgpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBtX2l0ZXJhdG9yLT5wcmV2KCk7CkBAIC05MjYsMjAgKzkyNiwyMCBAQCBib29sIEN1
cnNvckltcGxDb21tb246OmNvbnRpbnVlRnVuY3Rpb24oY29uc3QgSURCS2V5KiBrZXkpCiAgICAg
ICAgIGlmICghbV90cmFuc2FjdGlvbi0+Z2V0KG1faXRlcmF0b3ItPmtleSgpLCB0cmFzaCkpCiAg
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKG1fZm9yd2FyZCAmJiBtX2hpZ2hP
cGVuICYmIGNvbXBhcmVJbmRleEtleXMobV9pdGVyYXRvci0+a2V5KCksIG1faGlnaEtleSkgPj0g
MCkgLy8gaGlnaCBrZXkgbm90IGluY2x1ZGVkIGluIHJhbmdlCisgICAgICAgIGlmIChtX2N1cnNv
ck9wdGlvbnMuZm9yd2FyZCAmJiBtX2N1cnNvck9wdGlvbnMuaGlnaE9wZW4gJiYgY29tcGFyZUlu
ZGV4S2V5cyhtX2l0ZXJhdG9yLT5rZXkoKSwgbV9jdXJzb3JPcHRpb25zLmhpZ2hLZXkpID49IDAp
IC8vIGhpZ2gga2V5IG5vdCBpbmNsdWRlZCBpbiByYW5nZQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBpZiAobV9mb3J3YXJkICYmICFtX2hpZ2hPcGVuICYmIGNvbXBhcmVJbmRl
eEtleXMobV9pdGVyYXRvci0+a2V5KCksIG1faGlnaEtleSkgPiAwKQorICAgICAgICBpZiAobV9j
dXJzb3JPcHRpb25zLmZvcndhcmQgJiYgIW1fY3Vyc29yT3B0aW9ucy5oaWdoT3BlbiAmJiBjb21w
YXJlSW5kZXhLZXlzKG1faXRlcmF0b3ItPmtleSgpLCBtX2N1cnNvck9wdGlvbnMuaGlnaEtleSkg
PiAwKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIW1fZm9yd2FyZCAm
JiBtX2xvd09wZW4gJiYgY29tcGFyZUluZGV4S2V5cyhtX2l0ZXJhdG9yLT5rZXkoKSwgbV9sb3dL
ZXkpIDw9IDApIC8vIGxvdyBrZXkgbm90IGluY2x1ZGVkIGluIHJhbmdlCisgICAgICAgIGlmICgh
bV9jdXJzb3JPcHRpb25zLmZvcndhcmQgJiYgbV9jdXJzb3JPcHRpb25zLmxvd09wZW4gJiYgY29t
cGFyZUluZGV4S2V5cyhtX2l0ZXJhdG9yLT5rZXkoKSwgbV9jdXJzb3JPcHRpb25zLmxvd0tleSkg
PD0gMCkgLy8gbG93IGtleSBub3QgaW5jbHVkZWQgaW4gcmFuZ2UKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgaWYgKCFtX2ZvcndhcmQgJiYgIW1fbG93T3BlbiAmJiBjb21wYXJl
SW5kZXhLZXlzKG1faXRlcmF0b3ItPmtleSgpLCBtX2xvd0tleSkgPCAwKQorICAgICAgICBpZiAo
IW1fY3Vyc29yT3B0aW9ucy5mb3J3YXJkICYmICFtX2N1cnNvck9wdGlvbnMubG93T3BlbiAmJiBj
b21wYXJlSW5kZXhLZXlzKG1faXRlcmF0b3ItPmtleSgpLCBtX2N1cnNvck9wdGlvbnMubG93S2V5
KSA8IDApCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKCFsb2FkQ3Vy
cmVudFJvdygpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKGtleSkgewot
ICAgICAgICAgICAgaWYgKG1fZm9yd2FyZCkgeworICAgICAgICAgICAgaWYgKG1fY3Vyc29yT3B0
aW9ucy5mb3J3YXJkKSB7CiAgICAgICAgICAgICAgICAgaWYgKG1fY3VycmVudEtleS0+aXNMZXNz
VGhhbihrZXkpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0g
ZWxzZSB7CkBAIC05NDgsNyArOTQ4LDcgQEAgYm9vbCBDdXJzb3JJbXBsQ29tbW9uOjpjb250aW51
ZUZ1bmN0aW9uKGNvbnN0IElEQktleSoga2V5KQogICAgICAgICAgICAgfQogICAgICAgICB9CiAK
LSAgICAgICAgaWYgKG1fdW5pcXVlICYmIG1fY3VycmVudEtleS0+aXNFcXVhbChwcmV2aW91c0tl
eS5nZXQoKSkpCisgICAgICAgIGlmIChtX2N1cnNvck9wdGlvbnMudW5pcXVlICYmIG1fY3VycmVu
dEtleS0+aXNFcXVhbChwcmV2aW91c0tleS5nZXQoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAogICAgICAgICBicmVhazsKQEAgLTk1OSw5ICs5NTksOSBAQCBib29sIEN1cnNvckltcGxDb21t
b246OmNvbnRpbnVlRnVuY3Rpb24oY29uc3QgSURCS2V5KiBrZXkpCiAKIGNsYXNzIE9iamVjdFN0
b3JlQ3Vyc29ySW1wbCA6IHB1YmxpYyBDdXJzb3JJbXBsQ29tbW9uIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxPYmplY3RTdG9yZUN1cnNvckltcGw+IGNyZWF0ZShMZXZlbERCVHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBs
b3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGhpZ2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wg
Zm9yd2FyZCwgYm9vbCB1bmlxdWUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8T2JqZWN0U3RvcmVD
dXJzb3JJbXBsPiBjcmVhdGUoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29uc3Qg
Q3Vyc29yT3B0aW9ucyYgY3Vyc29yT3B0aW9ucykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgT2JqZWN0U3RvcmVDdXJzb3JJbXBsKHRyYW5zYWN0aW9uLCBsb3dLZXksIGxvd09w
ZW4sIGhpZ2hLZXksIGhpZ2hPcGVuLCBmb3J3YXJkLCB1bmlxdWUpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBPYmplY3RTdG9yZUN1cnNvckltcGwodHJhbnNhY3Rpb24sIGN1cnNvck9w
dGlvbnMpKTsKICAgICB9CiAKICAgICAvLyBDdXJzb3JJbXBsQ29tbW9uCkBAIC05NzEsOCArOTcx
LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBsb2FkQ3VycmVudFJvdygpOwogCiBwcml2
YXRlOgotICAgIE9iamVjdFN0b3JlQ3Vyc29ySW1wbChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25zdCBW
ZWN0b3I8Y2hhcj4mIGhpZ2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wgZm9yd2FyZCwgYm9vbCB1
bmlxdWUpCi0gICAgICAgIDogQ3Vyc29ySW1wbENvbW1vbih0cmFuc2FjdGlvbiwgbG93S2V5LCBs
b3dPcGVuLCBoaWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCwgdW5pcXVlKQorICAgIE9iamVjdFN0
b3JlQ3Vyc29ySW1wbChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBDdXJz
b3JPcHRpb25zJiBjdXJzb3JPcHRpb25zKQorICAgICAgICA6IEN1cnNvckltcGxDb21tb24odHJh
bnNhY3Rpb24sIGN1cnNvck9wdGlvbnMpCiAgICAgewogICAgIH0KIApAQCAtMTAwNiw5ICsxMDA2
LDkgQEAgYm9vbCBPYmplY3RTdG9yZUN1cnNvckltcGw6OmxvYWRDdXJyZW50Um93KCkKIAogY2xh
c3MgSW5kZXhLZXlDdXJzb3JJbXBsIDogcHVibGljIEN1cnNvckltcGxDb21tb24gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluZGV4S2V5Q3Vyc29ySW1wbD4gY3JlYXRlKExldmVs
REJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGNvbnN0IFZlY3RvcjxjaGFyPiYgbG93S2V5LCBi
b29sIGxvd09wZW4sIGNvbnN0IFZlY3RvcjxjaGFyPiYgaGlnaEtleSwgYm9vbCBoaWdoT3Blbiwg
Ym9vbCBmb3J3YXJkLCBib29sIHVuaXF1ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJbmRleEtl
eUN1cnNvckltcGw+IGNyZWF0ZShMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25z
dCBDdXJzb3JPcHRpb25zJiBjdXJzb3JPcHRpb25zKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBJbmRleEtleUN1cnNvckltcGwodHJhbnNhY3Rpb24sIGxvd0tleSwgbG93T3Bl
biwgaGlnaEtleSwgaGlnaE9wZW4sIGZvcndhcmQsIHVuaXF1ZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEluZGV4S2V5Q3Vyc29ySW1wbCh0cmFuc2FjdGlvbiwgY3Vyc29yT3B0aW9u
cykpOwogICAgIH0KIAogICAgIC8vIEN1cnNvckltcGxDb21tb24KQEAgLTEwMTksOCArMTAxOSw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbG9hZEN1cnJlbnRSb3coKTsKIAogcHJpdmF0
ZToKLSAgICBJbmRleEtleUN1cnNvckltcGwoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlv
biwgY29uc3QgVmVjdG9yPGNoYXI+JiBsb3dLZXksIGJvb2wgbG93T3BlbiwgY29uc3QgVmVjdG9y
PGNoYXI+JiBoaWdoS2V5LCBib29sIGhpZ2hPcGVuLCBib29sIGZvcndhcmQsIGJvb2wgdW5pcXVl
KQotICAgICAgICA6IEN1cnNvckltcGxDb21tb24odHJhbnNhY3Rpb24sIGxvd0tleSwgbG93T3Bl
biwgaGlnaEtleSwgaGlnaE9wZW4sIGZvcndhcmQsIHVuaXF1ZSkKKyAgICBJbmRleEtleUN1cnNv
ckltcGwoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29uc3QgQ3Vyc29yT3B0aW9u
cyYgY3Vyc29yT3B0aW9ucykKKyAgICAgICAgOiBDdXJzb3JJbXBsQ29tbW9uKHRyYW5zYWN0aW9u
LCBjdXJzb3JPcHRpb25zKQogICAgIHsKICAgICB9CiAKQEAgLTEwNjksOSArMTA2OSw5IEBAIGJv
b2wgSW5kZXhLZXlDdXJzb3JJbXBsOjpsb2FkQ3VycmVudFJvdygpCiAKIGNsYXNzIEluZGV4Q3Vy
c29ySW1wbCA6IHB1YmxpYyBDdXJzb3JJbXBsQ29tbW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJbmRleEN1cnNvckltcGw+IGNyZWF0ZShMZXZlbERCVHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBsb3dPcGVuLCBjb25z
dCBWZWN0b3I8Y2hhcj4mIGhpZ2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wgZm9yd2FyZCwgYm9v
bCB1bmlxdWUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SW5kZXhDdXJzb3JJbXBsPiBjcmVhdGUo
TGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgY29uc3QgQ3Vyc29yT3B0aW9ucyYgY3Vy
c29yT3B0aW9ucykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5kZXhDdXJz
b3JJbXBsKHRyYW5zYWN0aW9uLCBsb3dLZXksIGxvd09wZW4sIGhpZ2hLZXksIGhpZ2hPcGVuLCBm
b3J3YXJkLCB1bmlxdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbmRleEN1cnNv
ckltcGwodHJhbnNhY3Rpb24sIGN1cnNvck9wdGlvbnMpKTsKICAgICB9CiAKICAgICAvLyBDdXJz
b3JJbXBsQ29tbW9uCkBAIC0xMDgyLDggKzEwODIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBsb2Fk
Q3VycmVudFJvdygpOwogCiBwcml2YXRlOgotICAgIEluZGV4Q3Vyc29ySW1wbChMZXZlbERCVHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGxvd0tleSwgYm9vbCBs
b3dPcGVuLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGhpZ2hLZXksIGJvb2wgaGlnaE9wZW4sIGJvb2wg
Zm9yd2FyZCwgYm9vbCB1bmlxdWUpCi0gICAgICAgIDogQ3Vyc29ySW1wbENvbW1vbih0cmFuc2Fj
dGlvbiwgbG93S2V5LCBsb3dPcGVuLCBoaWdoS2V5LCBoaWdoT3BlbiwgZm9yd2FyZCwgdW5pcXVl
KQorICAgIEluZGV4Q3Vyc29ySW1wbChMZXZlbERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBj
b25zdCBDdXJzb3JPcHRpb25zJiBjdXJzb3JPcHRpb25zKQorICAgICAgICA6IEN1cnNvckltcGxD
b21tb24odHJhbnNhY3Rpb24sIGN1cnNvck9wdGlvbnMpCiAgICAgewogICAgIH0KIApAQCAtMTE1
OCwzNyArMTE1OCwzNiBAQCBzdGF0aWMgYm9vbCBmaW5kTGFzdEluZGV4S2V5RXF1YWxUbyhMZXZl
bERCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0bwogUGFzc1JlZlB0cjxJREJC
YWNraW5nU3RvcmU6OkN1cnNvcj4gSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6b3Blbk9iamVjdFN0
b3JlQ3Vyc29yKGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25z
dCBJREJLZXlSYW5nZSogcmFuZ2UsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsK
ICAgICBBU1NFUlQobV9jdXJyZW50VHJhbnNhY3Rpb24pOworICAgIEN1cnNvck9wdGlvbnMgY3Vy
c29yT3B0aW9uczsKKwogICAgIGJvb2wgbG93ZXJCb3VuZCA9IHJhbmdlICYmIHJhbmdlLT5sb3dl
cigpOwogICAgIGJvb2wgdXBwZXJCb3VuZCA9IHJhbmdlICYmIHJhbmdlLT51cHBlcigpOwotICAg
IGJvb2wgZm9yd2FyZCA9IChkaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhUX05PX0RVUExJQ0FU
RSB8fCBkaXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhUKTsKLSAgICBib29sIHVuaXF1ZSA9IChk
aXJlY3Rpb24gPT0gSURCQ3Vyc29yOjpORVhUX05PX0RVUExJQ0FURSB8fCBkaXJlY3Rpb24gPT0g
SURCQ3Vyc29yOjpQUkVWX05PX0RVUExJQ0FURSk7Ci0KLSAgICBib29sIGxvd2VyT3BlbiwgdXBw
ZXJPcGVuOwotICAgIFZlY3RvcjxjaGFyPiBzdGFydEtleSwgc3RvcEtleTsKKyAgICBjdXJzb3JP
cHRpb25zLmZvcndhcmQgPSAoZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNB
VEUgfHwgZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVCk7CisgICAgY3Vyc29yT3B0aW9ucy51
bmlxdWUgPSAoZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUgfHwgZGly
ZWN0aW9uID09IElEQkN1cnNvcjo6UFJFVl9OT19EVVBMSUNBVEUpOwogCiAgICAgaWYgKCFsb3dl
ckJvdW5kKSB7Ci0gICAgICAgIHN0YXJ0S2V5ID0gT2JqZWN0U3RvcmVEYXRhS2V5OjplbmNvZGUo
ZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgbWluSURCS2V5KCkpOwotICAgICAgICBsb3dlck9w
ZW4gPSB0cnVlOyAvLyBOb3QgaW5jbHVkZWQuCisgICAgICAgIGN1cnNvck9wdGlvbnMubG93S2V5
ID0gT2JqZWN0U3RvcmVEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwg
bWluSURCS2V5KCkpOworICAgICAgICBjdXJzb3JPcHRpb25zLmxvd09wZW4gPSB0cnVlOyAvLyBO
b3QgaW5jbHVkZWQuCiAgICAgfSBlbHNlIHsKLSAgICAgICAgc3RhcnRLZXkgPSBPYmplY3RTdG9y
ZURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCAqcmFuZ2UtPmxvd2Vy
KCkpOwotICAgICAgICBsb3dlck9wZW4gPSByYW5nZS0+bG93ZXJPcGVuKCk7CisgICAgICAgIGN1
cnNvck9wdGlvbnMubG93S2V5ID0gT2JqZWN0U3RvcmVEYXRhS2V5OjplbmNvZGUoZGF0YWJhc2VJ
ZCwgb2JqZWN0U3RvcmVJZCwgKnJhbmdlLT5sb3dlcigpKTsKKyAgICAgICAgY3Vyc29yT3B0aW9u
cy5sb3dPcGVuID0gcmFuZ2UtPmxvd2VyT3BlbigpOwogICAgIH0KIAogICAgIGlmICghdXBwZXJC
b3VuZCkgewotICAgICAgICBzdG9wS2V5ID0gT2JqZWN0U3RvcmVEYXRhS2V5OjplbmNvZGUoZGF0
YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgbWF4SURCS2V5KCkpOwotICAgICAgICB1cHBlck9wZW4g
PSB0cnVlOyAvLyBOb3QgaW5jbHVkZWQuCisgICAgICAgIGN1cnNvck9wdGlvbnMuaGlnaEtleSA9
IE9iamVjdFN0b3JlRGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIG1h
eElEQktleSgpKTsKKyAgICAgICAgY3Vyc29yT3B0aW9ucy5oaWdoT3BlbiA9IHRydWU7IC8vIE5v
dCBpbmNsdWRlZC4KIAotICAgICAgICBpZiAoIWZvcndhcmQpIHsgLy8gV2UgbmVlZCBhIGtleSB0
aGF0IGV4aXN0cy4KLSAgICAgICAgICAgIGlmICghZmluZEdyZWF0ZXN0S2V5TGVzc1RoYW4obV9j
dXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIHN0b3BLZXksIHN0b3BLZXkpKQorICAgICAgICBpZiAo
IWN1cnNvck9wdGlvbnMuZm9yd2FyZCkgeyAvLyBXZSBuZWVkIGEga2V5IHRoYXQgZXhpc3RzLgor
ICAgICAgICAgICAgaWYgKCFmaW5kR3JlYXRlc3RLZXlMZXNzVGhhbihtX2N1cnJlbnRUcmFuc2Fj
dGlvbi5nZXQoKSwgY3Vyc29yT3B0aW9ucy5oaWdoS2V5LCBjdXJzb3JPcHRpb25zLmhpZ2hLZXkp
KQogICAgICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgdXBwZXJPcGVuID0gZmFs
c2U7CisgICAgICAgICAgICBjdXJzb3JPcHRpb25zLmhpZ2hPcGVuID0gZmFsc2U7CiAgICAgICAg
IH0KICAgICB9IGVsc2UgewotICAgICAgICBzdG9wS2V5ID0gT2JqZWN0U3RvcmVEYXRhS2V5Ojpl
bmNvZGUoZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgKnJhbmdlLT51cHBlcigpKTsKLSAgICAg
ICAgdXBwZXJPcGVuID0gcmFuZ2UtPnVwcGVyT3BlbigpOworICAgICAgICBjdXJzb3JPcHRpb25z
LmhpZ2hLZXkgPSBPYmplY3RTdG9yZURhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RT
dG9yZUlkLCAqcmFuZ2UtPnVwcGVyKCkpOworICAgICAgICBjdXJzb3JPcHRpb25zLmhpZ2hPcGVu
ID0gcmFuZ2UtPnVwcGVyT3BlbigpOwogICAgIH0KIAotICAgIFJlZlB0cjxPYmplY3RTdG9yZUN1
cnNvckltcGw+IGN1cnNvciA9IE9iamVjdFN0b3JlQ3Vyc29ySW1wbDo6Y3JlYXRlKG1fY3VycmVu
dFRyYW5zYWN0aW9uLmdldCgpLCBzdGFydEtleSwgbG93ZXJPcGVuLCBzdG9wS2V5LCB1cHBlck9w
ZW4sIGZvcndhcmQsIHVuaXF1ZSk7CisgICAgUmVmUHRyPE9iamVjdFN0b3JlQ3Vyc29ySW1wbD4g
Y3Vyc29yID0gT2JqZWN0U3RvcmVDdXJzb3JJbXBsOjpjcmVhdGUobV9jdXJyZW50VHJhbnNhY3Rp
b24uZ2V0KCksIGN1cnNvck9wdGlvbnMpOwogICAgIGlmICghY3Vyc29yLT5maXJzdFNlZWsoKSkK
ICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTExOTgsMzkgKzExOTcsMzcgQEAgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmU6OkN1cnNvcj4gSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6b3Blbk9iamVj
dFN0b3JlQ3Vyc28KIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkxldmVs
REJCYWNraW5nU3RvcmU6Om9wZW5JbmRleEtleUN1cnNvcihpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSog
cmFuZ2UsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQobV9j
dXJyZW50VHJhbnNhY3Rpb24pOworICAgIEN1cnNvck9wdGlvbnMgY3Vyc29yT3B0aW9uczsKICAg
ICBib29sIGxvd2VyQm91bmQgPSByYW5nZSAmJiByYW5nZS0+bG93ZXIoKTsKICAgICBib29sIHVw
cGVyQm91bmQgPSByYW5nZSAmJiByYW5nZS0+dXBwZXIoKTsKLSAgICBib29sIGZvcndhcmQgPSAo
ZGlyZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUgfHwgZGlyZWN0aW9uID09
IElEQkN1cnNvcjo6TkVYVCk7Ci0gICAgYm9vbCB1bmlxdWUgPSAoZGlyZWN0aW9uID09IElEQkN1
cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUgfHwgZGlyZWN0aW9uID09IElEQkN1cnNvcjo6UFJFVl9O
T19EVVBMSUNBVEUpOwotCi0gICAgYm9vbCBsb3dlck9wZW4sIHVwcGVyT3BlbjsKLSAgICBWZWN0
b3I8Y2hhcj4gc3RhcnRLZXksIHN0b3BLZXk7CisgICAgY3Vyc29yT3B0aW9ucy5mb3J3YXJkID0g
KGRpcmVjdGlvbiA9PSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFIHx8IGRpcmVjdGlvbiA9
PSBJREJDdXJzb3I6Ok5FWFQpOworICAgIGN1cnNvck9wdGlvbnMudW5pcXVlID0gKGRpcmVjdGlv
biA9PSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFIHx8IGRpcmVjdGlvbiA9PSBJREJDdXJz
b3I6OlBSRVZfTk9fRFVQTElDQVRFKTsKIAogICAgIGlmICghbG93ZXJCb3VuZCkgewotICAgICAg
ICBzdGFydEtleSA9IEluZGV4RGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3Jl
SWQsIGluZGV4SWQsIG1pbklEQktleSgpLCAwKTsKLSAgICAgICAgbG93ZXJPcGVuID0gZmFsc2U7
IC8vIEluY2x1ZGVkLgorICAgICAgICBjdXJzb3JPcHRpb25zLmxvd0tleSA9IEluZGV4RGF0YUtl
eTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIG1pbklEQktleSgp
LCAwKTsKKyAgICAgICAgY3Vyc29yT3B0aW9ucy5sb3dPcGVuID0gZmFsc2U7IC8vIEluY2x1ZGVk
LgogICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXJ0S2V5ID0gSW5kZXhEYXRhS2V5OjplbmNvZGUo
ZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwgKnJhbmdlLT5sb3dlcigpLCAwKTsK
LSAgICAgICAgbG93ZXJPcGVuID0gcmFuZ2UtPmxvd2VyT3BlbigpOworICAgICAgICBjdXJzb3JP
cHRpb25zLmxvd0tleSA9IEluZGV4RGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0
b3JlSWQsIGluZGV4SWQsICpyYW5nZS0+bG93ZXIoKSwgMCk7CisgICAgICAgIGN1cnNvck9wdGlv
bnMubG93T3BlbiA9IHJhbmdlLT5sb3dlck9wZW4oKTsKICAgICB9CiAKICAgICBpZiAoIXVwcGVy
Qm91bmQpIHsKLSAgICAgICAgc3RvcEtleSA9IEluZGV4RGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNl
SWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIG1heElEQktleSgpLCAwKTsKLSAgICAgICAgdXBw
ZXJPcGVuID0gZmFsc2U7IC8vIEluY2x1ZGVkLgorICAgICAgICBjdXJzb3JPcHRpb25zLmhpZ2hL
ZXkgPSBJbmRleERhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRl
eElkLCBtYXhJREJLZXkoKSwgMCk7CisgICAgICAgIGN1cnNvck9wdGlvbnMuaGlnaE9wZW4gPSBm
YWxzZTsgLy8gSW5jbHVkZWQuCiAKLSAgICAgICAgaWYgKCFmb3J3YXJkKSB7IC8vIFdlIG5lZWQg
YSBrZXkgdGhhdCBleGlzdHMuCi0gICAgICAgICAgICBpZiAoIWZpbmRHcmVhdGVzdEtleUxlc3NU
aGFuKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBzdG9wS2V5LCBzdG9wS2V5KSkKKyAgICAg
ICAgaWYgKCFjdXJzb3JPcHRpb25zLmZvcndhcmQpIHsgLy8gV2UgbmVlZCBhIGtleSB0aGF0IGV4
aXN0cy4KKyAgICAgICAgICAgIGlmICghZmluZEdyZWF0ZXN0S2V5TGVzc1RoYW4obV9jdXJyZW50
VHJhbnNhY3Rpb24uZ2V0KCksIGN1cnNvck9wdGlvbnMuaGlnaEtleSwgY3Vyc29yT3B0aW9ucy5o
aWdoS2V5KSkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIHVwcGVyT3Bl
biA9IGZhbHNlOworICAgICAgICAgICAgY3Vyc29yT3B0aW9ucy5oaWdoT3BlbiA9IGZhbHNlOwog
ICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgc3RvcEtleSA9IEluZGV4RGF0YUtleTo6
ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsICpyYW5nZS0+dXBwZXIo
KSwgMCk7Ci0gICAgICAgIGlmICghZmluZExhc3RJbmRleEtleUVxdWFsVG8obV9jdXJyZW50VHJh
bnNhY3Rpb24uZ2V0KCksIHN0b3BLZXksIHN0b3BLZXkpKSAvLyBTZWVrIHRvIHRoZSAqbGFzdCog
a2V5IGluIHRoZSBzZXQgb2Ygbm9uLXVuaXF1ZSBrZXlzLgorICAgICAgICBjdXJzb3JPcHRpb25z
LmhpZ2hLZXkgPSBJbmRleERhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlk
LCBpbmRleElkLCAqcmFuZ2UtPnVwcGVyKCksIDApOworICAgICAgICBpZiAoIWZpbmRMYXN0SW5k
ZXhLZXlFcXVhbFRvKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBjdXJzb3JPcHRpb25zLmhp
Z2hLZXksIGN1cnNvck9wdGlvbnMuaGlnaEtleSkpIC8vIFNlZWsgdG8gdGhlICpsYXN0KiBrZXkg
aW4gdGhlIHNldCBvZiBub24tdW5pcXVlIGtleXMuCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAg
ICAgICAgdXBwZXJPcGVuID0gcmFuZ2UtPnVwcGVyT3BlbigpOworICAgICAgICBjdXJzb3JPcHRp
b25zLmhpZ2hPcGVuID0gcmFuZ2UtPnVwcGVyT3BlbigpOwogICAgIH0KIAotICAgIFJlZlB0cjxJ
bmRleEtleUN1cnNvckltcGw+IGN1cnNvciA9IEluZGV4S2V5Q3Vyc29ySW1wbDo6Y3JlYXRlKG1f
Y3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBzdGFydEtleSwgbG93ZXJPcGVuLCBzdG9wS2V5LCB1
cHBlck9wZW4sIGZvcndhcmQsIHVuaXF1ZSk7CisgICAgUmVmUHRyPEluZGV4S2V5Q3Vyc29ySW1w
bD4gY3Vyc29yID0gSW5kZXhLZXlDdXJzb3JJbXBsOjpjcmVhdGUobV9jdXJyZW50VHJhbnNhY3Rp
b24uZ2V0KCksIGN1cnNvck9wdGlvbnMpOwogICAgIGlmICghY3Vyc29yLT5maXJzdFNlZWsoKSkK
ICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEyNDAsMzkgKzEyMzcsMzcgQEAgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmU6OkN1cnNvcj4gSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6b3BlbkluZGV4
S2V5Q3Vyc29yKGkKIFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlOjpDdXJzb3I+IElEQkxldmVs
REJCYWNraW5nU3RvcmU6Om9wZW5JbmRleEN1cnNvcihpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXlSYW5nZSogcmFu
Z2UsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKICAgICBBU1NFUlQobV9jdXJy
ZW50VHJhbnNhY3Rpb24pOworICAgIEN1cnNvck9wdGlvbnMgY3Vyc29yT3B0aW9uczsKICAgICBi
b29sIGxvd2VyQm91bmQgPSByYW5nZSAmJiByYW5nZS0+bG93ZXIoKTsKICAgICBib29sIHVwcGVy
Qm91bmQgPSByYW5nZSAmJiByYW5nZS0+dXBwZXIoKTsKLSAgICBib29sIGZvcndhcmQgPSAoZGly
ZWN0aW9uID09IElEQkN1cnNvcjo6TkVYVF9OT19EVVBMSUNBVEUgfHwgZGlyZWN0aW9uID09IElE
QkN1cnNvcjo6TkVYVCk7Ci0gICAgYm9vbCB1bmlxdWUgPSAoZGlyZWN0aW9uID09IElEQkN1cnNv
cjo6TkVYVF9OT19EVVBMSUNBVEUgfHwgZGlyZWN0aW9uID09IElEQkN1cnNvcjo6UFJFVl9OT19E
VVBMSUNBVEUpOwotCi0gICAgYm9vbCBsb3dlck9wZW4sIHVwcGVyT3BlbjsKLSAgICBWZWN0b3I8
Y2hhcj4gc3RhcnRLZXksIHN0b3BLZXk7CisgICAgY3Vyc29yT3B0aW9ucy5mb3J3YXJkID0gKGRp
cmVjdGlvbiA9PSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFIHx8IGRpcmVjdGlvbiA9PSBJ
REJDdXJzb3I6Ok5FWFQpOworICAgIGN1cnNvck9wdGlvbnMudW5pcXVlID0gKGRpcmVjdGlvbiA9
PSBJREJDdXJzb3I6Ok5FWFRfTk9fRFVQTElDQVRFIHx8IGRpcmVjdGlvbiA9PSBJREJDdXJzb3I6
OlBSRVZfTk9fRFVQTElDQVRFKTsKIAogICAgIGlmICghbG93ZXJCb3VuZCkgewotICAgICAgICBz
dGFydEtleSA9IEluZGV4RGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQs
IGluZGV4SWQsIG1pbklEQktleSgpLCAwKTsKLSAgICAgICAgbG93ZXJPcGVuID0gZmFsc2U7IC8v
IEluY2x1ZGVkLgorICAgICAgICBjdXJzb3JPcHRpb25zLmxvd0tleSA9IEluZGV4RGF0YUtleTo6
ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIG1pbklEQktleSgpLCAw
KTsKKyAgICAgICAgY3Vyc29yT3B0aW9ucy5sb3dPcGVuID0gZmFsc2U7IC8vIEluY2x1ZGVkLgog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0YXJ0S2V5ID0gSW5kZXhEYXRhS2V5OjplbmNvZGUoZGF0
YWJhc2VJZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwgKnJhbmdlLT5sb3dlcigpLCAwKTsKLSAg
ICAgICAgbG93ZXJPcGVuID0gcmFuZ2UtPmxvd2VyT3BlbigpOworICAgICAgICBjdXJzb3JPcHRp
b25zLmxvd0tleSA9IEluZGV4RGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3Jl
SWQsIGluZGV4SWQsICpyYW5nZS0+bG93ZXIoKSwgMCk7CisgICAgICAgIGN1cnNvck9wdGlvbnMu
bG93T3BlbiA9IHJhbmdlLT5sb3dlck9wZW4oKTsKICAgICB9CiAKICAgICBpZiAoIXVwcGVyQm91
bmQpIHsKLSAgICAgICAgc3RvcEtleSA9IEluZGV4RGF0YUtleTo6ZW5jb2RlKGRhdGFiYXNlSWQs
IG9iamVjdFN0b3JlSWQsIGluZGV4SWQsIG1heElEQktleSgpLCAwKTsKLSAgICAgICAgdXBwZXJP
cGVuID0gZmFsc2U7IC8vIEluY2x1ZGVkLgorICAgICAgICBjdXJzb3JPcHRpb25zLmhpZ2hLZXkg
PSBJbmRleERhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBpbmRleElk
LCBtYXhJREJLZXkoKSwgMCk7CisgICAgICAgIGN1cnNvck9wdGlvbnMuaGlnaE9wZW4gPSBmYWxz
ZTsgLy8gSW5jbHVkZWQuCiAKLSAgICAgICAgaWYgKCFmb3J3YXJkKSB7IC8vIFdlIG5lZWQgYSBr
ZXkgdGhhdCBleGlzdHMuCi0gICAgICAgICAgICBpZiAoIWZpbmRHcmVhdGVzdEtleUxlc3NUaGFu
KG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBzdG9wS2V5LCBzdG9wS2V5KSkKKyAgICAgICAg
aWYgKCFjdXJzb3JPcHRpb25zLmZvcndhcmQpIHsgLy8gV2UgbmVlZCBhIGtleSB0aGF0IGV4aXN0
cy4KKyAgICAgICAgICAgIGlmICghZmluZEdyZWF0ZXN0S2V5TGVzc1RoYW4obV9jdXJyZW50VHJh
bnNhY3Rpb24uZ2V0KCksIGN1cnNvck9wdGlvbnMuaGlnaEtleSwgY3Vyc29yT3B0aW9ucy5oaWdo
S2V5KSkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgICAgIHVwcGVyT3BlbiA9
IGZhbHNlOworICAgICAgICAgICAgY3Vyc29yT3B0aW9ucy5oaWdoT3BlbiA9IGZhbHNlOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgc3RvcEtleSA9IEluZGV4RGF0YUtleTo6ZW5j
b2RlKGRhdGFiYXNlSWQsIG9iamVjdFN0b3JlSWQsIGluZGV4SWQsICpyYW5nZS0+dXBwZXIoKSwg
MCk7Ci0gICAgICAgIGlmICghZmluZExhc3RJbmRleEtleUVxdWFsVG8obV9jdXJyZW50VHJhbnNh
Y3Rpb24uZ2V0KCksIHN0b3BLZXksIHN0b3BLZXkpKSAvLyBTZWVrIHRvIHRoZSAqbGFzdCoga2V5
IGluIHRoZSBzZXQgb2Ygbm9uLXVuaXF1ZSBrZXlzLgorICAgICAgICBjdXJzb3JPcHRpb25zLmhp
Z2hLZXkgPSBJbmRleERhdGFLZXk6OmVuY29kZShkYXRhYmFzZUlkLCBvYmplY3RTdG9yZUlkLCBp
bmRleElkLCAqcmFuZ2UtPnVwcGVyKCksIDApOworICAgICAgICBpZiAoIWZpbmRMYXN0SW5kZXhL
ZXlFcXVhbFRvKG1fY3VycmVudFRyYW5zYWN0aW9uLmdldCgpLCBjdXJzb3JPcHRpb25zLmhpZ2hL
ZXksIGN1cnNvck9wdGlvbnMuaGlnaEtleSkpIC8vIFNlZWsgdG8gdGhlICpsYXN0KiBrZXkgaW4g
dGhlIHNldCBvZiBub24tdW5pcXVlIGtleXMuCiAgICAgICAgICAgICByZXR1cm4gMDsKLSAgICAg
ICAgdXBwZXJPcGVuID0gcmFuZ2UtPnVwcGVyT3BlbigpOworICAgICAgICBjdXJzb3JPcHRpb25z
LmhpZ2hPcGVuID0gcmFuZ2UtPnVwcGVyT3BlbigpOwogICAgIH0KIAotICAgIFJlZlB0cjxJbmRl
eEN1cnNvckltcGw+IGN1cnNvciA9IEluZGV4Q3Vyc29ySW1wbDo6Y3JlYXRlKG1fY3VycmVudFRy
YW5zYWN0aW9uLmdldCgpLCBzdGFydEtleSwgbG93ZXJPcGVuLCBzdG9wS2V5LCB1cHBlck9wZW4s
IGZvcndhcmQsIHVuaXF1ZSk7CisgICAgUmVmUHRyPEluZGV4Q3Vyc29ySW1wbD4gY3Vyc29yID0g
SW5kZXhDdXJzb3JJbXBsOjpjcmVhdGUobV9jdXJyZW50VHJhbnNhY3Rpb24uZ2V0KCksIGN1cnNv
ck9wdGlvbnMpOwogICAgIGlmICghY3Vyc29yLT5maXJzdFNlZWsoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAK
</data>
<flag name="review"
          id="89501"
          type_id="1"
          status="+"
          setter="tonyg"
    />
          </attachment>
      

    </bug>

</bugzilla>