<?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>134033</bug_id>
          
          <creation_ts>2014-06-18 10:42:21 -0700</creation_ts>
          <short_desc>Add CF type cast function templates and use them in KeyedDecoder in WebKit2</short_desc>
          <delta_ts>2014-06-18 11:03:41 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1016483</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-18 10:42:21 -0700</bug_when>
    <thetext>Add CF type cast function templates and use them in KeyedDecoder in WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016484</commentid>
    <comment_count>1</comment_count>
      <attachid>233314</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-18 10:44:51 -0700</bug_when>
    <thetext>Created attachment 233314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016496</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-06-18 11:03:41 -0700</bug_when>
    <thetext>Committed r170108: &lt;http://trac.webkit.org/changeset/170108&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233314</attachid>
            <date>2014-06-18 10:44:51 -0700</date>
            <delta_ts>2014-06-18 10:52:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134033-20140618104432.patch</filename>
            <type>text/plain</type>
            <size>18269</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMTAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4N2IwZjA1OTgxM2MzYzhhMjJmN2Zm
ZTMzMjExMzkyMzQ2N2UzN2QuLjI5ZTA5OTM3MDE2YjhmMWQ4YzA3MmVkZmNjMGNkNDIyM2M3MGEy
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDYtMTggIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgQ0YgdHlwZSBjYXN0IGZ1bmN0aW9uIHRl
bXBsYXRlcyBhbmQgdXNlIHRoZW0gaW4gS2V5ZWREZWNvZGVyIGluIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDAzMworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL2NmL1R5cGVDYXN0cy5oOiBBZGRlZC4KKyAg
ICAgICAgKFdURjo6ZHluYW1pY19jZl9jYXN0KToKKyAgICAgICAgUmV0dXJucyBudWxsIGlmIHRo
ZSBnaXZlbiBDRlR5cGVSZWYgb2JqZWN0IGRvZXNuJ3QgaGF2ZSB0aGUgcmlnaHQgdHlwZS4KKwor
ICAgICAgICAoV1RGOjpjaGVja2VkX2NmX2Nhc3QpOgorICAgICAgICBBU1NFUlRzICh3aXRoIHNl
Y3VyaXR5IGltcGxpY2F0aW9uKSBpZiB0aGUgZ2l2ZW4gQ0ZUeXBlUmVmIG9iamVjdCBpcyBudWxs
IG9yIGRvZXNuJ3QgaGF2ZSB0aGUgcmlnaHQgdHlwZS4KKwogMjAxNC0wNi0xNyAgVGFtYXMgR2Vy
Z2VseSAgPHRnZXJnZWx5LnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAg
TWlzdXNlZCBQTEFURk9STShNSURETEVfRU5ESUFOKSBhbmQgUExBVEZPUk0oQklHX0VORElBTiku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggNDA3OTEzNTI4MmU0ZDVmY2Y3NjYxMTNmNWUyYmFmZGY2Zjg1YTA4OS4u
ODlhZmM0NTE2OTcyNTVmNDBlZjA1YzA0YjVkOTdhYTBlYWMzMjBiZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDE0LTA2LTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIENGIHR5cGUgY2FzdCBmdW5jdGlvbiB0ZW1wbGF0ZXMgYW5k
IHVzZSB0aGVtIGluIEtleWVkRGVjb2RlciBpbiBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQwMzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9jZi9LZXllZERlY29kZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6OktleWVkRGVjb2Rlcik6CisgICAgICAg
IChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZGVjb2RlQnl0ZXMpOgorICAgICAgICAoV2ViS2l0OjpL
ZXllZERlY29kZXI6OmRlY29kZUJvb2wpOgorICAgICAgICAoV2ViS2l0OjpLZXllZERlY29kZXI6
OmRlY29kZUludDMyKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNvZGVyOjpkZWNvZGVJbnQ2
NCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6ZGVjb2RlRmxvYXQpOgorICAgICAg
ICAoV2ViS2l0OjpLZXllZERlY29kZXI6OmRlY29kZURvdWJsZSk6CisgICAgICAgIChXZWJLaXQ6
OktleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6S2V5ZWREZWNv
ZGVyOjpiZWdpbk9iamVjdCk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6YmVnaW5B
cnJheSk6CisgICAgICAgIChXZWJLaXQ6OktleWVkRGVjb2Rlcjo6YmVnaW5BcnJheUVsZW1lbnQp
OgorCiAyMDE0LTA2LTE4ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTZXQgbWFpbiB0aHJlYWQgUW9TIHBvbGljaWVzIGFmdGVyIElQQyBpbml0aWFsaXphdGlv
bi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgyZmQyZWU3
YzI0MTE5NTUxODcxNjg2Yjk3MTNmZWRmODYzMWNkOGMuLmZjOTEzYmE1MTk0NzZkMGJmMTdkNTdm
Y2JkNjFhMjVmOGYyOWNmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNjIsNiArNjIsNyBAQAogCQkxQTZCQjc2OTE2MkYzMDA1MDBERDE2REIgLyogU3Ry
ZWFtQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTZCQjc2ODE2MkYzMDA1MDBERDE2REIgLyogU3RyZWFtQnVmZmVyLmggKi87IH07CiAJCTFB
NkVCMUUwMTg3RDBCRDMwMDMwMTI2RiAvKiBTdHJpbmdWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTZFQjFERjE4N0QwQkQzMDAzMDEyNkYgLyog
U3RyaW5nVmlldy5oICovOyB9OwogCQkxQUNBREQ4NDE4ODQ0ODAxMDBEOEI3MUQgLyogRGVwcmVj
YXRlZFN5bWJvbHNVc2VkQnlTYWZhcmkubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUNBREQ4MjE4ODQ0ODAxMDBEOEI3MUQgLyogRGVwcmVjYXRlZFN5
bWJvbHNVc2VkQnlTYWZhcmkubW0gKi87IH07CisJCTFBRkRFNjQ4MTk1MjAxQzMwMEM0OEZGQSAv
KiBUeXBlQ2FzdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBRkRFNjQ3MTk1MjAxQzMwMEM0OEZGQSAvKiBUeXBlQ2FzdHMuaCAqLzsgfTsKIAkJMUZB
NDdDOEExNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUZBNDdDODgxNTI1MDJEQTAwNTY4RDFC
IC8qIFdlYkNvcmVUaHJlYWQuY3BwICovOyB9OwogCQkxRkE0N0M4QjE1MjUwMkRBMDA1NjhEMUIg
LyogV2ViQ29yZVRocmVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUZBNDdDODkxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLzsg
fTsKIAkJMjYxNDdCMEExNUREQ0NEQzAwRERCOTA3IC8qIEludGVnZXJUb1N0cmluZ0NvbnZlcnNp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2MTQ3
QjA4MTVERENDREMwMEREQjkwNyAvKiBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9uLmggKi87IH07
CkBAIC0zMTksNyArMzIwLDcgQEAKIAkJMEZEREJGQTUxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmlu
Z1ByaW50U3RyZWFtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0
cmluZ1ByaW50U3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEREJG
QTYxNjY2REZBMzAwQzU1RkVGIC8qIFN0cmluZ1ByaW50U3RyZWFtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ1ByaW50U3RyZWFtLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGRUMzRUU0MTcxQjgzNDcwMEZEQUM4RCAvKiBCeXRlU3BpbkxvY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQnl0ZVNwaW5Mb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTE0MDIyRjQwMThGNUMzRkMwMDdGRjBFQiAvKiBsaWJibWFsbG9jLmEgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBuYW1lID0g
bGliYm1hbGxvYy5hOyBwYXRoID0gbGliYm1hbGxvYy5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQkxNDAyMkY0MDE4RjVDM0ZDMDA3RkYwRUIgLyogbGliYm1hbGxvYy5h
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gYXJjaGl2
ZS5hcjsgcGF0aCA9IGxpYmJtYWxsb2MuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJMTQzRjYxMUQxNTY1RjBGOTAwREI1MTRBIC8qIFJBTVNpemUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUkFNU2l6ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0M0Y2MTFFMTU2NUYwRjkwMERCNTE0QSAvKiBSQU1TaXplLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJBTVNpemUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMTQ0N0FFQkUxOEZDRTU2OTAwQjNEN0ZGIC8qIGxpYm1ibWFsbG9jLmR5
bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29t
cGlsZWQubWFjaC1vLmR5bGliIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGlibWJtYWxs
b2MuZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0zNDMsMTMg
KzM0NCwxNCBAQAogCQkxQTZCQjc2ODE2MkYzMDA1MDBERDE2REIgLyogU3RyZWFtQnVmZmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmVhbUJ1ZmZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZFQjFERjE4N0QwQkQzMDAzMDEyNkYgLyogU3RyaW5n
Vmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdWaWV3Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQ0FERDgyMTg4NDQ4MDEwMEQ4QjcxRCAvKiBE
ZXByZWNhdGVkU3ltYm9sc1VzZWRCeVNhZmFyaS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IERlcHJlY2F0ZWRTeW1ib2xzVXNlZEJ5U2FmYXJpLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxQUZERTY0NzE5NTIwMUMzMDBDNDhGRkEgLyogVHlwZUNh
c3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFR5cGVDYXN0cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRkE0N0M4ODE1MjUwMkRBMDA1NjhEMUIgLyogV2Vi
Q29yZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJD
b3JlVGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUZBNDdDODkxNTI1
MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ29yZVRocmVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
NjE0N0IwODE1RERDQ0RDMDBEREI5MDcgLyogSW50ZWdlclRvU3RyaW5nQ29udmVyc2lvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnRlZ2VyVG9TdHJpbmdDb252ZXJzaW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2Mjk5QjZEMTdBOUU1QjgwMEFERUJF
NSAvKiBSZWYuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDMDUzODUzMTVCQzgxOTAwMEYyMUI5NiAvKiBHcmVn
b3JpYW5EYXRlVGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmVnb3Jp
YW5EYXRlVGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0NEODkyOTE1QzAz
OTAyMDAyODUwODMgLyogR3JlZ29yaWFuRGF0ZVRpbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gR3JlZ29yaWFuRGF0ZVRpbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENGLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJ1bkxvb3BDRi5jcHA7IHBhdGgg
PSBjZi9SdW5Mb29wQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0RFRDBF
RTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3BDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJDREVEMEYxMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bkxvb3AuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyQ0RFRDBGMjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSdW5Mb29wLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0REVFNzRBMTUyMjc0QkIwMEM2RUMzNyAvKiBpT1MueGNjb25maWcgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gaU9TLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjEzLDggKzYxNSw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAogCQkJCTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3Bw
ICovLAorCQkJCTFBRkRFNjQ3MTk1MjAxQzMwMEM0OEZGQSAvKiBUeXBlQ2FzdHMuaCAqLywKIAkJ
CSk7Ci0JCQluYW1lID0gY2Y7CisJCQlwYXRoID0gY2Y7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OwogCQk1RDI0N0I1NzE0Njg5Qjg2MDBFNzhCNzYgPSB7CkBAIC0xMTMxLDYgKzEx
MzQsNyBAQAogCQkJCUE4QTQ3NDFGMTUxQTgyNUIwMDQxMjNGRiAvKiBTZWdtZW50ZWRWZWN0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDIwMTUxQTgyNUIwMDQxMjNGRiAvKiBTZW50aW5l
bExpbmtlZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDIyMTUxQTgyNUIwMDQxMjNG
RiAvKiBTSEExLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQUZERTY0ODE5NTIwMUMzMDBDNDhGRkEg
LyogVHlwZUNhc3RzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQyMzE1MUE4MjVCMDA0MTIz
RkYgLyogU2ltcGxlU3RhdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDI0MTUxQTgyNUIw
MDQxMjNGRiAvKiBTaW5nbHlMaW5rZWRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzQ4NzQ1
MzE3QTBCREFFMDBGQTA0Q0IgLyogU2l4Q2hhcmFjdGVySGFzaC5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jZi9UeXBlQ2FzdHMuaCBiL1NvdXJjZS9XVEYvd3Rm
L2NmL1R5cGVDYXN0cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3NWNhNGQ0NjllNGRkNWEwOTU5YWY1NWM5NTBj
ZjlmNzQ5NTNkMTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jZi9UeXBlQ2Fz
dHMuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUeXBlQ2FzdHNfaAor
I2RlZmluZSBUeXBlQ2FzdHNfaAorCisjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5k
YXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGUgPHR5cGVuYW1lPiBzdHJ1Y3QgQ0ZUeXBlVHJhaXQ7CisKKyNkZWZpbmUgREVD
TEFSRV9DRl9UWVBFX1RSQUlUKENsYXNzTmFtZSkgXAordGVtcGxhdGUgPD4gXAorc3RydWN0IENG
VHlwZVRyYWl0PENsYXNzTmFtZSMjUmVmPiB7IFwKKyAgICBzdGF0aWMgaW5saW5lIENGVHlwZUlE
IHR5cGVJRCgpIHsgcmV0dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlEKCk7IH0gXAorfTsKKworREVD
TEFSRV9DRl9UWVBFX1RSQUlUKENGQXJyYXkpOworREVDTEFSRV9DRl9UWVBFX1RSQUlUKENGQm9v
bGVhbik7CitERUNMQVJFX0NGX1RZUEVfVFJBSVQoQ0ZEYXRhKTsKK0RFQ0xBUkVfQ0ZfVFlQRV9U
UkFJVChDRkRpY3Rpb25hcnkpOworREVDTEFSRV9DRl9UWVBFX1RSQUlUKENGTnVtYmVyKTsKK0RF
Q0xBUkVfQ0ZfVFlQRV9UUkFJVChDRlN0cmluZyk7CisKKyN1bmRlZiBERUNMQVJFX0NGX1RZUEVf
VFJBSVQKKwordGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBkeW5hbWljX2NmX2Nhc3QoQ0ZUeXBlUmVm
IG9iamVjdCkKK3sKKyAgICBpZiAoIW9iamVjdCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBpZiAoQ0ZHZXRUeXBlSUQob2JqZWN0KSAhPSBDRlR5cGVUcmFpdDxUPjo6dHlwZUlEKCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQ+KG9i
amVjdCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IFQgY2hlY2tlZF9jZl9jYXN0KENGVHlw
ZVJlZiBvYmplY3QpCit7CisgICAgYXV0byByZXN1bHQgPSBkeW5hbWljX2NmX2Nhc3Q8VD4ob2Jq
ZWN0KTsKKyAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihyZXN1bHQpOworCisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6
Y2hlY2tlZF9jZl9jYXN0OwordXNpbmcgV1RGOjpkeW5hbWljX2NmX2Nhc3Q7CisKKyNlbmRpZiAv
LyBUeXBlQ2FzdHNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2NmL0tleWVk
RGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2YvS2V5ZWREZWNvZGVyLmNwcApp
bmRleCBlNGU2NjFhOWNjMWI3ZGY3NmJjNjcwNTgxNjU4ZmZhMzhiOTNmNWViLi42NDk5OGM5Nzdh
ZDJlOGRmYzMxNWIyNzU0ZjY5OTUxMGZjNzBjMDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvY2YvS2V5ZWREZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
Y2YvS2V5ZWREZWNvZGVyLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIktleWVkRGVjb2Rlci5oIgogCisjaW5jbHVkZSA8d3RmL2NmL1R5cGVDYXN0
cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTMzLDEwICszNCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogS2V5ZWREZWNvZGVyOjpL
ZXllZERlY29kZXIoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCiB7CiAgICAgYXV0
byBjZkRhdGEgPSBhZG9wdENGKENGRGF0YUNyZWF0ZVdpdGhCeXRlc05vQ29weShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBkYXRhLCBzaXplLCBrQ0ZBbGxvY2F0b3JOdWxsKSk7Ci0gICAgYXV0byByb290
RGljdGlvbmFyeSA9IGFkb3B0Q0YoQ0ZQcm9wZXJ0eUxpc3RDcmVhdGVXaXRoRGF0YShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBjZkRhdGEuZ2V0KCksIGtDRlByb3BlcnR5TGlzdEltbXV0YWJsZSwgbnVs
bHB0ciwgbnVsbHB0cikpOwogCi0gICAgaWYgKHJvb3REaWN0aW9uYXJ5ICYmIENGR2V0VHlwZUlE
KHJvb3REaWN0aW9uYXJ5LmdldCgpKSA9PSBDRkRpY3Rpb25hcnlHZXRUeXBlSUQoKSkKLSAgICAg
ICAgbV9yb290RGljdGlvbmFyeSA9IGFkb3B0Q0Yoc3RhdGljX2Nhc3Q8Q0ZEaWN0aW9uYXJ5UmVm
Pihyb290RGljdGlvbmFyeS5sZWFrUmVmKCkpKTsKKyAgICBpZiAoYXV0byByb290RGljdGlvbmFy
eSA9IGFkb3B0Q0YoZHluYW1pY19jZl9jYXN0PENGRGljdGlvbmFyeVJlZj4oQ0ZQcm9wZXJ0eUxp
c3RDcmVhdGVXaXRoRGF0YShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBjZkRhdGEuZ2V0KCksIGtDRlBy
b3BlcnR5TGlzdEltbXV0YWJsZSwgbnVsbHB0ciwgbnVsbHB0cikpKSkKKyAgICAgICAgbV9yb290
RGljdGlvbmFyeSA9IHN0ZDo6bW92ZShyb290RGljdGlvbmFyeSk7CiAgICAgZWxzZQogICAgICAg
ICBtX3Jvb3REaWN0aW9uYXJ5ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgbnVsbHB0ciwgbnVsbHB0ciwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2Fs
bEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgIG1fZGljdGlv
bmFyeVN0YWNrLmFwcGVuZChtX3Jvb3REaWN0aW9uYXJ5LmdldCgpKTsKQEAgLTUyLDggKzUyLDgg
QEAgS2V5ZWREZWNvZGVyOjp+S2V5ZWREZWNvZGVyKCkKIAogYm9vbCBLZXllZERlY29kZXI6OmRl
Y29kZUJ5dGVzKGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCB1aW50OF90KiYgYnl0ZXMsIHNpemVf
dCYgc2l6ZSkKIHsKLSAgICBDRkRhdGFSZWYgZGF0YSA9IHN0YXRpY19jYXN0PENGRGF0YVJlZj4o
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUobV9kaWN0aW9uYXJ5U3RhY2subGFzdCgpLCBrZXkuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSkpOwotICAgIGlmICghZGF0YSB8fCBDRkdldFR5cGVJRChkYXRhKSAh
PSBDRkRhdGFHZXRUeXBlSUQoKSkKKyAgICBhdXRvIGRhdGEgPSBkeW5hbWljX2NmX2Nhc3Q8Q0ZE
YXRhUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0KCksIGtl
eS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgaWYgKCFkYXRhKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBieXRlcyA9IENGRGF0YUdldEJ5dGVQdHIoZGF0YSk7CkBAIC02Myw4
ICs2Myw4IEBAIGJvb2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVCeXRlcyhjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgdWludDhfdComIGJ5dGVzLCBzaXplX3QmCiAKIGJvb2wgS2V5ZWREZWNvZGVyOjpk
ZWNvZGVCb29sKGNvbnN0IFN0cmluZyYga2V5LCBib29sJiByZXN1bHQpCiB7Ci0gICAgQ0ZCb29s
ZWFuUmVmIGJvb2xlYW4gPSBzdGF0aWNfY2FzdDxDRkJvb2xlYW5SZWY+KENGRGljdGlvbmFyeUdl
dFZhbHVlKG1fZGljdGlvbmFyeVN0YWNrLmxhc3QoKSwga2V5LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0
KCkpKTsKLSAgICBpZiAoIWJvb2xlYW4gfHwgQ0ZHZXRUeXBlSUQoYm9vbGVhbikgIT0gQ0ZCb29s
ZWFuR2V0VHlwZUlEKCkpCisgICAgYXV0byBib29sZWFuID0gZHluYW1pY19jZl9jYXN0PENGQm9v
bGVhblJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUobV9kaWN0aW9uYXJ5U3RhY2subGFzdCgpLCBr
ZXkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIGlmICghYm9vbGVhbikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmVzdWx0ID0gQ0ZCb29sZWFuR2V0VmFsdWUoYm9vbGVhbik7
CkBAIC03OCw4ICs3OCw4IEBAIGJvb2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVVSW50MzIoY29uc3Qg
U3RyaW5nJiBrZXksIHVpbnQzMl90JiByZXN1bHQpCiAKIGJvb2wgS2V5ZWREZWNvZGVyOjpkZWNv
ZGVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgaW50MzJfdCYgcmVzdWx0KQogewotICAgIENGTnVt
YmVyUmVmIG51bWJlciA9IHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRW
YWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0KCksIGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgp
KSk7Ci0gICAgaWYgKCFudW1iZXIgfHwgQ0ZHZXRUeXBlSUQobnVtYmVyKSAhPSBDRk51bWJlckdl
dFR5cGVJRCgpKQorICAgIGF1dG8gbnVtYmVyID0gZHluYW1pY19jZl9jYXN0PENGTnVtYmVyUmVm
PihDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0KCksIGtleS5jcmVh
dGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgaWYgKCFudW1iZXIpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIHJldHVybiBDRk51bWJlckdldFZhbHVlKG51bWJlciwga0NGTnVtYmVyU0lu
dDMyVHlwZSwgJnJlc3VsdCk7CkBAIC04Nyw4ICs4Nyw4IEBAIGJvb2wgS2V5ZWREZWNvZGVyOjpk
ZWNvZGVJbnQzMihjb25zdCBTdHJpbmcmIGtleSwgaW50MzJfdCYgcmVzdWx0KQogCiBib29sIEtl
eWVkRGVjb2Rlcjo6ZGVjb2RlSW50NjQoY29uc3QgU3RyaW5nJiBrZXksIGludDY0X3QmIHJlc3Vs
dCkKIHsKLSAgICBDRk51bWJlclJlZiBudW1iZXIgPSBzdGF0aWNfY2FzdDxDRk51bWJlclJlZj4o
Q0ZEaWN0aW9uYXJ5R2V0VmFsdWUobV9kaWN0aW9uYXJ5U3RhY2subGFzdCgpLCBrZXkuY3JlYXRl
Q0ZTdHJpbmcoKS5nZXQoKSkpOwotICAgIGlmICghbnVtYmVyIHx8IENGR2V0VHlwZUlEKG51bWJl
cikgIT0gQ0ZOdW1iZXJHZXRUeXBlSUQoKSkKKyAgICBhdXRvIG51bWJlciA9IGR5bmFtaWNfY2Zf
Y2FzdDxDRk51bWJlclJlZj4oQ0ZEaWN0aW9uYXJ5R2V0VmFsdWUobV9kaWN0aW9uYXJ5U3RhY2su
bGFzdCgpLCBrZXkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOworICAgIGlmICghbnVtYmVyKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gQ0ZOdW1iZXJHZXRWYWx1ZShudW1i
ZXIsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZyZXN1bHQpOwpAQCAtOTYsOCArOTYsOCBAQCBib29s
IEtleWVkRGVjb2Rlcjo6ZGVjb2RlSW50NjQoY29uc3QgU3RyaW5nJiBrZXksIGludDY0X3QmIHJl
c3VsdCkKIAogYm9vbCBLZXllZERlY29kZXI6OmRlY29kZUZsb2F0KGNvbnN0IFN0cmluZyYga2V5
LCBmbG9hdCYgcmVzdWx0KQogewotICAgIENGTnVtYmVyUmVmIG51bWJlciA9IHN0YXRpY19jYXN0
PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0
KCksIGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7Ci0gICAgaWYgKCFudW1iZXIgfHwgQ0ZH
ZXRUeXBlSUQobnVtYmVyKSAhPSBDRk51bWJlckdldFR5cGVJRCgpKQorICAgIGF1dG8gbnVtYmVy
ID0gZHluYW1pY19jZl9jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2Rp
Y3Rpb25hcnlTdGFjay5sYXN0KCksIGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAg
aWYgKCFudW1iZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBDRk51bWJl
ckdldFZhbHVlKG51bWJlciwga0NGTnVtYmVyRmxvYXRUeXBlLCAmcmVzdWx0KTsKQEAgLTEwNSw4
ICsxMDUsOCBAQCBib29sIEtleWVkRGVjb2Rlcjo6ZGVjb2RlRmxvYXQoY29uc3QgU3RyaW5nJiBr
ZXksIGZsb2F0JiByZXN1bHQpCiAKIGJvb2wgS2V5ZWREZWNvZGVyOjpkZWNvZGVEb3VibGUoY29u
c3QgU3RyaW5nJiBrZXksIGRvdWJsZSYgcmVzdWx0KQogewotICAgIENGTnVtYmVyUmVmIG51bWJl
ciA9IHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2RpY3Rp
b25hcnlTdGFjay5sYXN0KCksIGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7Ci0gICAgaWYg
KCFudW1iZXIgfHwgQ0ZHZXRUeXBlSUQobnVtYmVyKSAhPSBDRk51bWJlckdldFR5cGVJRCgpKQor
ICAgIGF1dG8gbnVtYmVyID0gZHluYW1pY19jZl9jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25h
cnlHZXRWYWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0KCksIGtleS5jcmVhdGVDRlN0cmluZygp
LmdldCgpKSk7CisgICAgaWYgKCFudW1iZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IHJldHVybiBDRk51bWJlckdldFZhbHVlKG51bWJlciwga0NGTnVtYmVyRG91YmxlVHlwZSwgJnJl
c3VsdCk7CkBAIC0xMTQsOCArMTE0LDggQEAgYm9vbCBLZXllZERlY29kZXI6OmRlY29kZURvdWJs
ZShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlJiByZXN1bHQpCiAKIGJvb2wgS2V5ZWREZWNvZGVy
OjpkZWNvZGVTdHJpbmcoY29uc3QgU3RyaW5nJiBrZXksIFN0cmluZyYgcmVzdWx0KQogewotICAg
IENGU3RyaW5nUmVmIHN0cmluZyA9IHN0YXRpY19jYXN0PENGU3RyaW5nUmVmPihDRkRpY3Rpb25h
cnlHZXRWYWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0KCksIGtleS5jcmVhdGVDRlN0cmluZygp
LmdldCgpKSk7Ci0gICAgaWYgKCFzdHJpbmcgfHwgQ0ZHZXRUeXBlSUQoc3RyaW5nKSAhPSBDRlN0
cmluZ0dldFR5cGVJRCgpKQorICAgIGF1dG8gc3RyaW5nID0gZHluYW1pY19jZl9jYXN0PENGU3Ry
aW5nUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0KCksIGtl
eS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7CisgICAgaWYgKCFzdHJpbmcpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIHJlc3VsdCA9IHN0cmluZzsKQEAgLTEyNCw4ICsxMjQsOCBAQCBi
b29sIEtleWVkRGVjb2Rlcjo6ZGVjb2RlU3RyaW5nKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcm
IHJlc3VsdCkKIAogYm9vbCBLZXllZERlY29kZXI6OmJlZ2luT2JqZWN0KGNvbnN0IFN0cmluZyYg
a2V5KQogewotICAgIENGRGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5ID0gc3RhdGljX2Nhc3Q8Q0ZE
aWN0aW9uYXJ5UmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0
KCksIGtleS5jcmVhdGVDRlN0cmluZygpLmdldCgpKSk7Ci0gICAgaWYgKCFkaWN0aW9uYXJ5IHx8
IENGR2V0VHlwZUlEKGRpY3Rpb25hcnkpICE9IENGRGljdGlvbmFyeUdldFR5cGVJRCgpKQorICAg
IGF1dG8gZGljdGlvbmFyeSA9IGR5bmFtaWNfY2ZfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGRGlj
dGlvbmFyeUdldFZhbHVlKG1fZGljdGlvbmFyeVN0YWNrLmxhc3QoKSwga2V5LmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCkpKTsKKyAgICBpZiAoIWRpY3Rpb25hcnkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIG1fZGljdGlvbmFyeVN0YWNrLmFwcGVuZChkaWN0aW9uYXJ5KTsKQEAgLTEzOSw4
ICsxMzksOCBAQCB2b2lkIEtleWVkRGVjb2Rlcjo6ZW5kT2JqZWN0KCkKIAogYm9vbCBLZXllZERl
Y29kZXI6OmJlZ2luQXJyYXkoY29uc3QgU3RyaW5nJiBrZXkpCiB7Ci0gICAgQ0ZBcnJheVJlZiBh
cnJheSA9IHN0YXRpY19jYXN0PENGQXJyYXlSZWY+KENGRGljdGlvbmFyeUdldFZhbHVlKG1fZGlj
dGlvbmFyeVN0YWNrLmxhc3QoKSwga2V5LmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKLSAgICBp
ZiAoIWFycmF5IHx8IENGR2V0VHlwZUlEKGFycmF5KSAhPSBDRkFycmF5R2V0VHlwZUlEKCkpCisg
ICAgYXV0byBhcnJheSA9IGR5bmFtaWNfY2ZfY2FzdDxDRkFycmF5UmVmPihDRkRpY3Rpb25hcnlH
ZXRWYWx1ZShtX2RpY3Rpb25hcnlTdGFjay5sYXN0KCksIGtleS5jcmVhdGVDRlN0cmluZygpLmdl
dCgpKSk7CisgICAgaWYgKCFhcnJheSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9y
IChDRkluZGV4IGkgPSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGFycmF5KTsgKytpKSB7CkBAIC0x
NTksNyArMTU5LDcgQEAgYm9vbCBLZXllZERlY29kZXI6OmJlZ2luQXJyYXlFbGVtZW50KCkKICAg
ICBpZiAobV9hcnJheUluZGV4U3RhY2subGFzdCgpID49IENGQXJyYXlHZXRDb3VudChtX2FycmF5
U3RhY2subGFzdCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQ0ZEaWN0aW9uYXJ5
UmVmIGRpY3Rpb25hcnkgPSBzdGF0aWNfY2FzdDxDRkRpY3Rpb25hcnlSZWY+KENGQXJyYXlHZXRW
YWx1ZUF0SW5kZXgobV9hcnJheVN0YWNrLmxhc3QoKSwgbV9hcnJheUluZGV4U3RhY2subGFzdCgp
KyspKTsKKyAgICBhdXRvIGRpY3Rpb25hcnkgPSBjaGVja2VkX2NmX2Nhc3Q8Q0ZEaWN0aW9uYXJ5
UmVmPihDRkFycmF5R2V0VmFsdWVBdEluZGV4KG1fYXJyYXlTdGFjay5sYXN0KCksIG1fYXJyYXlJ
bmRleFN0YWNrLmxhc3QoKSsrKSk7CiAgICAgbV9kaWN0aW9uYXJ5U3RhY2suYXBwZW5kKGRpY3Rp
b25hcnkpOwogICAgIHJldHVybiB0cnVlOwogfQo=
</data>
<flag name="review"
          id="257811"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>