<?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>205413</bug_id>
          
          <creation_ts>2019-12-18 14:19:04 -0800</creation_ts>
          <short_desc>IndexedDB: delete index records with ID and IndexKey instead of value in SQLiteIDBackingStore</short_desc>
          <delta_ts>2020-01-03 23:29:21 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1599991</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-12-18 14:19:04 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600032</commentid>
    <comment_count>1</comment_count>
      <attachid>386020</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-12-18 15:27:59 -0800</bug_when>
    <thetext>Created attachment 386020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600470</commentid>
    <comment_count>2</comment_count>
      <attachid>386020</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-12-19 13:23:37 -0800</bug_when>
    <thetext>Comment on attachment 386020
Patch

r=me

It sounds like we can do even better if we delete by key -- but this patch is an improvement too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600528</commentid>
    <comment_count>3</comment_count>
      <attachid>386153</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-12-19 15:19:17 -0800</bug_when>
    <thetext>Created attachment 386153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600919</commentid>
    <comment_count>4</comment_count>
      <attachid>386153</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-12-20 14:08:02 -0800</bug_when>
    <thetext>Comment on attachment 386153
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=386153&amp;action=review

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1546
&gt; +        sql-&gt;getColumnBlobAsVector(1, valueBuffer);

Could you make getColumnBlobAsVector return a Vector&lt;uint8_t&gt; and make a getColumnBlobAsCharVector that returns a Vector&lt;char&gt;?

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1601
&gt; +                indexKeys.append(indexKey.asOneKey());

Could you write this so that if there&apos;s one key, we don&apos;t need to allocate a Vector?  That would probably just move the isValid() check into deleteOneIndexRecord</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600935</commentid>
    <comment_count>5</comment_count>
      <attachid>386153</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-12-20 14:30:50 -0800</bug_when>
    <thetext>Comment on attachment 386153
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=386153&amp;action=review

&gt;&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1546
&gt;&gt; +        sql-&gt;getColumnBlobAsVector(1, valueBuffer);
&gt; 
&gt; Could you make getColumnBlobAsVector return a Vector&lt;uint8_t&gt; and make a getColumnBlobAsCharVector that returns a Vector&lt;char&gt;?

Yes. I could make that change but prefer doing it in a different bug as it&apos;s not relevant to what the patch is for.

&gt;&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1601
&gt;&gt; +                indexKeys.append(indexKey.asOneKey());
&gt; 
&gt; Could you write this so that if there&apos;s one key, we don&apos;t need to allocate a Vector?  That would probably just move the isValid() check into deleteOneIndexRecord

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600949</commentid>
    <comment_count>6</comment_count>
      <attachid>386261</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2019-12-20 14:47:43 -0800</bug_when>
    <thetext>Created attachment 386261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602748</commentid>
    <comment_count>7</comment_count>
      <attachid>386261</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-03 23:28:41 -0800</bug_when>
    <thetext>Comment on attachment 386261
Patch

Clearing flags on attachment: 386261

Committed r254030: &lt;https://trac.webkit.org/changeset/254030&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602749</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-03 23:28:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602750</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-03 23:29:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/58314409&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386020</attachid>
            <date>2019-12-18 15:27:59 -0800</date>
            <delta_ts>2019-12-19 15:19:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205413-20191218152758.patch</filename>
            <type>text/plain</type>
            <size>3465</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDc1MTBjNDU0NjUwOGM3
