<?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>37541</bug_id>
          
          <creation_ts>2010-04-13 18:52:05 -0700</creation_ts>
          <short_desc>[chromium] Provide access to a GL ES drawing context from WebCore</short_desc>
          <delta_ts>2010-04-17 07:55:44 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Vangelis Kokkevis">vangelis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>212192</commentid>
    <comment_count>0</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-13 18:52:05 -0700</bug_when>
    <thetext>The hardware accelerated compositor in WebCore&apos;s platform/graphics/chromium needs to have access to an OGL ES context in order to execute GL commands. It cannot create the context directly itself so it must proxy the task back to the browser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212195</commentid>
    <comment_count>1</comment_count>
      <attachid>53307</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-13 19:24:42 -0700</bug_when>
    <thetext>Created attachment 53307
Proposed patch

The implementation is there although I&apos;m not particularly happy with the way I pass a pointer to the WebView in GLES2Context::initialize().  Essentially I pass it as a NULL pointer to WebCore code and cast it to WebKit::WebView in WebKit.  Any suggestions on how to get around that issue would be greatly appreciated!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212196</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-13 19:25:54 -0700</bug_when>
    <thetext>Attachment 53307 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/GLES2Context.cpp:33:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
WebKit/chromium/src/GLES2Context.cpp:122:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212487</commentid>
    <comment_count>3</comment_count>
      <attachid>53349</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-14 12:21:30 -0700</bug_when>
    <thetext>Created attachment 53349
Proposed patch with style issues fixed

Updated patch although the issue with passing WebView around remains.  Please see comment in previous patch. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213127</commentid>
    <comment_count>4</comment_count>
      <attachid>53492</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-04-15 17:17:28 -0700</bug_when>
    <thetext>Created attachment 53492
Proposed patch 

Fixed previous issue with passing around the WebView pointer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213130</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-15 17:23:31 -0700</bug_when>
    <thetext>Attachment 53492 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/GLES2Context.cpp:33:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
WebKit/chromium/src/GLES2Context.cpp:119:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213267</commentid>
    <comment_count>6</comment_count>
      <attachid>53492</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-04-16 09:11:16 -0700</bug_when>
    <thetext>Comment on attachment 53492
Proposed patch 

lgtm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213601</commentid>
    <comment_count>7</comment_count>
      <attachid>53492</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-17 07:55:38 -0700</bug_when>
    <thetext>Comment on attachment 53492
Proposed patch 

Clearing flags on attachment: 53492

Committed r57780: &lt;http://trac.webkit.org/changeset/57780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>213602</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-04-17 07:55:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53307</attachid>
            <date>2010-04-13 19:24:42 -0700</date>
            <delta_ts>2010-04-14 12:21:30 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>gles2context.txt</filename>
            <type>text/plain</type>
            <size>13937</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzU1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDQtMTMgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGluZyBkZWZpbml0aW9uIG9mIEdMRVMyQ29udGV4dCBjbGFzcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTQxCisKKyAgICAgICAg
