<?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>78822</bug_id>
          
          <creation_ts>2012-02-16 08:26:48 -0800</creation_ts>
          <short_desc>[Texmap] Improve the way we deal with BGRA extension</short_desc>
          <delta_ts>2012-02-16 09:48:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>558214</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-16 08:26:48 -0800</bug_when>
    <thetext>Right now we swizzle RGB in the web process; This doesn&apos;t take onto account GL drivers that do support BGRA (all desktop drivers, for example).
Since we&apos;re going to move to an architecture where textures are uploaded in the web-process, for now we move the swizzling back to TextureMapperGL, and do it only in the case where the extension doesn&apos;t exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558217</commentid>
    <comment_count>1</comment_count>
      <attachid>127384</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-16 08:31:55 -0800</bug_when>
    <thetext>Created attachment 127384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558229</commentid>
    <comment_count>2</comment_count>
      <attachid>127384</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-02-16 08:38:36 -0800</bug_when>
    <thetext>Comment on attachment 127384
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=127384&amp;action=review

r=me but please fix the minor issues

&gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:638
&gt; +    return (availableExtensions.contains(extension));

why the extra ()s?

&gt; Source/WebCore/platform/graphics/opengl/TextureMapperGL.cpp:640
&gt; +static bool hasBgraExtension()

BGRA* this is webkit style not Qt :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558247</commentid>
    <comment_count>3</comment_count>
      <attachid>127390</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-02-16 09:00:57 -0800</bug_when>
    <thetext>Created attachment 127390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558278</commentid>
    <comment_count>4</comment_count>
      <attachid>127390</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 09:48:21 -0800</bug_when>
    <thetext>Comment on attachment 127390
Patch

Clearing flags on attachment: 127390

Committed r107951: &lt;http://trac.webkit.org/changeset/107951&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558279</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 09:48:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127384</attachid>
            <date>2012-02-16 08:31:55 -0800</date>
            <delta_ts>2012-02-16 09:00:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>14566</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZjA5Y2ZlLi5mMzhlZTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMg
QEAKIDIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KIAorICAgICAgICBbVGV4bWFwXSBJbXByb3ZlIHRoZSB3YXkgd2UgZGVhbCB3aXRoIEJHUkEg
ZXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODgyMgorCisgICAgICAgIFN3aXp6bGUgdGhlIFJHQkEgbWFudWFsbHkgb25seSBpbiBPcGVu
R0wgRVMsIGFuZCBvbmx5IGlmIHRoZSBleHRlbnNpb24gaXMgbm90IGF2YWlsYWJsZS4KKyAgICAg
ICAgUGFzcyB0aGUgcGl4ZWwtZm9ybWF0IG9mIHRoZSBpbWFnZXMgd2hlbiB1cGRhdGluZyBUZXh0
dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IGJlaGF2aW9yLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0V4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpo
YXNCZ3JhRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRleHR1cmVHTDo6dXBk
YXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJU
aWxlOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdlSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNr
aW5nU3RvcmUuaDoKKyAgICAgICAgKFRleHR1cmVNYXBwZXJUaWxlKToKKyAgICAgICAgKFRleHR1
cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKToKKworMjAxMi0wMi0x
NiAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgorCiAgICAgICAg
IFtRdF1bV0syXSBBbGxvdyBvcGFxdWUgdGlsZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODA5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXgg
OWU2OWNlNi4uOTVlM2IxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAgLTYxNiw3ICs2MTYs
NiBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6cmVzZXQoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSwg
Ym9vbCBvcGFxdWUpCiAgICAgbV9zdXJmYWNlTmVlZHNSZXNldCA9IHRydWU7CiB9CiAKLSNpZiBQ
TEFURk9STShRVCkgfHwgKFVTRShDQUlSTykgJiYgZGVmaW5lZChURVhNQVBfT1BFTkdMX0VTXzIp
KQogc3RhdGljIHZvaWQgc3dpenpsZUJHUkFUb1JHQkEodWludDMyX3QqIGRhdGEsIGNvbnN0IElu
dFNpemUmIHNpemUpCiB7CiAgICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwpAQCAtNjI3LDEy
ICs2MjYsMzggQEAgc3RhdGljIHZvaWQgc3dpenpsZUJHUkFUb1JHQkEodWludDMyX3QqIGRhdGEs
IGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgICAgICBwW3hdID0gKChwW3hdIDw8IDE2KSAm
IDB4ZmYwMDAwKSB8ICgocFt4XSA+PiAxNikgJiAweGZmKSB8IChwW3hdICYgMHhmZjAwZmYwMCk7
CiAgICAgfQogfQorCisvLyBGSVhNRTogTW92ZSB0aGlzIHRvIEV4dGVuc2lvbnMzRCB3aGVuIHdl
IG1vdmUgVGV4dHVyZU1hcHBlciB0byB1c2UgR0MzRC4KK3N0YXRpYyBib29sIGhhc0V4dGVuc2lv
bihjb25zdCBjaGFyKiBleHRlbnNpb24pCit7CisgICAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IGF2
YWlsYWJsZUV4dGVuc2lvbnM7CisgICAgaWYgKCFhdmFpbGFibGVFeHRlbnNpb25zLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuIGF2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFpbnMoZXh0ZW5zaW9u
KTsKKyAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIGV4dGVuc2lvbnNTdHJpbmcu
c3BsaXQoIiAiLCBhdmFpbGFibGVFeHRlbnNpb25zKTsKKyAgICByZXR1cm4gKGF2YWlsYWJsZUV4
dGVuc2lvbnMuY29udGFpbnMoZXh0ZW5zaW9uKSk7Cit9CitzdGF0aWMgYm9vbCBoYXNCZ3JhRXh0
ZW5zaW9uKCkKK3sKKyNpZiAhZGVmaW5lZChURVhNQVBfT1BFTkdMX0VTXzIpCisgICAgcmV0dXJu
IHRydWU7CiAjZW5kaWYKKyAgICBzdGF0aWMgYm9vbCBoYXNCZ3JhID0gaGFzRXh0ZW5zaW9uKCJH
TF9FWFRfdGV4dHVyZV9mb3JtYXRfQkdSQTg4ODgiKTsKKyAgICByZXR1cm4gaGFzQmdyYTsKK30K
IAogdm9pZCBCaXRtYXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKGNvbnN0IHZvaWQqIGRhdGEs
IGNvbnN0IEludFJlY3QmIHRhcmdldFJlY3QpCiB7CisgICAgR0x1aW50IGdsRm9ybWF0ID0gR0xf
UkdCQTsKICAgICBHTF9DTUQoZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX2lkKSkKLSAg
ICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIHRhcmdldFJlY3QueCgp
LCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgp
LCBHTF9SR0JBLCBHTF9VTlNJR05FRF9CWVRFLCBkYXRhKSkKKyAgICBpZiAoaGFzQmdyYUV4dGVu
c2lvbigpKQorICAgICAgICBnbEZvcm1hdCA9IEdMX0JHUkE7CisgICAgZWxzZSB7CisgICAgICAg
IHN3aXp6bGVCR1JBVG9SR0JBKHN0YXRpY19jYXN0PHVpbnQzMl90Kj4oY29uc3RfY2FzdDx2b2lk
Kj4oZGF0YSkpLCB0YXJnZXRSZWN0LnNpemUoKSk7CisgICAgICAgIGdsRm9ybWF0ID0gR0xfUkdC
QTsKKyAgICB9CisKKyAgICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAs
IHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJn
ZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgZGF0YSkpCiB9CiAK
IHZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyhJbWFnZSogaW1hZ2UsIGNvbnN0
IEludFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIEJpdG1hcFRl
eHR1cmU6OlBpeGVsRm9ybWF0IGZvcm1hdCkKQEAgLTY1OCw4ICs2ODMsMTIgQEAgdm9pZCBCaXRt
YXBUZXh0dXJlR0w6OnVwZGF0ZUNvbnRlbnRzKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYg
dGFyZ2V0UmVjdCwgY28KIAogICAgIGlmIChJbnRTaXplKHF0SW1hZ2Uuc2l6ZSgpKSAhPSBzb3Vy
Y2VSZWN0LnNpemUoKSkKICAgICAgICAgcXRJbWFnZSA9IHF0SW1hZ2UuY29weShzb3VyY2VSZWN0
KTsKLSAgICBpZiAoZm9ybWF0ID09IEJHUkFGb3JtYXQgfHwgZm9ybWF0ID09IEJHUkZvcm1hdCkK
LSAgICAgICAgc3dpenpsZUJHUkFUb1JHQkEocmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KHF0
SW1hZ2UuYml0cygpKSwgcXRJbWFnZS5zaXplKCkpOworICAgIGlmIChmb3JtYXQgPT0gQkdSQUZv
cm1hdCB8fCBmb3JtYXQgPT0gQkdSRm9ybWF0KSB7CisgICAgICAgIGlmIChoYXNCZ3JhRXh0ZW5z
aW9uKCkpCisgICAgICAgICAgICBnbEZvcm1hdCA9IGlzT3BhcXVlKCkgPyBHTF9CR1IgOiBHTF9C
R1JBOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzd2l6emxlQkdSQVRvUkdCQShyZWludGVy
cHJldF9jYXN0PHVpbnQzMl90Kj4ocXRJbWFnZS5iaXRzKCkpLCBxdEltYWdlLnNpemUoKSk7Cisg
ICAgfQogICAgIEdMX0NNRChnbFRleFN1YkltYWdlMkQoR0xfVEVYVFVSRV8yRCwgMCwgdGFyZ2V0
UmVjdC54KCksIHRhcmdldFJlY3QueSgpLCB0YXJnZXRSZWN0LndpZHRoKCksIHRhcmdldFJlY3Qu
aGVpZ2h0KCksIGdsRm9ybWF0LCBHTF9VTlNJR05FRF9CWVRFLCBxdEltYWdlLmNvbnN0Qml0cygp
KSkKIAogI2VsaWYgVVNFKENBSVJPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJCYWNraW5nU3Rv
cmUuY3BwCmluZGV4IDg0OGU3OGEuLmZjYjlmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckJhY2tpbmdTdG9yZS5jcHAKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi12b2lkIFRleHR1cmVNYXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVy
KiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkK
K3ZvaWQgVGV4dHVyZU1hcHBlclRpbGU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRl
eHR1cmVNYXBwZXIsIEltYWdlKiBpbWFnZSwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0LCBCaXRt
YXBUZXh0dXJlOjpQaXhlbEZvcm1hdCBmb3JtYXQpCiB7CiAgICAgSW50UmVjdCB0YXJnZXRSZWN0
ID0gZW5jbG9zaW5nSW50UmVjdChtX3JlY3QpOwogICAgIHRhcmdldFJlY3QuaW50ZXJzZWN0KGRp
cnR5UmVjdCk7CkBAIC00NCw3ICs0NCw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlclRpbGU6OnVwZGF0
ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEltYWdlKiBpbWFnCiAgICAg
ICAgIG1fdGV4dHVyZS0+cmVzZXQodGFyZ2V0UmVjdC5zaXplKCksIC8qIG9wYXF1ZSA9ICovIGZh
bHNlKTsKICAgICB9CiAKLSAgICBtX3RleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLCB0YXJn
ZXRSZWN0LCBzb3VyY2VSZWN0LCBCaXRtYXBUZXh0dXJlOjpSR0JBRm9ybWF0KTsKKyAgICBtX3Rl
eHR1cmUtPnVwZGF0ZUNvbnRlbnRzKGltYWdlLCB0YXJnZXRSZWN0LCBzb3VyY2VSZWN0LCBmb3Jt
YXQpOwogfQogCiB2b2lkIFRleHR1cmVNYXBwZXJUaWxlOjpwYWludChUZXh0dXJlTWFwcGVyKiB0
ZXh0dXJlTWFwcGVyLCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtLCBmbG9h
dCBvcGFjaXR5LCBCaXRtYXBUZXh0dXJlKiBtYXNrKQpAQCAtNTcsNyArNTcsNyBAQCB2b2lkIFRl
eHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRlQ29udGVudHNGcm9tSW1hZ2VJZk5l
ZWRlZChUZXh0dXJlTWFwcAogICAgIGlmICghbV9pbWFnZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgdXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgbV9pbWFnZS5nZXQoKSk7CisgICAgdXBk
YXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgbV9pbWFnZS5nZXQoKSwgQml0bWFwVGV4dHVyZTo6
QkdSQUZvcm1hdCk7CiAgICAgbV9pbWFnZS5jbGVhcigpOwogfQogCkBAIC0xMzMsMTEgKzEzMywx
MSBAQCB2b2lkIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlT3JEZXN0cm95
VGlsZXNJZk5lZWRlZChjb25zdCBGbG9hdFNpegogICAgICAgICBtX3RpbGVzLnJlbW92ZSh0aWxl
SW5kaWNlc1RvUmVtb3ZlW2ldKTsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5n
U3RvcmU6OnVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIEltYWdl
KiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiB0b3RhbFNpemUsIGNvbnN0IEludFJlY3QmIGRpcnR5
UmVjdCkKK3ZvaWQgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50
cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEZsb2F0
U2l6ZSYgdG90YWxTaXplLCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QsIEJpdG1hcFRleHR1cmU6
OlBpeGVsRm9ybWF0IGZvcm1hdCkKIHsKICAgICBjcmVhdGVPckRlc3Ryb3lUaWxlc0lmTmVlZGVk
KHRvdGFsU2l6ZSwgdGV4dHVyZU1hcHBlci0+bWF4VGV4dHVyZVNpemUoKSk7CiAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBtX3RpbGVzLnNpemUoKTsgKytpKQotICAgICAgICBtX3RpbGVzW2ld
LnVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLCBkaXJ0eVJlY3QpOworICAgICAg
ICBtX3RpbGVzW2ldLnVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLCBkaXJ0eVJl
Y3QsIGZvcm1hdCk7CiB9CiAKIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVyZT4gVGV4dHVyZU1hcHBl
clRpbGVkQmFja2luZ1N0b3JlOjp0ZXh0dXJlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckJhY2tpbmdTdG9yZS5oCmluZGV4IGEwODg5M2MuLmUyZWYxYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0
b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJCYWNraW5nU3RvcmUuaApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkZsb2F0
UmVjdC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiUmVmUHRyLmgiCisjaW5jbHVk
ZSAiVGV4dHVyZU1hcHBlci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVy
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDcgKzQ0LDcgQEAgcHVibGljOgogICAg
IGlubGluZSB2b2lkIHNldFRleHR1cmUoQml0bWFwVGV4dHVyZSogdGV4dHVyZSkgeyBtX3RleHR1
cmUgPSB0ZXh0dXJlOyB9CiAgICAgaW5saW5lIHZvaWQgc2V0UmVjdChjb25zdCBGbG9hdFJlY3Qm
IHJlY3QpIHsgbV9yZWN0ID0gcmVjdDsgfQogCi0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0
dXJlTWFwcGVyKiwgSW1hZ2UqLCBjb25zdCBJbnRSZWN0Jik7CisgICAgdm9pZCB1cGRhdGVDb250
ZW50cyhUZXh0dXJlTWFwcGVyKiwgSW1hZ2UqLCBjb25zdCBJbnRSZWN0JiwgQml0bWFwVGV4dHVy
ZTo6UGl4ZWxGb3JtYXQpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChUZXh0dXJlTWFwcGVyKiwg
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCwgQml0bWFwVGV4dHVyZSopOwogICAg
IHZpcnR1YWwgflRleHR1cmVNYXBwZXJUaWxlKCkgeyB9CiAKQEAgLTYzLDggKzY0LDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSgpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBmbG9hdCwgQml0bWFw
VGV4dHVyZSopOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxCaXRtYXBUZXh0dXJlPiB0ZXh0dXJl
KCkgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiwgSW1hZ2Uq
LCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBJbnRSZWN0Jik7Ci0gICAgdm9pZCB1cGRhdGVDb250
ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UpIHsgdXBkYXRl
Q29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UsIGltYWdlLT5zaXplKCksIGltYWdlLT5yZWN0
KCkpOyB9CisgICAgdm9pZCB1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiwgSW1hZ2UqLCBj
b25zdCBGbG9hdFNpemUmLCBjb25zdCBJbnRSZWN0JiwgQml0bWFwVGV4dHVyZTo6UGl4ZWxGb3Jt
YXQpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
ciwgSW1hZ2UqIGltYWdlLCBCaXRtYXBUZXh0dXJlOjpQaXhlbEZvcm1hdCBmb3JtYXQpIHsgdXBk
YXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UsIGltYWdlLT5zaXplKCksIGltYWdlLT5y
ZWN0KCksIGZvcm1hdCk7IH0KICAgICBpbmxpbmUgRmxvYXRSZWN0IHJlY3QoKSBjb25zdCB7IHJl
dHVybiBGbG9hdFJlY3QoRmxvYXRQb2ludDo6emVybygpLCBtX3NpemUpOyB9CiAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlPiBjcmVhdGUoKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgVGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlKTsgfQogICAg
IHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkgeyBtX2ltYWdlID0gaW1hZ2U7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggMjczMjViOC4uY2JlZmY3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIFRleHR1
cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXIqIHRleHR1cmVN
YXBwZXIsIEdyYXBoaQogICAgIGltYWdlID0gaW1hZ2VCdWZmZXItPmNvcHlJbWFnZShDb3B5QmFj
a2luZ1N0b3JlKTsKICNlbmRpZgogCi0gICAgc3RhdGljX2Nhc3Q8VGV4dHVyZU1hcHBlclRpbGVk
QmFja2luZ1N0b3JlKj4obV9iYWNraW5nU3RvcmUuZ2V0KCkpLT51cGRhdGVDb250ZW50cyh0ZXh0
dXJlTWFwcGVyLCBpbWFnZS5nZXQoKSwgbV9zaXplLCBkaXJ0eVJlY3QpOworICAgIHN0YXRpY19j
YXN0PFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSo+KG1fYmFja2luZ1N0b3JlLmdldCgp
KS0+dXBkYXRlQ29udGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UuZ2V0KCksIG1fc2l6ZSwgZGly
dHlSZWN0LCBCaXRtYXBUZXh0dXJlOjpCR1JBRm9ybWF0KTsKIH0KIAogdm9pZCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OnBhaW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkODY2OGU1Li45NmY1MGYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMjUgQEAKIDIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0u
cm9zZW50aGFsQG5va2lhLmNvbT4KIAorICAgICAgICBbVGV4bWFwXSBJbXByb3ZlIHRoZSB3YXkg
d2UgZGVhbCB3aXRoIEJHUkEgZXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03ODgyMgorCisgICAgICAgIEdldCByaWQgb2Ygc3dpenpsaW5n
IGluIHRoZSB3ZWIgcHJvY2Vzcy4gSW5zdGVhZCwgd2UgbW92ZWQgc3dpenpsaW5nIGJhY2sgdG8K
KyAgICAgICAgVGV4dHVyZU1hcHBlckdMLCBhcyB3ZSdyZSBtb3ZpbmcgdG93YXJkcyBhIHNldHVw
IHdoZXJlIHRleHR1cmVzIGFyZSB1cGxvYWRlZAorICAgICAgICBpbiB0aGUgd2ViIHByb2Nlc3Mu
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvcXQvTGF5ZXJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllckJh
Y2tpbmdTdG9yZVRpbGU6OnN3YXBCdWZmZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvTGF5
ZXJUcmVlSG9zdFByb3h5UXQuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVIb3N0UHJv
eHk6OmNyZWF0ZUltYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVGlsZWRCYWNr
aW5nU3RvcmVSZW1vdGVUaWxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGlsZWRCYWNraW5nU3Rv
cmVSZW1vdGVUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
SG9zdFF0OjphZG9wdEltYWdlQmFja2luZ1N0b3JlKToKKworMjAxMi0wMi0xNiAgTm8nYW0gUm9z
ZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgorCiAgICAgICAgIFtRdF1bV0syXSBB
bGxvdyBvcGFxdWUgdGlsZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc4ODA5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMjM2MmM5ZC4uNzJmMTYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTMzMDYsNyArMzMwNiw2IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoKSBjb25zdAogI2lmIFBMQVRG
T1JNKFdJTikKICAgICBwYXJhbWV0ZXJzLm5hdGl2ZVdpbmRvdyA9IG1fcGFnZUNsaWVudC0+bmF0
aXZlV2luZG93KCk7CiAjZW5kaWYKLQogICAgIHJldHVybiBwYXJhbWV0ZXJzOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0b3JlLmNwcAppbmRl
eCBhYTY0YWQyLi42MzYyNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
cXQvTGF5ZXJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9MYXllckJhY2tpbmdTdG9yZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBMYXllckJhY2tp
bmdTdG9yZVRpbGU6OnN3YXBCdWZmZXJzKFdlYkNvcmU6OlRleHR1cmVNYXBwZXIqIHRleHR1cmVN
YXBwZXIpCiAgICAgfQogCiAgICAgdGV4dHVyZS0+cmVzZXQoZW5jbG9zaW5nSW50UmVjdChtX3Nv
dXJjZVJlY3QpLnNpemUoKSwgZmFsc2UpOwotICAgIHRleHR1cmUtPnVwZGF0ZUNvbnRlbnRzKG1f
YmFja0J1ZmZlci0+Y3JlYXRlUUltYWdlKCkuY29uc3RCaXRzKCksIEludFJlY3QoSW50UG9pbnQ6
Onplcm8oKSwgbV9iYWNrQnVmZmVyLT5zaXplKCkpKTsKKyAgICB0ZXh0dXJlLT51cGRhdGVDb250
ZW50cyhtX2JhY2tCdWZmZXItPmNyZWF0ZVFJbWFnZSgpLmNvbnN0Qml0cygpLCBJbnRSZWN0KElu
dFBvaW50Ojp6ZXJvKCksIG1fYmFja0J1ZmZlci0+c2l6ZSgpKSwgQml0bWFwVGV4dHVyZTo6QkdS
QUZvcm1hdCk7CiAgICAgbV9iYWNrQnVmZmVyLmNsZWFyKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9MYXllclRyZWVIb3N0UHJveHlRdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3BwCmluZGV4IDEw
OWFmZmMuLjZlNmFhNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9M
YXllclRyZWVIb3N0UHJveHlRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcApAQCAtMzczLDcgKzM3Myw3IEBAIHZvaWQgTGF5ZXJU
cmVlSG9zdFByb3h5Ojp1cGRhdGVUaWxlKFdlYkxheWVySUQgbGF5ZXJJRCwgaW50IHRpbGVJRCwg
Y29uc3QgSW50UmVjCiB2b2lkIExheWVyVHJlZUhvc3RQcm94eTo6Y3JlYXRlSW1hZ2UoaW50NjRf
dCBpbWFnZUlELCBTaGFyZWFibGVCaXRtYXAqIGJpdG1hcCkKIHsKICAgICBSZWZQdHI8VGV4dHVy
ZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUgPSBUZXh0dXJlTWFwcGVyVGls
ZWRCYWNraW5nU3RvcmU6OmNyZWF0ZSgpOwotICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlQ29udGVu
dHMobV90ZXh0dXJlTWFwcGVyLmdldCgpLCBiaXRtYXAtPmNyZWF0ZUltYWdlKCkuZ2V0KCkpOwor
ICAgIGJhY2tpbmdTdG9yZS0+dXBkYXRlQ29udGVudHMobV90ZXh0dXJlTWFwcGVyLmdldCgpLCBi
aXRtYXAtPmNyZWF0ZUltYWdlKCkuZ2V0KCksIEJpdG1hcFRleHR1cmU6OkJHUkFGb3JtYXQpOwog
ICAgIG1fZGlyZWN0bHlDb21wb3NpdGVkSW1hZ2VzLnNldChpbWFnZUlELCBiYWNraW5nU3RvcmUp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVGls
ZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCmluZGV4IDkzYWZlOTkuLmRk
MDNhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxl
ZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUuY3BwCkBAIC04OCwxMSArODgs
NiBAQCBWZWN0b3I8SW50UmVjdD4gVGlsZWRCYWNraW5nU3RvcmVSZW1vdGVUaWxlOjp1cGRhdGVC
YWNrQnVmZmVyKCkKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBncmFwaGljc0NvbnRleHQo
Yml0bWFwLT5jcmVhdGVHcmFwaGljc0NvbnRleHQoKSk7CiAgICAgZ3JhcGhpY3NDb250ZXh0LT5k
cmF3SW1hZ2VCdWZmZXIobV9sb2NhbEJ1ZmZlci5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwg
SW50UG9pbnQoMCwgMCkpOwogCi0jaWYgUExBVEZPUk0oUVQpCi0gICAgLy8gUXQgdXNlcyBCR1JB
IGludGVyYWxseSwgd2Ugc3dpenpsZSB0byBSR0JBIGZvciBPcGVuR0wuCi0gICAgYml0bWFwLT5z
d2l6emxlUkdCKCk7Ci0jZW5kaWYKLQogICAgIFVwZGF0ZUluZm8gdXBkYXRlSW5mbzsKICAgICB1
cGRhdGVJbmZvLnVwZGF0ZVJlY3RCb3VuZHMgPSBtX3JlY3Q7CiAgICAgdXBkYXRlSW5mby51cGRh
dGVTY2FsZUZhY3RvciA9IG1fdGlsZWRCYWNraW5nU3RvcmUtPmNvbnRlbnRzU2NhbGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9MYXllclRyZWVI
b3N0UXQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJl
ZUhvc3RRdC5jcHAKaW5kZXggMDQxMzc5Zi4uNDhmMGIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAKQEAg
LTMzNCw4ICszMzQsNiBAQCBpbnQ2NF90IExheWVyVHJlZUhvc3RRdDo6YWRvcHRJbWFnZUJhY2tp
bmdTdG9yZShJbWFnZSogaW1hZ2UpCiAgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd0ltYWdl
KGltYWdlLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludDo6emVybygpKTsKICAgICB9CiAK
LSAgICAvLyBRdCB1c2VzIEJHUkEgaW50ZXJuYWxseSwgd2Ugc3dpenpsZSB0byBSR0JBIGZvciBP
cGVuR0wuCi0gICAgYml0bWFwLT5zd2l6emxlUkdCKCk7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUgaGFuZGxlOwogICAgIGJpdG1hcC0+Y3JlYXRlSGFuZGxlKGhhbmRsZSk7CiAgICAgbV93
ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRyZWVIb3N0UHJveHk6OkNyZWF0ZURpcmVjdGx5
Q29tcG9zaXRlZEltYWdlKGtleSwgaGFuZGxlKSk7Cg==
</data>
<flag name="review"
          id="129491"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127390</attachid>
            <date>2012-02-16 09:00:57 -0800</date>
            <delta_ts>2012-02-16 09:48:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>13857</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZjA5Y2ZlLi5jZjRmNzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMg
QEAKIDIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNv
bT4KIAorICAgICAgICBbVGV4bWFwXSBJbXByb3ZlIHRoZSB3YXkgd2UgZGVhbCB3aXRoIEJHUkEg
ZXh0ZW5zaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03ODgyMgorCisgICAgICAgIFN3aXp6bGUgdGhlIFJHQkEgbWFudWFsbHkgb25seSBpbiBPcGVu
R0wgRVMsIGFuZCBvbmx5IGlmIHRoZSBleHRlbnNpb24gaXMgbm90IGF2YWlsYWJsZS4KKyAgICAg
ICAgUGFzcyB0aGUgcGl4ZWwtZm9ybWF0IG9mIHRoZSBpbWFnZXMgd2hlbiB1cGRhdGluZyBUZXh0
dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAgTm8gbmV3IGJlaGF2aW9yLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0V4dGVuc2lvbik6CisgICAgICAg
IChXZWJDb3JlOjpoYXNCZ3JhRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcFRl
eHR1cmVHTDo6dXBkYXRlQ29udGVudHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJvbUltYWdlSWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlclRpbGVkQmFja2luZ1N0b3JlOjp1
cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFRleHR1cmVNYXBwZXJUaWxlKToKKyAg
ICAgICAgKFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6dXBkYXRlQmFja2luZ1N0b3JlKToK
KworMjAxMi0wMi0xNiAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29t
PgorCiAgICAgICAgIFtRdF1bV0syXSBBbGxvdyBvcGFxdWUgdGlsZXMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4ODA5CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZXh0dXJlTWFwcGVyR0wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJH
TC5jcHAKaW5kZXggOWU2OWNlNi4uZTk5MWJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTYxNiw3ICs2MTYsNiBAQCB2b2lkIEJpdG1hcFRleHR1cmVHTDo6cmVzZXQoY29uc3QgSW50U2l6
ZSYgbmV3U2l6ZSwgYm9vbCBvcGFxdWUpCiAgICAgbV9zdXJmYWNlTmVlZHNSZXNldCA9IHRydWU7
CiB9CiAKLSNpZiBQTEFURk9STShRVCkgfHwgKFVTRShDQUlSTykgJiYgZGVmaW5lZChURVhNQVBf
T1BFTkdMX0VTXzIpKQogc3RhdGljIHZvaWQgc3dpenpsZUJHUkFUb1JHQkEodWludDMyX3QqIGRh
dGEsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgp
OwpAQCAtNjI3LDEyICs2MjYsMzggQEAgc3RhdGljIHZvaWQgc3dpenpsZUJHUkFUb1JHQkEodWlu
dDMyX3QqIGRhdGEsIGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgICAgICBwW3hdID0gKChw
W3hdIDw8IDE2KSAmIDB4ZmYwMDAwKSB8ICgocFt4XSA+PiAxNikgJiAweGZmKSB8IChwW3hdICYg
MHhmZjAwZmYwMCk7CiAgICAgfQogfQorCisvLyBGSVhNRTogTW92ZSB0aGlzIHRvIEV4dGVuc2lv
bnMzRCB3aGVuIHdlIG1vdmUgVGV4dHVyZU1hcHBlciB0byB1c2UgR0MzRC4KK3N0YXRpYyBib29s
IGhhc0V4dGVuc2lvbihjb25zdCBjaGFyKiBleHRlbnNpb24pCit7CisgICAgc3RhdGljIFZlY3Rv
cjxTdHJpbmc+IGF2YWlsYWJsZUV4dGVuc2lvbnM7CisgICAgaWYgKCFhdmFpbGFibGVFeHRlbnNp
b25zLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGF2YWlsYWJsZUV4dGVuc2lvbnMuY29udGFp
bnMoZXh0ZW5zaW9uKTsKKyAgICBTdHJpbmcgZXh0ZW5zaW9uc1N0cmluZyhyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihnbEdldFN0cmluZyhHTF9FWFRFTlNJT05TKSkpOworICAgIGV4dGVu
c2lvbnNTdHJpbmcuc3BsaXQoIiAiLCBhdmFpbGFibGVFeHRlbnNpb25zKTsKKyAgICByZXR1cm4g
YXZhaWxhYmxlRXh0ZW5zaW9ucy5jb250YWlucyhleHRlbnNpb24pOworfQorc3RhdGljIGJvb2wg
aGFzQkdSQUV4dGVuc2lvbigpCit7CisjaWYgIWRlZmluZWQoVEVYTUFQX09QRU5HTF9FU18yKQor
ICAgIHJldHVybiB0cnVlOwogI2VuZGlmCisgICAgc3RhdGljIGJvb2wgaGFzQkdSQSA9IGhhc0V4
dGVuc2lvbigiR0xfRVhUX3RleHR1cmVfZm9ybWF0X0JHUkE4ODg4Iik7CisgICAgcmV0dXJuIGhh
c0JHUkE7Cit9CiAKIHZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyhjb25zdCB2
b2lkKiBkYXRhLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0KQogeworICAgIEdMdWludCBnbEZv
cm1hdCA9IEdMX1JHQkE7CiAgICAgR0xfQ01EKGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwg
bV9pZCkpCi0gICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCB0YXJn
ZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0UmVj
dC5oZWlnaHQoKSwgR0xfUkdCQSwgR0xfVU5TSUdORURfQllURSwgZGF0YSkpCisgICAgaWYgKGhh
c0JHUkFFeHRlbnNpb24oKSkKKyAgICAgICAgZ2xGb3JtYXQgPSBHTF9CR1JBOworICAgIGVsc2Ug
eworICAgICAgICBzd2l6emxlQkdSQVRvUkdCQShzdGF0aWNfY2FzdDx1aW50MzJfdCo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGRhdGEpKSwgdGFyZ2V0UmVjdC5zaXplKCkpOworICAgICAgICBnbEZvcm1h
dCA9IEdMX1JHQkE7CisgICAgfQorCisgICAgR0xfQ01EKGdsVGV4U3ViSW1hZ2UyRChHTF9URVhU
VVJFXzJELCAwLCB0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIHRhcmdldFJlY3Qud2lk
dGgoKSwgdGFyZ2V0UmVjdC5oZWlnaHQoKSwgZ2xGb3JtYXQsIEdMX1VOU0lHTkVEX0JZVEUsIGRh
dGEpKQogfQogCiB2b2lkIEJpdG1hcFRleHR1cmVHTDo6dXBkYXRlQ29udGVudHMoSW1hZ2UqIGlt
YWdlLCBjb25zdCBJbnRSZWN0JiB0YXJnZXRSZWN0LCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0
LCBCaXRtYXBUZXh0dXJlOjpQaXhlbEZvcm1hdCBmb3JtYXQpCkBAIC02NTgsOCArNjgzLDEyIEBA
IHZvaWQgQml0bWFwVGV4dHVyZUdMOjp1cGRhdGVDb250ZW50cyhJbWFnZSogaW1hZ2UsIGNvbnN0
IEludFJlY3QmIHRhcmdldFJlY3QsIGNvCiAKICAgICBpZiAoSW50U2l6ZShxdEltYWdlLnNpemUo
KSkgIT0gc291cmNlUmVjdC5zaXplKCkpCiAgICAgICAgIHF0SW1hZ2UgPSBxdEltYWdlLmNvcHko
c291cmNlUmVjdCk7Ci0gICAgaWYgKGZvcm1hdCA9PSBCR1JBRm9ybWF0IHx8IGZvcm1hdCA9PSBC
R1JGb3JtYXQpCi0gICAgICAgIHN3aXp6bGVCR1JBVG9SR0JBKHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dDMyX3QqPihxdEltYWdlLmJpdHMoKSksIHF0SW1hZ2Uuc2l6ZSgpKTsKKyAgICBpZiAoZm9ybWF0
ID09IEJHUkFGb3JtYXQgfHwgZm9ybWF0ID09IEJHUkZvcm1hdCkgeworICAgICAgICBpZiAoaGFz
QkdSQUV4dGVuc2lvbigpKQorICAgICAgICAgICAgZ2xGb3JtYXQgPSBpc09wYXF1ZSgpID8gR0xf
QkdSIDogR0xfQkdSQTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc3dpenpsZUJHUkFUb1JH
QkEocmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+KHF0SW1hZ2UuYml0cygpKSwgcXRJbWFnZS5z
aXplKCkpOworICAgIH0KICAgICBHTF9DTUQoZ2xUZXhTdWJJbWFnZTJEKEdMX1RFWFRVUkVfMkQs
IDAsIHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0
YXJnZXRSZWN0LmhlaWdodCgpLCBnbEZvcm1hdCwgR0xfVU5TSUdORURfQllURSwgcXRJbWFnZS5j
b25zdEJpdHMoKSkpCiAKICNlbGlmIFVTRShDQUlSTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
QmFja2luZ1N0b3JlLmNwcAppbmRleCA4NDhlNzhhLi5mY2I5ZjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJhY2tpbmdT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuY3BwCkBAIC0yNiw3ICsyNiw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotdm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6dXBkYXRlQ29udGVudHMoVGV4
dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRSZWN0JiBk
aXJ0eVJlY3QpCit2b2lkIFRleHR1cmVNYXBwZXJUaWxlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJl
TWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEludFJlY3QmIGRpcnR5
UmVjdCwgQml0bWFwVGV4dHVyZTo6UGl4ZWxGb3JtYXQgZm9ybWF0KQogewogICAgIEludFJlY3Qg
dGFyZ2V0UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QobV9yZWN0KTsKICAgICB0YXJnZXRSZWN0Lmlu
dGVyc2VjdChkaXJ0eVJlY3QpOwpAQCAtNDQsNyArNDQsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJU
aWxlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBJbWFnZSog
aW1hZwogICAgICAgICBtX3RleHR1cmUtPnJlc2V0KHRhcmdldFJlY3Quc2l6ZSgpLCAvKiBvcGFx
dWUgPSAqLyBmYWxzZSk7CiAgICAgfQogCi0gICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhp
bWFnZSwgdGFyZ2V0UmVjdCwgc291cmNlUmVjdCwgQml0bWFwVGV4dHVyZTo6UkdCQUZvcm1hdCk7
CisgICAgbV90ZXh0dXJlLT51cGRhdGVDb250ZW50cyhpbWFnZSwgdGFyZ2V0UmVjdCwgc291cmNl
UmVjdCwgZm9ybWF0KTsKIH0KIAogdm9pZCBUZXh0dXJlTWFwcGVyVGlsZTo6cGFpbnQoVGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHRyYW5z
Zm9ybSwgZmxvYXQgb3BhY2l0eSwgQml0bWFwVGV4dHVyZSogbWFzaykKQEAgLTU3LDcgKzU3LDcg
QEAgdm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OnVwZGF0ZUNvbnRlbnRzRnJv
bUltYWdlSWZOZWVkZWQoVGV4dHVyZU1hcHAKICAgICBpZiAoIW1faW1hZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCkp
OworICAgIHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIG1faW1hZ2UuZ2V0KCksIEJpdG1h
cFRleHR1cmU6OkJHUkFGb3JtYXQpOwogICAgIG1faW1hZ2UuY2xlYXIoKTsKIH0KIApAQCAtMTMz
LDExICsxMzMsMTEgQEAgdm9pZCBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0
ZU9yRGVzdHJveVRpbGVzSWZOZWVkZWQoY29uc3QgRmxvYXRTaXoKICAgICAgICAgbV90aWxlcy5y
ZW1vdmUodGlsZUluZGljZXNUb1JlbW92ZVtpXSk7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlclRp
bGVkQmFja2luZ1N0b3JlOjp1cGRhdGVDb250ZW50cyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyLCBJbWFnZSogaW1hZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgdG90YWxTaXplLCBjb25zdCBJbnRS
ZWN0JiBkaXJ0eVJlY3QpCit2b2lkIFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dXBk
YXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdlLCBj
b25zdCBGbG9hdFNpemUmIHRvdGFsU2l6ZSwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0LCBCaXRt
YXBUZXh0dXJlOjpQaXhlbEZvcm1hdCBmb3JtYXQpCiB7CiAgICAgY3JlYXRlT3JEZXN0cm95VGls
ZXNJZk5lZWRlZCh0b3RhbFNpemUsIHRleHR1cmVNYXBwZXItPm1heFRleHR1cmVTaXplKCkpOwog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV90aWxlcy5zaXplKCk7ICsraSkKLSAgICAgICAg
bV90aWxlc1tpXS51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFnZSwgZGlydHlSZWN0
KTsKKyAgICAgICAgbV90aWxlc1tpXS51cGRhdGVDb250ZW50cyh0ZXh0dXJlTWFwcGVyLCBpbWFn
ZSwgZGlydHlSZWN0LCBmb3JtYXQpOwogfQogCiBQYXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRl
eHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6dGV4dHVyZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckJh
Y2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJCYWNraW5nU3RvcmUuaAppbmRleCBhMDg4OTNjLi5lMmVmMWE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlLmgKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs
dWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlJlZlB0ci5o
IgorI2luY2x1ZGUgIlRleHR1cmVNYXBwZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Myw3ICs0NCw3IEBAIHB1
YmxpYzoKICAgICBpbmxpbmUgdm9pZCBzZXRUZXh0dXJlKEJpdG1hcFRleHR1cmUqIHRleHR1cmUp
IHsgbV90ZXh0dXJlID0gdGV4dHVyZTsgfQogICAgIGlubGluZSB2b2lkIHNldFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KSB7IG1fcmVjdCA9IHJlY3Q7IH0KIAotICAgIHZvaWQgdXBkYXRlQ29u
dGVudHMoVGV4dHVyZU1hcHBlciosIEltYWdlKiwgY29uc3QgSW50UmVjdCYpOworICAgIHZvaWQg
dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciosIEltYWdlKiwgY29uc3QgSW50UmVjdCYsIEJp
dG1hcFRleHR1cmU6OlBpeGVsRm9ybWF0KTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoVGV4dHVy
ZU1hcHBlciosIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxvYXQsIEJpdG1hcFRleHR1
cmUqKTsKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyVGlsZSgpIHsgfQogCkBAIC02Myw4ICs2
NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3Rv
cmUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRUb1RleHR1cmVNYXBwZXIoVGV4dHVyZU1h
cHBlciosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiwgZmxv
YXQsIEJpdG1hcFRleHR1cmUqKTsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Qml0bWFwVGV4dHVy
ZT4gdGV4dHVyZSgpIGNvbnN0OwotICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBl
ciosIEltYWdlKiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW50UmVjdCYpOwotICAgIHZvaWQg
dXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgSW1hZ2UqIGltYWdl
KSB7IHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLCBpbWFnZS0+c2l6ZSgpLCBp
bWFnZS0+cmVjdCgpKTsgfQorICAgIHZvaWQgdXBkYXRlQ29udGVudHMoVGV4dHVyZU1hcHBlcios
IEltYWdlKiwgY29uc3QgRmxvYXRTaXplJiwgY29uc3QgSW50UmVjdCYsIEJpdG1hcFRleHR1cmU6
OlBpeGVsRm9ybWF0KTsKKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzKFRleHR1cmVNYXBwZXIqIHRl
eHR1cmVNYXBwZXIsIEltYWdlKiBpbWFnZSwgQml0bWFwVGV4dHVyZTo6UGl4ZWxGb3JtYXQgZm9y
bWF0KSB7IHVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLCBpbWFnZS0+c2l6ZSgp
LCBpbWFnZS0+cmVjdCgpLCBmb3JtYXQpOyB9CiAgICAgaW5saW5lIEZsb2F0UmVjdCByZWN0KCkg
Y29uc3QgeyByZXR1cm4gRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgbV9zaXplKTsgfQog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZT4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9y
ZSk7IH0KICAgICB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpIHsgbV9pbWFn
ZSA9IGltYWdlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDI3MzI1YjguLmNi
ZWZmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAg
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZShUZXh0dXJlTWFwcGVy
KiB0ZXh0dXJlTWFwcGVyLCBHcmFwaGkKICAgICBpbWFnZSA9IGltYWdlQnVmZmVyLT5jb3B5SW1h
Z2UoQ29weUJhY2tpbmdTdG9yZSk7CiAjZW5kaWYKIAotICAgIHN0YXRpY19jYXN0PFRleHR1cmVN
YXBwZXJUaWxlZEJhY2tpbmdTdG9yZSo+KG1fYmFja2luZ1N0b3JlLmdldCgpKS0+dXBkYXRlQ29u
dGVudHModGV4dHVyZU1hcHBlciwgaW1hZ2UuZ2V0KCksIG1fc2l6ZSwgZGlydHlSZWN0KTsKKyAg
ICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmUqPihtX2JhY2tpbmdT
dG9yZS5nZXQoKSktPnVwZGF0ZUNvbnRlbnRzKHRleHR1cmVNYXBwZXIsIGltYWdlLmdldCgpLCBt
X3NpemUsIGRpcnR5UmVjdCwgQml0bWFwVGV4dHVyZTo6QkdSQUZvcm1hdCk7CiB9CiAKIHZvaWQg
VGV4dHVyZU1hcHBlckxheWVyOjpwYWludCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDg2NjhlNS4uZTNlMzVj
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI1IEBACiAyMDEyLTAyLTE2ICBObydhbSBSb3NlbnRo
YWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CiAKKyAgICAgICAgW1RleG1hcF0gSW1wcm92
ZSB0aGUgd2F5IHdlIGRlYWwgd2l0aCBCR1JBIGV4dGVuc2lvbgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzg4MjIKKworICAgICAgICBHZXQgcmlkIG9m
IHN3aXp6bGluZyBpbiB0aGUgd2ViIHByb2Nlc3MuIEluc3RlYWQsIHdlIG1vdmVkIHN3aXp6bGlu
ZyBiYWNrIHRvCisgICAgICAgIFRleHR1cmVNYXBwZXJHTCwgYXMgd2UncmUgbW92aW5nIHRvd2Fy
ZHMgYSBzZXR1cCB3aGVyZSB0ZXh0dXJlcyBhcmUgdXBsb2FkZWQKKyAgICAgICAgaW4gdGhlIHdl
YiBwcm9jZXNzLgorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFu
c2VuLgorCisgICAgICAgICogVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJCYWNraW5nU3RvcmVUaWxlOjpzd2FwQnVmZmVycyk6CisgICAg
ICAgICogVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlSG9zdFByb3h5OjpjcmVhdGVJbWFnZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZTo6dXBkYXRlQmFja0J1ZmZlcik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RRdDo6YWRvcHRJbWFnZUJhY2tpbmdTdG9yZSk6CisK
KzIwMTItMDItMTYgIE5vJ2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4K
KwogICAgICAgICBbUXRdW1dLMl0gQWxsb3cgb3BhcXVlIHRpbGVzCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODgwOQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDIzNjJjOWQuLjcyZjE2MGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0zMzA2LDcgKzMzMDYsNiBA
QCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0
ZXJzKCkgY29uc3QKICNpZiBQTEFURk9STShXSU4pCiAgICAgcGFyYW1ldGVycy5uYXRpdmVXaW5k
b3cgPSBtX3BhZ2VDbGllbnQtPm5hdGl2ZVdpbmRvdygpOwogI2VuZGlmCi0KICAgICByZXR1cm4g
cGFyYW1ldGVyczsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0
L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9M
YXllclRyZWVIb3N0UHJveHlRdC5jcHAKaW5kZXggMTA5YWZmYy4uNmU2YWE2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyVHJlZUhvc3RQcm94eVF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvTGF5ZXJUcmVlSG9zdFByb3h5UXQuY3Bw
CkBAIC0zNzMsNyArMzczLDcgQEAgdm9pZCBMYXllclRyZWVIb3N0UHJveHk6OnVwZGF0ZVRpbGUo
V2ViTGF5ZXJJRCBsYXllcklELCBpbnQgdGlsZUlELCBjb25zdCBJbnRSZWMKIHZvaWQgTGF5ZXJU
cmVlSG9zdFByb3h5OjpjcmVhdGVJbWFnZShpbnQ2NF90IGltYWdlSUQsIFNoYXJlYWJsZUJpdG1h
cCogYml0bWFwKQogewogICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU+
IGJhY2tpbmdTdG9yZSA9IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7
Ci0gICAgYmFja2luZ1N0b3JlLT51cGRhdGVDb250ZW50cyhtX3RleHR1cmVNYXBwZXIuZ2V0KCks
IGJpdG1hcC0+Y3JlYXRlSW1hZ2UoKS5nZXQoKSk7CisgICAgYmFja2luZ1N0b3JlLT51cGRhdGVD
b250ZW50cyhtX3RleHR1cmVNYXBwZXIuZ2V0KCksIGJpdG1hcC0+Y3JlYXRlSW1hZ2UoKS5nZXQo
KSwgQml0bWFwVGV4dHVyZTo6QkdSQUZvcm1hdCk7CiAgICAgbV9kaXJlY3RseUNvbXBvc2l0ZWRJ
bWFnZXMuc2V0KGltYWdlSUQsIGJhY2tpbmdTdG9yZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9UaWxlZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGUu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3Jl
UmVtb3RlVGlsZS5jcHAKaW5kZXggOTNhZmU5OS4uZGQwM2EwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0b3JlUmVtb3RlVGlsZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1RpbGVkQmFja2luZ1N0
b3JlUmVtb3RlVGlsZS5jcHAKQEAgLTg4LDExICs4OCw2IEBAIFZlY3RvcjxJbnRSZWN0PiBUaWxl
ZEJhY2tpbmdTdG9yZVJlbW90ZVRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIoKQogICAgIE93blB0cjxH
cmFwaGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4dChiaXRtYXAtPmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dCgpKTsKICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdJbWFnZUJ1ZmZlcihtX2xvY2FsQnVm
ZmVyLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCBJbnRQb2ludCgwLCAwKSk7CiAKLSNpZiBQ
TEFURk9STShRVCkKLSAgICAvLyBRdCB1c2VzIEJHUkEgaW50ZXJhbGx5LCB3ZSBzd2l6emxlIHRv
IFJHQkEgZm9yIE9wZW5HTC4KLSAgICBiaXRtYXAtPnN3aXp6bGVSR0IoKTsKLSNlbmRpZgotCiAg
ICAgVXBkYXRlSW5mbyB1cGRhdGVJbmZvOwogICAgIHVwZGF0ZUluZm8udXBkYXRlUmVjdEJvdW5k
cyA9IG1fcmVjdDsKICAgICB1cGRhdGVJbmZvLnVwZGF0ZVNjYWxlRmFjdG9yID0gbV90aWxlZEJh
Y2tpbmdTdG9yZS0+Y29udGVudHNTY2FsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3F0L0xheWVyVHJlZUhvc3RRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcAppbmRleCAwNDEzNzlm
Li40OGYwYjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
cXQvTGF5ZXJUcmVlSG9zdFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvcXQvTGF5ZXJUcmVlSG9zdFF0LmNwcApAQCAtMzM0LDggKzMzNCw2IEBAIGludDY0X3Qg
TGF5ZXJUcmVlSG9zdFF0OjphZG9wdEltYWdlQmFja2luZ1N0b3JlKEltYWdlKiBpbWFnZSkKICAg
ICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1hZ2UoaW1hZ2UsIENvbG9yU3BhY2VEZXZpY2VS
R0IsIEludFBvaW50Ojp6ZXJvKCkpOwogICAgIH0KIAotICAgIC8vIFF0IHVzZXMgQkdSQSBpbnRl
cm5hbGx5LCB3ZSBzd2l6emxlIHRvIFJHQkEgZm9yIE9wZW5HTC4KLSAgICBiaXRtYXAtPnN3aXp6
bGVSR0IoKTsKICAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CiAgICAgYml0bWFw
LT5jcmVhdGVIYW5kbGUoaGFuZGxlKTsKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6Okxh
eWVyVHJlZUhvc3RQcm94eTo6Q3JlYXRlRGlyZWN0bHlDb21wb3NpdGVkSW1hZ2Uoa2V5LCBoYW5k
bGUpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>