<?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>155244</bug_id>
          
          <creation_ts>2016-03-09 11:37:12 -0800</creation_ts>
          <short_desc>Rename WebCore/platform/crypto/mac/CryptoDigestMac.cpp to WebCore/platform/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp</short_desc>
          <delta_ts>2016-03-09 12:25:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Local 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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1172641</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-09 11:37:12 -0800</bug_when>
    <thetext>We should rename WebCore/platform/crypto/mac/CryptoDigestMac.cpp to WebCore/platform/crypto/cocoa/CryptoDigestCocoa.cpp since this file can be used on both iOS and OS X.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172643</commentid>
    <comment_count>1</comment_count>
      <attachid>273448</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-09 11:39:51 -0800</bug_when>
    <thetext>Created attachment 273448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172644</commentid>
    <comment_count>2</comment_count>
      <attachid>273448</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-09 11:40:54 -0800</bug_when>
    <thetext>Comment on attachment 273448
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +        * PlatformMac.cmake:

Will add an empty line between these two lines before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172648</commentid>
    <comment_count>3</comment_count>
      <attachid>273448</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-09 11:49:01 -0800</bug_when>
    <thetext>Comment on attachment 273448
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +        The file WebCore/platform/crypto/mac/CryptoDigestMac.cpp is applicable to both iOS and OS X.
&gt; +        We should move and rename this file to reflect that is applicable to both of these platforms.

This is a slight improvement, although possibly not the best name. This file does not use Cocoa.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172668</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-09 12:17:04 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 273448 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=273448&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:7
&gt; &gt; +        The file WebCore/platform/crypto/mac/CryptoDigestMac.cpp is applicable to both iOS and OS X.
&gt; &gt; +        We should move and rename this file to reflect that is applicable to both of these platforms.
&gt; 
&gt; This is a slight improvement, although possibly not the best name. This file
&gt; does not use Cocoa.

As per our conversation on IRC today, will rename file WebCore/platform/crypto/mac/CryptoDigestMac.cpp to WebCore/platform/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1172676</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-03-09 12:25:16 -0800</bug_when>
    <thetext>Committed r197871: &lt;http://trac.webkit.org/changeset/197871&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273448</attachid>
            <date>2016-03-09 11:39:51 -0800</date>
            <delta_ts>2016-03-09 11:48:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155244-20160309113938.patch</filename>
            <type>text/plain</type>
            <size>20250</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk3ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQzODI2ZTMwZmI1YWVl