Tm8gbmV3IGZ1bmN0aW9uYWxpdHkgaW1wbGVtZW50ZWQgeWV0LCBubyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgR0xFUzJDb250ZXh0LmgKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaDogQWRkZWQuCisKIDIwMTAtMDQtMTMgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIg
SHVudC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS5neXBpCShyZXZpc2lvbiA1NzUzNykKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTgxLDYgKzE5ODEsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXdDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb24uaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25HdGsuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9MYW5ndWFnZS5jcHAnLApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0dMRVMyQ29udGV4dC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgR0xFUzJDb250ZXh0X2gKKyNkZWZpbmUgR0xFUzJDb250ZXh0X2gKKworI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMRVMyQ29u
dGV4dEludGVybmFsOworCitjbGFzcyBHTEVTMkNvbnRleHQgOiBwdWJsaWMgTm9uY29weWFibGUg
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMRVMyQ29udGV4dD4gY3JlYXRlKCk7
CisgICAgfkdMRVMyQ29udGV4dCgpOworCisgICAgYm9vbCBpbml0aWFsaXplKHZvaWQqIHdlYlZp
ZXcpOworICAgIGJvb2wgbWFrZUN1cnJlbnQoKTsKKyAgICBib29sIGRlc3Ryb3koKTsKKyAgICBi
b29sIHN3YXBCdWZmZXJzKCk7Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBHTEVTMkNvbnRl
eHRJbnRlcm5hbDsKKyAgICBPd25QdHI8R0xFUzJDb250ZXh0SW50ZXJuYWw+IG1faW50ZXJuYWw7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdl
cyBvbjogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDU3NTU1KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDEwLTA0LTEzICBWYW5nZWxpcyBLb2trZXZpcyAgPHZhbmdlbGlzQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mIEdMRVMyQ29udGV4dCBjbGFzcyB3aGlj
aCBwcm92aWRlcyBXZWJDb3JlIGFjY2VzcyB0byBhIEdMIEVTIGNvbnRleHQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzU0MQorCisgICAgICAgICog
V2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViR0xFUzJDb250ZXh0Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJHTEVTMkNvbnRleHQ6On5XZWJHTEVTMkNvbnRleHQpOgorICAg
ICAgICAqIHNyYy9HTEVTMkNvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdM
RVMyQ29udGV4dEludGVybmFsOjpHTEVTMkNvbnRleHRJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpHTEVTMkNvbnRleHRJbnRlcm5hbDo6fkdMRVMyQ29udGV4dEludGVybmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMRVMyQ29udGV4dEludGVybmFsOjpnZXRXZWJHTEVTMkNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6R0xFUzJDb250ZXh0SW50ZXJuYWw6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6R0xFUzJDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R0xFUzJDb250ZXh0Ojp+R0xFUzJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMRVMyQ29u
dGV4dDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpHTEVTMkNvbnRleHQ6Om1ha2VD
dXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdMRVMyQ29udGV4dDo6ZGVzdHJveSk6CisgICAg
ICAgIChXZWJDb3JlOjpHTEVTMkNvbnRleHQ6OnN3YXBCdWZmZXJzKToKKwogMjAxMC0wNC0xMyAg
VGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFNl
Y3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luIHRvIGFkZE9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlzaW9uIDU3NTM3KQorKysg
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw2ICsxMzAs
NyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViR2x5cGhDYWNoZS5oJywKKyAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkdMRVMyQ29udGV4dC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YkdyYXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSGlzdG9y
eUl0ZW0uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJIVFRQQm9keS5oJywKQEAgLTI1
NCw2ICsyNTUsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvRXZlbnRMaXN0ZW5lcldyYXBwZXIu
aCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oJywKKyAgICAgICAgICAg
ICAgICAnc3JjL0dMRVMyQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvZ3RrL1dl
YkZvbnRJbmZvLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViRm9udEluZm8uaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwJywKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR0xFUzJDb250ZXh0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHTEVTMkNvbnRleHQuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR0xFUzJDb250ZXh0LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkdMRVMyQ29udGV4dF9oCisjZGVmaW5lIFdlYkdM
RVMyQ29udGV4dF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJOb25D
b3B5YWJsZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVmlldzsKKworLy8g
VGhpcyBpbnRlcmZhY2UgYWJzdHJhY3RzIHRoZSBjcmVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBh
bgorLy8gT3BlbkdMIEVTIDIuMCBjb250ZXh0LgorCitjbGFzcyBXZWJHTEVTMkNvbnRleHQgOiBw
dWJsaWMgV2ViTm9uQ29weWFibGUgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkdMRVMyQ29u
dGV4dCgpIHt9CisKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJWaWV3KikgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBtYWtlQ3VycmVudCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVz
dHJveSgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3dhcEJ1ZmZlcnMoKSA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdMRVMyQ29udGV4dC5oCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0
Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGll
bnQuaAkocmV2aXNpb24gNTc1MzcpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIFdlYkFwcGxpY2F0
aW9uQ2FjaGVIb3N0OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZUhvc3RDbGllbnQ7CiBjbGFz
cyBXZWJDbGlwYm9hcmQ7CiBjbGFzcyBXZWJDb29raWVKYXI7CitjbGFzcyBXZWJHTEVTMkNvbnRl
eHQ7CiBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIFdlYkluZGV4ZWREYXRhYmFz
ZTsKIGNsYXNzIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbDsKQEAgLTI3MCw2ICsyNzEsMTIgQEAgcHVi
bGljOgogICAgIC8vIFJldHVybnMgbmV3bHkgYWxsb2NhdGVkIFdlYkdyYXBoaWNzQ29udGV4dDNE
IGluc3RhbmNlLgogICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBo
aWNzQ29udGV4dDNEKCkgeyByZXR1cm4gMDsgfQogCisgICAgLy8gR0xFUzIgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAg
ICAvLyBSZXR1cm5zIG5ld2x5IGFsbG9jYXRlZCBXZWJHTEVTMkNvbnRleHQgaW5zdGFuY2UuCisg
ICAgLy8gTWF5IHJldHVybiBudWxsIGlmIGl0IGZhaWxzIHRvIGNyZWF0ZSB0aGUgY29udGV4dC4K
KyAgICB2aXJ0dWFsIFdlYkdMRVMyQ29udGV4dCogY3JlYXRlR0xFUzJDb250ZXh0KCkgeyByZXR1
cm4gMDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYktpdENsaWVudCgpIHsgfQogfTsKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9zcmMvR0xFUzJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL0dMRVMyQ29udGV4dC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL0dMRVMyQ29udGV4dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiR0xFUzJDb250ZXh0LmgiCisjaW5j
bHVkZSAiV2ViR0xFUzJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAi
V2ViS2l0Q2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCisvLyBUaGVyZSBhcmUg
dHdvIGxldmVscyBvZiBkZWxlZ2F0aW9uIGluIHRoaXMgZmlsZToKKy8vCisvLyAgIDEuIEdMRVMy
Q29udGV4dCBkZWxlZ2F0ZXMgdG8gR0xFUzJDb250ZXh0SW50ZXJuYWwuIFRoaXMgaXMgZG9uZQor
Ly8gICAgICBzbyB0aGF0IHdlIGhhdmUgc29tZSBwbGFjZSB0byBzdG9yZSBkYXRhIG1lbWJlcnMg
Y29tbW9uIGFtb25nCisvLyAgICAgIGltcGxlbWVudGF0aW9uczsgR0xFUzJDb250ZXh0IG9ubHkg
cHJvdmlkZXMgdXMgdGhlIG1faW50ZXJuYWwKKy8vICAgICAgcG9pbnRlci4gV2UgYWx3YXlzIGRl
bGVnYXRlIHRvIHRoZSBHTEVTMkNvbnRleHRJbnRlcm5hbC4KKy8vCisvLyAgIDIuIEdMRVMyQ29u
dGV4dEludGVybmFsIGRlbGVnYXRlcyB0byBhbiBpbXBsZW1lbnRhdGlvbiBvZgorLy8gICAgICBX
ZWJHTEVTMkNvbnRleHQuIFRoaXMgaXMgZG9uZSBzbyB3ZSBoYXZlIGEgcGxhY2UgdG8gaW5qZWN0
IGFuCisvLyAgICAgIGltcGxlbWVudGF0aW9uIHdoaWNoIGNyZWF0ZXMgdGhlIEdMIEVTIGNvbnRl
eHQuCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR0xFUzJDb250ZXh0SW50ZXJuYWwg
eworcHVibGljOgorICAgIEdMRVMyQ29udGV4dEludGVybmFsKCkge30KKyAgICB+R0xFUzJDb250
ZXh0SW50ZXJuYWwoKSB7fQorCisgICAgYm9vbCBpbml0aWFsaXplKCk7CisKKyAgICBXZWJLaXQ6
OldlYkdMRVMyQ29udGV4dCogZ2V0V2ViR0xFUzJDb250ZXh0KCkgeyByZXR1cm4gbV9pbXBsLmdl
dCgpOyB9CisKK3ByaXZhdGU6CisgICAgT3duUHRyPFdlYktpdDo6V2ViR0xFUzJDb250ZXh0PiBt
X2ltcGw7Cit9OworCitib29sIEdMRVMyQ29udGV4dEludGVybmFsOjppbml0aWFsaXplKCkKK3sK
KyAgICBtX2ltcGwgPSBXZWJLaXQ6OndlYktpdENsaWVudCgpLT5jcmVhdGVHTEVTMkNvbnRleHQo
KTsKKyAgICBpZiAoIW1faW1wbCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0
cnVlOworfQorCitQYXNzT3duUHRyPEdMRVMyQ29udGV4dD4gR0xFUzJDb250ZXh0OjpjcmVhdGUo
KQoreworICAgIEdMRVMyQ29udGV4dEludGVybmFsKiBpbnRlcm5hbCA9IG5ldyBHTEVTMkNvbnRl
eHRJbnRlcm5hbCgpOworICAgIGlmICghaW50ZXJuYWwtPmluaXRpYWxpemUoKSkgeworICAgICAg
ICBkZWxldGUgaW50ZXJuYWw7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICBQYXNzT3du
UHRyPEdMRVMyQ29udGV4dD4gcmVzdWx0ID0gbmV3IEdMRVMyQ29udGV4dCgpOworICAgIHJlc3Vs
dC0+bV9pbnRlcm5hbC5zZXQoaW50ZXJuYWwpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0dM
RVMyQ29udGV4dDo6fkdMRVMyQ29udGV4dCgpCit7Cit9CisKK2Jvb2wgR0xFUzJDb250ZXh0Ojpp
bml0aWFsaXplKHZvaWQqIHdlYlZpZXcpCit7CisgICAgV2ViS2l0OjpXZWJHTEVTMkNvbnRleHQq
IHdlYkNvbnRleHQgPSBtX2ludGVybmFsLT5nZXRXZWJHTEVTMkNvbnRleHQoKTsKKyAgICBpZiAo
IXdlYkNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBGSVhNRTogVGhpcyBj
YXN0IGlzIHVnbHkuIENvbnNpZGVyIGZpbmRpbmcgYSBiZXR0ZXIgd2F5IHRvIHBhc3MgdGhlIFdl
YlZpZXcgcG9pbnRlciBkb3duLgorICAgIHJldHVybiB3ZWJDb250ZXh0LT5pbml0aWFsaXplKHN0
YXRpY19jYXN0PFdlYktpdDo6V2ViVmlldyo+KHdlYlZpZXcpKTsKK30KKworYm9vbCBHTEVTMkNv
bnRleHQ6Om1ha2VDdXJyZW50KCkKK3sKKyAgICBXZWJLaXQ6OldlYkdMRVMyQ29udGV4dCogd2Vi
Q29udGV4dCA9IG1faW50ZXJuYWwtPmdldFdlYkdMRVMyQ29udGV4dCgpOworICAgIGlmICghd2Vi
Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB3ZWJDb250ZXh0LT5t
YWtlQ3VycmVudCgpOworfQorCitib29sIEdMRVMyQ29udGV4dDo6ZGVzdHJveSgpCit7CisgICAg
V2ViS2l0OjpXZWJHTEVTMkNvbnRleHQqIHdlYkNvbnRleHQgPSBtX2ludGVybmFsLT5nZXRXZWJH
TEVTMkNvbnRleHQoKTsKKyAgICBpZiAoIXdlYkNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gd2ViQ29udGV4dC0+ZGVzdHJveSgpOworfQorCitib29sIEdMRVMyQ29u
dGV4dDo6c3dhcEJ1ZmZlcnMoKQoreworICAgIFdlYktpdDo6V2ViR0xFUzJDb250ZXh0KiB3ZWJD
b250ZXh0ID0gbV9pbnRlcm5hbC0+Z2V0V2ViR0xFUzJDb250ZXh0KCk7CisgICAgaWYgKCF3ZWJD
b250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHdlYkNvbnRleHQtPnN3
YXBCdWZmZXJzKCk7Cit9CisKK30gIC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBXZWJLaXQvY2hyb21pdW0vc3JjL0dMRVMyQ29udGV4dC5jcHAKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpB
ZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53349</attachid>
            <date>2010-04-14 12:21:30 -0700</date>
            <delta_ts>2010-04-15 12:56:56 -0700</delta_ts>
            <desc>Proposed patch with style issues fixed</desc>
            <filename>gles2context_2.txt</filename>
            <type>text/plain</type>
            <size>13938</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzU1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDQtMTMgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGluZyBkZWZpbml0aW9uIG9mIEdMRVMyQ29udGV4dCBjbGFzcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTQxCisKKyAgICAgICAg
