<?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>153427</bug_id>
          
          <creation_ts>2016-01-25 10:16:32 -0800</creation_ts>
          <short_desc>Modern IDB: Key generator support for SQLite backend</short_desc>
          <delta_ts>2016-01-26 18:26:10 -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>Safari 9</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>149117</blocked>
    
    <blocked>153021</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</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>1158365</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-25 10:16:32 -0800</bug_when>
    <thetext>Modern IDB: Key generator support for SQLite backend</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159118</commentid>
    <comment_count>1</comment_count>
      <attachid>269954</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-26 17:07:56 -0800</bug_when>
    <thetext>Created attachment 269954
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159131</commentid>
    <comment_count>2</comment_count>
      <attachid>269956</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-26 17:19:44 -0800</bug_when>
    <thetext>Created attachment 269956
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159133</commentid>
    <comment_count>3</comment_count>
      <attachid>269954</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-26 17:25:47 -0800</bug_when>
    <thetext>Comment on attachment 269954
Patch v1

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

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1244
&gt; +    if (static_cast&lt;uint64_t&gt;(currentValue) &gt; maxGeneratorValue)

static_cast not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159163</commentid>
    <comment_count>4</comment_count>
      <attachid>269956</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-26 18:26:07 -0800</bug_when>
    <thetext>Comment on attachment 269956
Patch for landing

Clearing flags on attachment: 269956

Committed r195648: &lt;http://trac.webkit.org/changeset/195648&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159164</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-26 18:26:10 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269954</attachid>
            <date>2016-01-26 17:07:56 -0800</date>
            <delta_ts>2016-01-26 17:25:47 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>13088</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNWFmZjlhLi44MDliMWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTYtMDEt
MjYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REI6IEtleSBnZW5lcmF0b3Igc3VwcG9ydCBmb3IgU1FMaXRlIGJhY2tlbmQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0MjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9uczoKKworMjAxNi0wMS0yNiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CisKICAgICAgICAgSGlzdG9yeS5wdXNoU3RhdGUgY2F1c2VzIGludGVuc2UgbWVt
b3J5IHByZXNzdXJlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUzNDM1CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA2YWEwYjA2Li5hNmYxMzViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC00NzAsNyArNDcwLDYgQEAgc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLXByaW1hcnkta2V5LW9yZGVyLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL2N1cnNvci1wcm9wZXJ0aWVzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1yZXZlcnNlLWJ1Zy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3Itc2tpcC1kZWxldGVkLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5k
ZXhlZGRiL2N1cnNvci11cGRhdGUtdmFsdWUtYXJndW1lbnQtcmVxdWlyZWQuaHRtbCBbIEZhaWx1
cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVwZGF0ZS5odG1sIFsgRmFpbHVyZSBdCiBz
dG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdmFsdWUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9p
bmRleGVkZGIvZGVsZXRlLXJhbmdlLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTQ4OSwxMiArNDg4LDEw
IEBAIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1nZW5lcmF0b3IuaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItYWNyb3NzLXR5cGVzLmh0bWwgWyBGYWlsdXJl
IF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2tleS1zb3J0LW9yZGVyLWRhdGUuaHRtbCBbIEZhaWx1cmUg
XQogc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1hcnJheXMuaHRtbCBbIEZhaWx1cmUgXQotc3Rv
cmFnZS9pbmRleGVkZGIva2V5cGF0aC1lZGdlcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2lu
ZGV4ZWRkYi9rZXlwYXRoLWZldGNoLWtleS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4
ZWRkYi9rZXlwYXRoLWludHJpbnNpYy1wcm9wZXJ0aWVzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL2xhenktaW5kZXgtcG9wdWxhdGlvbi5odG1sIFsgRmFpbHVyZSBdCiBzdG9y
YWdlL2luZGV4ZWRkYi9sYXp5LWluZGV4LXR5cGVzLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2Uv
aW5kZXhlZGRiL21vZGVybi9hdXRvaW5jcmVtZW50LWFib3J0Lmh0bWwgWyBGYWlsdXJlIF0KIHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTIuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2N1cnNvci0zLmh0bWwgWyBGYWlsdXJlIF0KQEAgLTUwNiw4ICs1MDMsNiBA
QCBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTguaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTEuaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWluZGV4LTIuaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1rZXlyYW5nZS5odG1sIFsgRmFpbHVyZSBdCi1zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMS5odG1sIFsgRmFpbHVy
ZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtY2xlYXItMi5odG1s
IFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVs
ZXRlLTEuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTEu
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LTIuaHRtbCBb
IEZhaWx1cmUgXQpAQCAtNTI2LDE3ICs1MjEsOSBAQCBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2N1cnNvci1tdXRhdGlvbi1vYmplY3RzdG9yZS1vbmx5Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLW11dGF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIHN0
b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY3Vyc29yLXVwZGF0ZS11cGRhdGVzLWluZGV4ZXMuaHRt
bCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3JzLmh0bWwgWyBG
YWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZGVsZXRlLXJlc3VsdC5odG1sIFsg
RmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2V2ZW50LXNvdXJjZS5odG1sIFsg
RmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2luZGV4LXByZXYtbm8tZHVwbGlj
YXRlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXhlcy5o
dG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2tleS1yZXF1aXJlbWVu
dHMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3QtY3Vy
c29ycy5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1z
dG9yZS1pbmxpbmUtYXV0b2luY3JlbWVudC1rZXktYWRkZWQtb24tcHV0Lmh0bWwgWyBGYWlsdXJl
IF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0LXN0b3JlLXJlbW92ZS12YWx1ZXMu
aHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vZGQtcmVzdWx0LW9y
ZGVyLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvcHV0LWdldC12
YWx1ZXMuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9yZWFkd3Jp
dGUtdHJhbnNhY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvcmVtb3ZlLW9iamVjdHN0b3JlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRi
L211dGF0aW5nLWN1cnNvci5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9vYmpl
Y3RzdG9yZS1hdXRvaW5jcmVtZW50Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYmZh
NzY3Li43MmFiZWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTYtMDEtMjYgIEJy
YWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJREI6IEtl
eSBnZW5lcmF0b3Igc3VwcG9ydCBmb3IgU1FMaXRlIGJhY2tlbmQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0MjcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKEV4aXN0aW5nIGZh
aWxpbmcgdGVzdHMgbm93IHBhc3MsIG90aGVycyBpbXByb3ZlZCkuCisKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRHZXRL
ZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVt
YmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpyZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpTUUxpdGVJREJCYWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
Lmg6CisKKzIwMTYtMDEtMjYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAg
ICAgICAgIEhpc3RvcnkucHVzaFN0YXRlIGNhdXNlcyBpbnRlbnNlIG1lbW9yeSBwcmVzc3VyZS4K
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQzNQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDU5YWJkZjguLjAyM2I0ODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxp
dGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0xMTgwLDE5ICsxMTgwLDEz
OCBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldENvdW50KGNvbnN0IElEQlJl
c291cmNlSWRlbnRpZmllciYgdHJhbnNhY3RpbwogICAgIHJldHVybiB7IH07CiB9CiAKLUlEQkVy
cm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiwgdWludDY0X3QsIHVpbnQ2NF90JikKK0lEQkVycm9yIFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBvYmpl
Y3RTdG9yZUlELCB1aW50NjRfdCYgb3V0VmFsdWUpCiB7Ci0gICAgcmV0dXJuIHsgSURCRGF0YWJh
c2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJOb3QgaW1wbGVtZW50ZWQi
KSB9OworICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgi
U0VMRUNUIGN1cnJlbnRLZXkgRlJPTSBLZXlHZW5lcmF0b3JzIFdIRVJFIG9iamVjdFN0b3JlSUQg
PSA/OyIpKTsKKyAgICBpZiAoc3FsLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgfHwg
c3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0spIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJDb3VsZCBub3QgcmV0cmlldmUgY3VycmVudEtleSBmcm9tIEtleUdlbmVyYXRv
cnMgdGFibGUgKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREIt
Pmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246
OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJFcnJvciBnZXR0aW5nIGN1cnJlbnQga2V5IGdl
bmVyYXRvciB2YWx1ZSBmcm9tIGRhdGFiYXNlIikgfTsKKyAgICB9CisgICAgaW50IHJlc3VsdCA9
IHNxbC5zdGVwKCk7CisgICAgaWYgKHJlc3VsdCAhPSBTUUxJVEVfUk9XKSB7CisgICAgICAgIExP
R19FUlJPUigiQ291bGQgbm90IHJldHJlaXZlIGtleSBnZW5lcmF0b3IgdmFsdWUgZm9yIG9iamVj
dCBzdG9yZSwgYnV0IGl0IHNob3VsZCBiZSB0aGVyZS4iKTsKKyAgICAgICAgcmV0dXJuIHsgSURC
RGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJFcnJvciBmaW5k
aW5nIGN1cnJlbnQga2V5IGdlbmVyYXRvciB2YWx1ZSBpbiBkYXRhYmFzZSIpIH07CisgICAgfQor
CisgICAgaW50NjRfdCB2YWx1ZSA9IHNxbC5nZXRDb2x1bW5JbnQ2NCgwKTsKKyAgICBpZiAodmFs
dWUgPCAwKQorICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29uc3RyYWlu
dEVycm9yLCAiQ3VycmVudCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGZyb20gZGF0YWJhc2UgaXMgaW52
YWxpZCIgfTsKKworICAgIG91dFZhbHVlID0gdmFsdWU7CisgICAgcmV0dXJuIHsgfTsKK30KKwor
SURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JW
YWx1ZShpbnQ2NF90IG9iamVjdFN0b3JlSUQsIHVpbnQ2NF90IHZhbHVlKQoreworICAgIFNRTGl0
ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgiSU5TRVJUIElOVE8gS2V5
R2VuZXJhdG9ycyBWQUxVRVMgKD8sID8pOyIpKTsKKyAgICBpZiAoc3FsLnByZXBhcmUoKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAhPSBT
UUxJVEVfT0sKKyAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgyLCB2YWx1ZSkgIT0gU1FMSVRFX09L
CisgICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJDb3VsZCBub3QgdXBkYXRlIGtleSBnZW5lcmF0b3IgdmFsdWUgKCVpKSAtICVzIiwgbV9z
cWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKKyAgICAg
ICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvciwgIkVycm9y
IHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiIH07CisgICAgfQor
CisgICAgcmV0dXJuIHsgfTsKK30KKworSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpn
ZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwgdWludDY0X3QmIGdlbmVyYXRlZEtl
eSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0
ZUtleU51bWJlciIpOworCisgICAgQVNTRVJUKG1fc3FsaXRlREIpOworICAgIEFTU0VSVChtX3Nx
bGl0ZURCLT5pc09wZW4oKSk7CisKKyAgICAvLyBUaGUgSW5kZXhlZERhdGFiYXNlIHNwZWMgZGVm
aW5lcyB0aGUgbWF4IGtleSBnZW5lcmF0b3IgdmFsdWUgYXMgMl41MzsKKyAgICBzdGF0aWMgdWlu
dDY0X3QgbWF4R2VuZXJhdG9yVmFsdWUgPSAweDIwMDAwMDAwMDAwMDAwOworCisgICAgYXV0byog
dHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
KyAgICBpZiAoIXRyYW5zYWN0aW9uIHx8ICF0cmFuc2FjdGlvbi0+aW5Qcm9ncmVzcygpKSB7Cisg
ICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byBnZW5lcmF0ZSBrZXkgaW4gZGF0YWJhc2Ugd2l0
aG91dCBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiIpOworICAgICAgICByZXR1cm4geyBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8g
Z2VuZXJhdGUga2V5IGluIGRhdGFiYXNlIHdpdGhvdXQgYW4gaW4tcHJvZ3Jlc3MgdHJhbnNhY3Rp
b24iKSB9OworICAgIH0KKyAgICBpZiAodHJhbnNhY3Rpb24tPm1vZGUoKSA9PSBJbmRleGVkREI6
OlRyYW5zYWN0aW9uTW9kZTo6UmVhZE9ubHkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJBdHRlbXB0
IHRvIGdlbmVyYXRlIGtleSBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbiIpOworICAgICAgICBy
ZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwo
IkF0dGVtcHQgdG8gZ2VuZXJhdGUga2V5IGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uIikgfTsK
KyAgICB9CisKKyAgICB1aW50NjRfdCBjdXJyZW50VmFsdWU7CisgICAgYXV0byBlcnJvciA9IHVu
Y2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVlKG9iamVjdFN0b3JlSUQsIGN1cnJlbnRWYWx1ZSk7
CisgICAgaWYgKCFlcnJvci5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGVycm9yOworCisgICAg
aWYgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihjdXJyZW50VmFsdWUpID4gbWF4R2VuZXJhdG9yVmFs
dWUpCisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25zdHJhaW50RXJy
b3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJeNTMgZm9yIG9iamVjdCBz
dG9yZSBvcGVyYXRpb24iIH07CisKKyAgICBnZW5lcmF0ZWRLZXkgPSBjdXJyZW50VmFsdWUgKyAx
OworICAgIGVycm9yID0gdW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUob2JqZWN0U3RvcmVJ
RCwgZ2VuZXJhdGVkS2V5KTsKKyAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQorICAgICAgICByZXR1
cm4gZXJyb3I7CisKKyAgICByZXR1cm4geyB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OnJldmVydEdlbmVyYXRlZEtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImLCB1aW50NjRfdCwgdWludDY0X3QpCitJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OnJldmVydEdlbmVyYXRlZEtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwgdWludDY0X3Qg
bmV3S2V5TnVtYmVyKQogewotICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtu
b3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm90IGltcGxlbWVudGVkIikgfTsKKyAgICBMT0coSW5k
ZXhlZERCLCAiU1FMaXRlSURCQmFja2luZ1N0b3JlOjpyZXZlcnRHZW5lcmF0ZWRLZXlOdW1iZXIi
KTsKKworICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKKyAgICBBU1NFUlQobV9zcWxpdGVEQi0+aXNP
cGVuKCkpOworCisgICAgYXV0byogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJh
bnNhY3Rpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uIHx8ICF0cmFuc2FjdGlv
bi0+aW5Qcm9ncmVzcygpKSB7CisgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byByZXZlcnQg
a2V5IGdlbmVyYXRvciB2YWx1ZSBpbiBkYXRhYmFzZSB3aXRob3V0IGFuIGluLXByb2dyZXNzIHRy
YW5zYWN0aW9uIik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtu
b3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byByZXZlcnQga2V5IGdlbmVyYXRvciB2
YWx1ZSBpbiBkYXRhYmFzZSB3aXRob3V0IGFuIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIikgfTsK
KyAgICB9CisgICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5kZXhlZERCOjpUcmFuc2Fj
dGlvbk1vZGU6OlJlYWRPbmx5KSB7CisgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byByZXZl
cnQga2V5IGdlbmVyYXRvciB2YWx1ZSBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbiIpOworICAg
ICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxp
dGVyYWwoIkF0dGVtcHQgdG8gcmV2ZXJ0IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gYSByZWFkLW9u
bHkgdHJhbnNhY3Rpb24iKSB9OworICAgIH0KKworICAgIGF1dG8gZXJyb3IgPSB1bmNoZWNrZWRT
ZXRLZXlHZW5lcmF0b3JWYWx1ZShvYmplY3RTdG9yZUlELCBuZXdLZXlOdW1iZXIpOworICAgIGlm
ICghZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBlcnJvcjsKKworICAgIHJldHVybiB7
IH07CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlH
ZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgdWludDY0X3QsIGRv
dWJsZSkKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRhdGVLZXlHZW5l
cmF0b3JOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGRvdWJsZSBuZXdLZXlOdW1iZXIpCiB7Ci0g
ICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRl
cmFsKCJOb3QgaW1wbGVtZW50ZWQiKSB9OworICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJC
YWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyIik7CisKKyAgICBBU1NF
UlQobV9zcWxpdGVEQik7CisgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKKworICAg
IGF1dG8qIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRp
Zmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbiB8fCAhdHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3Mo
KSkgeworICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gdXBkYXRlIGtleSBnZW5lcmF0b3Ig
dmFsdWUgaW4gZGF0YWJhc2Ugd2l0aG91dCBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiIpOwor
ICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJ
SUxpdGVyYWwoIkF0dGVtcHQgdG8gdXBkYXRlIGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJh
c2Ugd2l0aG91dCBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiIpIH07CisgICAgfQorICAgIGlm
ICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpSZWFk
T25seSkgeworICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gdXBkYXRlIGtleSBnZW5lcmF0
b3IgdmFsdWUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAgcmV0dXJuIHsg
SURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0
IHRvIHVwZGF0ZSBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9u
IikgfTsKKyAgICB9CisKKyAgICB1aW50NjRfdCBjdXJyZW50VmFsdWU7CisgICAgYXV0byBlcnJv
ciA9IHVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVlKG9iamVjdFN0b3JlSUQsIGN1cnJlbnRW
YWx1ZSk7CisgICAgaWYgKCFlcnJvci5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGVycm9yOwor
CisgICAgaWYgKG5ld0tleU51bWJlciA8PSBjdXJyZW50VmFsdWUpCisgICAgICAgIHJldHVybiB7
IH07CisKKyAgICB1aW50NjRfdCBuZXdLZXlJbnRlZ2VyKG5ld0tleU51bWJlcik7CisgICAgaWYg
KG5ld0tleUludGVnZXIgPD0gdWludDY0X3QobmV3S2V5TnVtYmVyKSkKKyAgICAgICAgKytuZXdL
ZXlJbnRlZ2VyOworCisgICAgQVNTRVJUKG5ld0tleUludGVnZXIgPiB1aW50NjRfdChuZXdLZXlO
dW1iZXIpKTsKKworICAgIGVycm9yID0gdW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUob2Jq
ZWN0U3RvcmVJRCwgbmV3S2V5SW50ZWdlcik7CisgICAgaWYgKCFlcnJvci5pc051bGwoKSkKKyAg
ICAgICAgcmV0dXJuIGVycm9yOworCisgICAgcmV0dXJuIHsgfTsKIH0KIAogSURCRXJyb3IgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiBpbmZvLCBJREJH
ZXRSZXN1bHQmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAppbmRleCBmOWY4
MmViLi4zZDIxM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCkBAIC04OSw2ICs4
OSw4IEBAIHByaXZhdGU6CiAgICAgSURCRXJyb3IgZGVsZXRlUmVjb3JkKFNRTGl0ZUlEQlRyYW5z
YWN0aW9uJiwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlEYXRhJik7CiAgICAg
SURCRXJyb3IgdW5jaGVja2VkUHV0SW5kZXhSZWNvcmQoaW50NjRfdCBvYmplY3RTdG9yZUlELCBp
bnQ2NF90IGluZGV4SUQsIGNvbnN0IElEQktleURhdGEmIGtleVZhbHVlLCBjb25zdCBJREJLZXlE
YXRhJiBpbmRleEtleSk7CiAgICAgSURCRXJyb3IgdW5jaGVja2VkSGFzSW5kZXhSZWNvcmQoaW50
NjRfdCBpbmRleElELCBjb25zdCBJREJLZXlEYXRhJiwgYm9vbCYgaGFzUmVjb3JkKTsKKyAgICBJ
REJFcnJvciB1bmNoZWNrZWRHZXRLZXlHZW5lcmF0b3JWYWx1ZShpbnQ2NF90IG9iamVjdFN0b3Jl
SUQsIHVpbnQ2NF90JiBvdXRWYWx1ZSk7CisgICAgSURCRXJyb3IgdW5jaGVja2VkU2V0S2V5R2Vu
ZXJhdG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yZUlELCB1aW50NjRfdCB2YWx1ZSk7CiAKICAg
ICBJREJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxJREJEYXRhYmFzZUluZm8+IG1fZGF0YWJhc2VJbmZvOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>269956</attachid>
            <date>2016-01-26 17:19:44 -0800</date>
            <delta_ts>2016-01-26 18:26:07 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12857</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNWFmZjlhLi43Y2NiYzA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTYtMDEt
MjYgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REI6IEtleSBnZW5lcmF0b3Igc3VwcG9ydCBmb3IgU1FMaXRlIGJhY2tlbmQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0MjcKKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdr
MS9UZXN0RXhwZWN0YXRpb25zOgorCisyMDE2LTAxLTI2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29u
QGFwcGxlLmNvbT4KKwogICAgICAgICBIaXN0b3J5LnB1c2hTdGF0ZSBjYXVzZXMgaW50ZW5zZSBt
ZW1vcnkgcHJlc3N1cmUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTM0MzUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
MS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDZhYTBiMDYuLmE2ZjEzNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ3MCw3ICs0NzAsNiBAQCBzdG9yYWdl
L2luZGV4ZWRkYi9jdXJzb3ItcHJpbWFyeS1rZXktb3JkZXIuaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIvY3Vyc29yLXByb3BlcnRpZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFn
ZS9pbmRleGVkZGIvY3Vyc29yLXJldmVyc2UtYnVnLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiL2N1cnNvci1za2lwLWRlbGV0ZWQuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9p
bmRleGVkZGIvY3Vyc29yLXVwZGF0ZS12YWx1ZS1hcmd1bWVudC1yZXF1aXJlZC5odG1sIFsgRmFp
bHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLmh0bWwgWyBGYWlsdXJlIF0K
IHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci12YWx1ZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdl
L2luZGV4ZWRkYi9kZWxldGUtcmFuZ2UuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNDg5LDEyICs0ODgs
MTAgQEAgc3RvcmFnZS9pbmRleGVkZGIva2V5LWdlbmVyYXRvci5odG1sIFsgRmFpbHVyZSBdCiBz
dG9yYWdlL2luZGV4ZWRkYi9rZXktc29ydC1vcmRlci1hY3Jvc3MtdHlwZXMuaHRtbCBbIEZhaWx1
cmUgXQogc3RvcmFnZS9pbmRleGVkZGIva2V5LXNvcnQtb3JkZXItZGF0ZS5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFycmF5cy5odG1sIFsgRmFpbHVyZSBdCi1z
dG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWVkZ2VzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiL2tleXBhdGgtZmV0Y2gta2V5Lmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5k
ZXhlZGRiL2tleXBhdGgtaW50cmluc2ljLXByb3BlcnRpZXMuaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIvbGF6eS1pbmRleC1wb3B1bGF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIHN0
b3JhZ2UvaW5kZXhlZGRiL2xhenktaW5kZXgtdHlwZXMuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2F1dG9pbmNyZW1lbnQtYWJvcnQuaHRtbCBbIEZhaWx1cmUgXQog
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2N1cnNvci0xLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItMi5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vY3Vyc29yLTMuaHRtbCBbIEZhaWx1cmUgXQpAQCAtNTA2LDggKzUwMyw2
IEBAIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9jdXJzb3ItOC5odG1sIFsgRmFpbHVyZSBdCiBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMS5odG1sIFsgRmFpbHVyZSBdCiBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlaW5kZXgtMi5odG1sIFsgRmFpbHVyZSBdCiBz
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWtleXJhbmdlLmh0bWwgWyBGYWlsdXJlIF0KLXN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jbGVhci0xLmh0bWwgWyBGYWls
dXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1jbGVhci0yLmh0
bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1k
ZWxldGUtMS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgt
MS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaW5kZXgtMi5odG1s
IFsgRmFpbHVyZSBdCkBAIC01MjYsMTcgKzUyMSw5IEBAIHN0b3JhZ2UvaW5kZXhlZGRiL21vemls
bGEvY3Vyc29yLW11dGF0aW9uLW9iamVjdHN0b3JlLW9ubHkuaHRtbCBbIEZhaWx1cmUgXQogc3Rv
cmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24uaHRtbCBbIEZhaWx1cmUgXQog
c3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItdXBkYXRlLXVwZGF0ZXMtaW5kZXhlcy5o
dG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvcnMuaHRtbCBb
IEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9kZWxldGUtcmVzdWx0Lmh0bWwg
WyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvZXZlbnQtc291cmNlLmh0bWwg
WyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXgtcHJldi1uby1kdXBs
aWNhdGUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleGVz
Lmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEva2V5LXJlcXVpcmVt
ZW50cy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29iamVjdC1j
dXJzb3JzLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvb2JqZWN0
LXN0b3JlLWlubGluZS1hdXRvaW5jcmVtZW50LWtleS1hZGRlZC1vbi1wdXQuaHRtbCBbIEZhaWx1
cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9vYmplY3Qtc3RvcmUtcmVtb3ZlLXZhbHVl
cy5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL29kZC1yZXN1bHQt
b3JkZXIuaHRtbCBbIEZhaWx1cmUgXQotc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9wdXQtZ2V0
LXZhbHVlcy5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL3JlYWR3
cml0ZS10cmFuc2FjdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96
aWxsYS9yZW1vdmUtb2JqZWN0c3RvcmUuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVk
ZGIvbXV0YXRpbmctY3Vyc29yLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLWF1dG9pbmNyZW1lbnQuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGVi
ZmE3NjcuLmI3NDc2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyMiBAQAogMjAxNi0wMS0yNiAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKKyAgICAgICAgTW9kZXJuIElEQjog
S2V5IGdlbmVyYXRvciBzdXBwb3J0IGZvciBTUUxpdGUgYmFja2VuZC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzQyNworCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChFeGlzdGlu
ZyBmYWlsaW5nIHRlc3RzIG5vdyBwYXNzLCBvdGhlcnMgaW1wcm92ZWQpLgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2Vk
R2V0S2V5R2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxp
dGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtl
eU51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjptYXliZVVwZGF0ZUtleUdlbmVyYXRvck51bWJl
cik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5oOgorCisyMDE2LTAxLTI2ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
KwogICAgICAgICBIaXN0b3J5LnB1c2hTdGF0ZSBjYXVzZXMgaW50ZW5zZSBtZW1vcnkgcHJlc3N1
cmUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM0
MzUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAppbmRleCA1OWFiZGY4Li45MzY2
MGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApAQCAtMTE4MCwxOSArMTE4
MCwxMjYgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZXRDb3VudChjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW8KICAgICByZXR1cm4geyB9OwogfQogCi1J
REJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYsIHVpbnQ2NF90LCB1aW50NjRfdCYpCitJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVlKGludDY0X3Qg
b2JqZWN0U3RvcmVJRCwgdWludDY0X3QmIG91dFZhbHVlKQogewotICAgIHJldHVybiB7IElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm90IGltcGxlbWVu
dGVkIikgfTsKKyAgICBTUUxpdGVTdGF0ZW1lbnQgc3FsKCptX3NxbGl0ZURCLCBBU0NJSUxpdGVy
YWwoIlNFTEVDVCBjdXJyZW50S2V5IEZST00gS2V5R2VuZXJhdG9ycyBXSEVSRSBvYmplY3RTdG9y
ZUlEID0gPzsiKSk7CisgICAgaWYgKHNxbC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LCisgICAgICAg
IHx8IHNxbC5iaW5kSW50NjQoMSwgb2JqZWN0U3RvcmVJRCkgIT0gU1FMSVRFX09LKSB7CisgICAg
ICAgIExPR19FUlJPUigiQ291bGQgbm90IHJldHJpZXZlIGN1cnJlbnRLZXkgZnJvbSBLZXlHZW5l
cmF0b3JzIHRhYmxlICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0
ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiRXJyb3IgZ2V0dGluZyBjdXJyZW50IGtl
eSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSIpIH07CisgICAgfQorICAgIGludCByZXN1
bHQgPSBzcWwuc3RlcCgpOworICAgIGlmIChyZXN1bHQgIT0gU1FMSVRFX1JPVykgeworICAgICAg
ICBMT0dfRVJST1IoIkNvdWxkIG5vdCByZXRyZWl2ZSBrZXkgZ2VuZXJhdG9yIHZhbHVlIGZvciBv
YmplY3Qgc3RvcmUsIGJ1dCBpdCBzaG91bGQgYmUgdGhlcmUuIik7CisgICAgICAgIHJldHVybiB7
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiRXJyb3Ig
ZmluZGluZyBjdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiKSB9OworICAg
IH0KKworICAgIGludDY0X3QgdmFsdWUgPSBzcWwuZ2V0Q29sdW1uSW50NjQoMCk7CisgICAgaWYg
KHZhbHVlIDwgMCkKKyAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0
cmFpbnRFcnJvciwgIkN1cnJlbnQga2V5IGdlbmVyYXRvciB2YWx1ZSBmcm9tIGRhdGFiYXNlIGlz
IGludmFsaWQiIH07CisKKyAgICBvdXRWYWx1ZSA9IHZhbHVlOworICAgIHJldHVybiB7IH07Cit9
CisKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJh
dG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yZUlELCB1aW50NjRfdCB2YWx1ZSkKK3sKKyAgICBT
UUxpdGVTdGF0ZW1lbnQgc3FsKCptX3NxbGl0ZURCLCBBU0NJSUxpdGVyYWwoIklOU0VSVCBJTlRP
IEtleUdlbmVyYXRvcnMgVkFMVUVTICg/LCA/KTsiKSk7CisgICAgaWYgKHNxbC5wcmVwYXJlKCkg
IT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwgb2JqZWN0U3RvcmVJRCkg
IT0gU1FMSVRFX09LCisgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMiwgdmFsdWUpICE9IFNRTElU
RV9PSworICAgICAgICB8fCBzcWwuc3RlcCgpICE9IFNRTElURV9ET05FKSB7CisgICAgICAgIExP
R19FUlJPUigiQ291bGQgbm90IHVwZGF0ZSBrZXkgZ2VuZXJhdG9yIHZhbHVlICglaSkgLSAlcyIs
IG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpDb25zdHJhaW50RXJyb3IsICJF
cnJvciBzdG9yaW5nIG5ldyBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGRhdGFiYXNlIiB9OworICAg
IH0KKworICAgIHJldHVybiB7IH07Cit9CisKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIHVpbnQ2NF90JiBnZW5lcmF0
ZWRLZXkpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2Vu
ZXJhdGVLZXlOdW1iZXIiKTsKKworICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKKyAgICBBU1NFUlQo
bV9zcWxpdGVEQi0+aXNPcGVuKCkpOworCisgICAgLy8gVGhlIEluZGV4ZWREYXRhYmFzZSBzcGVj
IGRlZmluZXMgdGhlIG1heCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGFzIDJeNTM7CisgICAgc3RhdGlj
IHVpbnQ2NF90IG1heEdlbmVyYXRvclZhbHVlID0gMHgyMDAwMDAwMDAwMDAwMDsKKworICAgIGF1
dG8qIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWRlbnRpZmll
cik7CisgICAgaWYgKCF0cmFuc2FjdGlvbiB8fCAhdHJhbnNhY3Rpb24tPmluUHJvZ3Jlc3MoKSkg
eworICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gZ2VuZXJhdGUga2V5IGluIGRhdGFiYXNl
IHdpdGhvdXQgYW4gaW4tcHJvZ3Jlc3MgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAgcmV0dXJuIHsg
SURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0
IHRvIGdlbmVyYXRlIGtleSBpbiBkYXRhYmFzZSB3aXRob3V0IGFuIGluLXByb2dyZXNzIHRyYW5z
YWN0aW9uIikgfTsKKyAgICB9CisgICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSW5kZXhl
ZERCOjpUcmFuc2FjdGlvbk1vZGU6OlJlYWRPbmx5KSB7CisgICAgICAgIExPR19FUlJPUigiQXR0
ZW1wdCB0byBnZW5lcmF0ZSBrZXkgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24iKTsKKyAgICAg
ICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRl
cmFsKCJBdHRlbXB0IHRvIGdlbmVyYXRlIGtleSBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbiIp
IH07CisgICAgfQorCisgICAgdWludDY0X3QgY3VycmVudFZhbHVlOworICAgIGF1dG8gZXJyb3Ig
PSB1bmNoZWNrZWRHZXRLZXlHZW5lcmF0b3JWYWx1ZShvYmplY3RTdG9yZUlELCBjdXJyZW50VmFs
dWUpOworICAgIGlmICghZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBlcnJvcjsKKwor
ICAgIGlmIChjdXJyZW50VmFsdWUgPiBtYXhHZW5lcmF0b3JWYWx1ZSkKKyAgICAgICAgcmV0dXJu
IHsgSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0
ZSBuZXcga2V5IHZhbHVlIG92ZXIgMl41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiIgfTsK
KworICAgIGdlbmVyYXRlZEtleSA9IGN1cnJlbnRWYWx1ZSArIDE7CisgICAgcmV0dXJuIHVuY2hl
Y2tlZFNldEtleUdlbmVyYXRvclZhbHVlKG9iamVjdFN0b3JlSUQsIGdlbmVyYXRlZEtleSk7CiB9
CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVt
YmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIHVpbnQ2NF90LCB1aW50NjRfdCkKK0lE
QkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6cmV2ZXJ0R2VuZXJhdGVkS2V5TnVtYmVyKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlELCB1aW50NjRfdCBuZXdLZXlOdW1iZXIpCiB7Ci0gICAgcmV0dXJuIHsg
SURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJOb3QgaW1w
bGVtZW50ZWQiKSB9OworICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6
OnJldmVydEdlbmVyYXRlZEtleU51bWJlciIpOworCisgICAgQVNTRVJUKG1fc3FsaXRlREIpOwor
ICAgIEFTU0VSVChtX3NxbGl0ZURCLT5pc09wZW4oKSk7CisKKyAgICBhdXRvKiB0cmFuc2FjdGlv
biA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkZW50aWZpZXIpOworICAgIGlmICgh
dHJhbnNhY3Rpb24gfHwgIXRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJBdHRlbXB0IHRvIHJldmVydCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGRhdGFiYXNl
IHdpdGhvdXQgYW4gaW4tcHJvZ3Jlc3MgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAgcmV0dXJuIHsg
SURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0
IHRvIHJldmVydCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGRhdGFiYXNlIHdpdGhvdXQgYW4gaW4t
cHJvZ3Jlc3MgdHJhbnNhY3Rpb24iKSB9OworICAgIH0KKyAgICBpZiAodHJhbnNhY3Rpb24tPm1v
ZGUoKSA9PSBJbmRleGVkREI6OlRyYW5zYWN0aW9uTW9kZTo6UmVhZE9ubHkpIHsKKyAgICAgICAg
TE9HX0VSUk9SKCJBdHRlbXB0IHRvIHJldmVydCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGEgcmVh
ZC1vbmx5IHRyYW5zYWN0aW9uIik7CisgICAgICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byByZXZlcnQga2V5IGdl
bmVyYXRvciB2YWx1ZSBpbiBhIHJlYWQtb25seSB0cmFuc2FjdGlvbiIpIH07CisgICAgfQorCisg
ICAgcmV0dXJuIHVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKG9iamVjdFN0b3JlSUQsIG5l
d0tleU51bWJlcik7CiB9CiAKLUlEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVV
cGRhdGVLZXlHZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgdWlu
dDY0X3QsIGRvdWJsZSkKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6bWF5YmVVcGRh
dGVLZXlHZW5lcmF0b3JOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGRvdWJsZSBuZXdLZXlOdW1i
ZXIpCiB7Ci0gICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwg
QVNDSUlMaXRlcmFsKCJOb3QgaW1wbGVtZW50ZWQiKSB9OworICAgIExPRyhJbmRleGVkREIsICJT
UUxpdGVJREJCYWNraW5nU3RvcmU6Om1heWJlVXBkYXRlS2V5R2VuZXJhdG9yTnVtYmVyIik7CisK
KyAgICBBU1NFUlQobV9zcWxpdGVEQik7CisgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3Blbigp
KTsKKworICAgIGF1dG8qIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0
aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF0cmFuc2FjdGlvbiB8fCAhdHJhbnNhY3Rpb24tPmlu
UHJvZ3Jlc3MoKSkgeworICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gdXBkYXRlIGtleSBn
ZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2Ugd2l0aG91dCBhbiBpbi1wcm9ncmVzcyB0cmFuc2Fj
dGlvbiIpOworICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVy
cm9yLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gdXBkYXRlIGtleSBnZW5lcmF0b3IgdmFsdWUg
aW4gZGF0YWJhc2Ugd2l0aG91dCBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiIpIH07CisgICAg
fQorICAgIGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25N
b2RlOjpSZWFkT25seSkgeworICAgICAgICBMT0dfRVJST1IoIkF0dGVtcHQgdG8gdXBkYXRlIGtl
eSBnZW5lcmF0b3IgdmFsdWUgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24iKTsKKyAgICAgICAg
cmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFs
KCJBdHRlbXB0IHRvIHVwZGF0ZSBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGEgcmVhZC1vbmx5IHRy
YW5zYWN0aW9uIikgfTsKKyAgICB9CisKKyAgICB1aW50NjRfdCBjdXJyZW50VmFsdWU7CisgICAg
YXV0byBlcnJvciA9IHVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVlKG9iamVjdFN0b3JlSUQs
IGN1cnJlbnRWYWx1ZSk7CisgICAgaWYgKCFlcnJvci5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
IGVycm9yOworCisgICAgaWYgKG5ld0tleU51bWJlciA8PSBjdXJyZW50VmFsdWUpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICB1aW50NjRfdCBuZXdLZXlJbnRlZ2VyKG5ld0tleU51bWJlcik7
CisgICAgaWYgKG5ld0tleUludGVnZXIgPD0gdWludDY0X3QobmV3S2V5TnVtYmVyKSkKKyAgICAg
ICAgKytuZXdLZXlJbnRlZ2VyOworCisgICAgQVNTRVJUKG5ld0tleUludGVnZXIgPiB1aW50NjRf
dChuZXdLZXlOdW1iZXIpKTsKKworICAgIHJldHVybiB1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JW
YWx1ZShvYmplY3RTdG9yZUlELCBuZXdLZXlJbnRlZ2VyKTsKIH0KIAogSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJDdXJzb3JJbmZvJiBpbmZvLCBJREJHZXRS
ZXN1bHQmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAppbmRleCBmOWY4MmVi
Li4zZDIxM2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCkBAIC04OSw2ICs4OSw4
IEBAIHByaXZhdGU6CiAgICAgSURCRXJyb3IgZGVsZXRlUmVjb3JkKFNRTGl0ZUlEQlRyYW5zYWN0
aW9uJiwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlEYXRhJik7CiAgICAgSURC
RXJyb3IgdW5jaGVja2VkUHV0SW5kZXhSZWNvcmQoaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2
NF90IGluZGV4SUQsIGNvbnN0IElEQktleURhdGEmIGtleVZhbHVlLCBjb25zdCBJREJLZXlEYXRh
JiBpbmRleEtleSk7CiAgICAgSURCRXJyb3IgdW5jaGVja2VkSGFzSW5kZXhSZWNvcmQoaW50NjRf
dCBpbmRleElELCBjb25zdCBJREJLZXlEYXRhJiwgYm9vbCYgaGFzUmVjb3JkKTsKKyAgICBJREJF
cnJvciB1bmNoZWNrZWRHZXRLZXlHZW5lcmF0b3JWYWx1ZShpbnQ2NF90IG9iamVjdFN0b3JlSUQs
IHVpbnQ2NF90JiBvdXRWYWx1ZSk7CisgICAgSURCRXJyb3IgdW5jaGVja2VkU2V0S2V5R2VuZXJh
dG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yZUlELCB1aW50NjRfdCB2YWx1ZSk7CiAKICAgICBJ
REJEYXRhYmFzZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
REJEYXRhYmFzZUluZm8+IG1fZGF0YWJhc2VJbmZvOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>