<?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>127502</bug_id>
          
          <creation_ts>2014-01-23 12:07:50 -0800</creation_ts>
          <short_desc>IDB: Implement SQLite backing store &apos;get&apos; support</short_desc>
          <delta_ts>2014-01-23 19:48:26 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>124521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971265</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-23 12:07:50 -0800</bug_when>
    <thetext>IDB: Implement SQLite backing store &apos;get&apos; support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971411</commentid>
    <comment_count>1</comment_count>
      <attachid>222048</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-23 17:19:00 -0800</bug_when>
    <thetext>Created attachment 222048
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971472</commentid>
    <comment_count>2</comment_count>
      <attachid>222048</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-23 19:42:57 -0800</bug_when>
    <thetext>Comment on attachment 222048
Patch v1

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

&gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:511
&gt; +    std::function&lt;int(int, const void*, int, const void*)&gt;* f = static_cast&lt;std::function&lt;int(int, const void*, int, const void*)&gt;*&gt;(arg);

these seem like one of the canonical &quot;pure win&quot; places to use auto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971473</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-23 19:44:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 222048 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=222048&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/sql/SQLiteDatabase.cpp:511
&gt; &gt; +    std::function&lt;int(int, const void*, int, const void*)&gt;* f = static_cast&lt;std::function&lt;int(int, const void*, int, const void*)&gt;*&gt;(arg);
&gt; 
&gt; these seem like one of the canonical &quot;pure win&quot; places to use auto.

I agree.  thx</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971474</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-23 19:48:26 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/162682</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222048</attachid>
            <date>2014-01-23 17:19:00 -0800</date>
            <delta_ts>2014-01-23 19:42:56 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>21364</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5YWVlY2I4Li5lYTZmOTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcg
QEAKIDIwMTQtMDEtMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAg
ICAgIElEQjogSW1wbGVtZW50IFNRTGl0ZSBiYWNraW5nIHN0b3JlICdnZXQnIHN1cHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzUwMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdldCBhIEtleVJh
bmdlIGZyb20gYSBLZXlSYW5nZURhdGE6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2VEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlRGF0YTo6bWF5
YmVDcmVhdGVJREJLZXlSYW5nZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UmFuZ2VEYXRhLmg6CisKKyAgICAgICAgQWRkIGNvbGxhdGlvbiBmdW5jdGlvbiBzdXBwb3J0IHRv
IFNRTGl0ZURhdGFiYXNlOgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpkZXN0cm95Q29sbGF0aW9uRnVuY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6Y2FsbENvbGxhdGlvbkZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNR
TGl0ZURhdGFiYXNlOjpzZXRDb2xsYXRpb25GdW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
UUxpdGVEYXRhYmFzZTo6cmVtb3ZlQ29sbGF0aW9uRnVuY3Rpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oOgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisK
KzIwMTQtMDEtMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAg
IElEQjogSW1wbGVtZW50IGNyb3NzLXRocmVhZCBhbmQgSVBDIHBsdW1iaW5nIGZvciAnZ2V0JyBz
dXBwb3J0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjc1MDEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlRGF0YS5jcHAKaW5kZXggODRhNWQ0OS4uYWYxZmIyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuY3BwCkBAIC00Myw2
ICs0MywxNCBAQCBJREJLZXlSYW5nZURhdGEgSURCS2V5UmFuZ2VEYXRhOjppc29sYXRlZENvcHko
KSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK1Bhc3NSZWZQdHI8SURCS2V5UmFuZ2U+
IElEQktleVJhbmdlRGF0YTo6bWF5YmVDcmVhdGVJREJLZXlSYW5nZSgpIGNvbnN0Cit7CisgICAg
aWYgKGlzTnVsbCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gSURCS2V5
UmFuZ2U6OmNyZWF0ZShsb3dlcktleS5tYXliZUNyZWF0ZUlEQktleSgpLCB1cHBlcktleS5tYXli
ZUNyZWF0ZUlEQktleSgpLCBsb3dlck9wZW4gPyBJREJLZXlSYW5nZTo6TG93ZXJCb3VuZE9wZW4g
OiBJREJLZXlSYW5nZTo6TG93ZXJCb3VuZENsb3NlZCwgdXBwZXJPcGVuID8gSURCS2V5UmFuZ2U6
OlVwcGVyQm91bmRPcGVuIDogSURCS2V5UmFuZ2U6OlVwcGVyQm91bmRDbG9zZWQpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJh
bmdlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VE
YXRhLmgKaW5kZXggNmFlOGY4OC4uZDM1YTU0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmgKQEAgLTU3LDYgKzU3LDggQEAgc3Ry
dWN0IElEQktleVJhbmdlRGF0YSB7CiAKICAgICBJREJLZXlSYW5nZURhdGEgaXNvbGF0ZWRDb3B5
KCkgY29uc3Q7CiAKKyAgICBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBtYXliZUNyZWF0ZUlEQktl
eVJhbmdlKCkgY29uc3Q7CisKICAgICBib29sIGlzTnVsbDsKIAogICAgIElEQktleURhdGEgbG93
ZXJLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGFmMzI5YjMuLmI3MGE0ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC04NCw2ICs4NCw3IEBAIF9fWk43V2ViQ29yZTEwUmVuZGVyVmlldzEw
Y29tcG9zaXRvckV2CiBfX1pON1dlYkNvcmUxMFJlbmRlclZpZXc3aGl0VGVzdEVSS05TXzE0SGl0
VGVzdFJlcXVlc3RFUk5TXzEzSGl0VGVzdFJlc3VsdEUKIF9fWk43V2ViQ29yZTE1U1FMaXRlU3Rh
dGVtZW50MTNnZXRDb2x1bW5CbG9iRWlSaQogX19aTjdXZWJDb3JlMTVTUUxpdGVTdGF0ZW1lbnQx
NGdldENvbHVtbkludDY0RWkKK19fWk43V2ViQ29yZTE1U1FMaXRlU3RhdGVtZW50MjFnZXRDb2x1
bW5CbG9iQXNWZWN0b3JFaVJOM1dURjZWZWN0b3JJY0xtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dF
RUUKIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzE2c2V0UGFyZW50VmlzaWJsZUViCiBfX1pON1dl
YkNvcmUxMFNjcm9sbFZpZXcxN3NldFVzZUZpeGVkTGF5b3V0RWIKIF9fWk43V2ViQ29yZTEwU2Ny
b2xsVmlldzE4c2V0Rml4ZWRMYXlvdXRTaXplRVJLTlNfN0ludFNpemVFCkBAIC0zNzQsNiArMzc1
LDcgQEAgX19aTjdXZWJDb3JlMTRSZXNvdXJjZUxvYWRlcjMyZGlkQ2FuY2VsQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VFUktOU18yM0F1dGhlbnRpY2EKIF9fWk43V2ViQ29yZTE0UmVzb3VyY2VMb2Fk
ZXI2Y2FuY2VsRXYKIF9fWk43V2ViQ29yZTE0U1FMaXRlRGF0YWJhc2UxMXRhYmxlRXhpc3RzRVJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTUUxpdGVEYXRhYmFzZTEybGFzdEVycm9yTXNn
RXYKK19fWk43V2ViQ29yZTE0U1FMaXRlRGF0YWJhc2UyMHNldENvbGxhdGlvbkZ1bmN0aW9uRVJL
TjNXVEY2U3RyaW5nRU5TdDNfXzE4ZnVuY3Rpb25JRmlpUEt2aVM4X0VFRQogX19aTjdXZWJDb3Jl
MTRTUUxpdGVEYXRhYmFzZTE0ZXhlY3V0ZUNvbW1hbmRFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxNFNRTGl0ZURhdGFiYXNlNG9wZW5FUktOM1dURjZTdHJpbmdFYgogX19aTjdXZWJDb3Jl
MTRTUUxpdGVEYXRhYmFzZTVjbG9zZUV2CkBAIC0zMDgwLDYgKzMwODIsOCBAQCBfX1pON1dlYkNv
cmUyNk1vY2tNZWRpYVBsYXllck1lZGlhU291cmNlMTlyZWdpc3Rlck1lZGlhRW5naW5lRVBGdlBG
TjNXVEYxMFBhc3NPdwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogX19aTks3V2ViQ29y
ZTEwSURCS2V5RGF0YTE3bWF5YmVDcmVhdGVJREJLZXlFdgogX19aTks3V2ViQ29yZTEwSURCS2V5
UGF0aDZlbmNvZGVFUk5TXzEyS2V5ZWRFbmNvZGVyRQorX19aTks3V2ViQ29yZTExSURCS2V5UmFu
Z2U5aXNPbmx5S2V5RXYKK19fWk5LN1dlYkNvcmUxNUlEQktleVJhbmdlRGF0YTIybWF5YmVDcmVh
dGVJREJLZXlSYW5nZUV2CiBfX1pOSzdXZWJDb3JlNklEQktleTZlbmNvZGVFUk5TXzEyS2V5ZWRF
bmNvZGVyRQogX19aTks3V2ViQ29yZTZJREJLZXk3aXNWYWxpZEV2CiBfX1pON1dlYkNvcmUxMElE
QktleURhdGFDMUVQTlNfNklEQktleUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwv
U1FMaXRlRGF0YWJhc2UuY3BwCmluZGV4IGE5YzRkOTMuLjQ0NTMzOTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcApAQCAtNTA2LDQgKzUwNiwy
NyBAQCBib29sIFNRTGl0ZURhdGFiYXNlOjp0dXJuT25JbmNyZW1lbnRhbEF1dG9WYWN1dW0oKQog
ICAgIH0KIH0KIAorc3RhdGljIHZvaWQgZGVzdHJveUNvbGxhdGlvbkZ1bmN0aW9uKHZvaWQqIGFy
ZykKK3sKKyAgICBzdGQ6OmZ1bmN0aW9uPGludChpbnQsIGNvbnN0IHZvaWQqLCBpbnQsIGNvbnN0
IHZvaWQqKT4qIGYgPSBzdGF0aWNfY2FzdDxzdGQ6OmZ1bmN0aW9uPGludChpbnQsIGNvbnN0IHZv
aWQqLCBpbnQsIGNvbnN0IHZvaWQqKT4qPihhcmcpOworICAgIGRlbGV0ZSBmOworfQorCitzdGF0
aWMgaW50IGNhbGxDb2xsYXRpb25GdW5jdGlvbih2b2lkKiBhcmcsIGludCBhTGVuZ3RoLCBjb25z
dCB2b2lkKiBhLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm9pZCogYikKK3sKKyAgICBzdGQ6OmZ1bmN0
aW9uPGludChpbnQsIGNvbnN0IHZvaWQqLCBpbnQsIGNvbnN0IHZvaWQqKT4qIGYgPSBzdGF0aWNf
Y2FzdDxzdGQ6OmZ1bmN0aW9uPGludChpbnQsIGNvbnN0IHZvaWQqLCBpbnQsIGNvbnN0IHZvaWQq
KT4qPihhcmcpOworICAgIHJldHVybiAoKmYpKGFMZW5ndGgsIGEsIGJMZW5ndGgsIGIpOworfQor
Cit2b2lkIFNRTGl0ZURhdGFiYXNlOjpzZXRDb2xsYXRpb25GdW5jdGlvbihjb25zdCBTdHJpbmcm
IGNvbGxhdGlvbk5hbWUsIHN0ZDo6ZnVuY3Rpb248aW50KGludCwgY29uc3Qgdm9pZCosIGludCwg
Y29uc3Qgdm9pZCopPiBjb2xsYXRpb25GdW5jdGlvbikKK3sKKyAgICBhdXRvIGZ1bmN0aW9uT2Jq
ZWN0ID0gbmV3IHN0ZDo6ZnVuY3Rpb248aW50KGludCwgY29uc3Qgdm9pZCosIGludCwgY29uc3Qg
dm9pZCopPihjb2xsYXRpb25GdW5jdGlvbik7CisgICAgc3FsaXRlM19jcmVhdGVfY29sbGF0aW9u
X3YyKG1fZGIsIGNvbGxhdGlvbk5hbWUudXRmOCgpLmRhdGEoKSwgU1FMSVRFX1VURjgsIGZ1bmN0
aW9uT2JqZWN0LCBjYWxsQ29sbGF0aW9uRnVuY3Rpb24sIGRlc3Ryb3lDb2xsYXRpb25GdW5jdGlv
bik7Cit9CisKK3ZvaWQgU1FMaXRlRGF0YWJhc2U6OnJlbW92ZUNvbGxhdGlvbkZ1bmN0aW9uKGNv
bnN0IFN0cmluZyYgY29sbGF0aW9uTmFtZSkKK3sKKyAgICBzcWxpdGUzX2NyZWF0ZV9jb2xsYXRp
b25fdjIobV9kYiwgY29sbGF0aW9uTmFtZS51dGY4KCkuZGF0YSgpLCBTUUxJVEVfVVRGOCwgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmgKaW5kZXggMWNkZjE3
Ny4uNjBjM2E2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYgU1FMaXRlRGF0YWJhc2VfaAogI2RlZmlu
ZSBTUUxpdGVEYXRhYmFzZV9oCiAKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0
Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC0xMzAsNiArMTMxLDkgQEAgcHVibGljOgogICAgIGVu
dW0gQXV0b1ZhY3V1bVByYWdtYSB7IEF1dG9WYWN1dW1Ob25lID0gMCwgQXV0b1ZhY3V1bUZ1bGwg
PSAxLCBBdXRvVmFjdXVtSW5jcmVtZW50YWwgPSAyIH07CiAgICAgYm9vbCB0dXJuT25JbmNyZW1l
bnRhbEF1dG9WYWN1dW0oKTsKIAorICAgIHZvaWQgc2V0Q29sbGF0aW9uRnVuY3Rpb24oY29uc3Qg
U3RyaW5nJiBjb2xsYXRpb25OYW1lLCBzdGQ6OmZ1bmN0aW9uPGludChpbnQsIGNvbnN0IHZvaWQq
LCBpbnQsIGNvbnN0IHZvaWQqKT4pOworICAgIHZvaWQgcmVtb3ZlQ29sbGF0aW9uRnVuY3Rpb24o
Y29uc3QgU3RyaW5nJiBjb2xsYXRpb25OYW1lKTsKKwogICAgIC8vIFNldCB0aGlzIGZsYWcgdG8g
YWxsb3cgYWNjZXNzIGZyb20gbXVsdGlwbGUgdGhyZWFkcy4gIE5vdCBhbGwgbXVsdGktdGhyZWFk
ZWQgYWNjZXNzZXMgYXJlIHNhZmUhCiAgICAgLy8gU2VlIGh0dHA6Ly93d3cuc3FsaXRlLm9yZy9j
dnN0cmFjL3dpa2k/cD1NdWx0aVRocmVhZGluZyBmb3IgbW9yZSBpbmZvLgogI2lmbmRlZiBOREVC
VUcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCBkNTU0MjM1Li41MzY4ZDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MjcgQEAKIDIwMTQtMDEtMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisg
ICAgICAgIElEQjogSW1wbGVtZW50IFNRTGl0ZSBiYWNraW5nIHN0b3JlICdnZXQnIHN1cHBvcnQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzUwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgbWFr
ZXMgZ2V0IG9mIGEgc2luZ2xlIElEQktleSB3b3JrLCBhbmQgbGF5cyB0aGUgZ3JvdW5kd29yayBm
b3IgZ2V0dGluZyBhbiBJREJLZXlSYW5nZS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9J
bmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJ
REJEYXRhYmFzZTo6Z2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSk6CisgICAgICAgICogRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oOgorCisg
ICAgICAgICogRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJh
c2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Y3JlYXRlQW5kUG9wdWxhdGVJbml0aWFsTWV0YWRhdGEp
OiBBZGQgY3VzdG9tIGNvbGxhdGlvbgorICAgICAgICAgIHRvIHRoZSBSZWNvcmRzIHRhYmxlLgor
ICAgICAgICAoV2ViS2l0OjpVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0
T3JFc3RhYmxpc2hNZXRhZGF0YSk6IEluc3RhbGwgdGhlIGN1c3RvbSBjb2xsYXRvci4KKyAgICAg
ICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGU6OmdldEtleVJl
Y29yZEZyb21PYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNl
QmFja2luZ1N0b3JlU1FMaXRlOjpnZXRLZXlSYW5nZVJlY29yZEZyb21PYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpjb2xs
YXRlKTogQ29sbGF0aW9uIGZ1bmN0aW9uIHRvIGJlIGZpbGxlZCBpbiBsYXRlci4KKyAgICAgICAg
KiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tp
bmdTdG9yZVNRTGl0ZS5oOgorCisyMDE0LTAxLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKwogICAgICAgICBJREI6IEltcGxlbWVudCBjcm9zcy10aHJlYWQgYW5kIElQQyBw
bHVtYmluZyBmb3IgJ2dldCcgc3VwcG9ydAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NTAxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0Rh
dGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dl
YktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5k
ZXggMjJiOGU1Ni4uN2RhMmQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQ
cm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTU3
NywxMSArNTc3LDQ1IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFB1dFJlY29yZEluQmFj
a2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURCCiAgICAgcmVxdWVzdC0+Y29t
cGxldGVSZXF1ZXN0KGtleURhdGEsIGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAotdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSh1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBpbnQ2NF90IGluZGV4SUQsIGNvbnN0IFdlYkNvcmU6
OklEQktleVJhbmdlRGF0YSYsIFdlYkNvcmU6OkluZGV4ZWREQjo6Q3Vyc29yVHlwZSkKK3ZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZEZyb21CYWNraW5nU3RvcmUodWludDY0X3QgcmVx
dWVzdElELCBjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImIHRyYW5zYWN0aW9uLCBjb25z
dCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZU1ldGFkYXRhLCBp
bnQ2NF90IGluZGV4SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VE
YXRhLCBXZWJDb3JlOjpJbmRleGVkREI6OkN1cnNvclR5cGUgY3Vyc29yVHlwZSkKIHsKLSAgICAv
LyBGSVhNRTogSW1wbGVtZW50IChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI3NTAyKQorICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX2Jh
Y2tpbmdTdG9yZSk7CisKKyAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlID0ga2V5UmFu
Z2VEYXRhLm1heWJlQ3JlYXRlSURCS2V5UmFuZ2UoKTsKKyAgICBBU1NFUlQoa2V5UmFuZ2UpOwor
ICAgIGlmICgha2V5UmFuZ2UpIHsKKyAgICAgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFz
eW5jVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRHZXRSZWNvcmRGcm9tQmFja2lu
Z1N0b3JlLCByZXF1ZXN0SUQsIElEQkdldFJlc3VsdCgpLCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgSURCS2V5UmFuZ2UgcmVxdWVzdGVk
IGZyb20gYmFja2luZyBzdG9yZSIpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAoaW5kZXhJRCA9PSBJREJJbmRleE1ldGFkYXRhOjpJbnZhbGlkSWQpIHsKKyAgICAgICAgLy8g
SURCT2JqZWN0U3RvcmUgZ2V0IHJlY29yZAorICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBy
ZXN1bHQ7CisKKyAgICAgICAgaWYgKGtleVJhbmdlLT5pc09ubHlLZXkoKSkgeworICAgICAgICAg
ICAgaWYgKCFtX2JhY2tpbmdTdG9yZS0+Z2V0S2V5UmVjb3JkRnJvbU9iamVjdFN0b3JlKHRyYW5z
YWN0aW9uLCBvYmplY3RTdG9yZU1ldGFkYXRhLmlkLCAqa2V5UmFuZ2UtPmxvd2VyKCksIHJlc3Vs
dCkpCisgICAgICAgICAgICAgICAgcG9zdE1haW5UaHJlYWRUYXNrKGNyZWF0ZUFzeW5jVGFzaygq
dGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRHZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlLCBy
ZXF1ZXN0SUQsIElEQkdldFJlc3VsdCgpLCBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVy
cm9yLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBnZXQga2V5IHJlY29yZCBmcm9tIG9iamVjdCBz
dG9yZSBpbiBiYWNraW5nIHN0b3JlIikpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICBwb3N0TWFpblRocmVhZFRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURC
RGF0YWJhc2U6OmRpZEdldFJlY29yZEZyb21CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwgSURCR2V0
UmVzdWx0KHJlc3VsdC5yZWxlYXNlKCkpLCAwLCBTdHJpbmcoU3RyaW5nSW1wbDo6ZW1wdHkoKSkp
KTsKKworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgUmVmUHRyPElE
QktleT4gcmVzdWx0S2V5OworCisgICAgICAgIGlmICghbV9iYWNraW5nU3RvcmUtPmdldEtleVJh
bmdlUmVjb3JkRnJvbU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLCBvYmplY3RTdG9yZU1ldGFkYXRh
LmlkLCAqa2V5UmFuZ2UsIHJlc3VsdCwgcmVzdWx0S2V5KSkKKyAgICAgICAgICAgIHBvc3RNYWlu
VGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlk
R2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSwgcmVxdWVzdElELCBJREJHZXRSZXN1bHQoKSwgSURC
RGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8g
Z2V0IGtleSByYW5nZSByZWNvcmQgZnJvbSBvYmplY3Qgc3RvcmUgaW4gYmFja2luZyBzdG9yZSIp
KSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVB
c3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkR2V0UmVjb3JkRnJvbUJhY2tp
bmdTdG9yZSwgcmVxdWVzdElELCBJREJHZXRSZXN1bHQocmVzdWx0LnJlbGVhc2UoKSwgcmVzdWx0
S2V5LnJlbGVhc2UoKSwgSURCS2V5UGF0aCgpKSwgMCwgU3RyaW5nKFN0cmluZ0ltcGw6OmVtcHR5
KCkpKSk7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIElEQkluZGV4IGdldCBy
ZWNvcmQKIAotICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZV
bmlxdWVJREJEYXRhYmFzZTo6ZGlkR2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSwgcmVxdWVzdElE
LCBJREJHZXRSZXN1bHQoKSwgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVND
SUlMaXRlcmFsKCInZ2V0JyBzdXBwb3J0IG5vdCB5ZXQgaW1wbGVtZW50ZWQiKSkpOworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgaW5kZXggZ2V0cyAoPHJkYXI6Ly9wcm9ibGVtLzE1Nzc5NjQyPikK
KyAgICBwb3N0TWFpblRocmVhZFRhc2soY3JlYXRlQXN5bmNUYXNrKCp0aGlzLCAmVW5pcXVlSURC
RGF0YWJhc2U6OmRpZEdldFJlY29yZEZyb21CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwgSURCR2V0
UmVzdWx0KCksIElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiJ2dldCcgZnJvbSBpbmRleGVzIG5vdCBzdXBwb3J0ZWQgeWV0IikpKTsKIH0KIAogdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6ZGlkR2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSh1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IElEQkdldFJlc3VsdCYgcmVzdWx0LCB1aW50MzJfdCBlcnJvckNvZGUs
IGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5o
IGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZS5oCmluZGV4IDhkYWVkNzEuLjkzNzk3OGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2VC
YWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhl
ZERCL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmgKQEAgLTMzLDYgKzMzLDggQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSURCS2V5OworY2xhc3MgSURCS2V5UmFuZ2U7Citj
bGFzcyBTaGFyZWRCdWZmZXI7CiAKIHN0cnVjdCBJREJEYXRhYmFzZU1ldGFkYXRhOwogc3RydWN0
IElEQk9iamVjdFN0b3JlTWV0YWRhdGE7CkBAIC02Myw3ICs2NSw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5JiwgY29uc3QgdWludDhf
dCogdmFsdWVCdWZmZXIsIHNpemVfdCB2YWx1ZVNpemUpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
dXBkYXRlS2V5R2VuZXJhdG9yKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViQ29yZTo6SURCS2V5JiwgYm9vbCBjaGVja0N1cnJl
bnQpID0gMDsKIAotCisgICAgdmlydHVhbCBib29sIGdldEtleVJlY29yZEZyb21PYmplY3RTdG9y
ZShjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQs
IGNvbnN0IFdlYkNvcmU6OklEQktleSYsIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiBy
ZXN1bHQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5UmFuZ2VSZWNvcmRGcm9tT2JqZWN0
U3RvcmUoY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgaW50NjRfdCBvYmplY3RTdG9y
ZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZSYsIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+JiByZXN1bHQsIFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+JiByZXN1bHRLZXkpID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
RGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5n
U3RvcmVTUUxpdGUuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWRE
Qi9zcWxpdGUvVW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuY3BwCmluZGV4IDdh
MmY5MWEuLjQxNDZkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9V
bmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5jcHAKQEAgLTM0LDggKzM0LDEwIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJE
YXRhYmFzZU1ldGFkYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlEYXRhLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9JREJLZXlSYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1FMaXRlRGF0
YWJhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NRTGl0ZVN0YXRlbWVudC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC05MCw3ICs5Miw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhPiBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdT
dG9yZVNRTGl0CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIGlmICghbV9z
cWxpdGVEQi0+ZXhlY3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBSZWNvcmRzIChvYmplY3RTdG9y
ZUlEIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IEJMT0IgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgdmFsdWUgQkxPQiBO
T1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsiKSkgeworICAgIGlmICghbV9zcWxpdGVEQi0+ZXhl
Y3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBSZWNvcmRzIChvYmplY3RTdG9yZUlEIElOVEVHRVIg
Tk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IEJMT0IgQ09MTEFURSBJREJLRVkgTk9UIE5V
TEwgT04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgdmFsdWUgQkxP
QiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsiKSkgewogICAgICAgICBMT0dfRVJST1IoIkNv
dWxkIG5vdCBjcmVhdGUgUmVjb3JkcyB0YWJsZSBpbiBkYXRhYmFzZSAoJWkpIC0gJXMiLCBtX3Nx
bGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICBtX3NxbGl0ZURCID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0yNDcs
NiArMjQ5LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxJREJEYXRhYmFzZU1ldGFkYXRhPiBVbmlxdWVJ
REJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0T3JFCiAgICAgaWYgKCFtX3NxbGl0ZURC
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorICAgIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFz
ZUJhY2tpbmdTdG9yZVNRTGl0ZT4gcHJvdGVjdG9yKHRoaXMpOworICAgIG1fc3FsaXRlREItPnNl
dENvbGxhdGlvbkZ1bmN0aW9uKCJJREJLRVkiLCBbdGhpc10oaW50IGFMZW5ndGgsIGNvbnN0IHZv
aWQqIGEsIGludCBiTGVuZ3RoLCBjb25zdCB2b2lkKiBiKSB7CisgICAgICAgIHJldHVybiBjb2xs
YXRlKGFMZW5ndGgsIGEsIGJMZW5ndGgsIGIpOworICAgIH0pOworCiAgICAgc3RkOjp1bmlxdWVf
cHRyPElEQkRhdGFiYXNlTWV0YWRhdGE+IG1ldGFkYXRhID0gZXh0cmFjdEV4aXN0aW5nTWV0YWRh
dGEoKTsKICAgICBpZiAoIW1ldGFkYXRhKQogICAgICAgICBtZXRhZGF0YSA9IGNyZWF0ZUFuZFBv
cHVsYXRlSW5pdGlhbE1ldGFkYXRhKCk7CkBAIC00NzYsNiArNDgzLDExMSBAQCBib29sIFVuaXF1
ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjp1cGRhdGVLZXlHZW5lcmF0b3IoY29uc3Qg
SURCVHJhbnNhY3RpbwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBVbmlxdWVJREJEYXRh
YmFzZUJhY2tpbmdTdG9yZVNRTGl0ZTo6Z2V0S2V5UmVjb3JkRnJvbU9iamVjdFN0b3JlKGNvbnN0
IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllciwgaW50NjRfdCBvYmplY3RTdG9y
ZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXkmIGtleSwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4mIHJlc3VsdCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NF
UlQobV9zcWxpdGVEQik7CisgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKKworICAg
IFNRTGl0ZUlEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldChp
ZGVudGlmaWVyKTsKKyAgICBpZiAoIXRyYW5zYWN0aW9uIHx8ICF0cmFuc2FjdGlvbi0+aW5Qcm9n
cmVzcygpKSB7CisgICAgICAgIExPR19FUlJPUigiQXR0ZW1wdCB0byBwdXQgYSByZWNvcmQgaW50
byBkYXRhYmFzZSB3aXRob3V0IGFuIGVzdGFibGlzaGVkLCBpbi1wcm9ncmVzcyB0cmFuc2FjdGlv
biIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4ga2V5QnVmZmVyID0gc2VyaWFsaXplSURCS2V5KGtleSk7CisgICAgaWYgKCFrZXlCdWZm
ZXIpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gc2VyaWFsaXplIElEQktleSB0byBi
ZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICB7CisgICAgICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJ
TGl0ZXJhbCgiU0VMRUNUIHZhbHVlIEZST00gUmVjb3JkcyBXSEVSRSBvYmplY3RTdG9yZUlEID0g
PyBBTkQga2V5ID0gPzsiKSk7CisgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTFJlc3Vs
dE9rCisgICAgICAgICAgICB8fCBzcWwuYmluZEludDY0KDEsIG9iamVjdFN0b3JlSUQpICE9IFNR
TFJlc3VsdE9rCisgICAgICAgICAgICB8fCBzcWwuYmluZEJsb2IoMiwga2V5QnVmZmVyLT5kYXRh
KCksIGtleUJ1ZmZlci0+c2l6ZSgpKSAhPSBTUUxSZXN1bHRPaykgeworICAgICAgICAgICAgTE9H
X0VSUk9SKCJDb3VsZCBub3QgZ2V0IHJlY29yZCBmcm9tIG9iamVjdCBzdG9yZSAlbGxpIGZyb20g
UmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUlELCBtX3NxbGl0ZURCLT5sYXN0
RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOworICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaW50IHNxbFJlc3VsdCA9IHNxbC5zdGVwKCk7
CisgICAgICAgIGlmIChzcWxSZXN1bHQgPT0gU1FMUmVzdWx0T2sgfHwgc3FsUmVzdWx0ID09IFNR
TFJlc3VsdERvbmUpIHsKKyAgICAgICAgICAgIC8vIFRoZXJlIHdhcyBubyByZWNvcmQgZm9yIHRo
ZSBrZXkgaW4gdGhlIGRhdGFiYXNlLgorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KKyAgICAgICAgaWYgKHNxbFJlc3VsdCAhPSBTUUxSZXN1bHRSb3cpIHsKKyAgICAgICAgICAg
IC8vIFRoZXJlIHdhcyBhbiBlcnJvciBmZXRjaGluZyB0aGUgcmVjb3JkIGZyb20gdGhlIGRhdGFi
YXNlLgorICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgZ2V0IHJlY29yZCBmcm9tIG9i
amVjdCBzdG9yZSAlbGxpIGZyb20gUmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9y
ZUlELCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkp
OworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgVmVjdG9y
PGNoYXI+IGJ1ZmZlcjsKKyAgICAgICAgc3FsLmdldENvbHVtbkJsb2JBc1ZlY3RvcigwLCBidWZm
ZXIpOworICAgICAgICByZXN1bHQgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShzdGF0aWNfY2FzdDxj
b25zdCBjaGFyKj4oYnVmZmVyLmRhdGEoKSksIGJ1ZmZlci5zaXplKCkpOworICAgIH0KKworICAg
IHJldHVybiB0cnVlOworfQorCitib29sIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlOjpnZXRLZXlSYW5nZVJlY29yZEZyb21PYmplY3RTdG9yZShjb25zdCBJREJUcmFuc2FjdGlv
bklkZW50aWZpZXImIGlkZW50aWZpZXIsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgV2Vi
Q29yZTo6SURCS2V5UmFuZ2UmIGtleVJhbmdlLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiYgcmVzdWx0LCBSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiYgcmVzdWx0S2V5KQoreworICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKKyAgICBBU1NF
UlQobV9zcWxpdGVEQi0+aXNPcGVuKCkpOworCisgICAgU1FMaXRlSURCVHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KGlkZW50aWZpZXIpOworICAgIGlmICghdHJh
bnNhY3Rpb24gfHwgIXRyYW5zYWN0aW9uLT5pblByb2dyZXNzKCkpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCBpbnRvIGRhdGFiYXNlIHdpdGhvdXQgYW4gZXN0
YWJsaXNoZWQsIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIik7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICB9CisKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBsb3dlckJ1ZmZlciA9IHNlcmlh
bGl6ZUlEQktleSgqa2V5UmFuZ2UubG93ZXIoKSk7CisgICAgaWYgKCFsb3dlckJ1ZmZlcikgewor
ICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBzZXJpYWxpemUgSURCS2V5IHRvIGJlIHN0b3Jl
ZCBpbiB0aGUgZGF0YWJhc2UiKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHVwcGVyQnVmZmVyID0gc2VyaWFsaXplSURCS2V5KCprZXlS
YW5nZS51cHBlcigpKTsKKyAgICBpZiAoIXVwcGVyQnVmZmVyKSB7CisgICAgICAgIExPR19FUlJP
UigiVW5hYmxlIHRvIHNlcmlhbGl6ZSBJREJLZXkgdG8gYmUgc3RvcmVkIGluIHRoZSBkYXRhYmFz
ZSIpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgeworICAgICAgICBTUUxp
dGVTdGF0ZW1lbnQgc3FsKCptX3NxbGl0ZURCLCBBU0NJSUxpdGVyYWwoIlNFTEVDVCB2YWx1ZSBG
Uk9NIFJlY29yZHMgV0hFUkUgb2JqZWN0U3RvcmVJRCA9ID8gQU5EIGtleSA+PSA/IEFORCBrZXkg
PD0gPyBPUkRFUiBCWSBrZXk7IikpOworICAgICAgICBpZiAoc3FsLnByZXBhcmUoKSAhPSBTUUxS
ZXN1bHRPaworICAgICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAh
PSBTUUxSZXN1bHRPaworICAgICAgICAgICAgfHwgc3FsLmJpbmRCbG9iKDIsIGxvd2VyQnVmZmVy
LT5kYXRhKCksIGxvd2VyQnVmZmVyLT5zaXplKCkpICE9IFNRTFJlc3VsdE9rCisgICAgICAgICAg
ICB8fCBzcWwuYmluZEJsb2IoMywgdXBwZXJCdWZmZXItPmRhdGEoKSwgdXBwZXJCdWZmZXItPnNp
emUoKSkgIT0gU1FMUmVzdWx0T2spIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90
IGdldCBrZXkgcmFuZ2UgcmVjb3JkIGZyb20gb2JqZWN0IHN0b3JlICVsbGkgZnJvbSBSZWNvcmRz
IHRhYmxlICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxhc3RFcnJvcigp
LCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKworICAgICAgICBpbnQgc3FsUmVzdWx0ID0gc3FsLnN0ZXAoKTsKKworICAg
ICAgICBpZiAoc3FsUmVzdWx0ID09IFNRTFJlc3VsdE9rIHx8IHNxbFJlc3VsdCA9PSBTUUxSZXN1
bHREb25lKSB7CisgICAgICAgICAgICAvLyBUaGVyZSB3YXMgbm8gcmVjb3JkIGZvciB0aGUga2V5
IGluIHRoZSBkYXRhYmFzZS4KKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9Cisg
ICAgICAgIGlmIChzcWxSZXN1bHQgIT0gU1FMUmVzdWx0Um93KSB7CisgICAgICAgICAgICAvLyBU
aGVyZSB3YXMgYW4gZXJyb3IgZmV0Y2hpbmcgdGhlIHJlY29yZCBmcm9tIHRoZSBkYXRhYmFzZS4K
KyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IGdldCByZWNvcmQgZnJvbSBvYmplY3Qg
c3RvcmUgJWxsaSBmcm9tIFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgb2JqZWN0U3RvcmVJRCwg
bV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgICAgIFZlY3RvcjxjaGFy
PiBidWZmZXI7CisgICAgICAgIHNxbC5nZXRDb2x1bW5CbG9iQXNWZWN0b3IoMCwgYnVmZmVyKTsK
KyAgICAgICAgcmVzdWx0ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoc3RhdGljX2Nhc3Q8Y29uc3Qg
Y2hhcio+KGJ1ZmZlci5kYXRhKCkpLCBidWZmZXIuc2l6ZSgpKTsKKyAgICB9CisKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworaW50IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlOjpj
b2xsYXRlKGludCBhTGVuZ3RoLCBjb25zdCB2b2lkKiBhLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm9p
ZCogYikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50CisgICAgcmV0dXJuIDA7Cit9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFz
ZVByb2Nlc3MvSW5kZXhlZERCL3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNR
TGl0ZS5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9zcWxpdGUv
VW5pcXVlSURCRGF0YWJhc2VCYWNraW5nU3RvcmVTUUxpdGUuaAppbmRleCA2NDUwM2I1Li5jOTY5
Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L3NxbGl0ZS9VbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZVNRTGl0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvc3FsaXRlL1VuaXF1ZUlEQkRhdGFi
YXNlQmFja2luZ1N0b3JlU1FMaXRlLmgKQEAgLTY5LDYgKzY5LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBwdXRSZWNvcmQoY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgaW50
NjRfdCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXkmLCBjb25zdCB1aW50OF90
KiB2YWx1ZUJ1ZmZlciwgc2l6ZV90IHZhbHVlU2l6ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBi
b29sIHVwZGF0ZUtleUdlbmVyYXRvcihjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYkNvcmU6OklEQktleSYsIGJvb2wgY2hlY2tD
dXJyZW50KSBvdmVycmlkZTsKIAorICAgIHZpcnR1YWwgYm9vbCBnZXRLZXlSZWNvcmRGcm9tT2Jq
ZWN0U3RvcmUoY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgaW50NjRfdCBvYmplY3RT
dG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXkmLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVm
ZmVyPiYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5UmFuZ2VSZWNv
cmRGcm9tT2JqZWN0U3RvcmUoY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgaW50NjRf
dCBvYmplY3RTdG9yZUlELCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZSYsIFJlZlB0cjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+JiByZXN1bHQsIFJlZlB0cjxXZWJDb3JlOjpJREJLZXk+JiByZXN1
bHRLZXkpIG92ZXJyaWRlOworCiBwcml2YXRlOgogICAgIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2lu
Z1N0b3JlU1FMaXRlKGNvbnN0IFVuaXF1ZUlEQkRhdGFiYXNlSWRlbnRpZmllciYsIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpOwogCkBAIC03Niw2ICs3OSw4IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRhdGE+IGV4dHJhY3RF
eGlzdGluZ01ldGFkYXRhKCk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OklEQkRhdGFi
YXNlTWV0YWRhdGE+IGNyZWF0ZUFuZFBvcHVsYXRlSW5pdGlhbE1ldGFkYXRhKCk7CiAKKyAgICBp
bnQgY29sbGF0ZShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgsIGNvbnN0
IHZvaWQqIGIpOworCiAgICAgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKICAgICBTdHJpbmcgbV9hYnNvbHV0ZURhdGFiYXNlRGlyZWN0b3J5OwogCg==
</data>
<flag name="review"
          id="246026"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>