Tm8gbmV3IGZ1bmN0aW9uYWxpdHkgaW1wbGVtZW50ZWQgeWV0LCBubyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgR0xFUzJDb250ZXh0LmgKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaDogQWRkZWQuCisKIDIwMTAtMDQtMTMgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIg
SHVudC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS5neXBpCShyZXZpc2lvbiA1NzUzNykKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTgxLDYgKzE5ODEsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXdDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb24uaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25HdGsuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9MYW5ndWFnZS5jcHAnLApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0dMRVMyQ29udGV4dC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgR0xFUzJDb250ZXh0X2gKKyNkZWZpbmUgR0xFUzJDb250ZXh0X2gKKworI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMRVMyQ29u
dGV4dEludGVybmFsOworCitjbGFzcyBHTEVTMkNvbnRleHQgOiBwdWJsaWMgTm9uY29weWFibGUg
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPEdMRVMyQ29udGV4dD4gY3JlYXRlKCk7
CisgICAgfkdMRVMyQ29udGV4dCgpOworCisgICAgYm9vbCBpbml0aWFsaXplKHZvaWQqIHdlYlZp
ZXcpOworICAgIGJvb2wgbWFrZUN1cnJlbnQoKTsKKyAgICBib29sIGRlc3Ryb3koKTsKKyAgICBi
b29sIHN3YXBCdWZmZXJzKCk7Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBHTEVTMkNvbnRl
eHRJbnRlcm5hbDsKKyAgICBPd25QdHI8R0xFUzJDb250ZXh0SW50ZXJuYWw+IG1faW50ZXJuYWw7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdl
cyBvbjogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDU3NTU1KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI1IEBACisyMDEwLTA0LTEzICBWYW5nZWxpcyBLb2trZXZpcyAgPHZhbmdlbGlzQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mIEdMRVMyQ29udGV4dCBjbGFzcyB3aGlj
aCBwcm92aWRlcyBXZWJDb3JlIGFjY2VzcyB0byBhIEdMIEVTIGNvbnRleHQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzU0MQorCisgICAgICAgICog
V2ViS2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViR0xFUzJDb250ZXh0Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJHTEVTMkNvbnRleHQ6On5XZWJHTEVTMkNvbnRleHQpOgorICAg
ICAgICAqIHNyYy9HTEVTMkNvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdM
RVMyQ29udGV4dEludGVybmFsOjpHTEVTMkNvbnRleHRJbnRlcm5hbCk6CisgICAgICAgIChXZWJD
b3JlOjpHTEVTMkNvbnRleHRJbnRlcm5hbDo6fkdMRVMyQ29udGV4dEludGVybmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdMRVMyQ29udGV4dEludGVybmFsOjpnZXRXZWJHTEVTMkNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6R0xFUzJDb250ZXh0SW50ZXJuYWw6OmluaXRpYWxpemUpOgorICAg
ICAgICAoV2ViQ29yZTo6R0xFUzJDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R0xFUzJDb250ZXh0Ojp+R0xFUzJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMRVMyQ29u
dGV4dDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpHTEVTMkNvbnRleHQ6Om1ha2VD
dXJyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdMRVMyQ29udGV4dDo6ZGVzdHJveSk6CisgICAg
ICAgIChXZWJDb3JlOjpHTEVTMkNvbnRleHQ6OnN3YXBCdWZmZXJzKToKKwogMjAxMC0wNC0xMyAg
VGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFNl
Y3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luIHRvIGFkZE9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlzaW9uIDU3NTM3KQorKysg
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw2ICsxMzAs
NyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViR2x5cGhDYWNoZS5oJywKKyAgICAgICAgICAgICAg
ICAncHVibGljL1dlYkdMRVMyQ29udGV4dC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YkdyYXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSGlzdG9y
eUl0ZW0uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJIVFRQQm9keS5oJywKQEAgLTI1
NCw2ICsyNTUsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvRXZlbnRMaXN0ZW5lcldyYXBwZXIu
aCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oJywKKyAgICAgICAgICAg
ICAgICAnc3JjL0dMRVMyQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvZ3RrL1dl
YkZvbnRJbmZvLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViRm9udEluZm8uaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwJywKSW5k
ZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR0xFUzJDb250ZXh0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHTEVTMkNvbnRleHQuaAkocmV2aXNpb24gMCkK
KysrIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR0xFUzJDb250ZXh0LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkdMRVMyQ29udGV4dF9oCisjZGVmaW5lIFdlYkdM
RVMyQ29udGV4dF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJOb25D
b3B5YWJsZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVmlldzsKKworLy8g
VGhpcyBpbnRlcmZhY2UgYWJzdHJhY3RzIHRoZSBjcmVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBh
bgorLy8gT3BlbkdMIEVTIDIuMCBjb250ZXh0LgorCitjbGFzcyBXZWJHTEVTMkNvbnRleHQgOiBw
dWJsaWMgV2ViTm9uQ29weWFibGUgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkdMRVMyQ29u
dGV4dCgpIHt9CisKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJWaWV3KikgPSAwOwor
ICAgIHZpcnR1YWwgYm9vbCBtYWtlQ3VycmVudCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVz
dHJveSgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3dhcEJ1ZmZlcnMoKSA9IDA7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYkdMRVMyQ29udGV4dC5oCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjplb2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0
Q2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGll
bnQuaAkocmV2aXNpb24gNTc1MzcpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENs
aWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIFdlYkFwcGxpY2F0
aW9uQ2FjaGVIb3N0OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZUhvc3RDbGllbnQ7CiBjbGFz
cyBXZWJDbGlwYm9hcmQ7CiBjbGFzcyBXZWJDb29raWVKYXI7CitjbGFzcyBXZWJHTEVTMkNvbnRl
eHQ7CiBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIFdlYkluZGV4ZWREYXRhYmFz
ZTsKIGNsYXNzIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbDsKQEAgLTI3MCw2ICsyNzEsMTIgQEAgcHVi
bGljOgogICAgIC8vIFJldHVybnMgbmV3bHkgYWxsb2NhdGVkIFdlYkdyYXBoaWNzQ29udGV4dDNE
IGluc3RhbmNlLgogICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBo
aWNzQ29udGV4dDNEKCkgeyByZXR1cm4gMDsgfQogCisgICAgLy8gR0xFUzIgIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAg
ICAvLyBSZXR1cm5zIG5ld2x5IGFsbG9jYXRlZCBXZWJHTEVTMkNvbnRleHQgaW5zdGFuY2UuCisg
ICAgLy8gTWF5IHJldHVybiBudWxsIGlmIGl0IGZhaWxzIHRvIGNyZWF0ZSB0aGUgY29udGV4dC4K
KyAgICB2aXJ0dWFsIFdlYkdMRVMyQ29udGV4dCogY3JlYXRlR0xFUzJDb250ZXh0KCkgeyByZXR1
cm4gMDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYktpdENsaWVudCgpIHsgfQogfTsKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9zcmMvR0xFUzJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvY2hyb21pdW0vc3JjL0dMRVMyQ29udGV4dC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQv
Y2hyb21pdW0vc3JjL0dMRVMyQ29udGV4dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTIz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiR0xFUzJDb250ZXh0LmgiCisKKyNp
bmNsdWRlICJXZWJHTEVTMkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNsdWRl
ICJXZWJLaXRDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKKy8vIFRoZXJlIGFy
ZSB0d28gbGV2ZWxzIG9mIGRlbGVnYXRpb24gaW4gdGhpcyBmaWxlOgorLy8KKy8vICAgMS4gR0xF
UzJDb250ZXh0IGRlbGVnYXRlcyB0byBHTEVTMkNvbnRleHRJbnRlcm5hbC4gVGhpcyBpcyBkb25l
CisvLyAgICAgIHNvIHRoYXQgd2UgaGF2ZSBzb21lIHBsYWNlIHRvIHN0b3JlIGRhdGEgbWVtYmVy
cyBjb21tb24gYW1vbmcKKy8vICAgICAgaW1wbGVtZW50YXRpb25zOyBHTEVTMkNvbnRleHQgb25s
eSBwcm92aWRlcyB1cyB0aGUgbV9pbnRlcm5hbAorLy8gICAgICBwb2ludGVyLiBXZSBhbHdheXMg
ZGVsZWdhdGUgdG8gdGhlIEdMRVMyQ29udGV4dEludGVybmFsLgorLy8KKy8vICAgMi4gR0xFUzJD
b250ZXh0SW50ZXJuYWwgZGVsZWdhdGVzIHRvIGFuIGltcGxlbWVudGF0aW9uIG9mCisvLyAgICAg
IFdlYkdMRVMyQ29udGV4dC4gVGhpcyBpcyBkb25lIHNvIHdlIGhhdmUgYSBwbGFjZSB0byBpbmpl
Y3QgYW4KKy8vICAgICAgaW1wbGVtZW50YXRpb24gd2hpY2ggY3JlYXRlcyB0aGUgR0wgRVMgY29u
dGV4dC4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHTEVTMkNvbnRleHRJbnRlcm5h
bCB7CitwdWJsaWM6CisgICAgR0xFUzJDb250ZXh0SW50ZXJuYWwoKSB7fQorICAgIH5HTEVTMkNv
bnRleHRJbnRlcm5hbCgpIHt9CisKKyAgICBib29sIGluaXRpYWxpemUoKTsKKworICAgIFdlYktp
dDo6V2ViR0xFUzJDb250ZXh0KiBnZXRXZWJHTEVTMkNvbnRleHQoKSB7IHJldHVybiBtX2ltcGwu
Z2V0KCk7IH0KKworcHJpdmF0ZToKKyAgICBPd25QdHI8V2ViS2l0OjpXZWJHTEVTMkNvbnRleHQ+
IG1faW1wbDsKK307CisKK2Jvb2wgR0xFUzJDb250ZXh0SW50ZXJuYWw6OmluaXRpYWxpemUoKQor
eworICAgIG1faW1wbCA9IFdlYktpdDo6d2ViS2l0Q2xpZW50KCktPmNyZWF0ZUdMRVMyQ29udGV4
dCgpOworICAgIGlmICghbV9pbXBsKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK1Bhc3NPd25QdHI8R0xFUzJDb250ZXh0PiBHTEVTMkNvbnRleHQ6OmNyZWF0
ZSgpCit7CisgICAgR0xFUzJDb250ZXh0SW50ZXJuYWwqIGludGVybmFsID0gbmV3IEdMRVMyQ29u
dGV4dEludGVybmFsKCk7CisgICAgaWYgKCFpbnRlcm5hbC0+aW5pdGlhbGl6ZSgpKSB7CisgICAg
ICAgIGRlbGV0ZSBpbnRlcm5hbDsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIFBhc3NP
d25QdHI8R0xFUzJDb250ZXh0PiByZXN1bHQgPSBuZXcgR0xFUzJDb250ZXh0KCk7CisgICAgcmVz
dWx0LT5tX2ludGVybmFsLnNldChpbnRlcm5hbCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
R0xFUzJDb250ZXh0Ojp+R0xFUzJDb250ZXh0KCkKK3sKK30KKworYm9vbCBHTEVTMkNvbnRleHQ6
OmluaXRpYWxpemUodm9pZCogd2ViVmlldykKK3sKKyAgICBXZWJLaXQ6OldlYkdMRVMyQ29udGV4
dCogd2ViQ29udGV4dCA9IG1faW50ZXJuYWwtPmdldFdlYkdMRVMyQ29udGV4dCgpOworICAgIGlm
ICghd2ViQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEZJWE1FOiBUaGlz
IGNhc3QgaXMgdWdseS4gQ29uc2lkZXIgZmluZGluZyBhIGJldHRlciB3YXkgdG8gcGFzcyB0aGUg
V2ViVmlldyBwb2ludGVyIGRvd24uCisgICAgcmV0dXJuIHdlYkNvbnRleHQtPmluaXRpYWxpemUo
c3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJWaWV3Kj4od2ViVmlldykpOworfQorCitib29sIEdMRVMy
Q29udGV4dDo6bWFrZUN1cnJlbnQoKQoreworICAgIFdlYktpdDo6V2ViR0xFUzJDb250ZXh0KiB3
ZWJDb250ZXh0ID0gbV9pbnRlcm5hbC0+Z2V0V2ViR0xFUzJDb250ZXh0KCk7CisgICAgaWYgKCF3
ZWJDb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHdlYkNvbnRleHQt
Pm1ha2VDdXJyZW50KCk7Cit9CisKK2Jvb2wgR0xFUzJDb250ZXh0OjpkZXN0cm95KCkKK3sKKyAg
ICBXZWJLaXQ6OldlYkdMRVMyQ29udGV4dCogd2ViQ29udGV4dCA9IG1faW50ZXJuYWwtPmdldFdl
YkdMRVMyQ29udGV4dCgpOworICAgIGlmICghd2ViQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiB3ZWJDb250ZXh0LT5kZXN0cm95KCk7Cit9CisKK2Jvb2wgR0xFUzJD
b250ZXh0Ojpzd2FwQnVmZmVycygpCit7CisgICAgV2ViS2l0OjpXZWJHTEVTMkNvbnRleHQqIHdl
YkNvbnRleHQgPSBtX2ludGVybmFsLT5nZXRXZWJHTEVTMkNvbnRleHQoKTsKKyAgICBpZiAoIXdl
YkNvbnRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gd2ViQ29udGV4dC0+
c3dhcEJ1ZmZlcnMoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hh
bmdlcyBvbjogV2ViS2l0L2Nocm9taXVtL3NyYy9HTEVTMkNvbnRleHQuY3BwCl9fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K
QWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53492</attachid>
            <date>2010-04-15 17:17:28 -0700</date>
            <delta_ts>2010-04-17 07:55:38 -0700</delta_ts>
            <desc>Proposed patch </desc>
            <filename>gles2context_3.txt</filename>
            <type>text/plain</type>
            <size>13870</size>
            <attacher name="Vangelis Kokkevis">vangelis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NzU1NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDQtMTMgIFZhbmdlbGlzIEtva2tldmlzICA8dmFuZ2VsaXNA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZGluZyBkZWZpbml0aW9uIG9mIEdMRVMyQ29udGV4dCBjbGFzcy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NTQxCisKKyAgICAgICAg
