<?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>54516</bug_id>
          
          <creation_ts>2011-02-15 17:45:46 -0800</creation_ts>
          <short_desc>[chromium] Add WebKit Chromium hooks allowing access to NetworkStateNotifier</short_desc>
          <delta_ts>2011-02-24 07:49:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Adam Klein">adamk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eroman</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351775</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-15 17:45:46 -0800</bug_when>
    <thetext>[chromium] Add code to WebView to allow Chromium access to NetworkStateNotifier</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351780</commentid>
    <comment_count>1</comment_count>
      <attachid>82562</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-15 17:49:09 -0800</bug_when>
    <thetext>Created attachment 82562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351781</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-15 17:51:35 -0800</bug_when>
    <thetext>This is a prerequisite for fixing http://crbug.com/7469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351871</commentid>
    <comment_count>3</comment_count>
      <attachid>82562</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-15 21:30:16 -0800</bug_when>
    <thetext>Comment on attachment 82562
Patch

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

&gt; Source/WebKit/chromium/public/WebView.h:370
&gt; +    WEBKIT_API static void networkStateChange(bool onLine);

nit: I&apos;m not sure that this makes best sense on WebView.  Other things in WebKit could
care about the network state.  A new, separate header file would be OK, even though it
would only have a single method in it.

Also, it is increasingly popular in WebKit code to avoid functions that just take a bool
parameter (unless the function is a setter for a boolean property).  Instead, people
prefer using enums or separate functions so that code at call-sites is more readable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352238</commentid>
    <comment_count>4</comment_count>
      <attachid>82671</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-16 11:59:51 -0800</bug_when>
    <thetext>Created attachment 82671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352243</commentid>
    <comment_count>5</comment_count>
      <attachid>82562</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-16 12:02:07 -0800</bug_when>
    <thetext>Comment on attachment 82562
Patch

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

&gt;&gt; Source/WebKit/chromium/public/WebView.h:370
&gt;&gt; +    WEBKIT_API static void networkStateChange(bool onLine);
&gt; 
&gt; nit: I&apos;m not sure that this makes best sense on WebView.  Other things in WebKit could
&gt; care about the network state.  A new, separate header file would be OK, even though it
&gt; would only have a single method in it.
&gt; 
&gt; Also, it is increasingly popular in WebKit code to avoid functions that just take a bool
&gt; parameter (unless the function is a setter for a boolean property).  Instead, people
&gt; prefer using enums or separate functions so that code at call-sites is more readable.

Thanks for the feedback, this is my first time extending the WebKit API so I knew I&apos;d make some blunders.  I&apos;ve created WebNetworkStateNotifier.{h,cpp}, and changed both it and WebCore::NetworkStateNotifier to use an enum to pass this information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356211</commentid>
    <comment_count>6</comment_count>
      <attachid>82671</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-23 11:01:57 -0800</bug_when>
    <thetext>Comment on attachment 82671
Patch

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

&gt; Source/WebCore/platform/network/NetworkStateNotifier.h:73
&gt; +    void networkStateChange(bool online);

It might be nice to keep the ANDROID and CHROMIUM ports similar.

It might also make more sense to name this function as a setter
for the onLine property.  setOnLine(bool onLine)

This way you do not need to define an enum at this level, and it
nicely mirrors the NetworkStateNotifier::onLine getter.

If you go the setOnLine route, you could define that in
NetworkStateNotifier.cpp behind an #ifdef as it would be the
trivial implementation that other ports could also use.  This
would allow you to kill NetworkStateNotifierAndroid.cpp and
NetworkStateNotifierChromium.cpp.

