<?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>45062</bug_id>
          
          <creation_ts>2010-09-01 14:26:50 -0700</creation_ts>
          <short_desc>Add URLResponse API for WebKit2</short_desc>
          <delta_ts>2010-09-01 20:38:49 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273019</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-01 14:26:50 -0700</bug_when>
    <thetext>Add URLResponse API for WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273020</commentid>
    <comment_count>1</comment_count>
      <attachid>66272</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-01 14:28:47 -0700</bug_when>
    <thetext>Created attachment 66272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273024</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-01 14:33:14 -0700</bug_when>
    <thetext>Attachment 66272 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit2/UIProcess/API/C/WKURLResponse.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/UIProcess/API/C/cf/WKURLResponseCF.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/Shared/win/WebURLResponseWin.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/Shared/WebURLResponse.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKit2/Shared/qt/WebURLResponseQt.cpp:26:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 5 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273193</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-01 20:38:49 -0700</bug_when>
    <thetext>Fixed in http://trac.webkit.org/changeset/66619.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66272</attachid>
            <date>2010-09-01 14:28:47 -0700</date>
            <delta_ts>2010-09-01 14:32:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>response.diff</filename>
            <type>text/plain</type>
            <size>34886</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjYxNykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTEgQEAKKzIwMTAtMDktMDEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgVVJM
