<?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>55174</bug_id>
          
          <creation_ts>2011-02-24 12:39:29 -0800</creation_ts>
          <short_desc>Remove the layer backed drawing area</short_desc>
          <delta_ts>2011-02-24 15:13:58 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>buildbot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>357283</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-24 12:39:29 -0800</bug_when>
    <thetext>Remove the layer backed drawing area</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357284</commentid>
    <comment_count>1</comment_count>
      <attachid>83704</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-24 12:40:11 -0800</bug_when>
    <thetext>Created attachment 83704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357399</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-24 14:34:42 -0800</bug_when>
    <thetext>Attachment 83704 did not build on win:
Build output: http://queues.webkit.org/results/7986573</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>357441</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-02-24 15:13:58 -0800</bug_when>
    <thetext>Committed r79631: &lt;http://trac.webkit.org/changeset/79631&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83704</attachid>
            <date>2011-02-24 12:40:11 -0800</date>
            <delta_ts>2011-02-24 13:03:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55174-20110224124010.patch</filename>
            <type>text/plain</type>
            <size>49321</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5NjAyKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMDItMjQgIEFuZGVycyBD
YXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdGhlIGxheWVyIGJhY2tlZCBkcmF3aW5nIGFy
ZWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1MTc0
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBTaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0xheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eU1h
Yy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL0xheWVyQmFja2VkRHJhd2lu
Z0FyZWFQcm94eVdpbi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpjcmVhdGUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5oOiBS
ZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJCYWNrZWREcmF3
aW5nQXJlYU1hYy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd2lu
L0xheWVyQmFja2VkRHJhd2luZ0FyZWFXaW4uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdpbi9X
ZWJLaXQyLnZjcHJvajoKKwogMjAxMS0wMi0yNCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2JlbiBhbmQgbG9va2VkIGF0IGJ5
IEJyaWFuIFdlaW5zdGVpbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA3OTU5
NCkKKysrIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0z
NzQsOCArMzc0LDYgQEAgbGliV2ViS2l0Ml9sYV9TT1VSQ0VTID0gXAogCVNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL1RocmVhZExhdW5jaGVyLmggXAotCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuY3BwIFwKLQlTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmggXAogCVNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL2d0ay9QbHVnaW5JbmZvU3RvcmVHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5JbmZvU3RvcmUuY3BwIFwKQEAgLTYxMCw4ICs2MDgsNiBAQCBs
aWJXZWJLaXQyX2xhX1NPVVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0ZpbmRDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9XZWJJbnNwZWN0b3JHdGsuY3BwIFwKLQlTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5jcHAgXAotCVNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmgg
XAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5jcHAgXAog
CVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9QYWdlT3ZlcmxheS5oIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWREcmF3aW5nQXJlYS5jcHAgXApJbmRl
eDogU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAkocmV2aXNpb24gNzk1OTQp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQxLDkgKzQxLDYgQEAgc3RydWN0IERyYXdpbmdBcmVhSW5mbyB7CiAgICAgICAgIE5v
bmUsCiAgICAgICAgIEltcGwsCiAgICAgICAgIENodW5rZWRVcGRhdGUsCi0jaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotICAgICAgICBMYXllckJhY2tlZCwKLSNlbmRpZgogI2lmIEVO
QUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgICAgICBUaWxlZCwKICNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyQmFja2VkRHJhd2lu
Z0FyZWFQcm94eS5jcHAJKHJldmlzaW9uIDc5NTk0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
MTY4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
TGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09N
UE9TSVRJTkcpCi0KLSNpbmNsdWRlICJEcmF3aW5nQXJlYU1lc3NhZ2VLaW5kcy5oIgotI2luY2x1
ZGUgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlS2luZHMuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQu
aCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLQotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNzT3duUHRyPExheWVyQmFja2Vk
RHJhd2luZ0FyZWFQcm94eT4gTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpjcmVhdGUoUGxh
dGZvcm1XZWJWaWV3KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkqIHdlYlBhZ2VQcm94eSkKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eSh3ZWJWaWV3
LCB3ZWJQYWdlUHJveHkpKTsKLX0KLQotTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpMYXll
ckJhY2tlZERyYXdpbmdBcmVhUHJveHkoUGxhdGZvcm1XZWJWaWV3KiB3ZWJWaWV3LCBXZWJQYWdl
UHJveHkqIHdlYlBhZ2VQcm94eSkKLSAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFJ
bmZvOjpMYXllckJhY2tlZCwgd2ViUGFnZVByb3h5KQotICAgICwgbV9pc1dhaXRpbmdGb3JEaWRT
ZXRGcmFtZU5vdGlmaWNhdGlvbihmYWxzZSkKLSAgICAsIG1faXNWaXNpYmxlKHRydWUpCi0gICAg
LCBtX3dlYlZpZXcod2ViVmlldykKLXsKLX0KLQotTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5
Ojp+TGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5KCkKLXsKLX0KLQotI2lmICFQTEFURk9STShX
SU4pICYmICFQTEFURk9STShNQUMpCi1ib29sIExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eTo6
cGFpbnQoY29uc3QgSW50UmVjdCYgcmVjdCwgUGxhdGZvcm1EcmF3aW5nQ29udGV4dCBjb250ZXh0
KQotewotICAgIHJldHVybiB0cnVlOwotfQotI2VuZGlmCi0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3
aW5nQXJlYVByb3h5OjpzaXplRGlkQ2hhbmdlKCkKLXsKLSAgICBXZWJQYWdlUHJveHkqIHBhZ2Ug
PSB0aGlzLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlLT5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChtX3NpemUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X2xhc3RTZXRWaWV3U2l6ZSA9IG1fc2l6ZTsKLQotICAgIHBsYXRmb3JtU2V0U2l6ZSgpOwotCi0g
ICAgaWYgKG1faXNXYWl0aW5nRm9yRGlkU2V0RnJhbWVOb3RpZmljYXRpb24pCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1faXNXYWl0aW5nRm9yRGlkU2V0RnJhbWVOb3RpZmljYXRpb24gPSB0cnVl
OwotCi0gICAgcGFnZS0+cHJvY2VzcygpLT5kZXByZWNhdGVkU2VuZChEcmF3aW5nQXJlYUxlZ2Fj
eU1lc3NhZ2U6OlNldFNpemUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRl
bnRpZmllciwgbV9zaXplKSk7Ci19Ci0KLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
V0lOKQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OnBsYXRmb3JtU2V0U2l6ZSgp
Ci17Ci19Ci0jZW5kaWYKLQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OnNldFBh
Z2VJc1Zpc2libGUoYm9vbCBpc1Zpc2libGUpCi17Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0g
dGhpcy0+cGFnZSgpOwotCi0gICAgaWYgKGlzVmlzaWJsZSA9PSBtX2lzVmlzaWJsZSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIAotICAgIG1faXNWaXNpYmxlID0gaXNWaXNpYmxlOwotICAgIGlmICgh
cGFnZS0+aXNWYWxpZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIW1faXNWaXNpYmxl
KSB7Ci0gICAgICAgIC8vIFRlbGwgdGhlIHdlYiBwcm9jZXNzIHRoYXQgaXQgZG9lc24ndCBuZWVk
IHRvIHBhaW50IGFueXRoaW5nIGZvciBub3cuCi0gICAgICAgIHBhZ2UtPnByb2Nlc3MoKS0+ZGVw
cmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpTdXNwZW5kUGFpbnRpbmcsIHBh
Z2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllcikpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIAotICAgIC8vIFRoZSBwYWdlIGlzIG5vdyB2aXNpYmxlLgotICAg
IHBhZ2UtPnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdl
OjpSZXN1bWVQYWludGluZywgcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6OkluKGluZm8oKS5pZGVu
dGlmaWVyKSk7Ci0gICAgCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXF1ZXN0IGEgZnVsbCBy
ZXBhaW50IGhlcmUgaWYgbmVlZGVkLgotfQotICAgIAotdm9pZCBMYXllckJhY2tlZERyYXdpbmdB
cmVhUHJveHk6OmRpZFNldFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKLXsKLSAgICBtX2lzV2Fp
dGluZ0ZvckRpZFNldEZyYW1lTm90aWZpY2F0aW9uID0gZmFsc2U7Ci0KLSAgICBpZiAoc2l6ZSAh
PSBtX2xhc3RTZXRWaWV3U2l6ZSkKLSAgICAgICAgc2V0U2l6ZShtX2xhc3RTZXRWaWV3U2l6ZSwg
SW50U2l6ZSgpKTsKLX0KLQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OnVwZGF0
ZSgpCi17Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gdGhpcy0+cGFnZSgpOwotICAgIHBhZ2Ut
PnByb2Nlc3MoKS0+ZGVwcmVjYXRlZFNlbmQoRHJhd2luZ0FyZWFMZWdhY3lNZXNzYWdlOjpEaWRV
cGRhdGUsIHBhZ2UtPnBhZ2VJRCgpLCBDb3JlSVBDOjpJbihpbmZvKCkuaWRlbnRpZmllcikpOwot
fQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Q29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciogYXJndW1lbnRzKQotewotICAgIHN3aXRjaCAobWVzc2FnZUlE
LmdldDxEcmF3aW5nQXJlYVByb3h5TGVnYWN5TWVzc2FnZTo6S2luZD4oKSkgewotICAgICAgICBj
YXNlIERyYXdpbmdBcmVhUHJveHlMZWdhY3lNZXNzYWdlOjpVcGRhdGU6IHsKLSAgICAgICAgICAg
IHVwZGF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgY2FzZSBE
cmF3aW5nQXJlYVByb3h5TGVnYWN5TWVzc2FnZTo6RGlkU2V0U2l6ZTogewotICAgICAgICAgICAg
SW50U2l6ZSBzaXplOwotICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBD
OjpPdXQoc2l6ZSkpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGRpZFNl
dFNpemUoc2l6ZSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgfQotfQotCi12b2lk
IExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3JlSVBDOjpB
cmd1bWVudERlY29kZXIqIGFyZ3VtZW50cywgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKikKLXsK
LSAgICBzd2l0Y2ggKG1lc3NhZ2VJRC5nZXQ8RHJhd2luZ0FyZWFQcm94eUxlZ2FjeU1lc3NhZ2U6
OktpbmQ+KCkpIHsKLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgICAgIGNh
c2UgRHJhd2luZ0FyZWFQcm94eUxlZ2FjeU1lc3NhZ2U6OkF0dGFjaENvbXBvc2l0aW5nQ29udGV4
dDogewotICAgICAgICAgICAgdWludDMyX3QgY29udGV4dElEOwotICAgICAgICAgICAgaWYgKCFh
cmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQoY29udGV4dElEKSkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgYXR0YWNoQ29tcG9zaXRpbmdDb250ZXh0KGNvbnRleHRJ
RCk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotI2VuZGlmCi0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xheWVyQmFja2VkRHJhd2luZ0FyZWFQ
cm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXllckJhY2tl
ZERyYXdpbmdBcmVhUHJveHkuaAkocmV2aXNpb24gNzk1OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsOTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTGF5ZXJCYWNrZWREcmF3aW5nQXJl
YVByb3h5X2gKLSNkZWZpbmUgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5X2gKLQotI2lmIFVT
RShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQotI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHku
aCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KLQotI2lmIFBMQVRGT1JNKE1BQykKLSNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0KLU9CSkNfQ0xBU1MgQ0FMYXllcjsKLU9CSkNfQ0xB
U1MgV0tWaWV3OwotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQYWdl
UHJveHk7Ci0KLSNpZiBQTEFURk9STShNQUMpCi10eXBlZGVmIFdLVmlldyBQbGF0Zm9ybVdlYlZp
ZXc7Ci0jZWxpZiBQTEFURk9STShXSU4pCi1jbGFzcyBXZWJWaWV3OwotdHlwZWRlZiBXZWJWaWV3
IFBsYXRmb3JtV2ViVmlldzsKLSNlbmRpZgotCi1jbGFzcyBMYXllckJhY2tlZERyYXdpbmdBcmVh
UHJveHkgOiBwdWJsaWMgRHJhd2luZ0FyZWFQcm94eSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NPd25QdHI8TGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5PiBjcmVhdGUoUGxhdGZvcm1XZWJW
aWV3KiwgV2ViUGFnZVByb3h5Kik7Ci0gICAgdmlydHVhbCB+TGF5ZXJCYWNrZWREcmF3aW5nQXJl
YVByb3h5KCk7Ci0KLXByaXZhdGU6Ci0gICAgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5KFBs
YXRmb3JtV2ViVmlldyosIFdlYlBhZ2VQcm94eSopOwotCi0gICAgV2ViUGFnZVByb3h5KiBwYWdl
KCk7Ci0KLSAgICAvLyBEcmF3aW5nQXJlYVByb3h5Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJ
UEM6OkFyZ3VtZW50RGVjb2RlciopOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlU3luY01l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6
QXJndW1lbnREZWNvZGVyKiwgQ29yZUlQQzo6QXJndW1lbnRFbmNvZGVyKik7Ci0KLSAgICB2aXJ0
dWFsIGJvb2wgcGFpbnQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtRHJhd2luZ0Nv
bnRleHQpOwotICAgIHZpcnR1YWwgdm9pZCBzaXplRGlkQ2hhbmdlKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHNldFBhZ2VJc1Zpc2libGUoYm9vbCBpc1Zpc2libGUpOwotCi0gICAgdmlydHVhbCB2b2lk
IGF0dGFjaENvbXBvc2l0aW5nQ29udGV4dCh1aW50MzJfdCBjb250ZXh0SUQpOwotICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2hDb21wb3NpdGluZ0NvbnRleHQoKTsKLSAgICAKLSAgICB2b2lkIGRpZFNl
dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwotICAgIHZvaWQgdXBkYXRlKCk7Ci0gICAg
Ci0gICAgdm9pZCBwbGF0Zm9ybVNldFNpemUoKTsKLQotICAgIGJvb2wgbV9pc1dhaXRpbmdGb3JE
aWRTZXRGcmFtZU5vdGlmaWNhdGlvbjsKLSAgICBib29sIG1faXNWaXNpYmxlOwotCi0gICAgV2Vi
Q29yZTo6SW50U2l6ZSBtX2xhc3RTZXRWaWV3U2l6ZTsKLQotI2lmIFBMQVRGT1JNKE1BQykKLSAg
ICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9jb21wb3NpdGluZ1Jvb3RMYXllcjsKLSNlbmRpZgotCi0g
ICAgUGxhdGZvcm1XZWJWaWV3KiBtX3dlYlZpZXc7Ci19OwotICAgIAotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KLSNlbmRp
ZiAvLyBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHlfaApJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gNzk1OTQpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbXBvcnQgIkRyYXdpbmdBcmVhUHJveHlJbXBsLmgiCiAjaW1wb3J0ICJG
aW5kSW5kaWNhdG9yLmgiCiAjaW1wb3J0ICJGaW5kSW5kaWNhdG9yV2luZG93LmgiCi0jaW1wb3J0
ICJMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIkxheWVyVHJlZUNvbnRl
eHQuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZl
bnQuaCIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGF5ZXJCYWNrZWREcmF3
aW5nQXJlYVByb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5TWFjLm1tCShyZXZpc2lvbiA3OTU5NCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVBy
b3h5TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkxheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eS5o
IgotCi0jaW1wb3J0ICJEcmF3aW5nQXJlYU1lc3NhZ2VLaW5kcy5oIgotI2ltcG9ydCAiRHJhd2lu
Z0FyZWFQcm94eU1lc3NhZ2VLaW5kcy5oIgotI2ltcG9ydCA8UXVhcnR6Q29yZS9RdWFydHpDb3Jl
Lmg+Ci0jaW1wb3J0ICJXS0FQSUNhc3QuaCIKLSNpbXBvcnQgIldLVmlldy5oIgotI2ltcG9ydCAi
V0tWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZS5oIgotI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotV2ViUGFnZVByb3h5KiBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJv
eHk6OnBhZ2UoKQotewotICAgIHJldHVybiB0b0ltcGwoW21fd2ViVmlldyBwYWdlUmVmXSk7Ci19
Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpwbGF0Zm9ybVNldFNpemUoKQot
ewotICAgIFttX2NvbXBvc2l0aW5nUm9vdExheWVyLmdldCgpIHNldEJvdW5kczpDR1JlY3RNYWtl
KDAsIDAsIHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpXTsKLX0KLQotdm9pZCBMYXll
ckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OmF0dGFjaENvbXBvc2l0aW5nQ29udGV4dCh1aW50MzJf
dCBjb250ZXh0SUQpCi17Ci19Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5Ojpk
ZXRhY2hDb21wb3NpdGluZ0NvbnRleHQoKQotewotICAgIG1fY29tcG9zaXRpbmdSb290TGF5ZXIg
PSAwOwotfQotCi1ib29sIExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eTo6cGFpbnQoY29uc3Qg
SW50UmVjdCYgcmVjdCwgUGxhdGZvcm1EcmF3aW5nQ29udGV4dCBjb250ZXh0KQotewotICAgIFdl
YlBhZ2VQcm94eSogd2ViUGFnZVByb3h5ID0gcGFnZSgpOwotICAgIGlmICh3ZWJQYWdlUHJveHkt
PmRyYXdzQmFja2dyb3VuZCgpICYmIHdlYlBhZ2VQcm94eS0+ZHJhd3NUcmFuc3BhcmVudEJhY2tn
cm91bmQoKSkgewotICAgICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNvbnRleHQpOwotICAgICAg
ICBDR0NvbnRleHRTZXRCbGVuZE1vZGUoY29udGV4dCwga0NHQmxlbmRNb2RlQ29weSk7Ci0gICAg
ICAgIENHQ29udGV4dFNldEZpbGxDb2xvcldpdGhDb2xvcihjb250ZXh0LCBDR0NvbG9yR2V0Q29u
c3RhbnRDb2xvcihrQ0dDb2xvckNsZWFyKSk7Ci0gICAgICAgIENHQ29udGV4dEZpbGxSZWN0KGNv
bnRleHQsIHJlY3QpOwotICAgICAgICAKLSAgICAgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShj
b250ZXh0KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLSAgICAKLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9MYXllckJhY2tl
ZERyYXdpbmdBcmVhUHJveHlXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy93aW4vTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5V2luLmNwcAkocmV2aXNpb24g
Nzk1OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL0xheWVyQmFja2VkRHJhd2lu
Z0FyZWFQcm94eVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjYgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMYXllckJhY2tlZERyYXdpbmdB
cmVhUHJveHkuaCIKLQotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQotI2luY2x1
ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZUtpbmRzLmgiCi0jaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94
eU1lc3NhZ2VLaW5kcy5oIgotI2luY2x1ZGUgIldlYlZpZXcuaCIKLSNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKLSNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKLQotdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJQYWdlUHJveHkqIExheWVyQmFj
a2VkRHJhd2luZ0FyZWFQcm94eTo6cGFnZSgpCi17Ci0gICAgcmV0dXJuIG1fd2ViVmlldy0+cGFn
ZSgpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eTo6cGxhdGZvcm1TZXRT
aXplKCkKLXsKLX0KLQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OmF0dGFjaENv
bXBvc2l0aW5nQ29udGV4dCh1aW50MzJfdCBjb250ZXh0SUQpCi17Ci0KLX0KLQotdm9pZCBMYXll
ckJhY2tlZERyYXdpbmdBcmVhUHJveHk6OmRldGFjaENvbXBvc2l0aW5nQ29udGV4dCgpCi17Ci19
Ci0KLWJvb2wgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5OjpwYWludChjb25zdCBJbnRSZWN0
JiwgUGxhdGZvcm1EcmF3aW5nQ29udGV4dCkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lU
SU5HKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gNzk1OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICszMyw2IEBA
CiAvKiBFbmQgUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQnVp
bGRGaWxlIHNlY3Rpb24gKi8KLQkJMEY1MjY1QjMxMUREMzc2ODAwMDZEMzNDIC8qIExheWVyQmFj
a2VkRHJhd2luZ0FyZWEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY1MjY1QjExMUREMzc2ODAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0Fy
ZWEuY3BwICovOyB9OwotCQkwRjUyNjVCNDExREQzNzY4MDAwNkQzM0MgLyogTGF5ZXJCYWNrZWRE
cmF3aW5nQXJlYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY1MjY1QjIxMUREMzc2ODAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0FyZWEuaCAq
LzsgfTsKLQkJMEY1MjY1QjYxMUREMzc3MDAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0Fy
ZWFNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjUyNjVCNTExREQzNzcwMDAwNkQzM0MgLyogTGF5ZXJCYWNrZWREcmF3aW5nQXJlYU1hYy5tbSAq
LzsgfTsKLQkJMEY1MjY1QjkxMUREMzc3RjAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0Fy
ZWFQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjUyNjVCNzExREQzNzdGMDAwNkQzM0MgLyogTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5
LmNwcCAqLzsgfTsKLQkJMEY1MjY1QkExMUREMzc3RjAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJh
d2luZ0FyZWFQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEY1MjY1QjgxMUREMzc3RjAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0FyZWFQ
cm94eS5oICovOyB9OwotCQkwRjUyNjVCQzExREQzNzg2MDAwNkQzM0MgLyogTGF5ZXJCYWNrZWRE
cmF3aW5nQXJlYVByb3h5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1MjY1QkIxMUREMzc4NjAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2lu
Z0FyZWFQcm94eU1hYy5tbSAqLzsgfTsKIAkJMEZCNjU5MjMxMjA4QjREQjAwNDQ4MTZDIC8qIERy
YXdpbmdBcmVhSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZCNjU5MjIxMjA4QjREQjAwNDQ4MTZDIC8qIERyYXdpbmdBcmVhSW5mby5oICovOyB9
OwogCQkxQTA0Mzk3NjEyNEQwMzQ4MDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEwNDM5NzQxMjREMDM0ODAw
RkZCRkI1IC8qIFBsdWdpblByb2Nlc3MuaCAqLzsgfTsKIAkJMUEwNDM5NzcxMjREMDM0ODAwRkZC
RkI1IC8qIFBsdWdpblByb2Nlc3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUEwNDM5NzUxMjREMDM0ODAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3Mu
Y3BwICovOyB9OwpAQCAtODI2LDEyICs4MjAsNiBAQAogLyogQmVnaW4gUEJYRmlsZVJlZmVyZW5j
ZSBzZWN0aW9uICovCiAJCTA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBLaXQuZnJhbWV3
b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3Jh
cHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1
dGU+IjsgfTsKIAkJMDg5QzE2NjdGRTg0MTE1OEMwMkFBQzA3IC8qIEVuZ2xpc2ggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0LnN0cmluZ3M7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0gRW5nbGlzaC5scHJv
ai9JbmZvUGxpc3Quc3RyaW5nczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY1MjY1
QjExMUREMzc2ODAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0FyZWEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNTI2NUIyMTFERDM3NjgwMDA2RDMzQyAv
KiBMYXllckJhY2tlZERyYXdpbmdBcmVhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExheWVyQmFja2VkRHJhd2luZ0FyZWEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMEY1MjY1QjUxMUREMzc3MDAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0FyZWFNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMYXllckJhY2tlZERy
YXdpbmdBcmVhTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjUyNjVCNzEx
REQzNzdGMDAwNkQzM0MgLyogTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGNTI2NUI4MTFERDM3N0YwMDA2
RDMzQyAvKiBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGNTI2NUJCMTFERDM3ODYwMDA2RDMzQyAvKiBMYXllckJhY2tl
ZERyYXdpbmdBcmVhUHJveHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGQjY1OTIyMTIwOEI0REIwMDQ0ODE2QyAvKiBEcmF3aW5nQXJlYUlu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhd2luZ0FyZWFJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTEwNThDN0IxRkVBNTU4NUUxMUNBMkNCQiAv
KiBDb2NvYS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENvY29hLmZyYW1ld29yazsgcGF0
aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvY29hLmZyYW1ld29yazsgc291cmNlVHJl
ZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMUEwNDM5NzQxMjREMDM0ODAwRkZCRkI1IC8qIFBsdWdp
blByb2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luUHJvY2Vz
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0OCw4ICsyMjM2LDYgQEAKIAkJ
CQk5M0ZDNjdBMDEyRDNDQzc0MDBBNjA2MTAgLyogRW5jb2RlckFkYXB0ZXIuaCAqLywKIAkJCQkx
QTkwQzFGMzEyNjRGRDcxMDAzRTQ0RDQgLyogRmluZENvbnRyb2xsZXIuY3BwICovLAogCQkJCTFB
OTBDMUYyMTI2NEZENzEwMDNFNDRENCAvKiBGaW5kQ29udHJvbGxlci5oICovLAotCQkJCTBGNTI2
NUIxMTFERDM3NjgwMDA2RDMzQyAvKiBMYXllckJhY2tlZERyYXdpbmdBcmVhLmNwcCAqLywKLQkJ
CQkwRjUyNjVCMjExREQzNzY4MDAwNkQzM0MgLyogTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5oICov
LAogCQkJCTFBMTg2RUU5MTJFRjc2MTgwMDhFNUYzNyAvKiBMYXllclRyZWVIb3N0LmNwcCAqLywK
IAkJCQkxQTE4NkVFODEyRUY3NjE4MDA4RTVGMzcgLyogTGF5ZXJUcmVlSG9zdC5oICovLAogCQkJ
CTFBOTBDMjM2MTI2NTA3MTcwMDNFNDRENCAvKiBQYWdlT3ZlcmxheS5jcHAgKi8sCkBAIC0yMzAy
LDggKzIyODgsNiBAQAogCQkJCUJDMDZGNDQ4MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCiAJCQkJQkMwNkY0MzkxMkRCQ0NG
QjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RQcm94eS5jcHAgKi8sCiAJ
CQkJQkMwNkY0MzgxMkRCQ0NGQjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RQcm94eS5oICovLAotCQkJCTBGNTI2NUI3MTFERDM3N0YwMDA2RDMzQyAvKiBMYXllckJhY2tl
ZERyYXdpbmdBcmVhUHJveHkuY3BwICovLAotCQkJCTBGNTI2NUI4MTFERDM3N0YwMDA2RDMzQyAv
KiBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHkuaCAqLywKIAkJCQlCQzZFREFBNTExMTI3MUM2
MDBFNzY3OEIgLyogUGFnZUNsaWVudC5oICovLAogCQkJCUJDNTk3MDc0MTE2NTkxRDAwMDU1MUZD
QSAvKiBQcm9jZXNzTW9kZWwuaCAqLywKIAkJCQlCQzExMUIwODExMkY1RTNDMDAzMzdCQUIgLyog
UmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8sCkBAIC0yNzYzLDcgKzI3NDcsNiBAQAogCQkJCTI5
Q0Q1NUE4MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9iamVjdC5oICov
LAogCQkJCTI5Q0Q1NUE5MTI4RTI5NEYwMDEzM0M4NSAvKiBBY2Nlc3NpYmlsaXR5V2ViUGFnZU9i
amVjdC5tbSAqLywKIAkJCQlCQzVGN0JCODExODIzNzk5MDA1MkMwMkMgLyogQ2h1bmtlZFVwZGF0
ZURyYXdpbmdBcmVhTWFjLmNwcCAqLywKLQkJCQkwRjUyNjVCNTExREQzNzcwMDAwNkQzM0MgLyog
TGF5ZXJCYWNrZWREcmF3aW5nQXJlYU1hYy5tbSAqLywKIAkJCQkxQTY5MEQxNjEyRjM5RTMzMDBF
Q0QyODkgLyogTGF5ZXJUcmVlSG9zdE1hYy5oICovLAogCQkJCTFBMTg3MTg0MTJFRjk4NzcwMDhF
NUYzNyAvKiBMYXllclRyZWVIb3N0TWFjLm1tICovLAogCQkJCTFDOEUyREFEMTI3OEM1QjIwMEJD
N0JEMCAvKiBXZWJJbnNwZWN0b3JNYWMubW0gKi8sCkBAIC0yNzg2LDcgKzI3NjksNiBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJMUE2NDI5MkMxMkRFNUY5ODAwQ0FBRTJDIC8qIEJhY2tpbmdTdG9y
ZU1hYy5tbSAqLywKIAkJCQlCQzI2NTFGNTExODI1RUY4MDAyNDNFMTIgLyogQ2h1bmtlZFVwZGF0
ZURyYXdpbmdBcmVhUHJveHlNYWMubW0gKi8sCi0JCQkJMEY1MjY1QkIxMUREMzc4NjAwMDZEMzND
IC8qIExheWVyQmFja2VkRHJhd2luZ0FyZWFQcm94eU1hYy5tbSAqLywKIAkJCQkxQUE0MTdFRDEy
QzAwRDg3MDAyQkU2N0IgLyogVGV4dENoZWNrZXJNYWMubW0gKi8sCiAJCQkJMUExQzY0ODYxMUY0
MTVCNzAwNTUzQzE5IC8qIFdlYkNvbnRleHRNYWMubW0gKi8sCiAJCQkJNTFBQ0JCOUUxMjdBOEYy
QzAwRDIwM0I5IC8qIFdlYkNvbnRleHRNZW51UHJveHlNYWMuaCAqLywKQEAgLTMwMDUsOCArMjk4
Nyw2IEBACiAJCQkJQkMyMDRFRTMxMUM4M0U5ODAwOEYzMzc1IC8qIEluamVjdGVkQnVuZGxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4QzZBOTExRTNCQTVGMDA4MTJGQjcgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0E4QzZCMDExRTND
MDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGNTI2NUI0MTFERDM3NjgwMDA2RDMzQyAvKiBMYXllckJhY2tlZERyYXdpbmdBcmVh
LmggaW4gSGVhZGVycyAqLywKLQkJCQkwRjUyNjVCQTExREQzNzdGMDAwNkQzM0MgLyogTGF5ZXJC
YWNrZWREcmF3aW5nQXJlYVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0M1NkY3OTExNTk5
NTdEMDAxQ0NBRjkgLyogTWFjaFBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREFDMTBG
NDM3RDEwMDU4QzE1QSAvKiBNZXNzYWdlSUQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkZCQTJB
MTFFNjg2MjcwMERCMTM3MSAvKiBOZXRzY2FwZUJyb3dzZXJGdW5jcy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTE4LDEwICszNDk4LDYgQEAKIAkJCQlCQzIwNEVFNjExQzgzRUE5MDA4RjMzNzUgLyog
SW5qZWN0ZWRCdW5kbGVNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBOEM2QTgxMUUzQkE1
RjAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQ0E4QzZBRjExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
VUlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1MjY1QjMxMUREMzc2ODAwMDZEMzND
IC8qIExheWVyQmFja2VkRHJhd2luZ0FyZWEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEY1MjY1
QjYxMUREMzc3MDAwMDZEMzNDIC8qIExheWVyQmFja2VkRHJhd2luZ0FyZWFNYWMubW0gaW4gU291
cmNlcyAqLywKLQkJCQkwRjUyNjVCOTExREQzNzdGMDAwNkQzM0MgLyogTGF5ZXJCYWNrZWREcmF3
aW5nQXJlYVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTBGNTI2NUJDMTFERDM3ODYwMDA2
RDMzQyAvKiBMYXllckJhY2tlZERyYXdpbmdBcmVhUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQTZGQkEyQjExRTY4NjI3MDBEQjEzNzEgLyogTmV0c2NhcGVCcm93c2VyRnVuY3MuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2RkJEMjkxMUU2OUJDMjAwREIxMzcxIC8qIE5ldHNjYXBl
UGx1Z2luLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTVCN0ZCMTFFN0FFRDIwMEJBNjc2NyAv
KiBOZXRzY2FwZVBsdWdpbk1hYy5tbSBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCShyZXZpc2lvbiA3
OTU5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEwICszMyw2IEBACiAjaW5jbHVkZSAiRHJhd2luZ0Fy
ZWFJbXBsLmgiCiAjZW5kaWYKIAotI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSNp
bmNsdWRlICJMYXllckJhY2tlZERyYXdpbmdBcmVhLmgiCi0jZW5kaWYKLQogI2lmIEVOQUJMRShU
SUxFRF9CQUNLSU5HX1NUT1JFKQogI2luY2x1ZGUgIlRpbGVkRHJhd2luZ0FyZWEuaCIKICNlbmRp
ZgpAQCAtNjEsMTAgKzU3LDYgQEAgUGFzc1JlZlB0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6
OmNyZQogICAgICAgICBjYXNlIERyYXdpbmdBcmVhSW5mbzo6Q2h1bmtlZFVwZGF0ZToKICAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhKHBhcmFt
ZXRlcnMuZHJhd2luZ0FyZWFJbmZvLmlkZW50aWZpZXIsIHdlYlBhZ2UpKTsKIAotI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgUExBVEZPUk0oTUFDKQotICAgICAgICBjYXNlIERy
YXdpbmdBcmVhSW5mbzo6TGF5ZXJCYWNrZWQ6Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IExheWVyQmFja2VkRHJhd2luZ0FyZWEocGFyYW1ldGVycy5kcmF3aW5nQXJlYUluZm8uaWRl
bnRpZmllciwgd2ViUGFnZSkpOwotI2VuZGlmCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCiAgICAgICAgIGNhc2UgRHJhd2luZ0FyZWFJbmZvOjpUaWxlZDoKICAgICAgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgVGlsZWREcmF3aW5nQXJlYShwYXJhbWV0ZXJzLmRyYXdpbmdBcmVh
SW5mby5pZGVudGlmaWVyLCB3ZWJQYWdlKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2VkRHJhd2luZ0FyZWEuY3Bw
CShyZXZpc2lvbiA3OTU5NCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9M
YXllckJhY2tlZERyYXdpbmdBcmVhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwyMzkgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMYXllckJhY2tl
ZERyYXdpbmdBcmVhLmgiCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0KLSNp
bmNsdWRlICJEcmF3aW5nQXJlYU1lc3NhZ2VLaW5kcy5oIgotI2luY2x1ZGUgIkRyYXdpbmdBcmVh
UHJveHlNZXNzYWdlS2luZHMuaCIKLSNpbmNsdWRlICJNZXNzYWdlSUQuaCIKLSNpbmNsdWRlICJX
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKLSNpbmNsdWRlICJXZWJQYWdlLmgiCi0jaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KLQotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1MYXllckJhY2tl
ZERyYXdpbmdBcmVhOjpMYXllckJhY2tlZERyYXdpbmdBcmVhKERyYXdpbmdBcmVhSW5mbzo6SWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJQYWdlKiB3ZWJQYWdlKQotICAgIDogRHJhd2luZ0FyZWEo
RHJhd2luZ0FyZWFJbmZvOjpMYXllckJhY2tlZCwgaWRlbnRpZmllciwgd2ViUGFnZSkKLSAgICAs
IG1fc3luY1RpbWVyKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJ1bkxvb3AoKSwgdGhpcywgJkxheWVy
QmFja2VkRHJhd2luZ0FyZWE6OnN5bmNDb21wb3NpdGluZ0xheWVycykKLSAgICAsIG1fYXR0YWNo
ZWQoZmFsc2UpCi0gICAgLCBtX3Nob3VsZFBhaW50KHRydWUpCi17Ci0gICAgbV9ob3N0aW5nTGF5
ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUodGhpcyk7Ci0gICAgbV9ob3N0aW5nTGF5ZXItPnNl
dERyYXdzQ29udGVudChmYWxzZSk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIG1faG9zdGluZ0xheWVy
LT5zZXROYW1lKCJEcmF3aW5nQXJlYSBob3N0aW5nIGxheWVyIik7Ci0jZW5kaWYKLSAgICBtX2hv
c3RpbmdMYXllci0+c2V0U2l6ZSh3ZWJQYWdlLT5zaXplKCkpOwotICAgIG1fYmFja2luZ0xheWVy
ID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHRoaXMpOwotICAgIG1fYmFja2luZ0xheWVyLT5zZXRE
cmF3c0NvbnRlbnQodHJ1ZSk7Ci0gICAgbV9iYWNraW5nTGF5ZXItPnNldENvbnRlbnRzT3BhcXVl
KHdlYlBhZ2UtPmRyYXdzQmFja2dyb3VuZCgpICYmICF3ZWJQYWdlLT5kcmF3c1RyYW5zcGFyZW50
QmFja2dyb3VuZCgpKTsKLQotI2lmbmRlZiBOREVCVUcKLSAgICBtX2JhY2tpbmdMYXllci0+c2V0
TmFtZSgiRHJhd2luZ0FyZWEgYmFja2luZyBsYXllciIpOwotI2VuZGlmCi0gICAgbV9iYWNraW5n
TGF5ZXItPnNldFNpemUod2ViUGFnZS0+c2l6ZSgpKTsKLSAgICBtX2hvc3RpbmdMYXllci0+YWRk
Q2hpbGQobV9iYWNraW5nTGF5ZXIuZ2V0KCkpOwotICAgIHBsYXRmb3JtSW5pdCgpOwotfQotCi1M
YXllckJhY2tlZERyYXdpbmdBcmVhOjp+TGF5ZXJCYWNrZWREcmF3aW5nQXJlYSgpCi17Ci0gICAg
cGxhdGZvcm1DbGVhcigpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OnNjcm9s
bChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQp
Ci17Ci0gICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyBtdWNoIHNtYXJ0ZXIuCi0gICAgc2V0TmVl
ZHNEaXNwbGF5KHNjcm9sbFJlY3QpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6
OnNldE5lZWRzRGlzcGxheShjb25zdCBJbnRSZWN0JiByZWN0KQotewotICAgIG1fYmFja2luZ0xh
eWVyLT5zZXROZWVkc0Rpc3BsYXlJblJlY3QocmVjdCk7Ci0gICAgc2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyU3luYygpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OmRpc3BsYXko
KQotewotICAgIC8vIExheWluZyBvdXQgdGhlIHBhZ2UgY2FuIGNhdXNlIHRoZSBkcmF3aW5nIGFy
ZWEgdG8gY2hhbmdlIHNvIHdlIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlLgotICAgIFJlZlB0cjxM
YXllckJhY2tlZERyYXdpbmdBcmVhPiBwcm90ZWN0KHRoaXMpOwotCi0gICAgLy8gTGF5b3V0IGlm
IG5lY2Vzc2FyeS4KLSAgICBtX3dlYlBhZ2UtPmxheW91dElmTmVlZGVkKCk7Ci0KLSAgICBpZiAo
bV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpICE9IHRoaXMpCi0gICAgICAgIHJldHVybjsKLX0KLQot
dm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjpwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNo
YW5nZWQoKQotewotICAgIG1fYmFja2luZ0xheWVyLT5zZXRDb250ZW50c09wYXF1ZShtX3dlYlBh
Z2UtPmRyYXdzQmFja2dyb3VuZCgpICYmICFtX3dlYlBhZ2UtPmRyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKCkpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OnNjaGVkdWxlRGlz
cGxheSgpCi17Ci19Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6c2V0U2l6ZShjb25z
dCBJbnRTaXplJiB2aWV3U2l6ZSkKLXsKLSAgICBBU1NFUlQobV9zaG91bGRQYWludCk7Ci0gICAg
QVNTRVJUX0FSRyh2aWV3U2l6ZSwgIXZpZXdTaXplLmlzRW1wdHkoKSk7Ci0KLSAgICBtX2hvc3Rp
bmdMYXllci0+c2V0U2l6ZSh2aWV3U2l6ZSk7Ci0gICAgbV9iYWNraW5nTGF5ZXItPnNldFNpemUo
dmlld1NpemUpOwotICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKTsKLQotICAgIC8v
IExheWluZyBvdXQgdGhlIHBhZ2UgY2FuIGNhdXNlIHRoZSBkcmF3aW5nIGFyZWEgdG8gY2hhbmdl
IHNvIHdlIGtlZXAgYW4gZXh0cmEgcmVmZXJlbmNlLgotICAgIFJlZlB0cjxMYXllckJhY2tlZERy
YXdpbmdBcmVhPiBwcm90ZWN0KHRoaXMpOwotICAgIAotICAgIG1fd2ViUGFnZS0+c2V0U2l6ZSh2
aWV3U2l6ZSk7Ci0gICAgbV93ZWJQYWdlLT5sYXlvdXRJZk5lZWRlZCgpOwotCi0gICAgaWYgKG1f
d2ViUGFnZS0+ZHJhd2luZ0FyZWEoKSAhPSB0aGlzKQotICAgICAgICByZXR1cm47Ci0gICAgCi0g
ICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5kZXByZWNhdGVkU2VuZChEcmF3
aW5nQXJlYVByb3h5TGVnYWN5TWVzc2FnZTo6RGlkU2V0U2l6ZSwgbV93ZWJQYWdlLT5wYWdlSUQo
KSwgQ29yZUlQQzo6SW4odmlld1NpemUpKTsKLX0KLQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdB
cmVhOjpzdXNwZW5kUGFpbnRpbmcoKQotewotICAgIEFTU0VSVChtX3Nob3VsZFBhaW50KTsKLSAg
ICAKLSAgICBtX3Nob3VsZFBhaW50ID0gZmFsc2U7Ci19Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3
aW5nQXJlYTo6cmVzdW1lUGFpbnRpbmcoKQotewotICAgIEFTU0VSVCghbV9zaG91bGRQYWludCk7
Ci0gICAgCi0gICAgbV9zaG91bGRQYWludCA9IHRydWU7Ci0gICAgCi0gICAgLy8gRGlzcGxheSBp
ZiBuZWVkZWQuCi0gICAgZGlzcGxheSgpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0Fy
ZWE6OmRpZFVwZGF0ZSgpCi17Ci0gICAgLy8gRGlzcGxheSBpZiBuZWVkZWQuCi0gICAgZGlzcGxh
eSgpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OmRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBDb3Jl
SVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKLXsKLSAgICBEcmF3aW5nQXJlYUluZm86
OklkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcjsKLSAgICBpZiAoIWFyZ3VtZW50cy0+ZGVjb2Rl
KENvcmVJUEM6Ok91dCh0YXJnZXRJZGVudGlmaWVyKSkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IC8vIFdlIGNhbiBzd2l0Y2ggZHJhd2luZyBhcmVhcyBvbiB0aGUgZmx5LCBzbyBpZiB0aGlzIG1l
c3NhZ2Ugd2FzIHRhcmdldHRlZCBhdCBhbiBvYnNvbGV0ZSBkcmF3aW5nIGFyZWEsIGlnbm9yZSBp
dC4KLSAgICBpZiAodGFyZ2V0SWRlbnRpZmllciAhPSBpbmZvKCkuaWRlbnRpZmllcikKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgc3dpdGNoIChtZXNzYWdlSUQuZ2V0PERyYXdpbmdBcmVhTGVnYWN5
TWVzc2FnZTo6S2luZD4oKSkgewotICAgICAgICBjYXNlIERyYXdpbmdBcmVhTGVnYWN5TWVzc2Fn
ZTo6U2V0U2l6ZTogewotICAgICAgICAgICAgSW50U2l6ZSBzaXplOwotICAgICAgICAgICAgaWYg
KCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQoc2l6ZSkpKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICAgICAgc2V0U2l6ZShzaXplKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBjYXNlIERyYXdpbmdBcmVhTGVnYWN5TWVz
c2FnZTo6U3VzcGVuZFBhaW50aW5nOgotICAgICAgICAgICAgc3VzcGVuZFBhaW50aW5nKCk7Ci0g
ICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIERyYXdpbmdBcmVhTGVnYWN5TWVzc2Fn
ZTo6UmVzdW1lUGFpbnRpbmc6Ci0gICAgICAgICAgICByZXN1bWVQYWludGluZygpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBEcmF3aW5nQXJlYUxlZ2FjeU1lc3NhZ2U6OkRp
ZFVwZGF0ZToKLSAgICAgICAgICAgIGRpZFVwZGF0ZSgpOwotICAgICAgICAgICAgYnJlYWs7Ci0K
LSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgfQotfQotCi0vLyBHcmFwaGljc0xheWVyQ2xpZW50IG1ldGhv
ZHMKLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6cGFpbnRDb250ZW50cyhjb25zdCBHcmFw
aGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIEdyYXBoaWNzTGF5
ZXJQYWludGluZ1BoYXNlLCBjb25zdCBJbnRSZWN0JiBpbkNsaXApCi17Ci0gICAgbV93ZWJQYWdl
LT5kcmF3UmVjdChncmFwaGljc0NvbnRleHQsIGluQ2xpcCk7Ci19Ci0KLWJvb2wgTGF5ZXJCYWNr
ZWREcmF3aW5nQXJlYTo6c2hvd0RlYnVnQm9yZGVycygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
d2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd0RlYnVnQm9yZGVycygpOwotfQot
Ci1ib29sIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OnNob3dSZXBhaW50Q291bnRlcigpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+c2hvd1Jl
cGFpbnRDb3VudGVyKCk7Ci19Ci0KLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oV0lO
KQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjphdHRhY2hDb21wb3NpdGluZ0NvbnRleHQo
R3JhcGhpY3NMYXllciopCi17Ci19Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6ZGV0
YWNoQ29tcG9zaXRpbmdDb250ZXh0KCkKLXsKLX0KLQotI2lmICFQTEFURk9STShNQUMpCi12b2lk
IExheWVyQmFja2VkRHJhd2luZ0FyZWE6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKQotewotfQotI2VuZGlmCi0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5n
QXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYygpCi17Ci19Ci0KLXZvaWQgTGF5ZXJC
YWNrZWREcmF3aW5nQXJlYTo6c3luY0NvbXBvc2l0aW5nTGF5ZXJzKCkKLXsKLX0KLQotdm9pZCBM
YXllckJhY2tlZERyYXdpbmdBcmVhOjpwbGF0Zm9ybUluaXQoKQotewotfQotCi12b2lkIExheWVy
QmFja2VkRHJhd2luZ0FyZWE6OnBsYXRmb3JtQ2xlYXIoKQotewotfQotI2VuZGlmCi0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0xheWVyQmFja2VkRHJh
d2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5oCShyZXZpc2lvbiA3OTU5NCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9MYXllckJhY2tlZERyYXdpbmdBcmVhLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTIzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIExheWVyQmFj
a2VkRHJhd2luZ0FyZWFfaAotI2RlZmluZSBMYXllckJhY2tlZERyYXdpbmdBcmVhX2gKLQotI2lm
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLQotI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgi
Ci0jaW5jbHVkZSAiUnVuTG9vcC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXJDbGllbnQuaD4KLQotI2lmIFBMQVRGT1JNKE1B
QykKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci1PQkpDX0NMQVNTIE5TUG9wVXBCdXR0b25D
ZWxsOwotT0JKQ19DTEFTUyBXS1ZpZXc7Ci10eXBlZGVmIHN0cnVjdCBfX1dLQ0FSZW1vdGVMYXll
ckNsaWVudFJlZiAqV0tDQVJlbW90ZUxheWVyQ2xpZW50UmVmOwotI2VuZGlmCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBHcmFwaGljc0NvbnRleHQ7Ci0gICAgY2xhc3MgR3JhcGhp
Y3NMYXllcjsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIExheWVyQmFja2VkRHJh
d2luZ0FyZWEgOiBwdWJsaWMgRHJhd2luZ0FyZWEsIHByaXZhdGUgV2ViQ29yZTo6R3JhcGhpY3NM
YXllckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYShEcmF3aW5n
QXJlYUluZm86OklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViUGFnZSopOwotICAgIHZpcnR1YWwg
fkxheWVyQmFja2VkRHJhd2luZ0FyZWEoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rp
c3BsYXkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2Nyb2xsT2Zmc2V0KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGxheSgpOwotCi0gICAgdmly
dHVhbCB2b2lkIHBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpOwotCi0gICAgdmly
dHVhbCB2b2lkIGF0dGFjaENvbXBvc2l0aW5nQ29udGV4dCgpOwotICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2hDb21wb3NpdGluZ0NvbnRleHQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBv
c2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAgIHZpcnR1YWwgdm9pZCBz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCk7Ci0gICAgdmlydHVhbCB2b2lkIHN5bmNDb21w
b3NpdGluZ0xheWVycygpOwotCi0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50
RGVjb2RlciopOwotCi1wcml2YXRlOgotCi0gICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAotICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqLCBkb3VibGUgLyp0aW1lKi8pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlT
eW5jUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIHsgfQotcHVibGljOgot
ICAgIHZpcnR1YWwgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFp
bnRpbmdQaGFzZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgaW5DbGlwKTsKLXByaXZhdGU6Ci0g
ICAgdmlydHVhbCBib29sIHNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJv
b2wgc2hvd1JlcGFpbnRDb3VudGVyKCkgY29uc3Q7Ci0KLSNpZiBQTEFURk9STShNQUMpCi0gICAg
dmlydHVhbCB2b2lkIG9uUGFnZUNsb3NlKCk7Ci0jZW5kaWYKLQotICAgIHZvaWQgc2NoZWR1bGVE
aXNwbGF5KCk7Ci0gICAgCi0gICAgLy8gQ29yZUlQQyBtZXNzYWdlIGhhbmRsZXJzLgotICAgIHZv
aWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB2aWV3U2l6ZSk7Ci0gICAgdm9pZCBz
dXNwZW5kUGFpbnRpbmcoKTsKLSAgICB2b2lkIHJlc3VtZVBhaW50aW5nKCk7Ci0gICAgdm9pZCBk
aWRVcGRhdGUoKTsKLSAgICAKLSAgICB2b2lkIHBsYXRmb3JtSW5pdCgpOwotICAgIHZvaWQgcGxh
dGZvcm1DbGVhcigpOwotCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgc2V0VXBVcGRhdGVM
YXlvdXRSdW5Mb29wT2JzZXJ2ZXIoKTsKLSAgICB2b2lkIHNjaGVkdWxlVXBkYXRlTGF5b3V0UnVu
TG9vcE9ic2VydmVyKCk7Ci0gICAgdm9pZCByZW1vdmVVcGRhdGVMYXlvdXRSdW5Mb29wT2JzZXJ2
ZXIoKTsKLQotICAgIHN0YXRpYyB2b2lkIHVwZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZlckNhbGxi
YWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BBY3Rpdml0eSwgdm9pZCopOwotICAg
IHZvaWQgdXBkYXRlTGF5b3V0UnVuTG9vcE9ic2VydmVyRmlyZWQoKTsKLSNlbmRpZgotCi0gICAg
UnVuTG9vcDo6VGltZXI8TGF5ZXJCYWNrZWREcmF3aW5nQXJlYT4gbV9zeW5jVGltZXI7Ci0KLSAg
ICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXllcj4gbV9ob3N0aW5nTGF5ZXI7Ci0gICAgT3du
UHRyPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fYmFja2luZ0xheWVyOwotI2lmIFBMQVRGT1JN
KE1BQykKLSNpZiBIQVZFKEhPU1RFRF9DT1JFX0FOSU1BVElPTikKLSAgICBSZXRhaW5QdHI8V0tD
QVJlbW90ZUxheWVyQ2xpZW50UmVmPiBtX3JlbW90ZUxheWVyUmVmOwotI2VuZGlmCi0gICAgUmV0
YWluUHRyPENGUnVuTG9vcE9ic2VydmVyUmVmPiBtX3VwZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZl
cjsKLSNlbmRpZgotCi0gICAgYm9vbCBtX2F0dGFjaGVkOwotICAgIGJvb2wgbV9zaG91bGRQYWlu
dDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCi0jZW5kaWYgLy8gTGF5ZXJCYWNrZWREcmF3aW5nQXJlYV9oCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL0xheWVyQmFja2VkRHJh
d2luZ0FyZWFNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9MYXllckJhY2tlZERyYXdpbmdBcmVhTWFjLm1tCShyZXZpc2lvbiA3OTU5NCkK
KysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvTGF5ZXJCYWNrZWREcmF3
aW5nQXJlYU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSwxODcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5o
IgotCi0jaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQotCi0jaW1wb3J0ICJEcmF3aW5n
QXJlYVByb3h5TWVzc2FnZUtpbmRzLmgiCi0jaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aCIKLSNpbXBvcnQgIldlYlBhZ2UuaCIKLSNpbXBvcnQgIldlYlByb2Nlc3MuaCIKLSNpbXBvcnQg
PFdlYkNvcmUvRnJhbWUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvRnJhbWVWaWV3Lmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXZvaWQgTGF5
ZXJCYWNrZWREcmF3aW5nQXJlYTo6cGxhdGZvcm1Jbml0KCkKLXsKLSAgICBzZXRVcFVwZGF0ZUxh
eW91dFJ1bkxvb3BPYnNlcnZlcigpOwotCi0gICAgW21faG9zdGluZ0xheWVyLT5wbGF0Zm9ybUxh
eWVyKCkgc2V0R2VvbWV0cnlGbGlwcGVkOllFU107Ci0jaWYgSEFWRShIT1NURURfQ09SRV9BTklN
QVRJT04pCi0gICAgYXR0YWNoQ29tcG9zaXRpbmdDb250ZXh0KCk7Ci0jZW5kaWYKLQotICAgIHNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKTsKLX0KLQotdm9pZCBMYXllckJhY2tlZERyYXdp
bmdBcmVhOjpwbGF0Zm9ybUNsZWFyKCkKLXsKLSAgICBpZiAoIW1fYXR0YWNoZWQpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGlmIChtX3VwZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZlcikgewotICAg
ICAgICBDRlJ1bkxvb3BPYnNlcnZlckludmFsaWRhdGUobV91cGRhdGVMYXlvdXRSdW5Mb29wT2Jz
ZXJ2ZXIuZ2V0KCkpOwotICAgICAgICBtX3VwZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZlciA9IDA7
Ci0gICAgfQotCi0jaWYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pCi0gICAgV0tDQVJlbW90
ZUxheWVyQ2xpZW50SW52YWxpZGF0ZShtX3JlbW90ZUxheWVyUmVmLmdldCgpKTsKLSAgICBtX3Jl
bW90ZUxheWVyUmVmID0gbnVsbHB0cjsKLSNlbmRpZgotCi0gICAgbV9hdHRhY2hlZCA9IGZhbHNl
OwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OmF0dGFjaENvbXBvc2l0aW5nQ29u
dGV4dCgpCi17Ci0gICAgaWYgKG1fYXR0YWNoZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1f
YXR0YWNoZWQgPSB0cnVlOwotCi0jaWYgSEFWRShIT1NURURfQ09SRV9BTklNQVRJT04pCi0gICAg
bWFjaF9wb3J0X3Qgc2VydmVyUG9ydCA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbXBvc2l0aW5n
UmVuZGVyU2VydmVyUG9ydCgpOwotICAgIG1fcmVtb3RlTGF5ZXJSZWYgPSBXS0NBUmVtb3RlTGF5
ZXJDbGllbnRNYWtlV2l0aFNlcnZlclBvcnQoc2VydmVyUG9ydCk7Ci0gICAgV0tDQVJlbW90ZUxh
eWVyQ2xpZW50U2V0TGF5ZXIobV9yZW1vdGVMYXllclJlZi5nZXQoKSwgbV9ob3N0aW5nTGF5ZXIt
PnBsYXRmb3JtTGF5ZXIoKSk7Ci0gICAgCi0gICAgdWludDMyX3QgY29udGV4dElEID0gV0tDQVJl
bW90ZUxheWVyQ2xpZW50R2V0Q2xpZW50SWQobV9yZW1vdGVMYXllclJlZi5nZXQoKSk7Ci0gICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5kZXByZWNhdGVkU2VuZFN5bmMoRHJh
d2luZ0FyZWFQcm94eUxlZ2FjeU1lc3NhZ2U6OkF0dGFjaENvbXBvc2l0aW5nQ29udGV4dCwgbV93
ZWJQYWdlLT5wYWdlSUQoKSwgQ29yZUlQQzo6SW4oY29udGV4dElEKSwgQ29yZUlQQzo6T3V0KCkp
OwotI2VuZGlmCi19Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6ZGV0YWNoQ29tcG9z
aXRpbmdDb250ZXh0KCkKLXsKLSAgICBtX2JhY2tpbmdMYXllci0+cmVtb3ZlQWxsQ2hpbGRyZW4o
KTsKLQotICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMoKTsKLX0KLQotdm9pZCBMYXll
ckJhY2tlZERyYXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFw
aGljc0xheWVyKiBsYXllcikKLXsKLSAgICBtX2JhY2tpbmdMYXllci0+cmVtb3ZlQWxsQ2hpbGRy
ZW4oKTsKLSAgICBpZiAobGF5ZXIpCi0gICAgICAgIG1fYmFja2luZ0xheWVyLT5hZGRDaGlsZChs
YXllcik7Ci0KLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJTeW5jKCk7Ci19Ci0KLXZvaWQg
TGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3luYygpCi17
Ci0vLyAgICBpZiAobV9zeW5jVGltZXIuaXNBY3RpdmUoKSkKLS8vICAgICAgICByZXR1cm47Ci0v
LwotLy8gICAgbV9zeW5jVGltZXIuc3RhcnRPbmVTaG90KDApOwotCi0gICAgc2NoZWR1bGVVcGRh
dGVMYXlvdXRSdW5Mb29wT2JzZXJ2ZXIoKTsKLX0KLQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdB
cmVhOjpzeW5jQ29tcG9zaXRpbmdMYXllcnMoKQotewotICAgIG1faG9zdGluZ0xheWVyLT5zeW5j
Q29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKTsKLSAgICBtX2JhY2tpbmdMYXllci0+
c3luY0NvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7Ci0KLSAgICBib29sIGRpZFN5
bmMgPSBtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCktPnN5bmNDb21w
b3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7Ci0gICAgaWYgKCFkaWRTeW5jKSB7Ci0g
ICAgCi0gICAgfQotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OnNldFVwVXBkYXRl
TGF5b3V0UnVuTG9vcE9ic2VydmVyKCkKLXsKLSAgICBpZiAobV91cGRhdGVMYXlvdXRSdW5Mb29w
T2JzZXJ2ZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFJ1biBiZWZvcmUgQ29yZSBBbmlt
YXRpb25zIGNvbW1pdCBvYnNlcnZlciwgd2hpY2ggaGFzIG9yZGVyIDIwMDAwMDAuCi0gICAgY29u
c3QgQ0ZJbmRleCBydW5Mb29wT3JkZXIgPSAyMDAwMDAwIC0gMTsKLSAgICBDRlJ1bkxvb3BPYnNl
cnZlckNvbnRleHQgY29udGV4dCA9IHsgMCwgdGhpcywgMCwgMCwgMCB9OwotICAgIG1fdXBkYXRl
TGF5b3V0UnVuTG9vcE9ic2VydmVyLmFkb3B0Q0YoQ0ZSdW5Mb29wT2JzZXJ2ZXJDcmVhdGUoMCwK
LSAgICAgICAga0NGUnVuTG9vcEJlZm9yZVdhaXRpbmcgfCBrQ0ZSdW5Mb29wRXhpdCwgdHJ1ZSAv
KiByZXBlYXRzICovLAotICAgICAgICBydW5Mb29wT3JkZXIsIHVwZGF0ZUxheW91dFJ1bkxvb3BP
YnNlcnZlckNhbGxiYWNrLCAmY29udGV4dCkpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2lu
Z0FyZWE6OnNjaGVkdWxlVXBkYXRlTGF5b3V0UnVuTG9vcE9ic2VydmVyKCkKLXsKLSAgICBDRlJ1
bkxvb3BSZWYgY3VycmVudFJ1bkxvb3AgPSBDRlJ1bkxvb3BHZXRDdXJyZW50KCk7Ci0gICAgQ0ZS
dW5Mb29wV2FrZVVwKGN1cnJlbnRSdW5Mb29wKTsKLQotICAgIGlmIChDRlJ1bkxvb3BDb250YWlu
c09ic2VydmVyKGN1cnJlbnRSdW5Mb29wLCBtX3VwZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZlci5n
ZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ0ZS
dW5Mb29wQWRkT2JzZXJ2ZXIoY3VycmVudFJ1bkxvb3AsIG1fdXBkYXRlTGF5b3V0UnVuTG9vcE9i
c2VydmVyLmdldCgpLCBrQ0ZSdW5Mb29wQ29tbW9uTW9kZXMpOwotfQotCi12b2lkIExheWVyQmFj
a2VkRHJhd2luZ0FyZWE6OnJlbW92ZVVwZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZlcigpCi17Ci0g
ICAgLy8gRklYTUU6IGNhY2hlIHRoZSBydW4gbG9vcCByZWY/Ci0gICAgQ0ZSdW5Mb29wUmVtb3Zl
T2JzZXJ2ZXIoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpLCBtX3VwZGF0ZUxheW91dFJ1bkxvb3BPYnNl
cnZlci5nZXQoKSwga0NGUnVuTG9vcENvbW1vbk1vZGVzKTsKLX0KLQotdm9pZCBMYXllckJhY2tl
ZERyYXdpbmdBcmVhOjp1cGRhdGVMYXlvdXRSdW5Mb29wT2JzZXJ2ZXJDYWxsYmFjayhDRlJ1bkxv
b3BPYnNlcnZlclJlZiwgQ0ZSdW5Mb29wQWN0aXZpdHksIHZvaWQqIGluZm8pCi17Ci0gICAgLy8g
S2VlcCB0aGUgZHJhd2luZyBhcmVhIGFsaXZlIHdoaWxlIHJ1bm5pbmcgdGhlIGNhbGxiYWNrLCBz
aW5jZSB0aGF0IGRvZXMgbGF5b3V0LAotICAgIC8vIHdoaWNoIG1pZ2h0IHJlcGxhY2UgdGhpcyBk
cmF3aW5nIGFyZWEgd2l0aCBvbmUgb2YgYW5vdGhlciB0eXBlLgotICAgIFJlZlB0cjxMYXllckJh
Y2tlZERyYXdpbmdBcmVhPiBkcmF3aW5nQXJlYSA9IHJlaW50ZXJwcmV0X2Nhc3Q8TGF5ZXJCYWNr
ZWREcmF3aW5nQXJlYSo+KGluZm8pOwotICAgIGRyYXdpbmdBcmVhLT51cGRhdGVMYXlvdXRSdW5M
b29wT2JzZXJ2ZXJGaXJlZCgpOwotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OnVw
ZGF0ZUxheW91dFJ1bkxvb3BPYnNlcnZlckZpcmVkKCkKLXsKLSAgICAvLyBMYXlpbmcgb3V0IHRo
ZSBwYWdlIGNhbiBjYXVzZSB0aGUgZHJhd2luZyBhcmVhIHRvIGNoYW5nZSBzbyB3ZSBrZWVwIGFu
IGV4dHJhIHJlZmVyZW5jZS4KLSAgICBSZWZQdHI8TGF5ZXJCYWNrZWREcmF3aW5nQXJlYT4gcHJv
dGVjdCh0aGlzKTsKLQotICAgIG1fd2ViUGFnZS0+bGF5b3V0SWZOZWVkZWQoKTsKLQotICAgIGlm
IChtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCkgIT0gdGhpcykKLSAgICAgICAgcmV0dXJuOwotICAg
IAotICAgIGlmIChtX2F0dGFjaGVkKQotICAgICAgICBzeW5jQ29tcG9zaXRpbmdMYXllcnMoKTsK
LX0KLQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjpvblBhZ2VDbG9zZSgpCi17Ci0gICAg
cGxhdGZvcm1DbGVhcigpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS93aW4vTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVdpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9MYXllckJhY2tlZERy
YXdpbmdBcmVhV2luLmNwcAkocmV2aXNpb24gNzk1OTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd2luL0xheWVyQmFja2VkRHJhd2luZ0FyZWFXaW4uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiTGF5ZXJCYWNrZWREcmF3aW5nQXJlYS5oIgotCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKQotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNl
IFdlYktpdCB7Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6cGxhdGZvcm1Jbml0KCkK
LXsKLX0KLQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjpwbGF0Zm9ybUNsZWFyKCkKLXsK
LX0KLQotdm9pZCBMYXllckJhY2tlZERyYXdpbmdBcmVhOjphdHRhY2hDb21wb3NpdGluZ0NvbnRl
eHQoKQotewotfQotCi12b2lkIExheWVyQmFja2VkRHJhd2luZ0FyZWE6OmRldGFjaENvbXBvc2l0
aW5nQ29udGV4dCgpCi17Ci19Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6c2V0Um9v
dENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciogbGF5ZXIpCi17Ci19Ci0K
LXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3lu
YygpCi17Ci19Ci0KLXZvaWQgTGF5ZXJCYWNrZWREcmF3aW5nQXJlYTo6c3luY0NvbXBvc2l0aW5n
TGF5ZXJzKCkKLXsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9q
CShyZXZpc2lvbiA3OTU5NCkKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTYxMCwxNCArMTYxMCw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYlBhZ2VcTGF5
ZXJCYWNrZWREcmF3aW5nQXJlYS5jcHAiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUK
LQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYlBhZ2VcTGF5ZXJCYWNrZWREcmF3
aW5nQXJlYS5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXExheWVyVHJlZUhvc3QuY3BwIgogCQkJCQk+CiAJ
CQkJPC9GaWxlPgpAQCAtMTcxMywxMCArMTcwNSw2IEBACiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4K
IAkJCQkJPEZpbGUKLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViUHJvY2Vzc1xXZWJQYWdlXHdp
blxMYXllckJhY2tlZERyYXdpbmdBcmVhV2luLmNwcCIKLQkJCQkJCT4KLQkJCQkJPC9GaWxlPgot
CQkJCQk8RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYlBhZ2Vcd2lu
XFdlYkluc3BlY3Rvcldpbi5jcHAiCiAJCQkJCQk+CiAJCQkJCTwvRmlsZT4KQEAgLTIyODMsMTQg
KzIyNzEsNiBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcTGF5ZXJCYWNrZWREcmF3aW5nQXJlYVByb3h5LmNwcCIKLQkJCQk+Ci0J
CQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXExheWVy
QmFja2VkRHJhd2luZ0FyZWFQcm94eS5oIgotCQkJCT4KLQkJCTwvRmlsZT4KLQkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcUGFnZUNsaWVudC5oIgogCQkJCT4KIAkJCTwv
RmlsZT4KQEAgLTMwMTQsMTAgKzI5OTQsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXHdpblxMYXllckJhY2tlZERyYXdp
bmdBcmVhUHJveHlXaW4uY3BwIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXHdpblxUZXh0Q2hlY2tlcldpbi5jcHAiCiAJCQkJ
CT4KIAkJCQk8L0ZpbGU+Cg==
</data>
<flag name="review"
          id="75570"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>