Tm8gbmV3IGZ1bmN0aW9uYWxpdHkgaW1wbGVtZW50ZWQgeWV0LCBubyB0ZXN0cy4KKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgR0xFUzJDb250ZXh0LmgKKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaDogQWRkZWQuCisKIDIwMTAtMDQtMTMgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIg
SHVudC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
V2ViQ29yZS5neXBpCShyZXZpc2lvbiA1NzUzNykKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC0xOTgxLDYgKzE5ODEsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2Nocm9taXVtL0ZyYW1lbGVzc1Njcm9sbFZpZXdDbGllbnQuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vR2VvbG9jYXRpb25TZXJ2aWNlQ2hyb21pdW0uY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9HZW9sb2NhdGlvblNlcnZpY2VDaHJvbWl1bS5oJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb24uaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vS2V5Q29kZUNvbnZlcnNpb25HdGsuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9MYW5ndWFnZS5jcHAnLApJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0dMRVMyQ29udGV4dC5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgR0xFUzJDb250ZXh0X2gKKyNkZWZpbmUgR0xFUzJDb250ZXh0X2gKKworI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMRVMyQ29u
dGV4dEludGVybmFsOworY2xhc3MgUGFnZTsKKworY2xhc3MgR0xFUzJDb250ZXh0IDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAgICAvLyBJZiBhIFBhZ2UgaXMgc3BlY2lmaWVkIHRo
ZW4gdGhlIHJlc3VsdGluZyBHTCBFUyBjb250ZXh0IGRyYXdzIGRpcmVjdGx5CisgICAgLy8gdG8g
dGhlIHdpbmRvdyBhc3NvY2lhdGVkIHdpdGggdGhlIFBhZ2UsIG90aGVyd2lzZSBhbiBvZmYtc2Ny
ZWVuIEdMIEVTIGNvbnRleHQgaXMKKyAgICAvLyBjcmVhdGVkLgorICAgIHN0YXRpYyBQYXNzT3du
UHRyPEdMRVMyQ29udGV4dD4gY3JlYXRlKFBhZ2UqKTsKKyAgICB+R0xFUzJDb250ZXh0KCk7CisK
KyAgICBib29sIG1ha2VDdXJyZW50KCk7CisgICAgYm9vbCBkZXN0cm95KCk7CisgICAgYm9vbCBz
d2FwQnVmZmVycygpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBHTEVTMkNvbnRleHRJ
bnRlcm5hbDsKKyAgICBPd25QdHI8R0xFUzJDb250ZXh0SW50ZXJuYWw+IG1faW50ZXJuYWw7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBv
bjogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HTEVTMkNvbnRleHQuaApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFk
ZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU3
NTU1KQorKysgV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDEwLTA0LTEzICBWYW5nZWxpcyBLb2trZXZpcyAgPHZhbmdlbGlzQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mIEdMRVMyQ29udGV4dCBjbGFzcyB3aGljaCBw
cm92aWRlcyBXZWJDb3JlIGFjY2VzcyB0byBhIEdMIEVTIGNvbnRleHQuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzU0MQorCisgICAgICAgICogV2Vi
S2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViR0xFUzJDb250ZXh0Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJHTEVTMkNvbnRleHQ6On5XZWJHTEVTMkNvbnRleHQpOgorICAgICAg
ICAqIHNyYy9HTEVTMkNvbnRleHQuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdMRVMy
Q29udGV4dEludGVybmFsOjpHTEVTMkNvbnRleHRJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3Jl
OjpHTEVTMkNvbnRleHRJbnRlcm5hbDo6fkdMRVMyQ29udGV4dEludGVybmFsKToKKyAgICAgICAg
KFdlYkNvcmU6OkdMRVMyQ29udGV4dEludGVybmFsOjpnZXRXZWJHTEVTMkNvbnRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6R0xFUzJDb250ZXh0SW50ZXJuYWw6OmluaXRpYWxpemUpOgorICAgICAg
ICAoV2ViQ29yZTo6R0xFUzJDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R0xF
UzJDb250ZXh0Ojp+R0xFUzJDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMRVMyQ29udGV4
dDo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXZWJDb3JlOjpHTEVTMkNvbnRleHQ6Om1ha2VDdXJy
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdMRVMyQ29udGV4dDo6ZGVzdHJveSk6CisgICAgICAg
IChXZWJDb3JlOjpHTEVTMkNvbnRleHQ6OnN3YXBCdWZmZXJzKToKKwogMjAxMC0wNC0xMyAgVGlt
b3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIFNlY3Vy
aXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luIHRvIGFkZE9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5LgpJbmRleDogV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHJldmlzaW9uIDU3NTM3KQorKysgV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAJKHdvcmtpbmcgY29weSkKQEAgLTEzMCw2ICsxMzAsNyBA
QAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViR2VvbG9jYXRpb25TZXJ2aWNlQnJpZGdlLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViR2x5cGhDYWNoZS5oJywKKyAgICAgICAgICAgICAgICAn
cHVibGljL1dlYkdMRVMyQ29udGV4dC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkdy
YXBoaWNzQ29udGV4dDNELmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSGlzdG9yeUl0
ZW0uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJIVFRQQm9keS5oJywKQEAgLTI1NCw2
ICsyNTUsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvRXZlbnRMaXN0ZW5lcldyYXBwZXIuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5oJywKKyAgICAgICAgICAgICAg
ICAnc3JjL0dMRVMyQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvZ3RrL1dlYkZv
bnRJbmZvLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViRm9udEluZm8uaCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9ndGsvV2ViSW5wdXRFdmVudEZhY3RvcnkuY3BwJywKSW5kZXg6
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR0xFUzJDb250ZXh0LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHTEVTMkNvbnRleHQuaAkocmV2aXNpb24gMCkKKysr
IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR0xFUzJDb250ZXh0LmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkdMRVMyQ29udGV4dF9oCisjZGVmaW5lIFdlYkdMRVMy
Q29udGV4dF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJOb25Db3B5
YWJsZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViVmlldzsKKworLy8gVGhp
cyBpbnRlcmZhY2UgYWJzdHJhY3RzIHRoZSBjcmVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBhbgor
Ly8gT3BlbkdMIEVTIDIuMCBjb250ZXh0LgorCitjbGFzcyBXZWJHTEVTMkNvbnRleHQgOiBwdWJs
aWMgV2ViTm9uQ29weWFibGUgeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYkdMRVMyQ29udGV4
dCgpIHt9CisKKyAgICB2aXJ0dWFsIGJvb2wgaW5pdGlhbGl6ZShXZWJWaWV3KikgPSAwOworICAg
IHZpcnR1YWwgYm9vbCBtYWtlQ3VycmVudCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGVzdHJv
eSgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc3dhcEJ1ZmZlcnMoKSA9IDA7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkdMRVMyQ29udGV4dC5oCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpl
b2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0Q2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQu
aAkocmV2aXNpb24gNTc1MzcpCisrKyBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBAIGNsYXNzIFdlYkFwcGxpY2F0aW9u
Q2FjaGVIb3N0OwogY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZUhvc3RDbGllbnQ7CiBjbGFzcyBX
ZWJDbGlwYm9hcmQ7CiBjbGFzcyBXZWJDb29raWVKYXI7CitjbGFzcyBXZWJHTEVTMkNvbnRleHQ7
CiBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIFdlYkluZGV4ZWREYXRhYmFzZTsK
IGNsYXNzIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbDsKQEAgLTI3MCw2ICsyNzEsMTIgQEAgcHVibGlj
OgogICAgIC8vIFJldHVybnMgbmV3bHkgYWxsb2NhdGVkIFdlYkdyYXBoaWNzQ29udGV4dDNEIGlu
c3RhbmNlLgogICAgIHZpcnR1YWwgV2ViR3JhcGhpY3NDb250ZXh0M0QqIGNyZWF0ZUdyYXBoaWNz
Q29udGV4dDNEKCkgeyByZXR1cm4gMDsgfQogCisgICAgLy8gR0xFUzIgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICAv
LyBSZXR1cm5zIG5ld2x5IGFsbG9jYXRlZCBXZWJHTEVTMkNvbnRleHQgaW5zdGFuY2UuCisgICAg
Ly8gTWF5IHJldHVybiBudWxsIGlmIGl0IGZhaWxzIHRvIGNyZWF0ZSB0aGUgY29udGV4dC4KKyAg
ICB2aXJ0dWFsIFdlYkdMRVMyQ29udGV4dCogY3JlYXRlR0xFUzJDb250ZXh0KCkgeyByZXR1cm4g
MDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgfldlYktpdENsaWVudCgpIHsgfQogfTsKSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvR0xFUzJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vc3JjL0dMRVMyQ29udGV4dC5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJLaXQvY2hy
b21pdW0vc3JjL0dMRVMyQ29udGV4dC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
CisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiR0xFUzJDb250ZXh0LmgiCisjaW5jbHVk
ZSAiV2ViR0xFUzJDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViS2l0LmgiCisjaW5jbHVkZSAiV2Vi
S2l0Q2xpZW50LmgiCisjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CisKKy8vIFRoZXJlIGFyZSB0d28gbGV2ZWxzIG9mIGRlbGVnYXRpb24gaW4gdGhpcyBm
aWxlOgorLy8KKy8vICAgMS4gR0xFUzJDb250ZXh0IGRlbGVnYXRlcyB0byBHTEVTMkNvbnRleHRJ
bnRlcm5hbC4gVGhpcyBpcyBkb25lCisvLyAgICAgIHNvIHRoYXQgd2UgaGF2ZSBzb21lIHBsYWNl
IHRvIHN0b3JlIGRhdGEgbWVtYmVycyBjb21tb24gYW1vbmcKKy8vICAgICAgaW1wbGVtZW50YXRp
b25zLgorLy8KKy8vICAgMi4gR0xFUzJDb250ZXh0SW50ZXJuYWwgZGVsZWdhdGVzIHRvIGFuIGlt
cGxlbWVudGF0aW9uIG9mCisvLyAgICAgIFdlYkdMRVMyQ29udGV4dC4gVGhpcyBpcyBkb25lIHNv
IHdlIGhhdmUgYSBwbGFjZSB0byBpbmplY3QgYW4KKy8vICAgICAgaW1wbGVtZW50YXRpb24gd2hp
Y2ggY3JlYXRlcyB0aGUgR0wgRVMgY29udGV4dC4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitj
bGFzcyBHTEVTMkNvbnRleHRJbnRlcm5hbCB7CitwdWJsaWM6CisgICAgR0xFUzJDb250ZXh0SW50
ZXJuYWwoKSB7fQorICAgIH5HTEVTMkNvbnRleHRJbnRlcm5hbCgpIHt9CisKKyAgICBib29sIGlu
aXRpYWxpemUoUGFnZSopOworCisgICAgV2ViS2l0OjpXZWJHTEVTMkNvbnRleHQqIGdldFdlYkdM
RVMyQ29udGV4dCgpIHsgcmV0dXJuIG1faW1wbC5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIE93
blB0cjxXZWJLaXQ6OldlYkdMRVMyQ29udGV4dD4gbV9pbXBsOworfTsKKworYm9vbCBHTEVTMkNv
bnRleHRJbnRlcm5hbDo6aW5pdGlhbGl6ZShQYWdlKiBwYWdlKQoreworICAgIG1faW1wbCA9IFdl
YktpdDo6d2ViS2l0Q2xpZW50KCktPmNyZWF0ZUdMRVMyQ29udGV4dCgpOworICAgIGlmICghbV9p
bXBsKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiB3
ZWJWaWV3ID0gV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZnJvbVBhZ2UocGFnZSk7CisgICAgaWYgKCFt
X2ltcGwtPmluaXRpYWxpemUod2ViVmlldykpIHsKKyAgICAgICAgbV9pbXBsLmNsZWFyKCk7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1Bhc3NP
d25QdHI8R0xFUzJDb250ZXh0PiBHTEVTMkNvbnRleHQ6OmNyZWF0ZShQYWdlKiBwYWdlKQorewor
ICAgIEdMRVMyQ29udGV4dEludGVybmFsKiBpbnRlcm5hbCA9IG5ldyBHTEVTMkNvbnRleHRJbnRl
cm5hbCgpOworICAgIGlmICghaW50ZXJuYWwtPmluaXRpYWxpemUocGFnZSkpIHsKKyAgICAgICAg
ZGVsZXRlIGludGVybmFsOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgUGFzc093blB0
cjxHTEVTMkNvbnRleHQ+IHJlc3VsdCA9IG5ldyBHTEVTMkNvbnRleHQoKTsKKyAgICByZXN1bHQt
Pm1faW50ZXJuYWwuc2V0KGludGVybmFsKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitHTEVT
MkNvbnRleHQ6On5HTEVTMkNvbnRleHQoKQoreworfQorCitib29sIEdMRVMyQ29udGV4dDo6bWFr
ZUN1cnJlbnQoKQoreworICAgIFdlYktpdDo6V2ViR0xFUzJDb250ZXh0KiB3ZWJDb250ZXh0ID0g
bV9pbnRlcm5hbC0+Z2V0V2ViR0xFUzJDb250ZXh0KCk7CisgICAgaWYgKCF3ZWJDb250ZXh0KQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHdlYkNvbnRleHQtPm1ha2VDdXJyZW50
KCk7Cit9CisKK2Jvb2wgR0xFUzJDb250ZXh0OjpkZXN0cm95KCkKK3sKKyAgICBXZWJLaXQ6Oldl
YkdMRVMyQ29udGV4dCogd2ViQ29udGV4dCA9IG1faW50ZXJuYWwtPmdldFdlYkdMRVMyQ29udGV4
dCgpOworICAgIGlmICghd2ViQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiB3ZWJDb250ZXh0LT5kZXN0cm95KCk7Cit9CisKK2Jvb2wgR0xFUzJDb250ZXh0Ojpzd2Fw
QnVmZmVycygpCit7CisgICAgV2ViS2l0OjpXZWJHTEVTMkNvbnRleHQqIHdlYkNvbnRleHQgPSBt
X2ludGVybmFsLT5nZXRXZWJHTEVTMkNvbnRleHQoKTsKKyAgICBpZiAoIXdlYkNvbnRleHQpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gd2ViQ29udGV4dC0+c3dhcEJ1ZmZlcnMo
KTsKK30KKworfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFdl
YktpdC9jaHJvbWl1bS9zcmMvR0xFUzJDb250ZXh0LmNwcApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46
ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>