<?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>119223</bug_id>
          
          <creation_ts>2013-07-29 13:44:08 -0700</creation_ts>
          <short_desc>GLContext.cpp and .h need to be moved from cairo directory</short_desc>
          <delta_ts>2013-07-29 17:24:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</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>0</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>912594</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-29 13:44:08 -0700</bug_when>
    <thetext>As promised in https://bugs.webkit.org/show_bug.cgi?id=119177 I&apos;m moving GLContext.cpp and GLContext.h from Source\WebCore\platform\graphics\cairo to Source\WebCore\platform\graphics after protecting the few cairo-specific parts of it with #if USE(CAIRO).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912596</commentid>
    <comment_count>1</comment_count>
      <attachid>207670</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-29 13:45:13 -0700</bug_when>
    <thetext>Created attachment 207670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912639</commentid>
    <comment_count>2</comment_count>
      <attachid>207670</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-29 17:24:21 -0700</bug_when>
    <thetext>Comment on attachment 207670
Patch

Clearing flags on attachment: 207670

Committed r153450: &lt;http://trac.webkit.org/changeset/153450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>912640</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-29 17:24:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207670</attachid>
            <date>2013-07-29 13:45:13 -0700</date>
            <delta_ts>2013-07-29 17:24:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119223-20130729134512.patch</filename>
            <type>text/plain</type>
            <size>22558</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzQ0MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEzLTA3LTI5ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlZCBHTENv
bnRleHQuY3BwIGFuZCAuaCBvdXQgb2YgY2Fpcm8gZGlyZWN0b3J5IHRvIGJlIHVzZWQgYnkgbm9u
LWNhaXJvIHBvcnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE5MjIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtl
OgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2o6CisgICAgICAgICog
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzOgorICAgICAgICBDaGFuZ2Vk
IGxvY2F0aW9uIG9mIEdMQ29udGV4dC5jcHAgYW5kIEdMQ29udGV4dC5oLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6IENvcGllZCBmcm9tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR0xDb250ZXh0LmNwcC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HTENvbnRleHQuaDogQ29waWVkIGZyb20gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HTENvbnRleHQuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HTENv
bnRleHQuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dM
Q29udGV4dC5oOiBSZW1vdmVkLgorCiAyMDEzLTA3LTI5ICBEZWFuIEphY2tzb24gIDxkaW5vQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYXggSU9TdXJmYWNlRGltZW5zaW9uIHNob3VsZCBiZSBhbiBp
bmNsdXNpdmUgdXBwZXIgYm91bmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQko
cmV2aXNpb24gMTUzNDM1KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQko
d29ya2luZyBjb3B5KQpAQCAtNjMwNCw4ICs2MzA0LDggQEAgcGxhdGZvcm1ndGtfc291cmNlcyAr
PSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fp
cm8uY3BwCiBpZiBVU0VfT1BFTkdMCiBwbGF0Zm9ybWd0a19zb3VyY2VzICs9IFwKLQlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HTENvbnRleHQuY3BwIFwKLQlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HTENvbnRleHQuaCBcCisJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcCBcCisJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9SZWRpcmVjdGVkWENvbXBvc2l0ZVdpbmRvdy5oCiBlbmRpZiAjIEVORCBVU0Vf
T1BFTkdMCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZQkocmV2aXNpb24gMTUzNDM1KQor
KysgU291cmNlL1dlYkNvcmUvUGxhdGZvcm1HVEsuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTEx
OSw3ICsxMTksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9EcmF3aW5nQnVmZmVyQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRD
YWlyb0hhcmZidXp6TkcuY3BwCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR0xDb250ZXh0
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFkaWVudENhaXJvLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNTM0MzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC03MzY4LDcgKzczNjgsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxh
dGZvcm1cZ3JhcGhpY3NcYXZmb3VuZGF0aW9uXGNmXEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkNG
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGF2
Zm91bmRhdGlvblxjZlxJbmJhbmRUZXh0VHJhY2tQcml2YXRlTGVnYWN5QVZDRi5jcHAiIC8+CiAg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xhdmZvdW5kYXRpb25c
SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5jcHAiIC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWlyb1xHTENvbnRleHQuY3BwIj4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXEdMQ29udGV4dC5jcHAiPgogICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJv
bUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVj
dGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMTkyMjYsNyArMTkyMjYs
NyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcYXZmb3Vu
ZGF0aW9uXGNmXEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkNGLmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xhdmZvdW5kYXRpb25cY2ZcSW5iYW5kVGV4
dFRyYWNrUHJpdmF0ZUxlZ2FjeUFWQ0YuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHBsYXRmb3JtXGdyYXBoaWNzXGF2Zm91bmRhdGlvblxJbmJhbmRUZXh0VHJhY2tQcml2YXRlQVZG
LmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjYWly
b1xHTENvbnRleHQuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdy
YXBoaWNzXEdMQ29udGV4dC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGxhdGZv
cm1cZ3JhcGhpY3NcY2Fpcm9cR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xjZ1xTdWJpbWFnZUNhY2hlV2l0
aFRpbWVyLmgiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dl
YkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNpb24gMTUzNDM1KQorKysg
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCSh3
b3JraW5nIGNvcHkpCkBAIC03MDU3LDcgKzcwNTcsNyBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5caHRtbFxjYW52YXNcQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwIj4KICAgICAgIDxG
aWx0ZXI+aHRtbFxjYW52YXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvXEdMQ29udGV4dC5jcHAiPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcR0xDb250ZXh0LmNw
cCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBoaWNzXGNhaXJvPC9GaWx0ZXI+CiAgICAg
PC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFwaGlj
c1xvcGVuZ2xcR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAiPgpAQCAtMTQ4MjAsNyArMTQ4
MjAsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxjYW52YXNcQ2FudmFzQ29u
dGV4dEF0dHJpYnV0ZXMuaCI+CiAgICAgICA8RmlsdGVyPmh0bWxcY2FudmFzPC9GaWx0ZXI+CiAg
ICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0Zm9ybVxncmFw
aGljc1xjYWlyb1xHTENvbnRleHQuaCI+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xHTENvbnRleHQuaCI+CiAgICAgICA8RmlsdGVyPnBsYXRmb3JtXGdyYXBo
aWNzXGNhaXJvPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwbGF0Zm9ybVxncmFwaGljc1xlZ2xcR0xDb250ZXh0RUdMLmgiPgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCShyZXZpc2lv
biAxNTM0MzUpCShmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dM
Q29udGV4dC5jcHA6MTUzNDM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R0xDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIwNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSwgMjAxMiBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz
LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
aWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHTENvbnRleHQuaCIK
KworI2lmIFVTRShPUEVOR0wpCisKKyNpZiBVU0UoRUdMKQorI2luY2x1ZGUgIkdMQ29udGV4dEVH
TC5oIgorI2VuZGlmCisKKyNpZiBVU0UoR0xYKQorI2luY2x1ZGUgIkdMQ29udGV4dEdMWC5oIgor
I2VuZGlmCisKKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KKworI2lmIFBMQVRGT1JN
KFgxMSkKKyNpbmNsdWRlIDxYMTEvWGxpYi5oPgorI2VuZGlmCisKKyNpZiBQTEFURk9STShHVEsp
CisjaW5jbHVkZSA8Z2RrL2dkay5oPgorI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgorI2lmZGVm
IEdES19XSU5ET1dJTkdfV0FZTEFORAorI2luY2x1ZGUgPGdkay9nZGt3YXlsYW5kLmg+CisjZW5k
aWYKKyNlbmRpZgorI2VuZGlmCisKK3VzaW5nIFdURjo6VGhyZWFkU3BlY2lmaWM7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGhyZWFkR2xvYmFsR0xDb250ZXh0IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgVGhyZWFkU3BlY2lmaWM8VGhyZWFkR2xvYmFsR0xDb250ZXh0Piogc3RhdGlj
R0xDb250ZXh0OworCisgICAgdm9pZCBzZXRDb250ZXh0KEdMQ29udGV4dCogY29udGV4dCkgeyBt
X2NvbnRleHQgPSBjb250ZXh0OyB9CisgICAgR0xDb250ZXh0KiBjb250ZXh0KCkgeyByZXR1cm4g
bV9jb250ZXh0OyB9CisKK3ByaXZhdGU6CisgICAgR0xDb250ZXh0KiBtX2NvbnRleHQ7Cit9Owor
CitUaHJlYWRTcGVjaWZpYzxUaHJlYWRHbG9iYWxHTENvbnRleHQ+KiBUaHJlYWRHbG9iYWxHTENv
bnRleHQ6OnN0YXRpY0dMQ29udGV4dDsKKworaW5saW5lIFRocmVhZEdsb2JhbEdMQ29udGV4dCog
Y3VycmVudENvbnRleHQoKQoreworICAgIGlmICghVGhyZWFkR2xvYmFsR0xDb250ZXh0OjpzdGF0
aWNHTENvbnRleHQpCisgICAgICAgIFRocmVhZEdsb2JhbEdMQ29udGV4dDo6c3RhdGljR0xDb250
ZXh0ID0gbmV3IFRocmVhZFNwZWNpZmljPFRocmVhZEdsb2JhbEdMQ29udGV4dD47CisgICAgcmV0
dXJuICpUaHJlYWRHbG9iYWxHTENvbnRleHQ6OnN0YXRpY0dMQ29udGV4dDsKK30KKworR0xDb250
ZXh0KiBHTENvbnRleHQ6OnNoYXJpbmdDb250ZXh0KCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKE93blB0cjxHTENvbnRleHQ+LCBzaGFyaW5nLCAoY3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgp
KSk7CisgICAgcmV0dXJuIHNoYXJpbmcuZ2V0KCk7Cit9CisKKyNpZiBQTEFURk9STShYMTEpCisv
LyBXZSBkbyBub3Qgd2FudCB0byBjYWxsIGdsWE1ha2VDb250ZXh0Q3VycmVudCB1c2luZyBkaWZm
ZXJlbnQgRGlzcGxheSBwb2ludGVycywKKy8vIGJlY2F1c2UgaXQgbWlnaHQgbGVhZCB0byBjcmFz
aGVzIGluIHNvbWUgZHJpdmVycyAoZmdscngpLiBXZSB1c2UgYSBzaGFyZWQgZGlzcGxheQorLy8g
cG9pbnRlciBoZXJlLgorc3RhdGljIERpc3BsYXkqIGdTaGFyZWRYMTFEaXNwbGF5ID0gMDsKK0Rp
c3BsYXkqIEdMQ29udGV4dDo6c2hhcmVkWDExRGlzcGxheSgpCit7CisgICAgaWYgKCFnU2hhcmVk
WDExRGlzcGxheSkKKyAgICAgICAgZ1NoYXJlZFgxMURpc3BsYXkgPSBYT3BlbkRpc3BsYXkoMCk7
CisgICAgcmV0dXJuIGdTaGFyZWRYMTFEaXNwbGF5OworfQorCit2b2lkIEdMQ29udGV4dDo6Y2xl
YW51cFNoYXJlZFgxMURpc3BsYXkoKQoreworICAgIGlmICghZ1NoYXJlZFgxMURpc3BsYXkpCisg
ICAgICAgIHJldHVybjsKKyAgICBYQ2xvc2VEaXNwbGF5KGdTaGFyZWRYMTFEaXNwbGF5KTsKKyAg
ICBnU2hhcmVkWDExRGlzcGxheSA9IDA7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oWDExKQorCisv
LyBCZWNhdXNlIG9mIGRyaXZlciBidWdzLCBleGl0aW5nIHRoZSBwcm9ncmFtIHdoZW4gdGhlcmUg
YXJlIGFjdGl2ZSBwYnVmZmVycworLy8gY2FuIGNyYXNoIHRoZSBYIHNlcnZlciAodGhpcyBoYXMg
YmVlbiBvYnNlcnZlZCB3aXRoIHRoZSBvZmZpY2lhbCBOdmlkaWEgZHJpdmVycykuCisvLyBXZSBu
ZWVkIHRvIGVuc3VyZSB0aGF0IHdlIGNsZWFuIGV2ZXJ5dGhpbmcgdXAgb24gZXhpdC4gVGhlcmUg
YXJlIHNldmVyYWwgcmVhc29ucworLy8gdGhhdCBHcmFwaGljc0NvbnRleHQzRHMgd2lsbCBzdGls
bCBiZSBhbGl2ZSBhdCBleGl0LCBpbmNsdWRpbmcgdXNlciBlcnJvciAobWVtb3J5CisvLyBsZWFr
cykgYW5kIHRoZSBwYWdlIGNhY2hlLiBJbiBhbnkgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0aGUgWCBz
ZXJ2ZXIgdG8gY3Jhc2guCit0eXBlZGVmIFZlY3RvcjxHTENvbnRleHQqPiBBY3RpdmVDb250ZXh0
TGlzdDsKK3N0YXRpYyBBY3RpdmVDb250ZXh0TGlzdCYgYWN0aXZlQ29udGV4dExpc3QoKQorewor
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQWN0aXZlQ29udGV4dExpc3QsIGFjdGl2ZUNvbnRleHRz
LCAoKSk7CisgICAgcmV0dXJuIGFjdGl2ZUNvbnRleHRzOworfQorCit2b2lkIEdMQ29udGV4dDo6
YWRkQWN0aXZlQ29udGV4dChHTENvbnRleHQqIGNvbnRleHQpCit7CisgICAgc3RhdGljIGJvb2wg
YWRkZWRBdEV4aXRIYW5kbGVyID0gZmFsc2U7CisgICAgaWYgKCFhZGRlZEF0RXhpdEhhbmRsZXIp
IHsKKyAgICAgICAgYXRleGl0KCZHTENvbnRleHQ6OmNsZWFudXBBY3RpdmVDb250ZXh0c0F0RXhp
dCk7CisgICAgICAgIGFkZGVkQXRFeGl0SGFuZGxlciA9IHRydWU7CisgICAgfQorICAgIGFjdGl2
ZUNvbnRleHRMaXN0KCkuYXBwZW5kKGNvbnRleHQpOworfQorCitzdGF0aWMgYm9vbCBnQ2xlYW5p
bmdVcEF0RXhpdCA9IGZhbHNlOworCit2b2lkIEdMQ29udGV4dDo6cmVtb3ZlQWN0aXZlQ29udGV4
dChHTENvbnRleHQqIGNvbnRleHQpCit7CisgICAgLy8gSWYgd2UgYXJlIGNsZWFuaW5nIHVwIHRo
ZSBjb250ZXh0IGxpc3QgYXQgZXhpdCwgZG9uJ3QgYm90aGVyIHJlbW92aW5nIHRoZSBjb250ZXh0
CisgICAgLy8gZnJvbSB0aGUgbGlzdCwgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBtb2RpZnkgdGhl
IGxpc3Qgd2hpbGUgaXQncyBiZWluZyBpdGVyYXRlZC4KKyAgICBpZiAoZ0NsZWFuaW5nVXBBdEV4
aXQpCisgICAgICAgIHJldHVybjsKKworICAgIEFjdGl2ZUNvbnRleHRMaXN0JiBjb250ZXh0TGlz
dCA9IGFjdGl2ZUNvbnRleHRMaXN0KCk7CisgICAgc2l6ZV90IGkgPSBjb250ZXh0TGlzdC5maW5k
KGNvbnRleHQpOworICAgIGlmIChpICE9IG5vdEZvdW5kKQorICAgICAgICBjb250ZXh0TGlzdC5y
ZW1vdmUoaSk7Cit9CisKK3ZvaWQgR0xDb250ZXh0OjpjbGVhbnVwQWN0aXZlQ29udGV4dHNBdEV4
aXQoKQoreworICAgIGdDbGVhbmluZ1VwQXRFeGl0ID0gdHJ1ZTsKKworICAgIEFjdGl2ZUNvbnRl
eHRMaXN0JiBjb250ZXh0TGlzdCA9IGFjdGl2ZUNvbnRleHRMaXN0KCk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjb250ZXh0TGlzdC5zaXplKCk7ICsraSkKKyAgICAgICAgZGVsZXRlIGNv
bnRleHRMaXN0W2ldOworCisjaWYgUExBVEZPUk0oWDExKQorICAgIGNsZWFudXBTaGFyZWRYMTFE
aXNwbGF5KCk7CisjZW5kaWYKK30KKworCisKK1Bhc3NPd25QdHI8R0xDb250ZXh0PiBHTENvbnRl
eHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3codWludDY0X3Qgd2luZG93SGFuZGxlLCBHTENvbnRl
eHQqIHNoYXJpbmdDb250ZXh0KQoreworI2lmIFBMQVRGT1JNKEdUSykgJiYgZGVmaW5lZChHREtf
V0lORE9XSU5HX1dBWUxBTkQpICYmIFVTRShFR0wpCisgICAgR2RrRGlzcGxheSogZGlzcGxheSA9
IGdka19kaXNwbGF5X21hbmFnZXJfZ2V0X2RlZmF1bHRfZGlzcGxheShnZGtfZGlzcGxheV9tYW5h
Z2VyX2dldCgpKTsKKworICAgIGlmIChHREtfSVNfV0FZTEFORF9ESVNQTEFZKGRpc3BsYXkpKSB7
CisgICAgICAgIGlmIChPd25QdHI8R0xDb250ZXh0PiBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdM
OjpjcmVhdGVDb250ZXh0KHdpbmRvd0hhbmRsZSwgc2hhcmluZ0NvbnRleHQpKQorICAgICAgICAg
ICAgcmV0dXJuIGVnbENvbnRleHQucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICB9CisjZW5kaWYKKworI2lmIFVTRShHTFgpCisgICAgaWYgKE93blB0cjxHTENvbnRleHQ+
IGdseENvbnRleHQgPSBHTENvbnRleHRHTFg6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBz
aGFyaW5nQ29udGV4dCkpCisgICAgICAgIHJldHVybiBnbHhDb250ZXh0LnJlbGVhc2UoKTsKKyNl
bmRpZgorI2lmIFVTRShFR0wpCisgICAgaWYgKE93blB0cjxHTENvbnRleHQ+IGVnbENvbnRleHQg
PSBHTENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBzaGFyaW5nQ29udGV4
dCkpCisgICAgICAgIHJldHVybiBlZ2xDb250ZXh0LnJlbGVhc2UoKTsKKyNlbmRpZgorICAgIHJl
dHVybiBudWxscHRyOworfQorCitHTENvbnRleHQ6OkdMQ29udGV4dCgpCit7CisgICAgYWRkQWN0
aXZlQ29udGV4dCh0aGlzKTsKK30KKworUGFzc093blB0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6
Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dChHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KQoreworICAg
IHJldHVybiBjcmVhdGVDb250ZXh0Rm9yV2luZG93KDAsIHNoYXJpbmdDb250ZXh0KTsKK30KKwor
R0xDb250ZXh0Ojp+R0xDb250ZXh0KCkKK3sKKyAgICBpZiAodGhpcyA9PSBjdXJyZW50Q29udGV4
dCgpLT5jb250ZXh0KCkpCisgICAgICAgIGN1cnJlbnRDb250ZXh0KCktPnNldENvbnRleHQoMCk7
CisgICAgcmVtb3ZlQWN0aXZlQ29udGV4dCh0aGlzKTsKK30KKworYm9vbCBHTENvbnRleHQ6Om1h
a2VDb250ZXh0Q3VycmVudCgpCit7CisgICAgY3VycmVudENvbnRleHQoKS0+c2V0Q29udGV4dCh0
aGlzKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworR0xDb250ZXh0KiBHTENvbnRleHQ6OmdldEN1
cnJlbnQoKQoreworICAgIHJldHVybiBjdXJyZW50Q29udGV4dCgpLT5jb250ZXh0KCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShPUEVOR0wpCisKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5oCShyZXZpc2lv
biAxNTM0MzUpCShmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dM
Q29udGV4dC5oOjE1MzQzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNl
IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAq
ICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZQorICogIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQorICov
CisKKyNpZm5kZWYgR0xDb250ZXh0X2gKKyNkZWZpbmUgR0xDb250ZXh0X2gKKworI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworI2lmIFVTRShD
QUlSTykKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19kZXZpY2UgY2Fpcm9fZGV2aWNlX3Q7CisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKFgxMSkKK3R5cGVkZWYgc3RydWN0IF9YRGlzcGxheSBEaXNwbGF5
OworI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0xDb250ZXh0IHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShHTENvbnRleHQpOworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEdMQ29udGV4dD4gY3JlYXRlQ29udGV4dEZvcldpbmRvdyh1aW50NjRfdCB3aW5k
b3dIYW5kbGUsIEdMQ29udGV4dCogc2hhcmluZ0NvbnRleHQpOworICAgIHN0YXRpYyBQYXNzT3du
UHRyPEdMQ29udGV4dD4gY3JlYXRlT2Zmc2NyZWVuQ29udGV4dChHTENvbnRleHQqIHNoYXJpbmcg
PSAwKTsKKyAgICBzdGF0aWMgR0xDb250ZXh0KiBnZXRDdXJyZW50KCk7CisgICAgc3RhdGljIEdM
Q29udGV4dCogc2hhcmluZ0NvbnRleHQoKTsKKworICAgIEdMQ29udGV4dCgpOworICAgIHZpcnR1
YWwgfkdMQ29udGV4dCgpOworICAgIHZpcnR1YWwgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsK
KyAgICB2aXJ0dWFsIHZvaWQgc3dhcEJ1ZmZlcnMoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdh
aXROYXRpdmUoKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNhblJlbmRlclRvRGVmYXVsdEZyYW1l
YnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwgSW50U2l6ZSBkZWZhdWx0RnJhbWVCdWZmZXJTaXpl
KCkgPSAwOworCisjaWYgVVNFKENBSVJPKQorICAgIHZpcnR1YWwgY2Fpcm9fZGV2aWNlX3QqIGNh
aXJvRGV2aWNlKCkgPSAwOworI2VuZGlmCisKKyNpZiBQTEFURk9STShYMTEpCisgICAgc3RhdGlj
IERpc3BsYXkqIHNoYXJlZFgxMURpc3BsYXkoKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhbnVwU2hh
cmVkWDExRGlzcGxheSgpOworI2VuZGlmCisKKyAgICBzdGF0aWMgdm9pZCBhZGRBY3RpdmVDb250
ZXh0KEdMQ29udGV4dCopOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZUFjdGl2ZUNvbnRleHQoR0xD
b250ZXh0Kik7CisgICAgc3RhdGljIHZvaWQgY2xlYW51cEFjdGl2ZUNvbnRleHRzQXRFeGl0KCk7
CisKKyNpZiBVU0UoM0RfR1JBUEhJQ1MpCisgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpID0gMDsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gR0xDb250ZXh0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dMQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR0xDb250ZXh0LmNwcAkocmV2aXNp
b24gMTUzNDM1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR0xD
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSwyMDQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMSwgMjAxMiBJZ2FsaWEsIFMuTC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgot
ICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHTENvbnRleHQuaCIKLQot
I2lmIFVTRShPUEVOR0wpCi0KLSNpZiBVU0UoRUdMKQotI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5o
IgotI2VuZGlmCi0KLSNpZiBVU0UoR0xYKQotI2luY2x1ZGUgIkdMQ29udGV4dEdMWC5oIgotI2Vu
ZGlmCi0KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KLQotI2lmIFBMQVRGT1JNKFgx
MSkKLSNpbmNsdWRlIDxYMTEvWGxpYi5oPgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShHVEspCi0j
aW5jbHVkZSA8Z2RrL2dkay5oPgotI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotI2lmZGVmIEdE
S19XSU5ET1dJTkdfV0FZTEFORAotI2luY2x1ZGUgPGdkay9nZGt3YXlsYW5kLmg+Ci0jZW5kaWYK
LSNlbmRpZgotI2VuZGlmCi0KLXVzaW5nIFdURjo6VGhyZWFkU3BlY2lmaWM7Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgVGhyZWFkR2xvYmFsR0xDb250ZXh0IHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgVGhyZWFkU3BlY2lmaWM8VGhyZWFkR2xvYmFsR0xDb250ZXh0Piogc3RhdGljR0xD
b250ZXh0OwotCi0gICAgdm9pZCBzZXRDb250ZXh0KEdMQ29udGV4dCogY29udGV4dCkgeyBtX2Nv
bnRleHQgPSBjb250ZXh0OyB9Ci0gICAgR0xDb250ZXh0KiBjb250ZXh0KCkgeyByZXR1cm4gbV9j
b250ZXh0OyB9Ci0KLXByaXZhdGU6Ci0gICAgR0xDb250ZXh0KiBtX2NvbnRleHQ7Ci19OwotCi1U
aHJlYWRTcGVjaWZpYzxUaHJlYWRHbG9iYWxHTENvbnRleHQ+KiBUaHJlYWRHbG9iYWxHTENvbnRl
eHQ6OnN0YXRpY0dMQ29udGV4dDsKLQotaW5saW5lIFRocmVhZEdsb2JhbEdMQ29udGV4dCogY3Vy
cmVudENvbnRleHQoKQotewotICAgIGlmICghVGhyZWFkR2xvYmFsR0xDb250ZXh0OjpzdGF0aWNH
TENvbnRleHQpCi0gICAgICAgIFRocmVhZEdsb2JhbEdMQ29udGV4dDo6c3RhdGljR0xDb250ZXh0
ID0gbmV3IFRocmVhZFNwZWNpZmljPFRocmVhZEdsb2JhbEdMQ29udGV4dD47Ci0gICAgcmV0dXJu
ICpUaHJlYWRHbG9iYWxHTENvbnRleHQ6OnN0YXRpY0dMQ29udGV4dDsKLX0KLQotR0xDb250ZXh0
KiBHTENvbnRleHQ6OnNoYXJpbmdDb250ZXh0KCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KE93blB0cjxHTENvbnRleHQ+LCBzaGFyaW5nLCAoY3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgpKSk7
Ci0gICAgcmV0dXJuIHNoYXJpbmcuZ2V0KCk7Ci19Ci0KLSNpZiBQTEFURk9STShYMTEpCi0vLyBX
ZSBkbyBub3Qgd2FudCB0byBjYWxsIGdsWE1ha2VDb250ZXh0Q3VycmVudCB1c2luZyBkaWZmZXJl
bnQgRGlzcGxheSBwb2ludGVycywKLS8vIGJlY2F1c2UgaXQgbWlnaHQgbGVhZCB0byBjcmFzaGVz
IGluIHNvbWUgZHJpdmVycyAoZmdscngpLiBXZSB1c2UgYSBzaGFyZWQgZGlzcGxheQotLy8gcG9p
bnRlciBoZXJlLgotc3RhdGljIERpc3BsYXkqIGdTaGFyZWRYMTFEaXNwbGF5ID0gMDsKLURpc3Bs
YXkqIEdMQ29udGV4dDo6c2hhcmVkWDExRGlzcGxheSgpCi17Ci0gICAgaWYgKCFnU2hhcmVkWDEx
RGlzcGxheSkKLSAgICAgICAgZ1NoYXJlZFgxMURpc3BsYXkgPSBYT3BlbkRpc3BsYXkoMCk7Ci0g
ICAgcmV0dXJuIGdTaGFyZWRYMTFEaXNwbGF5OwotfQotCi12b2lkIEdMQ29udGV4dDo6Y2xlYW51
cFNoYXJlZFgxMURpc3BsYXkoKQotewotICAgIGlmICghZ1NoYXJlZFgxMURpc3BsYXkpCi0gICAg
ICAgIHJldHVybjsKLSAgICBYQ2xvc2VEaXNwbGF5KGdTaGFyZWRYMTFEaXNwbGF5KTsKLSAgICBn
U2hhcmVkWDExRGlzcGxheSA9IDA7Ci19Ci0jZW5kaWYgLy8gUExBVEZPUk0oWDExKQotCi0vLyBC
ZWNhdXNlIG9mIGRyaXZlciBidWdzLCBleGl0aW5nIHRoZSBwcm9ncmFtIHdoZW4gdGhlcmUgYXJl
IGFjdGl2ZSBwYnVmZmVycwotLy8gY2FuIGNyYXNoIHRoZSBYIHNlcnZlciAodGhpcyBoYXMgYmVl
biBvYnNlcnZlZCB3aXRoIHRoZSBvZmZpY2lhbCBOdmlkaWEgZHJpdmVycykuCi0vLyBXZSBuZWVk
IHRvIGVuc3VyZSB0aGF0IHdlIGNsZWFuIGV2ZXJ5dGhpbmcgdXAgb24gZXhpdC4gVGhlcmUgYXJl
IHNldmVyYWwgcmVhc29ucwotLy8gdGhhdCBHcmFwaGljc0NvbnRleHQzRHMgd2lsbCBzdGlsbCBi
ZSBhbGl2ZSBhdCBleGl0LCBpbmNsdWRpbmcgdXNlciBlcnJvciAobWVtb3J5Ci0vLyBsZWFrcykg
YW5kIHRoZSBwYWdlIGNhY2hlLiBJbiBhbnkgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0aGUgWCBzZXJ2
ZXIgdG8gY3Jhc2guCi10eXBlZGVmIFZlY3RvcjxHTENvbnRleHQqPiBBY3RpdmVDb250ZXh0TGlz
dDsKLXN0YXRpYyBBY3RpdmVDb250ZXh0TGlzdCYgYWN0aXZlQ29udGV4dExpc3QoKQotewotICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQWN0aXZlQ29udGV4dExpc3QsIGFjdGl2ZUNvbnRleHRzLCAo
KSk7Ci0gICAgcmV0dXJuIGFjdGl2ZUNvbnRleHRzOwotfQotCi12b2lkIEdMQ29udGV4dDo6YWRk
QWN0aXZlQ29udGV4dChHTENvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgc3RhdGljIGJvb2wgYWRk
ZWRBdEV4aXRIYW5kbGVyID0gZmFsc2U7Ci0gICAgaWYgKCFhZGRlZEF0RXhpdEhhbmRsZXIpIHsK
LSAgICAgICAgYXRleGl0KCZHTENvbnRleHQ6OmNsZWFudXBBY3RpdmVDb250ZXh0c0F0RXhpdCk7
Ci0gICAgICAgIGFkZGVkQXRFeGl0SGFuZGxlciA9IHRydWU7Ci0gICAgfQotICAgIGFjdGl2ZUNv
bnRleHRMaXN0KCkuYXBwZW5kKGNvbnRleHQpOwotfQotCi1zdGF0aWMgYm9vbCBnQ2xlYW5pbmdV
cEF0RXhpdCA9IGZhbHNlOwotCi12b2lkIEdMQ29udGV4dDo6cmVtb3ZlQWN0aXZlQ29udGV4dChH
TENvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgLy8gSWYgd2UgYXJlIGNsZWFuaW5nIHVwIHRoZSBj
b250ZXh0IGxpc3QgYXQgZXhpdCwgZG9uJ3QgYm90aGVyIHJlbW92aW5nIHRoZSBjb250ZXh0Ci0g
ICAgLy8gZnJvbSB0aGUgbGlzdCwgc2luY2Ugd2UgZG9uJ3Qgd2FudCB0byBtb2RpZnkgdGhlIGxp
c3Qgd2hpbGUgaXQncyBiZWluZyBpdGVyYXRlZC4KLSAgICBpZiAoZ0NsZWFuaW5nVXBBdEV4aXQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIEFjdGl2ZUNvbnRleHRMaXN0JiBjb250ZXh0TGlzdCA9
IGFjdGl2ZUNvbnRleHRMaXN0KCk7Ci0gICAgc2l6ZV90IGkgPSBjb250ZXh0TGlzdC5maW5kKGNv
bnRleHQpOwotICAgIGlmIChpICE9IG5vdEZvdW5kKQotICAgICAgICBjb250ZXh0TGlzdC5yZW1v
dmUoaSk7Ci19Ci0KLXZvaWQgR0xDb250ZXh0OjpjbGVhbnVwQWN0aXZlQ29udGV4dHNBdEV4aXQo
KQotewotICAgIGdDbGVhbmluZ1VwQXRFeGl0ID0gdHJ1ZTsKLQotICAgIEFjdGl2ZUNvbnRleHRM
aXN0JiBjb250ZXh0TGlzdCA9IGFjdGl2ZUNvbnRleHRMaXN0KCk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjb250ZXh0TGlzdC5zaXplKCk7ICsraSkKLSAgICAgICAgZGVsZXRlIGNvbnRl
eHRMaXN0W2ldOwotCi0jaWYgUExBVEZPUk0oWDExKQotICAgIGNsZWFudXBTaGFyZWRYMTFEaXNw
bGF5KCk7Ci0jZW5kaWYKLX0KLQotCi0KLVBhc3NPd25QdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6
OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3codWludDY0X3Qgd2luZG93SGFuZGxlLCBHTENvbnRleHQq
IHNoYXJpbmdDb250ZXh0KQotewotI2lmIFBMQVRGT1JNKEdUSykgJiYgZGVmaW5lZChHREtfV0lO
RE9XSU5HX1dBWUxBTkQpICYmIFVTRShFR0wpCi0gICAgR2RrRGlzcGxheSogZGlzcGxheSA9IGdk
a19kaXNwbGF5X21hbmFnZXJfZ2V0X2RlZmF1bHRfZGlzcGxheShnZGtfZGlzcGxheV9tYW5hZ2Vy
X2dldCgpKTsKLQotICAgIGlmIChHREtfSVNfV0FZTEFORF9ESVNQTEFZKGRpc3BsYXkpKSB7Ci0g
ICAgICAgIGlmIChPd25QdHI8R0xDb250ZXh0PiBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdMOjpj
cmVhdGVDb250ZXh0KHdpbmRvd0hhbmRsZSwgc2hhcmluZ0NvbnRleHQpKQotICAgICAgICAgICAg
cmV0dXJuIGVnbENvbnRleHQucmVsZWFzZSgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0jZW5kaWYKLQotI2lmIFVTRShHTFgpCi0gICAgaWYgKE93blB0cjxHTENvbnRleHQ+IGds
eENvbnRleHQgPSBHTENvbnRleHRHTFg6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBzaGFy
aW5nQ29udGV4dCkpCi0gICAgICAgIHJldHVybiBnbHhDb250ZXh0LnJlbGVhc2UoKTsKLSNlbmRp
ZgotI2lmIFVTRShFR0wpCi0gICAgaWYgKE93blB0cjxHTENvbnRleHQ+IGVnbENvbnRleHQgPSBH
TENvbnRleHRFR0w6OmNyZWF0ZUNvbnRleHQod2luZG93SGFuZGxlLCBzaGFyaW5nQ29udGV4dCkp
Ci0gICAgICAgIHJldHVybiBlZ2xDb250ZXh0LnJlbGVhc2UoKTsKLSNlbmRpZgotICAgIHJldHVy
biBudWxscHRyOwotfQotCi1HTENvbnRleHQ6OkdMQ29udGV4dCgpCi17Ci0gICAgYWRkQWN0aXZl
Q29udGV4dCh0aGlzKTsKLX0KLQotUGFzc093blB0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3Jl
YXRlT2Zmc2NyZWVuQ29udGV4dChHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KQotewotICAgIHJl
dHVybiBjcmVhdGVDb250ZXh0Rm9yV2luZG93KDAsIHNoYXJpbmdDb250ZXh0KTsKLX0KLQotR0xD
b250ZXh0Ojp+R0xDb250ZXh0KCkKLXsKLSAgICBpZiAodGhpcyA9PSBjdXJyZW50Q29udGV4dCgp
LT5jb250ZXh0KCkpCi0gICAgICAgIGN1cnJlbnRDb250ZXh0KCktPnNldENvbnRleHQoMCk7Ci0g
ICAgcmVtb3ZlQWN0aXZlQ29udGV4dCh0aGlzKTsKLX0KLQotYm9vbCBHTENvbnRleHQ6Om1ha2VD
b250ZXh0Q3VycmVudCgpCi17Ci0gICAgY3VycmVudENvbnRleHQoKS0+c2V0Q29udGV4dCh0aGlz
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotR0xDb250ZXh0KiBHTENvbnRleHQ6OmdldEN1cnJl
bnQoKQotewotICAgIHJldHVybiBjdXJyZW50Q29udGV4dCgpLT5jb250ZXh0KCk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFVTRShPUEVOR0wpCi0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dMQ29udGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dMQ29udGV4dC5o
CShyZXZpc2lvbiAxNTM0MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HTENvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3NCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
Ci0gKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAq
Ci0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUKLSAqICBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSBV
U0EKLSAqLwotCi0jaWZuZGVmIEdMQ29udGV4dF9oCi0jZGVmaW5lIEdMQ29udGV4dF9oCi0KLSNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQzRC5oIgotI2luY2x1ZGUgIldpZGdldC5oIgotI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLSNp
ZiBVU0UoQ0FJUk8pCi10eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZGV2aWNlIGNhaXJvX2RldmljZV90
OwotI2VuZGlmCi0KLSNpZiBQTEFURk9STShYMTEpCi10eXBlZGVmIHN0cnVjdCBfWERpc3BsYXkg
RGlzcGxheTsKLSNlbmRpZgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdMQ29udGV4
dCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoR0xDb250ZXh0KTsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc093blB0cjxHTENvbnRleHQ+IGNyZWF0ZUNvbnRleHRGb3JXaW5kb3codWludDY0
X3Qgd2luZG93SGFuZGxlLCBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KTsKLSAgICBzdGF0aWMg
UGFzc093blB0cjxHTENvbnRleHQ+IGNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoR0xDb250ZXh0KiBz
aGFyaW5nID0gMCk7Ci0gICAgc3RhdGljIEdMQ29udGV4dCogZ2V0Q3VycmVudCgpOwotICAgIHN0
YXRpYyBHTENvbnRleHQqIHNoYXJpbmdDb250ZXh0KCk7Ci0KLSAgICBHTENvbnRleHQoKTsKLSAg
ICB2aXJ0dWFsIH5HTENvbnRleHQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgbWFrZUNvbnRleHRDdXJy
ZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIHN3YXBCdWZmZXJzKCkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCB3YWl0TmF0aXZlKCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBjYW5SZW5kZXJUb0RlZmF1
bHRGcmFtZWJ1ZmZlcigpID0gMDsKLSAgICB2aXJ0dWFsIEludFNpemUgZGVmYXVsdEZyYW1lQnVm
ZmVyU2l6ZSgpID0gMDsKLQotI2lmIFVTRShDQUlSTykKLSAgICB2aXJ0dWFsIGNhaXJvX2Rldmlj
ZV90KiBjYWlyb0RldmljZSgpID0gMDsKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oWDExKQotICAg
IHN0YXRpYyBEaXNwbGF5KiBzaGFyZWRYMTFEaXNwbGF5KCk7Ci0gICAgc3RhdGljIHZvaWQgY2xl
YW51cFNoYXJlZFgxMURpc3BsYXkoKTsKLSNlbmRpZgotCi0gICAgc3RhdGljIHZvaWQgYWRkQWN0
aXZlQ29udGV4dChHTENvbnRleHQqKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVBY3RpdmVDb250
ZXh0KEdMQ29udGV4dCopOwotICAgIHN0YXRpYyB2b2lkIGNsZWFudXBBY3RpdmVDb250ZXh0c0F0
RXhpdCgpOwotCi0jaWYgVVNFKDNEX0dSQVBISUNTKQotICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFw
aGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKSA9IDA7Ci0jZW5kaWYKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEdMQ29udGV4dF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>