<?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>149117</bug_id>
          
          <creation_ts>2015-09-14 10:13:50 -0700</creation_ts>
          <short_desc>Modern IDB Implementation</short_desc>
          <delta_ts>2017-10-04 05:04:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=154968</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=165889</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>139173</dependson>
    
    <dependson>143193</dependson>
    
    <dependson>149107</dependson>
    
    <dependson>149118</dependson>
    
    <dependson>149191</dependson>
    
    <dependson>149205</dependson>
    
    <dependson>149229</dependson>
    
    <dependson>149234</dependson>
    
    <dependson>149558</dependson>
    
    <dependson>149603</dependson>
    
    <dependson>149651</dependson>
    
    <dependson>149678</dependson>
    
    <dependson>149861</dependson>
    
    <dependson>149928</dependson>
    
    <dependson>149953</dependson>
    
    <dependson>150033</dependson>
    
    <dependson>150147</dependson>
    
    <dependson>150148</dependson>
    
    <dependson>150149</dependson>
    
    <dependson>150150</dependson>
    
    <dependson>150246</dependson>
    
    <dependson>150402</dependson>
    
    <dependson>150455</dependson>
    
    <dependson>150468</dependson>
    
    <dependson>150543</dependson>
    
    <dependson>150607</dependson>
    
    <dependson>150614</dependson>
    
    <dependson>150617</dependson>
    
    <dependson>150673</dependson>
    
    <dependson>150695</dependson>
    
    <dependson>150711</dependson>
    
    <dependson>150718</dependson>
    
    <dependson>150733</dependson>
    
    <dependson>150735</dependson>
    
    <dependson>150743</dependson>
    
    <dependson>150784</dependson>
    
    <dependson>150785</dependson>
    
    <dependson>150804</dependson>
    
    <dependson>150805</dependson>
    
    <dependson>150815</dependson>
    
    <dependson>150839</dependson>
    
    <dependson>150854</dependson>
    
    <dependson>150868</dependson>
    
    <dependson>150882</dependson>
    
    <dependson>150910</dependson>
    
    <dependson>150911</dependson>
    
    <dependson>150939</dependson>
    
    <dependson>150985</dependson>
    
    <dependson>151014</dependson>
    
    <dependson>151196</dependson>
    
    <dependson>151197</dependson>
    
    <dependson>151219</dependson>
    
    <dependson>151278</dependson>
    
    <dependson>151341</dependson>
    
    <dependson>151364</dependson>
    
    <dependson>151389</dependson>
    
    <dependson>151421</dependson>
    
    <dependson>151448</dependson>
    
    <dependson>151456</dependson>
    
    <dependson>151481</dependson>
    
    <dependson>151484</dependson>
    
    <dependson>151522</dependson>
    
    <dependson>151550</dependson>
    
    <dependson>151557</dependson>
    
    <dependson>151627</dependson>
    
    <dependson>151630</dependson>
    
    <dependson>151640</dependson>
    
    <dependson>151645</dependson>
    
    <dependson>151647</dependson>
    
    <dependson>151648</dependson>
    
    <dependson>151664</dependson>
    
    <dependson>151665</dependson>
    
    <dependson>151675</dependson>
    
    <dependson>151683</dependson>
    
    <dependson>151684</dependson>
    
    <dependson>151693</dependson>
    
    <dependson>151694</dependson>
    
    <dependson>151704</dependson>
    
    <dependson>151720</dependson>
    
    <dependson>151725</dependson>
    
    <dependson>151731</dependson>
    
    <dependson>151732</dependson>
    
    <dependson>151752</dependson>
    
    <dependson>151753</dependson>
    
    <dependson>151766</dependson>
    
    <dependson>151772</dependson>
    
    <dependson>151794</dependson>
    
    <dependson>151807</dependson>
    
    <dependson>151847</dependson>
    
    <dependson>151850</dependson>
    
    <dependson>151870</dependson>
    
    <dependson>151879</dependson>
    
    <dependson>151880</dependson>
    
    <dependson>151895</dependson>
    
    <dependson>151898</dependson>
    
    <dependson>151912</dependson>
    
    <dependson>151948</dependson>
    
    <dependson>151961</dependson>
    
    <dependson>151966</dependson>
    
    <dependson>151968</dependson>
    
    <dependson>151973</dependson>
    
    <dependson>152007</dependson>
    
    <dependson>152015</dependson>
    
    <dependson>152023</dependson>
    
    <dependson>152078</dependson>
    
    <dependson>152092</dependson>
    
    <dependson>152095</dependson>
    
    <dependson>152096</dependson>
    
    <dependson>152099</dependson>
    
    <dependson>152101</dependson>
    
    <dependson>152144</dependson>
    
    <dependson>152167</dependson>
    
    <dependson>152175</dependson>
    
    <dependson>152177</dependson>
    
    <dependson>152179</dependson>
    
    <dependson>152187</dependson>
    
    <dependson>152190</dependson>
    
    <dependson>152192</dependson>
    
    <dependson>152194</dependson>
    
    <dependson>152201</dependson>
    
    <dependson>152205</dependson>
    
    <dependson>152217</dependson>
    
    <dependson>152264</dependson>
    
    <dependson>152344</dependson>
    
    <dependson>152351</dependson>
    
    <dependson>152355</dependson>
    
    <dependson>152397</dependson>
    
    <dependson>152405</dependson>
    
    <dependson>152441</dependson>
    
    <dependson>152481</dependson>
    
    <dependson>152554</dependson>
    
    <dependson>152577</dependson>
    
    <dependson>152593</dependson>
    
    <dependson>152600</dependson>
    
    <dependson>152698</dependson>
    
    <dependson>152717</dependson>
    
    <dependson>152735</dependson>
    
    <dependson>152763</dependson>
    
    <dependson>152775</dependson>
    
    <dependson>152795</dependson>
    
    <dependson>152800</dependson>
    
    <dependson>152822</dependson>
    
    <dependson>152824</dependson>
    
    <dependson>152827</dependson>
    
    <dependson>152835</dependson>
    
    <dependson>152849</dependson>
    
    <dependson>152866</dependson>
    
    <dependson>152875</dependson>
    
    <dependson>152891</dependson>
    
    <dependson>152892</dependson>
    
    <dependson>152896</dependson>
    
    <dependson>152921</dependson>
    
    <dependson>152929</dependson>
    
    <dependson>152936</dependson>
    
    <dependson>152966</dependson>
    
    <dependson>152976</dependson>
    
    <dependson>152981</dependson>
    
    <dependson>152990</dependson>
    
    <dependson>152995</dependson>
    
    <dependson>153021</dependson>
    
    <dependson>153022</dependson>
    
    <dependson>153038</dependson>
    
    <dependson>153084</dependson>
    
    <dependson>153178</dependson>
    
    <dependson>153179</dependson>
    
    <dependson>153181</dependson>
    
    <dependson>153237</dependson>
    
    <dependson>153251</dependson>
    
    <dependson>153257</dependson>
    
    <dependson>153272</dependson>
    
    <dependson>153284</dependson>
    
    <dependson>153318</dependson>
    
    <dependson>153319</dependson>
    
    <dependson>153323</dependson>
    
    <dependson>153359</dependson>
    
    <dependson>153375</dependson>
    
    <dependson>153381</dependson>
    
    <dependson>153396</dependson>
    
    <dependson>153410</dependson>
    
    <dependson>153415</dependson>
    
    <dependson>153418</dependson>
    
    <dependson>153425</dependson>
    
    <dependson>153427</dependson>
    
    <dependson>153438</dependson>
    
    <dependson>153548</dependson>
    
    <dependson>153558</dependson>
    
    <dependson>153561</dependson>
    
    <dependson>153569</dependson>
    
    <dependson>153596</dependson>
    
    <dependson>153604</dependson>
    
    <dependson>153614</dependson>
    
    <dependson>153616</dependson>
    
    <dependson>153623</dependson>
    
    <dependson>153625</dependson>
    
    <dependson>153652</dependson>
    
    <dependson>153661</dependson>
    
    <dependson>153666</dependson>
    
    <dependson>153688</dependson>
    
    <dependson>153724</dependson>
    
    <dependson>153783</dependson>
    
    <dependson>153790</dependson>
    
    <dependson>153791</dependson>
    
    <dependson>153800</dependson>
    
    <dependson>153808</dependson>
    
    <dependson>153912</dependson>
    
    <dependson>154032</dependson>
    
    <dependson>154054</dependson>
    
    <dependson>154061</dependson>
    
    <dependson>154110</dependson>
    
    <dependson>154153</dependson>
    
    <dependson>154187</dependson>
    
    <dependson>154296</dependson>
    
    <dependson>154317</dependson>
    
    <dependson>154351</dependson>
    
    <dependson>154356</dependson>
    
    <dependson>154363</dependson>
    
    <dependson>154400</dependson>
    
    <dependson>154411</dependson>
    
    <dependson>154421</dependson>
    
    <dependson>154429</dependson>
    
    <dependson>154460</dependson>
    
    <dependson>154686</dependson>
    
    <dependson>154706</dependson>
    
    <dependson>154735</dependson>
    
    <dependson>154741</dependson>
    
    <dependson>154747</dependson>
    
    <dependson>154748</dependson>
    
    <dependson>154756</dependson>
    
    <dependson>154860</dependson>
    
    <dependson>154922</dependson>
    
    <dependson>155068</dependson>
    
    <dependson>155951</dependson>
    
    <dependson>156242</dependson>
    
    <dependson>156248</dependson>
    
    <dependson>156264</dependson>
    
    <dependson>156321</dependson>
    
    <dependson>156367</dependson>
    
    <dependson>156416</dependson>
    
    <dependson>156418</dependson>
    
    <dependson>156472</dependson>
    
    <dependson>156478</dependson>
    
    <dependson>156511</dependson>
    
    <dependson>156523</dependson>
    
    <dependson>156640</dependson>
    
    <dependson>156760</dependson>
    
    <dependson>156782</dependson>
    
    <dependson>156810</dependson>
    
    <dependson>156826</dependson>
    
    <dependson>156855</dependson>
    
    <dependson>156868</dependson>
    
    <dependson>156877</dependson>
    
    <dependson>156883</dependson>
    
    <dependson>156916</dependson>
    
    <dependson>156925</dependson>
    
    <dependson>156939</dependson>
    
    <dependson>157072</dependson>
    
    <dependson>157141</dependson>
    
    <dependson>157289</dependson>
    
    <dependson>157330</dependson>
    
    <dependson>157448</dependson>
    
    <dependson>157494</dependson>
    
    <dependson>157498</dependson>
    
    <dependson>157525</dependson>
    
    <dependson>157600</dependson>
    
    <dependson>157626</dependson>
    
    <dependson>157757</dependson>
    
    <dependson>157823</dependson>
    
    <dependson>157843</dependson>
    
    <dependson>157915</dependson>
    
    <dependson>157917</dependson>
    
    <dependson>157947</dependson>
    
    <dependson>157980</dependson>
    
    <dependson>158004</dependson>
    
    <dependson>158038</dependson>
    
    <dependson>158089</dependson>
    
    <dependson>158093</dependson>
    
    <dependson>158124</dependson>
    
    <dependson>158160</dependson>
    
    <dependson>158353</dependson>
    
    <dependson>158391</dependson>
    
    <dependson>158446</dependson>
    
    <dependson>158894</dependson>
    
    <dependson>158991</dependson>
    
    <dependson>159094</dependson>
    
    <dependson>159360</dependson>
    
    <dependson>159371</dependson>
    
    <dependson>159432</dependson>
    
    <dependson>159471</dependson>
    
    <dependson>160089</dependson>
    
    <dependson>160463</dependson>
    
    <dependson>177861</dependson>
          <blocked>151925</blocked>
    
    <blocked>152933</blocked>
    
    <blocked>153343</blocked>
    
    <blocked>153382</blocked>
    
    <blocked>156344</blocked>
    
    <blocked>156347</blocked>
    
    <blocked>157958</blocked>
    
    <blocked>158532</blocked>
    
    <blocked>151296</blocked>
    
    <blocked>151890</blocked>
    
    <blocked>152643</blocked>
    
    <blocked>154129</blocked>
    
    <blocked>154457</blocked>
    
    <blocked>156438</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>kyawtun</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1125606</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-14 10:13:50 -0700</bug_when>
    <thetext>Instead of continuing to try to shoehorn the legacy IDB implementation into the WK2 process model, moving it farther from being able to work in WK1 also, we should start &quot;from scratch&quot;

