<?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>166014</bug_id>
          
          <creation_ts>2016-12-18 12:12:42 -0800</creation_ts>
          <short_desc>IndexedDB 2.0: Prefetch cursor records in the server</short_desc>
          <delta_ts>2016-12-18 17:41: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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>160306</blocked>
    
    <blocked>165928</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1261041</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-18 12:12:42 -0800</bug_when>
    <thetext>IndexedDB 2.0: Prefetch cursor records in the server

This is the last part of https://bugs.webkit.org/show_bug.cgi?id=165928 before preemptively sending prefetches to the client.

This is just over a 3x speedup on https://svn.webkit.org/repository/webkit/trunk/PerformanceTests/IndexedDB/objectstore-cursor.html and pouchDB benchmarks that are cursor-heavy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261042</commentid>
    <comment_count>1</comment_count>
      <attachid>297443</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-18 12:17:11 -0800</bug_when>
    <thetext>Created attachment 297443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261062</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-18 17:02:57 -0800</bug_when>
    <thetext>Andy reviewed and said R+, but doesn&apos;t have his bugzilla password handy where he is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261063</commentid>
    <comment_count>3</comment_count>
      <attachid>297449</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-12-18 17:04:14 -0800</bug_when>
    <thetext>Created attachment 297449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261066</commentid>
    <comment_count>4</comment_count>
      <attachid>297449</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-18 17:41:17 -0800</bug_when>
    <thetext>Comment on attachment 297449
Patch

Clearing flags on attachment: 297449

Committed r209977: &lt;http://trac.webkit.org/changeset/209977&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261067</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-18 17:41:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297443</attachid>
            <date>2016-12-18 12:17:11 -0800</date>
            <delta_ts>2016-12-18 17:04:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166014-20161218121616.patch</filename>
            <type>text/plain</type>
            <size>14625</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU3ZWY2MTEwYWI0MWNi
