<?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>45881</bug_id>
          
          <creation_ts>2010-09-16 05:21:22 -0700</creation_ts>
          <short_desc>[Qt] Use PlatformStrategies to not break WebKit2</short_desc>
          <delta_ts>2010-09-20 02:22:22 -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>Platform</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>45831</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>
          <dependson>45857</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280023</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-16 05:21:22 -0700</bug_when>
    <thetext>There is a long standing bug that prevents us to have a working WebKit2 port in trunk.
At http://trac.webkit.org/browser/trunk/WebCore/plugins/qt/PluginDataQt.cpp#L37 there is a cast that is invalid and crashing in WebKit2. The functionality of that piece of code is implementing the QWebPluginFactory API. For not breaking WebKit2 we should implement that in the WebKit level. We can do this with the help of PlatformStrategies (exactly PluginStrategy).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280036</commentid>
    <comment_count>1</comment_count>
      <attachid>67786</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-16 05:52:31 -0700</bug_when>
    <thetext>Created attachment 67786
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280038</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-16 05:58:39 -0700</bug_when>
    <thetext>Attachment 67786 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/qt/WebCoreSupport/PlatformStrategiesQt.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
WARNING: File exempt from style guide. Skipping: &quot;WebKit/qt/Api/qwebpage.cpp&quot;
Total errors found: 1 in 11 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>280044</commentid>
    <comment_count>3</comment_count>
      <attachid>67786</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2010-09-16 06:13:52 -0700</bug_when>
    <thetext>Comment on attachment 67786
proposed patch

&gt; -    Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
&gt; -    Copyright (C) 2008 Collabora Ltd. All rights reserved.
&gt; ...
&gt; + * Copyright (C) 2009, 2010 University of Szeged

I don&apos;t think this is entirely kosher, you&apos;re reusing code but removing the original copyright notices AND changing the license from LGPL to 2cBSD.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280057</commentid>
    <comment_count>4</comment_count>
      <attachid>67790</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-16 06:52:57 -0700</bug_when>
    <thetext>Created attachment 67790
proposed patch v2

Fixed copyrights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280058</commentid>
    <comment_count>5</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-16 06:53:53 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 67786 [details])
&gt; &gt; -    Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies)
&gt; &gt; -    Copyright (C) 2008 Collabora Ltd. All rights reserved.
&gt; &gt; ...
&gt; &gt; + * Copyright (C) 2009, 2010 University of Szeged
&gt; 
&gt; I don&apos;t think this is entirely kosher, you&apos;re reusing code but removing the original copyright notices AND changing the license from LGPL to 2cBSD.

Sorry for that, I did it accidentally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280061</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-16 06:59:03 -0700</bug_when>
    <thetext>Attachment 67790 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/qt/WebCoreSupport/PlatformStrategiesQt.cpp:34:  Alphabetical sorting problem.  [build/include_order] [4]
