<?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>98273</bug_id>
          
          <creation_ts>2012-10-03 09:08:57 -0700</creation_ts>
          <short_desc>[BlackBerry] Implementing the NetworkInfo API for BB port</short_desc>
          <delta_ts>2012-10-03 14:32:13 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>otcheung</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dbates</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>733761</commentid>
    <comment_count>0</comment_count>
    <who name="">otcheung</who>
    <bug_when>2012-10-03 09:08:57 -0700</bug_when>
    <thetext>Implement the NetworkInfoClient for the BlackBerry port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733994</commentid>
    <comment_count>1</comment_count>
      <attachid>166951</attachid>
    <who name="">otcheung</who>
    <bug_when>2012-10-03 13:35:17 -0700</bug_when>
    <thetext>Created attachment 166951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734000</commentid>
    <comment_count>2</comment_count>
      <attachid>166954</attachid>
    <who name="">otcheung</who>
    <bug_when>2012-10-03 13:42:50 -0700</bug_when>
    <thetext>Created attachment 166954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734004</commentid>
    <comment_count>3</comment_count>
      <attachid>166954</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2012-10-03 13:47:28 -0700</bug_when>
    <thetext>Comment on attachment 166954
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734019</commentid>
    <comment_count>4</comment_count>
      <attachid>166954</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 14:11:00 -0700</bug_when>
    <thetext>Comment on attachment 166954
Patch

Clearing flags on attachment: 166954

Committed r130320: &lt;http://trac.webkit.org/changeset/130320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734020</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 14:11:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734035</commentid>
    <comment_count>6</comment_count>
      <attachid>166954</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-10-03 14:28:49 -0700</bug_when>
    <thetext>Comment on attachment 166954
Patch

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

I know that this patch was already committed. I briefly looked over this and noticed some minor nits. Feel free to ignore my remarks.

&gt; Source/WebKit/blackberry/WebCoreSupport/NetworkInfoClientBlackBerry.cpp:36
&gt; +static const double  networkSpeedNone = 0; // 0 Mb/s
&gt; +static const double  networkSpeedEthernet = 20; // 20 Mb/s
&gt; +static const double  networkSpeedWifi = 20; // 20 Mb/s
&gt; +static const double  networkSpeed2G = 60 / 1024; // 60 kb/s
&gt; +static const double  networkSpeed3G = 7; // 7 Mb/s
&gt; +static const double  networkSpeed4G = 50; // 50 Mb/s
&gt; +static const double  networkSpeedDefault = INFINITY; // w3c draft states it should be infinity

Nit: There is an extra space between typename and the identifier in these lines.

Nit: w3c =&gt; W3C

You may want to consider a single comment above these constants that describes that the network speed is in Mb/s instead of having an inline comment of the form &quot;// X Mb/s&quot; for each of these constants.

&gt; Source/WebKit/blackberry/WebCoreSupport/NetworkInfoClientBlackBerry.cpp:49
&gt; +    if (!m_isActive)
&gt; +        // Add ourselves to listener so our values get updated whenever PPS calls.
&gt; +        BlackBerry::Platform::NetworkInfo::instance()-&gt;addListener(this);

Nit: I suggest that we follow the WebKit Code Style Guidelines and uses braces for this if block.

&gt; Source/WebKit/blackberry/WebCoreSupport/NetworkInfoClientBlackBerry.cpp:60
&gt; +double NetworkInfoClientBlackBerry::bandwidth() const

Another way to implement this function is to extract the inner switch block into an inline static non-member function, say bandwidthForCellularType(). Then the body of case BlackBerry::Platform::NetworkTypeCellular can be written:

return bandwidthForCellularType(BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentCellularType());

&gt; Source/WebKit/blackberry/WebCoreSupport/NetworkInfoClientBlackBerry.cpp:94
&gt; +    if (cellType == BlackBerry::Platform::NetworkTypeCellular || cellType == BlackBerry::Platform::NetworkTypeBB)
&gt; +        return true;
&gt; +    return false;

I would write this as:

return cellType == BlackBerry::Platform::NetworkTypeCellular || cellType == BlackBerry::Platform::NetworkTypeBB;

&gt; Source/WebKit/blackberry/WebCoreSupport/NetworkInfoClientBlackBerry.cpp:102
&gt; +    if (m_isActive) {
&gt; +        RefPtr&lt;NetworkInfo&gt; newNetworkInfo = NetworkInfo::create(bandwidth(), metered());
&gt; +        NetworkInfoController::from(m_webPagePrivate-&gt;m_page)-&gt;didChangeNetworkInformation(eventNames().webkitnetworkinfochangeEvent , newNetworkInfo.get());
&gt; +    }

I suggest using an early return style here. Then we remove one level of indentation.