&gt; Source/WebKit/chromium/public/WebNetworkStateNotifier.h:38
&gt; +class WebNetworkStateNotifier {

Given my comments about WebCore::NetworkStateNotifier.  I now wonder
if this shouldn&apos;t just become a simple setter too: setOnLine(bool onLine)

I think the name of the method &quot;networkStateChange&quot; led me to want to
define enums, but when a simple boolean property setter will do, it seems
like it is better to just go with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356231</commentid>
    <comment_count>7</comment_count>
      <attachid>82671</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-23 11:16:04 -0800</bug_when>
    <thetext>Comment on attachment 82671
Patch

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

&gt;&gt; Source/WebCore/platform/network/NetworkStateNotifier.h:73
&gt;&gt; +    void networkStateChange(bool online);
&gt; 
&gt; It might be nice to keep the ANDROID and CHROMIUM ports similar.
&gt; 
&gt; It might also make more sense to name this function as a setter
&gt; for the onLine property.  setOnLine(bool onLine)
&gt; 
&gt; This way you do not need to define an enum at this level, and it
&gt; nicely mirrors the NetworkStateNotifier::onLine getter.
&gt; 
&gt; If you go the setOnLine route, you could define that in
&gt; NetworkStateNotifier.cpp behind an #ifdef as it would be the
&gt; trivial implementation that other ports could also use.  This
&gt; would allow you to kill NetworkStateNotifierAndroid.cpp and
&gt; NetworkStateNotifierChromium.cpp.

I actually used setOnLine originally, but switched to networkStateChange to match Android. And then to the enum once the name didn&apos;t make the bool parameter clear.

The trouble with setOnLine is that I can&apos;t fully unify Android and Chromium, as Android calls into this code directly: http://codesearch.google.com/codesearch/p?hl=en#N6Qhr5kJSgQ/WebKit/android/jni/JavaBridge.cpp&amp;q=%5C.networkStateChange%5C(&amp;sa=N&amp;cd=1&amp;ct=rc&amp;l=352

So I can switch to setOnLine, and get rid of NetworkStateNotifierAndroid.cpp, but will still need some #if PLATFORM(ANDROID) code in the header file to forward from networkStateChange() to setOnLine.  Which is probably acceptable, so I&apos;ll go that route.

&gt;&gt; Source/WebKit/chromium/public/WebNetworkStateNotifier.h:38
&gt;&gt; +class WebNetworkStateNotifier {
&gt; 
&gt; Given my comments about WebCore::NetworkStateNotifier.  I now wonder
&gt; if this shouldn&apos;t just become a simple setter too: setOnLine(bool onLine)
&gt; 
&gt; I think the name of the method &quot;networkStateChange&quot; led me to want to
&gt; define enums, but when a simple boolean property setter will do, it seems
&gt; like it is better to just go with that.

Indeed, it seems that this should be setOnLine too.  The only advantage of the &quot;networkStateChange&quot; name is that it implies when it will be called. But given the known flakiness of that signal, and that setOnLine will already check internally that it actually _is_ a change, I think it&apos;s fine to lose that information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356285</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-02-23 12:05:01 -0800</bug_when>
    <thetext>&gt; Indeed, it seems that this should be setOnLine too.  The only advantage of the &quot;networkStateChange&quot; name is that it implies when it will be called. But given the known flakiness of that signal, and that setOnLine will already check internally that it actually _is_ a change, I think it&apos;s fine to lose that information.

Cool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356299</commentid>
    <comment_count>9</comment_count>
      <attachid>83521</attachid>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-23 12:19:27 -0800</bug_when>
    <thetext>Created attachment 83521
Switched to setOnLine, consolidated Chromium and Android</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356301</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Klein">adamk</who>
    <bug_when>2011-02-23 12:20:47 -0800</bug_when>
    <thetext>Note that I didn&apos;t see any references to NetworkStateNotifierAndroid.cpp in the Android makefiles, so I didn&apos;t make any build changes relating to that removal.  Not sure how to test that this won&apos;t break the Android build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356986</commentid>
    <comment_count>11</comment_count>
      <attachid>83521</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-24 07:49:35 -0800</bug_when>
    <thetext>Comment on attachment 83521
Switched to setOnLine, consolidated Chromium and Android

Clearing flags on attachment: 83521

Committed r79563: &lt;http://trac.webkit.org/changeset/79563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356987</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-24 07:49:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82562</attachid>
            <date>2011-02-15 17:49:09 -0800</date>
            <delta_ts>2011-02-16 12:02:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54516-20110215174908.patch</filename>
            <type>text/plain</type>
            <size>9044</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg1ODYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMWNhN2Y3MjY4MzQ3ODFi
YmM5YzA5M2I1NzA2YmRhM2Y5ZjIwZmE2Li4wZjFhMTJjYjkxMjc3NDRiYWU1YzAyYmU5ZmUxM2M2
OTViMzI4M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTUgIEFkYW0g
S2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgY29kZSB0byBXZWJWaWV3IHRvIGFs
bG93IENocm9taXVtIGFjY2VzcyB0byBOZXR3b3JrU3RhdGVOb3RpZmllcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1MTYKKworICAgICAgICBHaXZl
IENocm9taXVtJ3MgTmV0d29ya1N0YXRlTm90aWZpZXIgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHRo
ZSB2YWx1ZQorICAgICAgICBvZiBtX2lzT25MaW5lLCByYXRoZXIgdGhhbiBtYWtpbmcgaXQgYWx3
YXlzIHRydWUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBub3Qgc3VyZSBob3cgdG8gdGVzdCB0
aGlzLiBObyBvdGhlciBMYXlvdXRUZXN0cyBzZWVtCisgICAgICAgIHRvIGV4ZXJjaXNlIG5hdmln
YXRvci5vbkxpbmUuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJDaHJvbWl1bS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpOZXR3b3JrU3RhdGVOb3RpZmllcjo6bmV0d29ya1N0YXRlQ2hhbmdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJp
dmF0ZS5oOiBSZW1vdmVkLgorCiAyMDExLTAyLTE1ICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSdWJiZXItc3RhbXBlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IDdhODY4ZjBmNmE2NWY4ZTYwZTAxZWQ3ODU2Mjc0ZTkyYTA3NGYxMjEu
LjFlY2MwMWY0N2Y2M2Q4MTRlNGIyYTdmODA1NjFlNmU1ODUwNzA1NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKQEAgLTMxMjgsNyArMzEyOCw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9j
aHJvbWl1bS9Db29raWVKYXJDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vRE5TQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL05ldHdvcmtTdGF0ZU5vdGlmaWVyQ2hyb21pdW0uY3BwJywKLSAgICAg
ICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJp
dmF0ZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNl
RXJyb3IuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJj
ZVJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jl
c291cmNlUmVxdWVzdC5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaAppbmRleCAyNmY4ZDhhOTU4YTQwNWFlOTdmMmUy
YmZkZTIyNmVkNWIwMDY0Y2VkLi5hYmU0NWFkMzVkYmFiNzQxNzI0M2ZmMDkxOGExMTZmMzg0NjMz
ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dGF0ZU5vdGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JrU3RhdGVOb3RpZmllci5oCkBAIC0zNywxMCArMzcsNiBAQAogdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgX19DRkFycmF5ICogQ0ZBcnJheVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IF9fU0NEeW5h
bWljU3RvcmUgKiBTQ0R5bmFtaWNTdG9yZVJlZjsKIAotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0KLSNpbmNsdWRlICJOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGUuaCIKLQogI2VsaWYgUExB
VEZPUk0oV0lOKQogCiAjaW5jbHVkZSA8d2luZG93cy5oPgpAQCAtNzIsNiArNjgsMTAgQEAgcHVi
bGljOgogCiAjaWYgKFBMQVRGT1JNKFFUKSAmJiBFTkFCTEUoUVRfQkVBUkVSKSkKICAgICB2b2lk
IHNldE5ldHdvcmtBY2Nlc3NBbGxvd2VkKGJvb2wpOworCisjZWxpZiBQTEFURk9STShBTkRST0lE
KSB8fCBQTEFURk9STShDSFJPTUlVTSkKKyAgICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZShib29s
IG9ubGluZSk7CisKICNlbmRpZgogCiBwcml2YXRlOiAgICAKQEAgLTk3LDIwICs5NywxMyBAQCBw
cml2YXRlOgogICAgIEhBTkRMRSBtX3dhaXRIYW5kbGU7CiAgICAgT1ZFUkxBUFBFRCBtX292ZXJs
YXBwZWQ7CiAKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIE5ldHdvcmtTdGF0ZU5vdGlm
aWVyUHJpdmF0ZSBwOwotCi0jZWxpZiBQTEFURk9STShBTkRST0lEKQotcHVibGljOgotICAgIHZv
aWQgbmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgb25saW5lKTsKLQogI2VsaWYgUExBVEZPUk0oUVQp
ICYmIEVOQUJMRShRVF9CRUFSRVIpCiAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTdGF0ZU5vdGlm
aWVyUHJpdmF0ZTsKICAgICBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGUqIHA7CiAjZW5kaWYK
IH07CiAKLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0o
Q0hST01JVU0pICYmICEoUExBVEZPUk0oUVQpICYmIEVOQUJMRShRVF9CRUFSRVIpKQorI2lmICFQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShXSU4pICYmICEoUExBVEZPUk0oUVQpICYmIEVOQUJM
RShRVF9CRUFSRVIpKQogCiBpbmxpbmUgTmV0d29ya1N0YXRlTm90aWZpZXI6Ok5ldHdvcmtTdGF0
ZU5vdGlmaWVyKCkKICAgICA6IG1faXNPbkxpbmUodHJ1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJDaHJv
bWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL05ldHdv
cmtTdGF0ZU5vdGlmaWVyQ2hyb21pdW0uY3BwCmluZGV4IDNiMjhmYmQ1N2EwZmI3NTYyZDM1MjM1
ZjJkNzdjZjg5ZTE3NDA2NzIuLmZmOGFkMDM5N2Q3Y2E2MTNmNzJjY2YyODc0MzYyOTlhOGVhNTFm
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0v
TmV0d29ya1N0YXRlTm90aWZpZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9OZXR3b3JrU3RhdGVOb3RpZmllckNocm9taXVtLmNwcApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDgsIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMDgtMjAxMSwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC0zMywxOCArMzMsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBDaHJv
bWl1bSBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IG5ldHdvcmsgc3RhdGUgbm90aWZpY2F0aW9u
cy4gVGhpcyBjYXVzZXMKLS8vIGFuIGV4dHJhIERMTCB0byBnZXQgbG9hZGVkIGludG8gdGhlIHJl
bmRlcmVyIHdoaWNoIGNhbiBzbG93IHRoaW5ncyBkb3duIGEKLS8vIGJpdC4gV2UgbWF5IHdhbnQg
YW4gYWx0ZXJuYXRlIGRlc2lnbi4KLQotdm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6dXBkYXRl
U3RhdGUoKQordm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6bmV0d29ya1N0YXRlQ2hhbmdlKGJv
b2wgb25MaW5lKQogewotfQorICAgIGlmIChtX2lzT25MaW5lID09IG9uTGluZSkKKyAgICAgICAg
cmV0dXJuOwogCi1OZXR3b3JrU3RhdGVOb3RpZmllcjo6TmV0d29ya1N0YXRlTm90aWZpZXIoKQot
ICAgIDogbV9pc09uTGluZSh0cnVlKQotICAgICwgbV9uZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rp
b24oMCkKLXsKKyAgICBtX2lzT25MaW5lID0gb25MaW5lOworCisgICAgaWYgKG1fbmV0d29ya1N0
YXRlQ2hhbmdlZEZ1bmN0aW9uKQorICAgICAgICBtX25ldHdvcmtTdGF0ZUNoYW5nZWRGdW5jdGlv
bigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9OZXR3b3JrU3Rh
dGVOb3RpZmllclByaXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzYyOGQ1
OWFmYjVkYmY1YTZmNzRjMjhkN2NiYjBjNjhhNGFiYjM1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAwOCwgR29vZ2xlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
ICogbWV0OgotICogCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKiAKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGVfaAot
I2RlZmluZSBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGVfaAotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLSAgICBzdHJ1Y3QgTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlIHt9OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCAyZWJlMjU1MDQ0MzJjMDIwYjJlY2RlN2Y5M2JkZWU3MTAwMTM3ZGRiLi44NWZmZjllNTAxNDI2
MTFhZWRlNTZjZTc3OTBkNTZlOWFjZjBiODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDExLTAyLTE1ICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtj
aHJvbWl1bV0gQWRkIGNvZGUgdG8gV2ViVmlldyB0byBhbGxvdyBDaHJvbWl1bSBhY2Nlc3MgdG8g
TmV0d29ya1N0YXRlTm90aWZpZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU0NTE2CisKKyAgICAgICAgQWRkIGEgc3RhdGljIG1ldGhvZCB0byBXZWJW
aWV3IHdoaWNoLCB3aGVuIGNhbGxlZCwgdXBkYXRlcyB0aGUKKyAgICAgICAgc2luZ2xldG9uIG5l
dHdvcmtTdGF0ZU5vdGlmaWVyKCkgd2l0aCB0aGUgbmV3IG9ubGluZSBzdGF0dXMuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViVmlldy5oOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXc6Om5ldHdvcmtTdGF0ZUNoYW5nZSk6CisKIDIwMTEtMDEt
MjYgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
CmluZGV4IDQyNDM5OThlYzIxMjk0MDRjZDVhZDgxZGY5NDY2NWMzNmQ3OWU4MjUuLmI0ZWRlZTZl
NGMzOTUyMjQ3YjYzOTc2YmUyZDAxNmVkMDlkYWY1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgKQEAgLTM2NCw2ICszNjQsMTEgQEAgcHVibGljOgogICAgIC8vIEFQ
SXMuCiAgICAgdmlydHVhbCBXZWJHcmFwaGljc0NvbnRleHQzRCogZ3JhcGhpY3NDb250ZXh0M0Qo
KSA9IDA7CiAKKyAgICAvLyBPbmxpbmUgc3RhdHVzIHN1cHBvcnQgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIC8vIFRlbGxzIGFsbCBXZWJWaWV3
IGluc3RhbmNlcyB0byBzZXQgdGhlIHN0YXRlIG9mIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lLgor
ICAgIFdFQktJVF9BUEkgc3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgb25MaW5l
KTsKKwogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3KCkge30KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMThhOTUzZWI2Y2ZlNGM0ZmYwNmI2ODZh
OTdlODc2ZjhmYzA1NTNhNC4uNWIxN2E4NWZhYzgxZmNiZWI0M2M4YWMwNzllN2VmNGY2NDg3NTRl
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNzIs
NiArNzIsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlICJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk5ldHdv
cmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgpAQCAtMjQzNSw0ICsyNDM2LDkgQEAg
V2ViR3JhcGhpY3NDb250ZXh0M0QqIFdlYlZpZXdJbXBsOjpncmFwaGljc0NvbnRleHQzRCgpCiAg
ICAgcmV0dXJuIDA7CiB9CiAKK3ZvaWQgV2ViVmlldzo6bmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wg
b25MaW5lKQoreworICAgIG5ldHdvcmtTdGF0ZU5vdGlmaWVyKCkubmV0d29ya1N0YXRlQ2hhbmdl
KG9uTGluZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82671</attachid>
            <date>2011-02-16 11:59:51 -0800</date>
            <delta_ts>2011-02-23 12:19:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54516-20110216115950.patch</filename>
            <type>text/plain</type>
            <size>13373</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMWNhN2Y3MjY4MzQ3ODFiYmM5YzA5M2I1NzA2YmRhM2Y5ZjIwZmE2Li5i
Y2FjM2MwNTE2MGNkM2I1MDdmNjY4MTJhZGQ4NWNlMjk3MjQ0NmVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTEtMDItMTUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9t
aXVtXSBBZGQgY29kZSB0byBXZWJLaXQgQ2hyb21pdW0gdG8gYWxsb3cgYWNjZXNzIHRvIE5ldHdv
cmtTdGF0ZU5vdGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUxNgorCisgICAgICAgIEdpdmUgQ2hyb21pdW0ncyBOZXR3b3JrU3RhdGVOb3Rp
ZmllciB0aGUgYWJpbGl0eSB0byBjaGFuZ2UgdGhlIHZhbHVlCisgICAgICAgIG9mIG1faXNPbkxp
bmUsIHJhdGhlciB0aGFuIG1ha2luZyBpdCBhbHdheXMgdHJ1ZS4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIG5vdCBzdXJlIGhvdyB0byB0ZXN0IHRoaXMuIE5vIG90aGVyIExheW91dFRlc3RzIHNl
ZW0KKyAgICAgICAgdG8gZXhlcmNpc2UgbmF2aWdhdG9yLm9uTGluZS4KKworICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlm
aWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9OZXR3b3JrU3RhdGVO
b3RpZmllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdGF0ZU5vdGlm
aWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hy
b21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlLmg6IFJlbW92ZWQuCisKIDIwMTEtMDIt
MTUgIEFuZHJhcyBCZWNzaSAgPGFiZWNzaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlci1z
dGFtcGVkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggN2E4NjhmMGY2YTY1
ZjhlNjBlMDFlZDc4NTYyNzRlOTJhMDc0ZjEyMS4uMWVjYzAxZjQ3ZjYzZDgxNGU0YjJhN2Y4MDU2
MWU2ZTU4NTA3MDU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzEyOCw3ICszMTI4LDYgQEAKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL0Nvb2tpZUphckNocm9taXVtLmNw
cCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9ETlNDaHJvbWl1bS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vTmV0d29ya1N0YXRl
Tm90aWZpZXJDaHJvbWl1bS5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hy
b21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VFcnJvci5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmgnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RhdGVOb3RpZmllci5o
CmluZGV4IDI2ZjhkOGE5NThhNDA1YWU5N2YyZTJiZmRlMjI2ZWQ1YjAwNjRjZWQuLmVmZDE3NGEy
NzE0ZTU2OTk2MzZmYjdjNTdkMGI4NjU2YWNiZGZjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmgKQEAgLTM3LDEw
ICszNyw2IEBACiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NGQXJyYXkgKiBDRkFycmF5UmVmOwog
dHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19TQ0R5bmFtaWNTdG9yZSAqIFNDRHluYW1pY1N0b3JlUmVm
OwogCi0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLQotI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5v
dGlmaWVyUHJpdmF0ZS5oIgotCiAjZWxpZiBQTEFURk9STShXSU4pCiAKICNpbmNsdWRlIDx3aW5k
b3dzLmg+CkBAIC03Miw2ICs2OCwxOCBAQCBwdWJsaWM6CiAKICNpZiAoUExBVEZPUk0oUVQpICYm
IEVOQUJMRShRVF9CRUFSRVIpKQogICAgIHZvaWQgc2V0TmV0d29ya0FjY2Vzc0FsbG93ZWQoYm9v
bCk7CisKKyNlbGlmIFBMQVRGT1JNKEFORFJPSUQpCisgICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFu
Z2UoYm9vbCBvbmxpbmUpOworCisjZWxpZiBQTEFURk9STShDSFJPTUlVTSkKKyAgICBlbnVtIFN0
YXRlIHsKKyAgICAgICAgT2ZmbGluZSwKKyAgICAgICAgT25saW5lCisgICAgfTsKKworICAgIHZv
aWQgbmV0d29ya1N0YXRlQ2hhbmdlKFN0YXRlKTsKKwogI2VuZGlmCiAKIHByaXZhdGU6ICAgIApA
QCAtOTcsMjAgKzEwNSwxMyBAQCBwcml2YXRlOgogICAgIEhBTkRMRSBtX3dhaXRIYW5kbGU7CiAg
ICAgT1ZFUkxBUFBFRCBtX292ZXJsYXBwZWQ7CiAKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQot
ICAgIE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZSBwOwotCi0jZWxpZiBQTEFURk9STShBTkRS
T0lEKQotcHVibGljOgotICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgb25saW5lKTsK
LQogI2VsaWYgUExBVEZPUk0oUVQpICYmIEVOQUJMRShRVF9CRUFSRVIpCiAgICAgZnJpZW5kIGNs
YXNzIE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZTsKICAgICBOZXR3b3JrU3RhdGVOb3RpZmll
clByaXZhdGUqIHA7CiAjZW5kaWYKIH07CiAKLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZP
Uk0oV0lOKSAmJiAhUExBVEZPUk0oQ0hST01JVU0pICYmICEoUExBVEZPUk0oUVQpICYmIEVOQUJM
RShRVF9CRUFSRVIpKQorI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShXSU4pICYmICEo
UExBVEZPUk0oUVQpICYmIEVOQUJMRShRVF9CRUFSRVIpKQogCiBpbmxpbmUgTmV0d29ya1N0YXRl
Tm90aWZpZXI6Ok5ldHdvcmtTdGF0ZU5vdGlmaWVyKCkKICAgICA6IG1faXNPbkxpbmUodHJ1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vTmV0
d29ya1N0YXRlTm90aWZpZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL05ldHdvcmtTdGF0ZU5vdGlmaWVyQ2hyb21pdW0uY3BwCmluZGV4IDNi
MjhmYmQ1N2EwZmI3NTYyZDM1MjM1ZjJkNzdjZjg5ZTE3NDA2NzIuLjBiMTZhMTBlMzBmMGFhODc0
MjBjMjc2ZjI3ZDQ3MmExMWRiNWM0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2hyb21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9OZXR3b3JrU3RhdGVO
b3RpZmllckNocm9taXVtLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMp
IDIwMDgtMjAxMSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIAogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMywxOCArMzMsMTYgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi0vLyBDaHJvbWl1bSBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IG5ldHdv
cmsgc3RhdGUgbm90aWZpY2F0aW9ucy4gVGhpcyBjYXVzZXMKLS8vIGFuIGV4dHJhIERMTCB0byBn
ZXQgbG9hZGVkIGludG8gdGhlIHJlbmRlcmVyIHdoaWNoIGNhbiBzbG93IHRoaW5ncyBkb3duIGEK
LS8vIGJpdC4gV2UgbWF5IHdhbnQgYW4gYWx0ZXJuYXRlIGRlc2lnbi4KLQotdm9pZCBOZXR3b3Jr
U3RhdGVOb3RpZmllcjo6dXBkYXRlU3RhdGUoKQordm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6
bmV0d29ya1N0YXRlQ2hhbmdlKFN0YXRlIHN0YXRlKQogewotfQorICAgIGJvb2wgb25MaW5lID0g
KHN0YXRlID09IE9ubGluZSk7CisgICAgaWYgKG1faXNPbkxpbmUgPT0gb25MaW5lKQorICAgICAg
ICByZXR1cm47CiAKLU5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpOZXR3b3JrU3RhdGVOb3RpZmllcigp
Ci0gICAgOiBtX2lzT25MaW5lKHRydWUpCi0gICAgLCBtX25ldHdvcmtTdGF0ZUNoYW5nZWRGdW5j
dGlvbigwKQoteworICAgIG1faXNPbkxpbmUgPSBvbkxpbmU7CisKKyAgICBpZiAobV9uZXR3b3Jr
U3RhdGVDaGFuZ2VkRnVuY3Rpb24pCisgICAgICAgIG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0
aW9uKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJQcml2
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL05ldHdvcmtT
dGF0ZU5vdGlmaWVyUHJpdmF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjI4
ZDU5YWZiNWRiZjVhNmY3NGMyOGQ3Y2JiMGM2OGE0YWJiMzVjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDA4LCBHb29nbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKiAKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqIAotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZV9o
Ci0jZGVmaW5lIE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZV9oCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotICAgIHN0cnVjdCBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGUge307Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmlu
ZGV4IDJlYmUyNTUwNDQzMmMwMjBiMmVjZGU3ZjkzYmRlZTcxMDAxMzdkZGIuLmE0N2MyNTlhNTUx
MDdiZGM0YzY5MjcxNzRiMWI0NTU0NGZlN2NiMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMTUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
W2Nocm9taXVtXSBBZGQgY29kZSB0byBXZWJLaXQgQ2hyb21pdW0gdG8gYWxsb3cgYWNjZXNzIHRv
IE5ldHdvcmtTdGF0ZU5vdGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD01NDUxNgorCisgICAgICAgIEFkZCBhIG5ldyBXZWJOZXR3b3JrU3RhdGVO
b3RpZmllciBjbGFzcyB3aXRoIGEgc2luZ2xlIHN0YXRpYyBtZXRob2QsCisgICAgICAgIG5ldHdv
cmtTdGF0ZUNoYW5nZSgpLCB3aGljaCBkaXNwYXRjaGVzIHRvIFdlYkNvcmUncyBzaW5nbGV0b24g
TmV0d29ya1N0YXRlTm90aWZpZXIuCisKKyAgICAgICAgKiBwdWJsaWMvV2ViTmV0d29ya1N0YXRl
Tm90aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVy
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpO
ZXR3b3JrU3RhdGVDaGFuZ2UpOgorCiAyMDExLTAxLTI2ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0
YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCBmMmFhMTA3ZmNmNWNmYTY4YTJjZGY5YjJmNGM3ZjY4
ZWM5MTJjMThhLi5jYjBiYmRjNzcwNTIzZGM5OWIxZDljNTIxZGViMDY4MTBkOGNjZDdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yMTksNiArMjE5LDcgQEAKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYk1pbWVSZWdpc3RyeS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYk5hbWVkTm9kZU1hcC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk5hdmlnYXRp
b25UeXBlLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViTmV0d29ya1N0YXRlTm90aWZp
ZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb2RlLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViTm9kZUNvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJOb2RlTGlzdC5oJywKQEAgLTUwNCw2ICs1MDUsNyBAQAogICAgICAgICAgICAgICAgICdz
cmMvV2ViTWVkaWFQbGF5ZXJDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJNZWRpYVBsYXllckNsaWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJOYW1l
ZE5vZGVNYXAuY3BwJywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlm
aWVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJOb2RlLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJOb2RlQ29sbGVjdGlvbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViTm9kZUxpc3QuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJOZXR3b3JrU3RhdGVOb3RpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5NDgxNmUwZDViNTI2
ODc1NjNmZmU2NDRjNzAwYTEzYmJiODQxYTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOZXR3b3JrU3RhdGVOb3RpZmllci5oCkBAIC0wLDAgKzEs
NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyX2gKKyNkZWZpbmUgV2ViTmV0d29y
a1N0YXRlTm90aWZpZXJfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJOZXR3b3JrU3RhdGVOb3RpZmllciB7CitwdWJsaWM6CisgICAg
ZW51bSBTdGF0ZSB7CisgICAgICAgIE9mZmxpbmUsCisgICAgICAgIE9ubGluZQorICAgIH07CisK
KyAgICBXRUJLSVRfQVBJIHN0YXRpYyB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZShTdGF0ZSk7CisK
K3ByaXZhdGU6CisgICAgV2ViTmV0d29ya1N0YXRlTm90aWZpZXIoKTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDgzNmNlNzdl
MTAzN2Y3YWMyYWRhM2IxMzk5Njc5M2E4YjNlNzg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTmV0d29ya1N0YXRlTm90
aWZpZXIuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJOZXR3b3Jr
U3RhdGVOb3RpZmllcjo6bmV0d29ya1N0YXRlQ2hhbmdlKFN0YXRlIHN0YXRlKQoreworICAgIG5l
dHdvcmtTdGF0ZU5vdGlmaWVyKCkubmV0d29ya1N0YXRlQ2hhbmdlKHN0YXRlID09IE9ubGluZSA/
IE5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpPbmxpbmUgOiBOZXR3b3JrU3RhdGVOb3RpZmllcjo6T2Zm
bGluZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83521</attachid>
            <date>2011-02-23 12:19:27 -0800</date>
            <delta_ts>2011-02-24 07:49:35 -0800</delta_ts>
            <desc>Switched to setOnLine, consolidated Chromium and Android</desc>
            <filename>bug-54516-20110223121926.patch</filename>
            <type>text/plain</type>
            <size>18896</size>
            <attacher name="Adam Klein">adamk</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODY2MTcyNDQyYTkxYTQ4NWUyOGQ3YWU1ODdlMWUzMDExM2RiNjI2Li44
Mzg4OGIwM2FlMmQ3ZTcyM2ExZWQyNTFhODA0MmZkZDJkYjQ5NGFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTEtMDItMTUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9t
aXVtXSBBZGQgY29kZSB0byBXZWJLaXQgQ2hyb21pdW0gdG8gYWxsb3cgYWNjZXNzIHRvIE5ldHdv
cmtTdGF0ZU5vdGlmaWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD01NDUxNgorCisgICAgICAgIEdpdmUgQ2hyb21pdW0ncyBOZXR3b3JrU3RhdGVOb3Rp
ZmllciB0aGUgYWJpbGl0eSB0byBjaGFuZ2UgdGhlIHZhbHVlCisgICAgICAgIG9mIG1faXNPbkxp
bmUsIHJhdGhlciB0aGFuIG1ha2luZyBpdCBhbHdheXMgdHJ1ZS4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIG5vdCBzdXJlIGhvdyB0byB0ZXN0IHRoaXMuIE5vIG90aGVyIExheW91dFRlc3RzIHNl
ZW0KKyAgICAgICAgdG8gZXhlcmNpc2UgbmF2aWdhdG9yLm9uTGluZS4KKworICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlm
aWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdGF0ZU5vdGlmaWVyOjpzZXRPbkxp
bmUpOiBNb3ZlZCBhbmQgcmVuYW1lZCBmcm9tIE5ldHdvcmtTdGF0ZU5vdGlmaWVyQW5kcm9pZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JrU3RhdGVOb3RpZmllcjo6bmV0d29ya1N0YXRlQ2hhbmdlKTog
Rm9yd2FyZCB0byBzZXRPbkxpbmUuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9hbmRyb2lk
L05ldHdvcmtTdGF0ZU5vdGlmaWVyQW5kcm9pZC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9jaHJvbWl1bS9OZXR3b3JrU3RhdGVOb3RpZmllckNocm9taXVtLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL05ldHdvcmtTdGF0
ZU5vdGlmaWVyUHJpdmF0ZS5oOiBSZW1vdmVkLgorCiAyMDExLTAyLTIzICBBYmhpc2hlayBBcnlh
ICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2ZSBIeWF0
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCBkYzRkMDQwZjYzZjRhOGQyMDE0ZTQ1MGYyMDQ3ZjkwOGE1
Mzk3YjE0Li4zZWQzZTZmZjQ0MzZkYmIxYjM1NDQzMjQ1Y2VhNzExNzUwZTFkMjgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0zMTY2LDggKzMxNjYsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDaHJvbWl1bS5jcHAnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vQ29va2llSmFyQ2hyb21pdW0uY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL0ROU0Nocm9taXVtLmNw
cCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9OZXR3b3JrU3RhdGVO
b3RpZmllckNocm9taXVtLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9OZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGUuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUVycm9yLmgnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdGF0ZU5vdGlmaWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIu
Y3BwCmluZGV4IDc2Mzg0Nzg2NzQ4OGIxNDdmODhmZDQ5YjE3ODExMzU2MDczZTQzNWUuLmQwZTAw
ZjE3NDhiNGE2NzgyODQ3ZDA3ZDBiOTczMmZjODE4NzQyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwCkBA
IC0yMCw3ICsyMCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKQEAgLTM1LDE1ICszNSwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBOZXR3b3JrU3RhdGVO
b3RpZmllciYgbmV0d29ya1N0YXRlTm90aWZpZXIoKQogewogICAgIEF0b21pY2FsbHlJbml0aWFs
aXplZFN0YXRpYyhOZXR3b3JrU3RhdGVOb3RpZmllciosIG5ldHdvcmtTdGF0ZU5vdGlmaWVyID0g
bmV3IE5ldHdvcmtTdGF0ZU5vdGlmaWVyKTsKLSAgICAKKwogICAgIHJldHVybiAqbmV0d29ya1N0
YXRlTm90aWZpZXI7CiB9CiAKIHZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXI6OnNldE5ldHdvcmtT
dGF0ZUNoYW5nZWRGdW5jdGlvbih2b2lkKCpmdW5jdGlvbikoKSkKIHsKICAgICBBU1NFUlQoIW1f
bmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0aW9uKTsKLSAgICAKKwogICAgIG1fbmV0d29ya1N0YXRl
Q2hhbmdlZEZ1bmN0aW9uID0gZnVuY3Rpb247CiB9Ci0gICAgCisKKyNpZiBQTEFURk9STShBTkRS
T0lEKSB8fCBQTEFURk9STShDSFJPTUlVTSkKK3ZvaWQgTmV0d29ya1N0YXRlTm90aWZpZXI6OnNl
dE9uTGluZShib29sIG9uTGluZSkKK3sKKyAgICBpZiAobV9pc09uTGluZSA9PSBvbkxpbmUpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1faXNPbkxpbmUgPSBvbkxpbmU7CisKKyAgICBpZiAobV9u
ZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24pCisgICAgICAgIG1fbmV0d29ya1N0YXRlQ2hhbmdl
ZEZ1bmN0aW9uKCk7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oQU5EUk9JRCkgfHwgUExBVEZPUk0o
Q0hST01JTSkKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RhdGVOb3RpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RhdGVOb3RpZmllci5oCmluZGV4IDI2ZjhkOGE5NThhNDA1YWU5N2YyZTJiZmRl
MjI2ZWQ1YjAwNjRjZWQuLmI5MjU2MDg5MTk2NDRiODAxODZhNjYwZTg3NWNhYzRkMThiZDU2N2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0YXRl
Tm90aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dGF0ZU5vdGlmaWVyLmgKQEAgLTM3LDEwICszNyw2IEBACiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBf
X0NGQXJyYXkgKiBDRkFycmF5UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgX19TQ0R5bmFtaWNT
dG9yZSAqIFNDRHluYW1pY1N0b3JlUmVmOwogCi0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLQot
I2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS5oIgotCiAjZWxpZiBQTEFURk9S
TShXSU4pCiAKICNpbmNsdWRlIDx3aW5kb3dzLmg+CkBAIC02NywxNCArNjMsMjAgQEAgY2xhc3Mg
TmV0d29ya1N0YXRlTm90aWZpZXIgewogcHVibGljOgogICAgIE5ldHdvcmtTdGF0ZU5vdGlmaWVy
KCk7CiAgICAgdm9pZCBzZXROZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24odm9pZCAoKikoKSk7
Ci0gICAgCisKICAgICBib29sIG9uTGluZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNPbkxpbmU7IH0K
IAogI2lmIChQTEFURk9STShRVCkgJiYgRU5BQkxFKFFUX0JFQVJFUikpCiAgICAgdm9pZCBzZXRO
ZXR3b3JrQWNjZXNzQWxsb3dlZChib29sKTsKKyNlbGlmIFBMQVRGT1JNKEFORFJPSUQpIHx8IFBM
QVRGT1JNKENIUk9NSVVNKQorICAgIHZvaWQgc2V0T25MaW5lKGJvb2wpOworI2VuZGlmCisKKyNp
ZiBQTEFURk9STShBTkRST0lEKQorICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgb25s
aW5lKSB7IHNldE9uTGluZShvbmxpbmUpOyB9CiAjZW5kaWYKIAotcHJpdmF0ZTogICAgCitwcml2
YXRlOgogICAgIGJvb2wgbV9pc09uTGluZTsKICAgICB2b2lkICgqbV9uZXR3b3JrU3RhdGVDaGFu
Z2VkRnVuY3Rpb24pKCk7CiAKQEAgLTkyLDMwICs5NCwyMyBAQCBwcml2YXRlOgogICAgIHN0YXRp
YyB2b2lkIENBTExCQUNLIGFkZHJDaGFuZ2VDYWxsYmFjayh2b2lkKiwgQk9PTEVBTiB0aW1lZE91
dCk7CiAgICAgc3RhdGljIHZvaWQgY2FsbEFkZHJlc3NDaGFuZ2VkKHZvaWQqKTsKICAgICB2b2lk
IGFkZHJlc3NDaGFuZ2VkKCk7Ci0gICAgCisKICAgICB2b2lkIHJlZ2lzdGVyRm9yQWRkcmVzc0No
YW5nZSgpOwogICAgIEhBTkRMRSBtX3dhaXRIYW5kbGU7CiAgICAgT1ZFUkxBUFBFRCBtX292ZXJs
YXBwZWQ7CiAKLSNlbGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgIE5ldHdvcmtTdGF0ZU5vdGlm
aWVyUHJpdmF0ZSBwOwotCi0jZWxpZiBQTEFURk9STShBTkRST0lEKQotcHVibGljOgotICAgIHZv
aWQgbmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgb25saW5lKTsKLQogI2VsaWYgUExBVEZPUk0oUVQp
ICYmIEVOQUJMRShRVF9CRUFSRVIpCiAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTdGF0ZU5vdGlm
aWVyUHJpdmF0ZTsKICAgICBOZXR3b3JrU3RhdGVOb3RpZmllclByaXZhdGUqIHA7CiAjZW5kaWYK
IH07CiAKLSNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0o
Q0hST01JVU0pICYmICEoUExBVEZPUk0oUVQpICYmIEVOQUJMRShRVF9CRUFSRVIpKQorI2lmICFQ
TEFURk9STShNQUMpICYmICFQTEFURk9STShXSU4pICYmICEoUExBVEZPUk0oUVQpICYmIEVOQUJM
RShRVF9CRUFSRVIpKQogCiBpbmxpbmUgTmV0d29ya1N0YXRlTm90aWZpZXI6Ok5ldHdvcmtTdGF0
ZU5vdGlmaWVyKCkKICAgICA6IG1faXNPbkxpbmUodHJ1ZSkKICAgICAsIG1fbmV0d29ya1N0YXRl
Q2hhbmdlZEZ1bmN0aW9uKDApCi17ICAgIAorewogfQogCiBpbmxpbmUgdm9pZCBOZXR3b3JrU3Rh
dGVOb3RpZmllcjo6dXBkYXRlU3RhdGUoKSB7IH0KQEAgLTEyMyw3ICsxMTgsNyBAQCBpbmxpbmUg
dm9pZCBOZXR3b3JrU3RhdGVOb3RpZmllcjo6dXBkYXRlU3RhdGUoKSB7IH0KICNlbmRpZgogCiBO
ZXR3b3JrU3RhdGVOb3RpZmllciYgbmV0d29ya1N0YXRlTm90aWZpZXIoKTsKLSAgICAKKwogfTsK
IAogI2VuZGlmIC8vIE5ldHdvcmtTdGF0ZU5vdGlmaWVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYW5kcm9pZC9OZXR3b3JrU3RhdGVOb3RpZmllckFuZHJv
aWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9hbmRyb2lkL05ldHdvcmtT
dGF0ZU5vdGlmaWVyQW5kcm9pZC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNk
NzYwYmNhN2YyZjQ4MTU2ZDg3ZjE5NTU0MGY3NWRlZWU3MWM1ZGYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9hbmRyb2lkL05ldHdvcmtTdGF0ZU5vdGlmaWVyQW5kcm9pZC5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw0MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IDIwMDksIFRoZSBBbmRyb2lkIE9w
ZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
TmV0d29ya1N0YXRlTm90aWZpZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIE5l
dHdvcmtTdGF0ZU5vdGlmaWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBvbmxpbmUpCi17ICAg
Ci0gICAgaWYgKG1faXNPbkxpbmUgPT0gb25saW5lKQotICAgICAgICByZXR1cm47Ci0gICAgCi0g
ICAgbV9pc09uTGluZSA9IG9ubGluZTsKLQotICAgIGlmIChtX25ldHdvcmtTdGF0ZUNoYW5nZWRG
dW5jdGlvbikKLSAgICAgICAgbV9uZXR3b3JrU3RhdGVDaGFuZ2VkRnVuY3Rpb24oKTsKLX0KLQot
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9O
ZXR3b3JrU3RhdGVOb3RpZmllckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2hyb21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJDaHJvbWl1bS5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiMjhmYmQ1N2EwZmI3NTYyZDM1MjM1ZjJkNzdjZjg5
ZTE3NDA2NzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9OZXR3b3JrU3RhdGVOb3Rp
ZmllckNocm9taXVtLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKGMpIDIwMDgsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICogCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKiAKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
LSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotLy8gQ2hyb21pdW0gZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCBu
ZXR3b3JrIHN0YXRlIG5vdGlmaWNhdGlvbnMuIFRoaXMgY2F1c2VzCi0vLyBhbiBleHRyYSBETEwg
dG8gZ2V0IGxvYWRlZCBpbnRvIHRoZSByZW5kZXJlciB3aGljaCBjYW4gc2xvdyB0aGluZ3MgZG93
biBhCi0vLyBiaXQuIFdlIG1heSB3YW50IGFuIGFsdGVybmF0ZSBkZXNpZ24uCi0KLXZvaWQgTmV0
d29ya1N0YXRlTm90aWZpZXI6OnVwZGF0ZVN0YXRlKCkKLXsKLX0KLQotTmV0d29ya1N0YXRlTm90
aWZpZXI6Ok5ldHdvcmtTdGF0ZU5vdGlmaWVyKCkKLSAgICA6IG1faXNPbkxpbmUodHJ1ZSkKLSAg
ICAsIG1fbmV0d29ya1N0YXRlQ2hhbmdlZEZ1bmN0aW9uKDApCi17Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2hyb21pdW0vTmV0d29ya1N0YXRlTm90aWZpZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL05ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjI4ZDU5YWZiNWRiZjVhNmY3NGMyOGQ3Y2Ji
MGM2OGE0YWJiMzVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vTmV0d29ya1N0YXRl
Tm90aWZpZXJQcml2YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChjKSAyMDA4LCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IAotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKiAKLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBk
aXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqIAotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIE5ldHdvcmtTdGF0ZU5vdGlmaWVyUHJpdmF0ZV9oCi0jZGVmaW5lIE5ldHdvcmtTdGF0ZU5v
dGlmaWVyUHJpdmF0ZV9oCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotICAgIHN0cnVjdCBOZXR3
b3JrU3RhdGVOb3RpZmllclByaXZhdGUge307Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDY0MmJjYWJiOGYxMWI4Y2E3MGFi
ODQ0NTc4MmU0NDIzMTQ3MjA3MGYuLjQzOGQ4MzM5Zjc5Y2QzYzEwZDYwMjI3NDZhNTIwZjdkZWE2
ZjMxMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEt
MDItMTUgIEFkYW0gS2xlaW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBBZGQgY29kZSB0byBX
ZWJLaXQgQ2hyb21pdW0gdG8gYWxsb3cgYWNjZXNzIHRvIE5ldHdvcmtTdGF0ZU5vdGlmaWVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxNgorCisg
ICAgICAgIEFkZCBhIG5ldyBXZWJOZXR3b3JrU3RhdGVOb3RpZmllciBjbGFzcyB3aXRoIGEgc2lu
Z2xlIHN0YXRpYyBtZXRob2QsCisgICAgICAgIHNldE9uTGluZSgpLCB3aGljaCBkaXNwYXRjaGVz
IHRvIFdlYkNvcmUncyBzaW5nbGV0b24gTmV0d29ya1N0YXRlTm90aWZpZXIuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJOZXR3b3JrU3RhdGVOb3RpZmllci5o
OiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViTmV0d29ya1N0YXRlTm90aWZpZXI6OnNldE9uTGluZSk6
CisKIDIwMTEtMDItMjMgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3OTM4Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cAppbmRleCBmMmFhMTA3ZmNmNWNmYTY4YTJjZGY5YjJmNGM3ZjY4ZWM5MTJjMThhLi5jYjBi
YmRjNzcwNTIzZGM5OWIxZDljNTIxZGViMDY4MTBkOGNjZDdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCkBAIC0yMTksNiArMjE5LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dl
Yk1pbWVSZWdpc3RyeS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk5hbWVkTm9kZU1h
cC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYk5hdmlnYXRpb25UeXBlLmgnLAorICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJOb2RlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
Tm9kZUNvbGxlY3Rpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJOb2RlTGlzdC5o
JywKQEAgLTUwNCw2ICs1MDUsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViTWVkaWFQbGF5
ZXJDbGllbnRJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJNZWRpYVBsYXllckNs
aWVudEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJOYW1lZE5vZGVNYXAuY3BwJywK
KyAgICAgICAgICAgICAgICAnc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVyLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJOb2RlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJO
b2RlQ29sbGVjdGlvbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViTm9kZUxpc3QuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5ldHdvcmtT
dGF0ZU5vdGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOZXR3b3Jr
U3RhdGVOb3RpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0OGYwOTk1Yzk4MWU1YmU5ODMxM2Q3Nzc1MDZm
NjAxZjlmZDA1NTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJOZXR3b3JrU3RhdGVOb3RpZmllci5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
Yk5ldHdvcmtTdGF0ZU5vdGlmaWVyX2gKKyNkZWZpbmUgV2ViTmV0d29ya1N0YXRlTm90aWZpZXJf
aAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJOZXR3b3JrU3RhdGVOb3RpZmllciB7CitwdWJsaWM6CisgICAgV0VCS0lUX0FQSSBzdGF0
aWMgdm9pZCBzZXRPbkxpbmUoYm9vbCk7CisKK3ByaXZhdGU6CisgICAgV2ViTmV0d29ya1N0YXRl
Tm90aWZpZXIoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5ldHdvcmtTdGF0ZU5vdGlmaWVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hYzgxMGNkYTljMTkxZDY1NjFhNDc0ZGIzMzUzYTg4MDRhMTRmN2Fi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTmV0d29y
a1N0YXRlTm90aWZpZXIuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViTmV0d29ya1N0YXRlTm90aWZpZXIuaCIKKworI2luY2x1ZGUgIk5ldHdvcmtT
dGF0ZU5vdGlmaWVyLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBXZWJOZXR3b3JrU3RhdGVOb3RpZmllcjo6c2V0T25MaW5lKGJvb2wg
b25MaW5lKQoreworICAgIG5ldHdvcmtTdGF0ZU5vdGlmaWVyKCkuc2V0T25MaW5lKG9uTGluZSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>