WARNING: File exempt from style guide. Skipping: &quot;WebKit/qt/Api/qwebpage.cpp&quot;
Total errors found: 1 in 11 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>281457</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-20 02:21:57 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 45831 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67786</attachid>
            <date>2010-09-16 05:52:31 -0700</date>
            <delta_ts>2010-09-16 06:52:57 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>land_pluginstrategy_qt.diff</filename>
            <type>text/plain</type>
            <size>19696</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwZjY2MTI5Li4xNWJlYWU3
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTAtMDktMTYgIEJhbGF6cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2VkLmh1PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gVXNlIFBsYXRm
b3JtU3RyYXRlZ2llcyB0byBub3QgYnJlYWsgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU4NTcKKworICAgICAgICAqIFdlYktpdC5wcmk6
IEFkZCBXVEZfVVNFX1BMQVRGT1JNX1NUUkFURUdJRVMgdG8gdGhlIGRlZmluZXMuCisKIDIwMTAt
MDktMTEgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM0NWUwMWMuLmNhMDc0OWUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIs
MTcgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBb
UXRdIFVzZSBQbGF0Zm9ybVN0cmF0ZWdpZXMgdG8gbm90IGJyZWFrIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1ODU3CisgICAgICAgIE5v
IG5ldyBmdW5jdGlvbmFsaXR5IHNvIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUu
cHJvOgorICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2luRGF0YVF0LmNwcDogUmVtb3ZlZC4KKwor
MjAxMC0wOS0xNiAgQmFsYXpzIEtlbGVtZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgUGx1Z2luU3RyYXRlZ3kg
c2hvdWxkIHNhdGlzZmllcyB0aGUgbmVlZHMgb2YgUXQKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1ODU3CiAgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFs
aXR5IHNvIG5vIG5ldyB0ZXN0cy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9X
ZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDcyNmI2MDAuLjliMTVkZDIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMTE1Myw2ICsx
MTUzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgXAog
ICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIFwKKyAgICBwbGF0
Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwKICAgICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJF
eHByZXNzaW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwIFwKICAgICBw
bGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgXApAQCAtMjA1NSw2ICsyMDU2LDcgQEAgSEVBREVS
UyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUxvYWRUaW1pbmcuaCBcCiAgICAg
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmggXAogICAgIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBcCisgICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJh
dGVnaWVzLmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oIFwKICAgICBwbGF0
Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaCBcCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51LmggXApA
QCAtMjEwNCw2ICsyMTA2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGx1Z2lucy9ET01QbHVnaW4u
aCBcCiAgICAgcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyLmggXAogICAgIHBsdWdp
bnMvUGx1Z2luUGFja2FnZS5oIFwKKyAgICBwbHVnaW5zL1BsdWdpblN0cmF0ZWd5LmggXAogICAg
IHBsdWdpbnMvUGx1Z2luU3RyZWFtLmggXAogICAgIHBsdWdpbnMvUGx1Z2luVmlldy5oIFwKICAg
ICBwbHVnaW5zL3dpbi9QbHVnaW5NZXNzYWdlVGhyb3R0bGVyV2luLmggXApAQCAtMjUwNSw2ICsy
NTA4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1BhZ2VDbGllbnRRdC5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvUXRQbGF0Zm9ybVBsdWdpbi5oIFwKICAgICAkJFBXRC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUG9wdXBNZW51UXQuaCBcCisgICAgJCRQV0QvLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmggXAogICAgICQkUFdELy4uL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVRdC5oIFwKICAgICAkJFBXRC9wbGF0Zm9ybS9uZXR3
b3JrL3F0L0Ruc1ByZWZldGNoSGVscGVyLmgKIApAQCAtMjU5MSw3ICsyNTk1LDYgQEAgU09VUkNF
UyArPSBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0Q29kZWNRdC5jcHAgXAogICAgIHBsYXRm
b3JtL3F0L1doZWVsRXZlbnRRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1dpZGdldFF0LmNwcCBc
Ci0gICAgcGx1Z2lucy9xdC9QbHVnaW5EYXRhUXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVwLmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50UXQuY3BwIFwKQEAgLTI2MDUsNiArMjYwOCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JD
bGllbnRRdC5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRp
b25QcmVzZW50ZXJDbGllbnRRdC5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9QYWdlQ2xpZW50UXQuY3BwIFwKKyAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxh
dGZvcm1TdHJhdGVnaWVzUXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
UG9wdXBNZW51UXQuY3BwIFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0
Zm9ybVBsdWdpbi5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9TZWFyY2hQ
b3B1cE1lbnVRdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpbkRh
dGFRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luRGF0YVF0LmNwcApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggM2RjODZkMC4uMDAwMDAwMAotLS0gYS9XZWJDb3JlL3BsdWdp
bnMvcXQvUGx1Z2luRGF0YVF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLS8q
Ci0gICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQotICAgIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg
d2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQbHVn
aW5EYXRhLmgiCi0KLSNpbmNsdWRlICJQbHVnaW5EYXRhYmFzZS5oIgotI2luY2x1ZGUgIlBsdWdp
blBhY2thZ2UuaCIKLQotI2luY2x1ZGUgIkNocm9tZS5oIgotI2luY2x1ZGUgIkNocm9tZUNsaWVu
dFF0LmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgPHF3ZWJwYWdlLmg+Ci0jaW5jbHVk
ZSA8cXdlYnBsdWdpbmZhY3RvcnkuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFBs
dWdpbkRhdGE6OmluaXRQbHVnaW5zKCkKLXsKLSAgICBRV2ViUGFnZSogd2ViUGFnZSA9IHN0YXRp
Y19jYXN0PENocm9tZUNsaWVudFF0Kj4obV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCkpLT5tX3dl
YlBhZ2U7Ci0gICAgUVdlYlBsdWdpbkZhY3RvcnkqIGZhY3RvcnkgPSB3ZWJQYWdlLT5wbHVnaW5G
YWN0b3J5KCk7Ci0gICAgaWYgKGZhY3RvcnkpIHsKLQotICAgICAgICBRTGlzdDxRV2ViUGx1Z2lu
RmFjdG9yeTo6UGx1Z2luPiBxcGx1Z2lucyA9IGZhY3RvcnktPnBsdWdpbnMoKTsKLSAgICAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCBxcGx1Z2lucy5jb3VudCgpOyArK2kpIHsKLSAgICAgICAgICAg
IGNvbnN0IFFXZWJQbHVnaW5GYWN0b3J5OjpQbHVnaW4mIHFwbHVnaW4gPSBxcGx1Z2lucy5hdChp
KTsKLQotICAgICAgICAgICAgUGx1Z2luSW5mbyBpbmZvOwotICAgICAgICAgICAgaW5mby5uYW1l
ID0gcXBsdWdpbi5uYW1lOwotICAgICAgICAgICAgaW5mby5kZXNjID0gcXBsdWdpbi5kZXNjcmlw
dGlvbjsKLQotICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBxcGx1Z2luLm1pbWVUeXBl
cy5jb3VudCgpOyArK2opIHsKLSAgICAgICAgICAgICAgICBjb25zdCBRV2ViUGx1Z2luRmFjdG9y
eTo6TWltZVR5cGUmIG1pbWVUeXBlID0gcXBsdWdpbi5taW1lVHlwZXMuYXQoaik7Ci0KLSAgICAg
ICAgICAgICAgICBNaW1lQ2xhc3NJbmZvIG1pbWVJbmZvOwotICAgICAgICAgICAgICAgIG1pbWVJ
bmZvLnR5cGUgPSBtaW1lVHlwZS5uYW1lOwotICAgICAgICAgICAgICAgIG1pbWVJbmZvLmRlc2Mg
PSBtaW1lVHlwZS5kZXNjcmlwdGlvbjsKLSAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsg
ayA8IG1pbWVUeXBlLmZpbGVFeHRlbnNpb25zLmNvdW50KCk7ICsraykKLSAgICAgICAgICAgICAg
ICAgIG1pbWVJbmZvLmV4dGVuc2lvbnMuYXBwZW5kKG1pbWVUeXBlLmZpbGVFeHRlbnNpb25zLmF0
KGspKTsKLQotICAgICAgICAgICAgICAgIGluZm8ubWltZXMuYXBwZW5kKG1pbWVJbmZvKTsKLSAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgbV9wbHVnaW5zLmFwcGVuZChpbmZvKTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIFBsdWdpbkRhdGFiYXNlICpkYiA9IFBsdWdpbkRhdGFiYXNlOjpp
bnN0YWxsZWRQbHVnaW5zKCk7Ci0gICAgY29uc3QgVmVjdG9yPFBsdWdpblBhY2thZ2UqPiAmcGx1
Z2lucyA9IGRiLT5wbHVnaW5zKCk7Ci0KLSAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8
IHBsdWdpbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgUGx1Z2luSW5mbyBpbmZvOwotICAgICAg
ICBQbHVnaW5QYWNrYWdlKiBwYWNrYWdlID0gcGx1Z2luc1tpXTsKLQotICAgICAgICBpbmZvLm5h
bWUgPSBwYWNrYWdlLT5uYW1lKCk7Ci0gICAgICAgIGluZm8uZmlsZSA9IHBhY2thZ2UtPmZpbGVO
YW1lKCk7Ci0gICAgICAgIGluZm8uZGVzYyA9IHBhY2thZ2UtPmRlc2NyaXB0aW9uKCk7Ci0KLSAg
ICAgICAgY29uc3QgTUlNRVRvRGVzY3JpcHRpb25zTWFwJiBtaW1lVG9EZXNjcmlwdGlvbnMgPSBw
YWNrYWdlLT5taW1lVG9EZXNjcmlwdGlvbnMoKTsKLSAgICAgICAgTUlNRVRvRGVzY3JpcHRpb25z
TWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtaW1lVG9EZXNjcmlwdGlvbnMuZW5kKCk7Ci0gICAg
ICAgIGZvciAoTUlNRVRvRGVzY3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IG1pbWVU
b0Rlc2NyaXB0aW9ucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgICAgIE1p
bWVDbGFzc0luZm8gbWltZTsKLQotICAgICAgICAgICAgbWltZS50eXBlID0gaXQtPmZpcnN0Owot
ICAgICAgICAgICAgbWltZS5kZXNjID0gaXQtPnNlY29uZDsKLSAgICAgICAgICAgIG1pbWUuZXh0
ZW5zaW9ucyA9IHBhY2thZ2UtPm1pbWVUb0V4dGVuc2lvbnMoKS5nZXQobWltZS50eXBlKTsKLQot
ICAgICAgICAgICAgaW5mby5taW1lcy5hcHBlbmQobWltZSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBtX3BsdWdpbnMuYXBwZW5kKGluZm8pOwotICAgIH0KLX0KLQotdm9pZCBQbHVnaW5EYXRhOjpy
ZWZyZXNoKCkKLXsKLSAgICBQbHVnaW5EYXRhYmFzZSAqZGIgPSBQbHVnaW5EYXRhYmFzZTo6aW5z
dGFsbGVkUGx1Z2lucygpOwotICAgIGRiLT5yZWZyZXNoKCk7Ci19Ci0KLX07CmRpZmYgLS1naXQg
YS9XZWJLaXQucHJpIGIvV2ViS2l0LnByaQppbmRleCA0MjcyNWQyLi40ZTk5NThhIDEwMDY0NAot
LS0gYS9XZWJLaXQucHJpCisrKyBiL1dlYktpdC5wcmkKQEAgLTU1LDYgKzU1LDggQEAgQ09ORklH
KHJlbGVhc2UsIGRlYnVnfHJlbGVhc2UpIHsKICAgICBERUZJTkVTICs9IE5ERUJVRwogfQogCitE
RUZJTkVTICs9IFdURl9VU0VfUExBVEZPUk1fU1RSQVRFR0lFUworCiBCQVNFX0RJUiA9ICQkUFdE
CiAKIHN5bWJpYW4gewpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCA0ZjVlNzExLi43Y2U1NmY2IDEwMDY0NAot
LS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcApAQCAtNjUsNiArNjUsNyBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUg
IlNjcm9sbGJhci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyYXRlZ2llc1F0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50
LmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YWJhc2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNr
ZXIuaCIKQEAgLTI2NSw2ICsyNjYsNyBAQCBRV2ViUGFnZVByaXZhdGU6OlFXZWJQYWdlUHJpdmF0
ZShRV2ViUGFnZSAqcXEpCiAgICAgV2ViQ29yZTo6SW5pdGlhbGl6ZUxvZ2dpbmdDaGFubmVsc0lm
TmVjZXNzYXJ5KCk7CiAgICAgU2NyaXB0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZVRocmVhZGluZygp
OwogICAgIFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQoKTsKKyAgICBXZWJDb3JlOjpQbGF0Zm9y
bVN0cmF0ZWdpZXNRdDo6aW5pdGlhbGl6ZSgpOwogICAgIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpzZXRMb2NhbExvYWRQb2xpY3koV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkFsbG93TG9jYWxM
b2Fkc0ZvckxvY2FsQW5kU3Vic3RpdHV0ZURhdGEpOwogI2lmIFFUX1ZFUlNJT04gPCBRVF9WRVJT
SU9OX0NIRUNLKDQsIDcsIDApCiAgICAgV2ViQ29yZTo6Rm9udDo6c2V0Q29kZVBhdGgoV2ViQ29y
ZTo6Rm9udDo6Q29tcGxleCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCAwMmI3M2ZlLi41M2QwMTBjIDEwMDY0NAotLS0gYS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBA
QAorMjAxMC0wOS0xNiAgQmFsYXpzIEtlbGVtZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBVc2UgUGxh
dGZvcm1TdHJhdGVnaWVzIHRvIG5vdCBicmVhayBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTg1NworCisgICAgICAgICogQXBpL3F3ZWJw
YWdlLmNwcDoKKyAgICAgICAgKFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKToKKyAg
ICAgICAgQ2FsbCBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6aW5pdGlhbGl6ZS4KKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHA6IEFkZGVkLgorICAgICAgICBJ
bXBsZW1lbnQgUGxhdGZvcm1TdHJhdGVnaWVzLCBQbHVnaW5TdHJhdGVneSBhbmQgVmlzaXRlZExp
bmtTdHJhdGVneS4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llc1F0Ojppbml0
aWFsaXplKTogQ3JlYXRlIHNpbmdsZXRvbiBpbnN0YW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlBs
YXRmb3JtU3RyYXRlZ2llc1F0OjpQbGF0Zm9ybVN0cmF0ZWdpZXNRdCk6CisgICAgICAgIChXZWJD
b3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y3JlYXRlUGx1Z2luU3RyYXRlZ3kpOgorICAgICAg
ICAoV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0
ZWd5KTogU2VlbXMgdG8gYmUgdW5yZWFjaGFibGUuCisgICAgICAgIEFkZGVkIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpIGJlY2F1c2UgTG9jYWxpemF0aW9uU3RyYXRlZ3kgaXMgbm90IGltcGxlbWVudGVk
LgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyZWF0ZVZpc2l0ZWRM
aW5rU3RyYXRlZ3kpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzUXQ6Omdl
dFBsdWdpbkluZm8pOiBEbyB0aGUgc2FtZSBhcyB3ZSBkaWQgYmVmb3JlLgorICAgICAgICBUaGUg
Y29kZSB3YXMgdGFrZW4gZnJvbSBQbHVnaW5EYXRhUXQuY3BwLgorICAgICAgICAoV2ViQ29yZTo6
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OnJlZnJlc2hQbHVnaW5zKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6aXNMaW5rVmlzaXRlZCk6IERvIHRoZSBzYW1l
IGFzIHdlIGRpZCBiZWZvcmUuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXNR
dDo6YWRkVmlzaXRlZExpbmspOiBEbyB0aGUgc2FtZSBhcyB3ZSBkaWQgYmVmb3JlLgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0Lmg6IEFkZGVkLgorCiAyMDEw
LTA5LTE0ICBFbnJpY28gUm9zICA8ZXJvc0Bjb2RlYXVyb3JhLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Q
bGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYmQxN2M5NAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9Q
bGF0Zm9ybVN0cmF0ZWdpZXNRdC5jcHAKQEAgLTAsMCArMSwxNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDksIDIwMTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBVTklW
RVJTSVRZIE9GIFNaRUdFRCBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFVOSVZF
UlNJVFkgT0YgU1pFR0VEIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
YXRlZ2llc1F0LmgiCisKKyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGll
bnRRdC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlR3JvdXAuaCIKKyNpbmNs
dWRlICJQbHVnaW5EYXRhYmFzZS5oIgorI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKKyNpbmNs
dWRlIDxxZ2xvYmFsLmg+CisjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KKyNpbmNsdWRlIDxxd2VicGx1
Z2luZmFjdG9yeS5oPgorI2luY2x1ZGUgIlN0ZExpYkV4dHJhcy5oIgorI2luY2x1ZGUgIlVudXNl
ZFBhcmFtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6aW5pdGlhbGl6ZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChQbGF0Zm9ybVN0
cmF0ZWdpZXNRdCwgaW5zdGFuY2UsICgpKTsKKyAgICBVTlVTRURfUEFSQU0oaW5zdGFuY2UpOwor
fQorCitQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6UGxhdGZvcm1TdHJhdGVnaWVzUXQoKQoreworICAg
IHNldFBsYXRmb3JtU3RyYXRlZ2llcyh0aGlzKTsKK30KKworUGx1Z2luU3RyYXRlZ3kqIFBsYXRm
b3JtU3RyYXRlZ2llc1F0OjpjcmVhdGVQbHVnaW5TdHJhdGVneSgpCit7CisgICAgcmV0dXJuIHRo
aXM7Cit9CisKK0xvY2FsaXphdGlvblN0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y3Jl
YXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIHJldHVybiAwOworfQorCitWaXNpdGVkTGlua1N0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6Y3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpCit7CisgICAgcmV0dXJuIHRoaXM7Cit9
CisKK3ZvaWQgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmdldFBsdWdpbkluZm8oY29uc3QgUGFnZSog
cGFnZSwgVmVjdG9yPFBsdWdpbkluZm8+JiBwbHVnaW5zKQoreworICAgIFFXZWJQYWdlKiB3ZWJQ
YWdlID0gc3RhdGljX2Nhc3Q8Q2hyb21lQ2xpZW50UXQqPihwYWdlLT5jaHJvbWUoKS0+Y2xpZW50
KCkpLT5tX3dlYlBhZ2U7CisgICAgUVdlYlBsdWdpbkZhY3RvcnkqIGZhY3RvcnkgPSB3ZWJQYWdl
LT5wbHVnaW5GYWN0b3J5KCk7CisgICAgaWYgKGZhY3RvcnkpIHsKKyAgICAgICAgUUxpc3Q8UVdl
YlBsdWdpbkZhY3Rvcnk6OlBsdWdpbj4gcXBsdWdpbnMgPSBmYWN0b3J5LT5wbHVnaW5zKCk7Cisg
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcXBsdWdpbnMuY291bnQoKTsgKytpKSB7CisgICAg
ICAgICAgICBjb25zdCBRV2ViUGx1Z2luRmFjdG9yeTo6UGx1Z2luJiBxcGx1Z2luID0gcXBsdWdp
bnMuYXQoaSk7CisKKyAgICAgICAgICAgIFBsdWdpbkluZm8gaW5mbzsKKyAgICAgICAgICAgIGlu
Zm8ubmFtZSA9IHFwbHVnaW4ubmFtZTsKKyAgICAgICAgICAgIGluZm8uZGVzYyA9IHFwbHVnaW4u
ZGVzY3JpcHRpb247CisKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgcXBsdWdpbi5t
aW1lVHlwZXMuY291bnQoKTsgKytqKSB7CisgICAgICAgICAgICAgICAgY29uc3QgUVdlYlBsdWdp
bkZhY3Rvcnk6Ok1pbWVUeXBlJiBtaW1lVHlwZSA9IHFwbHVnaW4ubWltZVR5cGVzLmF0KGopOwor
CisgICAgICAgICAgICAgICAgTWltZUNsYXNzSW5mbyBtaW1lSW5mbzsKKyAgICAgICAgICAgICAg
ICBtaW1lSW5mby50eXBlID0gbWltZVR5cGUubmFtZTsKKyAgICAgICAgICAgICAgICBtaW1lSW5m
by5kZXNjID0gbWltZVR5cGUuZGVzY3JpcHRpb247CisgICAgICAgICAgICAgICAgZm9yIChpbnQg
ayA9IDA7IGsgPCBtaW1lVHlwZS5maWxlRXh0ZW5zaW9ucy5jb3VudCgpOyArK2spCisgICAgICAg
ICAgICAgICAgICAgIG1pbWVJbmZvLmV4dGVuc2lvbnMuYXBwZW5kKG1pbWVUeXBlLmZpbGVFeHRl
bnNpb25zLmF0KGspKTsKKworICAgICAgICAgICAgICAgIGluZm8ubWltZXMuYXBwZW5kKG1pbWVJ
bmZvKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcGx1Z2lucy5hcHBlbmQoaW5mbyk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBQbHVnaW5EYXRhYmFzZSogZGIgPSBQbHVnaW5EYXRh
YmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpOworICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5QYWNrYWdl
Kj4mIHBhY2thZ2VzID0gZGItPnBsdWdpbnMoKTsKKworICAgIGZvciAodW5zaWduZWQgaW50IGkg
PSAwOyBpIDwgcGx1Z2lucy5zaXplKCk7ICsraSkgeworICAgICAgICBQbHVnaW5JbmZvIGluZm87
CisgICAgICAgIFBsdWdpblBhY2thZ2UqIHBhY2thZ2UgPSBwYWNrYWdlc1tpXTsKKworICAgICAg
ICBpbmZvLm5hbWUgPSBwYWNrYWdlLT5uYW1lKCk7CisgICAgICAgIGluZm8uZmlsZSA9IHBhY2th
Z2UtPmZpbGVOYW1lKCk7CisgICAgICAgIGluZm8uZGVzYyA9IHBhY2thZ2UtPmRlc2NyaXB0aW9u
KCk7CisKKyAgICAgICAgY29uc3QgTUlNRVRvRGVzY3JpcHRpb25zTWFwJiBtaW1lVG9EZXNjcmlw
dGlvbnMgPSBwYWNrYWdlLT5taW1lVG9EZXNjcmlwdGlvbnMoKTsKKyAgICAgICAgTUlNRVRvRGVz
Y3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtaW1lVG9EZXNjcmlwdGlvbnMuZW5k
KCk7CisgICAgICAgIGZvciAoTUlNRVRvRGVzY3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBp
dCA9IG1pbWVUb0Rlc2NyaXB0aW9ucy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgICAgIE1pbWVDbGFzc0luZm8gbWltZTsKKworICAgICAgICAgICAgbWltZS50eXBlID0gaXQt
PmZpcnN0OworICAgICAgICAgICAgbWltZS5kZXNjID0gaXQtPnNlY29uZDsKKyAgICAgICAgICAg
IG1pbWUuZXh0ZW5zaW9ucyA9IHBhY2thZ2UtPm1pbWVUb0V4dGVuc2lvbnMoKS5nZXQobWltZS50
eXBlKTsKKworICAgICAgICAgICAgaW5mby5taW1lcy5hcHBlbmQobWltZSk7CisgICAgICAgIH0K
KworICAgICAgICBwbHVnaW5zLmFwcGVuZChpbmZvKTsKKyAgICB9Cit9CisKK3ZvaWQgUGxhdGZv
cm1TdHJhdGVnaWVzUXQ6OnJlZnJlc2hQbHVnaW5zKCkKK3sKKyAgICBQbHVnaW5EYXRhYmFzZSog
ZGIgPSBQbHVnaW5EYXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpOworICAgIGRiLT5yZWZyZXNo
KCk7Cit9CisKK2Jvb2wgUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmlzTGlua1Zpc2l0ZWQoUGFnZSog
cGFnZSwgTGlua0hhc2ggaGFzaCkKK3sKKyAgICByZXR1cm4gcGFnZS0+Z3JvdXAoKS5pc0xpbmtW
aXNpdGVkKGhhc2gpOworfQorCit2b2lkIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjphZGRWaXNpdGVk
TGluayhQYWdlKiBwYWdlLCBMaW5rSGFzaCBoYXNoKQoreworICAgIHJldHVybiBwYWdlLT5ncm91
cCgpLmFkZFZpc2l0ZWRMaW5rSGFzaChoYXNoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2ll
c1F0LmggYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NTU1ZmZmCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmgKQEAg
LTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBVbml2ZXJzaXR5
IG9mIFN6ZWdlZAorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFVOSVZFUlNJVFkgT0YgU1pFR0VEIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVU5JVkVSU0lUWSBPRiBTWkVHRUQgT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRm
b3JtU3RyYXRlZ2llc1F0X2gKKyNkZWZpbmUgUGxhdGZvcm1TdHJhdGVnaWVzUXRfaAorCisjaW5j
bHVkZSAiTGlua0hhc2guaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNs
dWRlICJQbHVnaW5TdHJhdGVneS5oIgorI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RyYXRlZ3kuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBQbGF0Zm9ybVN0cmF0ZWdpZXNRdCA6IHB1
YmxpYyBQbGF0Zm9ybVN0cmF0ZWdpZXMsIHByaXZhdGUgUGx1Z2luU3RyYXRlZ3ksIHByaXZhdGUg
VmlzaXRlZExpbmtTdHJhdGVneSB7CisgICAgUGxhdGZvcm1TdHJhdGVnaWVzUXQoKTsKKworICAg
IC8vIFBsYXRmb3JtU3RyYXRlZ2llcworICAgIHZpcnR1YWwgUGx1Z2luU3RyYXRlZ3kqIGNyZWF0
ZVBsdWdpblN0cmF0ZWd5KCk7CisgICAgdmlydHVhbCBMb2NhbGl6YXRpb25TdHJhdGVneSogY3Jl
YXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKKyAgICB2aXJ0dWFsIFZpc2l0ZWRMaW5rU3RyYXRl
Z3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKTsKKworICAgIC8vIFBsdWdpblN0cmF0ZWd5
CisgICAgdmlydHVhbCB2b2lkIHJlZnJlc2hQbHVnaW5zKCk7CisgICAgdmlydHVhbCB2b2lkIGdl
dFBsdWdpbkluZm8oY29uc3QgUGFnZSosIFZlY3RvcjxQbHVnaW5JbmZvPiYpOworCisgICAgLy8g
VmlzaXRlZExpbmtTdHJhdGVneQorICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFBhZ2Uq
LCBMaW5rSGFzaCk7CisgICAgdmlydHVhbCB2b2lkIGFkZFZpc2l0ZWRMaW5rKFBhZ2UqLCBMaW5r
SGFzaCk7CisKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7Cit9OworCit9
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9XZWJLaXQyL0NoYW5n
ZUxvZwppbmRleCBlZmI5NDQ5Li5kZTlkMjliIDEwMDY0NAotLS0gYS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMiw2ICsyLDE4IEBACiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKKyAgICAgICAgW1F0XSBVc2UgUGxhdGZvcm1TdHJh
dGVnaWVzIHRvIG5vdCBicmVhayBXZWJLaXQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00NTg1NworCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9x
d2twYWdlLmNwcDoKKyAgICAgICAgKFFXS1BhZ2VQcml2YXRlOjpRV0tQYWdlUHJpdmF0ZSk6Cisg
ICAgICAgIENhbGwgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplLgorICAgICAgICAq
IFdlYktpdDIucHJvOiBBZGQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzIHRvIHRoZSBidWlsZC4KKwor
MjAxMC0wOS0xNiAgQmFsYXpzIEtlbGVtZW4gIDxrYkBpbmYudS1zemVnZWQuaHU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKICAgICAgICAgUGx1Z2luU3RyYXRlZ3kg
c2hvdWxkIHNhdGlzZmllcyB0aGUgbmVlZHMgb2YgUXQKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1ODU3CiAgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFs
aXR5IHNvIG5vIG5ldyB0ZXN0cy4KZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2twYWdlLmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAppbmRl
eCA3MjNhYTBiLi5iYzEzMzBiIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
cXdrcGFnZS5jcHAKKysrIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwCkBA
IC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIkxvY2Fs
aXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnlRdC5oIgorI2luY2x1ZGUg
IldlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKICNpbmNs
dWRlICJXS1VSTFF0LmgiCiAjaW5jbHVkZSA8UUFjdGlvbj4KQEAgLTQ1LDYgKzQ2LDcgQEAgUVdL
UGFnZVByaXZhdGU6OlFXS1BhZ2VQcml2YXRlKFFXS1BhZ2UqIHFxLCBXS1BhZ2VOYW1lc3BhY2VS
ZWYgbmFtZXNwYWNlUmVmKQogICAgIDogcShxcSkKICAgICAsIGNyZWF0ZU5ld1BhZ2VGbigwKQog
eworICAgIFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbml0aWFsaXplKCk7CiAgICAg
bWVtc2V0KGFjdGlvbnMsIDAsIHNpemVvZihhY3Rpb25zKSk7CiAgICAgcGFnZSA9IHRvV0sobmFt
ZXNwYWNlUmVmKS0+Y3JlYXRlV2ViUGFnZSgpOwogICAgIHBhZ2UtPnNldFBhZ2VDbGllbnQodGhp
cyk7CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYktpdDIucHJvIGIvV2ViS2l0Mi9XZWJLaXQyLnBy
bwppbmRleCAyOTg3NTYxLi4xYzEzNWQzIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYktpdDIucHJv
CisrKyBiL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTI1NSw2ICsyNTUsNyBAQCBIRUFERVJTICs9
IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmgg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmggXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmggXAorICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggXAogICAgIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViU2VhcmNoUG9wdXBNZW51LmggXAogICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIFwKICAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhLmggXApAQCAtMzY5LDYg
KzM3MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJC
YWNrRm9yd2FyZENvbnRyb2xsZXJDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBvcHVwTWVudS5jcHAgXAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJTZWFyY2hQb3B1cE1lbnUuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3F0L1dlYkVycm9yc1F0LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9X
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcCBcCg==
</data>
<flag name="review"
          id="57184"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67790</attachid>
            <date>2010-09-16 06:52:57 -0700</date>
            <delta_ts>2010-09-20 02:22:22 -0700</delta_ts>
            <desc>proposed patch v2</desc>
            <filename>reland_pluginstrategy_qt.diff</filename>
            <type>text/plain</type>
            <size>19323</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAzOTU5M2VhLi41MTY1NDU1
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTAtMDktMTYgIEJhbGF6cyBLZWxlbWVuICA8a2JAaW5mLnUtc3plZ2VkLmh1PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gVXNlIFBsYXRm
b3JtU3RyYXRlZ2llcyB0byBub3QgYnJlYWsgV2ViS2l0MgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU4NTcKKworICAgICAgICAqIFdlYktpdC5wcmk6
IEFkZCBXVEZfVVNFX1BMQVRGT1JNX1NUUkFURUdJRVMgdG8gdGhlIGRlZmluZXMuCisKIDIwMTAt
MDktMTUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFVucmV2aWV3ZWQuICBUZXN0IGNvbW1pdCBmb3IgY29tbWl0LXF1ZXVlQHdlYmtpdC5vcmcuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI2
ZjA5YjMuLjZiZGNlY2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMTcgQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KIAorICAgICAgICBbUXRdIFVzZSBQbGF0Zm9ybVN0cmF0ZWdpZXMgdG8gbm90
IGJyZWFrIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1ODU3CisgICAgICAgIE5vIG5ldyBmdW5jdGlvbmFsaXR5IHNvIG5vIG5ldyB0ZXN0
cy4KKworICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2lu
RGF0YVF0LmNwcDogUmVtb3ZlZC4KKworMjAxMC0wOS0xNiAgQmFsYXpzIEtlbGVtZW4gIDxrYkBp
bmYudS1zemVnZWQuaHU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
ICAgICAgICAgUGx1Z2luU3RyYXRlZ3kgc2hvdWxkIHNhdGlzZmllcyB0aGUgbmVlZHMgb2YgUXQK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1ODU3CiAg
ICAgICAgIE5vIG5ldyBmdW5jdGlvbmFsaXR5IHNvIG5vIG5ldyB0ZXN0cy4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGMzODRmMzMu
LjU2NWI4MjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwpAQCAtMTE1Myw2ICsxMTUzLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXF1ZXN0QmFzZS5jcHAgXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNw
b25zZUJhc2UuY3BwIFwKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwKICAg
ICBwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vU2No
ZW1lUmVnaXN0cnkuY3BwIFwKICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAgXApAQCAt
MjA1NSw2ICsyMDU2LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUxvYWRUaW1pbmcuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RC
YXNlLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBcCisg
ICAgcGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmggXAogICAgIHBsYXRmb3JtL1BsYXRmb3Jt
VG91Y2hFdmVudC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoUG9pbnQuaCBcCiAgICAg
cGxhdGZvcm0vUG9wdXBNZW51LmggXApAQCAtMjEwNCw2ICsyMTA2LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgcGx1Z2lucy9ET01QbHVnaW4uaCBcCiAgICAgcGx1Z2lucy9QbHVnaW5NYWluVGhyZWFk
U2NoZWR1bGVyLmggXAogICAgIHBsdWdpbnMvUGx1Z2luUGFja2FnZS5oIFwKKyAgICBwbHVnaW5z
L1BsdWdpblN0cmF0ZWd5LmggXAogICAgIHBsdWdpbnMvUGx1Z2luU3RyZWFtLmggXAogICAgIHBs
dWdpbnMvUGx1Z2luVmlldy5oIFwKICAgICBwbHVnaW5zL3dpbi9QbHVnaW5NZXNzYWdlVGhyb3R0
bGVyV2luLmggXApAQCAtMjUwNSw2ICsyNTA4LDcgQEAgSEVBREVSUyArPSBcCiAgICAgJCRQV0Qv
Li4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BhZ2VDbGllbnRRdC5oIFwKICAgICAkJFBXRC8u
Li9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5oIFwKICAgICAkJFBX
RC8uLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51UXQuaCBcCisgICAgJCRQV0Qv
Li4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmggXAogICAg
ICQkUFdELy4uL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVRdC5oIFwK
ICAgICAkJFBXRC9wbGF0Zm9ybS9uZXR3b3JrL3F0L0Ruc1ByZWZldGNoSGVscGVyLmgKIApAQCAt
MjU5MSw3ICsyNTk1LDYgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vdGV4dC9xdC9UZXh0
Q29kZWNRdC5jcHAgXAogICAgIHBsYXRmb3JtL3F0L1doZWVsRXZlbnRRdC5jcHAgXAogICAgIHBs
YXRmb3JtL3F0L1dpZGdldFF0LmNwcCBcCi0gICAgcGx1Z2lucy9xdC9QbHVnaW5EYXRhUXQuY3Bw
IFwKICAgICAuLi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRGYWxsYmFja1dlYlBvcHVwLmNw
cCBcCiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcCBc
CiAgICAgLi4vV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50UXQuY3Bw
IFwKQEAgLTI2MDUsNiArMjYwOCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIC4uL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRRdC5jcHAgXAogICAgIC4uL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJDbGllbnRRdC5jcHAgXAogICAgIC4u
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9QYWdlQ2xpZW50UXQuY3BwIFwKKyAgICAuLi9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuY3BwIFwKICAgICAuLi9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUG9wdXBNZW51UXQuY3BwIFwKICAgICAuLi9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvUXRQbGF0Zm9ybVBsdWdpbi5jcHAgXAogICAgIC4uL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9TZWFyY2hQb3B1cE1lbnVRdC5jcHAgXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbHVnaW5zL3F0L1BsdWdpbkRhdGFRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1
Z2luRGF0YVF0LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2RjODZkMC4uMDAw
MDAwMAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luRGF0YVF0LmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gICAgQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICAgIENvcHlyaWdodCAoQykg
MjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi0gICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCi0KLSNpbmNsdWRlICJQbHVnaW5EYXRh
YmFzZS5oIgotI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKLQotI2luY2x1ZGUgIkNocm9tZS5o
IgotI2luY2x1ZGUgIkNocm9tZUNsaWVudFF0LmgiCi0jaW5jbHVkZSAiUGFnZS5oIgotI2luY2x1
ZGUgPHF3ZWJwYWdlLmg+Ci0jaW5jbHVkZSA8cXdlYnBsdWdpbmZhY3RvcnkuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi12b2lkIFBsdWdpbkRhdGE6OmluaXRQbHVnaW5zKCkKLXsKLSAgICBR
V2ViUGFnZSogd2ViUGFnZSA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudFF0Kj4obV9wYWdlLT5j
aHJvbWUoKS0+Y2xpZW50KCkpLT5tX3dlYlBhZ2U7Ci0gICAgUVdlYlBsdWdpbkZhY3RvcnkqIGZh
Y3RvcnkgPSB3ZWJQYWdlLT5wbHVnaW5GYWN0b3J5KCk7Ci0gICAgaWYgKGZhY3RvcnkpIHsKLQot
ICAgICAgICBRTGlzdDxRV2ViUGx1Z2luRmFjdG9yeTo6UGx1Z2luPiBxcGx1Z2lucyA9IGZhY3Rv
cnktPnBsdWdpbnMoKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBxcGx1Z2lucy5jb3Vu
dCgpOyArK2kpIHsKLSAgICAgICAgICAgIGNvbnN0IFFXZWJQbHVnaW5GYWN0b3J5OjpQbHVnaW4m
IHFwbHVnaW4gPSBxcGx1Z2lucy5hdChpKTsKLQotICAgICAgICAgICAgUGx1Z2luSW5mbyBpbmZv
OwotICAgICAgICAgICAgaW5mby5uYW1lID0gcXBsdWdpbi5uYW1lOwotICAgICAgICAgICAgaW5m
by5kZXNjID0gcXBsdWdpbi5kZXNjcmlwdGlvbjsKLQotICAgICAgICAgICAgZm9yIChpbnQgaiA9
IDA7IGogPCBxcGx1Z2luLm1pbWVUeXBlcy5jb3VudCgpOyArK2opIHsKLSAgICAgICAgICAgICAg
ICBjb25zdCBRV2ViUGx1Z2luRmFjdG9yeTo6TWltZVR5cGUmIG1pbWVUeXBlID0gcXBsdWdpbi5t
aW1lVHlwZXMuYXQoaik7Ci0KLSAgICAgICAgICAgICAgICBNaW1lQ2xhc3NJbmZvIG1pbWVJbmZv
OwotICAgICAgICAgICAgICAgIG1pbWVJbmZvLnR5cGUgPSBtaW1lVHlwZS5uYW1lOwotICAgICAg
ICAgICAgICAgIG1pbWVJbmZvLmRlc2MgPSBtaW1lVHlwZS5kZXNjcmlwdGlvbjsKLSAgICAgICAg
ICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IG1pbWVUeXBlLmZpbGVFeHRlbnNpb25zLmNvdW50
KCk7ICsraykKLSAgICAgICAgICAgICAgICAgIG1pbWVJbmZvLmV4dGVuc2lvbnMuYXBwZW5kKG1p
bWVUeXBlLmZpbGVFeHRlbnNpb25zLmF0KGspKTsKLQotICAgICAgICAgICAgICAgIGluZm8ubWlt
ZXMuYXBwZW5kKG1pbWVJbmZvKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgbV9wbHVn
aW5zLmFwcGVuZChpbmZvKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIFBsdWdpbkRhdGFiYXNl
ICpkYiA9IFBsdWdpbkRhdGFiYXNlOjppbnN0YWxsZWRQbHVnaW5zKCk7Ci0gICAgY29uc3QgVmVj
dG9yPFBsdWdpblBhY2thZ2UqPiAmcGx1Z2lucyA9IGRiLT5wbHVnaW5zKCk7Ci0KLSAgICBmb3Ig
KHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBsdWdpbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
UGx1Z2luSW5mbyBpbmZvOwotICAgICAgICBQbHVnaW5QYWNrYWdlKiBwYWNrYWdlID0gcGx1Z2lu
c1tpXTsKLQotICAgICAgICBpbmZvLm5hbWUgPSBwYWNrYWdlLT5uYW1lKCk7Ci0gICAgICAgIGlu
Zm8uZmlsZSA9IHBhY2thZ2UtPmZpbGVOYW1lKCk7Ci0gICAgICAgIGluZm8uZGVzYyA9IHBhY2th
Z2UtPmRlc2NyaXB0aW9uKCk7Ci0KLSAgICAgICAgY29uc3QgTUlNRVRvRGVzY3JpcHRpb25zTWFw
JiBtaW1lVG9EZXNjcmlwdGlvbnMgPSBwYWNrYWdlLT5taW1lVG9EZXNjcmlwdGlvbnMoKTsKLSAg
ICAgICAgTUlNRVRvRGVzY3JpcHRpb25zTWFwOjpjb25zdF9pdGVyYXRvciBlbmQgPSBtaW1lVG9E
ZXNjcmlwdGlvbnMuZW5kKCk7Ci0gICAgICAgIGZvciAoTUlNRVRvRGVzY3JpcHRpb25zTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IG1pbWVUb0Rlc2NyaXB0aW9ucy5iZWdpbigpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKLSAgICAgICAgICAgIE1pbWVDbGFzc0luZm8gbWltZTsKLQotICAgICAgICAgICAg
bWltZS50eXBlID0gaXQtPmZpcnN0OwotICAgICAgICAgICAgbWltZS5kZXNjID0gaXQtPnNlY29u
ZDsKLSAgICAgICAgICAgIG1pbWUuZXh0ZW5zaW9ucyA9IHBhY2thZ2UtPm1pbWVUb0V4dGVuc2lv
bnMoKS5nZXQobWltZS50eXBlKTsKLQotICAgICAgICAgICAgaW5mby5taW1lcy5hcHBlbmQobWlt
ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBtX3BsdWdpbnMuYXBwZW5kKGluZm8pOwotICAgIH0K
LX0KLQotdm9pZCBQbHVnaW5EYXRhOjpyZWZyZXNoKCkKLXsKLSAgICBQbHVnaW5EYXRhYmFzZSAq
ZGIgPSBQbHVnaW5EYXRhYmFzZTo6aW5zdGFsbGVkUGx1Z2lucygpOwotICAgIGRiLT5yZWZyZXNo
KCk7Ci19Ci0KLX07CmRpZmYgLS1naXQgYS9XZWJLaXQucHJpIGIvV2ViS2l0LnByaQppbmRleCA5
NmRkNmM1Li44MDlhMDkwIDEwMDY0NAotLS0gYS9XZWJLaXQucHJpCisrKyBiL1dlYktpdC5wcmkK
QEAgLTU2LDYgKzU2LDggQEAgQ09ORklHKHJlbGVhc2UsIGRlYnVnfHJlbGVhc2UpIHsKICAgICBE
RUZJTkVTICs9IE5ERUJVRwogfQogCitERUZJTkVTICs9IFdURl9VU0VfUExBVEZPUk1fU1RSQVRF
R0lFUworCiBCQVNFX0RJUiA9ICQkUFdECiAKIHN5bWJpYW4gewpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAppbmRleCAx
Zjc1ZmEyLi4zZDc3MGQyIDEwMDY0NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAor
KysgYi9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtNjYsNiArNjYsNyBAQAogI2luY2x1
ZGUgIlNjcm9sbGJhci5oIgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVz
UXQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJQbHVnaW5E
YXRhYmFzZS5oIgogI2luY2x1ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtMjY2LDYgKzI2Nyw3
IEBAIFFXZWJQYWdlUHJpdmF0ZTo6UVdlYlBhZ2VQcml2YXRlKFFXZWJQYWdlICpxcSkKICAgICBX
ZWJDb3JlOjpJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3NhcnkoKTsKICAgICBTY3Jp
cHRDb250cm9sbGVyOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAgICAgV1RGOjppbml0aWFsaXpl
TWFpblRocmVhZCgpOworICAgIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llc1F0Ojppbml0aWFs
aXplKCk7CiAgICAgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnNldExvY2FsTG9hZFBvbGljeShX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6QWxsb3dMb2NhbExvYWRzRm9yTG9jYWxBbmRTdWJzdGl0
dXRlRGF0YSk7CiAjaWYgUVRfVkVSU0lPTiA8IFFUX1ZFUlNJT05fQ0hFQ0soNCwgNywgMCkKICAg
ICBXZWJDb3JlOjpGb250OjpzZXRDb2RlUGF0aChXZWJDb3JlOjpGb250OjpDb21wbGV4KTsKZGlm
ZiAtLWdpdCBhL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4
IGJkNGIyYzIuLjkxMjdmMWQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEwLTA5LTE2ICBCYWxhenMg
S2VsZW1lbiAgPGtiQGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFVzZSBQbGF0Zm9ybVN0cmF0ZWdpZXMgdG8gbm90
IGJyZWFrIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1ODU3CisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdl
YlBhZ2VQcml2YXRlOjpRV2ViUGFnZVByaXZhdGUpOgorICAgICAgICBDYWxsIFBsYXRmb3JtU3Ry
YXRlZ2llc1F0Ojppbml0aWFsaXplLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1BsYXRmb3Jt
U3RyYXRlZ2llc1F0LmNwcDogQWRkZWQuCisgICAgICAgIEltcGxlbWVudCBQbGF0Zm9ybVN0cmF0
ZWdpZXMsIFBsdWdpblN0cmF0ZWd5IGFuZCBWaXNpdGVkTGlua1N0cmF0ZWd5LgorICAgICAgICAo
V2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmluaXRpYWxpemUpOiBDcmVhdGUgc2luZ2xl
dG9uIGluc3RhbmNlLgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OlBs
YXRmb3JtU3RyYXRlZ2llc1F0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2ll
c1F0OjpjcmVhdGVQbHVnaW5TdHJhdGVneSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3kpOiBTZWVtcyB0byBiZSB1bnJl
YWNoYWJsZS4KKyAgICAgICAgQWRkZWQgQVNTRVJUX05PVF9SRUFDSEVEKCkgYmVjYXVzZSBMb2Nh
bGl6YXRpb25TdHJhdGVneSBpcyBub3QgaW1wbGVtZW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Y3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSk6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6Z2V0UGx1Z2luSW5mbyk6IERvIHRoZSBz
YW1lIGFzIHdlIGRpZCBiZWZvcmUuCisgICAgICAgIFRoZSBjb2RlIHdhcyB0YWtlbiBmcm9tIFBs
dWdpbkRhdGFRdC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6
cmVmcmVzaFBsdWdpbnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRl
Z2llc1F0Ojppc0xpbmtWaXNpdGVkKTogRG8gdGhlIHNhbWUgYXMgd2UgZGlkIGJlZm9yZS4KKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llc1F0OjphZGRWaXNpdGVkTGluayk6IERv
IHRoZSBzYW1lIGFzIHdlIGRpZCBiZWZvcmUuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvUGxh
dGZvcm1TdHJhdGVnaWVzUXQuaDogQWRkZWQuCisKIDIwMTAtMDktMTYgIFJvYmVydCBIb2dhbiAg
PHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMu
CmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVz
UXQuY3BwIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMjg3ODI4Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1F0LmNw
cApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzUXQuaCIKKworI2luY2x1ZGUg
IkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudFF0LmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNlLmgiCisj
aW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgorI2luY2x1ZGUgPHFnbG9iYWwuaD4KKyNpbmNsdWRl
IDxxd2VicGFnZS5oPgorI2luY2x1ZGUgPHF3ZWJwbHVnaW5mYWN0b3J5Lmg+CisjaW5jbHVkZSAi
U3RkTGliRXh0cmFzLmgiCisjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCit2b2lkIFBsYXRmb3JtU3RyYXRlZ2llc1F0Ojppbml0aWFsaXplKCkKK3sKKyAg
ICBERUZJTkVfU1RBVElDX0xPQ0FMKFBsYXRmb3JtU3RyYXRlZ2llc1F0LCBpbnN0YW5jZSwgKCkp
OworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7Cit9CisKK1BsYXRmb3JtU3RyYXRlZ2llc1F0
OjpQbGF0Zm9ybVN0cmF0ZWdpZXNRdCgpCit7CisgICAgc2V0UGxhdGZvcm1TdHJhdGVnaWVzKHRo
aXMpOworfQorCitQbHVnaW5TdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmNyZWF0ZVBs
dWdpblN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKworTG9jYWxpemF0aW9uU3Ry
YXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneSgp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Zpc2l0
ZWRMaW5rU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1F0OjpjcmVhdGVWaXNpdGVkTGlua1N0
cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKwordm9pZCBQbGF0Zm9ybVN0cmF0ZWdp
ZXNRdDo6Z2V0UGx1Z2luSW5mbyhjb25zdCBQYWdlKiBwYWdlLCBWZWN0b3I8UGx1Z2luSW5mbz4m
IHBsdWdpbnMpCit7CisgICAgUVdlYlBhZ2UqIHdlYlBhZ2UgPSBzdGF0aWNfY2FzdDxDaHJvbWVD
bGllbnRRdCo+KHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKSktPm1fd2ViUGFnZTsKKyAgICBRV2Vi
UGx1Z2luRmFjdG9yeSogZmFjdG9yeSA9IHdlYlBhZ2UtPnBsdWdpbkZhY3RvcnkoKTsKKyAgICBp
ZiAoZmFjdG9yeSkgeworICAgICAgICBRTGlzdDxRV2ViUGx1Z2luRmFjdG9yeTo6UGx1Z2luPiBx
cGx1Z2lucyA9IGZhY3RvcnktPnBsdWdpbnMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBxcGx1Z2lucy5jb3VudCgpOyArK2kpIHsKKyAgICAgICAgICAgIGNvbnN0IFFXZWJQbHVnaW5G
YWN0b3J5OjpQbHVnaW4mIHFwbHVnaW4gPSBxcGx1Z2lucy5hdChpKTsKKworICAgICAgICAgICAg
UGx1Z2luSW5mbyBpbmZvOworICAgICAgICAgICAgaW5mby5uYW1lID0gcXBsdWdpbi5uYW1lOwor
ICAgICAgICAgICAgaW5mby5kZXNjID0gcXBsdWdpbi5kZXNjcmlwdGlvbjsKKworICAgICAgICAg
ICAgZm9yIChpbnQgaiA9IDA7IGogPCBxcGx1Z2luLm1pbWVUeXBlcy5jb3VudCgpOyArK2opIHsK
KyAgICAgICAgICAgICAgICBjb25zdCBRV2ViUGx1Z2luRmFjdG9yeTo6TWltZVR5cGUmIG1pbWVU
eXBlID0gcXBsdWdpbi5taW1lVHlwZXMuYXQoaik7CisKKyAgICAgICAgICAgICAgICBNaW1lQ2xh
c3NJbmZvIG1pbWVJbmZvOworICAgICAgICAgICAgICAgIG1pbWVJbmZvLnR5cGUgPSBtaW1lVHlw
ZS5uYW1lOworICAgICAgICAgICAgICAgIG1pbWVJbmZvLmRlc2MgPSBtaW1lVHlwZS5kZXNjcmlw
dGlvbjsKKyAgICAgICAgICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IG1pbWVUeXBlLmZpbGVF
eHRlbnNpb25zLmNvdW50KCk7ICsraykKKyAgICAgICAgICAgICAgICAgICAgbWltZUluZm8uZXh0
ZW5zaW9ucy5hcHBlbmQobWltZVR5cGUuZmlsZUV4dGVuc2lvbnMuYXQoaykpOworCisgICAgICAg
ICAgICAgICAgaW5mby5taW1lcy5hcHBlbmQobWltZUluZm8pOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBwbHVnaW5zLmFwcGVuZChpbmZvKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IFBsdWdpbkRhdGFiYXNlKiBkYiA9IFBsdWdpbkRhdGFiYXNlOjppbnN0YWxsZWRQbHVnaW5zKCk7
CisgICAgY29uc3QgVmVjdG9yPFBsdWdpblBhY2thZ2UqPiYgcGFja2FnZXMgPSBkYi0+cGx1Z2lu
cygpOworCisgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwbHVnaW5zLnNpemUoKTsg
KytpKSB7CisgICAgICAgIFBsdWdpbkluZm8gaW5mbzsKKyAgICAgICAgUGx1Z2luUGFja2FnZSog
cGFja2FnZSA9IHBhY2thZ2VzW2ldOworCisgICAgICAgIGluZm8ubmFtZSA9IHBhY2thZ2UtPm5h
bWUoKTsKKyAgICAgICAgaW5mby5maWxlID0gcGFja2FnZS0+ZmlsZU5hbWUoKTsKKyAgICAgICAg
aW5mby5kZXNjID0gcGFja2FnZS0+ZGVzY3JpcHRpb24oKTsKKworICAgICAgICBjb25zdCBNSU1F
VG9EZXNjcmlwdGlvbnNNYXAmIG1pbWVUb0Rlc2NyaXB0aW9ucyA9IHBhY2thZ2UtPm1pbWVUb0Rl
c2NyaXB0aW9ucygpOworICAgICAgICBNSU1FVG9EZXNjcmlwdGlvbnNNYXA6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IG1pbWVUb0Rlc2NyaXB0aW9ucy5lbmQoKTsKKyAgICAgICAgZm9yIChNSU1FVG9E
ZXNjcmlwdGlvbnNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbWltZVRvRGVzY3JpcHRpb25zLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgTWltZUNsYXNzSW5mbyBtaW1l
OworCisgICAgICAgICAgICBtaW1lLnR5cGUgPSBpdC0+Zmlyc3Q7CisgICAgICAgICAgICBtaW1l
LmRlc2MgPSBpdC0+c2Vjb25kOworICAgICAgICAgICAgbWltZS5leHRlbnNpb25zID0gcGFja2Fn
ZS0+bWltZVRvRXh0ZW5zaW9ucygpLmdldChtaW1lLnR5cGUpOworCisgICAgICAgICAgICBpbmZv
Lm1pbWVzLmFwcGVuZChtaW1lKTsKKyAgICAgICAgfQorCisgICAgICAgIHBsdWdpbnMuYXBwZW5k
KGluZm8pOworICAgIH0KK30KKwordm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNRdDo6cmVmcmVzaFBs
dWdpbnMoKQoreworICAgIFBsdWdpbkRhdGFiYXNlKiBkYiA9IFBsdWdpbkRhdGFiYXNlOjppbnN0
YWxsZWRQbHVnaW5zKCk7CisgICAgZGItPnJlZnJlc2goKTsKK30KKworYm9vbCBQbGF0Zm9ybVN0
cmF0ZWdpZXNRdDo6aXNMaW5rVmlzaXRlZChQYWdlKiBwYWdlLCBMaW5rSGFzaCBoYXNoKQorewor
ICAgIHJldHVybiBwYWdlLT5ncm91cCgpLmlzTGlua1Zpc2l0ZWQoaGFzaCk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1TdHJhdGVnaWVzUXQ6OmFkZFZpc2l0ZWRMaW5rKFBhZ2UqIHBhZ2UsIExpbmtIYXNo
IGhhc2gpCit7CisgICAgcmV0dXJuIHBhZ2UtPmdyb3VwKCkuYWRkVmlzaXRlZExpbmtIYXNoKGhh
c2gpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaCBiL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNRdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmJmZTk0ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzUXQuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVU5JVkVS
U0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBVTklWRVJT
SVRZIE9GIFNaRUdFRCBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1TdHJhdGVnaWVzUXRfaAorI2RlZmluZSBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdF9oCisKKyNpbmNsdWRlICJMaW5rSGFzaC5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIlBsdWdpblN0cmF0ZWd5LmgiCisjaW5jbHVk
ZSAiVmlzaXRlZExpbmtTdHJhdGVneS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IFBsYXRmb3JtU3RyYXRlZ2llc1F0IDogcHVibGljIFBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0
ZSBQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBWaXNpdGVkTGlua1N0cmF0ZWd5IHsKKyAgICBQbGF0
Zm9ybVN0cmF0ZWdpZXNRdCgpOworCisgICAgLy8gUGxhdGZvcm1TdHJhdGVnaWVzCisgICAgdmly
dHVhbCBQbHVnaW5TdHJhdGVneSogY3JlYXRlUGx1Z2luU3RyYXRlZ3koKTsKKyAgICB2aXJ0dWFs
IExvY2FsaXphdGlvblN0cmF0ZWd5KiBjcmVhdGVMb2NhbGl6YXRpb25TdHJhdGVneSgpOworICAg
IHZpcnR1YWwgVmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgp
OworCisgICAgLy8gUGx1Z2luU3RyYXRlZ3kKKyAgICB2aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdp
bnMoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UGx1Z2luSW5mbyhjb25zdCBQYWdlKiwgVmVjdG9y
PFBsdWdpbkluZm8+Jik7CisKKyAgICAvLyBWaXNpdGVkTGlua1N0cmF0ZWd5CisgICAgdmlydHVh
bCBib29sIGlzTGlua1Zpc2l0ZWQoUGFnZSosIExpbmtIYXNoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
YWRkVmlzaXRlZExpbmsoUGFnZSosIExpbmtIYXNoKTsKKworcHVibGljOgorICAgIHN0YXRpYyB2
b2lkIGluaXRpYWxpemUoKTsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg3MzJkYTkuLmNlNjY5NjUgMTAw
NjQ0Ci0tLSBhL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0y
LDYgKzIsMTggQEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAg
ICAgICBbUXRdIFVzZSBQbGF0Zm9ybVN0cmF0ZWdpZXMgdG8gbm90IGJyZWFrIFdlYktpdDIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1ODU3CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwOgorICAgICAgICAoUVdLUGFnZVBy
aXZhdGU6OlFXS1BhZ2VQcml2YXRlKToKKyAgICAgICAgQ2FsbCBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmluaXRpYWxpemUuCisgICAgICAgICogV2ViS2l0Mi5wcm86IEFkZCBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMgdG8gdGhlIGJ1aWxkLgorCisyMDEwLTA5LTE2ICBCYWxhenMgS2VsZW1lbiAgPGti
QGluZi51LXN6ZWdlZC5odT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KwogICAgICAgICBQbHVnaW5TdHJhdGVneSBzaG91bGQgc2F0aXNmaWVzIHRoZSBuZWVkcyBvZiBR
dAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU4NTcK
ICAgICAgICAgTm8gbmV3IGZ1bmN0aW9uYWxpdHkgc28gbm8gbmV3IHRlc3RzLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a3BhZ2UuY3BwIGIvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L3F3a3BhZ2UuY3BwCmluZGV4IDcyM2FhMGIuLmJjMTMzMGIgMTAwNjQ0Ci0tLSBh
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmNwcAorKysgYi9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrcGFnZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDbGll
bnRJbXBsLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgogI2luY2x1ZGUgIldlYkV2
ZW50RmFjdG9yeVF0LmgiCisjaW5jbHVkZSAiV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5j
bHVkZSAiV0tTdHJpbmdRdC5oIgogI2luY2x1ZGUgIldLVVJMUXQuaCIKICNpbmNsdWRlIDxRQWN0
aW9uPgpAQCAtNDUsNiArNDYsNyBAQCBRV0tQYWdlUHJpdmF0ZTo6UVdLUGFnZVByaXZhdGUoUVdL
UGFnZSogcXEsIFdLUGFnZU5hbWVzcGFjZVJlZiBuYW1lc3BhY2VSZWYpCiAgICAgOiBxKHFxKQog
ICAgICwgY3JlYXRlTmV3UGFnZUZuKDApCiB7CisgICAgV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmluaXRpYWxpemUoKTsKICAgICBtZW1zZXQoYWN0aW9ucywgMCwgc2l6ZW9mKGFjdGlv
bnMpKTsKICAgICBwYWdlID0gdG9XSyhuYW1lc3BhY2VSZWYpLT5jcmVhdGVXZWJQYWdlKCk7CiAg
ICAgcGFnZS0+c2V0UGFnZUNsaWVudCh0aGlzKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViS2l0
Mi5wcm8gYi9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4IDI5ODc1NjEuLjFjMTM1ZDMgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi5wcm8KKysrIGIvV2ViS2l0Mi9XZWJLaXQyLnBybwpAQCAt
MjU1LDYgKzI1NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQb3B1cE1lbnUuaCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJTZWFyY2hQ
b3B1cE1lbnUuaCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9xdC9XZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggXAogICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9DaHVua2VkVXBkYXRl
RHJhd2luZ0FyZWEuaCBcCkBAIC0zNjksNiArMzcwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkJhY2tGb3J3YXJkQ29udHJvbGxlckNsaWVudC5jcHAg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUG9wdXBNZW51LmNwcCBcCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgXAogICAg
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvcXQvV2ViRXJyb3JzUXQuY3BwIFwKICAgICBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3F0L1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwIFwK
</data>

          </attachment>
      

    </bug>

</bugzilla>