<?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>110148</bug_id>
          
          <creation_ts>2013-02-18 12:45:10 -0800</creation_ts>
          <short_desc>webdatabase: Introduce AbstractSQLStatement and AbstractSQLStatementBackend</short_desc>
          <delta_ts>2013-02-18 14:34:48 -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>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="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>ggaren</cc>
    
    <cc>levin+threading</cc>
    
    <cc>michaeln</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>835694</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-02-18 12:45:10 -0800</bug_when>
    <thetext>We need to extract the essential interface between the front-end and back-end of webdatabase objects in order to implement proxy objects that will handle the IPC between the 2 ends.  This patch introduces the AbstractSQLStatement and AbstractSQLStatementBackend which defines that essential interface for the SQLStatement and its backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835708</commentid>
    <comment_count>1</comment_count>
      <attachid>188935</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-02-18 13:05:33 -0800</bug_when>
    <thetext>Created attachment 188935
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835737</commentid>
    <comment_count>2</comment_count>
      <attachid>188935</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-02-18 13:55:53 -0800</bug_when>
    <thetext>Comment on attachment 188935
the patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>835749</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-02-18 14:34:48 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r143264: &lt;http://trac.webkit.org/changeset/143264&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188935</attachid>
            <date>2013-02-18 13:05:33 -0800</date>
            <delta_ts>2013-02-18 13:55:53 -0800</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-110148.patch</filename>
            <type>text/plain</type>
            <size>25403</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MzI1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDEzLTAyLTE4ICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2VkIEFic3RyYWN0U1FM