YTU1MGYyNmUyZjM5OWQ3NDZhZDE5MDQwMi4uMmM4Mzg5N2Q4OWQ0YWYzN2E5NTE3OWEyNTgzZjc3
NzcyN2I4ZmE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTEyLTE4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBJbmRleGVkREIgMi4wOiBQ
cmVmZXRjaCBjdXJzb3IgcmVjb3JkcyBpbiB0aGUgc2VydmVyLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2MDE0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChDb3ZlcmVkIGJ5IGV4
aXN0aW5nIExheW91dFRlc3RzIGFuZCBQZXJmb3JtYW5jZVRlc3RzKS4KKworICAgICAgICBUaGlz
IHBhdGNoIGltcGxlbWVudHMgdGhlIGZvbGxvd25nOgorICAgICAgICAxIC0gQWZ0ZXIgYSBiYWNr
aW5nIHN0b3JlIGN1cnNvciBjb21wbGV0ZXMgYSBmZXRjaCBpbiB0aGUgc2VydmVyLCBpdCB3aWxs
IHNjaGVkdWxlIHRoZSBuZXh0IGZldGNoIAorICAgICAgICAgICAgZXZlbiBiZWZvcmUgdGhlIGNs
aWVudCByZXF1ZXN0cyBvbmUuIEl0IHdpbGwgZG8gdGhpcyB1cCB0byBhIGxpbWl0ZWQgbnVtYmVy
IG9mIHByZWZldGNoZXMuCisgICAgICAgIDIgLSBPbmNlIGEgY2xpZW50IHJlcXVlc3QgdG8gYWR2
YW5jZSB0aGUgY3Vyc29yIGNvbWVzIGluLCB3ZSdsbCB3b3JrIG91ciB3YXkgdGhyb3VnaCBwcmVm
ZXRjaGVkCisgICAgICAgICAgICByZWNvcmRzIGluc3RlYWQgb2YgcmVhZGluZyBhbnl0aGluZyBm
cm9tIGRpc2ssIHdoaWNoIG1pZ2h0IHRoZW4gY2F1c2UgdXMgdG8gY29udGludWUgcHJlZmV0Y2gu
CisgICAgICAgIDMgLSBJZiBhbnkgY2hhbmdlcyB0byB0aGUgb2JqZWN0IHN0b3JlIG9jY3VyLCBp
dCB3aWxsIHRocm93IGF3YXkgYWxsIHByZXZpb3VzbHkgZmV0Y2hlZCByZWNvcmRzCisgICAgICAg
ICAgICAoVGhlcmUncyByb29tIGZvciBmdXR1cmUgaW1wcm92ZW1lbnQgaGVyZSkKKworICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAg
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6cG9zdERhdGFiYXNlVGFzayk6Cisg
ICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNr
aW5nU3RvcmUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnByZWZldGNoQ3Vyc29yKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6Cisg
ICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJDdXJzb3I6Om9i
amVjdFN0b3JlUmVjb3Jkc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpT
UUxpdGVJREJDdXJzb3I6OnByZWZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
U1FMaXRlSURCQ3Vyc29yOjphZHZhbmNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtSXRlcmF0ZUN1cnNvcik6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHJlZmV0
Y2hDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6cG9zdERhdGFiYXNlVGFzayk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisKIDIwMTYtMTItMTYgIERhdmUgSHlhdHQgIDxoeWF0dEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBWYWx1ZXNdIE1ha2Ugc2VwYXJhdGUgd3JhcHBlciBj
bGFzc2VzIGZvciB0aGUgZGVwcmVjYXRlZCBDU1MgVmFsdWVzIE9NCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgK
aW5kZXggNDkwYjkwODU4ODAzZjgyYjRiZjgyYTViNTVlYjlkMjc1MzM0MzdlNi4uOWRkZTc0Yzgz
ZjIwYzM4Mjg4ODE2NDk0NzM4NjQ1N2QzMTEzMzgxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaApAQCAt
OTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBtYXliZVVwZGF0ZUtl
eUdlbmVyYXRvck51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBkb3VibGUgbmV3S2V5
TnVtYmVyKSA9IDA7CiAgICAgdmlydHVhbCBJREJFcnJvciBvcGVuQ3Vyc29yKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJ
bmZvJiwgSURCR2V0UmVzdWx0JiBvdXRSZXN1bHQpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9y
IGl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwg
Y29uc3QgSURCSXRlcmF0ZUN1cnNvckRhdGEmLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCkgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBwcmVmZXRjaEN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiBjdXJzb3JJZGVudGlmaWVyKSA9IDA7CiAKICAgICB2aXJ0dWFsIElEQk9iamVjdFN0b3JlSW5m
byogaW5mb0Zvck9iamVjdFN0b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVCYWNraW5nU3RvcmUoKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmlu
ZGV4IDA4YTZhZjRjZWUwZjQ1YmZlYmM0NzdlN2JlMmMxZTc1ZmVkYmVmNzIuLjg3NDc2NDM4Y2Fl
NjVhNjM4N2Q5MDFhNzUyODgxNWVjOTU0N2YyMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC00ODEsNyArNDgx
LDYgQEAgdm9pZCBJREJTZXJ2ZXI6OmRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQKIAogdm9pZCBJREJTZXJ2ZXI6OnBvc3REYXRh
YmFzZVRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYgdGFzaykKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIG1fZGF0YWJhc2VRdWV1ZS5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAppbmRleCAzNzcxNWFjZTI1ZGY1Yjc2ODMyZDBm
MjVjZjA4NjE2N2VhOTg1ODQyLi5lOTNhMTdkZjNlZTBjYzNjZjExZDI3OWQzYTQwMThlYmZmNzc3
ZjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBAIC03MCw2ICs3MCw3IEBAIHB1
YmxpYzoKICAgICBJREJFcnJvciBtYXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJlcihjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyLCBkb3VibGUgbmV3S2V5TnVtYmVyKSBmaW5hbDsKICAgICBJREJF
cnJvciBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiwgSURCR2V0UmVzdWx0JiBvdXRSZXN1bHQp
IGZpbmFsOwogICAgIElEQkVycm9yIGl0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRhdGEmLCBJREJHZXRS
ZXN1bHQmIG91dFJlc3VsdCkgZmluYWw7CisgICAgYm9vbCBwcmVmZXRjaEN1cnNvcihjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgSURCT2JqZWN0U3RvcmVJbmZvKiBpbmZvRm9yT2Jq
ZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lk
IGRlbGV0ZUJhY2tpbmdTdG9yZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmNwcAppbmRleCA1OGNhOTM0ZGExMGFlNjgzNmRiNTdhMTQ4MzdhODI3NjhlNWYzZTkwLi5mYTM3
NTVlNjA5OGM2N2NmOTk2MDRmMTc0ZWMwODgxOGQzNGVjYzQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcApAQCAtMTYwNiw2ICsxNjA2LDggQEAgSURCRXJyb3IgU1FMaXRlSURC
QmFja2luZ1N0b3JlOjpkZWxldGVSYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWMKICAgICAgICAgICAgIHJldHVybiBlcnJvcjsKICAgICAgICAgfQogCisgICAgICAgIHRy
YW5zYWN0aW9uLT5ub3RpZnlDdXJzb3JzT2ZDaGFuZ2VzKG9iamVjdFN0b3JlSUQpOworCiAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgfQogCkBAIC0yNDg5LDYgKzI0OTEsMjIgQEAgSURCRXJyb3Ig
U1FMaXRlSURCQmFja2luZ1N0b3JlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnMKICAgICByZXR1cm4geyB9OwogfQogCitib29sIFNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6cHJlZmV0Y2hDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRl
bnRpZmllcikKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpw
cmVmZXRjaEN1cnNvciIpOworCisgICAgQVNTRVJUKG1fc3FsaXRlREIpOworICAgIEFTU0VSVCht
X3NxbGl0ZURCLT5pc09wZW4oKSk7CisKKyAgICBhdXRvKiBjdXJzb3IgPSBtX2N1cnNvcnMuZ2V0
KGN1cnNvcklkZW50aWZpZXIpOworICAgIGlmICghY3Vyc29yIHx8ICFjdXJzb3ItPnRyYW5zYWN0
aW9uKCkgfHwgIWN1cnNvci0+dHJhbnNhY3Rpb24oKS0+aW5Qcm9ncmVzcygpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBBU1NFUlRfVU5VU0VEKHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
Y3Vyc29yLT50cmFuc2FjdGlvbigpLT50cmFuc2FjdGlvbklkZW50aWZpZXIoKSA9PSB0cmFuc2Fj
dGlvbklkZW50aWZpZXIpOworCisgICAgcmV0dXJuIGN1cnNvci0+cHJlZmV0Y2goKTsKK30KKwog
SURCT2JqZWN0U3RvcmVJbmZvKiBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmluZm9Gb3JPYmplY3RT
dG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKG1fZGF0
YWJhc2VJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAppbmRleCAwMmU2OTg3OTFj
YWVjZTM3NTEyZDRiMDAwNTMzZjg2YmNmMjk1MjhjLi4yNTdlZmU4YzEzMGQ4MzBlMTlhYzg3YmIx
NjdhOTA4NTgwNDcwZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCkBAIC03NSw2
ICs3NSw3IEBAIHB1YmxpYzoKICAgICBJREJFcnJvciBtYXliZVVwZGF0ZUtleUdlbmVyYXRvck51
bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBkb3VibGUgbmV3S2V5TnVtYmVyKSBmaW5h
bDsKICAgICBJREJFcnJvciBvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiwgSURCR2V0UmVzdWx0
JiBvdXRSZXN1bHQpIGZpbmFsOwogICAgIElEQkVycm9yIGl0ZXJhdGVDdXJzb3IoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllciwgY29uc3QgSURCSXRlcmF0ZUN1cnNvckRh
dGEmLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCkgZmluYWw7CisgICAgYm9vbCBwcmVmZXRjaEN1
cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImKSBmaW5hbDsKIAogICAgIElEQk9iamVjdFN0b3JlSW5mbyogaW5mb0Zvck9iamVjdFN0
b3JlKHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBkZWxl
dGVCYWNraW5nU3RvcmUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJDdXJzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKaW5kZXggMzc2NGU2
M2ZhMjBhZTZjODBjNDgzM2ZiZTdmODU3ZGU2ZDIxNDJhYS4uNGNiNGMwNmE2NDQwYTA0ZmRkODc0
YTk2ZmJmNTU2OWI3ZTc2MDNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAKQEAgLTQyLDYgKzQy
LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCitzdGF0
aWMgY29uc3Qgc2l6ZV90IHByZWZldGNoTGltaXQgPSA4OworCiBzdGQ6OnVuaXF1ZV9wdHI8U1FM
aXRlSURCQ3Vyc29yPiBTUUxpdGVJREJDdXJzb3I6Om1heWJlQ3JlYXRlKFNRTGl0ZUlEQlRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgY29uc3QgSURCQ3Vyc29ySW5mbyYgaW5mbykKIHsKICAgICBh
dXRvIGN1cnNvciA9IHN0ZDo6bWFrZV91bmlxdWU8U1FMaXRlSURCQ3Vyc29yPih0cmFuc2FjdGlv
biwgaW5mbyk7CkBAIC0yMzUsNiArMjM3LDggQEAgdm9pZCBTUUxpdGVJREJDdXJzb3I6Om9iamVj
dFN0b3JlUmVjb3Jkc0NoYW5nZWQoKQogICAgICAgICB9CiAgICAgfQogCisgICAgbV9jdXJyZW50
S2V5Rm9yVW5pcXVlbmVzcyA9IG1fZmV0Y2hlZFJlY29yZHMuZmlyc3QoKS5yZWNvcmQua2V5Owor
CiAgICAgbV9mZXRjaGVkUmVjb3Jkcy5jbGVhcigpOwogfQogCkBAIC0yOTEsMTggKzI5NSwyMiBA
QCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YmluZEFyZ3VtZW50cygpCiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKLXZvaWQgU1FMaXRlSURCQ3Vyc29yOjpwcmVmZXRjaCgpCitib29sIFNRTGl0ZUlEQkN1
cnNvcjo6cHJlZmV0Y2goKQogewotICAgIEFTU0VSVCghbV9mZXRjaGVkUmVjb3Jkcy5pc0VtcHR5
KCkpOwotICAgIGlmIChtX2ZldGNoZWRSZWNvcmRzLmxhc3QoKS5lcnJvcmVkIHx8IG1fZmV0Y2hl
ZFJlY29yZHMubGFzdCgpLmNvbXBsZXRlZCkKLSAgICAgICAgcmV0dXJuOworICAgIExPRyhJbmRl
eGVkREIsICJTUUxpdGVJREJDdXJzb3I6OnByZWZldGNoKCkgLSBDdXJzb3IgYWxyZWFkeSBoYXMg
JXp1IGZldGNoZWQgcmVjb3JkcyIsIG1fZmV0Y2hlZFJlY29yZHMuc2l6ZSgpKTsKKworICAgIGlm
IChtX2ZldGNoZWRSZWNvcmRzLmlzRW1wdHkoKSB8fCBtX2ZldGNoZWRSZWNvcmRzLnNpemUoKSA+
PSBwcmVmZXRjaExpbWl0IHx8IG1fZmV0Y2hlZFJlY29yZHMubGFzdCgpLmlzVGVybWluYWxSZWNv
cmQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9jdXJyZW50S2V5Rm9yVW5pcXVl
bmVzcyA9IG1fZmV0Y2hlZFJlY29yZHMubGFzdCgpLnJlY29yZC5rZXk7CiAgICAgZmV0Y2goKTsK
KworICAgIHJldHVybiBtX2ZldGNoZWRSZWNvcmRzLnNpemUoKSA8IHByZWZldGNoTGltaXQ7CiB9
CiAKIGJvb2wgU1FMaXRlSURCQ3Vyc29yOjphZHZhbmNlKHVpbnQ2NF90IGNvdW50KQogeworICAg
IExPRyhJbmRleGVkREIsICJTUUxpdGVJREJDdXJzb3I6OmFkdmFuY2UoKSAtIENvdW50ICUiIFBS
SXU2NCAiLCAlenUgZmV0Y2hlZCByZWNvcmRzIiwgY291bnQsIG1fZmV0Y2hlZFJlY29yZHMuc2l6
ZSgpKTsKICAgICBBU1NFUlQoY291bnQpOwogCiAgICAgaWYgKCFtX2ZldGNoZWRSZWNvcmRzLmlz
RW1wdHkoKSAmJiBtX2ZldGNoZWRSZWNvcmRzLmZpcnN0KCkuaXNUZXJtaW5hbFJlY29yZCgpKSB7
CkBAIC0zMTQsNyArMzIyLDggQEAgYm9vbCBTUUxpdGVJREJDdXJzb3I6OmFkdmFuY2UodWludDY0
X3QgY291bnQpCiAgICAgICAgIG1fY3VycmVudEtleUZvclVuaXF1ZW5lc3MgPSBtX2ZldGNoZWRS
ZWNvcmRzLmxhc3QoKS5yZWNvcmQua2V5OwogCiAgICAgLy8gRHJvcCBhbHJlYWR5LWZldGNoZWQg
cmVjb3JkcyB1cCB0byBgY291bnRgIHRvIHNlZSBpZiB3ZSd2ZSBhbHJlYWR5IGZldGNoZWQgdGhl
IHJlY29yZCB3ZSdyZSBsb29raW5nIGZvci4KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNv
dW50ICYmICFtX2ZldGNoZWRSZWNvcmRzLmlzRW1wdHkoKTsgKytpKSB7CisgICAgYm9vbCBoYWRD
dXJyZW50UmVjb3JkID0gIW1fZmV0Y2hlZFJlY29yZHMuaXNFbXB0eSgpOworICAgIGZvciAoO2Nv
dW50ICYmICFtX2ZldGNoZWRSZWNvcmRzLmlzRW1wdHkoKTsgLS1jb3VudCkgewogICAgICAgICBp
ZiAobV9mZXRjaGVkUmVjb3Jkcy5maXJzdCgpLmlzVGVybWluYWxSZWNvcmQoKSkKICAgICAgICAg
ICAgIGJyZWFrOwogCkBAIC0zMjMsMTEgKzMzMiwxNiBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6
YWR2YW5jZSh1aW50NjRfdCBjb3VudCkKIAogICAgIC8vIElmIHdlIHN0aWxsIGhhdmUgYW55IHJl
Y29yZHMgbGVmdCwgdGhlIGZpcnN0IHJlY29yZCBpcyBvdXIgbmV3IGN1cnJlbnQgcmVjb3JkLgog
ICAgIGlmICghbV9mZXRjaGVkUmVjb3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAhbV9m
ZXRjaGVkUmVjb3Jkcy5maXJzdCgpLmlzVGVybWluYWxSZWNvcmQoKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICBBU1NFUlQobV9mZXRjaGVkUmVjb3Jkcy5pc0VtcHR5KCkpOwogCi0gICAg
Zm9yICh1aW50NjRfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAvLyBJZiB3ZSBzdGFy
dGVkIG91dCB3aXRoIGEgY3VycmVudCByZWNvcmQsIHdlIGJ1cm50IGEgY291bnQgb24gcmVtb3Zp
bmcgaXQuCisgICAgLy8gUmVwbGFjZSB0aGF0IGNvdW50IG5vdy4KKyAgICBpZiAoaGFkQ3VycmVu
dFJlY29yZCkKKyAgICAgICAgKytjb3VudDsKKworICAgIGZvciAoOyBjb3VudDsgLS1jb3VudCkg
ewogICAgICAgICBpZiAoIW1fZmV0Y2hlZFJlY29yZHMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICBBU1NFUlQobV9mZXRjaGVkUmVjb3Jkcy5zaXplKCkgPT0gMSk7CiAgICAgICAgICAgICBtX2N1
cnJlbnRLZXlGb3JVbmlxdWVuZXNzID0gbV9mZXRjaGVkUmVjb3Jkcy5maXJzdCgpLnJlY29yZC5r
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQ3Vyc29yLmgKaW5kZXggOWM0Y2Q5MGJjZjEwMzViNWExOWYwNzgxMzE3ZWY2
OTIxZDIyNjMwYS4uNGE2NzMwMDNiMDMwMTI3Y2UwZWQ0YjZmODY0YzI0OGY3M2YxOWUyZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJDdXJzb3IuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGFk
dmFuY2UodWludDY0X3QgY291bnQpOwogICAgIGJvb2wgaXRlcmF0ZShjb25zdCBJREJLZXlEYXRh
JiB0YXJnZXRLZXksIGNvbnN0IElEQktleURhdGEmIHRhcmdldFByaW1hcnlLZXkpOwotICAgIHZv
aWQgcHJlZmV0Y2goKTsKKyAgICBib29sIHByZWZldGNoKCk7CiAKICAgICBib29sIGRpZENvbXBs
ZXRlKCkgY29uc3Q7CiAgICAgYm9vbCBkaWRFcnJvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKaW5kZXggOTkxMDE1N2MyZDhiOWE4YTliNTk2ZTI0N2I1YmMwYzVjYTdjMGZkNS4u
MjcyMmJiY2M0YmFjZjJlNmUxYzc3OGNjODViMzBlYWJjODZhNzdlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2UuY3BwCkBAIC0xMjMyLDkgKzEyMzIsMjEgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6cGVyZm9ybUl0ZXJhdGVDdXJzb3IodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25z
dAogICAgIElEQkdldFJlc3VsdCByZXN1bHQ7CiAgICAgSURCRXJyb3IgZXJyb3IgPSBtX2JhY2tp
bmdTdG9yZS0+aXRlcmF0ZUN1cnNvcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGN1cnNvcklkZW50
aWZpZXIsIGRhdGEsIHJlc3VsdCk7CiAKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAg
IHBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURC
RGF0YWJhc2U6OnBlcmZvcm1QcmVmZXRjaEN1cnNvciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
dXJzb3JJZGVudGlmaWVyKSk7CisKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jv
c3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1JdGVyYXRl
Q3Vyc29yLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCByZXN1bHQpKTsKIH0KIAordm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIGN1cnNvcklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7
CisgICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QcmVm
ZXRjaEN1cnNvciIpOworCisgICAgaWYgKG1fYmFja2luZ1N0b3JlLT5wcmVmZXRjaEN1cnNvcih0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGN1cnNvcklkZW50aWZpZXIpKQorICAgICAgICBwb3N0RGF0
YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNl
OjpwZXJmb3JtUHJlZmV0Y2hDdXJzb3IsIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY3Vyc29ySWRl
bnRpZmllcikpOworfQorCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtSXRlcmF0
ZUN1cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJv
ciwgY29uc3QgSURCR2V0UmVzdWx0JiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKQEAgLTE2ODUsNyArMTY5Nyw2IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnRyYW5z
YWN0aW9uQ29tcGxldGVkKFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uCiAKIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFzZVRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYg
dGFzaykKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fZGF0YWJhc2VRdWV1
ZS5hcHBlbmQoV1RGTW92ZSh0YXNrKSk7CiAgICAgKyttX3F1ZXVlZFRhc2tDb3VudDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuaAppbmRleCA4NmVhYmEyZjlhMjM5MWRiN2U2YWFlZTI4ZDEyNWE2YWY2
N2JjZjNlLi4wMmM3M2ZhMzQwODZlOGEwNzZiM2UxNDI1MWYwMjAwYjhmYjU4MTIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuaApAQCAtMTY1LDYgKzE2NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBw
ZXJmb3JtRGVsZXRlUmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgdm9pZCBwZXJm
b3JtT3BlbkN1cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZv
Jik7CiAgICAgdm9pZCBwZXJmb3JtSXRlcmF0ZUN1cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElE
Qkl0ZXJhdGVDdXJzb3JEYXRhJik7CisgICAgdm9pZCBwZXJmb3JtUHJlZmV0Y2hDdXJzb3IoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllcik7CisKICAgICB2b2lkIHBlcmZv
cm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVu
dGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lkIHBlcmZvcm1VbmNv
bmRpdGlvbmFsRGVsZXRlQmFja2luZ1N0b3JlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297449</attachid>
            <date>2016-12-18 17:04:14 -0800</date>
            <delta_ts>2016-12-18 17:41:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166014-20161218170319.patch</filename>
            <type>text/plain</type>
            <size>14622</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmU3ZWY2MTEwYWI0MWNi
