<?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>46262</bug_id>
          
          <creation_ts>2010-09-22 07:47:55 -0700</creation_ts>
          <short_desc>[Qt] [WebKit2] Workarounds for the flash plugin</short_desc>
          <delta_ts>2010-10-25 09:41:34 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>48127</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adawit</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>282928</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-22 07:47:55 -0700</bug_when>
    <thetext>My plan is to organizing the static functions from PluginPackageQt.cpp into a class with static methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283585</commentid>
    <comment_count>1</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-23 05:07:30 -0700</bug_when>
    <thetext>As I went forward with the implementation I have decided to put the refactoring and the changes that needs to be done in WebKit2 in one patch. That is why I changed the bug title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283586</commentid>
    <comment_count>2</comment_count>
      <attachid>68510</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-23 05:52:34 -0700</bug_when>
    <thetext>Created attachment 68510
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283587</commentid>
    <comment_count>3</comment_count>
      <attachid>68510</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-23 05:55:53 -0700</bug_when>
    <thetext>Comment on attachment 68510
proposed patch

Maybe call the class FlashPluginQuirks ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284332</commentid>
    <comment_count>4</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-24 05:57:42 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 68510 [details])
&gt; Maybe call the class FlashPluginQuirks ?

We use the term quirks in a different meaning: handling less stupid flavour of some plugins. FlashPluginHacks?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284333</commentid>
    <comment_count>5</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-24 06:01:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 68510 [details] [details])
&gt; &gt; Maybe call the class FlashPluginQuirks ?
&gt; 
&gt; We use the term quirks in a different meaning: handling less stupid flavour of some plugins. FlashPluginHacks?

I just thought Workarounds to be a bit long :-) what about FlashPluginFixes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284334</commentid>
    <comment_count>6</comment_count>
      <attachid>68510</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-09-24 06:09:25 -0700</bug_when>
    <thetext>Comment on attachment 68510
proposed patch

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

&gt; WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:447
&gt; +#elif PLATFORM(QT)

Won&apos;t this be the same for GTK+ etc? Would it break anything having this enabled for all ports?

&gt; WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h:66
&gt; +#if PLATFORM(QT)
&gt; +    WebCore::PluginQuirkSet quirks() const { return m_quirks; }
&gt; +#endif

Shouldn&apos;t all platforms support plugin quirks?