YWMzODExNWVlYzEwMWZlMDAxOWJiNmM4ZC4uNTk3NGY4YmJmNjIyNWY1ZDQ2YWI0N2YwM2M5NDVh
NTRjYzAwMjg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTE4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQjogZGVsZXRl
IGluZGV4IHJlY29yZHMgd2l0aCByZWNvcmQgSUQgaW5zdGVhZCBvZiB2YWx1ZSBpbiBTUUxpdGVJ
REJhY2tpbmdTdG9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA1NDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBjaGFuZ2UgbWFrZXMgUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvYmFzaWMv
aW5kZXgtY3Vyc29yLWRlbGV0ZS5odG1sIGFib3V0IDI1JSBmYXN0ZXIuCisKKyAgICAgICAgTm8g
YmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1cGRhdGVBbGxJbmRleGVzRm9yQWRkUmVj
b3JkKToKKwogMjAxOS0xMi0xNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBtYWNDYXRhbHlzdDogQ3Vyc29yIHNob3VsZCB1cGRhdGUgb24gbW91c2Ug
bW92ZW1lbnQgYW5kIHN0eWxlIGNoYW5nZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNw
cAppbmRleCAzMzNjOGYyNmVjODMwNzgxMDY5ZDkyM2I1MTA2YThhMmI2NTliZmExLi5iOGM4Mjdk
Mzg1NzVmZjI3NzBkZWI5NTgzMzc0ZGIwZjQwNTcyM2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFj
a2luZ1N0b3JlLmNwcApAQCAtMTU3OCwxMSArMTU3OCwxMSBAQCBJREJFcnJvciBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmRlbGV0ZVJlY29yZChTUUxpdGVJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rp
b24sCiAKICAgICAvLyBEZWxldGUgcmVjb3JkIGZyb20gaW5kZXhlcyBzdG9yZQogICAgIHsKLSAg
ICAgICAgYXV0byogc3FsID0gY2FjaGVkU3RhdGVtZW50KFNRTDo6RGVsZXRlT2JqZWN0U3RvcmVJ
bmRleFJlY29yZCwgIkRFTEVURSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlE
ID0gPyBBTkQgdmFsdWUgPSBDQVNUKD8gQVMgVEVYVCk7Il9zKTsKKyAgICAgICAgYXV0byogc3Fs
ID0gY2FjaGVkU3RhdGVtZW50KFNRTDo6RGVsZXRlT2JqZWN0U3RvcmVJbmRleFJlY29yZCwgIkRF
TEVURSBGUk9NIEluZGV4UmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQgb2JqZWN0
U3RvcmVSZWNvcmRJRCA9ID87Il9zKTsKIAogICAgICAgICBpZiAoIXNxbAogICAgICAgICAgICAg
fHwgc3FsLT5iaW5kSW50NjQoMSwgb2JqZWN0U3RvcmVJRCkgIT0gU1FMSVRFX09LCi0gICAgICAg
ICAgICB8fCBzcWwtPmJpbmRCbG9iKDIsIGtleUJ1ZmZlci0+ZGF0YSgpLCBrZXlCdWZmZXItPnNp
emUoKSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgyLCByZWNv
cmRJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwtPnN0ZXAoKSAhPSBTUUxJVEVf
RE9ORSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZGVsZXRlIHJlY29yZCBm
cm9tIGluZGV4ZXMgZm9yIG9iamVjdCBzdG9yZSAlIiBQUklpNjQgIiAoJWkpIC0gJXMiLCBvYmpl
Y3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9y
TXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCAiRmFp
bGVkIHRvIGRlbGV0ZSBpbmRleCBlbnRyaWVzIGZvciBvYmplY3Qgc3RvcmUgcmVjb3JkIl9zIH07
CkBAIC0xNjk4LDExICsxNjk4LDExIEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
dXBkYXRlQWxsSW5kZXhlc0ZvckFkZFJlY29yZChjb25zdCBJREJPYmplY3RTdG9yCiAgICAgaWYg
KCFlcnJvci5pc051bGwoKSAmJiBhbnlSZWNvcmRzU3VjY2VlZGVkKSB7CiAgICAgICAgIFJlZlB0
cjxTaGFyZWRCdWZmZXI+IGtleUJ1ZmZlciA9IHNlcmlhbGl6ZUlEQktleURhdGEoa2V5KTsKIAot
ICAgICAgICBhdXRvKiBzcWwgPSBjYWNoZWRTdGF0ZW1lbnQoU1FMOjpEZWxldGVPYmplY3RTdG9y
ZUluZGV4UmVjb3JkLCAiREVMRVRFIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIG9iamVjdFN0b3Jl
SUQgPSA/IEFORCB2YWx1ZSA9IENBU1QoPyBBUyBURVhUKTsiX3MpOworICAgICAgICBhdXRvKiBz
cWwgPSBjYWNoZWRTdGF0ZW1lbnQoU1FMOjpEZWxldGVPYmplY3RTdG9yZUluZGV4UmVjb3JkLCAi
REVMRVRFIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/IEFORCBvYmpl
Y3RTdG9yZVJlY29yZElEID0gPzsiX3MpOwogCiAgICAgICAgIGlmICghc3FsCiAgICAgICAgICAg
ICB8fCBzcWwtPmJpbmRJbnQ2NCgxLCBpbmZvLmlkZW50aWZpZXIoKSkgIT0gU1FMSVRFX09LCi0g
ICAgICAgICAgICB8fCBzcWwtPmJpbmRCbG9iKDIsIGtleUJ1ZmZlci0+ZGF0YSgpLCBrZXlCdWZm
ZXItPnNpemUoKSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgy
LCByZWNvcmRJRCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwtPnN0ZXAoKSAhPSBT
UUxJVEVfRE9ORSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJBZGRpbmcgb25lIEluZGV4IHJl
Y29yZCBmYWlsZWQsIGJ1dCBmYWlsZWQgdG8gcmVtb3ZlIGFsbCBvdGhlcnMgdGhhdCBwcmV2aW91
c2x5IHN1Y2NlZWRlZCIpOwogICAgICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVy
cm9yLCAiQWRkaW5nIG9uZSBJbmRleCByZWNvcmQgZmFpbGVkLCBidXQgZmFpbGVkIHRvIHJlbW92
ZSBhbGwgb3RoZXJzIHRoYXQgcHJldmlvdXNseSBzdWNjZWVkZWQiX3MgfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386153</attachid>
            <date>2019-12-19 15:19:17 -0800</date>
            <delta_ts>2019-12-20 14:47:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205413-20191219151917.patch</filename>
            <type>text/plain</type>
            <size>8237</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEwZWU0NjVjMzZjMGE0