ZjY4ZjhhMGQwZTI2YmM2MzY2ZGFmOTQ2Yi4uYTJiMTJhYzAyMTY0NTNhNzQwODA1YWI3N2I2NmNj
ZjhkYjNmMDkyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE2LTAzLTA5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgV2ViQ29yZS9w
bGF0Zm9ybS9jcnlwdG8vbWFjL0NyeXB0b0RpZ2VzdE1hYy5jcHAgdG8gV2ViQ29yZS9wbGF0Zm9y
bS9jcnlwdG8vY29jb2EvQ3J5cHRvRGlnZXN0Q29jb2EuY3BwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTUyNDQKKworICAgICAgICBUaGUgZmlsZSBX
ZWJDb3JlL3BsYXRmb3JtL2NyeXB0by9tYWMvQ3J5cHRvRGlnZXN0TWFjLmNwcCBpcyBhcHBsaWNh
YmxlIHRvIGJvdGggaU9TIGFuZCBPUyBYLgorICAgICAgICBXZSBzaG91bGQgbW92ZSBhbmQgcmVu
YW1lIHRoaXMgZmlsZSB0byByZWZsZWN0IHRoYXQgaXMgYXBwbGljYWJsZSB0byBib3RoIG9mIHRo
ZXNlIHBsYXRmb3Jtcy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAg
ICAgICAgKiBQbGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vY3J5cHRvL2NvY29hL0NyeXB0b0Rp
Z2VzdENvY29hLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NyeXB0
by9tYWMvQ3J5cHRvRGlnZXN0TWFjLmNwcC4KKwogMjAxNi0wMy0wOCAgRGFuaWVsIEJhdGVzICA8
ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ1NQOiBJbXBsZW1lbnQgc3VwcG9ydCBmb3Ig
aW5saW5lIHNjcmlwdCBhbmQgaW5saW5lIHN0eWxlIGhhc2hlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5j
bWFrZQppbmRleCBmODJjZjA5N2VlMjVhMDEyZWNiODZmZTk3NTU4NTdlNGQyNWM2ZjgyLi5jNmE2
ODEyZmM4MDkzZjcxODFmYTQwODg0N2EwMmU1NGI0NmMwYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1h
Yy5jbWFrZQpAQCAtMzM5LDcgKzMzOSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwog
ICAgIHBsYXRmb3JtL2NvY29hL1ZOb2RlVHJhY2tlckNvY29hLmNwcAogICAgIHBsYXRmb3JtL2Nv
Y29hL1dlYkNvcmVOU0Vycm9yRXh0cmFzLm1tCiAKLSAgICBwbGF0Zm9ybS9jcnlwdG8vbWFjL0Ny
eXB0b0RpZ2VzdE1hYy5jcHAKKyAgICBwbGF0Zm9ybS9jcnlwdG8vbWFjL0NyeXB0b0RpZ2VzdENv
Y29hLmNwcAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNw
cAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggYzEyNjhhNjM4ODU5Zjc0NThhMTQ1OTdhNGM2YmM1ODIxODY1MzRiYy4uOTVlYTg1NzE0
ZDJhZDJmMzdmY2I5NjI4ZmE0Zjk0NjAwYTI4ZjkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjU0Myw3ICs2NTQzLDcgQEAK
IAkJRTFGODBCOEExODMxNzJBMjAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpckN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4OTE4
MzE3MkEyMDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRTFG
ODBCOEQxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUY4MEI4QjE4MzE3MkI1MDA3ODg1
QzMgLyogSlNDcnlwdG9LZXlQYWlyLmNwcCAqLzsgfTsKIAkJRTFGODBCOEUxODMxNzJCNTAwNzg4
NUMzIC8qIEpTQ3J5cHRvS2V5UGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFGODBCOEMxODMxNzJCNTAwNzg4NUMzIC8qIEpTQ3J5cHRvS2V5UGFp
ci5oICovOyB9OwotCQlFMUZFMTM2NDE4MzQzNTExMDA4OTJGMTMgLyogQ3J5cHRvRGlnZXN0TWFj
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUx
MzYyMTgzNDM1MTEwMDg5MkYxMyAvKiBDcnlwdG9EaWdlc3RNYWMuY3BwICovOyB9OworCQlFMUZF
MTM2NDE4MzQzNTExMDA4OTJGMTMgLyogQ3J5cHRvRGlnZXN0Q29jb2EuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNjIxODM0MzUxMTAwODky
RjEzIC8qIENyeXB0b0RpZ2VzdENvY29hLmNwcCAqLzsgfTsKIAkJRTFGRTEzNjcxODM0M0ExMDAw
ODkyRjEzIC8qIENyeXB0b0RpZ2VzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFGRTEzNjYxODM0M0ExMDAwODkyRjEzIC8qIENyeXB0b0RpZ2VzdC5o
ICovOyB9OwogCQlFMUZFMTM2QTE4M0ZFMUFCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNB
X09BRVAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFGRTEzNjgxODNGRTFBQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcCAq
LzsgfTsKIAkJRTFGRTEzNkIxODNGRTFBQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJTQV9P
QUVQLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZF
MTM2OTE4M0ZFMUFCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaCAqLzsgfTsK
QEAgLTE0NTg4LDggKzE0NTg4LDggQEAKIAkJRTFGODBCODkxODMxNzJBMjAwNzg4NUMzIC8qIEpT
Q3J5cHRvS2V5UGFpckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0NyeXB0b0tleVBhaXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUY4MEI4QjE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3J5cHRvS2V5UGFpci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRjgwQjhDMTgzMTcyQjUwMDc4ODVDMyAvKiBK
U0NyeXB0b0tleVBhaXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDcnlw
dG9LZXlQYWlyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxRkUxMzYyMTgzNDM1
MTEwMDg5MkYxMyAvKiBDcnlwdG9EaWdlc3RNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQ3J5cHRvRGlnZXN0TWFjLmNwcDsgcGF0aCA9IGNyeXB0by9tYWMvQ3J5
cHRvRGlnZXN0TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRTEzNjYx
ODM0M0ExMDAwODkyRjEzIC8qIENyeXB0b0RpZ2VzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBDcnlwdG9EaWdlc3QuaDsgcGF0aCA9IGNyeXB0by9DcnlwdG9EaWdlc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTFGRTEzNjIxODM0MzUxMTAwODkyRjEzIC8q
IENyeXB0b0RpZ2VzdENvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENyeXB0b0RpZ2VzdENvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTFGRTEzNjYxODM0M0ExMDAwODkyRjEzIC8qIENyeXB0b0RpZ2VzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9EaWdlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFGRTEzNjgxODNGRTFBQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJTQV9P
QUVQLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29y
aXRobVJTQV9PQUVQLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRTEzNjkx
ODNGRTFBQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzZFMTgzRkVDRjAwMDg5MkYxMyAvKiBDcnlwdG9B
bGdvcml0aG1SU0FfT0FFUE1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMzIzOSwxOCArMjMyMzksMTggQEAKIAkJQ0U1MEQ4Q0UxQzg5MzJFRDAwNzJF
QTVBIC8qIGNyeXB0byAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJQ0U1MEQ4Q0YxQzg5MzJGQjAwNzJFQTVBIC8qIG1hYyAqLywKKwkJCQlDRTUwRDhDRjFD
ODkzMkZCMDA3MkVBNUEgLyogY29jb2EgKi8sCiAJCQkJRTFGRTEzNjYxODM0M0ExMDAwODkyRjEz
IC8qIENyeXB0b0RpZ2VzdC5oICovLAogCQkJKTsKLQkJCW5hbWUgPSBjcnlwdG87CisJCQlwYXRo
ID0gY3J5cHRvOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKLQkJQ0U1MEQ4Q0Yx
Qzg5MzJGQjAwNzJFQTVBIC8qIG1hYyAqLyA9IHsKKwkJQ0U1MEQ4Q0YxQzg5MzJGQjAwNzJFQTVB
IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJ
CQlFMUZFMTM2MjE4MzQzNTExMDA4OTJGMTMgLyogQ3J5cHRvRGlnZXN0TWFjLmNwcCAqLywKKwkJ
CQlFMUZFMTM2MjE4MzQzNTExMDA4OTJGMTMgLyogQ3J5cHRvRGlnZXN0Q29jb2EuY3BwICovLAog
CQkJKTsKLQkJCW5hbWUgPSBtYWM7CisJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OwogCQlERjlBRkQ2RjEzRkMzMUIwMDAxNUZFQjcgLyogb2JqYyAqLyA9
IHsKQEAgLTI5Mjc4LDcgKzI5Mjc4LDcgQEAKIAkJCQlFMTlBQzNGMDE4MjREQzc5MDAzNDk0MjYg
LyogQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOUFDM0Yy
MTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTE5QUMzRjQxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTUx
Mi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMUZFMTM2NDE4MzQzNTExMDA4OTJGMTMgLyogQ3J5
cHRvRGlnZXN0TWFjLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUUxRkUxMzY0MTgzNDM1MTEwMDg5
MkYxMyAvKiBDcnlwdG9EaWdlc3RDb2NvYS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMTU3QThF
NDE4MTczQTNBMDA5RjgyMUQgLyogQ3J5cHRvS2V5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
MjVGODREMTgyNDI4OUQwMEQ4NENEOSAvKiBDcnlwdG9LZXlBRVMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTEyNUY4NjMxODJDMzAzQTAwRDg0Q0Q5IC8qIENyeXB0b0tleURhdGFPY3RldFNlcXVl
bmNlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY3J5cHRvL2NvY29hL0NyeXB0b0RpZ2VzdENvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NyeXB0by9jb2NvYS9DcnlwdG9EaWdlc3RDb2NvYS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNm
ZmM1NjA1MjI2YjY0YjQ5MzczYmVhNjg1ZTkyM2YwMTk5YmI0ZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NyeXB0by9jb2NvYS9DcnlwdG9EaWdlc3RDb2NvYS5j
cHAKQEAgLTAsMCArMSwxNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQ3J5cHRvRGlnZXN0LmgiCisKKyNpbmNsdWRlIDxDb21tb25DcnlwdG8vQ29tbW9u
Q3J5cHRvLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IENyeXB0b0RpZ2VzdENv
bnRleHQgeworICAgIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtIGFsZ29yaXRobTsKKyAgICB2b2lk
KiBjY0NvbnRleHQ7Cit9OworCitpbmxpbmUgQ0NfU0hBMV9DVFgqIHRvU0hBMUNvbnRleHQoQ3J5
cHRvRGlnZXN0Q29udGV4dCogY29udGV4dCkKK3sKKyAgICBBU1NFUlQoY29udGV4dC0+YWxnb3Jp
dGhtID09IENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMSk7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PENDX1NIQTFfQ1RYKj4oY29udGV4dC0+Y2NDb250ZXh0KTsKK30KK2lubGluZSBDQ19T
SEEyNTZfQ1RYKiB0b1NIQTIyNENvbnRleHQoQ3J5cHRvRGlnZXN0Q29udGV4dCogY29udGV4dCkK
K3sKKyAgICBBU1NFUlQoY29udGV4dC0+YWxnb3JpdGhtID09IENyeXB0b0RpZ2VzdDo6QWxnb3Jp
dGhtOjpTSEFfMjI0KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0NfU0hBMjU2X0NUWCo+KGNv
bnRleHQtPmNjQ29udGV4dCk7Cit9CitpbmxpbmUgQ0NfU0hBMjU2X0NUWCogdG9TSEEyNTZDb250
ZXh0KENyeXB0b0RpZ2VzdENvbnRleHQqIGNvbnRleHQpCit7CisgICAgQVNTRVJUKGNvbnRleHQt
PmFsZ29yaXRobSA9PSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1Nik7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PENDX1NIQTI1Nl9DVFgqPihjb250ZXh0LT5jY0NvbnRleHQpOworfQor
aW5saW5lIENDX1NIQTUxMl9DVFgqIHRvU0hBMzg0Q29udGV4dChDcnlwdG9EaWdlc3RDb250ZXh0
KiBjb250ZXh0KQoreworICAgIEFTU0VSVChjb250ZXh0LT5hbGdvcml0aG0gPT0gQ3J5cHRvRGln
ZXN0OjpBbGdvcml0aG06OlNIQV8zODQpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDQ19TSEE1
MTJfQ1RYKj4oY29udGV4dC0+Y2NDb250ZXh0KTsKK30KK2lubGluZSBDQ19TSEE1MTJfQ1RYKiB0
b1NIQTUxMkNvbnRleHQoQ3J5cHRvRGlnZXN0Q29udGV4dCogY29udGV4dCkKK3sKKyAgICBBU1NF
UlQoY29udGV4dC0+YWxnb3JpdGhtID09IENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfNTEy
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0NfU0hBNTEyX0NUWCo+KGNvbnRleHQtPmNjQ29u
dGV4dCk7Cit9CisKK0NyeXB0b0RpZ2VzdDo6Q3J5cHRvRGlnZXN0KCkKKyAgICA6IG1fY29udGV4
dChuZXcgQ3J5cHRvRGlnZXN0Q29udGV4dCkKK3sKK30KKworQ3J5cHRvRGlnZXN0Ojp+Q3J5cHRv
RGlnZXN0KCkKK3sKKyAgICBzd2l0Y2ggKG1fY29udGV4dC0+YWxnb3JpdGhtKSB7CisgICAgY2Fz
ZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6CisgICAgICAgIGRlbGV0ZSB0b1NIQTFD
b250ZXh0KG1fY29udGV4dC5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENyeXB0
b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0OgorICAgICAgICBkZWxldGUgdG9TSEEyMjRDb250
ZXh0KG1fY29udGV4dC5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENyeXB0b0Rp
Z2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2OgorICAgICAgICBkZWxldGUgdG9TSEEyNTZDb250ZXh0
KG1fY29udGV4dC5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENyeXB0b0RpZ2Vz
dDo6QWxnb3JpdGhtOjpTSEFfMzg0OgorICAgICAgICBkZWxldGUgdG9TSEEzODRDb250ZXh0KG1f
Y29udGV4dC5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIENyeXB0b0RpZ2VzdDo6
QWxnb3JpdGhtOjpTSEFfNTEyOgorICAgICAgICBkZWxldGUgdG9TSEE1MTJDb250ZXh0KG1fY29u
dGV4dC5nZXQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKKworc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0RpZ2VzdD4gQ3J5cHRvRGlnZXN0OjpjcmVhdGUoQ3J5cHRvRGlnZXN0OjpBbGdv
cml0aG0gYWxnb3JpdGhtKQoreworICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9EaWdlc3Q+IGRp
Z2VzdChuZXcgQ3J5cHRvRGlnZXN0KTsKKyAgICBkaWdlc3QtPm1fY29udGV4dC0+YWxnb3JpdGht
ID0gYWxnb3JpdGhtOworCisgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKKyAgICBjYXNlIENyeXB0
b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMTogeworICAgICAgICBDQ19TSEExX0NUWCogY29udGV4
dCA9IG5ldyBDQ19TSEExX0NUWDsKKyAgICAgICAgZGlnZXN0LT5tX2NvbnRleHQtPmNjQ29udGV4
dCA9IGNvbnRleHQ7CisgICAgICAgIENDX1NIQTFfSW5pdChjb250ZXh0KTsKKyAgICAgICAgcmV0
dXJuIGRpZ2VzdDsKKyAgICB9CisgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hB
XzIyNDogeworICAgICAgICBDQ19TSEEyNTZfQ1RYKiBjb250ZXh0ID0gbmV3IENDX1NIQTI1Nl9D
VFg7CisgICAgICAgIGRpZ2VzdC0+bV9jb250ZXh0LT5jY0NvbnRleHQgPSBjb250ZXh0OworICAg
ICAgICBDQ19TSEEyMjRfSW5pdChjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGRpZ2VzdDsKKyAg
ICB9CisgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1NjogeworICAgICAg
ICBDQ19TSEEyNTZfQ1RYKiBjb250ZXh0ID0gbmV3IENDX1NIQTI1Nl9DVFg7CisgICAgICAgIGRp
Z2VzdC0+bV9jb250ZXh0LT5jY0NvbnRleHQgPSBjb250ZXh0OworICAgICAgICBDQ19TSEEyNTZf
SW5pdChjb250ZXh0KTsKKyAgICAgICAgcmV0dXJuIGRpZ2VzdDsKKyAgICB9CisgICAgY2FzZSBD
cnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzM4NDogeworICAgICAgICBDQ19TSEE1MTJfQ1RY
KiBjb250ZXh0ID0gbmV3IENDX1NIQTUxMl9DVFg7CisgICAgICAgIGRpZ2VzdC0+bV9jb250ZXh0
LT5jY0NvbnRleHQgPSBjb250ZXh0OworICAgICAgICBDQ19TSEEzODRfSW5pdChjb250ZXh0KTsK
KyAgICAgICAgcmV0dXJuIGRpZ2VzdDsKKyAgICB9CisgICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFs
Z29yaXRobTo6U0hBXzUxMjogeworICAgICAgICBDQ19TSEE1MTJfQ1RYKiBjb250ZXh0ID0gbmV3
IENDX1NIQTUxMl9DVFg7CisgICAgICAgIGRpZ2VzdC0+bV9jb250ZXh0LT5jY0NvbnRleHQgPSBj
b250ZXh0OworICAgICAgICBDQ19TSEE1MTJfSW5pdChjb250ZXh0KTsKKyAgICAgICAgcmV0dXJu
IGRpZ2VzdDsKKyAgICB9CisgICAgfQorfQorCit2b2lkIENyeXB0b0RpZ2VzdDo6YWRkQnl0ZXMo
Y29uc3Qgdm9pZCogaW5wdXQsIHNpemVfdCBsZW5ndGgpCit7CisgICAgc3dpdGNoIChtX2NvbnRl
eHQtPmFsZ29yaXRobSkgeworICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8x
OgorICAgICAgICBDQ19TSEExX1VwZGF0ZSh0b1NIQTFDb250ZXh0KG1fY29udGV4dC5nZXQoKSks
IGlucHV0LCBsZW5ndGgpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBDcnlwdG9EaWdlc3Q6
OkFsZ29yaXRobTo6U0hBXzIyNDoKKyAgICAgICAgQ0NfU0hBMjI0X1VwZGF0ZSh0b1NIQTIyNENv
bnRleHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7CisgICAgICAgIHJldHVybjsK
KyAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2OgorICAgICAgICBDQ19T
SEEyNTZfVXBkYXRlKHRvU0hBMjU2Q29udGV4dChtX2NvbnRleHQuZ2V0KCkpLCBpbnB1dCwgbGVu
Z3RoKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06
OlNIQV8zODQ6CisgICAgICAgIENDX1NIQTM4NF9VcGRhdGUodG9TSEEzODRDb250ZXh0KG1fY29u
dGV4dC5nZXQoKSksIGlucHV0LCBsZW5ndGgpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBD
cnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzUxMjoKKyAgICAgICAgQ0NfU0hBNTEyX1VwZGF0
ZSh0b1NIQTUxMkNvbnRleHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9Cit9CisKK1ZlY3Rvcjx1aW50OF90PiBDcnlwdG9EaWdlc3Q6OmNv
bXB1dGVIYXNoKCkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0OworICAgIHN3aXRjaCAo
bV9jb250ZXh0LT5hbGdvcml0aG0pIHsKKyAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGht
OjpTSEFfMToKKyAgICAgICAgcmVzdWx0LnJlc2l6ZShDQ19TSEExX0RJR0VTVF9MRU5HVEgpOwor
ICAgICAgICBDQ19TSEExX0ZpbmFsKHJlc3VsdC5kYXRhKCksIHRvU0hBMUNvbnRleHQobV9jb250
ZXh0LmdldCgpKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdv
cml0aG06OlNIQV8yMjQ6CisgICAgICAgIHJlc3VsdC5yZXNpemUoQ0NfU0hBMjI0X0RJR0VTVF9M
RU5HVEgpOworICAgICAgICBDQ19TSEEyMjRfRmluYWwocmVzdWx0LmRhdGEoKSwgdG9TSEEyMjRD
b250ZXh0KG1fY29udGV4dC5nZXQoKSkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENyeXB0
b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjU2OgorICAgICAgICByZXN1bHQucmVzaXplKENDX1NI
QTI1Nl9ESUdFU1RfTEVOR1RIKTsKKyAgICAgICAgQ0NfU0hBMjU2X0ZpbmFsKHJlc3VsdC5kYXRh
KCksIHRvU0hBMjU2Q29udGV4dChtX2NvbnRleHQuZ2V0KCkpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzM4NDoKKyAgICAgICAgcmVzdWx0
LnJlc2l6ZShDQ19TSEEzODRfRElHRVNUX0xFTkdUSCk7CisgICAgICAgIENDX1NIQTM4NF9GaW5h
bChyZXN1bHQuZGF0YSgpLCB0b1NIQTM4NENvbnRleHQobV9jb250ZXh0LmdldCgpKSk7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV81MTI6Cisg
ICAgICAgIHJlc3VsdC5yZXNpemUoQ0NfU0hBNTEyX0RJR0VTVF9MRU5HVEgpOworICAgICAgICBD
Q19TSEE1MTJfRmluYWwocmVzdWx0LmRhdGEoKSwgdG9TSEE1MTJDb250ZXh0KG1fY29udGV4dC5n
ZXQoKSkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY3J5cHRvL21hYy9DcnlwdG9EaWdlc3RNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY3J5cHRvL21hYy9DcnlwdG9EaWdlc3RNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlM2ZmYzU2MDUyMjZiNjRiNDkzNzNiZWE2ODVlOTIzZjAxOTliYjRlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NyeXB0by9tYWMvQ3J5cHRvRGlnZXN0TWFjLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDE3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkNyeXB0b0RpZ2VzdC5oIgotCi0jaW5jbHVkZSA8Q29tbW9uQ3J5cHRvL0NvbW1vbkNyeXB0by5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBDcnlwdG9EaWdlc3RDb250ZXh0IHsK
LSAgICBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobSBhbGdvcml0aG07Ci0gICAgdm9pZCogY2NDb250
ZXh0OwotfTsKLQotaW5saW5lIENDX1NIQTFfQ1RYKiB0b1NIQTFDb250ZXh0KENyeXB0b0RpZ2Vz
dENvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUKGNvbnRleHQtPmFsZ29yaXRobSA9PSBD
cnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzEpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
Q19TSEExX0NUWCo+KGNvbnRleHQtPmNjQ29udGV4dCk7Ci19Ci1pbmxpbmUgQ0NfU0hBMjU2X0NU
WCogdG9TSEEyMjRDb250ZXh0KENyeXB0b0RpZ2VzdENvbnRleHQqIGNvbnRleHQpCi17Ci0gICAg
QVNTRVJUKGNvbnRleHQtPmFsZ29yaXRobSA9PSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hB
XzIyNCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PENDX1NIQTI1Nl9DVFgqPihjb250ZXh0LT5j
Y0NvbnRleHQpOwotfQotaW5saW5lIENDX1NIQTI1Nl9DVFgqIHRvU0hBMjU2Q29udGV4dChDcnlw
dG9EaWdlc3RDb250ZXh0KiBjb250ZXh0KQotewotICAgIEFTU0VSVChjb250ZXh0LT5hbGdvcml0
aG0gPT0gQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTYpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxDQ19TSEEyNTZfQ1RYKj4oY29udGV4dC0+Y2NDb250ZXh0KTsKLX0KLWlubGluZSBD
Q19TSEE1MTJfQ1RYKiB0b1NIQTM4NENvbnRleHQoQ3J5cHRvRGlnZXN0Q29udGV4dCogY29udGV4
dCkKLXsKLSAgICBBU1NFUlQoY29udGV4dC0+YWxnb3JpdGhtID09IENyeXB0b0RpZ2VzdDo6QWxn
b3JpdGhtOjpTSEFfMzg0KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q0NfU0hBNTEyX0NUWCo+
KGNvbnRleHQtPmNjQ29udGV4dCk7Ci19Ci1pbmxpbmUgQ0NfU0hBNTEyX0NUWCogdG9TSEE1MTJD
b250ZXh0KENyeXB0b0RpZ2VzdENvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUKGNvbnRl
eHQtPmFsZ29yaXRobSA9PSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzUxMik7Ci0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PENDX1NIQTUxMl9DVFgqPihjb250ZXh0LT5jY0NvbnRleHQpOwot
fQotCi1DcnlwdG9EaWdlc3Q6OkNyeXB0b0RpZ2VzdCgpCi0gICAgOiBtX2NvbnRleHQobmV3IENy
eXB0b0RpZ2VzdENvbnRleHQpCi17Ci19Ci0KLUNyeXB0b0RpZ2VzdDo6fkNyeXB0b0RpZ2VzdCgp
Ci17Ci0gICAgc3dpdGNoIChtX2NvbnRleHQtPmFsZ29yaXRobSkgewotICAgIGNhc2UgQ3J5cHRv
RGlnZXN0OjpBbGdvcml0aG06OlNIQV8xOgotICAgICAgICBkZWxldGUgdG9TSEExQ29udGV4dCht
X2NvbnRleHQuZ2V0KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDcnlwdG9EaWdlc3Q6
OkFsZ29yaXRobTo6U0hBXzIyNDoKLSAgICAgICAgZGVsZXRlIHRvU0hBMjI0Q29udGV4dChtX2Nv
bnRleHQuZ2V0KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFs
Z29yaXRobTo6U0hBXzI1NjoKLSAgICAgICAgZGVsZXRlIHRvU0hBMjU2Q29udGV4dChtX2NvbnRl
eHQuZ2V0KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29y
aXRobTo6U0hBXzM4NDoKLSAgICAgICAgZGVsZXRlIHRvU0hBMzg0Q29udGV4dChtX2NvbnRleHQu
Z2V0KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRo
bTo6U0hBXzUxMjoKLSAgICAgICAgZGVsZXRlIHRvU0hBNTEyQ29udGV4dChtX2NvbnRleHQuZ2V0
KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCi0KLXN0ZDo6dW5pcXVlX3B0cjxDcnlw
dG9EaWdlc3Q+IENyeXB0b0RpZ2VzdDo6Y3JlYXRlKENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtIGFs
Z29yaXRobSkKLXsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvRGlnZXN0PiBkaWdlc3QobmV3
IENyeXB0b0RpZ2VzdCk7Ci0gICAgZGlnZXN0LT5tX2NvbnRleHQtPmFsZ29yaXRobSA9IGFsZ29y
aXRobTsKLQotICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7Ci0gICAgY2FzZSBDcnlwdG9EaWdlc3Q6
OkFsZ29yaXRobTo6U0hBXzE6IHsKLSAgICAgICAgQ0NfU0hBMV9DVFgqIGNvbnRleHQgPSBuZXcg
Q0NfU0hBMV9DVFg7Ci0gICAgICAgIGRpZ2VzdC0+bV9jb250ZXh0LT5jY0NvbnRleHQgPSBjb250
ZXh0OwotICAgICAgICBDQ19TSEExX0luaXQoY29udGV4dCk7Ci0gICAgICAgIHJldHVybiBkaWdl
c3Q7Ci0gICAgfQotICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yMjQ6IHsK
LSAgICAgICAgQ0NfU0hBMjU2X0NUWCogY29udGV4dCA9IG5ldyBDQ19TSEEyNTZfQ1RYOwotICAg
ICAgICBkaWdlc3QtPm1fY29udGV4dC0+Y2NDb250ZXh0ID0gY29udGV4dDsKLSAgICAgICAgQ0Nf
U0hBMjI0X0luaXQoY29udGV4dCk7Ci0gICAgICAgIHJldHVybiBkaWdlc3Q7Ci0gICAgfQotICAg
IGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8yNTY6IHsKLSAgICAgICAgQ0NfU0hB
MjU2X0NUWCogY29udGV4dCA9IG5ldyBDQ19TSEEyNTZfQ1RYOwotICAgICAgICBkaWdlc3QtPm1f
Y29udGV4dC0+Y2NDb250ZXh0ID0gY29udGV4dDsKLSAgICAgICAgQ0NfU0hBMjU2X0luaXQoY29u
dGV4dCk7Ci0gICAgICAgIHJldHVybiBkaWdlc3Q7Ci0gICAgfQotICAgIGNhc2UgQ3J5cHRvRGln
ZXN0OjpBbGdvcml0aG06OlNIQV8zODQ6IHsKLSAgICAgICAgQ0NfU0hBNTEyX0NUWCogY29udGV4
dCA9IG5ldyBDQ19TSEE1MTJfQ1RYOwotICAgICAgICBkaWdlc3QtPm1fY29udGV4dC0+Y2NDb250
ZXh0ID0gY29udGV4dDsKLSAgICAgICAgQ0NfU0hBMzg0X0luaXQoY29udGV4dCk7Ci0gICAgICAg
IHJldHVybiBkaWdlc3Q7Ci0gICAgfQotICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0aG06
OlNIQV81MTI6IHsKLSAgICAgICAgQ0NfU0hBNTEyX0NUWCogY29udGV4dCA9IG5ldyBDQ19TSEE1
MTJfQ1RYOwotICAgICAgICBkaWdlc3QtPm1fY29udGV4dC0+Y2NDb250ZXh0ID0gY29udGV4dDsK
LSAgICAgICAgQ0NfU0hBNTEyX0luaXQoY29udGV4dCk7Ci0gICAgICAgIHJldHVybiBkaWdlc3Q7
Ci0gICAgfQotICAgIH0KLX0KLQotdm9pZCBDcnlwdG9EaWdlc3Q6OmFkZEJ5dGVzKGNvbnN0IHZv
aWQqIGlucHV0LCBzaXplX3QgbGVuZ3RoKQotewotICAgIHN3aXRjaCAobV9jb250ZXh0LT5hbGdv
cml0aG0pIHsKLSAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMToKLSAgICAg
ICAgQ0NfU0hBMV9VcGRhdGUodG9TSEExQ29udGV4dChtX2NvbnRleHQuZ2V0KCkpLCBpbnB1dCwg
bGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgQ3J5cHRvRGlnZXN0OjpBbGdvcml0
aG06OlNIQV8yMjQ6Ci0gICAgICAgIENDX1NIQTIyNF9VcGRhdGUodG9TSEEyMjRDb250ZXh0KG1f
Y29udGV4dC5nZXQoKSksIGlucHV0LCBsZW5ndGgpOwotICAgICAgICByZXR1cm47Ci0gICAgY2Fz
ZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1NjoKLSAgICAgICAgQ0NfU0hBMjU2X1Vw
ZGF0ZSh0b1NIQTI1NkNvbnRleHQobV9jb250ZXh0LmdldCgpKSwgaW5wdXQsIGxlbmd0aCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMzg0
OgotICAgICAgICBDQ19TSEEzODRfVXBkYXRlKHRvU0hBMzg0Q29udGV4dChtX2NvbnRleHQuZ2V0
KCkpLCBpbnB1dCwgbGVuZ3RoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgQ3J5cHRvRGln
ZXN0OjpBbGdvcml0aG06OlNIQV81MTI6Ci0gICAgICAgIENDX1NIQTUxMl9VcGRhdGUodG9TSEE1
MTJDb250ZXh0KG1fY29udGV4dC5nZXQoKSksIGlucHV0LCBsZW5ndGgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotfQotCi1WZWN0b3I8dWludDhfdD4gQ3J5cHRvRGlnZXN0Ojpjb21wdXRlSGFz
aCgpCi17Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IHJlc3VsdDsKLSAgICBzd2l0Y2ggKG1fY29udGV4
dC0+YWxnb3JpdGhtKSB7Ci0gICAgY2FzZSBDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzE6
Ci0gICAgICAgIHJlc3VsdC5yZXNpemUoQ0NfU0hBMV9ESUdFU1RfTEVOR1RIKTsKLSAgICAgICAg
Q0NfU0hBMV9GaW5hbChyZXN1bHQuZGF0YSgpLCB0b1NIQTFDb250ZXh0KG1fY29udGV4dC5nZXQo
KSkpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpT
SEFfMjI0OgotICAgICAgICByZXN1bHQucmVzaXplKENDX1NIQTIyNF9ESUdFU1RfTEVOR1RIKTsK
LSAgICAgICAgQ0NfU0hBMjI0X0ZpbmFsKHJlc3VsdC5kYXRhKCksIHRvU0hBMjI0Q29udGV4dCht
X2NvbnRleHQuZ2V0KCkpKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDcnlwdG9EaWdlc3Q6
OkFsZ29yaXRobTo6U0hBXzI1NjoKLSAgICAgICAgcmVzdWx0LnJlc2l6ZShDQ19TSEEyNTZfRElH
RVNUX0xFTkdUSCk7Ci0gICAgICAgIENDX1NIQTI1Nl9GaW5hbChyZXN1bHQuZGF0YSgpLCB0b1NI
QTI1NkNvbnRleHQobV9jb250ZXh0LmdldCgpKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
Q3J5cHRvRGlnZXN0OjpBbGdvcml0aG06OlNIQV8zODQ6Ci0gICAgICAgIHJlc3VsdC5yZXNpemUo
Q0NfU0hBMzg0X0RJR0VTVF9MRU5HVEgpOwotICAgICAgICBDQ19TSEEzODRfRmluYWwocmVzdWx0
LmRhdGEoKSwgdG9TSEEzODRDb250ZXh0KG1fY29udGV4dC5nZXQoKSkpOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIENyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfNTEyOgotICAgICAgICBy
ZXN1bHQucmVzaXplKENDX1NIQTUxMl9ESUdFU1RfTEVOR1RIKTsKLSAgICAgICAgQ0NfU0hBNTEy
X0ZpbmFsKHJlc3VsdC5kYXRhKCksIHRvU0hBNTEyQ29udGV4dChtX2NvbnRleHQuZ2V0KCkpKTsK
LSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUK
</data>
<flag name="review"
          id="298045"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>