U3RhdGVtZW50IGFuZCBBYnN0cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTAxNDguCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBwYXJ0IG9mIHRoZSB3
ZWJkYXRhYmFzZSByZWZhY3RvcmluZyBmb3Igd2Via2l0Mi4KKyAgICAgICAgLSBBbHNvIGNoYW5n
ZWQgdGhlIGZyb250ZW5kIGFuZCBiYWNrZW5kIHRvIG9ubHkgcmVmZXIgdG8gdGhlCisgICAgICAg
ICAgYWJzdHJhY3QgaW50ZXJmYWNlIG9mIGVhY2ggb3RoZXIuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0Fic3RyYWN0U1FMU3RhdGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoQWJz
dHJhY3RTUUxTdGF0ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6QWJzdHJhY3RTUUxTdGF0ZW1l
bnQ6On5BYnN0cmFjdFNRTFN0YXRlbWVudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFz
ZS9BYnN0cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQuaDogQWRkZWQuCisgICAgICAgIChBYnN0cmFj
dFNRTFN0YXRlbWVudEJhY2tlbmQpOgorICAgICAgICAoV2ViQ29yZTo6QWJzdHJhY3RTUUxTdGF0
ZW1lbnRCYWNrZW5kOjp+QWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
UUxTdGF0ZW1lbnQ6OnNldEJhY2tlbmQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMU3RhdGVtZW50Lmg6CisgICAgICAgIChTUUxTdGF0ZW1lbnQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTUUxTdGF0ZW1lbnRCYWNrZW5kOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3Rh
dGVtZW50QmFja2VuZDo6U1FMU3RhdGVtZW50QmFja2VuZCk6CisgICAgICAgIChXZWJDb3JlOjpT
UUxTdGF0ZW1lbnRCYWNrZW5kOjpmcm9udGVuZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmg6CisgICAgICAgIChTUUxTdGF0ZW1lbnRCYWNrZW5k
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyU3RhdGVtZW50Q2FsbGJhY2sp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Y3VycmVudFN0YXRl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmV4ZWN1dGVT
UUwpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5k
Lmg6CisgICAgICAgIChTUUxUcmFuc2FjdGlvbkJhY2tlbmQpOgorICAgICAgICAqIFRhcmdldC5w
cmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6
CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxMy0wMi0xOCAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MzE0NS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQkocmV2aXNpb24gMTQzMTUzKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjEwMCw2ICsyMTAwLDggQEAgd2ViY29yZV9tb2R1
bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVRh
YmxlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlVGFibGUuaCBc
CiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFjdERhdGFiYXNlU2Vy
dmVyLmggXAorCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3RTUUxT
dGF0ZW1lbnQuaCBcCisJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFj
dFNRTFN0YXRlbWVudEJhY2tlbmQuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9DaGFuZ2VWZXJzaW9uRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5oIFwKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQko
cmV2aXNpb24gMTQzMTUzKQorKysgU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQkod29ya2luZyBj
b3B5KQpAQCAtMTQ1Nyw2ICsxNDU3LDggQEAgSEVBREVSUyArPSBcCiAgICAgTW9kdWxlcy9wcm94
aW1pdHkvRGV2aWNlUHJveGltaXR5RXZlbnQuaCBcCiAgICAgXAogICAgIE1vZHVsZXMvd2ViZGF0
YWJhc2UvQWJzdHJhY3REYXRhYmFzZVNlcnZlci5oIFwKKyAgICBNb2R1bGVzL3dlYmRhdGFiYXNl
L0Fic3RyYWN0U1FMU3RhdGVtZW50LmggXAorICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJh
Y3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmggXAogICAgIE1vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdl
VmVyc2lvbkRhdGEuaCBcCiAgICAgTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3Jh
cHBlci5oIFwKICAgICBNb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmgg
XApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gMTQzMTUzKQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC05ODQsNiArOTg0LDggQEAKICAgICAg
ICAgICAgICdNb2R1bGVzL3dlYmF1ZGlvL1dhdmVUYWJsZS5jcHAnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvd2ViYXVkaW8vV2F2ZVRhYmxlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvd2ViZGF0
YWJhc2UvQWJzdHJhY3REYXRhYmFzZVNlcnZlci5oJywKKyAgICAgICAgICAgICdNb2R1bGVzL3dl
YmRhdGFiYXNlL0Fic3RyYWN0U1FMU3RhdGVtZW50LmgnLAorICAgICAgICAgICAgJ01vZHVsZXMv
d2ViZGF0YWJhc2UvQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmgnLAogICAgICAgICAgICAg
J01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbkRhdGEuaCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAnLAogICAgICAgICAg
ICAgJ01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuaCcsCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Fic3RyYWN0U1FMU3RhdGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9BYnN0cmFj
dFNRTFN0YXRlbWVudC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9BYnN0cmFjdFNRTFN0YXRlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgQWJzdHJhY3RTUUxTdGF0ZW1lbnRfaAorI2RlZmluZSBBYnN0cmFjdFNRTFN0YXRlbWVu
dF9oCisKKyNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQorCisjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQWJzdHJhY3RT
UUxTdGF0ZW1lbnRCYWNrZW5kOworCitjbGFzcyBBYnN0cmFjdFNRTFN0YXRlbWVudCB7CitwdWJs
aWM6CisgICAgdmlydHVhbCB+QWJzdHJhY3RTUUxTdGF0ZW1lbnQoKSB7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBzZXRCYWNrZW5kKEFic3RyYWN0U1FMU3RhdGVtZW50QmFja2VuZCopID0gMDsKKwor
ICAgIHZpcnR1YWwgYm9vbCBoYXNDYWxsYmFjaygpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaGFz
RXJyb3JDYWxsYmFjaygpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShTUUxfREFUQUJBU0UpCisKKyNlbmRpZiAvLyBBYnN0cmFjdFNRTFN0YXRl
bWVudF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Fic3RyYWN0
U1FMU3RhdGVtZW50QmFja2VuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Fic3RyYWN0U1FMU3RhdGVt
ZW50QmFja2VuZC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgQWJzdHJhY3RTUUxTdGF0
ZW1lbnRCYWNrZW5kX2gKKyNkZWZpbmUgQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kX2gKKwor
I2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCisKKyNpbmNsdWRlICJTUUxFcnJvci5oIgorI2luY2x1
ZGUgIlNRTFJlc3VsdFNldC5oIgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEFic3RyYWN0U1FMU3RhdGVtZW50QmFj
a2VuZCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxBYnN0cmFjdFNRTFN0YXRlbWVudEJh
Y2tlbmQ+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5BYnN0cmFjdFNRTFN0YXRlbWVudEJhY2tl
bmQoKSB7IH0KKworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTUUxFcnJvcj4gc3FsRXJyb3IoKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNRTFJlc3VsdFNldD4gc3FsUmVzdWx0
U2V0KCkgY29uc3QgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKKworI2VuZGlmIC8vIEFic3RyYWN0U1FMU3RhdGVtZW50
QmFja2VuZF9oCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0
YXRlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxTdGF0ZW1lbnQuY3BwCShyZXZpc2lvbiAxNDMxNTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMxLDExICszMSwxMCBAQAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAKICNpbmNsdWRlICJB
YnN0cmFjdERhdGFiYXNlU2VydmVyLmgiCisjaW5jbHVkZSAiQWJzdHJhY3RTUUxTdGF0ZW1lbnRC
YWNrZW5kLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2UuaCIKICNpbmNsdWRlICJEYXRhYmFzZU1hbmFn
ZXIuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiU1FMRXJyb3IuaCIKLSNpbmNs
dWRlICJTUUxTdGF0ZW1lbnRCYWNrZW5kLmgiCiAjaW5jbHVkZSAiU1FMU3RhdGVtZW50Q2FsbGJh
Y2suaCIKICNpbmNsdWRlICJTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
U1FMVHJhbnNhY3Rpb24uaCIKQEAgLTU5LDcgKzU4LDcgQEAgU1FMU3RhdGVtZW50OjpTUUxTdGF0
ZW1lbnQoRGF0YWJhc2UqIGRhdAogewogfQogCi12b2lkIFNRTFN0YXRlbWVudDo6c2V0QmFja2Vu
ZChTUUxTdGF0ZW1lbnRCYWNrZW5kKiBiYWNrZW5kKQordm9pZCBTUUxTdGF0ZW1lbnQ6OnNldEJh
Y2tlbmQoQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kKiBiYWNrZW5kKQogewogICAgIG1fYmFj
a2VuZCA9IGJhY2tlbmQ7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFN0YXRlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmgJKHJldmlzaW9uIDE0MzE1MykKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDcgQEAKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAKKyNpbmNsdWRl
ICJBYnN0cmFjdFNRTFN0YXRlbWVudC5oIgogI2luY2x1ZGUgIlNRTENhbGxiYWNrV3JhcHBlci5o
IgogI2luY2x1ZGUgIlNRTFJlc3VsdFNldC5oIgogI2luY2x1ZGUgIlNRTFZhbHVlLmgiCkBAIC0z
OSwzMiArNDAsMzIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBBYnN0cmFjdFNR
TFN0YXRlbWVudEJhY2tlbmQ7CiBjbGFzcyBEYXRhYmFzZTsKIGNsYXNzIFNRTEVycm9yOwotY2xh
c3MgU1FMU3RhdGVtZW50QmFja2VuZDsKIGNsYXNzIFNRTFN0YXRlbWVudENhbGxiYWNrOwogY2xh
c3MgU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjazsKIGNsYXNzIFNRTFRyYW5zYWN0aW9uOwogCi1j
bGFzcyBTUUxTdGF0ZW1lbnQgeworY2xhc3MgU1FMU3RhdGVtZW50IDogcHVibGljIEFic3RyYWN0
U1FMU3RhdGVtZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxTUUxTdGF0ZW1l
bnQ+IGNyZWF0ZShEYXRhYmFzZSosCiAgICAgICAgIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50Q2Fs
bGJhY2s+LCBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2s+KTsKIAogICAgIGJv
b2wgcGVyZm9ybUNhbGxiYWNrKFNRTFRyYW5zYWN0aW9uKik7CiAKLSAgICB2b2lkIHNldEJhY2tl
bmQoU1FMU3RhdGVtZW50QmFja2VuZCopOworICAgIHZpcnR1YWwgdm9pZCBzZXRCYWNrZW5kKEFi
c3RyYWN0U1FMU3RhdGVtZW50QmFja2VuZCopOwogCi0gICAgYm9vbCBoYXNDYWxsYmFjaygpOwot
ICAgIGJvb2wgaGFzRXJyb3JDYWxsYmFjaygpOworICAgIHZpcnR1YWwgYm9vbCBoYXNDYWxsYmFj
aygpOworICAgIHZpcnR1YWwgYm9vbCBoYXNFcnJvckNhbGxiYWNrKCk7CiAKIHByaXZhdGU6CiAg
ICAgU1FMU3RhdGVtZW50KERhdGFiYXNlKiwgUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRDYWxsYmFj
az4sIFBhc3NSZWZQdHI8U1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjaz4pOwogCi0gICAgLy8gVGhl
IFNRTFN0YXRlbWVudEJhY2tlbmQgb3ducyB0aGUgU1FMU3RhdGVtZW50LiBIZW5jZSwgdGhlIGJh
Y2tlbmQgaXMKKyAgICAvLyBUaGUgQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kIG93bnMgdGhl
IFNRTFN0YXRlbWVudC4gSGVuY2UsIHRoZSBiYWNrZW5kIGlzCiAgICAgLy8gZ3VhcmFudGVlZCB0
byBiZSBvdXRsaXZlIHRoZSBTUUxTdGF0ZW1lbnQsIGFuZCBpdCBpcyBzYWZlIGZvciB1cyB0byBy
ZWZlcgogICAgIC8vIHRvIHRoZSBiYWNrZW5kIHVzaW5nIGEgcmF3IHBvaW50ZXIgaGVyZS4KLSAg
ICBTUUxTdGF0ZW1lbnRCYWNrZW5kKiBtX2JhY2tlbmQ7CisgICAgQWJzdHJhY3RTUUxTdGF0ZW1l
bnRCYWNrZW5kKiBtX2JhY2tlbmQ7CiAKICAgICBTUUxDYWxsYmFja1dyYXBwZXI8U1FMU3RhdGVt
ZW50Q2FsbGJhY2s+IG1fc3RhdGVtZW50Q2FsbGJhY2tXcmFwcGVyOwogICAgIFNRTENhbGxiYWNr
V3JhcHBlcjxTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrPiBtX3N0YXRlbWVudEVycm9yQ2FsbGJh
Y2tXcmFwcGVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxT
dGF0ZW1lbnRCYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuY3BwCShyZXZpc2lvbiAxNDMxNTMpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMiArMzAsMTAgQEAKIAogI2lmIEVOQUJMRShTUUxf
REFUQUJBU0UpCiAKKyNpbmNsdWRlICJBYnN0cmFjdFNRTFN0YXRlbWVudC5oIgogI2luY2x1ZGUg
IkRhdGFiYXNlQmFja2VuZEFzeW5jLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlNRTEVycm9yLmgiCi0jaW5jbHVkZSAiU1FMU3RhdGVtZW50LmgiCi0jaW5jbHVkZSAiU1FMU3Rh
dGVtZW50Q2FsbGJhY2suaCIKLSNpbmNsdWRlICJTUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmgi
CiAjaW5jbHVkZSAiU1FMVmFsdWUuaCIKICNpbmNsdWRlICJTUUxpdGVEYXRhYmFzZS5oIgogI2lu
Y2x1ZGUgIlNRTGl0ZVN0YXRlbWVudC5oIgpAQCAtNzYsMTMgKzc0LDEzIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPiBTUUxTdGF0ZW1l
bnRCYWNrZW5kOjpjcmVhdGUoUGFzc093blB0cjxTUUxTdGF0ZW1lbnQ+IGZyb250ZW5kLAorUGFz
c1JlZlB0cjxTUUxTdGF0ZW1lbnRCYWNrZW5kPiBTUUxTdGF0ZW1lbnRCYWNrZW5kOjpjcmVhdGUo
UGFzc093blB0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4gZnJvbnRlbmQsCiAgICAgY29uc3QgU3Ry
aW5nJiBzdGF0ZW1lbnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBl
cm1pc3Npb25zKQogewogICAgIHJldHVybiBhZG9wdFJlZihuZXcgU1FMU3RhdGVtZW50QmFja2Vu
ZChmcm9udGVuZCwgc3RhdGVtZW50LCBhcmd1bWVudHMsIHBlcm1pc3Npb25zKSk7CiB9CiAKLVNR
TFN0YXRlbWVudEJhY2tlbmQ6OlNRTFN0YXRlbWVudEJhY2tlbmQoUGFzc093blB0cjxTUUxTdGF0
ZW1lbnQ+IGZyb250ZW5kLAorU1FMU3RhdGVtZW50QmFja2VuZDo6U1FMU3RhdGVtZW50QmFja2Vu
ZChQYXNzT3duUHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiBmcm9udGVuZCwKICAgICBjb25zdCBT
dHJpbmcmIHN0YXRlbWVudCwgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRzLCBpbnQg
cGVybWlzc2lvbnMpCiAgICAgOiBtX2Zyb250ZW5kKGZyb250ZW5kKQogICAgICwgbV9zdGF0ZW1l
bnQoc3RhdGVtZW50Lmlzb2xhdGVkQ29weSgpKQpAQCAtOTQsNyArOTIsNyBAQCBTUUxTdGF0ZW1l
bnRCYWNrZW5kOjpTUUxTdGF0ZW1lbnRCYWNrZW5kCiAgICAgbV9mcm9udGVuZC0+c2V0QmFja2Vu
ZCh0aGlzKTsKIH0KIAotU1FMU3RhdGVtZW50KiBTUUxTdGF0ZW1lbnRCYWNrZW5kOjpmcm9udGVu
ZCgpCitBYnN0cmFjdFNRTFN0YXRlbWVudCogU1FMU3RhdGVtZW50QmFja2VuZDo6ZnJvbnRlbmQo
KQogewogICAgIHJldHVybiBtX2Zyb250ZW5kLmdldCgpOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5k
LmgJKHJldmlzaW9uIDE0MzE1MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMU3RhdGVtZW50QmFja2VuZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMiArMzAsMjMg
QEAKIAogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCiAKLSNpbmNsdWRlICJTUUxSZXN1bHRTZXQu
aCIKKyNpbmNsdWRlICJBYnN0cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQuaCIKICNpbmNsdWRlICJT
UUxWYWx1ZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQWJzdHJhY3RTUUxTdGF0
ZW1lbnQ7CiBjbGFzcyBEYXRhYmFzZUJhY2tlbmRBc3luYzsKIGNsYXNzIFNRTEVycm9yOwotY2xh
c3MgU1FMU3RhdGVtZW50OwogY2xhc3MgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOwogCi1jbGFzcyBT
UUxTdGF0ZW1lbnRCYWNrZW5kIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNRTFN0YXRl
bWVudEJhY2tlbmQ+IHsKK2NsYXNzIFNRTFN0YXRlbWVudEJhY2tlbmQgOiBwdWJsaWMgQWJzdHJh
Y3RTUUxTdGF0ZW1lbnRCYWNrZW5kIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
UUxTdGF0ZW1lbnRCYWNrZW5kPiBjcmVhdGUoUGFzc093blB0cjxTUUxTdGF0ZW1lbnQ+LAorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNRTFN0YXRlbWVudEJhY2tlbmQ+IGNyZWF0ZShQYXNzT3duUHRy
PEFic3RyYWN0U1FMU3RhdGVtZW50PiwKICAgICAgICAgY29uc3QgU3RyaW5nJiBzcWxTdGF0ZW1l
bnQsIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1pc3Npb25zKTsK
IAogICAgIGJvb2wgZXhlY3V0ZShEYXRhYmFzZUJhY2tlbmRBc3luYyopOwpAQCAtNTcsMTggKzU4
LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERhdGFiYXNlRGVsZXRlZEVycm9yKERhdGFiYXNl
QmFja2VuZEFzeW5jKik7CiAgICAgdm9pZCBzZXRWZXJzaW9uTWlzbWF0Y2hlZEVycm9yKERhdGFi
YXNlQmFja2VuZEFzeW5jKik7CiAKLSAgICBTUUxTdGF0ZW1lbnQqIGZyb250ZW5kKCk7Ci0gICAg
UGFzc1JlZlB0cjxTUUxFcnJvcj4gc3FsRXJyb3IoKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPFNR
TFJlc3VsdFNldD4gc3FsUmVzdWx0U2V0KCkgY29uc3Q7CisgICAgQWJzdHJhY3RTUUxTdGF0ZW1l
bnQqIGZyb250ZW5kKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFNRTEVycm9yPiBzcWxFcnJv
cigpIGNvbnN0OworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTUUxSZXN1bHRTZXQ+IHNxbFJlc3Vs
dFNldCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIFNRTFN0YXRlbWVudEJhY2tlbmQoUGFzc093
blB0cjxTUUxTdGF0ZW1lbnQ+LCBjb25zdCBTdHJpbmcmIHN0YXRlbWVudCwKKyAgICBTUUxTdGF0
ZW1lbnRCYWNrZW5kKFBhc3NPd25QdHI8QWJzdHJhY3RTUUxTdGF0ZW1lbnQ+LCBjb25zdCBTdHJp
bmcmIHN0YXRlbWVudCwKICAgICAgICAgY29uc3QgVmVjdG9yPFNRTFZhbHVlPiYgYXJndW1lbnRz
LCBpbnQgcGVybWlzc2lvbnMpOwogCiAgICAgdm9pZCBzZXRGYWlsdXJlRHVlVG9RdW90YShEYXRh
YmFzZUJhY2tlbmRBc3luYyopOwogICAgIHZvaWQgY2xlYXJGYWlsdXJlRHVlVG9RdW90YSgpOwog
Ci0gICAgT3duUHRyPFNRTFN0YXRlbWVudD4gbV9mcm9udGVuZDsKKyAgICBPd25QdHI8QWJzdHJh
Y3RTUUxTdGF0ZW1lbnQ+IG1fZnJvbnRlbmQ7CiAgICAgU3RyaW5nIG1fc3RhdGVtZW50OwogICAg
IFZlY3RvcjxTUUxWYWx1ZT4gbV9hcmd1bWVudHM7CiAgICAgYm9vbCBtX2hhc0NhbGxiYWNrOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxU
cmFuc2FjdGlvbi5jcHAJKHJldmlzaW9uIDE0MzE1MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzQs
NyArMTc0LDggQEAgU1FMVHJhbnNhY3Rpb25TdGF0ZSBTUUxUcmFuc2FjdGlvbjo6ZGVsaQogICAg
IC8vIE90aGVyd2lzZSwgY29udGludWUgdG8gbG9vcCB0aHJvdWdoIHRoZSBzdGF0ZW1lbnQgcXVl
dWUKICAgICBtX2V4ZWN1dGVTcWxBbGxvd2VkID0gdHJ1ZTsKIAotICAgIFNRTFN0YXRlbWVudCog
Y3VycmVudFN0YXRlbWVudCA9IG1fYmFja2VuZC0+Y3VycmVudFN0YXRlbWVudCgpOworICAgIEFi
c3RyYWN0U1FMU3RhdGVtZW50KiBjdXJyZW50QWJzdHJhY3RTdGF0ZW1lbnQgPSBtX2JhY2tlbmQt
PmN1cnJlbnRTdGF0ZW1lbnQoKTsKKyAgICBTUUxTdGF0ZW1lbnQqIGN1cnJlbnRTdGF0ZW1lbnQg
PSBzdGF0aWNfY2FzdDxTUUxTdGF0ZW1lbnQqPihjdXJyZW50QWJzdHJhY3RTdGF0ZW1lbnQpOwog
ICAgIEFTU0VSVChjdXJyZW50U3RhdGVtZW50KTsKIAogICAgIGJvb2wgcmVzdWx0ID0gY3VycmVu
dFN0YXRlbWVudC0+cGVyZm9ybUNhbGxiYWNrKHRoaXMpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNr
ZW5kLmNwcAkocmV2aXNpb24gMTQzMTUzKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwx
MCArMzksNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiU1FMRXJyb3IuaCIKLSNpbmNsdWRlICJTUUxTdGF0ZW1lbnQuaCIKICNp
bmNsdWRlICJTUUxTdGF0ZW1lbnRCYWNrZW5kLmgiCi0jaW5jbHVkZSAiU1FMU3RhdGVtZW50Q2Fs
bGJhY2suaCIgLy8gRklYTUU6IHJlbW92ZSB3aGVuIFNRTFN0YXRlbWVudCBoYXMgYmVlbiByZWZh
Y3RvcmVkLgotI2luY2x1ZGUgIlNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suaCIgLy8gRklYTUU6
IHJlbW92ZSB3aGVuIFNRTFN0YXRlbWVudCBoYXMgYmVlbiByZWZhY3RvcmVkLgogI2luY2x1ZGUg
IlNRTFRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25DbGllbnQuaCIKICNp
bmNsdWRlICJTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmgiCkBAIC0zNzcsNyArMzc0LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmRvQ2xlYW51cCgpCiAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gMDsKIH0KIAotU1FMU3RhdGVtZW50KiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmN1
cnJlbnRTdGF0ZW1lbnQoKQorQWJzdHJhY3RTUUxTdGF0ZW1lbnQqIFNRTFRyYW5zYWN0aW9uQmFj
a2VuZDo6Y3VycmVudFN0YXRlbWVudCgpCiB7CiAgICAgcmV0dXJuIG1fY3VycmVudFN0YXRlbWVu
dEJhY2tlbmQtPmZyb250ZW5kKCk7CiB9CkBAIC00NjMsNyArNDYwLDcgQEAgdm9pZCBTUUxUcmFu
c2FjdGlvbkJhY2tlbmQ6OnBlcmZvcm1OZXh0UwogICAgIHJ1blN0YXRlTWFjaGluZSgpOwogfQog
Ci12b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZXhlY3V0ZVNRTChQYXNzT3duUHRyPFNRTFN0
YXRlbWVudD4gc3RhdGVtZW50LAordm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmV4ZWN1dGVT
UUwoUGFzc093blB0cjxBYnN0cmFjdFNRTFN0YXRlbWVudD4gc3RhdGVtZW50LAogICAgIGNvbnN0
IFN0cmluZyYgc3FsU3RhdGVtZW50LCBjb25zdCBWZWN0b3I8U1FMVmFsdWU+JiBhcmd1bWVudHMs
IGludCBwZXJtaXNzaW9ucykKIHsKICAgICBSZWZQdHI8U1FMU3RhdGVtZW50QmFja2VuZD4gc3Rh
dGVtZW50QmFja2VuZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMVHJhbnNhY3Rpb25CYWNrZW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuaAkocmV2aXNpb24gMTQzMTUz
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJh
Y2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaWYgRU5BQkxFKFNR
TF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIkFic3RyYWN0U1FMU3RhdGVtZW50LmgiCiAjaW5jbHVk
ZSAiRGF0YWJhc2VCYXNpY1R5cGVzLmgiCiAjaW5jbHVkZSAiU1FMVHJhbnNhY3Rpb25TdGF0ZU1h
Y2hpbmUuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTQxLDcgKzQyLDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgRGF0YWJhc2VCYWNrZW5kQXN5bmM7CiBjbGFzcyBTUUxFcnJv
cjsKIGNsYXNzIFNRTGl0ZVRyYW5zYWN0aW9uOwotY2xhc3MgU1FMU3RhdGVtZW50OwogY2xhc3Mg
U1FMU3RhdGVtZW50QmFja2VuZDsKIGNsYXNzIFNRTFRyYW5zYWN0aW9uOwogY2xhc3MgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOwpAQCAtNzEsMTEgKzcxLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIG5v
dGlmeURhdGFiYXNlVGhyZWFkSXNTaHV0dGluZ0Rvd24oKTsKIAogICAgIC8vIEFQSXMgZm9yIHRo
ZSBmcm9udGVuZDoKLSAgICBTUUxTdGF0ZW1lbnQqIGN1cnJlbnRTdGF0ZW1lbnQoKTsKKyAgICBB
YnN0cmFjdFNRTFN0YXRlbWVudCogY3VycmVudFN0YXRlbWVudCgpOwogICAgIFBhc3NSZWZQdHI8
U1FMRXJyb3I+IHRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICB2b2lkIHNldFNob3VsZFJldHJ5Q3Vy
cmVudFN0YXRlbWVudChib29sKTsKIAotICAgIHZvaWQgZXhlY3V0ZVNRTChQYXNzT3duUHRyPFNR
TFN0YXRlbWVudD4sIGNvbnN0IFN0cmluZyYgc3RhdGVtZW50LAorICAgIHZvaWQgZXhlY3V0ZVNR
TChQYXNzT3duUHRyPEFic3RyYWN0U1FMU3RhdGVtZW50PiwgY29uc3QgU3RyaW5nJiBzdGF0ZW1l
bnQsCiAgICAgICAgIGNvbnN0IFZlY3RvcjxTUUxWYWx1ZT4mIGFyZ3VtZW50cywgaW50IHBlcm1p
c3Npb25zKTsKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiAxNDMxNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMjUzNzgsNiAr
MjUzNzgsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcQWJzdHJhY3RTUUxTdGF0ZW1lbnQuaCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVs
ZXNcd2ViZGF0YWJhc2VcQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmgiCisJCQkJCT4KKwkJ
CQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXHdlYmRh
dGFiYXNlXENoYW5nZVZlcnNpb25EYXRhLmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oJKHJldmlz
aW9uIDE0MzE1MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY0MTgsNiArNjQxOCw4IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxNb2R1bGVzXG5vdGlmaWNhdGlvbnNcTm90aWZpY2F0aW9uQ2xpZW50Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXG5vdGlmaWNhdGlvbnNcV29y
a2VyQ29udGV4dE5vdGlmaWNhdGlvbnMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XE1vZHVsZXNcd2ViZGF0YWJhc2VcQWJzdHJhY3REYXRhYmFzZVNlcnZlci5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFzZVxBYnN0cmFjdFNRTFN0YXRl
bWVudC5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cTW9kdWxlc1x3ZWJkYXRhYmFz
ZVxBYnN0cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcQ2hhbmdlVmVyc2lvbkRhdGEuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcQ2hhbmdlVmVyc2lvbldy
YXBwZXIuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJh
c2VcRGF0YWJhc2UuaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9uIDE0MzE1MykKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwko
d29ya2luZyBjb3B5KQpAQCAtODQ4NCw2ICs4NDg0LDEyIEBACiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXEFic3RyYWN0RGF0YWJhc2VTZXJ2ZXIuaCI+CiAg
ICAgICA8RmlsdGVyPk1vZHVsZXNcd2ViZGF0YWJhc2U8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVk
ZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVsZXNcd2ViZGF0YWJhc2VcQWJzdHJh
Y3RTUUxTdGF0ZW1lbnQuaCI+CisgICAgICA8RmlsdGVyPk1vZHVsZXNcd2ViZGF0YWJhc2U8L0Zp
bHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXE1vZHVs
ZXNcd2ViZGF0YWJhc2VcQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmgiPgorICAgICAgPEZp
bHRlcj5Nb2R1bGVzXHdlYmRhdGFiYXNlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxNb2R1bGVzXHdlYmRhdGFiYXNlXENoYW5nZVZlcnNpb25E
YXRhLmgiPgogICAgICAgPEZpbHRlcj5Nb2R1bGVzXHdlYmRhdGFiYXNlPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNDMxNTMpCisrKyBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY3ODgs
NiArNjc4OCw4IEBACiAJCUZFMzZGRDE4MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlv
blN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RTM2RkQxNDE2Qzc4MjY0MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25TdGF0ZS5oICovOyB9Owog
CQlGRTQ1NkYxODE2NzdENzRFMDA1RURERjkgLyogRGF0YWJhc2VNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNDU2RjE2MTY3N0Q3NEUw
MDVFRERGOSAvKiBEYXRhYmFzZU1hbmFnZXIuY3BwICovOyB9OwogCQlGRTQ1NkYxOTE2NzdENzRF
MDA1RURERjkgLyogRGF0YWJhc2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRTQ1NkYxNzE2NzdENzRFMDA1RURERjkgLyogRGF0YWJhc2VN
YW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJRkU0QUFERUUxNkQyQzM3NDAwMDI2RkZDIC8qIEFic3RyYWN0U1FMU3RhdGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTRBQURFQzE2RDJD
Mzc0MDAwMjZGRkMgLyogQWJzdHJhY3RTUUxTdGF0ZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGRTRBQURFRjE2RDJDMzc0MDAwMjZGRkMg
LyogQWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTRBQURFRDE2RDJDMzc0MDAwMjZGRkMgLyogQWJzdHJh
Y3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRkU2RjZBQUYxNjlFMDU3NTAwRkMzMEEyIC8qIERhdGFiYXNlQmFj
a2VuZENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkU2RjZBQUQxNjlFMDU3NTAwRkMzMEEyIC8qIERhdGFiYXNlQmFja2VuZENvbnRleHQu
Y3BwICovOyB9OwogCQlGRTZGNkFCMDE2OUUwNTc1MDBGQzMwQTIgLyogRGF0YWJhc2VCYWNrZW5k
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkU2RjZBQUUxNjlFMDU3NTAwRkMzMEEyIC8qIERhdGFiYXNlQmFja2VuZENvbnRleHQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRTZGRDQ4ODBG
Njc2RTU3MDAwOTI4NzMgLyogQ29vcmRpbmF0ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNkZENDg1MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGlu
YXRlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0xNDUzOSw2ICsxNDU0MSw4IEBACiAJCUZFMzZGRDE0MTZDNzgyNjQwMEY4ODdDMSAvKiBTUUxU
cmFuc2FjdGlvblN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNRTFRy
YW5zYWN0aW9uU3RhdGUuaDsgcGF0aCA9IE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rp
b25TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRTQ1NkYxNjE2NzdENzRF
MDA1RURERjkgLyogRGF0YWJhc2VNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IERhdGFiYXNlTWFuYWdlci5jcHA7IHBhdGggPSBNb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZF
NDU2RjE3MTY3N0Q3NEUwMDVFRERGOSAvKiBEYXRhYmFzZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gRGF0YWJhc2VNYW5hZ2VyLmg7IHBhdGggPSBNb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGRTRBQURFQzE2RDJDMzc0MDAwMjZGRkMgLyogQWJzdHJhY3RTUUxTdGF0ZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQWJzdHJhY3RTUUxTdGF0ZW1lbnQuaDsgcGF0
aCA9IE1vZHVsZXMvd2ViZGF0YWJhc2UvQWJzdHJhY3RTUUxTdGF0ZW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU0QUFERUQxNkQyQzM3NDAwMDI2RkZDIC8qIEFic3RyYWN0
U1FMU3RhdGVtZW50QmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBB
YnN0cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQuaDsgcGF0aCA9IE1vZHVsZXMvd2ViZGF0YWJhc2Uv
QWJzdHJhY3RTUUxTdGF0ZW1lbnRCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUZFNkY2QUFEMTY5RTA1NzUwMEZDMzBBMiAvKiBEYXRhYmFzZUJhY2tlbmRDb250ZXh0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERhdGFiYXNlQmFja2VuZENv
bnRleHQuY3BwOyBwYXRoID0gTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUJhY2tlbmRDb250
ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU2RjZBQUUxNjlFMDU3NTAw
RkMzMEEyIC8qIERhdGFiYXNlQmFja2VuZENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gRGF0YWJhc2VCYWNrZW5kQ29udGV4dC5oOyBwYXRoID0gTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZUJhY2tlbmRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZFNkZENDg1MEY2NzZFNTcwMDA5Mjg3MyAvKiBDb29yZGluYXRlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb29yZGluYXRlcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTg2NTYsNiArMTg2NjAsOCBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKIAkJCQlGRTExNUZBOTE2Nzk4OENEMDAyNDkxMzQgLyogQWJzdHJhY3RE
YXRhYmFzZVNlcnZlci5oICovLAorCQkJCUZFNEFBREVDMTZEMkMzNzQwMDAyNkZGQyAvKiBBYnN0
cmFjdFNRTFN0YXRlbWVudC5oICovLAorCQkJCUZFNEFBREVEMTZEMkMzNzQwMDAyNkZGQyAvKiBB
YnN0cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQuaCAqLywKIAkJCQlGRTM2RkQxMTE2Qzc4MjY0MDBG
ODg3QzEgLyogQ2hhbmdlVmVyc2lvbkRhdGEuaCAqLywKIAkJCQk5N0JDNjlEODE1MDVGMDc2MDAx
Qjc0QUMgLyogQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwICovLAogCQkJCTk3QkM2OUQ5MTUwNUYw
NzYwMDFCNzRBQyAvKiBDaGFuZ2VWZXJzaW9uV3JhcHBlci5oICovLApAQCAtMjMxODAsNiArMjMx
ODYsOCBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAog
CQkJCUZFMTE1RkFCMTY3OTg4Q0QwMDI0OTEzNCAvKiBBYnN0cmFjdERhdGFiYXNlU2VydmVyLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGRTRBQURFRTE2RDJDMzc0MDAwMjZGRkMgLyogQWJzdHJhY3RT
UUxTdGF0ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUZFNEFBREVGMTZEMkMzNzQwMDAyNkZG
QyAvKiBBYnN0cmFjdFNRTFN0YXRlbWVudEJhY2tlbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
RTFCMUQxMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMjlBODEyMkUwRkJCOUMxRDAwNTEwMjkzIC8qIEFjY2Vzc2liaWxpdHlBUklBR3JpZENl
bGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5QTgxMjMzMEZCQjlDMUQwMDUxMDI5MyAvKiBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWRSb3cuaCBpbiBIZWFkZXJzICovLAo=
</data>
<flag name="review"
          id="209189"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>