NzQ3NGFjZWEwNzA0NjlhMDBiZTdhNDgwYS4uODRlZGY5NDc0ZDBiMzYyOGVkZjNiMzYwZGYxMzdh
MjA5YmU1MGQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEyLTE5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQjogZGVsZXRl
IGluZGV4IHJlY29yZHMgd2l0aCBJRCBhbmQgSW5kZXhLZXkgaW5zdGVhZCBvZiB2YWx1ZSBpbiBT
UUxpdGVJREJhY2tpbmdTdG9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2luY2Ugd2UgaGF2ZSBjcmVhdGVkIGFuIGluZGV4IGluIHRoZSBJbmRleFJl
Y29yZHMgdGFibGUsIHdlIHNob3VsZCBkbyB0aGUgZGVsZXRpb24gYnkgaW5kZXgsIHdoaWNoIGdp
dmVzIHVzIAorICAgICAgICBiZXR0ZXIgcGVyZm9ybWFuY2UuCisKKyAgICAgICAgVGhpcyBjaGFu
Z2UgbWFrZXMgUGVyZm9ybWFuY2VUZXN0cy9JbmRleGVkREIvYmFzaWMvaW5kZXgtY3Vyc29yLWRl
bGV0ZS5odG1sIGFib3V0IDEwMCUgZmFzdGVyLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5n
ZS4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5n
U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmRlbGV0ZVJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT25lSW5kZXhSZWNvcmQpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmg6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUluZm86Om9iamVjdFN0b3JlTWFwIGNvbnN0KToKKwogMjAxOS0xMi0x
OSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3NraXAt
d2FpdGluZy1pbnN0YWxsZWQuaHR0cHMuaHRtbCBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFj
a2luZ1N0b3JlLmNwcAppbmRleCAzMzNjOGYyNmVjODMwNzgxMDY5ZDkyM2I1MTA2YThhMmI2NTli
ZmExLi4yZjllNWFkODFmOTdlYjRmYWY0NWM1NGMyMWIyOTVmMzAzZjU2MDliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApAQCAtMTUxNiwxMCArMTUxNiwxMSBAQCBJREJFcnJv
ciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZVJlY29yZChTUUxpdGVJREJUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24sCiAgICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwg
IlVuYWJsZSB0byBzZXJpYWxpemUgSURCS2V5RGF0YSB0byBiZSByZW1vdmVkIGZyb20gdGhlIGRh
dGFiYXNlIl9zIH07CiAgICAgfQogCi0gICAgLy8gR2V0IHRoZSByZWNvcmQgSUQKKyAgICAvLyBH
ZXQgdGhlIHJlY29yZCBJRCBhbmQgdmFsdWUuCiAgICAgaW50NjRfdCByZWNvcmRJRDsKKyAgICBU
aHJlYWRTYWZlRGF0YUJ1ZmZlciB2YWx1ZTsKICAgICB7Ci0gICAgICAgIGF1dG8qIHNxbCA9IGNh
Y2hlZFN0YXRlbWVudChTUUw6OkdldE9iamVjdFN0b3JlUmVjb3JkSUQsICJTRUxFQ1QgcmVjb3Jk
SUQgRlJPTSBSZWNvcmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/IEFORCBrZXkgPSBDQVNUKD8g
QVMgVEVYVCk7Il9zKTsKKyAgICAgICAgYXV0byogc3FsID0gY2FjaGVkU3RhdGVtZW50KFNRTDo6
R2V0T2JqZWN0U3RvcmVSZWNvcmQsICJTRUxFQ1QgcmVjb3JkSUQsIHZhbHVlIEZST00gUmVjb3Jk
cyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQga2V5ID0gQ0FTVCg/IEFTIFRFWFQpOyJfcyk7
CiAKICAgICAgICAgaWYgKCFzcWwKICAgICAgICAgICAgIHx8IHNxbC0+YmluZEludDY0KDEsIG9i
amVjdFN0b3JlSUQpICE9IFNRTElURV9PSwpAQCAtMTU0MCw2ICsxNTQxLDEwIEBAIElEQkVycm9y
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmVjb3JkKFNRTGl0ZUlEQlRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbiwKICAgICAgICAgfQogCiAgICAgICAgIHJlY29yZElEID0gc3FsLT5nZXRD
b2x1bW5JbnQ2NCgwKTsKKworICAgICAgICBWZWN0b3I8dWludDhfdD4gdmFsdWVCdWZmZXI7Cisg
ICAgICAgIHNxbC0+Z2V0Q29sdW1uQmxvYkFzVmVjdG9yKDEsIHZhbHVlQnVmZmVyKTsKKyAgICAg
ICAgdmFsdWUgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUodmFsdWVCdWZm
ZXIpKTsKICAgICB9CiAKICAgICBpZiAocmVjb3JkSUQgPCAxKSB7CkBAIC0xNTc3LDIxICsxNTgy
LDU5IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmVjb3JkKFNRTGl0
ZUlEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwKICAgICB9CiAKICAgICAvLyBEZWxldGUgcmVj
b3JkIGZyb20gaW5kZXhlcyBzdG9yZQotICAgIHsKLSAgICAgICAgYXV0byogc3FsID0gY2FjaGVk
U3RhdGVtZW50KFNRTDo6RGVsZXRlT2JqZWN0U3RvcmVJbmRleFJlY29yZCwgIkRFTEVURSBGUk9N
IEluZGV4UmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0gPyBBTkQgdmFsdWUgPSBDQVNUKD8g
QVMgVEVYVCk7Il9zKTsKKyAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKG1fc2VyaWFsaXphdGlvbkNv
bnRleHQtPnZtKCkpOworICAgIGF1dG8ganNWYWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVUb0pT
VmFsdWUobV9zZXJpYWxpemF0aW9uQ29udGV4dC0+ZXhlY1N0YXRlKCksIHZhbHVlKTsKKyAgICBp
ZiAoanNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQorICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyB9OwogCi0gICAgICAgIGlmICghc3FsCi0gICAgICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgx
LCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgICAgIHx8IHNxbC0+YmluZEJs
b2IoMiwga2V5QnVmZmVyLT5kYXRhKCksIGtleUJ1ZmZlci0+c2l6ZSgpKSAhPSBTUUxJVEVfT0sK
LSAgICAgICAgICAgIHx8IHNxbC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7Ci0gICAgICAgICAg
ICBMT0dfRVJST1IoIkNvdWxkIG5vdCBkZWxldGUgcmVjb3JkIGZyb20gaW5kZXhlcyBmb3Igb2Jq
ZWN0IHN0b3JlICUiIFBSSWk2NCAiICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRl
REItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsICJGYWlsZWQgdG8gZGVsZXRlIGluZGV4
IGVudHJpZXMgZm9yIG9iamVjdCBzdG9yZSByZWNvcmQiX3MgfTsKKyAgICBmb3IgKGF1dG8mIG9i
amVjdFN0b3JlSW5mbyA6IG1fZGF0YWJhc2VJbmZvLT5vYmplY3RTdG9yZU1hcCgpLnZhbHVlcygp
KSB7CisgICAgICAgIGZvciAoYXV0byYgaW5kZXhTdG9yZUluZm8gOiBvYmplY3RTdG9yZUluZm8u
aW5kZXhNYXAoKS52YWx1ZXMoKSkgeworICAgICAgICAgICAgSW5kZXhLZXkgaW5kZXhLZXk7Cisg
ICAgICAgICAgICBnZW5lcmF0ZUluZGV4S2V5Rm9yVmFsdWUobV9zZXJpYWxpemF0aW9uQ29udGV4
dC0+ZXhlY1N0YXRlKCksIGluZGV4U3RvcmVJbmZvLCBqc1ZhbHVlLCBpbmRleEtleSwgb2JqZWN0
U3RvcmVJbmZvLmtleVBhdGgoKSwga2V5RGF0YSk7CisgICAgICAgICAgICBpZiAoaW5kZXhLZXku
aXNOdWxsKCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIFZlY3Rv
cjxJREJLZXlEYXRhPiBpbmRleEtleXM7CisgICAgICAgICAgICBpZiAoaW5kZXhTdG9yZUluZm8u
bXVsdGlFbnRyeSgpKQorICAgICAgICAgICAgICAgIGluZGV4S2V5cyA9IGluZGV4S2V5Lm11bHRp
RW50cnkoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBpbmRleEtleXMuYXBw
ZW5kKGluZGV4S2V5LmFzT25lS2V5KCkpOworCisgICAgICAgICAgICBmb3IgKGF1dG8mIGluZGV4
S2V5IDogaW5kZXhLZXlzKSB7CisgICAgICAgICAgICAgICAgaWYgKCFpbmRleEtleS5pc1ZhbGlk
KCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgYXV0
byBlcnJvciA9IGRlbGV0ZU9uZUluZGV4UmVjb3JkKG9iamVjdFN0b3JlSUQsIHJlY29yZElELCBp
bmRleEtleSk7CisgICAgICAgICAgICAgICAgaWYgKCFlcnJvci5pc051bGwoKSkKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIGVycm9yOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAg
fQogCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKIH0KIAorSURCRXJyb3IgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpkZWxldGVPbmVJbmRleFJlY29yZChpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVSZWNvcmRJRCwgY29uc3QgSURCS2V5RGF0YSYgaW5kZXhLZXkpCit7
CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gaW5kZXhLZXlCdWZmZXIgPSBzZXJpYWxpemVJREJL
ZXlEYXRhKGluZGV4S2V5KTsKKyAgICBpZiAoIWluZGV4S2V5QnVmZmVyKSB7CisgICAgICAgIExP
R19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSByZWNvcmQgZnJvbSBvYmplY3Qgc3RvcmUgJSIgUFJJ
aTY0ICIgKENvdWxkIG5vdCBzZXJpYWxpemUgaW5kZXgga2V5KSIsIG9iamVjdFN0b3JlSUQpOwor
ICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBVbmtub3duRXJyb3IsICJGYWlsZWQgdG8gZGVsZXRl
IGluZGV4IGVudHJpZXMgZm9yIG9iamVjdCBzdG9yZSByZWNvcmQiX3MgfTsKKyAgICB9CisKKyAg
ICBhdXRvKiBzcWwgPSBjYWNoZWRTdGF0ZW1lbnQoU1FMOjpEZWxldGVPYmplY3RTdG9yZUluZGV4
UmVjb3JkLCAiREVMRVRFIEZST00gSW5kZXhSZWNvcmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/
IEFORCBvYmplY3RTdG9yZVJlY29yZElEID0gPyBBTkQga2V5ID0gQ0FTVCg/IEFTIFRFWFQpOyJf
cyk7CisgICAgaWYgKCFzcWwKKyAgICAgICAgfHwgc3FsLT5iaW5kSW50NjQoMSwgb2JqZWN0U3Rv
cmVJRCkgIT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNxbC0+YmluZEludDY0KDIsIG9iamVjdFN0
b3JlUmVjb3JkSUQpICE9IFNRTElURV9PSworICAgICAgICB8fCBzcWwtPmJpbmRCbG9iKDMsIGlu
ZGV4S2V5QnVmZmVyLT5kYXRhKCksIGluZGV4S2V5QnVmZmVyLT5zaXplKCkpICE9IFNRTElURV9P
SworICAgICAgICB8fCBzcWwtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgeworICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBkZWxldGUgcmVjb3JkIGZyb20gaW5kZXhlcyBmb3Igb2JqZWN0IHN0
b3JlICUiIFBSSWk2NCAiICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxh
c3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiBJ
REJFcnJvciB7IFVua25vd25FcnJvciwgIkZhaWxlZCB0byBkZWxldGUgaW5kZXggZW50cmllcyBm
b3Igb2JqZWN0IHN0b3JlIHJlY29yZCJfcyB9OworICAgIH0KKworICAgIHJldHVybiBJREJFcnJv
ciB7IH07Cit9CisKIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2Uo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UpCiB7CiAg
ICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UgLSBy
YW5nZSAlcywgb2JqZWN0IHN0b3JlICUiIFBSSXU2NCwga2V5UmFuZ2UubG9nZ2luZ1N0cmluZygp
LnV0ZjgoKS5kYXRhKCksIG9iamVjdFN0b3JlSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9y
ZS5oCmluZGV4IDZiZWNhNjFhYmQ2ZjdlYmU3YWI4MmFmYzhjMmUzNGEzZjExYmY4OGUuLjc1Zjdl
OGQ0MDViMjVhMjExMzBkY2YyYTA2ZTA3NTIyZDk2MzAzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFj
a2luZ1N0b3JlLmgKQEAgLTExNiw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxJREJEYXRhYmFzZUluZm8+IGV4dHJhY3RFeGlzdGluZ0RhdGFiYXNlSW5mbygpOwogCiAg
ICAgSURCRXJyb3IgZGVsZXRlUmVjb3JkKFNRTGl0ZUlEQlRyYW5zYWN0aW9uJiwgaW50NjRfdCBv
YmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlEYXRhJik7CisgICAgSURCRXJyb3IgZGVsZXRlT25l
SW5kZXhSZWNvcmQoaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IG9iamVjdFN0b3JlUmVj
b3JkSUQsIGNvbnN0IElEQktleURhdGEmKTsKICAgICBJREJFcnJvciB1bmNoZWNrZWRHZXRLZXlH
ZW5lcmF0b3JWYWx1ZShpbnQ2NF90IG9iamVjdFN0b3JlSUQsIHVpbnQ2NF90JiBvdXRWYWx1ZSk7
CiAgICAgSURCRXJyb3IgdW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBvYmpl
Y3RTdG9yZUlELCB1aW50NjRfdCB2YWx1ZSk7CiAKQEAgLTE1Niw3ICsxNTcsNyBAQCBwcml2YXRl
OgogICAgICAgICBLZXlFeGlzdHNJbk9iamVjdFN0b3JlLAogICAgICAgICBHZXRVbnVzZWRCbG9i
RmlsZW5hbWVzLAogICAgICAgICBEZWxldGVVbnVzZWRCbG9icywKLSAgICAgICAgR2V0T2JqZWN0
U3RvcmVSZWNvcmRJRCwKKyAgICAgICAgR2V0T2JqZWN0U3RvcmVSZWNvcmQsCiAgICAgICAgIERl
bGV0ZUJsb2JSZWNvcmQsCiAgICAgICAgIERlbGV0ZU9iamVjdFN0b3JlUmVjb3JkLAogICAgICAg
ICBEZWxldGVPYmplY3RTdG9yZUluZGV4UmVjb3JkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oCmluZGV4IDNi
MjA3MjFkMzFmZmJjZTMxMzRhYTg5M2Y2Nzg0MWFhZTE5YjI5YzUuLjgyMzViYjg4YzMzMmQ3N2Uz
YThlNDU1MmEzYmJmYTBhOTBiMGY1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCRGF0YWJhc2VJbmZvLmgKQEAgLTU4LDYgKzU4
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVuYW1lT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogCiAgICAgVmVjdG9yPFN0
cmluZz4gb2JqZWN0U3RvcmVOYW1lcygpIGNvbnN0OworICAgIGNvbnN0IEhhc2hNYXA8dWludDY0
X3QsIElEQk9iamVjdFN0b3JlSW5mbz4mIG9iamVjdFN0b3JlTWFwKCkgY29uc3QgeyByZXR1cm4g
bV9vYmplY3RTdG9yZU1hcDsgfQogCiAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBT
dHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7CiAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZSh1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386261</attachid>
            <date>2019-12-20 14:47:43 -0800</date>
            <delta_ts>2020-01-03 23:28:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205413-20191220144740.patch</filename>
            <type>text/plain</type>
            <size>8324</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc3MzY5YTMzOTNjMjll