UmVzcG9uc2UgQVBJIGZvciBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTA2MgorCisgICAgICAgIEFkZCBXZWJVUkxSZXNwb25zZSBjbGFz
cyBhbmQgV0tVUkxSZXNwb25zZVJlZiBDIEFQSSB0byBnbyB3aXRoIGl0LiBSaWdodCBub3csCisg
ICAgICAgIGluc3RhbmNlIG9mIFdLVVJMUmVzcG9uc2VSZWYgYXJlIG1hbmlwdWxhdGVkIHZpYSBw
bGF0Zm9ybSB0eXBlcyBqdXN0IGxpa2UKKyAgICAgICAgV0tVUkxSZXF1ZXN0UmVmLgorCisgICAg
ICAgIFRoaXMganVzdCBhZGRzIHRoZSB0eXBlIGFuZCBjb252ZXJzaW9uIGZ1bmN0aW9ucywgbm8g
dXNlcyB5ZXQuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJT2JqZWN0Lmg6CisgICAgICAgICogU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9XZWJVUkxSZXNw
b25zZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6V2ViVVJM
UmVzcG9uc2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJVUkxSZXNwb25zZS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTFJlc3BvbnNlOjpyZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMUmVzcG9uc2U6OnR5cGUpOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzTWFjLm1tOgorICAgICAgICAoQ29yZUlQQzo6ZW5jb2RlV2l0aE5TS2V5ZWRBcmNoaXZl
cik6CisgICAgICAgIChDb3JlSVBDOjpkZWNvZGVXaXRoTlNLZXllZEFyY2hpdmVyKToKKyAgICAg
ICAgKENvcmVJUEM6OmVuY29kZVJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChDb3JlSVBDOjpk
ZWNvZGVSZXNvdXJjZVJlcXVlc3QpOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViVVJMUmVzcG9u
c2VNYWMubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6V2ViVVJM
UmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZTo6cGxhdGZvcm1SZXNw
b25zZSk6CisgICAgICAgICogU2hhcmVkL3F0L1dlYlVSTFJlc3BvbnNlUXQuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OldlYlVSTFJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2U6OnBsYXRmb3JtUmVzcG9uc2UpOgorICAgICAgICAq
IFNoYXJlZC93aW4vV2ViVVJMUmVzcG9uc2VXaW4uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMUmVzcG9uc2U6OldlYlVSTFJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMUmVzcG9uc2U6OnBsYXRmb3JtUmVzcG9uc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS1VSTFJlc3BvbnNlLmNwcDogQWRkZWQuCisgICAgICAgIChXS1VSTFJlc3BvbnNlR2V0VHlw
ZUlEKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXNwb25zZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvY2YvV0tVUkxSZXNwb25zZUNGLmNwcDogQWRkZWQu
CisgICAgICAgIChXS1VSTFJlc3BvbnNlQ3JlYXRlV2l0aENGVVJMUmVzcG9uc2UpOgorICAgICAg
ICAoV0tVUkxSZXNwb25zZUNvcHlDRlVSTFJlc3BvbnNlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvY2YvV0tVUkxSZXNwb25zZUNGLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9tYWMvV0tVUkxSZXNwb25zZU5TLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9tYWMvV0tVUkxSZXNwb25zZU5TLm1tOiBBZGRlZC4KKyAgICAgICAgKFdLVVJMUmVzcG9u
c2VDcmVhdGVXaXRoTlNVUkxSZXNwb25zZSk6CisgICAgICAgIChXS1VSTFJlc3BvbnNlQ29weU5T
VVJMUmVzcG9uc2UpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKwogMjAxMC0wOS0wMSAgQW5kcmFzIEJlY3NpICA8YWJlY3NpQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9B
UElPYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkocmV2
aXNpb24gNjY1NDgpCisrKyBXZWJLaXQyL1NoYXJlZC9BUElPYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIFR5cGVTdHJpbmcsCiAgICAgICAg
IFR5cGVVUkwsCiAgICAgICAgIFR5cGVVUkxSZXF1ZXN0LAorICAgICAgICBUeXBlVVJMUmVzcG9u
c2UsCiAgICAgICAgIAogICAgICAgICAvLyBVSVByb2Nlc3MgdHlwZXMKICAgICAgICAgVHlwZUJh
Y2tGb3J3YXJkTGlzdCwKSW5kZXg6IFdlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CShyZXZpc2lvbiA2NjU0OCkKKysrIFdlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9J
bnRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9u
c2UuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIENvcmVJ
UEMgewpJbmRleDogV2ViS2l0Mi9TaGFyZWQvV2ViVVJMUmVzcG9uc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcAkocmV2aXNpb24gMCkKKysrIFdl
YktpdDIvU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXZWJVUkxSZXNwb25zZS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworV2ViVVJMUmVzcG9uc2U6OldlYlVSTFJlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQorICAgIDogbV9yZXNwb25zZShyZXNwb25z
ZSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1NoYXJlZC9X
ZWJVUkxSZXNwb25zZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL1dlYlVSTFJlc3Bv
bnNlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1NoYXJlZC9XZWJVUkxSZXNwb25zZS5oCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJVUkxS
ZXNwb25zZV9oCisjZGVmaW5lIFdlYlVSTFJlc3BvbnNlX2gKKworI2luY2x1ZGUgIkFQSU9iamVj
dC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CisKKyNpZiBQTEFURk9STShNQUMpCit0eXBlZGVmIE5TVVJMUmVzcG9uc2Uq
IFBsYXRmb3JtUmVzcG9uc2U7CisjZWxpZiBQTEFURk9STShXSU4pCit0eXBlZGVmIENGVVJMUmVz
cG9uc2VSZWYgUGxhdGZvcm1SZXNwb25zZTsKKyNlbHNlCit0eXBlZGVmIHZvaWQqIFBsYXRmb3Jt
UmVzcG9uc2U7CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlVSTFJl
c3BvbnNlIDogcHVibGljIEFQSU9iamVjdCB7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IFR5
cGUgQVBJVHlwZSA9IFR5cGVVUkxSZXNwb25zZTsKKworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdl
YlVSTFJlc3BvbnNlPiBjcmVhdGUoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlVSTFJlc3BvbnNl
KHJlc3BvbnNlKSk7CisgICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVVJMUmVzcG9u
c2U+IGNyZWF0ZShQbGF0Zm9ybVJlc3BvbnNlIHBsYXRmb3JtUmVzcG9uc2UpCisgICAgeworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlVSTFJlc3BvbnNlKHBsYXRmb3JtUmVzcG9uc2Up
KTsKKyAgICB9CisKKyAgICBQbGF0Zm9ybVJlc3BvbnNlIHBsYXRmb3JtUmVzcG9uc2UoKSBjb25z
dDsKKyAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJjZVJlc3BvbnNl
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0
IFdlYlVSTFJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBl
eHBsaWNpdCBXZWJVUkxSZXNwb25zZShQbGF0Zm9ybVJlc3BvbnNlKTsKKworICAgIHZpcnR1YWwg
VHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gQVBJVHlwZTsgfQorCisgICAgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBXZWJVUkxSZXNwb25zZV9oCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9tYWMvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL21h
Yy9XZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0JKHJldmlzaW9uIDY2NTQ4KQorKysgV2ViS2l0
Mi9TaGFyZWQvbWFjL1dlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtMjcsMjcgKzI3LDM0IEBACiAKIG5hbWVzcGFjZSBDb3JlSVBDIHsKIAotdm9pZCBlbmNvZGVS
ZXNvdXJjZVJlcXVlc3QoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKK3N0YXRpYyB2b2lkIGVuY29kZVdpdGhO
U0tleWVkQXJjaGl2ZXIoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBpZCByb290T2JqZWN0KQog
ewotICAgIE5TVVJMUmVxdWVzdCAqbnNVUkxSZXF1ZXN0ID0gcmVzb3VyY2VSZXF1ZXN0Lm5zVVJM
UmVxdWVzdCgpOwotICAgIE5TRGF0YSAqZGF0YSA9IFtOU0tleWVkQXJjaGl2ZXIgYXJjaGl2ZWRE
YXRhV2l0aFJvb3RPYmplY3Q6bnNVUkxSZXF1ZXN0XTsKLQorICAgIE5TRGF0YSAqZGF0YSA9IFtO
U0tleWVkQXJjaGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6cm9vdE9iamVjdF07CiAg
ICAgZW5jb2Rlci0+ZW5jb2RlQnl0ZXMoc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtkYXRh
IGJ5dGVzXSksIFtkYXRhIGxlbmd0aF0pOwogfQogCi1ib29sIGRlY29kZVJlc291cmNlUmVxdWVz
dChBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVz
b3VyY2VSZXF1ZXN0KQorc3RhdGljIGlkIGRlY29kZVdpdGhOU0tleWVkQXJjaGl2ZXIoQXJndW1l
bnREZWNvZGVyKiBkZWNvZGVyKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBieXRlczsKICAgICBp
ZiAoIWRlY29kZXItPmRlY29kZUJ5dGVzKGJ5dGVzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgTlNEYXRhICpuc0RhdGEgPSBbW05TRGF0YSBhbGxv
Y10gaW5pdFdpdGhCeXRlc05vQ29weTpieXRlcy5kYXRhKCkgbGVuZ3RoOmJ5dGVzLnNpemUoKSBm
cmVlV2hlbkRvbmU6Tk9dOwotICAgIE5TVVJMUmVxdWVzdCAqbnNVUkxSZXF1ZXN0ID0gW05TS2V5
ZWRVbmFyY2hpdmVyIHVuYXJjaGl2ZU9iamVjdFdpdGhEYXRhOm5zRGF0YV07CisgICAgUmV0YWlu
UHRyPE5TRGF0YT4gbnNEYXRhKEFkb3B0TlMsIFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVz
Tm9Db3B5OmJ5dGVzLmRhdGEoKSBsZW5ndGg6Ynl0ZXMuc2l6ZSgpIGZyZWVXaGVuRG9uZTpOT10p
OworICAgIHJldHVybiBbTlNLZXllZFVuYXJjaGl2ZXIgdW5hcmNoaXZlT2JqZWN0V2l0aERhdGE6
bnNEYXRhLmdldCgpXTsKK30KKwordm9pZCBlbmNvZGVSZXNvdXJjZVJlcXVlc3QoQXJndW1lbnRF
bmNvZGVyKiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNl
UmVxdWVzdCkKK3sKKyAgICBlbmNvZGVXaXRoTlNLZXllZEFyY2hpdmVyKGVuY29kZXIsIHJlc291
cmNlUmVxdWVzdC5uc1VSTFJlcXVlc3QoKSk7Cit9CisKK2Jvb2wgZGVjb2RlUmVzb3VyY2VSZXF1
ZXN0KEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXNvdXJjZVJlcXVlc3QpCit7CisgICAgTlNVUkxSZXF1ZXN0ICpuc1VSTFJlcXVlc3QgPSBkZWNv
ZGVXaXRoTlNLZXllZEFyY2hpdmVyKGRlY29kZXIpOwogICAgIGlmICghbnNVUkxSZXF1ZXN0KQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXNvdXJjZVJlcXVlc3QgPSBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QobnNVUkxSZXF1ZXN0KTsKLQogICAgIHJldHVybiB0cnVlOwogfQogCklu
ZGV4OiBXZWJLaXQyL1NoYXJlZC9tYWMvV2ViVVJMUmVzcG9uc2VNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYlVSTFJlc3BvbnNlTWFjLm1tCShyZXZpc2lvbiAwKQor
KysgV2ViS2l0Mi9TaGFyZWQvbWFjL1dlYlVSTFJlc3BvbnNlTWFjLm1tCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJVUkxSZXNwb25zZTo6V2ViVVJMUmVzcG9uc2Uo
UGxhdGZvcm1SZXNwb25zZSBwbGF0Zm9ybVJlc3BvbnNlKQorICAgIDogbV9yZXNwb25zZShwbGF0
Zm9ybVJlc3BvbnNlKQoreworfQorCitQbGF0Zm9ybVJlc3BvbnNlIFdlYlVSTFJlc3BvbnNlOjpw
bGF0Zm9ybVJlc3BvbnNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXNwb25zZS5uc1VSTFJl
c3BvbnNlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9TaGFy
ZWQvcXQvV2ViVVJMUmVzcG9uc2VRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQv
cXQvV2ViVVJMUmVzcG9uc2VRdC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1NoYXJlZC9x
dC9XZWJVUkxSZXNwb25zZVF0LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJXZWJVUkxSZXNwb25zZS5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworV2ViVVJMUmVzcG9uc2U6OldlYlVSTFJlc3BvbnNlKFBsYXRmb3JtUmVzcG9uc2UpCit7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK1BsYXRmb3JtUmVzcG9uc2UgV2ViVVJM
UmVzcG9uc2U6OnBsYXRmb3JtUmVzcG9uc2UoKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiAwOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFdlYktpdDIvU2hhcmVkL3dpbi9XZWJVUkxSZXNwb25zZVdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9TaGFyZWQvd2luL1dlYlVSTFJlc3BvbnNlV2luLmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYktpdDIvU2hhcmVkL3dpbi9XZWJVUkxSZXNwb25zZVdpbi5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2UuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVSTFJlc3BvbnNlOjpXZWJVUkxSZXNwb25zZShQ
bGF0Zm9ybVJlc3BvbnNlIHBsYXRmb3JtUmVzcG9uc2UpCisgICAgOiBtX3Jlc3BvbnNlKHBsYXRm
b3JtUmVzcG9uc2UpCit7Cit9CisKK1BsYXRmb3JtUmVzcG9uc2UgV2ViVVJMUmVzcG9uc2U6OnBs
YXRmb3JtUmVzcG9uc2UoKSBjb25zdAoreworICAgIHJldHVybiBtX3Jlc3BvbnNlLmNmVVJMUmVz
cG9uc2UoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VSTFJlc3BvbnNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VSTFJlc3BvbnNlLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDM3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldLVVJMUmVzcG9uc2UuaCIKKworI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLVVJMUmVzcG9uc2VHZXRUeXBlSUQoKQoreworICAg
IHJldHVybiB0b1JlZihXZWJVUkxSZXNwb25zZTo6QVBJVHlwZSk7Cit9CisKSW5kZXg6IFdlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1VSTFJlc3BvbnNlLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1VSTFJlc3BvbnNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVVJMUmVzcG9uc2VfaAorI2RlZmluZSBXS1VS
TFJlc3BvbnNlX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2Nw
bHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLVVJM
UmVzcG9uc2VHZXRUeXBlSUQoKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKwor
I2VuZGlmIC8qIFdLVVJMUmVzcG9uc2VfaCAqLwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvY2YvV0tVUkxSZXNwb25zZUNGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9jZi9XS1VSTFJlc3BvbnNlQ0YuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvY2YvV0tVUkxSZXNwb25zZUNGLmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS1VSTFJlc3BvbnNlQ0YuaCIKKwor
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVVJMUmVzcG9uc2VSZWYgV0tVUkxSZXNwb25zZUNy
ZWF0ZVdpdGhDRlVSTFJlc3BvbnNlKENGVVJMUmVzcG9uc2VSZWYgdXJsUmVzcG9uc2UpCit7Cisg
ICAgQ0ZVUkxSZXNwb25zZVJlZiBjb3BpZWRVUkxSZXNwb25zZSA9IENGVVJMUmVzcG9uc2VDcmVh
dGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHVybFJlc3BvbnNlKTsKKyAgICBSZWZQdHI8V2Vi
VVJMUmVzcG9uc2U+IHJlc3BvbnNlID0gV2ViVVJMUmVzcG9uc2U6OmNyZWF0ZShjb3BpZWRVUkxS
ZXNwb25zZSk7CisgICAgcmV0dXJuIHRvUmVmKHJlc3BvbnNlLnJlbGVhc2UoKS5yZWxlYXNlUmVm
KCkpOworfQorCitDRlVSTFJlc3BvbnNlUmVmIFdLVVJMUmVzcG9uc2VDb3B5Q0ZVUkxSZXNwb25z
ZShDRkFsbG9jYXRvclJlZiBhbGxvYywgV0tVUkxSZXNwb25zZVJlZiB1cmxSZXNwb25zZSkKK3sK
KyAgICByZXR1cm4gQ0ZVUkxSZXNwb25zZUNyZWF0ZUNvcHkoYWxsb2MsIHRvV0sodXJsUmVzcG9u
c2UpLT5wbGF0Zm9ybVJlc3BvbnNlKCkpOworfQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvY2YvV0tVUkxSZXNwb25zZUNGLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvY2YvV0tVUkxSZXNwb25zZUNGLmgJKHJldmlzaW9uIDApCisrKyBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9jZi9XS1VSTFJlc3BvbnNlQ0YuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tVUkxSZXNwb25zZUNGX2gKKyNkZWZpbmUgV0tV
UkxSZXNwb25zZUNGX2gKKworI2luY2x1ZGUgPENGTmV0d29yay9DRlVSTFJlc3BvbnNlUHJpdi5o
PgorI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0
ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVVJMUmVzcG9uc2VSZWYgV0tVUkxSZXNw
b25zZUNyZWF0ZVdpdGhDRlVSTFJlc3BvbnNlKENGVVJMUmVzcG9uc2VSZWYgdXJsUmVzcG9uc2Up
OworV0tfRVhQT1JUIENGVVJMUmVzcG9uc2VSZWYgV0tVUkxSZXNwb25zZUNvcHlDRlVSTFJlc3Bv
bnNlKENGQWxsb2NhdG9yUmVmIGFsbG9jLCBXS1VSTFJlc3BvbnNlUmVmIHVybFJlc3BvbnNlKTsK
KworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdLVVJMUmVzcG9u
c2VDRl9oICovCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tVUkxSZXNwb25z
ZU5TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLVVJMUmVz
cG9uc2VOUy5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dL
VVJMUmVzcG9uc2VOUy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXS1VSTFJlc3BvbnNlTlNfaAorI2RlZmluZSBXS1VSTFJlc3BvbnNlTlNfaAor
CisjaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitX
S19FWFBPUlQgV0tVUkxSZXNwb25zZVJlZiBXS1VSTFJlc3BvbnNlQ3JlYXRlV2l0aE5TVVJMUmVz
cG9uc2UoTlNVUkxSZXNwb25zZSogdXJsUmVzcG9uc2UpOworV0tfRVhQT1JUIE5TVVJMUmVzcG9u
c2UqIFdLVVJMUmVzcG9uc2VDb3B5TlNVUkxSZXNwb25zZShDRkFsbG9jYXRvclJlZiBhbGxvYywg
V0tVUkxSZXNwb25zZVJlZiB1cmxSZXNwb25zZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQor
I2VuZGlmCisKKyNlbmRpZiAvKiBXS1VSTFJlc3BvbnNlTlNfaCAqLwpJbmRleDogV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvbWFjL1dLVVJMUmVzcG9uc2VOUy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tVUkxSZXNwb25zZU5TLm1tCShyZXZpc2lvbiAwKQor
KysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLVVJMUmVzcG9uc2VOUy5tbQkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS1VSTFJlc3Bv
bnNlTlMuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlVSTFJlc3Bv
bnNlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVVJMUmVzcG9uc2VSZWYgV0tV
UkxSZXNwb25zZUNyZWF0ZVdpdGhOU1VSTFJlc3BvbnNlKE5TVVJMUmVzcG9uc2UqIHVybFJlc3Bv
bnNlKQoreworICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBjb3BpZWRVUkxSZXNwb25zZShB
ZG9wdE5TLCBbdXJsUmVzcG9uc2UgY29weV0pOworICAgIFJlZlB0cjxXZWJVUkxSZXNwb25zZT4g
cmVzcG9uc2UgPSBXZWJVUkxSZXNwb25zZTo6Y3JlYXRlKGNvcGllZFVSTFJlc3BvbnNlLmdldCgp
KTsKKyAgICByZXR1cm4gdG9SZWYocmVzcG9uc2UucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Cit9
CisKK05TVVJMUmVzcG9uc2UqIFdLVVJMUmVzcG9uc2VDb3B5TlNVUkxSZXNwb25zZShDRkFsbG9j
YXRvclJlZiBhbGxvYywgV0tVUkxSZXNwb25zZVJlZiB1cmxSZXNwb25zZSkKK3sKKyAgICByZXR1
cm4gW3RvV0sodXJsUmVzcG9uc2UpLT5wbGF0Zm9ybVJlc3BvbnNlKCkgY29weV07Cit9CkluZGV4
OiBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjY1
NDgpCisrKyBXZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMjI3LDYgKzIyNywxMyBAQAogCQlCQzg3ODBGQzExNjFDMkI4MDBDQzI3Njgg
LyogUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM4NzgwRkIxMTYxQzJCODAwQ0MyNzY4IC8qIFBsYXRmb3Jt
UHJvY2Vzc0lkZW50aWZpZXIuaCAqLzsgfTsKIAkJQkM4N0RGQUExMDE4MTAxNDAwNTY0MjE2IC8q
IGxpYmljdWNvcmUuZHlsaWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzg3REZBOTEwMTgxMDE0MDA1NjQyMTYgLyogbGliaWN1Y29yZS5keWxpYiAq
LzsgfTsKIAkJQkM4QTUwMTUxMTc2NUY1NjAwNzU3NTczIC8qIFdLUmV0YWluUHRyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzhBNTAxNDExNzY1RjU2
MDA3NTc1NzMgLyogV0tSZXRhaW5QdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQlCQzkwQTFEMjEyMkRENTVFMDBDQzhDNTAgLyogV2ViVVJMUmVz
cG9uc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
OTBBMUQwMTIyREQ1NUUwMENDOEM1MCAvKiBXZWJVUkxSZXNwb25zZS5oICovOyB9OworCQlCQzkw
QTFEMzEyMkRENTVFMDBDQzhDNTAgLyogV2ViVVJMUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5MEExRDExMjJERDU1RTAwQ0M4QzUw
IC8qIFdlYlVSTFJlc3BvbnNlLmNwcCAqLzsgfTsKKwkJQkM5MEExRDcxMjJERDY2QTAwQ0M4QzUw
IC8qIFdlYlVSTFJlc3BvbnNlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM5MEExRDUxMjJERDY2QTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNl
TWFjLm1tICovOyB9OworCQlCQzkwQTFEQzEyMkREODk4MDBDQzhDNTAgLyogV0tVUkxSZXNwb25z
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5MEEx
REExMjJERDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2UuaCAqLzsgfTsKKwkJQkM5MEExREQx
MjJERDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5MEExREIxMjJERDg5ODAwQ0M4QzUwIC8qIFdL
VVJMUmVzcG9uc2UuY3BwICovOyB9OworCQlCQzkwQTFFMDEyMkREOEVFMDBDQzhDNTAgLyogV0tV
UkxSZXNwb25zZU5TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzkwQTFERTEyMkREOEVFMDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZU5TLmggKi87IH07
CisJCUJDOTBBMUUxMTIyREQ4RUUwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlTlMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzkwQTFERjEyMkREOEVF
MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZU5TLm1tICovOyB9OwogCQlCQzk2M0Q2QjExM0REMTky
MDA1NzRCRTIgLyogV2ViUGFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzk2M0Q2QTExM0REMTkyMDA1NzRCRTIgLyogV2ViUGFnZS5jcHAgKi87
IH07CiAJCUJDOTYzRDZFMTEzREQxQTUwMDU3NEJFMiAvKiBXZWJQYWdlTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NjNENkQxMTNERDFBNTAw
NTc0QkUyIC8qIFdlYlBhZ2VNYWMubW0gKi87IH07CiAJCUJDOUIzOEExMTBGNTM4QkUwMDQ0M0Ex
NSAvKiBXZWJGcmFtZVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzlCMzg5RjEwRjUzOEJFMDA0NDNBMTUgLyogV2ViRnJhbWVQcm94eS5oICov
OyB9OwpAQCAtNTc5LDYgKzU4NiwxMyBAQAogCQlCQzg3REZBOTEwMTgxMDE0MDA1NjQyMTYgLyog
bGliaWN1Y29yZS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliaWN1Y29yZS5keWxp
YjsgcGF0aCA9IC91c3IvbGliL2xpYmljdWNvcmUuZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29s
dXRlPiI7IH07CiAJCUJDOEE1MDEwMTE3NjVBRjcwMDc1NzU3MyAvKiBJbmZvLnBsaXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC54bWw7IG5hbWUgPSBJbmZvLnBsaXN0OyBwYXRoID0gV2ViUHJvY2Vz
cy9JbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzhBNTAxNDExNzY1
RjU2MDA3NTc1NzMgLyogV0tSZXRhaW5QdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tSZXRhaW5QdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM5MEEx
RDAxMjJERDU1RTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlVSTFJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUJDOTBBMUQxMTIyREQ1NUUwMENDOEM1MCAvKiBXZWJVUkxSZXNwb25zZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJVUkxSZXNwb25zZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDOTBBMUQ1MTIyREQ2NkEwMENDOEM1MCAvKiBX
ZWJVUkxSZXNwb25zZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYlVSTFJlc3BvbnNlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzkwQTFEQTEyMkREODk4MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFJlc3BvbnNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDOTBBMURCMTIyREQ4OTgwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVVJMUmVzcG9uc2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzkwQTFERTEyMkREOEVFMDBDQzhDNTAgLyog
V0tVUkxSZXNwb25zZU5TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVVJM
UmVzcG9uc2VOUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzkwQTFERjEyMkRE
OEVFMDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZU5TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV0tVUkxSZXNwb25zZU5TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzk2M0Q2QTExM0REMTkyMDA1NzRCRTIgLyogV2ViUGFnZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQYWdlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkM5NjNENkQxMTNERDFBNTAwNTc0QkUyIC8qIFdlYlBhZ2VNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQYWdlTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzlCMzg5RjEwRjUzOEJFMDA0NDNBMTUg
LyogV2ViRnJhbWVQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJG
cmFtZVByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTIsNiArOTA2LDgg
QEAKIAkJCQlCQ0RCODZDMDEyMDBGQjk3MDA3MjU0QkUgLyogV2ViVVJMLmggKi8sCiAJCQkJQkNF
MjMxNUMxMjJDMzBDQTAwRDVDMzVBIC8qIFdlYlVSTFJlcXVlc3QuY3BwICovLAogCQkJCUJDRTIz
MTVCMTIyQzMwQ0EwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0LmggKi8sCisJCQkJQkM5MEExRDEx
MjJERDU1RTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlLmNwcCAqLywKKwkJCQlCQzkwQTFEMDEy
MkRENTVFMDBDQzhDNTAgLyogV2ViVVJMUmVzcG9uc2UuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0g
U2hhcmVkOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExMjksNiArMTE0NSw4IEBA
CiAJCQkJQkMyMEVCQjIxMTZFRUY3QTAwMDk0QTUwIC8qIFdLVVJMLmggKi8sCiAJCQkJQkNFMjMx
QzYxMjJDNDkyMzAwRDVDMzVBIC8qIFdLVVJMUmVxdWVzdC5jcHAgKi8sCiAJCQkJQkNFMjMxQzUx
MjJDNDkyMzAwRDVDMzVBIC8qIFdLVVJMUmVxdWVzdC5oICovLAorCQkJCUJDOTBBMURCMTIyREQ4
OTgwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlLmNwcCAqLywKKwkJCQlCQzkwQTFEQTEyMkREODk4
MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBDOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExODUsNiArMTIwMyw3IEBACiAJCQkJQkMxMTFC
NUIxMTJGNjI5ODAwMzM3QkFCIC8qIFdlYkV2ZW50RmFjdG9yeS5oICovLAogCQkJCUJDMTExQjVD
MTEyRjYyOTgwMDMzN0JBQiAvKiBXZWJFdmVudEZhY3RvcnkubW0gKi8sCiAJCQkJQkNFMjMxQzAx
MjJDNDY2RTAwRDVDMzVBIC8qIFdlYlVSTFJlcXVlc3RNYWMubW0gKi8sCisJCQkJQkM5MEExRDUx
MjJERDY2QTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlTWFjLm1tICovLAogCQkJKTsKIAkJCXBh
dGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTM2Niw2ICsxMzg1LDgg
QEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDRTIzMjc3MTIyQzcxQUMwMEQ1QzM1QSAvKiBXS1VS
TFJlcXVlc3ROUy5oICovLAogCQkJCUJDRTIzMjc4MTIyQzcxQUMwMEQ1QzM1QSAvKiBXS1VSTFJl
cXVlc3ROUy5tbSAqLywKKwkJCQlCQzkwQTFERTEyMkREOEVFMDBDQzhDNTAgLyogV0tVUkxSZXNw
b25zZU5TLmggKi8sCisJCQkJQkM5MEExREYxMjJERDhFRTAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9u
c2VOUy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTE1MzIsNiArMTU1Myw5IEBACiAJCQkJQkNFMjMxNUQxMjJDMzBDQTAwRDVDMzVB
IC8qIFdlYlVSTFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTIzMUM3MTIyQzQ5MjMw
MEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTIzMjc5MTIy
QzcxQUMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3ROUy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM5
MEExRDIxMjJERDU1RTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlCQzkwQTFEQzEyMkREODk4MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQkM5MEExRTAxMjJERDhFRTAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2VOUy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0xNzYwLDYgKzE3ODQsMTAgQEAKIAkJCQlCQ0UyMzFDODEyMkM0
OTIzMDBENUMzNUEgLyogV0tVUkxSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRTIz
MjYzMTIyQzZDRjMwMEQ1QzM1QSAvKiBXZWJDb3JlQXJndW1lbnRDb2RlcnNNYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCQ0UyMzI3QTEyMkM3MUFDMDBENUMzNUEgLyogV0tVUkxSZXF1ZXN0TlMu
bW0gaW4gU291cmNlcyAqLywKKwkJCQlCQzkwQTFEMzEyMkRENTVFMDBDQzhDNTAgLyogV2ViVVJM
UmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM5MEExRDcxMjJERDY2QTAwQ0M4QzUw
IC8qIFdlYlVSTFJlc3BvbnNlTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQkM5MEExREQxMjJE
RDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM5
MEExRTExMjJERDhFRTAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2VOUy5tbSBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
Owo=
</data>
<flag name="review"
          id="55240"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>