Not really from scratch, because the bindings are in place, and the backing store is in place.

But everything in-between has always needed modernization with an architecture overhaul.

&lt;rdar://problem/21911093&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130730</commentid>
    <comment_count>1</comment_count>
      <attachid>262459</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-05 14:18:19 -0700</bug_when>
    <thetext>Created attachment 262459
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1130731</commentid>
    <comment_count>2</comment_count>
      <attachid>262459</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-05 14:19:45 -0700</bug_when>
    <thetext>Comment on attachment 262459
Patch v1

Attached to wrong bug lol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1154712</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-12 09:12:45 -0800</bug_when>
    <thetext>*** Bug 136937 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>262459</attachid>
            <date>2015-10-05 14:18:19 -0700</date>
            <delta_ts>2015-11-05 14:34:13 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12823</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlYjBhZGM5Li44NjFlYzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTUtMTAtMDUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybml6ZSBJREJSZXF1ZXN0OjpSZWFkeVN0YXRlIGludG8gYW4gZW51bSBjbGFzcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTgxNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cyAoUmVmYWN0b3IsIG5vIGJlaGF2aW9yIGNoYW5nZSkuCisKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2xlZ2FjeS9MZWdhY3lPcGVuREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeU9wZW5EQlJlcXVlc3Q6OnNob3VsZEVucXVldWVFdmVudCk6CisgICAgICAgIAorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVJlcXVlc3Q6OkxlZ2FjeVJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGVnYWN5UmVxdWVzdDo6cmVzdWx0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJl
cXVlc3Q6OmVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlcXVlc3Q6OmVycm9yQ29k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZXF1ZXN0OjpyZWFkeVN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVJlcXVlc3Q6Om1hcmtFYXJseURlYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6OkxlZ2FjeVJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJl
cXVlc3Q6OnNldEN1cnNvckRldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVxdWVz
dDo6c2V0UGVuZGluZ0N1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZXF1ZXN0Ojpz
ZXRSZXN1bHRDdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5UmVxdWVzdDo6ZmluaXNo
Q3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVJlcXVlc3Q6OnNob3VsZEVucXVldWVF
dmVudCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lSZXF1ZXN0OjpzdG9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkxlZ2FjeVJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5UmVxdWVzdDo6dHJhbnNhY3Rpb25EaWRGaW5pc2hBbmREaXNwYXRjaCk6CisgICAg
ICAgIChXZWJDb3JlOjpMZWdhY3lSZXF1ZXN0OjplbnF1ZXVlRXZlbnQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lSZXF1ZXN0Lmg6CisKIDIwMTUtMTAtMDUgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQg
SGlzdG9yeUl0ZW06OnBhcmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5oCmluZGV4IDhhNDQ1MDMuLmYzMTA5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTQ0LDYgKzQ0LDEzIEBAIGNsYXNz
IElEQlRyYW5zYWN0aW9uOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCisvLyBEZWZp
bmVkIGluIHRoZSBJREwKK2VudW0gY2xhc3MgSURCUmVxdWVzdFJlYWR5U3RhdGUgeworICAgIFBl
bmRpbmcgPSAxLAorICAgIERvbmUgPSAyLAorICAgIERlcHJlY2F0ZWRFYXJseURlYXRoID0gMywg
Ly8gRklYTUU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDkxMTcg
LSBSZW1vdmUgdGhpcyB3aGVuIHJlbW92aW5nIExlZ2FjeUlEQgorfTsKKwogY2xhc3MgSURCUmVx
dWVzdCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxp
bmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5J
REJSZXF1ZXN0KCkgeyB9CkBAIC01NCwxMyArNjEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBS
ZWZQdHI8SURCQW55PiBzb3VyY2UoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8SURC
VHJhbnNhY3Rpb24+IHRyYW5zYWN0aW9uKCkgY29uc3QgPSAwOwogCi0gICAgLy8gRGVmaW5lZCBp
biB0aGUgSURMCi0gICAgZW51bSBSZWFkeVN0YXRlIHsKLSAgICAgICAgUEVORElORyA9IDEsCi0g
ICAgICAgIERPTkUgPSAyLAotICAgICAgICBFYXJseURlYXRoID0gMwotICAgIH07Ci0KICAgICB2
aXJ0dWFsIGNvbnN0IFN0cmluZyYgcmVhZHlTdGF0ZSgpIGNvbnN0ID0gMDsKIAogcHJvdGVjdGVk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xl
Z2FjeU9wZW5EQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGVnYWN5L0xlZ2FjeU9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDU0NGI2MTUuLjMyOTBjNTBmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5
T3BlbkRCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGVnYWN5L0xlZ2FjeU9wZW5EQlJlcXVlc3QuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgYm9vbCBM
ZWdhY3lPcGVuREJSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdAogewogICAgIGlm
IChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9y
ZWFkeVN0YXRlID09IERPTkUpOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gSURCUmVxdWVz
dFJlYWR5U3RhdGU6OlBlbmRpbmcgfHwgbV9yZWFkeVN0YXRlID09IElEQlJlcXVlc3RSZWFkeVN0
YXRlOjpEb25lKTsKICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVJlcXVlc3QuY3BwCmluZGV4IGM1MDBhNmMuLmQz
NmJlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2Fj
eS9MZWdhY3lSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9sZWdhY3kvTGVnYWN5UmVxdWVzdC5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgTGVnYWN5UmVxdWVz
dDo6TGVnYWN5UmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVm
UHRyPExlZ2FjeUEKICAgICAsIG1fZXJyb3JDb2RlKDApCiAgICAgLCBtX2NvbnRleHRTdG9wcGVk
KGZhbHNlKQogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKLSAgICAsIG1fcmVhZHlT
dGF0ZShQRU5ESU5HKQorICAgICwgbV9yZWFkeVN0YXRlKElEQlJlcXVlc3RSZWFkeVN0YXRlOjpQ
ZW5kaW5nKQogICAgICwgbV9yZXF1ZXN0QWJvcnRlZChmYWxzZSkKICAgICAsIG1fc291cmNlKHNv
dXJjZSkKICAgICAsIG1fdGFza1R5cGUodGFza1R5cGUpCkBAIC05Nyw3ICs5Nyw3IEBAIExlZ2Fj
eVJlcXVlc3Q6On5MZWdhY3lSZXF1ZXN0KCkKIAogUmVmUHRyPElEQkFueT4gTGVnYWN5UmVxdWVz
dDo6cmVzdWx0KEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdAogewotICAgIGlmIChtX3JlYWR5U3Rh
dGUgIT0gRE9ORSkgeworICAgIGlmIChtX3JlYWR5U3RhdGUgIT0gSURCUmVxdWVzdFJlYWR5U3Rh
dGU6OkRvbmUpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SW52YWxpZFN0
YXRlRXJyb3I7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KQEAgLTEwNiw3ICsxMDYsNyBAQCBS
ZWZQdHI8SURCQW55PiBMZWdhY3lSZXF1ZXN0OjpyZXN1bHQoRXhjZXB0aW9uQ29kZSYgZWMpIGNv
bnN0CiAKIFJlZlB0cjxET01FcnJvcj4gTGVnYWN5UmVxdWVzdDo6ZXJyb3IoRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiB7Ci0gICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBET05FKSB7CisgICAgaWYg
KG1fcmVhZHlTdGF0ZSAhPSBJREJSZXF1ZXN0UmVhZHlTdGF0ZTo6RG9uZSkgewogICAgICAgICBl
YyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJbnZhbGlkU3RhdGVFcnJvcjsKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgfQpAQCAtMTE1LDcgKzExNSw3IEBAIFJlZlB0cjxET01FcnJvcj4gTGVnYWN5
UmVxdWVzdDo6ZXJyb3IoRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAKIHVuc2lnbmVkIHNob3J0
IExlZ2FjeVJlcXVlc3Q6OmVycm9yQ29kZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKLSAg
ICBpZiAobV9yZWFkeVN0YXRlICE9IERPTkUpIHsKKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IElE
QlJlcXVlc3RSZWFkeVN0YXRlOjpEb25lKSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNl
cHRpb246OkludmFsaWRTdGF0ZUVycm9yOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CkBAIC0x
MzQsMTEgKzEzNCwxMSBAQCBSZWZQdHI8SURCVHJhbnNhY3Rpb24+IExlZ2FjeVJlcXVlc3Q6OnRy
YW5zYWN0aW9uKCkgY29uc3QKIAogY29uc3QgU3RyaW5nJiBMZWdhY3lSZXF1ZXN0OjpyZWFkeVN0
YXRlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9y
ZWFkeVN0YXRlID09IERPTkUpOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gSURCUmVxdWVz
dFJlYWR5U3RhdGU6OlBlbmRpbmcgfHwgbV9yZWFkeVN0YXRlID09IElEQlJlcXVlc3RSZWFkeVN0
YXRlOjpEb25lKTsKICAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3Ry
aW5nLCBwZW5kaW5nLCAoInBlbmRpbmciLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
ZG9uZSwgKCJkb25lIiwgQXRvbWljU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCi0g
ICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKQorICAgIGlmIChtX3JlYWR5U3RhdGUgPT0g
SURCUmVxdWVzdFJlYWR5U3RhdGU6OlBlbmRpbmcpCiAgICAgICAgIHJldHVybiBwZW5kaW5nOwog
CiAgICAgcmV0dXJuIGRvbmU7CkBAIC0xNDYsOCArMTQ2LDggQEAgY29uc3QgU3RyaW5nJiBMZWdh
Y3lSZXF1ZXN0OjpyZWFkeVN0YXRlKCkgY29uc3QKIAogdm9pZCBMZWdhY3lSZXF1ZXN0OjptYXJr
RWFybHlEZWF0aCgpCiB7Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKLSAg
ICBtX3JlYWR5U3RhdGUgPSBFYXJseURlYXRoOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0g
SURCUmVxdWVzdFJlYWR5U3RhdGU6OlBlbmRpbmcpOworICAgIG1fcmVhZHlTdGF0ZSA9IElEQlJl
cXVlc3RSZWFkeVN0YXRlOjpEZXByZWNhdGVkRWFybHlEZWF0aDsKICAgICBpZiAobV90cmFuc2Fj
dGlvbikKICAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3RlclJlcXVlc3QodGhpcyk7CiB9
CkBAIC0xNTcsOCArMTU3LDggQEAgdm9pZCBMZWdhY3lSZXF1ZXN0OjphYm9ydCgpCiAgICAgQVNT
RVJUKCFtX3JlcXVlc3RBYm9ydGVkKTsKICAgICBpZiAobV9jb250ZXh0U3RvcHBlZCB8fCAhc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQogICAgICAgICByZXR1cm47Ci0gICAgQVNTRVJUKG1fcmVh
ZHlTdGF0ZSA9PSBQRU5ESU5HIHx8IG1fcmVhZHlTdGF0ZSA9PSBET05FKTsKLSAgICBpZiAobV9y
ZWFkeVN0YXRlID09IERPTkUpCisgICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBJREJSZXF1ZXN0
UmVhZHlTdGF0ZTo6UGVuZGluZyB8fCBtX3JlYWR5U3RhdGUgPT0gSURCUmVxdWVzdFJlYWR5U3Rh
dGU6OkRvbmUpOworICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gSURCUmVxdWVzdFJlYWR5U3RhdGU6
OkRvbmUpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIEVucXVldWVkIGV2ZW50cyBtYXkgYmUg
dGhlIG9ubHkgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0LgpAQCAtMTgxLDcgKzE4MSw3IEBAIHZv
aWQgTGVnYWN5UmVxdWVzdDo6YWJvcnQoKQogCiB2b2lkIExlZ2FjeVJlcXVlc3Q6OnNldEN1cnNv
ckRldGFpbHMoSW5kZXhlZERCOjpDdXJzb3JUeXBlIGN1cnNvclR5cGUsIEluZGV4ZWREQjo6Q3Vy
c29yRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBF
TkRJTkcpOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gSURCUmVxdWVzdFJlYWR5U3RhdGU6
OlBlbmRpbmcpOwogICAgIEFTU0VSVCghbV9wZW5kaW5nQ3Vyc29yKTsKICAgICBtX2N1cnNvclR5
cGUgPSBjdXJzb3JUeXBlOwogICAgIG1fY3Vyc29yRGlyZWN0aW9uID0gZGlyZWN0aW9uOwpAQCAt
MTg5LDcgKzE4OSw3IEBAIHZvaWQgTGVnYWN5UmVxdWVzdDo6c2V0Q3Vyc29yRGV0YWlscyhJbmRl
eGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSwgSW5kZXhlZERCCiAKIHZvaWQgTGVnYWN5UmVx
dWVzdDo6c2V0UGVuZGluZ0N1cnNvcihQYXNzUmVmUHRyPExlZ2FjeUN1cnNvcj4gY3Vyc29yKQog
ewotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgQVNTRVJUKG1fcmVhZHlT
dGF0ZSA9PSBJREJSZXF1ZXN0UmVhZHlTdGF0ZTo6RG9uZSk7CiAgICAgQVNTRVJUKHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24pOwogICAgIEFTU0VS
VCghbV9wZW5kaW5nQ3Vyc29yKTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCB2b2lkIExlZ2FjeVJlcXVl
c3Q6OnNldFBlbmRpbmdDdXJzb3IoUGFzc1JlZlB0cjxMZWdhY3lDdXJzb3I+IGN1cnNvcikKIAog
ICAgIG1fcGVuZGluZ0N1cnNvciA9IGN1cnNvcjsKICAgICBtX3Jlc3VsdCA9IG51bGxwdHI7Ci0g
ICAgbV9yZWFkeVN0YXRlID0gUEVORElORzsKKyAgICBtX3JlYWR5U3RhdGUgPSBJREJSZXF1ZXN0
UmVhZHlTdGF0ZTo6UGVuZGluZzsKICAgICBtX2Vycm9yQ29kZSA9IDA7CiAgICAgbV9lcnJvciA9
IG51bGxwdHI7CiAgICAgbV9lcnJvck1lc3NhZ2UgPSBTdHJpbmcoKTsKQEAgLTIxNyw3ICsyMTcs
NyBAQCBSZWZQdHI8TGVnYWN5Q3Vyc29yPiBMZWdhY3lSZXF1ZXN0OjpnZXRSZXN1bHRDdXJzb3Io
KQogCiB2b2lkIExlZ2FjeVJlcXVlc3Q6OnNldFJlc3VsdEN1cnNvcihQYXNzUmVmUHRyPExlZ2Fj
eUN1cnNvcj4gY3Vyc29yLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPElEQktl
eT4gcHJpbWFyeUtleSwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlKQogewot
ICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CisgICAgQVNTRVJUKG1fcmVhZHlT
dGF0ZSA9PSBJREJSZXF1ZXN0UmVhZHlTdGF0ZTo6UGVuZGluZyk7CiAgICAgbV9jdXJzb3JLZXkg
PSBrZXk7CiAgICAgbV9jdXJzb3JQcmltYXJ5S2V5ID0gcHJpbWFyeUtleTsKICAgICBtX2N1cnNv
clZhbHVlID0gdmFsdWU7CkBAIC0yMzMsNyArMjMzLDcgQEAgdm9pZCBMZWdhY3lSZXF1ZXN0Ojpz
ZXRSZXN1bHRDdXJzb3IoUGFzc1JlZlB0cjxMZWdhY3lDdXJzb3I+IGN1cnNvciwgUGFzc1JlZlB0
cjwKIHZvaWQgTGVnYWN5UmVxdWVzdDo6ZmluaXNoQ3Vyc29yKCkKIHsKICAgICBtX2N1cnNvckZp
bmlzaGVkID0gdHJ1ZTsKLSAgICBpZiAobV9yZWFkeVN0YXRlICE9IFBFTkRJTkcpCisgICAgaWYg
KG1fcmVhZHlTdGF0ZSAhPSBJREJSZXF1ZXN0UmVhZHlTdGF0ZTo6UGVuZGluZykKICAgICAgICAg
bV9oYXNQZW5kaW5nQWN0aXZpdHkgPSBmYWxzZTsKIH0KIApAQCAtMjQxLDEwICsyNDEsMTAgQEAg
Ym9vbCBMZWdhY3lSZXF1ZXN0OjpzaG91bGRFbnF1ZXVlRXZlbnQoKSBjb25zdAogewogICAgIGlm
IChtX2NvbnRleHRTdG9wcGVkIHx8ICFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IFBFTkRJTkcgfHwgbV9y
ZWFkeVN0YXRlID09IERPTkUpOworICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gSURCUmVxdWVz
dFJlYWR5U3RhdGU6OlBlbmRpbmcgfHwgbV9yZWFkeVN0YXRlID09IElEQlJlcXVlc3RSZWFkeVN0
YXRlOjpEb25lKTsKICAgICBpZiAobV9yZXF1ZXN0QWJvcnRlZCkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIEFTU0VSVChtX3JlYWR5U3RhdGUgPT0gUEVORElORyk7CisgICAgQVNTRVJUKG1f
cmVhZHlTdGF0ZSA9PSBJREJSZXF1ZXN0UmVhZHlTdGF0ZTo6UGVuZGluZyk7CiAgICAgQVNTRVJU
KCFtX2Vycm9yQ29kZSAmJiBtX2Vycm9yTWVzc2FnZS5pc051bGwoKSAmJiAhbV9lcnJvciAmJiAh
bV9yZXN1bHQpOwogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHZvaWQg
TGVnYWN5UmVxdWVzdDo6c3RvcCgpCiAKICAgICBtX2NvbnRleHRTdG9wcGVkID0gdHJ1ZTsKICAg
ICBtX3JlcXVlc3RTdGF0ZS5jbGVhcigpOwotICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gUEVORElO
RykKKyAgICBpZiAobV9yZWFkeVN0YXRlID09IElEQlJlcXVlc3RSZWFkeVN0YXRlOjpQZW5kaW5n
KQogICAgICAgICBtYXJrRWFybHlEZWF0aCgpOwogfQogCkBAIC00NjksMTggKzQ2OSwxOCBAQCBF
dmVudFRhcmdldEludGVyZmFjZSBMZWdhY3lSZXF1ZXN0OjpldmVudFRhcmdldEludGVyZmFjZSgp
IGNvbnN0CiBib29sIExlZ2FjeVJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVu
dD4gZXZlbnQpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJMZWdhY3lSZXF1ZXN0OjpkaXNwYXRj
aEV2ZW50Iik7Ci0gICAgQVNTRVJUKG1fcmVhZHlTdGF0ZSA9PSBQRU5ESU5HKTsKKyAgICBBU1NF
UlQobV9yZWFkeVN0YXRlID09IElEQlJlcXVlc3RSZWFkeVN0YXRlOjpQZW5kaW5nKTsKICAgICBB
U1NFUlQoIW1fY29udGV4dFN0b3BwZWQpOwogICAgIEFTU0VSVChtX2hhc1BlbmRpbmdBY3Rpdml0
eSk7CiAgICAgQVNTRVJUKG1fZW5xdWV1ZWRFdmVudHMuc2l6ZSgpKTsKICAgICBBU1NFUlQoc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBBU1NFUlQoZXZlbnQtPnRhcmdldCgpID09IHRo
aXMpOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0YXRlIDwgRE9ORSwgIldoZW4g
ZGlzcGF0Y2hpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSA8IERPTkUoJWQpLCB3YXMgJWQiLCBl
dmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIERPTkUsIG1fcmVhZHlTdGF0ZSk7
CisgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlYWR5U3RhdGUgPCBJREJSZXF1ZXN0UmVhZHlT
dGF0ZTo6RG9uZSwgIldoZW4gZGlzcGF0Y2hpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSA8IERP
TkUoJWQpLCB3YXMgJWQiLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIElE
QlJlcXVlc3RSZWFkeVN0YXRlOjpEb25lLCBtX3JlYWR5U3RhdGUpOwogCiAgICAgRE9NUmVxdWVz
dFN0YXRlOjpTY29wZSBzY29wZShtX3JlcXVlc3RTdGF0ZSk7CiAKICAgICBpZiAoZXZlbnQtPnR5
cGUoKSAhPSBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50KQotICAgICAgICBtX3JlYWR5U3RhdGUg
PSBET05FOworICAgICAgICBtX3JlYWR5U3RhdGUgPSBJREJSZXF1ZXN0UmVhZHlTdGF0ZTo6RG9u
ZTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9lbnF1ZXVlZEV2ZW50cy5zaXplKCk7
ICsraSkgewogICAgICAgICBpZiAobV9lbnF1ZXVlZEV2ZW50c1tpXS5nZXQoKSA9PSBldmVudC5n
ZXQoKSkKQEAgLTUyMyw3ICs1MjMsNyBAQCBib29sIExlZ2FjeVJlcXVlc3Q6OmRpc3BhdGNoRXZl
bnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgYm9vbCBkb250UHJldmVudERlZmF1bHQg
PSBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKGV2ZW50LmdldCgpLCB0YXJnZXRzKTsKIAog
ICAgIGlmIChtX3RyYW5zYWN0aW9uKSB7Ci0gICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gRE9O
RSkKKyAgICAgICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBJREJSZXF1ZXN0UmVhZHlTdGF0ZTo6RG9u
ZSkKICAgICAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnVucmVnaXN0ZXJSZXF1ZXN0KHRoaXMpOwog
CiAgICAgICAgIC8vIFBvc3NpYmx5IGFib3J0IHRoZSB0cmFuc2FjdGlvbi4gVGhpcyBtdXN0IG9j
Y3VyIGFmdGVyIHVucmVnaXN0ZXJpbmcgKHNvIHRoaXMgcmVxdWVzdApAQCAtNTQxLDcgKzU0MSw3
IEBAIGJvb2wgTGVnYWN5UmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBl
dmVudCkKICAgICBpZiAoY3Vyc29yVG9Ob3RpZnkpCiAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5w
b3N0U3VjY2Vzc0hhbmRsZXJDYWxsYmFjaygpOwogCi0gICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBE
T05FICYmICghY3Vyc29yVG9Ob3RpZnkgfHwgbV9jdXJzb3JGaW5pc2hlZCkgJiYgZXZlbnQtPnR5
cGUoKSAhPSBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50KQorICAgIGlmIChtX3JlYWR5
U3RhdGUgPT0gSURCUmVxdWVzdFJlYWR5U3RhdGU6OkRvbmUgJiYgKCFjdXJzb3JUb05vdGlmeSB8
fCBtX2N1cnNvckZpbmlzaGVkKSAmJiBldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS51cGdy
YWRlbmVlZGVkRXZlbnQpCiAgICAgICAgIG1faGFzUGVuZGluZ0FjdGl2aXR5ID0gZmFsc2U7CiAK
ICAgICByZXR1cm4gZG9udFByZXZlbnREZWZhdWx0OwpAQCAtNTU5LDIwICs1NTksMjAgQEAgdm9p
ZCBMZWdhY3lSZXF1ZXN0Ojp0cmFuc2FjdGlvbkRpZEZpbmlzaEFuZERpc3BhdGNoKCkKIHsKICAg
ICBBU1NFUlQobV90cmFuc2FjdGlvbik7CiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rpb24tPmlzVmVy
c2lvbkNoYW5nZSgpKTsKLSAgICBBU1NFUlQobV9yZWFkeVN0YXRlID09IERPTkUpOworICAgIEFT
U0VSVChtX3JlYWR5U3RhdGUgPT0gSURCUmVxdWVzdFJlYWR5U3RhdGU6OkRvbmUpOwogICAgIEFT
U0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIG1fdHJhbnNhY3Rpb24gPSBudWxs
cHRyOwotICAgIG1fcmVhZHlTdGF0ZSA9IFBFTkRJTkc7CisgICAgbV9yZWFkeVN0YXRlID0gSURC
UmVxdWVzdFJlYWR5U3RhdGU6OlBlbmRpbmc7CiB9CiAKIHZvaWQgTGVnYWN5UmVxdWVzdDo6ZW5x
dWV1ZUV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogewotICAgIEFTU0VSVChtX3JlYWR5
U3RhdGUgPT0gUEVORElORyB8fCBtX3JlYWR5U3RhdGUgPT0gRE9ORSk7CisgICAgQVNTRVJUKG1f
cmVhZHlTdGF0ZSA9PSBJREJSZXF1ZXN0UmVhZHlTdGF0ZTo6UGVuZGluZyB8fCBtX3JlYWR5U3Rh
dGUgPT0gSURCUmVxdWVzdFJlYWR5U3RhdGU6OkRvbmUpOwogCiAgICAgaWYgKG1fY29udGV4dFN0
b3BwZWQgfHwgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fCBtX2RpZEZp
cmVVcGdyYWRlTmVlZGVkRXZlbnQsICJXaGVuIHF1ZXVlaW5nIGV2ZW50ICVzLCBtX3JlYWR5U3Rh
dGUgd2FzICVkIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX3JlYWR5
U3RhdGUpOworICAgIEFTU0VSVF9XSVRIX01FU1NBR0UobV9yZWFkeVN0YXRlID09IElEQlJlcXVl
c3RSZWFkeVN0YXRlOjpQZW5kaW5nIHx8IG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCwgIldo
ZW4gcXVldWVpbmcgZXZlbnQgJXMsIG1fcmVhZHlTdGF0ZSB3YXMgJWQiLCBldmVudC0+dHlwZSgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fcmVhZHlTdGF0ZSk7CiAKICAgICBldmVudC0+c2V0
VGFyZ2V0KHRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9sZWdhY3kvTGVnYWN5UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvbGVnYWN5L0xlZ2FjeVJlcXVlc3QuaAppbmRleCA0ODA3MTA5Li41YWVmYjExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5UmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdh
Y3lSZXF1ZXN0LmgKQEAgLTExOSw3ICsxMTksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVmUHRyPERP
TUVycm9yPiBtX2Vycm9yOwogICAgIGJvb2wgbV9jb250ZXh0U3RvcHBlZDsKICAgICBSZWZQdHI8
TGVnYWN5VHJhbnNhY3Rpb24+IG1fdHJhbnNhY3Rpb247Ci0gICAgUmVhZHlTdGF0ZSBtX3JlYWR5
U3RhdGU7CisgICAgSURCUmVxdWVzdFJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwogICAgIGJvb2wg
bV9yZXF1ZXN0QWJvcnRlZDsgLy8gTWF5IGJlIGFib3J0ZWQgYnkgdHJhbnNhY3Rpb24gdGhlbiBy
ZWNlaXZlIGFzeW5jIG9uc3VjY2VzczsgaWdub3JlIHZzLiBhc3NlcnQuCiAKIHByaXZhdGU6Cg==
</data>
<flag name="review"
          id="287651"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>