OTJiYjAzYzZjN2IwNWQzNDIyOGNiNzBmZi4uYWU5ODM2MjY5NmRjYTIzYzlmOTVlMzM4YTFiNTU1
MWFjODgxZjc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE5LTEyLTIwICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEluZGV4ZWREQjogZGVsZXRl
IGluZGV4IHJlY29yZHMgd2l0aCBJRCBhbmQgSW5kZXhLZXkgaW5zdGVhZCBvZiB2YWx1ZSBpbiBT
UUxpdGVJREJhY2tpbmdTdG9yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1NDEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgU2luY2Ugd2UgaGF2ZSBjcmVhdGVkIGFuIGluZGV4IG9uIGtleSBpbiB0aGUg
SW5kZXhSZWNvcmRzIHRhYmxlLCB3ZSBzaG91bGQgZG8gdGhlIGRlbGV0aW9uIGJ5IGl0cyBrZXks
IGJlY2F1c2UgCisgICAgICAgIGxvb2tpbmcgdXAgYSByZWNvcmQgYnkgaW5kZXggY29sdW1uKHMp
IHNob3VsZCBiZSBmYXN0ZXIgdGhhbiBub24taW5kZXggY29sdW1uKHMpLgorCisgICAgICAgIFRo
aXMgY2hhbmdlIG1ha2VzIFBlcmZvcm1hbmNlVGVzdHMvSW5kZXhlZERCL2Jhc2ljL2luZGV4LWN1
cnNvci1kZWxldGUuaHRtbCBhYm91dCAxMDAlIGZhc3Rlci4KKworICAgICAgICBObyBiZWhhdmlv
ciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURC
QmFja2luZ1N0b3JlOjpkZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlbGV0ZU9uZUluZGV4UmVjb3JkKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJbmZvOjpvYmplY3RTdG9yZU1hcCBjb25zdCk6CisKIDIw
MTktMTItMTkgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxk
IEFOR0xFIGFzIGEgZHluYW1pYyBsaWJyYXJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUu
Y3BwCmluZGV4IDMzM2M4ZjI2ZWM4MzA3ODEwNjlkOTIzYjUxMDZhOGEyYjY1OWJmYTEuLmZjYzQ4
MWM1ZDVmMDM3YjU4NTIwNTMxODJhYjI3MWJkOGJkZmYyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJC
YWNraW5nU3RvcmUuY3BwCkBAIC0xNTE2LDEwICsxNTE2LDExIEBAIElEQkVycm9yIFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmVjb3JkKFNRTGl0ZUlEQlRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGlvbiwKICAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgVW5rbm93bkVycm9yLCAiVW5hYmxlIHRv
IHNlcmlhbGl6ZSBJREJLZXlEYXRhIHRvIGJlIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UiX3Mg
fTsKICAgICB9CiAKLSAgICAvLyBHZXQgdGhlIHJlY29yZCBJRAorICAgIC8vIEdldCB0aGUgcmVj
b3JkIElEIGFuZCB2YWx1ZS4KICAgICBpbnQ2NF90IHJlY29yZElEOworICAgIFRocmVhZFNhZmVE
YXRhQnVmZmVyIHZhbHVlOwogICAgIHsKLSAgICAgICAgYXV0byogc3FsID0gY2FjaGVkU3RhdGVt
ZW50KFNRTDo6R2V0T2JqZWN0U3RvcmVSZWNvcmRJRCwgIlNFTEVDVCByZWNvcmRJRCBGUk9NIFJl
Y29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA9IENBU1QoPyBBUyBURVhUKTsi
X3MpOworICAgICAgICBhdXRvKiBzcWwgPSBjYWNoZWRTdGF0ZW1lbnQoU1FMOjpHZXRPYmplY3RT
dG9yZVJlY29yZCwgIlNFTEVDVCByZWNvcmRJRCwgdmFsdWUgRlJPTSBSZWNvcmRzIFdIRVJFIG9i
amVjdFN0b3JlSUQgPSA/IEFORCBrZXkgPSBDQVNUKD8gQVMgVEVYVCk7Il9zKTsKIAogICAgICAg
ICBpZiAoIXNxbAogICAgICAgICAgICAgfHwgc3FsLT5iaW5kSW50NjQoMSwgb2JqZWN0U3RvcmVJ
RCkgIT0gU1FMSVRFX09LCkBAIC0xNTQwLDYgKzE1NDEsMTAgQEAgSURCRXJyb3IgU1FMaXRlSURC
QmFja2luZ1N0b3JlOjpkZWxldGVSZWNvcmQoU1FMaXRlSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aW9uLAogICAgICAgICB9CiAKICAgICAgICAgcmVjb3JkSUQgPSBzcWwtPmdldENvbHVtbkludDY0
KDApOworCisgICAgICAgIFZlY3Rvcjx1aW50OF90PiB2YWx1ZUJ1ZmZlcjsKKyAgICAgICAgc3Fs
LT5nZXRDb2x1bW5CbG9iQXNWZWN0b3IoMSwgdmFsdWVCdWZmZXIpOworICAgICAgICB2YWx1ZSA9
IFRocmVhZFNhZmVEYXRhQnVmZmVyOjpjcmVhdGUoV1RGTW92ZSh2YWx1ZUJ1ZmZlcikpOwogICAg
IH0KIAogICAgIGlmIChyZWNvcmRJRCA8IDEpIHsKQEAgLTE1NzcsMjEgKzE1ODIsNjEgQEAgSURC
RXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVSZWNvcmQoU1FMaXRlSURCVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLAogICAgIH0KIAogICAgIC8vIERlbGV0ZSByZWNvcmQgZnJvbSBp
bmRleGVzIHN0b3JlCi0gICAgewotICAgICAgICBhdXRvKiBzcWwgPSBjYWNoZWRTdGF0ZW1lbnQo
U1FMOjpEZWxldGVPYmplY3RTdG9yZUluZGV4UmVjb3JkLCAiREVMRVRFIEZST00gSW5kZXhSZWNv
cmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/IEFORCB2YWx1ZSA9IENBU1QoPyBBUyBURVhUKTsi
X3MpOworICAgIEpTTG9ja0hvbGRlciBsb2NrZXIobV9zZXJpYWxpemF0aW9uQ29udGV4dC0+dm0o
KSk7CisgICAgYXV0byBqc1ZhbHVlID0gZGVzZXJpYWxpemVJREJWYWx1ZVRvSlNWYWx1ZShtX3Nl
cmlhbGl6YXRpb25Db250ZXh0LT5leGVjU3RhdGUoKSwgdmFsdWUpOworICAgIGlmIChqc1ZhbHVl
LmlzVW5kZWZpbmVkT3JOdWxsKCkpCisgICAgICAgIHJldHVybiBJREJFcnJvciB7IH07CiAKLSAg
ICAgICAgaWYgKCFzcWwKLSAgICAgICAgICAgIHx8IHNxbC0+YmluZEludDY0KDEsIG9iamVjdFN0
b3JlSUQpICE9IFNRTElURV9PSwotICAgICAgICAgICAgfHwgc3FsLT5iaW5kQmxvYigyLCBrZXlC
dWZmZXItPmRhdGEoKSwga2V5QnVmZmVyLT5zaXplKCkpICE9IFNRTElURV9PSwotICAgICAgICAg
ICAgfHwgc3FsLT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAgIExPR19FUlJP
UigiQ291bGQgbm90IGRlbGV0ZSByZWNvcmQgZnJvbSBpbmRleGVzIGZvciBvYmplY3Qgc3RvcmUg
JSIgUFJJaTY0ICIgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJRCwgbV9zcWxpdGVEQi0+bGFzdEVy
cm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgICAgIHJldHVybiBJ
REJFcnJvciB7IFVua25vd25FcnJvciwgIkZhaWxlZCB0byBkZWxldGUgaW5kZXggZW50cmllcyBm
b3Igb2JqZWN0IHN0b3JlIHJlY29yZCJfcyB9OworICAgIGZvciAoYXV0byYgb2JqZWN0U3RvcmVJ
bmZvIDogbV9kYXRhYmFzZUluZm8tPm9iamVjdFN0b3JlTWFwKCkudmFsdWVzKCkpIHsKKyAgICAg
ICAgZm9yIChhdXRvJiBpbmRleEluZm8gOiBvYmplY3RTdG9yZUluZm8uaW5kZXhNYXAoKS52YWx1
ZXMoKSkgeworICAgICAgICAgICAgSW5kZXhLZXkgaW5kZXhLZXk7CisgICAgICAgICAgICBnZW5l
cmF0ZUluZGV4S2V5Rm9yVmFsdWUobV9zZXJpYWxpemF0aW9uQ29udGV4dC0+ZXhlY1N0YXRlKCks
IGluZGV4SW5mbywganNWYWx1ZSwgaW5kZXhLZXksIG9iamVjdFN0b3JlSW5mby5rZXlQYXRoKCks
IGtleURhdGEpOworICAgICAgICAgICAgaWYgKGluZGV4S2V5LmlzTnVsbCgpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoIWluZGV4SW5mby5tdWx0aUVudHJ5
KCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIGVycm9yID0gZGVsZXRlT25lSW5kZXhSZWNvcmQo
b2JqZWN0U3RvcmVJRCwgcmVjb3JkSUQsIGluZGV4S2V5LmFzT25lS2V5KCkpOworICAgICAgICAg
ICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBl
cnJvcjsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgYXV0byBpbmRleEtl
eXMgPSBpbmRleEtleS5tdWx0aUVudHJ5KCk7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBr
ZXkgOiBpbmRleEtleXMpIHsKKyAgICAgICAgICAgICAgICAgICAgYXV0byBlcnJvciA9IGRlbGV0
ZU9uZUluZGV4UmVjb3JkKG9iamVjdFN0b3JlSUQsIHJlY29yZElELCBrZXkpOworICAgICAgICAg
ICAgICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGVycm9yOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgIHJldHVybiBJREJFcnJvciB7IH07CiB9
CiAKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT25lSW5kZXhSZWNvcmQo
aW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IG9iamVjdFN0b3JlUmVjb3JkSUQsIGNvbnN0
IElEQktleURhdGEmIGluZGV4S2V5KQoreworICAgIGlmICghaW5kZXhLZXkuaXNWYWxpZCgpKQor
ICAgICAgICByZXR1cm4gSURCRXJyb3IgeyB9OworCisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
aW5kZXhLZXlCdWZmZXIgPSBzZXJpYWxpemVJREJLZXlEYXRhKGluZGV4S2V5KTsKKyAgICBpZiAo
IWluZGV4S2V5QnVmZmVyKSB7CisgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGRlbGV0ZSBy
ZWNvcmQgZnJvbSBvYmplY3Qgc3RvcmUgJSIgUFJJaTY0ICIgKENvdWxkIG5vdCBzZXJpYWxpemUg
aW5kZXgga2V5KSIsIG9iamVjdFN0b3JlSUQpOworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBV
bmtub3duRXJyb3IsICJGYWlsZWQgdG8gZGVsZXRlIGluZGV4IGVudHJpZXMgZm9yIG9iamVjdCBz
dG9yZSByZWNvcmQiX3MgfTsKKyAgICB9CisKKyAgICBhdXRvKiBzcWwgPSBjYWNoZWRTdGF0ZW1l
bnQoU1FMOjpEZWxldGVPYmplY3RTdG9yZUluZGV4UmVjb3JkLCAiREVMRVRFIEZST00gSW5kZXhS
ZWNvcmRzIFdIRVJFIG9iamVjdFN0b3JlSUQgPSA/IEFORCBvYmplY3RTdG9yZVJlY29yZElEID0g
PyBBTkQga2V5ID0gQ0FTVCg/IEFTIFRFWFQpOyJfcyk7CisgICAgaWYgKCFzcWwKKyAgICAgICAg
fHwgc3FsLT5iaW5kSW50NjQoMSwgb2JqZWN0U3RvcmVJRCkgIT0gU1FMSVRFX09LCisgICAgICAg
IHx8IHNxbC0+YmluZEludDY0KDIsIG9iamVjdFN0b3JlUmVjb3JkSUQpICE9IFNRTElURV9PSwor
ICAgICAgICB8fCBzcWwtPmJpbmRCbG9iKDMsIGluZGV4S2V5QnVmZmVyLT5kYXRhKCksIGluZGV4
S2V5QnVmZmVyLT5zaXplKCkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzcWwtPnN0ZXAoKSAh
PSBTUUxJVEVfRE9ORSkgeworICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCBkZWxldGUgcmVj
b3JkIGZyb20gaW5kZXhlcyBmb3Igb2JqZWN0IHN0b3JlICUiIFBSSWk2NCAiICglaSkgLSAlcyIs
IG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0
RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IFVua25vd25FcnJvciwgIkZh
aWxlZCB0byBkZWxldGUgaW5kZXggZW50cmllcyBmb3Igb2JqZWN0IHN0b3JlIHJlY29yZCJfcyB9
OworICAgIH0KKworICAgIHJldHVybiBJREJFcnJvciB7IH07Cit9CisKIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGNvbnN0IElE
QktleVJhbmdlRGF0YSYga2V5UmFuZ2UpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UgLSByYW5nZSAlcywgb2JqZWN0IHN0b3JlICUiIFBS
SXU2NCwga2V5UmFuZ2UubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG9iamVjdFN0b3Jl
SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDZiZWNhNjFhYmQ2ZjdlYmU3
YWI4MmFmYzhjMmUzNGEzZjExYmY4OGUuLjc1ZjdlOGQ0MDViMjVhMjExMzBkY2YyYTA2ZTA3NTIy
ZDk2MzAzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAgLTExNiw2ICsxMTYs
NyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZUluZm8+IGV4dHJh
Y3RFeGlzdGluZ0RhdGFiYXNlSW5mbygpOwogCiAgICAgSURCRXJyb3IgZGVsZXRlUmVjb3JkKFNR
TGl0ZUlEQlRyYW5zYWN0aW9uJiwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlE
YXRhJik7CisgICAgSURCRXJyb3IgZGVsZXRlT25lSW5kZXhSZWNvcmQoaW50NjRfdCBvYmplY3RT
dG9yZUlELCBpbnQ2NF90IG9iamVjdFN0b3JlUmVjb3JkSUQsIGNvbnN0IElEQktleURhdGEmKTsK
ICAgICBJREJFcnJvciB1bmNoZWNrZWRHZXRLZXlHZW5lcmF0b3JWYWx1ZShpbnQ2NF90IG9iamVj
dFN0b3JlSUQsIHVpbnQ2NF90JiBvdXRWYWx1ZSk7CiAgICAgSURCRXJyb3IgdW5jaGVja2VkU2V0
S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yZUlELCB1aW50NjRfdCB2YWx1ZSk7
CiAKQEAgLTE1Niw3ICsxNTcsNyBAQCBwcml2YXRlOgogICAgICAgICBLZXlFeGlzdHNJbk9iamVj
dFN0b3JlLAogICAgICAgICBHZXRVbnVzZWRCbG9iRmlsZW5hbWVzLAogICAgICAgICBEZWxldGVV
bnVzZWRCbG9icywKLSAgICAgICAgR2V0T2JqZWN0U3RvcmVSZWNvcmRJRCwKKyAgICAgICAgR2V0
T2JqZWN0U3RvcmVSZWNvcmQsCiAgICAgICAgIERlbGV0ZUJsb2JSZWNvcmQsCiAgICAgICAgIERl
bGV0ZU9iamVjdFN0b3JlUmVjb3JkLAogICAgICAgICBEZWxldGVPYmplY3RTdG9yZUluZGV4UmVj
b3JkLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQkRhdGFiYXNlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkRhdGFiYXNlSW5mby5oCmluZGV4IDNiMjA3MjFkMzFmZmJjZTMxMzRhYTg5M2Y2Nzg0
MWFhZTE5YjI5YzUuLjgyMzViYjg4YzMzMmQ3N2UzYThlNDU1MmEzYmJmYTBhOTBiMGY1NjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRh
YmFzZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVu
YW1lT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5ld05hbWUpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gb2JqZWN0U3RvcmVOYW1lcygpIGNv
bnN0OworICAgIGNvbnN0IEhhc2hNYXA8dWludDY0X3QsIElEQk9iamVjdFN0b3JlSW5mbz4mIG9i
amVjdFN0b3JlTWFwKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RTdG9yZU1hcDsgfQogCiAgICAg
dm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7CiAg
ICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>