YTU1MGYyNmUyZjM5OWQ3NDZhZDE5MDQwMi4uYWI3YTgwMTMwZTRjOTQ3MGU1YWY5ZmIxZDc3MzFi
YmFmZWM3NDM5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDE2LTEyLTE4ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBJbmRleGVkREIgMi4wOiBQ
cmVmZXRjaCBjdXJzb3IgcmVjb3JkcyBpbiB0aGUgc2VydmVyLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2MDE0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQW5keSBFc3Rlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgKENvdmVyZWQgYnkgZXhpc3Rp
bmcgTGF5b3V0VGVzdHMgYW5kIFBlcmZvcm1hbmNlVGVzdHMpLgorCisgICAgICAgIFRoaXMgcGF0
Y2ggaW1wbGVtZW50cyB0aGUgZm9sbG93bmc6CisgICAgICAgIDEgLSBBZnRlciBhIGJhY2tpbmcg
c3RvcmUgY3Vyc29yIGNvbXBsZXRlcyBhIGZldGNoIGluIHRoZSBzZXJ2ZXIsIGl0IHdpbGwgc2No
ZWR1bGUgdGhlIG5leHQgZmV0Y2ggCisgICAgICAgICAgICBldmVuIGJlZm9yZSB0aGUgY2xpZW50
IHJlcXVlc3RzIG9uZS4gSXQgd2lsbCBkbyB0aGlzIHVwIHRvIGEgbGltaXRlZCBudW1iZXIgb2Yg
cHJlZmV0Y2hlcy4KKyAgICAgICAgMiAtIE9uY2UgYSBjbGllbnQgcmVxdWVzdCB0byBhZHZhbmNl
IHRoZSBjdXJzb3IgY29tZXMgaW4sIHdlJ2xsIHdvcmsgb3VyIHdheSB0aHJvdWdoIHByZWZldGNo
ZWQKKyAgICAgICAgICAgIHJlY29yZHMgaW5zdGVhZCBvZiByZWFkaW5nIGFueXRoaW5nIGZyb20g
ZGlzaywgd2hpY2ggbWlnaHQgdGhlbiBjYXVzZSB1cyB0byBjb250aW51ZSBwcmVmZXRjaC4KKyAg
ICAgICAgMyAtIElmIGFueSBjaGFuZ2VzIHRvIHRoZSBvYmplY3Qgc3RvcmUgb2NjdXIsIGl0IHdp
bGwgdGhyb3cgYXdheSBhbGwgcHJldmlvdXNseSBmZXRjaGVkIHJlY29yZHMKKyAgICAgICAgICAg
IChUaGVyZSdzIHJvb20gZm9yIGZ1dHVyZSBpbXByb3ZlbWVudCBoZXJlKQorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpwb3N0RGF0YWJhc2VUYXNrKToKKyAgICAg
ICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FM
aXRlSURCQmFja2luZ1N0b3JlOjpkZWxldGVSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cHJlZmV0Y2hDdXJzb3IpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaDoKKyAgICAg
ICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkN1cnNvcjo6b2JqZWN0
U3RvcmVSZWNvcmRzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0
ZUlEQkN1cnNvcjo6cHJlZmV0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxp
dGVJREJDdXJzb3I6OmFkdmFuY2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJDdXJzb3IuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1JdGVyYXRlQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QcmVmZXRjaEN1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpw
b3N0RGF0YWJhc2VUYXNrKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuaDoKKwogMjAxNi0xMi0xNiAgRGF2ZSBIeWF0dCAgPGh5YXR0QGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ1NTIFZhbHVlc10gTWFrZSBzZXBhcmF0ZSB3cmFwcGVyIGNsYXNz
ZXMgZm9yIHRoZSBkZXByZWNhdGVkIENTUyBWYWx1ZXMgT00KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAppbmRl
eCA0OTBiOTA4NTg4MDNmODJiNGJmODJhNWI1NWViOWQyNzUzMzQzN2U2Li45ZGRlNzRjODNmMjBj
MzgyODg4MTY0OTQ3Mzg2NDU3ZDMxMTMzODEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCkBAIC05MSw2
ICs5MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkVycm9yIG1heWJlVXBkYXRlS2V5R2Vu
ZXJhdG9yTnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlOdW1i
ZXIpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIG9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8m
LCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCkgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgaXRl
cmF0ZUN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25z
dCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0UmVzdWx0KSA9IDA7Cisg
ICAgdmlydHVhbCBib29sIHByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1
cnNvcklkZW50aWZpZXIpID0gMDsKIAogICAgIHZpcnR1YWwgSURCT2JqZWN0U3RvcmVJbmZvKiBp
bmZvRm9yT2JqZWN0U3RvcmUodWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZUJhY2tpbmdTdG9yZSgpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXgg
MDhhNmFmNGNlZTBmNDViZmViYzQ3N2U3YmUyYzFlNzVmZWRiZWY3Mi4uODc0NzY0MzhjYWU2NWE2
Mzg3ZDkwMWE3NTI4ODE1ZWM5NTQ3ZjIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTQ4MSw3ICs0ODEsNiBA
QCB2b2lkIElEQlNlcnZlcjo6ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgdWludAogCiB2b2lkIElEQlNlcnZlcjo6cG9zdERhdGFiYXNl
VGFzayhDcm9zc1RocmVhZFRhc2smJiB0YXNrKQogewotICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgbV9kYXRhYmFzZVF1ZXVlLmFwcGVuZChXVEZNb3ZlKHRhc2spKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlE
QkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDM3NzE1YWNlMjVkZjViNzY4MzJkMGYyNWNm
MDg2MTY3ZWE5ODU4NDIuLmU5M2ExN2RmM2VlMGNjM2NmMTFkMjc5ZDNhNDAxOGViZmY3NzdmNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGlj
OgogICAgIElEQkVycm9yIG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlOdW1iZXIpIGZpbmFsOwogICAgIElEQkVycm9y
IG9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8mLCBJREJHZXRSZXN1bHQmIG91dFJlc3VsdCkgZmlu
YWw7CiAgICAgSURCRXJyb3IgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBj
dXJzb3JJZGVudGlmaWVyLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYsIElEQkdldFJlc3Vs
dCYgb3V0UmVzdWx0KSBmaW5hbDsKKyAgICBib29sIHByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpIGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CiAKICAgICBJREJPYmplY3RTdG9yZUluZm8qIGluZm9Gb3JPYmplY3RT
dG9yZSh1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGVs
ZXRlQmFja2luZ1N0b3JlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CmluZGV4IDU4Y2E5MzRkYTEwYWU2ODM2ZGI1N2ExNDgzN2E4Mjc2OGU1ZjNlOTAuLmZhMzc1NWU2
MDk4YzY3Y2Y5OTYwNGYxNzRlYzA4ODE4ZDM0ZWNjNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNr
aW5nU3RvcmUuY3BwCkBAIC0xNjA2LDYgKzE2MDYsOCBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OmRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
YwogICAgICAgICAgICAgcmV0dXJuIGVycm9yOwogICAgICAgICB9CiAKKyAgICAgICAgdHJhbnNh
Y3Rpb24tPm5vdGlmeUN1cnNvcnNPZkNoYW5nZXMob2JqZWN0U3RvcmVJRCk7CisKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKQEAgLTI0ODksNiArMjQ5MSwyMiBAQCBJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFucwogICAgIHJldHVybiB7IH07CiB9CiAKK2Jvb2wgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjpwcmVmZXRjaEN1cnNvcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBjdXJzb3JJZGVudGlm
aWVyKQoreworICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OnByZWZl
dGNoQ3Vyc29yIik7CisKKyAgICBBU1NFUlQobV9zcWxpdGVEQik7CisgICAgQVNTRVJUKG1fc3Fs
aXRlREItPmlzT3BlbigpKTsKKworICAgIGF1dG8qIGN1cnNvciA9IG1fY3Vyc29ycy5nZXQoY3Vy
c29ySWRlbnRpZmllcik7CisgICAgaWYgKCFjdXJzb3IgfHwgIWN1cnNvci0+dHJhbnNhY3Rpb24o
KSB8fCAhY3Vyc29yLT50cmFuc2FjdGlvbigpLT5pblByb2dyZXNzKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIEFTU0VSVF9VTlVTRUQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjdXJz
b3ItPnRyYW5zYWN0aW9uKCktPnRyYW5zYWN0aW9uSWRlbnRpZmllcigpID09IHRyYW5zYWN0aW9u
SWRlbnRpZmllcik7CisKKyAgICByZXR1cm4gY3Vyc29yLT5wcmVmZXRjaCgpOworfQorCiBJREJP
YmplY3RTdG9yZUluZm8qIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6aW5mb0Zvck9iamVjdFN0b3Jl
KHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQobV9kYXRhYmFz
ZUluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDAyZTY5ODc5MWNhZWNl
Mzc1MTJkNGIwMDA1MzNmODZiY2YyOTUyOGMuLjI1N2VmZThjMTMwZDgzMGUxOWFjODdiYjE2N2E5
MDg1ODA0NzBmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAgLTc1LDYgKzc1
LDcgQEAgcHVibGljOgogICAgIElEQkVycm9yIG1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVy
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGRvdWJsZSBuZXdLZXlOdW1iZXIpIGZpbmFsOwog
ICAgIElEQkVycm9yIG9wZW5DdXJzb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkN1cnNvckluZm8mLCBJREJHZXRSZXN1bHQmIG91
dFJlc3VsdCkgZmluYWw7CiAgICAgSURCRXJyb3IgaXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiBjdXJzb3JJZGVudGlmaWVyLCBjb25zdCBJREJJdGVyYXRlQ3Vyc29yRGF0YSYs
IElEQkdldFJlc3VsdCYgb3V0UmVzdWx0KSBmaW5hbDsKKyAgICBib29sIHByZWZldGNoQ3Vyc29y
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYpIGZpbmFsOwogCiAgICAgSURCT2JqZWN0U3RvcmVJbmZvKiBpbmZvRm9yT2JqZWN0U3RvcmUo
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRlbGV0ZUJh
Y2tpbmdTdG9yZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcAppbmRleCAzNzY0ZTYzZmEy
MGFlNmM4MGM0ODMzZmJlN2Y4NTdkZTZkMjE0MmFhLi43OGJjZjk3NzkwNjUyYmE3YzE5OGMyOWMz
MzM5YjNlMGJlMzM5NGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQ3Vyc29yLmNwcApAQCAtNDIsNiArNDIsOCBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKK3N0YXRpYyBj
b25zdCBzaXplX3QgcHJlZmV0Y2hMaW1pdCA9IDg7CisKIHN0ZDo6dW5pcXVlX3B0cjxTUUxpdGVJ
REJDdXJzb3I+IFNRTGl0ZUlEQkN1cnNvcjo6bWF5YmVDcmVhdGUoU1FMaXRlSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBjb25zdCBJREJDdXJzb3JJbmZvJiBpbmZvKQogewogICAgIGF1dG8g
Y3Vyc29yID0gc3RkOjptYWtlX3VuaXF1ZTxTUUxpdGVJREJDdXJzb3I+KHRyYW5zYWN0aW9uLCBp
bmZvKTsKQEAgLTIzNSw2ICsyMzcsOCBAQCB2b2lkIFNRTGl0ZUlEQkN1cnNvcjo6b2JqZWN0U3Rv
cmVSZWNvcmRzQ2hhbmdlZCgpCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBtX2N1cnJlbnRLZXlG
b3JVbmlxdWVuZXNzID0gbV9mZXRjaGVkUmVjb3Jkcy5maXJzdCgpLnJlY29yZC5rZXk7CisKICAg
ICBtX2ZldGNoZWRSZWNvcmRzLmNsZWFyKCk7CiB9CiAKQEAgLTI5MSwxOCArMjk1LDIyIEBAIGJv
b2wgU1FMaXRlSURCQ3Vyc29yOjpiaW5kQXJndW1lbnRzKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotdm9pZCBTUUxpdGVJREJDdXJzb3I6OnByZWZldGNoKCkKK2Jvb2wgU1FMaXRlSURCQ3Vyc29y
OjpwcmVmZXRjaCgpCiB7Ci0gICAgQVNTRVJUKCFtX2ZldGNoZWRSZWNvcmRzLmlzRW1wdHkoKSk7
Ci0gICAgaWYgKG1fZmV0Y2hlZFJlY29yZHMubGFzdCgpLmVycm9yZWQgfHwgbV9mZXRjaGVkUmVj
b3Jkcy5sYXN0KCkuY29tcGxldGVkKQotICAgICAgICByZXR1cm47CisgICAgTE9HKEluZGV4ZWRE
QiwgIlNRTGl0ZUlEQkN1cnNvcjo6cHJlZmV0Y2goKSAtIEN1cnNvciBhbHJlYWR5IGhhcyAlenUg
ZmV0Y2hlZCByZWNvcmRzIiwgbV9mZXRjaGVkUmVjb3Jkcy5zaXplKCkpOworCisgICAgaWYgKG1f
ZmV0Y2hlZFJlY29yZHMuaXNFbXB0eSgpIHx8IG1fZmV0Y2hlZFJlY29yZHMuc2l6ZSgpID49IHBy
ZWZldGNoTGltaXQgfHwgbV9mZXRjaGVkUmVjb3Jkcy5sYXN0KCkuaXNUZXJtaW5hbFJlY29yZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBtX2N1cnJlbnRLZXlGb3JVbmlxdWVuZXNz
ID0gbV9mZXRjaGVkUmVjb3Jkcy5sYXN0KCkucmVjb3JkLmtleTsKICAgICBmZXRjaCgpOworCisg
ICAgcmV0dXJuIG1fZmV0Y2hlZFJlY29yZHMuc2l6ZSgpIDwgcHJlZmV0Y2hMaW1pdDsKIH0KIAog
Ym9vbCBTUUxpdGVJREJDdXJzb3I6OmFkdmFuY2UodWludDY0X3QgY291bnQpCiB7CisgICAgTE9H
KEluZGV4ZWREQiwgIlNRTGl0ZUlEQkN1cnNvcjo6YWR2YW5jZSgpIC0gQ291bnQgJSIgUFJJdTY0
ICIsICV6dSBmZXRjaGVkIHJlY29yZHMiLCBjb3VudCwgbV9mZXRjaGVkUmVjb3Jkcy5zaXplKCkp
OwogICAgIEFTU0VSVChjb3VudCk7CiAKICAgICBpZiAoIW1fZmV0Y2hlZFJlY29yZHMuaXNFbXB0
eSgpICYmIG1fZmV0Y2hlZFJlY29yZHMuZmlyc3QoKS5pc1Rlcm1pbmFsUmVjb3JkKCkpIHsKQEAg
LTMxNCw3ICszMjIsOCBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YWR2YW5jZSh1aW50NjRfdCBj
b3VudCkKICAgICAgICAgbV9jdXJyZW50S2V5Rm9yVW5pcXVlbmVzcyA9IG1fZmV0Y2hlZFJlY29y
ZHMubGFzdCgpLnJlY29yZC5rZXk7CiAKICAgICAvLyBEcm9wIGFscmVhZHktZmV0Y2hlZCByZWNv
cmRzIHVwIHRvIGBjb3VudGAgdG8gc2VlIGlmIHdlJ3ZlIGFscmVhZHkgZmV0Y2hlZCB0aGUgcmVj
b3JkIHdlJ3JlIGxvb2tpbmcgZm9yLgotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQg
JiYgIW1fZmV0Y2hlZFJlY29yZHMuaXNFbXB0eSgpOyArK2kpIHsKKyAgICBib29sIGhhZEN1cnJl
bnRSZWNvcmQgPSAhbV9mZXRjaGVkUmVjb3Jkcy5pc0VtcHR5KCk7CisgICAgZm9yICg7IGNvdW50
ICYmICFtX2ZldGNoZWRSZWNvcmRzLmlzRW1wdHkoKTsgLS1jb3VudCkgewogICAgICAgICBpZiAo
bV9mZXRjaGVkUmVjb3Jkcy5maXJzdCgpLmlzVGVybWluYWxSZWNvcmQoKSkKICAgICAgICAgICAg
IGJyZWFrOwogCkBAIC0zMjMsMTEgKzMzMiwxNiBAQCBib29sIFNRTGl0ZUlEQkN1cnNvcjo6YWR2
YW5jZSh1aW50NjRfdCBjb3VudCkKIAogICAgIC8vIElmIHdlIHN0aWxsIGhhdmUgYW55IHJlY29y
ZHMgbGVmdCwgdGhlIGZpcnN0IHJlY29yZCBpcyBvdXIgbmV3IGN1cnJlbnQgcmVjb3JkLgogICAg
IGlmICghbV9mZXRjaGVkUmVjb3Jkcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAhbV9mZXRj
aGVkUmVjb3Jkcy5maXJzdCgpLmlzVGVybWluYWxSZWNvcmQoKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICBBU1NFUlQobV9mZXRjaGVkUmVjb3Jkcy5pc0VtcHR5KCkpOwogCi0gICAgZm9y
ICh1aW50NjRfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAvLyBJZiB3ZSBzdGFydGVk
IG91dCB3aXRoIGEgY3VycmVudCByZWNvcmQsIHdlIGJ1cm50IGEgY291bnQgb24gcmVtb3Zpbmcg
aXQuCisgICAgLy8gUmVwbGFjZSB0aGF0IGNvdW50IG5vdy4KKyAgICBpZiAoaGFkQ3VycmVudFJl
Y29yZCkKKyAgICAgICAgKytjb3VudDsKKworICAgIGZvciAoOyBjb3VudDsgLS1jb3VudCkgewog
ICAgICAgICBpZiAoIW1fZmV0Y2hlZFJlY29yZHMuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBB
U1NFUlQobV9mZXRjaGVkUmVjb3Jkcy5zaXplKCkgPT0gMSk7CiAgICAgICAgICAgICBtX2N1cnJl
bnRLZXlGb3JVbmlxdWVuZXNzID0gbV9mZXRjaGVkUmVjb3Jkcy5maXJzdCgpLnJlY29yZC5rZXk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQ3Vyc29yLmgKaW5kZXggOWM0Y2Q5MGJjZjEwMzViNWExOWYwNzgxMzE3ZWY2OTIx
ZDIyNjMwYS4uNGE2NzMwMDNiMDMwMTI3Y2UwZWQ0YjZmODY0YzI0OGY3M2YxOWUyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkN1
cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJDdXJzb3IuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGFkdmFu
Y2UodWludDY0X3QgY291bnQpOwogICAgIGJvb2wgaXRlcmF0ZShjb25zdCBJREJLZXlEYXRhJiB0
YXJnZXRLZXksIGNvbnN0IElEQktleURhdGEmIHRhcmdldFByaW1hcnlLZXkpOwotICAgIHZvaWQg
cHJlZmV0Y2goKTsKKyAgICBib29sIHByZWZldGNoKCk7CiAKICAgICBib29sIGRpZENvbXBsZXRl
KCkgY29uc3Q7CiAgICAgYm9vbCBkaWRFcnJvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZS5jcHAKaW5kZXggOTkxMDE1N2MyZDhiOWE4YTliNTk2ZTI0N2I1YmMwYzVjYTdjMGZkNS4uMjcy
MmJiY2M0YmFjZjJlNmUxYzc3OGNjODViMzBlYWJjODZhNzdlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwCkBAIC0xMjMyLDkgKzEyMzIsMjEgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybUl0ZXJhdGVDdXJzb3IodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdAog
ICAgIElEQkdldFJlc3VsdCByZXN1bHQ7CiAgICAgSURCRXJyb3IgZXJyb3IgPSBtX2JhY2tpbmdT
dG9yZS0+aXRlcmF0ZUN1cnNvcih0cmFuc2FjdGlvbklkZW50aWZpZXIsIGN1cnNvcklkZW50aWZp
ZXIsIGRhdGEsIHJlc3VsdCk7CiAKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIHBv
c3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0
YWJhc2U6OnBlcmZvcm1QcmVmZXRjaEN1cnNvciwgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjdXJz
b3JJZGVudGlmaWVyKSk7CisKICAgICBwb3N0RGF0YWJhc2VUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NU
aHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1JdGVyYXRlQ3Vy
c29yLCBjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yLCByZXN1bHQpKTsKIH0KIAordm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6cGVyZm9ybVByZWZldGNoQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIGN1cnNvcklkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7Cisg
ICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QcmVmZXRj
aEN1cnNvciIpOworCisgICAgaWYgKG1fYmFja2luZ1N0b3JlLT5wcmVmZXRjaEN1cnNvcih0cmFu
c2FjdGlvbklkZW50aWZpZXIsIGN1cnNvcklkZW50aWZpZXIpKQorICAgICAgICBwb3N0RGF0YWJh
c2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpw
ZXJmb3JtUHJlZmV0Y2hDdXJzb3IsIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY3Vyc29ySWRlbnRp
ZmllcikpOworfQorCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtSXRlcmF0ZUN1
cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvciwg
Y29uc3QgSURCR2V0UmVzdWx0JiByZXN1bHQpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKQEAgLTE2ODUsNyArMTY5Nyw2IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnRyYW5zYWN0
aW9uQ29tcGxldGVkKFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uCiAKIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OnBvc3REYXRhYmFzZVRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYgdGFz
aykKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fZGF0YWJhc2VRdWV1ZS5h
cHBlbmQoV1RGTW92ZSh0YXNrKSk7CiAgICAgKyttX3F1ZXVlZFRhc2tDb3VudDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuaAppbmRleCA4NmVhYmEyZjlhMjM5MWRiN2U2YWFlZTI4ZDEyNWE2YWY2N2Jj
ZjNlLi4wMmM3M2ZhMzQwODZlOGEwNzZiM2UxNDI1MWYwMjAwYjhmYjU4MTIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuaApAQCAtMTY1LDYgKzE2NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJm
b3JtRGVsZXRlUmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgdm9pZCBwZXJmb3Jt
T3BlbkN1cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJik7
CiAgICAgdm9pZCBwZXJmb3JtSXRlcmF0ZUN1cnNvcih1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIGN1cnNvcklkZW50aWZpZXIsIGNvbnN0IElEQkl0
ZXJhdGVDdXJzb3JEYXRhJik7CisgICAgdm9pZCBwZXJmb3JtUHJlZmV0Y2hDdXJzb3IoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgY3Vyc29ySWRlbnRpZmllcik7CisKICAgICB2b2lkIHBlcmZvcm1B
Y3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlm
aWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lkIHBlcmZvcm1VbmNvbmRp
dGlvbmFsRGVsZXRlQmFja2luZ1N0b3JlKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>