&gt; WebKit2/WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:52
&gt; +    } else if (FlashPluginWorkarounds::isFlashPlugin(pluginPath)) {
&gt; +        // We have already loaded the plugin but initializeGTK
&gt; +        // needs a QLibrary for resolving gtk_init.
&gt; +        QLibrary flashPlugin(pluginPath);
&gt; +        ASSERT(flashPlugin.load());
&gt; +        FlashPluginWorkarounds::initializeGTK(&amp;flashPlugin);

So are we loading it twice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290785</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-10-06 20:53:13 -0700</bug_when>
    <thetext>Balazs: ping</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292315</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-10-10 10:00:58 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Balazs: ping

Needs more investigation. I think there is some confusion in the old code paths
(and comments) because not only the flash plugin needs the toolkit value workaround but all npwrappers. In the last 2 weeks I had no time for working on this, hopefully I can finish the patch in the next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292317</commentid>
    <comment_count>9</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-10-10 10:04:35 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 68510 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68510&amp;action=review
&gt; 
&gt; &gt; WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:447
&gt; &gt; +#elif PLATFORM(QT)
&gt; 
&gt; Won&apos;t this be the same for GTK+ etc? Would it break anything having this enabled for all ports?

Right, it should be PLATFORM(UNIX)

&gt; 
&gt; &gt; WebKit2/WebProcess/Plugins/Netscape/NetscapePlugin.h:66
&gt; &gt; +#if PLATFORM(QT)
&gt; &gt; +    WebCore::PluginQuirkSet quirks() const { return m_quirks; }
&gt; &gt; +#endif
&gt; 
&gt; Shouldn&apos;t all platforms support plugin quirks?

Likely. Will be added as common member in the next patch.

&gt; 
&gt; &gt; WebKit2/WebProcess/Plugins/Netscape/qt/NetscapePluginQt.cpp:52
&gt; &gt; +    } else if (FlashPluginWorkarounds::isFlashPlugin(pluginPath)) {
&gt; &gt; +        // We have already loaded the plugin but initializeGTK
&gt; &gt; +        // needs a QLibrary for resolving gtk_init.
&gt; &gt; +        QLibrary flashPlugin(pluginPath);
&gt; &gt; +        ASSERT(flashPlugin.load());
&gt; &gt; +        FlashPluginWorkarounds::initializeGTK(&amp;flashPlugin);
&gt; 
&gt; So are we loading it twice?

I am almost sure about QLibrary does not load the same plugin twice (if it is even possible) but returns true if it is already loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292318</commentid>
    <comment_count>10</comment_count>
      <attachid>68510</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-10-10 10:05:18 -0700</bug_when>
    <thetext>Comment on attachment 68510
proposed patch

Needs more investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298917</commentid>
    <comment_count>11</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-10-25 09:41:34 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 48127 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68510</attachid>
            <date>2010-09-23 05:52:34 -0700</date>
            <delta_ts>2010-10-10 10:05:17 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>land_flash_workarounds.diff</filename>
            <type>text/plain</type>
            <size>17117</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Zjg3NWMyNS4uZDJjZDEwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wOS0yMyAgQmFsYXpzIEtlbGVt
ZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBbV2ViS2l0Ml0gV29ya2Fyb3VuZHMgZm9yIHRoZSBmbGFz
aCBwbHVnaW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQ2MjYyCisgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFsaXR5IHNvIG5vIG5ldyB0ZXN0cy4KKwor
ICAgICAgICBGYWN0b3JpbmcgdGhlIGxvZ2ljIGluIFBsdWdpblBhY2thZ2VRdC5jcHAKKyAgICAg
ICAgdGhhdCBkZWFscyB3aXRoIHdvcmthcm91bmRpbmcgcHJvYmxlbXMgd2l0aCB0aGUgZmxhc2gK
KyAgICAgICAgcGx1Z2luIGludG8gYSBuZXcgY2xhc3Mgd2l0aCBzdGF0aWMgbWV0aG9kcy4KKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBwbHVnaW5zL3F0L0ZsYXNoUGx1Z2luV29y
a2Fyb3VuZHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZsYXNoUGx1Z2luV29ya2Fy
b3VuZHM6OmlzRmxhc2hQbHVnaW4pOgorICAgICAgICAoV2ViQ29yZTo6Rmxhc2hQbHVnaW5Xb3Jr
YXJvdW5kczo6aXNGbGFzaFBsdWdpbk5QV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpGbGFz
aFBsdWdpbldvcmthcm91bmRzOjppbml0aWFsaXplR1RLKToKKyAgICAgICAgKiBwbHVnaW5zL3F0
L0ZsYXNoUGx1Z2luV29ya2Fyb3VuZHMuaDogQWRkZWQuCisgICAgICAgICogcGx1Z2lucy9xdC9Q
bHVnaW5QYWNrYWdlUXQuY3BwOiBSZW1vdmVkIHRoZSBzdGF0aWMgZnVuY3Rpb24gd2UgdXNlZCB0
bworICAgICAgICBvdmVycmlkZSBOUE5fR2V0VmFsdWUgZm9yIHRoZSBucHdyYXBwZXIuIFRoYXQg
d2FzIHJlZHVuZGFudCBzaW5jZSB3ZSBjYW4KKyAgICAgICAgYWNoaWV2ZSB0aGUgc2FtZSBlZmZl
Y3QgYnkgc2V0dGluZyB0aGUgYXBwcm9wcmlhdGUgcXVpcmsuCisgICAgICAgIChXZWJDb3JlOjpQ
bHVnaW5QYWNrYWdlOjpsb2FkKTogU2V0IHRoZSBQbHVnaW5RdWlya1JlcXVpcmVzR3RrVG9vbEtp
dAorICAgICAgICBxdWlyayBpZiB3ZSBhcmUgZGVhbGluZyB3aXRoIHRoZSBucHdyYXBwZXIuCisK
IDIwMTAtMDktMTYgIEJhbGF6cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggOWE5YTNlNS4uYjM1NWRhYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBA
IC0yNzA2LDEwICsyNzA2LDEyIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJPTEpIHsKICAgICAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBNT1pfUExBVEZP
Uk1fTUFFTU89NQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBTT1VSQ0VTICs9
IFwKKyAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9GbGFzaFBsdWdpbldvcmthcm91bmRz
LmNwcCBcCiAgICAgICAgICAgICAgICAgICAgIHBsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQu
Y3BwIFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5QYWNrYWdlUXQuY3Bw
IFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCiAgICAg
ICAgICAgICAgICAgSEVBREVSUyArPSBcCisgICAgICAgICAgICAgICAgICAgIHBsdWdpbnMvcXQv
Rmxhc2hQbHVnaW5Xb3JrYXJvdW5kcy5oIFwKICAgICAgICAgICAgICAgICAgICAgcGx1Z2lucy9x
dC9QbHVnaW5Db250YWluZXJRdC5oCiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklY
CiAgICAgICAgICAgICAgICAgREVGSU5FUyArPSBFTkFCTEVfTkVUU0NBUEVfUExVR0lOX01FVEFE
QVRBX0NBQ0hFPTEKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9GbGFzaFBsdWdpbldv
cmthcm91bmRzLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9GbGFzaFBsdWdpbldvcmthcm91bmRz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wN2I4ZGJjCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3F0L0ZsYXNoUGx1Z2luV29ya2Fyb3VuZHMuY3Bw
CkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJv
cmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZl
cnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRmxhc2hQbHVnaW5Xb3JrYXJvdW5kcy5oIgorCisjaW5jbHVk
ZSA8UUxpYnJhcnk+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBGbGFzaFBsdWdpbldv
cmthcm91bmRzOjppc0ZsYXNoUGx1Z2luKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCkKK3sKKyAg
ICByZXR1cm4gcGx1Z2luUGF0aC5jb250YWlucygiZmxhc2hwbGF5ZXIiKTsKK30KKworYm9vbCBG
bGFzaFBsdWdpbldvcmthcm91bmRzOjppc0ZsYXNoUGx1Z2luTlBXcmFwcGVyKGNvbnN0IFN0cmlu
ZyYgcGx1Z2luUGF0aCkKK3sKKyAgICByZXR1cm4gcGx1Z2luUGF0aC5jb250YWlucygibnB3cmFw
cGVyLiIpOworfQorCit2b2lkIEZsYXNoUGx1Z2luV29ya2Fyb3VuZHM6OmluaXRpYWxpemVHVEso
UUxpYnJhcnkqIHBsdWdpbk1vZHVsZSkKK3sKKyAgICAvLyBFbnN1cmVzIG1pc3NpbmcgR3RrIGlu
aXRpYWxpemF0aW9uIGluIHNvbWUgdmVyc2lvbnMgb2YgQWRvYmUncyBmbGFzaCBwbGF5ZXIKKyAg
ICAvLyBwbHVnaW4gZG8gbm90IGNhdXNlIGNyYXNoZXMuIFNlZSBCUiMgNDA1NjcsIDQ0MzI0LCBh
bmQgNDQ0MDUgZm9yIGRldGFpbHMuCisgICAgaWYgKHBsdWdpbk1vZHVsZSkgeworICAgICAgICB0
eXBlZGVmIHZvaWQgKigqZ3RrX2luaXRfcHRyKShpbnQqLCBjaGFyKioqKTsKKyAgICAgICAgZ3Rr
X2luaXRfcHRyIGd0a0luaXQgPSAoZ3RrX2luaXRfcHRyKXBsdWdpbk1vZHVsZS0+cmVzb2x2ZSgi
Z3RrX2luaXQiKTsKKyAgICAgICAgaWYgKGd0a0luaXQpIHsKKyAgICAgICAgICAgIC8vIFByZXZl
bnQgZ3RrX2luaXQoKSBmcm9tIHJlcGxhY2luZyB0aGUgWCBlcnJvciBoYW5kbGVycywgc2luY2Ug
dGhlIEd0aworICAgICAgICAgICAgLy8gaGFuZGxlcnMgYWJvcnQgd2hlbiB0aGV5IHJlY2VpdmUg
YW4gWCBlcnJvciwgdGh1cyBraWxsaW5nIHRoZSB2aWV3ZXIuCisjaWZkZWYgUV9XU19YMTEKKyAg
ICAgICAgICAgIGludCAoKm9sZF9lcnJvcl9oYW5kbGVyKShEaXNwbGF5KiwgWEVycm9yRXZlbnQq
KSA9IFhTZXRFcnJvckhhbmRsZXIoMCk7CisgICAgICAgICAgICBpbnQgKCpvbGRfaW9fZXJyb3Jf
aGFuZGxlcikoRGlzcGxheSopID0gWFNldElPRXJyb3JIYW5kbGVyKDApOworI2VuZGlmCisgICAg
ICAgICAgICBndGtJbml0KDAsIDApOworI2lmZGVmIFFfV1NfWDExCisgICAgICAgICAgICBYU2V0
RXJyb3JIYW5kbGVyKG9sZF9lcnJvcl9oYW5kbGVyKTsKKyAgICAgICAgICAgIFhTZXRJT0Vycm9y
SGFuZGxlcihvbGRfaW9fZXJyb3JfaGFuZGxlcik7CisjZW5kaWYKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKworICAgIFFMaWJyYXJ5IGxpYnJhcnkoImxpYmd0ay14MTEt
Mi4wLnNvLjAiKTsKKyAgICBpZiAobGlicmFyeS5sb2FkKCkpIHsKKyAgICAgICAgdHlwZWRlZiB2
b2lkICooKmd0a19pbml0X2NoZWNrX3B0cikoaW50KiwgY2hhcioqKik7CisgICAgICAgIGd0a19p
bml0X2NoZWNrX3B0ciBndGtJbml0Q2hlY2sgPSAoZ3RrX2luaXRfY2hlY2tfcHRyKWxpYnJhcnku
cmVzb2x2ZSgiZ3RrX2luaXRfY2hlY2siKTsKKyAgICAgICAgLy8gTk9URTogV2UncmUgdXNpbmcg
Z3RrX2luaXRfY2hlY2soKSBzaW5jZSBndGtfaW5pdCgpIGNhbGxzIGV4aXQoKSBvbiBmYWlsdXJl
LgorICAgICAgICBpZiAoZ3RrSW5pdENoZWNrKQorICAgICAgICAgICAgKHZvaWQpIGd0a0luaXRD
aGVjaygwLCAwKTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9GbGFzaFBsdWdpbldvcmthcm91bmRzLmggYi9XZWJDb3Jl
L3BsdWdpbnMvcXQvRmxhc2hQbHVnaW5Xb3JrYXJvdW5kcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjc2ZGU0YTcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsdWdp
bnMvcXQvRmxhc2hQbHVnaW5Xb3JrYXJvdW5kcy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZsYXNoUGx1Z2luV29ya2Fyb3VuZHNfaAorI2Rl
ZmluZSBGbGFzaFBsdWdpbldvcmthcm91bmRzX2gKKworI2luY2x1ZGUgIm5wcnVudGltZV9pbnRl
cm5hbC5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitRVF9CRUdJTl9OQU1F
U1BBQ0UKK2NsYXNzIFFMaWJyYXJ5OworUVRfRU5EX05BTUVTUEFDRQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEZsYXNoUGx1Z2luV29ya2Fyb3VuZHMgeworcHVibGljOgorICAgIHN0
YXRpYyBib29sIGlzRmxhc2hQbHVnaW5OUFdyYXBwZXIoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRo
KTsKKyAgICBzdGF0aWMgYm9vbCBpc0ZsYXNoUGx1Z2luKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0
aCk7CisKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplR1RLKFFMaWJyYXJ5KiBwbHVnaW5Nb2R1
bGUgPSAwKTsKK307CisKK30KKworI2VuZGlmIC8vIEZsYXNoUGx1Z2luV29ya2Fyb3VuZHNfaApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblBhY2thZ2VRdC5jcHAgYi9XZWJD
b3JlL3BsdWdpbnMvcXQvUGx1Z2luUGFja2FnZVF0LmNwcAppbmRleCBlNzA1OGM3Li5hN2M4MzNm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luUGFja2FnZVF0LmNwcAorKysg
Yi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luUGFja2FnZVF0LmNwcApAQCAtMSw2ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
Nyw2ICsyOCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGx1Z2luUGFja2Fn
ZS5oIgogCisjaW5jbHVkZSAiRmxhc2hQbHVnaW5Xb3JrYXJvdW5kcy5oIgogI2luY2x1ZGUgIk1J
TUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgogI2luY2x1ZGUg
IlBsdWdpbkRhdGFiYXNlLmgiCkBAIC04OCw0OSArOTAsNiBAQCB2b2lkIFBsdWdpblBhY2thZ2U6
OnNldE1JTUVEZXNjcmlwdGlvbihjb25zdCBTdHJpbmcmIG1pbWVEZXNjcmlwdGlvbikKICAgICB9
CiB9CiAKLXN0YXRpYyBOUEVycm9yIHN0YXRpY1BsdWdpblF1aXJrUmVxdWlyZXNHdGtUb29sS2l0
X05QTl9HZXRWYWx1ZShOUFAgaW5zdGFuY2UsIE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSkKLXsKLSAgICBpZiAodmFyaWFibGUgPT0gTlBOVlRvb2xraXQpIHsKLSAgICAgICAgKnN0
YXRpY19jYXN0PHVpbnQzMl90Kj4odmFsdWUpID0gMjsKLSAgICAgICAgcmV0dXJuIE5QRVJSX05P
X0VSUk9SOwotICAgIH0KLQotICAgIHJldHVybiBOUE5fR2V0VmFsdWUoaW5zdGFuY2UsIHZhcmlh
YmxlLCB2YWx1ZSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGluaXRpYWxpemVHdGsoUUxpYnJhcnkqIG1v
ZHVsZSA9IDApCi17Ci0gICAgLy8gRW5zdXJlcyBtaXNzaW5nIEd0ayBpbml0aWFsaXphdGlvbiBp
biBzb21lIHZlcnNpb25zIG9mIEFkb2JlJ3MgZmxhc2ggcGxheWVyCi0gICAgLy8gcGx1Z2luIGRv
IG5vdCBjYXVzZSBjcmFzaGVzLiBTZWUgQlIjIDQwNTY3LCA0NDMyNCwgYW5kIDQ0NDA1IGZvciBk
ZXRhaWxzLiAgCi0gICAgaWYgKG1vZHVsZSkgewotICAgICAgICB0eXBlZGVmIHZvaWQgKigqZ3Rr
X2luaXRfcHRyKShpbnQqLCBjaGFyKioqKTsKLSAgICAgICAgZ3RrX2luaXRfcHRyIGd0a0luaXQg
PSAoZ3RrX2luaXRfcHRyKW1vZHVsZS0+cmVzb2x2ZSgiZ3RrX2luaXQiKTsKLSAgICAgICAgaWYg
KGd0a0luaXQpIHsKLSAgICAgICAgICAgIC8vIFByZXZlbnQgZ3RrX2luaXQoKSBmcm9tIHJlcGxh
Y2luZyB0aGUgWCBlcnJvciBoYW5kbGVycywgc2luY2UgdGhlIEd0awotICAgICAgICAgICAgLy8g
aGFuZGxlcnMgYWJvcnQgd2hlbiB0aGV5IHJlY2VpdmUgYW4gWCBlcnJvciwgdGh1cyBraWxsaW5n
IHRoZSB2aWV3ZXIuCi0jaWZkZWYgUV9XU19YMTEKLSAgICAgICAgICAgIGludCAoKm9sZF9lcnJv
cl9oYW5kbGVyKShEaXNwbGF5KiwgWEVycm9yRXZlbnQqKSA9IFhTZXRFcnJvckhhbmRsZXIoMCk7
Ci0gICAgICAgICAgICBpbnQgKCpvbGRfaW9fZXJyb3JfaGFuZGxlcikoRGlzcGxheSopID0gWFNl
dElPRXJyb3JIYW5kbGVyKDApOwotI2VuZGlmCi0gICAgICAgICAgICBndGtJbml0KDAsIDApOwot
I2lmZGVmIFFfV1NfWDExCi0gICAgICAgICAgICBYU2V0RXJyb3JIYW5kbGVyKG9sZF9lcnJvcl9o
YW5kbGVyKTsKLSAgICAgICAgICAgIFhTZXRJT0Vycm9ySGFuZGxlcihvbGRfaW9fZXJyb3JfaGFu
ZGxlcik7Ci0jZW5kaWYKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIFFMaWJyYXJ5IGxpYnJhcnkoImxpYmd0ay14MTEtMi4wLnNvLjAiKTsKLSAgICBpZiAobGli
cmFyeS5sb2FkKCkpIHsKLSAgICAgICAgdHlwZWRlZiB2b2lkICooKmd0a19pbml0X2NoZWNrX3B0
cikoaW50KiwgY2hhcioqKik7Ci0gICAgICAgIGd0a19pbml0X2NoZWNrX3B0ciBndGtJbml0Q2hl
Y2sgPSAoZ3RrX2luaXRfY2hlY2tfcHRyKWxpYnJhcnkucmVzb2x2ZSgiZ3RrX2luaXRfY2hlY2si
KTsKLSAgICAgICAgLy8gTk9URTogV2UncmUgdXNpbmcgZ3RrX2luaXRfY2hlY2soKSBzaW5jZSBn
dGtfaW5pdCgpIGNhbGxzIGV4aXQoKSBvbiBmYWlsdXJlLgotICAgICAgICBpZiAoZ3RrSW5pdENo
ZWNrKQotICAgICAgICAgICAgKHZvaWQpIGd0a0luaXRDaGVjaygwLCAwKTsKLSAgICB9Ci19Ci0K
IGJvb2wgUGx1Z2luUGFja2FnZTo6bG9hZCgpCiB7CiAgICAgaWYgKG1faXNMb2FkZWQpIHsKQEAg
LTE2MiwxNyArMTIxLDE3IEBAIGJvb2wgUGx1Z2luUGFja2FnZTo6bG9hZCgpCiAKICAgICBpbml0
aWFsaXplQnJvd3NlckZ1bmNzKCk7CiAKLSAgICBpZiAobV9wYXRoLmNvbnRhaW5zKCJucHdyYXBw
ZXIuIikpIHsKKyAgICBpZiAoRmxhc2hQbHVnaW5Xb3JrYXJvdW5kczo6aXNGbGFzaFBsdWdpbk5Q
V3JhcHBlcihtX3BhdGgpKSB7CiAgICAgICAgIC8vIG5zcGx1Z2lud3JhcHBlciByZWxpZXMgb24g
dGhlIHRvb2xraXQgdmFsdWUgdG8ga25vdyBpZiBnbGliIGlzIGF2YWlsYWJsZQogICAgICAgICAv
LyBJdCBkb2VzIHNvIGluIE5QX0luaXRpYWxpemUgd2l0aCBhIG51bGwgaW5zdGFuY2UsIHRoZXJl
Zm9yZSBpdCBpcyBkb25lIHRoaXMgd2F5OgotICAgICAgICBtX2Jyb3dzZXJGdW5jcy5nZXR2YWx1
ZSA9IHN0YXRpY1BsdWdpblF1aXJrUmVxdWlyZXNHdGtUb29sS2l0X05QTl9HZXRWYWx1ZTsKKyAg
ICAgICAgbV9xdWlya3MuYWRkKFBsdWdpblF1aXJrUmVxdWlyZXNHdGtUb29sS2l0KTsKICAgICAg
ICAgLy8gV29ya2Fyb3VuZCBBZG9iZSdzIGZhaWx1cmUgdG8gcHJvcGVybHkgaW5pdGlhbGl6ZSBH
dGsgaW4gc29tZSB2ZXJzaW9ucwogICAgICAgICAvLyBvZiB0aGVpciBmbGFzaCBwbGF5ZXIgcGx1
Z2luLgotICAgICAgICBpbml0aWFsaXplR3RrKCk7Ci0gICAgfSBlbHNlIGlmIChtX3BhdGguY29u
dGFpbnMoImZsYXNocGxheWVyIikpIHsKKyAgICAgICAgRmxhc2hQbHVnaW5Xb3JrYXJvdW5kczo6
aW5pdGlhbGl6ZUdUSygpOworICAgIH0gZWxzZSBpZiAoRmxhc2hQbHVnaW5Xb3JrYXJvdW5kczo6
aXNGbGFzaFBsdWdpbihtX3BhdGgpKSB7CiAgICAgICAgIC8vIFdvcmthcm91bmQgQWRvYmUncyBm
YWlsdXJlIHRvIHByb3Blcmx5IGluaXRpYWxpemUgR3RrIGluIHNvbWUgdmVyc2lvbnMKICAgICAg
ICAgLy8gb2YgdGhlaXIgZmxhc2ggcGxheWVyIHBsdWdpbi4KLSAgICAgICAgaW5pdGlhbGl6ZUd0
ayhtX21vZHVsZSk7CisgICAgICAgIEZsYXNoUGx1Z2luV29ya2Fyb3VuZHM6OmluaXRpYWxpemVH
VEsobV9tb2R1bGUpOwogICAgIH0KIAogI2lmIGRlZmluZWQoWFBfVU5JWCkKZGlmZiAtLWdpdCBh
L1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2I1MWJhZC4uNmNj
MzhlMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wOS0yMyAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpz
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW1F0XSBbV2ViS2l0Ml0gV29ya2Fyb3VuZHMgZm9yIHRoZSBmbGFzaCBwbHVnaW4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MjYyCisKKyAg
ICAgICAgQXBwbHkgdGhlIHNhbWUgd29ya2Fyb3VuZHMgZm9yIHRoZSBmbGFzaCBwbHVnaW4KKyAg
ICAgICAgdGhhdCB3ZSB1c2UgaW4gV2ViQ29yZS4KKyAgICAgICAgKiBQbGF0Zm9ybS9xdC9Nb2R1
bGVRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1vZHVsZTo6bG9hZCk6IFVzZSB0aGUgUmVzb2x2
ZUFsbFN5bWJvbHNIaW50CisgICAgICAgIGhpbnQgd2hlbiB3ZSBsb2FkaW5nIHRoZSBsaWJyYXJ5
IGFzIHdlIGRvIGluIFdlYkNvcmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TlBOX0dldFZh
bHVlKTogQXBwbHlpbmcgdGhlIHdvcmthcm91bmQgd2UgdXNlIGluIFdlYkNvcmUKKyAgICAgICAg
Zm9yIHRoZSBmbGFzaCBwbHVnaW4gbnB3cmFwcGVyLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2Fw
ZVBsdWdpbjo6cXVpcmtzKTogQWRkZWQgYSBQbHVnaW5RdWlya1NldAorICAgICAgICBtZW1iZXIg
Zm9yIFF0IGFuZCBhIGdldHRlci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVn
aW5Nb2R1bGU6OnBhdGgpOiBBZGRlZCBnZXR0ZXIgZm9yIHRoZSBwYXRoLgorICAgICAgICBXZSBu
ZWVkIGl0IGluIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybVBvc3RJbml0aWFsaXplLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9OZXRzY2FwZVBsdWdpblF0LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtUG9zdEluaXRpYWxpemUp
OiBBcHBseWluZyB0aGUKKyAgICAgICAgd29ya2Fyb3VuZHMgd2UgdXNlIGluIFdlYkNvcmUgZm9y
IHRoZSBmbGFzaCBwbHVnaW4gYW5kIHRoZSBucHdyYXBwZXIuCisKIDIwMTAtMDktMjAgIEJhbGF6
cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbGF0Zm9ybS9xdC9Nb2R1bGVRdC5j
cHAgYi9XZWJLaXQyL1BsYXRmb3JtL3F0L01vZHVsZVF0LmNwcAppbmRleCA4YTY4Y2Y0Li44NGI4
ZmIwIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRmb3JtL3F0L01vZHVsZVF0LmNwcAorKysgYi9X
ZWJLaXQyL1BsYXRmb3JtL3F0L01vZHVsZVF0LmNwcApAQCAtMzEsNiArMzEsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGJvb2wgTW9kdWxlOjpsb2FkKCkKIHsKICAgICBtX2xpYi5zZXRGaWxlTmFt
ZShzdGF0aWNfY2FzdDxRU3RyaW5nPihtX3BhdGgpKTsKKyAgICBtX2xpYi5zZXRMb2FkSGludHMo
UUxpYnJhcnk6OlJlc29sdmVBbGxTeW1ib2xzSGludCk7CiAgICAgcmV0dXJuIG1fbGliLmxvYWQo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IGQ2YzA4MGYuLjViMjJlMzEgMTAw
NjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJv
d3NlckZ1bmNzLmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKQEAgLTQ0NCw2ICs0NDQsMTQgQEAgc3RhdGljIE5QRXJy
b3IgTlBOX0dldFZhbHVlKE5QUCBucHAsIE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkICp2YWx1
ZSkKICAgICAgICBjYXNlIE5QTlZTdXBwb3J0c1dpbmRvd2xlc3M6CiAgICAgICAgICAgICooTlBC
b29sKil2YWx1ZSA9IHRydWU7CiAgICAgICAgICAgIGJyZWFrOworI2VsaWYgUExBVEZPUk0oUVQp
CisgICAgICAgIGNhc2UgTlBOVlRvb2xraXQ6IHsKKyAgICAgICAgICAgIFJlZlB0cjxOZXRzY2Fw
ZVBsdWdpbj4gcGx1Z2luID0gTmV0c2NhcGVQbHVnaW46OmZyb21OUFAobnBwKTsKKworICAgICAg
ICAgICAgaWYgKHBsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtSZXF1aXJlc0d0
a1Rvb2xLaXQpKQorICAgICAgICAgICAgICAgICpyZWludGVycHJldF9jYXN0PHVpbnQzMl90Kj4o
dmFsdWUpID0gMjsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAjZW5kaWYKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oIGIvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAppbmRleCA0
MTNmOWM1Li5mZTc1NGRmIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAor
I2lmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luUXVpcmtTZXQuaD4KKyNl
bmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSFRUUEhlYWRlck1hcDsKIH0K
QEAgLTU3LDYgKzYxLDEwIEBAIHB1YmxpYzoKICAgICBOUEVycm9yIHNldEV2ZW50TW9kZWwoTlBF
dmVudE1vZGVsKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oUVQpCisgICAgV2ViQ29yZTo6UGx1
Z2luUXVpcmtTZXQgcXVpcmtzKCkgY29uc3QgeyByZXR1cm4gbV9xdWlya3M7IH0KKyNlbmRpZgor
CiAgICAgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IE5QUmVjdCopOwogICAgIGNvbnN0IGNoYXIqIHVz
ZXJBZ2VudCgpOwogICAgIHZvaWQgbG9hZFVSTChjb25zdCBTdHJpbmcmIG1ldGhvZCwgY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBXZWJDb3JlOjpI
VFRQSGVhZGVyTWFwJiBoZWFkZXJGaWVsZHMsCkBAIC0xNjYsNiArMTc0LDggQEAgcHJpdmF0ZToK
ICAgICBOUERyYXdpbmdNb2RlbCBtX2RyYXdpbmdNb2RlbDsKICAgICBOUEV2ZW50TW9kZWwgbV9l
dmVudE1vZGVsOwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3BsdWdpbkxheWVyOwor
I2VsaWYgUExBVEZPUk0oUVQpCisgICAgV2ViQ29yZTo6UGx1Z2luUXVpcmtTZXQgbV9xdWlya3M7
CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5oCmluZGV4IGU0OTUyNDIuLjU4NmJkMTMg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
UGx1Z2luTW9kdWxlLmgKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW5Nb2R1bGUuaApAQCAtNDMsNiArNDMsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBwbHVnaW5DcmVhdGVkKCk7CiAgICAgdm9pZCBwbHVnaW5EZXN0cm95ZWQoKTsKIAorICAgIFN0
cmluZyBwYXRoKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5QYXRoOyB9CisKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgTmV0c2NhcGVQbHVnaW5Nb2R1bGUoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRo
KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvcXQv
TmV0c2NhcGVQbHVnaW5RdC5jcHAgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2Fw
ZS9xdC9OZXRzY2FwZVBsdWdpblF0LmNwcAppbmRleCAzZjJhZTRmLi5iN2RlZmIxIDEwMDY0NAot
LS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9OZXRzY2FwZVBsdWdp
blF0LmNwcAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9xdC9OZXRz
Y2FwZVBsdWdpblF0LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmxhc2hQ
bHVnaW5Xb3JrYXJvdW5kcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMzYsNyArMzcsMjEgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtUG9zdEluaXRpYWxpemUo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgLy8gV29ya2Fyb3VuZCBBZG9iZSdzIGZh
aWx1cmUgdG8gcHJvcGVybHkgaW5pdGlhbGl6ZSBHdGsKKyAgICAvLyBpbiBzb21lIHZlcnNpb25z
IG9mIHRoZWlyIGZsYXNoIHBsYXllciBwbHVnaW4uCisgICAgU3RyaW5nIHBsdWdpblBhdGggPSBt
X3BsdWdpbk1vZHVsZS0+cGF0aCgpOworICAgIGlmIChGbGFzaFBsdWdpbldvcmthcm91bmRzOjpp
c0ZsYXNoUGx1Z2luTlBXcmFwcGVyKHBsdWdpblBhdGgpKSB7CisgICAgICAgIC8vIG5zcGx1Z2lu
d3JhcHBlciByZWxpZXMgb24gdGhlIHRvb2xraXQgdmFsdWUgdG8ga25vdyBpZiBnbGliIGlzIGF2
YWlsYWJsZS4KKyAgICAgICAgbV9xdWlya3MuYWRkKFBsdWdpblF1aXJrUmVxdWlyZXNHdGtUb29s
S2l0KTsKKyAgICAgICAgRmxhc2hQbHVnaW5Xb3JrYXJvdW5kczo6aW5pdGlhbGl6ZUdUSygpOwor
ICAgIH0gZWxzZSBpZiAoRmxhc2hQbHVnaW5Xb3JrYXJvdW5kczo6aXNGbGFzaFBsdWdpbihwbHVn
aW5QYXRoKSkgeworICAgICAgICAvLyBXZSBoYXZlIGFscmVhZHkgbG9hZGVkIHRoZSBwbHVnaW4g
YnV0IGluaXRpYWxpemVHVEsKKyAgICAgICAgLy8gbmVlZHMgYSBRTGlicmFyeSBmb3IgcmVzb2x2
aW5nIGd0a19pbml0LgorICAgICAgICBRTGlicmFyeSBmbGFzaFBsdWdpbihwbHVnaW5QYXRoKTsK
KyAgICAgICAgQVNTRVJUKGZsYXNoUGx1Z2luLmxvYWQoKSk7CisgICAgICAgIEZsYXNoUGx1Z2lu
V29ya2Fyb3VuZHM6OmluaXRpYWxpemVHVEsoJmZsYXNoUGx1Z2luKTsKKyAgICB9CisKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>