&gt; Source/WebKit/blackberry/WebCoreSupport/NetworkInfoClientBlackBerry.cpp:108
&gt; +    if (BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentNetworkType() == BlackBerry::Platform::NetworkTypeCellular &amp;&amp; m_isActive) {

Unless calling BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentNetworkType() has side-effects I suggest reversing the order of the conjuncts in this expression such that we check m_isActive first. A benefit of reversing the order is that when m_isActive is false we short-circuit the if conditional and hence don&apos;t evaluate &quot;BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentNetworkType() == BlackBerry::Platform::NetworkTypeCellular&quot;; =&gt; avoid the function call BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentNetworkType().

You may also want to consider using an early return style here so as to avoid one level of indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734041</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-10-03 14:32:13 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Source/WebKit/blackberry/WebCoreSupport/NetworkInfoClientBlackBerry.cpp:108
&gt; &gt; +    if (BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentNetworkType() == BlackBerry::Platform::NetworkTypeCellular &amp;&amp; m_isActive) {
&gt; 
&gt; Unless calling BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentNetworkType() has side-effects I suggest reversing the order of the conjuncts in this expression such that we check m_isActive first. A benefit of reversing the order is that when m_isActive is false we short-circuit the if conditional and hence don&apos;t evaluate &quot;BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentNetworkType() == BlackBerry::Platform::NetworkTypeCellular&quot;; =&gt; avoid the function call BlackBerry::Platform::NetworkInfo::instance()-&gt;getCurrentNetworkType().
&gt; 
&gt; You may also want to consider using an early return style here so as to avoid one level of indentation.

Actually, it&apos;s probably more common that when we get here m_isActive is true; =&gt; the order of these conjuncts is fine.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166951</attachid>
            <date>2012-10-03 13:35:17 -0700</date>
            <delta_ts>2012-10-03 13:42:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98273-20121003163429.patch</filename>
            <type>text/plain</type>
            <size>14364</size>
            <attacher>otcheung</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZjNzdlY2NkNzk2NzJlZThj
YmEwZjhkMjY2MTM1NmI2YzhiZTUwNDMuLjM1NDQyNzgwYmY4ZmFiODYzNGY0YmE4OTRiYjhiMDEz
YTcyODUyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAtMDMgIE90dG8gRGVy
ZWsgQ2hldW5nICA8b3RjaGV1bmdAcmltLmNvbT4KKworICAgICAgICBBZGRpbmcgbmV3IGNsYXNz
ZXMgdG8gc3VwcG9ydCBOZXR3b3JrSW5mbyBBUEkgaW4gdGhlCisgICAgICAgIEJsYWNrQmVycnkg
UG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4
MjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQ
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisKIDIwMTItMTAtMDIgIEtyenlzenRvZiBDemVjaCAg
PGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIGZpbGUgRVdLVGVzdEVu
dmlyb25tZW50LmNwcCB0byBidWlsZCBzeXN0ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwppbmRleCA3NzNkYjFiMTc3OGU2OGY2MWUyMzhjYzkzM2UxM2FkOWMzNDNiM2QwLi45OTNjNDBm
ZGNjZTZjYzM2ZjAxOGU1ZWJlNTYyZTRhYTY0ZTlmMzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0xMC0wMyAgT3R0byBEZXJlayBDaGV1bmcg
IDxvdGNoZXVuZ0ByaW0uY29tPgorCisgICAgICAgIEFkZGluZyBuZXcgY2xhc3MgTmV0d29ya0lu
Zm9DbGllbnRCbGFja0JlcnJ5IHRvIGltcGxlbWVudAorICAgICAgICBOZXR3b3JrSW5mb0NsaWVu
dCBmb3IgdGhlIEJsYWNrQmVycnkgcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk4MjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5
OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjppbml0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9OZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5OjpOZXR3
b3JrSW5mb0NsaWVudEJsYWNrQmVycnkpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0luZm9D
bGllbnRCbGFja0JlcnJ5OjpzdGFydFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdv
cmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6
Ok5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6YmFuZHdpZHRoKToKKyAgICAgICAgKFdlYkNv
cmU6Ok5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6bWV0ZXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnk6Om9uQ3VycmVudE5ldHdvcmtDaGFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5OjpvbkN1cnJl
bnRDZWxsdWxhclR5cGVDaGFuZ2UpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L05ldHdvcmtJ
bmZvQ2xpZW50QmxhY2tCZXJyeS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKE5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeSk6CisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnk6On5OZXR3b3JrSW5mb0Ns
aWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTEwLTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNj
YUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdlIG1vc3QgR3JhcGhpY3NMYXllcjo6Y3JlYXRl
IGNhbGxzIHRvIHVzZSB0aGUgdmVyc2lvbiB0aGF0IHRha2VzIGEgR3JhcGhpY3NMYXllckZhY3Rv
cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggN2ZkYjdlY2E3ZjIy
ZjI4NmVlNzE5MmRjODg1NzAyZTU3ZjQ2MGU3Ny4uMTlmNmYwNDczZGRkOTM2MjkwMjEwNDQ5YTA1
ZDViZTM1N2EwYzJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVy
cnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAg
LTE3LDYgKzE3LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKICAg
ICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5IgogICAgICIke1dF
QkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbmV0d29ya2lu
Zm8iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvdmlicmF0aW9uIgogICAgICIke1dFQkNP
UkVfRElSfS9Nb2R1bGVzL3dlYnNvY2tldHMiCiAgICAgIiR7V0VCS0lUX0RJUn0vYmxhY2tiZXJy
eS9BcGkiCkBAIC04OCw2ICs4OSw3IEBAIExJU1QoQVBQRU5EIFdlYktpdF9TT1VSQ0VTCiAgICAg
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JY29uRGF0YWJhc2VDbGllbnRCbGFja0JlcnJ5LmNw
cAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJy
eS5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0phdmFTY3JpcHREZWJ1Z2dlckJs
YWNrQmVycnkuY3BwCisgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5mb0Ns
aWVudEJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmlj
YXRpb25QcmVzZW50ZXJJbXBsLmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvVmli
cmF0aW9uQ2xpZW50QmxhY2tCZXJyeS5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L1BhZ2VQb3B1cEJsYWNrQmVycnkuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcAppbmRleCA3ZjdlNmI3ZGZiZDI4OGU3MTdhMDQ2NmYxOGZmZGRmM2E2MmZlZThlLi45
MzM2NDdiMDFjNWI3ZDc4Y2UxMGFhOGEwNTYyMDY4Njk3MzcwMWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTgwLDYgKzgwLDkgQEAKICNpbmNsdWRlICJK
YXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5LmgiCiAjaW5jbHVkZSAiSmF2YVNjcmlwdFZhcmlh
bnRfcC5oIgogI2luY2x1ZGUgIkxheWVyV2ViS2l0VGhyZWFkLmgiCisjaWYgRU5BQkxFKE5FVFdP
UktfSU5GTykKKyNpbmNsdWRlICJOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkuaCIKKyNlbmRp
ZgogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxl
LmgiCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FU
SU9OUykKQEAgLTU0OCw2ICs1NTEsMTAgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6aW5pdChjb25z
dCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5hbWUpCiAgICAgV2ViQ29yZTo6cHJvdmlkZU5vdGlmaWNh
dGlvbihtX3BhZ2UsIE5vdGlmaWNhdGlvblByZXNlbnRlckltcGw6Omluc3RhbmNlKCkpOwogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQorICAgIFdlYkNvcmU6OnByb3ZpZGVOZXR3
b3JrSW5mb1RvKG1fcGFnZSwgbmV3IFdlYkNvcmU6Ok5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJy
eSh0aGlzKSk7CisjZW5kaWYKKwogICAgIG1fcGFnZS0+c2V0Q3VzdG9tSFRNTFRva2VuaXplckNo
dW5rU2l6ZSgyNTYpOwogICAgIG1fcGFnZS0+c2V0Q3VzdG9tSFRNTFRva2VuaXplclRpbWVEZWxh
eSgwLjMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY2MmU0MjY1ODM4NGU4ODUzNjRiZmE0YTcwNWVmY2RjZjhiZDkwMjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTmV0
d29ya0luZm9DbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5LmgiCisKKyNpbmNsdWRlICJFdmVudC5o
IgorI2luY2x1ZGUgIk5ldHdvcmtJbmZvLmgiCisjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCisKKyNp
bmNsdWRlIDxtYXRoLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGNvbnN0IGRv
dWJsZSAgbmV0d29ya1NwZWVkTm9uZSA9IDA7IC8vIDAgTWIvcworc3RhdGljIGNvbnN0IGRvdWJs
ZSAgbmV0d29ya1NwZWVkRXRoZXJuZXQgPSAyMDsgLy8gMjAgTWIvcworc3RhdGljIGNvbnN0IGRv
dWJsZSAgbmV0d29ya1NwZWVkV2lmaSA9IDIwOyAvLyAyMCBNYi9zCitzdGF0aWMgY29uc3QgZG91
YmxlICBuZXR3b3JrU3BlZWQyRyA9IDYwIC8gMTAyNDsgLy8gNjAga2Ivcworc3RhdGljIGNvbnN0
IGRvdWJsZSAgbmV0d29ya1NwZWVkM0cgPSA3OyAvLyA3IE1iL3MKK3N0YXRpYyBjb25zdCBkb3Vi
bGUgIG5ldHdvcmtTcGVlZDRHID0gNTA7IC8vIDUwIE1iL3MKK3N0YXRpYyBjb25zdCBkb3VibGUg
IG5ldHdvcmtTcGVlZERlZmF1bHQgPSBJTkZJTklUWTsgLy8gdzNjIGRyYWZ0IHN0YXRlcyBpdCBz
aG91bGQgYmUgaW5maW5pdHkKKworTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5OjpOZXR3b3Jr
SW5mb0NsaWVudEJsYWNrQmVycnkoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSog
d2ViUGFnZVByaXZhdGUpCisgICAgOiBtX3dlYlBhZ2VQcml2YXRlKHdlYlBhZ2VQcml2YXRlKQor
ICAgICwgbV9jb250cm9sbGVyKDApCisgICAgLCBtX2lzQWN0aXZlKGZhbHNlKQoreworfQorCit2
b2lkIE5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6c3RhcnRVcGRhdGluZygpCit7CisgICAg
aWYgKCFtX2lzQWN0aXZlKQorICAgICAgICAvLyBBZGQgb3Vyc2VsdmVzIHRvIGxpc3RlbmVyIHNv
IG91ciB2YWx1ZXMgZ2V0IHVwZGF0ZWQgd2hlbmV2ZXIgUFBTIGNhbGxzLgorICAgICAgICBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya0luZm86Omluc3RhbmNlKCktPmFkZExpc3RlbmVyKHRo
aXMpOworICAgIG1faXNBY3RpdmUgPSB0cnVlOworfQorCit2b2lkIE5ldHdvcmtJbmZvQ2xpZW50
QmxhY2tCZXJyeTo6c3RvcFVwZGF0aW5nKCkKK3sKKyAgICBpZiAobV9pc0FjdGl2ZSkKKyAgICAg
ICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtJbmZvOjppbnN0YW5jZSgpLT5yZW1vdmVM
aXN0ZW5lcih0aGlzKTsKKyAgICBtX2lzQWN0aXZlID0gZmFsc2U7Cit9CisKK2RvdWJsZSBOZXR3
b3JrSW5mb0NsaWVudEJsYWNrQmVycnk6OmJhbmR3aWR0aCgpIGNvbnN0Cit7CisgICAgc3dpdGNo
IChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya0luZm86Omluc3RhbmNlKCktPmdldEN1cnJl
bnROZXR3b3JrVHlwZSgpKSB7CisgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29y
a1R5cGVXaWZpOgorICAgICAgICByZXR1cm4gbmV0d29ya1NwZWVkV2lmaTsKKyAgICBjYXNlIEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrVHlwZUNlbGx1bGFyOgorICAgICAgICBzd2l0Y2gg
KEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrSW5mbzo6aW5zdGFuY2UoKS0+Z2V0Q3VycmVu
dENlbGx1bGFyVHlwZSgpKSB7CisgICAgICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkNl
bGx1bGFyVHlwZUVER0U6CisgICAgICAgICAgICByZXR1cm4gbmV0d29ya1NwZWVkMkc7CisgICAg
ICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkNlbGx1bGFyVHlwZUVWRE86CisgICAgICAg
IGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkNlbGx1bGFyVHlwZVVNVFM6CisgICAgICAgICAg
ICByZXR1cm4gbmV0d29ya1NwZWVkM0c7CisgICAgICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZv
cm06OkNlbGx1bGFyVHlwZUxURToKKyAgICAgICAgICAgIHJldHVybiBuZXR3b3JrU3BlZWQ0RzsK
KyAgICAgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6Q2VsbHVsYXJUeXBlVW5rbm93bjoK
KyAgICAgICAgICAgIHJldHVybiBuZXR3b3JrU3BlZWREZWZhdWx0OworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtUeXBlV2ly
ZWQ6CisgICAgICAgIHJldHVybiBuZXR3b3JrU3BlZWRFdGhlcm5ldDsKKyAgICBjYXNlIEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrVHlwZU5vbmU6CisgICAgICAgIHJldHVybiBuZXR3b3Jr
U3BlZWROb25lOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJl
dHVybiBuZXR3b3JrU3BlZWREZWZhdWx0OworfQorCitib29sIE5ldHdvcmtJbmZvQ2xpZW50Qmxh
Y2tCZXJyeTo6bWV0ZXJlZCgpIGNvbnN0Cit7CisgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Oklu
dGVybmFsTmV0d29ya0Nvbm5lY3Rpb25UeXBlIGNlbGxUeXBlID0gQmxhY2tCZXJyeTo6UGxhdGZv
cm06Ok5ldHdvcmtJbmZvOjppbnN0YW5jZSgpLT5nZXRDdXJyZW50TmV0d29ya1R5cGUoKTsKKyAg
ICBpZiAoY2VsbFR5cGUgPT0gQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtUeXBlQ2VsbHVs
YXIgfHwgY2VsbFR5cGUgPT0gQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtUeXBlQkIpCisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBOZXR3b3Jr
SW5mb0NsaWVudEJsYWNrQmVycnk6Om9uQ3VycmVudE5ldHdvcmtUeXBlQ2hhbmdlKEJsYWNrQmVy
cnk6OlBsYXRmb3JtOjpJbnRlcm5hbE5ldHdvcmtDb25uZWN0aW9uVHlwZSBuZXdJbnRlcm5hbE5l
dHdvcmtUeXBlKQoreworICAgIGlmIChtX2lzQWN0aXZlKSB7CisgICAgICAgIFJlZlB0cjxOZXR3
b3JrSW5mbz4gbmV3TmV0d29ya0luZm8gPSBOZXR3b3JrSW5mbzo6Y3JlYXRlKGJhbmR3aWR0aCgp
LCBtZXRlcmVkKCkpOworICAgICAgICBOZXR3b3JrSW5mb0NvbnRyb2xsZXI6OmZyb20obV93ZWJQ
YWdlUHJpdmF0ZS0+bV9wYWdlKS0+ZGlkQ2hhbmdlTmV0d29ya0luZm9ybWF0aW9uKGV2ZW50TmFt
ZXMoKS53ZWJraXRuZXR3b3JraW5mb2NoYW5nZUV2ZW50ICwgbmV3TmV0d29ya0luZm8uZ2V0KCkp
OworICAgIH0KK30KKwordm9pZCBOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnk6Om9uQ3VycmVu
dENlbGx1bGFyVHlwZUNoYW5nZShCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6SW50ZXJuYWxDZWxsdWxh
ckNvbm5lY3Rpb25UeXBlIG5ld0NlbGx1bGFyVHlwZSkKK3sKKyAgICAvLyBPbmx5IGRpc3BhdGNo
IHRvIGxpc3RlbmVycyBpZiB0aGUgY3VycmVudCB0eXBlIGlzIGNlbGx1bGFyLgorICAgIGlmIChC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya0luZm86Omluc3RhbmNlKCktPmdldEN1cnJlbnRO
ZXR3b3JrVHlwZSgpID09IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrVHlwZUNlbGx1bGFy
ICYmIG1faXNBY3RpdmUpIHsKKyAgICAgICAgUmVmUHRyPE5ldHdvcmtJbmZvPiBuZXdOZXR3b3Jr
SW5mbyA9IE5ldHdvcmtJbmZvOjpjcmVhdGUoYmFuZHdpZHRoKCksIG1ldGVyZWQoKSk7CisgICAg
ICAgIE5ldHdvcmtJbmZvQ29udHJvbGxlcjo6ZnJvbShtX3dlYlBhZ2VQcml2YXRlLT5tX3BhZ2Up
LT5kaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oZXZlbnROYW1lcygpLndlYmtpdG5ldHdvcmtp
bmZvY2hhbmdlRXZlbnQgLCBuZXdOZXR3b3JrSW5mby5nZXQoKSk7CisgICAgfQorfQorCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTmV0d29y
a0luZm9DbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzViNWRh
YzQ4OWJlOWQ2MzY3OWIxMGMzYWYzYjUwMWEwYTdmZTZkMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5mb0NsaWVudEJs
YWNrQmVycnkuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEg
IFVTQQorICovCisKKyNpZm5kZWYgTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5X2gKKyNkZWZp
bmUgTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5X2gKKworI2luY2x1ZGUgIk5ldHdvcmtJbmZv
Q2xpZW50LmgiCisjaW5jbHVkZSAiTmV0d29ya0luZm9Db250cm9sbGVyLmgiCisKKyNpbmNsdWRl
IDxCbGFja0JlcnJ5UGxhdGZvcm1OZXR3b3JrSW5mby5oPgorCituYW1lc3BhY2UgQmxhY2tCZXJy
eSB7CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcml2YXRlOworfQorfQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeSA6
IHB1YmxpYyBOZXR3b3JrSW5mb0NsaWVudCwgcHVibGljIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpO
ZXR3b3JrSW5mb0xpc3RlbmVyIHsKK3B1YmxpYzoKKworICAgIE5ldHdvcmtJbmZvQ2xpZW50Qmxh
Y2tCZXJyeShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlKik7CisgICAgfk5ldHdv
cmtJbmZvQ2xpZW50QmxhY2tCZXJyeSgpIHsgfQorCisgICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7
CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKyAgICBkb3VibGUgYmFuZHdpZHRoKCkgY29uc3Q7
CisgICAgYm9vbCBtZXRlcmVkKCkgY29uc3Q7CisKKyAgICB2b2lkIG9uQ3VycmVudE5ldHdvcmtU
eXBlQ2hhbmdlKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnRlcm5hbE5ldHdvcmtDb25uZWN0aW9u
VHlwZSBuZXdOZXR3b3JrVHlwZSk7CisgICAgdm9pZCBvbkN1cnJlbnRDZWxsdWxhclR5cGVDaGFu
Z2UoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkludGVybmFsQ2VsbHVsYXJDb25uZWN0aW9uVHlwZSBu
ZXdDZWxsdWxhclR5cGUpOworCitwcml2YXRlOgorICAgIEJsYWNrQmVycnk6OldlYktpdDo6V2Vi
UGFnZVByaXZhdGUqIG1fd2ViUGFnZVByaXZhdGU7CisgICAgTmV0d29ya0luZm9Db250cm9sbGVy
KiBtX2NvbnRyb2xsZXI7CisgICAgYm9vbCBtX2lzQWN0aXZlOworfTsKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2Uv
Y21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UKaW5kZXggOTY4NWMwMmE4NzRiNjdmNjE0Mjg0
OGY1ODNkNjE5NDY4NWM1Yjk3MS4uZDIwNTc5ZDk1ZWE2OGQyNmE3YjE5NGRhNThiNDFhNmI4YjRl
YWRjOCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlCisr
KyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZQpAQCAtMTU1LDYgKzE1NSw3
IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MTElOVCBPTikKIFdF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9TVFJFQU0gT04pCiBX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUlDUk9EQVRBIE9OKQogV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VU
SUxTIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05FVFdPUktf
SU5GTyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9OT1RJRklD
QVRJT05TIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX09SSUVO
VEFUSU9OX0VWRU5UUyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJM
RV9QQUdFX1BPUFVQIE9OKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDEzMWNkYTA0OGNhYjQ3OWE3MWE0NDhjYjdkZTQwYzc4MGVlNTQ2NzMuLmFi
YmIyOGU4NjhjMDcxMDg0OWU3MjgxNjNlODc5ZTIyYmVjNDNhYmUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0x
MC0wMyAgT3R0byBEZXJlayBDaGV1bmcgIDxvdGNoZXVuZ0ByaW0uY29tPgorCisgICAgICAgIEVu
YWJsaW5nIE5ldHdvcmtJbmZvIEFQSSBmb3IgdGhlIEJsYWNrQmVycnkgcG9ydC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjczCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG06CisKIDIwMTItMTAtMDMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVy
c2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBFeGNlcHRpb24gdGhyb3duIHdoZW4gcnVubmluZyBh
Y2Nlc3NpYmlsaXR5L2NvbnRhaW5lci1ub2RlLWRlbGV0ZS1jYXVzZXMtY3Jhc2guaHRtbCB0ZXN0
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9U
b29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggMmU5YTE0N2NkYzM1
ZjQxMjlhMWMxY2MwMjBmZTc4MTEwY2ZlYjYyZS4uNWJkZjBkMzE0OTJmNzkyMTEzNGY0M2Y2ZWYw
YjJmNDU0ZDg3MTUwNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpA
QCAtMzMyLDcgKzMzMiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkbmV0c2Nh
cGVQbHVnaW5BUElTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibmV0d29yay1pbmZvIiwg
ZGVzYyA9PiAiVG9nZ2xlIE5ldHdvcmsgSW5mbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX05FVFdPUktfSU5GTyIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRuZXR3
b3JrSW5mb1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFdPUktfSU5GTyIs
IGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNCbGFja0JlcnJ5KCkpLCB2YWx1ZSA9PiBcJG5ldHdv
cmtJbmZvU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5vdGlmaWNhdGlvbnMiLCBkZXNj
ID0+ICJUb2dnbGUgTm90aWZpY2F0aW9ucyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX05PVElGSUNBVElPTlMiLCBkZWZhdWx0ID0+IGlzQmxhY2tCZXJyeSgpLCB2YWx1ZSA9PiBc
JG5vdGlmaWNhdGlvbnNTdXBwb3J0IH0sCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VM
b2cKaW5kZXggN2E0MmZhOTBjMjkyOWJkNzAyZjljYjg3YTVmNTA5MDdmYThkYmM4Yy4uMjY1YjRm
NGU4OGUzZTU2ZGVhZDY3NDk2YjA3Mzg5ZTNkMmJjNzY4NiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9n
CisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTEwLTAzICBPdHRvIERlcmVr
IENoZXVuZyAgPG90Y2hldW5nQHJpbS5jb20+CisKKyAgICAgICAgQWRkaW5nIHJlZmVyZW5jZXMg
dG8gbmV3IGNsYXNzZXMgYWRkZWQgdG8gc3VwcG9ydCBCbGFja0JlcnJ5J3MKKyAgICAgICAgTmV0
d29ya0luZm8gaW1wbGVtZW50YXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05ODI3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNCbGFja0JlcnJ5LmNtYWtlOgor
CiAyMDEyLTEwLTAxICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIENhbGVuZGFyIHBpY2tlciBzaG91bGQgdXNlIHplcm8gYXMgZGVmYXVsdCBzdGVwIGJhc2UK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166954</attachid>
            <date>2012-10-03 13:42:50 -0700</date>
            <delta_ts>2012-10-03 14:28:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98273-20121003164203.patch</filename>
            <type>text/plain</type>
            <size>14641</size>
            <attacher>otcheung</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZjNzdlY2NkNzk2NzJlZThj
YmEwZjhkMjY2MTM1NmI2YzhiZTUwNDMuLmYxZDdlMjJiN2ZjYzMxZDMxNzM2YThjMGFjM2RmM2Q0
ZmU5MDU2YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAtMDMgIE90dG8gRGVy
ZWsgQ2hldW5nICA8b3RjaGV1bmdAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gSW1w
bGVtZW50aW5nIHRoZSBOZXR3b3JrSW5mbyBBUEkgZm9yIEJCIHBvcnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjczCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkaW5nIG5ldyBjbGFzc2VzIHRvIHN1
cHBvcnQgTmV0d29ya0luZm8gQVBJIGluIHRoZQorICAgICAgICBCbGFja0JlcnJ5IFBvcnQuCisK
KyAgICAgICAgKiBQbGF0Zm9ybUJsYWNrQmVycnkuY21ha2U6CisKIDIwMTItMTAtMDIgIEtyenlz
enRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIGZp
bGUgRVdLVGVzdEVudmlyb25tZW50LmNwcCB0byBidWlsZCBzeXN0ZW0uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0NoYW5nZUxvZwppbmRleCA3NzNkYjFiMTc3OGU2OGY2MWUyMzhjYzkzM2UxM2FkOWMzNDNi
M2QwLi40OTA5YTMwNTgxYjEzZGUxODI5MzkzOWJhYzZmNWIwNDExN2M2NzFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMi0xMC0wMyAgT3R0byBE
ZXJlayBDaGV1bmcgIDxvdGNoZXVuZ0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBJ
bXBsZW1lbnRpbmcgdGhlIE5ldHdvcmtJbmZvIEFQSSBmb3IgQkIgcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyNzMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRpbmcgbmV3IGNsYXNzIE5ldHdv
cmtJbmZvQ2xpZW50QmxhY2tCZXJyeSB0byBpbXBsZW1lbnQKKyAgICAgICAgTmV0d29ya0luZm9D
bGllbnQgZm9yIHRoZSBCbGFja0JlcnJ5IHBvcnQuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5j
cHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjppbml0KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0lu
Zm9DbGllbnRCbGFja0JlcnJ5OjpOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkpOgorICAgICAg
ICAoV2ViQ29yZTo6TmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5OjpzdGFydFVwZGF0aW5nKToK
KyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6c3RvcFVwZGF0
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6YmFu
ZHdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6
bWV0ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnk6
Om9uQ3VycmVudE5ldHdvcmtDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0luZm9D
bGllbnRCbGFja0JlcnJ5OjpvbkN1cnJlbnRDZWxsdWxhclR5cGVDaGFuZ2UpOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L05ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeS5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE5ldHdvcmtJbmZv
Q2xpZW50QmxhY2tCZXJyeSk6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrSW5mb0NsaWVudEJs
YWNrQmVycnk6On5OZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkpOgorCiAyMDEyLTEwLTAyICBB
bmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hhbmdlIG1v
c3QgR3JhcGhpY3NMYXllcjo6Y3JlYXRlIGNhbGxzIHRvIHVzZSB0aGUgdmVyc2lvbiB0aGF0IHRh
a2VzIGEgR3JhcGhpY3NMYXllckZhY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm1CbGFja0JlcnJ5LmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnku
Y21ha2UKaW5kZXggN2ZkYjdlY2E3ZjIyZjI4NmVlNzE5MmRjODg1NzAyZTU3ZjQ2MGU3Ny4uMTlm
NmYwNDczZGRkOTM2MjkwMjEwNDQ5YTA1ZDViZTM1N2EwYzJlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybUJsYWNrQmVycnkuY21ha2UKQEAgLTE3LDYgKzE3LDcgQEAgTElTVChBUFBFTkQgV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5IgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgog
ICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMiCisgICAgIiR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbmV0d29ya2luZm8iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMv
dmlicmF0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL3dlYnNvY2tldHMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vYmxhY2tiZXJyeS9BcGkiCkBAIC04OCw2ICs4OSw3IEBAIExJU1QoQVBQ
RU5EIFdlYktpdF9TT1VSQ0VTCiAgICAgYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9JY29uRGF0
YWJhc2VDbGllbnRCbGFja0JlcnJ5LmNwcAogICAgIGJsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQv
SW5zcGVjdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKICAgICBibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0phdmFTY3JpcHREZWJ1Z2dlckJsYWNrQmVycnkuY3BwCisgICAgYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9OZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkuY3BwCiAgICAgYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9Ob3RpZmljYXRpb25QcmVzZW50ZXJJbXBsLmNwcAogICAgIGJsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvVmlicmF0aW9uQ2xpZW50QmxhY2tCZXJyeS5jcHAKICAgICBi
bGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L1BhZ2VQb3B1cEJsYWNrQmVycnkuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRleCA3ZjdlNmI3ZGZiZDI4OGU3MTdh
MDQ2NmYxOGZmZGRmM2E2MmZlZThlLi45MzM2NDdiMDFjNWI3ZDc4Y2UxMGFhOGEwNTYyMDY4Njk3
MzcwMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTgw
LDYgKzgwLDkgQEAKICNpbmNsdWRlICJKYXZhU2NyaXB0RGVidWdnZXJCbGFja0JlcnJ5LmgiCiAj
aW5jbHVkZSAiSmF2YVNjcmlwdFZhcmlhbnRfcC5oIgogI2luY2x1ZGUgIkxheWVyV2ViS2l0VGhy
ZWFkLmgiCisjaWYgRU5BQkxFKE5FVFdPUktfSU5GTykKKyNpbmNsdWRlICJOZXR3b3JrSW5mb0Ns
aWVudEJsYWNrQmVycnkuaCIKKyNlbmRpZgogI2luY2x1ZGUgIk5ldHdvcmtNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8
IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKQEAgLTU0OCw2ICs1NTEsMTAgQEAgdm9pZCBX
ZWJQYWdlUHJpdmF0ZTo6aW5pdChjb25zdCBXZWJTdHJpbmcmIHBhZ2VHcm91cE5hbWUpCiAgICAg
V2ViQ29yZTo6cHJvdmlkZU5vdGlmaWNhdGlvbihtX3BhZ2UsIE5vdGlmaWNhdGlvblByZXNlbnRl
ckltcGw6Omluc3RhbmNlKCkpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQor
ICAgIFdlYkNvcmU6OnByb3ZpZGVOZXR3b3JrSW5mb1RvKG1fcGFnZSwgbmV3IFdlYkNvcmU6Ok5l
dHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeSh0aGlzKSk7CisjZW5kaWYKKwogICAgIG1fcGFnZS0+
c2V0Q3VzdG9tSFRNTFRva2VuaXplckNodW5rU2l6ZSgyNTYpOwogICAgIG1fcGFnZS0+c2V0Q3Vz
dG9tSFRNTFRva2VuaXplclRpbWVEZWxheSgwLjMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrSW5m
b0NsaWVudEJsYWNrQmVycnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MmU0MjY1ODM4NGU4ODUzNjRiZmE0
YTcwNWVmY2RjZjhiZDkwMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5LmNwcApAQCAt
MCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBSZXNlYXJjaCBJbiBNb3Rp
b24gTGltaXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5U
WTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICog
TGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRl
IHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5
LmgiCisKKyNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIk5ldHdvcmtJbmZvLmgiCisjaW5j
bHVkZSAiV2ViUGFnZV9wLmgiCisKKyNpbmNsdWRlIDxtYXRoLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RhdGljIGNvbnN0IGRvdWJsZSAgbmV0d29ya1NwZWVkTm9uZSA9IDA7IC8vIDAg
TWIvcworc3RhdGljIGNvbnN0IGRvdWJsZSAgbmV0d29ya1NwZWVkRXRoZXJuZXQgPSAyMDsgLy8g
MjAgTWIvcworc3RhdGljIGNvbnN0IGRvdWJsZSAgbmV0d29ya1NwZWVkV2lmaSA9IDIwOyAvLyAy
MCBNYi9zCitzdGF0aWMgY29uc3QgZG91YmxlICBuZXR3b3JrU3BlZWQyRyA9IDYwIC8gMTAyNDsg
Ly8gNjAga2Ivcworc3RhdGljIGNvbnN0IGRvdWJsZSAgbmV0d29ya1NwZWVkM0cgPSA3OyAvLyA3
IE1iL3MKK3N0YXRpYyBjb25zdCBkb3VibGUgIG5ldHdvcmtTcGVlZDRHID0gNTA7IC8vIDUwIE1i
L3MKK3N0YXRpYyBjb25zdCBkb3VibGUgIG5ldHdvcmtTcGVlZERlZmF1bHQgPSBJTkZJTklUWTsg
Ly8gdzNjIGRyYWZ0IHN0YXRlcyBpdCBzaG91bGQgYmUgaW5maW5pdHkKKworTmV0d29ya0luZm9D
bGllbnRCbGFja0JlcnJ5OjpOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkoQmxhY2tCZXJyeTo6
V2ViS2l0OjpXZWJQYWdlUHJpdmF0ZSogd2ViUGFnZVByaXZhdGUpCisgICAgOiBtX3dlYlBhZ2VQ
cml2YXRlKHdlYlBhZ2VQcml2YXRlKQorICAgICwgbV9jb250cm9sbGVyKDApCisgICAgLCBtX2lz
QWN0aXZlKGZhbHNlKQoreworfQorCit2b2lkIE5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6
c3RhcnRVcGRhdGluZygpCit7CisgICAgaWYgKCFtX2lzQWN0aXZlKQorICAgICAgICAvLyBBZGQg
b3Vyc2VsdmVzIHRvIGxpc3RlbmVyIHNvIG91ciB2YWx1ZXMgZ2V0IHVwZGF0ZWQgd2hlbmV2ZXIg
UFBTIGNhbGxzLgorICAgICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya0luZm86Omlu
c3RhbmNlKCktPmFkZExpc3RlbmVyKHRoaXMpOworICAgIG1faXNBY3RpdmUgPSB0cnVlOworfQor
Cit2b2lkIE5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6c3RvcFVwZGF0aW5nKCkKK3sKKyAg
ICBpZiAobV9pc0FjdGl2ZSkKKyAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtJ
bmZvOjppbnN0YW5jZSgpLT5yZW1vdmVMaXN0ZW5lcih0aGlzKTsKKyAgICBtX2lzQWN0aXZlID0g
ZmFsc2U7Cit9CisKK2RvdWJsZSBOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnk6OmJhbmR3aWR0
aCgpIGNvbnN0Cit7CisgICAgc3dpdGNoIChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya0lu
Zm86Omluc3RhbmNlKCktPmdldEN1cnJlbnROZXR3b3JrVHlwZSgpKSB7CisgICAgY2FzZSBCbGFj
a0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya1R5cGVXaWZpOgorICAgICAgICByZXR1cm4gbmV0d29y
a1NwZWVkV2lmaTsKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrVHlwZUNl
bGx1bGFyOgorICAgICAgICBzd2l0Y2ggKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrSW5m
bzo6aW5zdGFuY2UoKS0+Z2V0Q3VycmVudENlbGx1bGFyVHlwZSgpKSB7CisgICAgICAgIGNhc2Ug
QmxhY2tCZXJyeTo6UGxhdGZvcm06OkNlbGx1bGFyVHlwZUVER0U6CisgICAgICAgICAgICByZXR1
cm4gbmV0d29ya1NwZWVkMkc7CisgICAgICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkNl
bGx1bGFyVHlwZUVWRE86CisgICAgICAgIGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkNlbGx1
bGFyVHlwZVVNVFM6CisgICAgICAgICAgICByZXR1cm4gbmV0d29ya1NwZWVkM0c7CisgICAgICAg
IGNhc2UgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkNlbGx1bGFyVHlwZUxURToKKyAgICAgICAgICAg
IHJldHVybiBuZXR3b3JrU3BlZWQ0RzsKKyAgICAgICAgY2FzZSBCbGFja0JlcnJ5OjpQbGF0Zm9y
bTo6Q2VsbHVsYXJUeXBlVW5rbm93bjoKKyAgICAgICAgICAgIHJldHVybiBuZXR3b3JrU3BlZWRE
ZWZhdWx0OworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQmxhY2tCZXJyeTo6
UGxhdGZvcm06Ok5ldHdvcmtUeXBlV2lyZWQ6CisgICAgICAgIHJldHVybiBuZXR3b3JrU3BlZWRF
dGhlcm5ldDsKKyAgICBjYXNlIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrVHlwZU5vbmU6
CisgICAgICAgIHJldHVybiBuZXR3b3JrU3BlZWROb25lOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBuZXR3b3JrU3BlZWREZWZhdWx0OworfQorCiti
b29sIE5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeTo6bWV0ZXJlZCgpIGNvbnN0Cit7CisgICAg
QmxhY2tCZXJyeTo6UGxhdGZvcm06OkludGVybmFsTmV0d29ya0Nvbm5lY3Rpb25UeXBlIGNlbGxU
eXBlID0gQmxhY2tCZXJyeTo6UGxhdGZvcm06Ok5ldHdvcmtJbmZvOjppbnN0YW5jZSgpLT5nZXRD
dXJyZW50TmV0d29ya1R5cGUoKTsKKyAgICBpZiAoY2VsbFR5cGUgPT0gQmxhY2tCZXJyeTo6UGxh
dGZvcm06Ok5ldHdvcmtUeXBlQ2VsbHVsYXIgfHwgY2VsbFR5cGUgPT0gQmxhY2tCZXJyeTo6UGxh
dGZvcm06Ok5ldHdvcmtUeXBlQkIpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBm
YWxzZTsKK30KKwordm9pZCBOZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnk6Om9uQ3VycmVudE5l
dHdvcmtUeXBlQ2hhbmdlKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJbnRlcm5hbE5ldHdvcmtDb25u
ZWN0aW9uVHlwZSBuZXdJbnRlcm5hbE5ldHdvcmtUeXBlKQoreworICAgIGlmIChtX2lzQWN0aXZl
KSB7CisgICAgICAgIFJlZlB0cjxOZXR3b3JrSW5mbz4gbmV3TmV0d29ya0luZm8gPSBOZXR3b3Jr
SW5mbzo6Y3JlYXRlKGJhbmR3aWR0aCgpLCBtZXRlcmVkKCkpOworICAgICAgICBOZXR3b3JrSW5m
b0NvbnRyb2xsZXI6OmZyb20obV93ZWJQYWdlUHJpdmF0ZS0+bV9wYWdlKS0+ZGlkQ2hhbmdlTmV0
d29ya0luZm9ybWF0aW9uKGV2ZW50TmFtZXMoKS53ZWJraXRuZXR3b3JraW5mb2NoYW5nZUV2ZW50
ICwgbmV3TmV0d29ya0luZm8uZ2V0KCkpOworICAgIH0KK30KKwordm9pZCBOZXR3b3JrSW5mb0Ns
aWVudEJsYWNrQmVycnk6Om9uQ3VycmVudENlbGx1bGFyVHlwZUNoYW5nZShCbGFja0JlcnJ5OjpQ
bGF0Zm9ybTo6SW50ZXJuYWxDZWxsdWxhckNvbm5lY3Rpb25UeXBlIG5ld0NlbGx1bGFyVHlwZSkK
K3sKKyAgICAvLyBPbmx5IGRpc3BhdGNoIHRvIGxpc3RlbmVycyBpZiB0aGUgY3VycmVudCB0eXBl
IGlzIGNlbGx1bGFyLgorICAgIGlmIChCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6TmV0d29ya0luZm86
Omluc3RhbmNlKCktPmdldEN1cnJlbnROZXR3b3JrVHlwZSgpID09IEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpOZXR3b3JrVHlwZUNlbGx1bGFyICYmIG1faXNBY3RpdmUpIHsKKyAgICAgICAgUmVmUHRy
PE5ldHdvcmtJbmZvPiBuZXdOZXR3b3JrSW5mbyA9IE5ldHdvcmtJbmZvOjpjcmVhdGUoYmFuZHdp
ZHRoKCksIG1ldGVyZWQoKSk7CisgICAgICAgIE5ldHdvcmtJbmZvQ29udHJvbGxlcjo6ZnJvbSht
X3dlYlBhZ2VQcml2YXRlLT5tX3BhZ2UpLT5kaWRDaGFuZ2VOZXR3b3JrSW5mb3JtYXRpb24oZXZl
bnROYW1lcygpLndlYmtpdG5ldHdvcmtpbmZvY2hhbmdlRXZlbnQgLCBuZXdOZXR3b3JrSW5mby5n
ZXQoKSk7CisgICAgfQorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5LmggYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvTmV0d29ya0luZm9DbGllbnRCbGFja0Jl
cnJ5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzViNWRhYzQ4OWJlOWQ2MzY3OWIxMGMzYWYzYjUwMWEwYTdmZTZk
MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3Vw
cG9ydC9OZXR3b3JrSW5mb0NsaWVudEJsYWNrQmVycnkuaApAQCAtMCwwICsxLDU2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpZm5kZWYgTmV0d29ya0luZm9D
bGllbnRCbGFja0JlcnJ5X2gKKyNkZWZpbmUgTmV0d29ya0luZm9DbGllbnRCbGFja0JlcnJ5X2gK
KworI2luY2x1ZGUgIk5ldHdvcmtJbmZvQ2xpZW50LmgiCisjaW5jbHVkZSAiTmV0d29ya0luZm9D
b250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1OZXR3b3JrSW5mby5o
PgorCituYW1lc3BhY2UgQmxhY2tCZXJyeSB7CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdl
YlBhZ2VQcml2YXRlOworfQorfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5ldHdv
cmtJbmZvQ2xpZW50QmxhY2tCZXJyeSA6IHB1YmxpYyBOZXR3b3JrSW5mb0NsaWVudCwgcHVibGlj
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpOZXR3b3JrSW5mb0xpc3RlbmVyIHsKK3B1YmxpYzoKKwor
ICAgIE5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeShCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBh
Z2VQcml2YXRlKik7CisgICAgfk5ldHdvcmtJbmZvQ2xpZW50QmxhY2tCZXJyeSgpIHsgfQorCisg
ICAgdm9pZCBzdGFydFVwZGF0aW5nKCk7CisgICAgdm9pZCBzdG9wVXBkYXRpbmcoKTsKKyAgICBk
b3VibGUgYmFuZHdpZHRoKCkgY29uc3Q7CisgICAgYm9vbCBtZXRlcmVkKCkgY29uc3Q7CisKKyAg
ICB2b2lkIG9uQ3VycmVudE5ldHdvcmtUeXBlQ2hhbmdlKEJsYWNrQmVycnk6OlBsYXRmb3JtOjpJ
bnRlcm5hbE5ldHdvcmtDb25uZWN0aW9uVHlwZSBuZXdOZXR3b3JrVHlwZSk7CisgICAgdm9pZCBv
bkN1cnJlbnRDZWxsdWxhclR5cGVDaGFuZ2UoQmxhY2tCZXJyeTo6UGxhdGZvcm06OkludGVybmFs
Q2VsbHVsYXJDb25uZWN0aW9uVHlwZSBuZXdDZWxsdWxhclR5cGUpOworCitwcml2YXRlOgorICAg
IEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGUqIG1fd2ViUGFnZVByaXZhdGU7Cisg
ICAgTmV0d29ya0luZm9Db250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CisgICAgYm9vbCBtX2lzQWN0
aXZlOworfTsKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0Js
YWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0JsYWNrQmVycnkuY21ha2UKaW5k
ZXggOTY4NWMwMmE4NzRiNjdmNjE0Mjg0OGY1ODNkNjE5NDY4NWM1Yjk3MS4uZDIwNTc5ZDk1ZWE2
OGQyNmE3YjE5NGRhNThiNDFhNmI4YjRlYWRjOCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09w
dGlvbnNCbGFja0JlcnJ5LmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJy
eS5jbWFrZQpAQCAtMTU1LDYgKzE1NSw3IEBAIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZB
TFVFKEVOQUJMRV9MTElOVCBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVO
QUJMRV9NRURJQV9TVFJFQU0gT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTUlDUk9EQVRBIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX05FVFdPUktfSU5GTyBPTikKIFdFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9OT1RJRklDQVRJT05TIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyBPTikKIFdFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9QQUdFX1BPUFVQIE9OKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDEzMWNkYTA0OGNhYjQ3OWE3MWE0
NDhjYjdkZTQwYzc4MGVlNTQ2NzMuLmU3OWU0MDg5ZTE2NDc3MjU1ZmExZjRiNDYwYTA5OTA3ZWIz
YTdhNjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0wMyAgT3R0byBEZXJlayBDaGV1bmcgIDxvdGNoZXVu
Z0ByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBJbXBsZW1lbnRpbmcgdGhlIE5ldHdv
cmtJbmZvIEFQSSBmb3IgQkIgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTgyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFbmFibGluZyBOZXR3b3JrSW5mbyBBUEkgZm9yIHRoZSBCbGFja0JlcnJ5
IHBvcnQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisK
IDIwMTItMTAtMDMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBFeGNlcHRpb24gdGhyb3duIHdoZW4gcnVubmluZyBhY2Nlc3NpYmlsaXR5L2NvbnRhaW5l
ci1ub2RlLWRlbGV0ZS1jYXVzZXMtY3Jhc2guaHRtbCB0ZXN0CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG0KaW5kZXggMmU5YTE0N2NkYzM1ZjQxMjlhMWMxY2MwMjBmZTc4MTEw
Y2ZlYjYyZS4uNWJkZjBkMzE0OTJmNzkyMTEzNGY0M2Y2ZWYwYjJmNDU0ZDg3MTUwNiAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMzMyLDcgKzMzMiw3IEBAIG15
IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9B
UEkiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAibmV0d29yay1pbmZvIiwgZGVzYyA9PiAiVG9nZ2xlIE5ldHdv
cmsgSW5mbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFdPUktfSU5GTyIs
IGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRuZXR3b3JrSW5mb1N1cHBvcnQgfSwKKyAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFdPUktfSU5GTyIsIGRlZmF1bHQgPT4gKGlzRWZsKCkg
fHwgaXNCbGFja0JlcnJ5KCkpLCB2YWx1ZSA9PiBcJG5ldHdvcmtJbmZvU3VwcG9ydCB9LAogCiAg
ICAgeyBvcHRpb24gPT4gIm5vdGlmaWNhdGlvbnMiLCBkZXNjID0+ICJUb2dnbGUgTm90aWZpY2F0
aW9ucyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05PVElGSUNBVElPTlMiLCBk
ZWZhdWx0ID0+IGlzQmxhY2tCZXJyeSgpLCB2YWx1ZSA9PiBcJG5vdGlmaWNhdGlvbnNTdXBwb3J0
IH0sCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggN2E0MmZhOTBjMjky
OWJkNzAyZjljYjg3YTVmNTA5MDdmYThkYmM4Yy4uZGQxMDU5ZjI4NTBiNjlmYjcwYzQxZmM5MTky
MzhkOWJlMzMxZDU5MCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDEyLTEwLTAzICBPdHRvIERlcmVrIENoZXVuZyAgPG90Y2hldW5nQHJp
bS5jb20+CisKKyAgICAgICAgW0JsYWNrQmVycnldIEltcGxlbWVudGluZyB0aGUgTmV0d29ya0lu
Zm8gQVBJIGZvciBCQiBwb3J0IAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTgyNzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGRpbmcgcmVmZXJlbmNlcyB0byBuZXcgY2xhc3NlcyBhZGRlZCB0byBzdXBw
b3J0IEJsYWNrQmVycnkncworICAgICAgICBOZXR3b3JrSW5mbyBpbXBsZW1lbnRhdGlvbi4KKwor
ICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zQmxhY2tCZXJyeS5jbWFrZToKKwogMjAxMi0x
MC0wMSAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBDYWxl
bmRhciBwaWNrZXIgc2hvdWxkIHVzZSB6ZXJvIGFzIGRlZmF1bHQgc3RlcCBiYXNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>