<?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>73100</bug_id>
          
          <creation_ts>2011-11-24 15:28:35 -0800</creation_ts>
          <short_desc>Add CMake based build system for Wx port</short_desc>
          <delta_ts>2013-09-23 01:45:37 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>1</everconfirmed>
          <reporter name="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>kevino</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>508913</commentid>
    <comment_count>0</comment_count>
      <attachid>116552</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-11-24 15:28:35 -0800</bug_when>
    <thetext>Created attachment 116552
WIP: First code drop of CMake build system for Wx

Add CMake base build system for Wx port</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508950</commentid>
    <comment_count>1</comment_count>
      <attachid>116552</attachid>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2011-11-24 21:51:56 -0800</bug_when>
    <thetext>Comment on attachment 116552
WIP: First code drop of CMake build system for Wx

I don&apos;t think the wx port needs two build systems in the tree, and as the wx port maintainer, I am only going to use and maintain the waf build system, as I really need to keep the maintenance work to a minimum and waf does a better job of that than CMake would.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508977</commentid>
    <comment_count>2</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-11-24 22:58:52 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; (From update of attachment 116552 [details])
&gt; I don&apos;t think the wx port needs two build systems in the tree.
I want to unify our build systems. There is also a bug for a replacement of the Visual Studio files at bug 72816.

&gt; I really need to keep the maintenance work to a minimum
Maintaining one build system is less work than 5! For _all_ webkit devs.

&gt; waf does a better job of that than CMake would.
Can you explain that to me? What is a killer feature of waf vs. CMake? When did you used CMake the last time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508989</commentid>
    <comment_count>3</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2011-11-24 23:43:20 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; (From update of attachment 116552 [details] [details])
&gt; &gt; I don&apos;t think the wx port needs two build systems in the tree.
&gt; I want to unify our build systems. There is also a bug for a replacement of the Visual Studio files at bug 72816.
&gt; 
&gt; &gt; I really need to keep the maintenance work to a minimum
&gt; Maintaining one build system is less work than 5! For _all_ webkit devs.
&gt; 
&gt; &gt; waf does a better job of that than CMake would.
&gt; Can you explain that to me? What is a killer feature of waf vs. CMake? When did you used CMake the last time?

The killer feature is that when a new file is added to the build system, 90% of the time no one has to do anything. The build system automatically adds the file to the build for me so long as it&apos;s in one of the directories the port is set to build. Since the WebKit port is fairly clean, this is almost always the correct action to take, and I just add an exception on the rare occasions it doesn&apos;t work.

So basically, with almost no build system maintenance at all, the build will continue to work sometimes for weeks since my last update, whereas with the other ports someone needs to be updating the build system on more or less a daily basis. Sure, that effort can be shared, but on the wx port, it simply doesn&apos;t need to be done most of the time, which means more time coding features or debugging rather than doing tedious build system work. As an example, I actually checked build system commits one time, and over a period of time in which I updated the waf build system 26 times, the Gyp build files needed around 140 something updates. So that&apos;s about 6 times more build system commits to maintain a port than what wx has. I personally consider that easier to maintain.

Also, since waf uses Python, I have a full scripting language at my disposal whenever I want to solve a problem (i.e. I can write a script to determine files to build, rather than do everything by hand), so I&apos;m not boxed into some build system&apos;s macro language nor am I limited to what native project files might support.

So from my perspective, CMake, Bakefile, and Gyp all basically work the same, there are differences but they&apos;re mostly in the project format and level of native project support. None of them do what I want them to do, which is let the computer do most of the maintenance work automatically based on the project structure and rules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509009</commentid>
    <comment_count>4</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2011-11-25 00:18:48 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; (From update of attachment 116552 [details] [details] [details])
&gt; &gt; &gt; I don&apos;t think the wx port needs two build systems in the tree.
&gt; &gt; I want to unify our build systems. There is also a bug for a replacement of the Visual Studio files at bug 72816.
&gt; &gt; 
&gt; &gt; &gt; I really need to keep the maintenance work to a minimum
&gt; &gt; Maintaining one build system is less work than 5! For _all_ webkit devs.
&gt; &gt; 
&gt; &gt; &gt; waf does a better job of that than CMake would.
&gt; &gt; Can you explain that to me? What is a killer feature of waf vs. CMake? When did you used CMake the last time?
&gt; 
&gt; The killer feature is that when a new file is added to the build system, 90% of the time no one has to do anything. The build system automatically adds the file to the build for me so long as it&apos;s in one of the directories the port is set to build. Since the WebKit port is fairly clean, this is almost always the correct action to take, and I just add an exception on the rare occasions it doesn&apos;t work.

The &quot;implicit vs. explicit&quot; way is in CMake possible too, but I prefer to list all files by hand.

&gt; So basically, with almost no build system maintenance at all, the build will continue to work sometimes for weeks since my last update, whereas with the other ports someone needs to be updating the build system on more or less a daily basis. Sure, that effort can be shared, but on the wx port, it simply doesn&apos;t need to be done most of the time, which means more time coding features or debugging rather than doing tedious build system work. As an example, I actually checked build system commits one time, and over a period of time in which I updated the waf build system 26 times, the Gyp build files needed around 140 something updates. So that&apos;s about 6 times more build system commits to maintain a port than what wx has. I personally consider that easier to maintain.

If you want to see what&apos;s the port specific maintenance is, you need to look at the PlatformXXX.cmake files. If I don&apos;t change any port specific stuff, I don&apos;t have to touch them at all. The generic stuff is all handled in the shared CMakeLists.txt. If we get more ports to use CMake it will make sense to share stuff like the networkbackend too.

&gt; Also, since waf uses Python, I have a full scripting language at my disposal whenever I want to solve a problem (i.e. I can write a script to determine files to build, rather than do everything by hand), so I&apos;m not boxed into some build system&apos;s macro language nor am I limited to what native project files might support.

I don&apos;t see much need for this, but AFAIK CMake can put all targets into the native project files.
Please correct me if I&apos;m wrong, but many stuff is done in Makefiles and not in waf.

&gt; So from my perspective, CMake, Bakefile, and Gyp all basically work the same, there are differences but they&apos;re mostly in the project format and level of native project support. None of them do what I want them to do, which is let the computer do most of the maintenance work automatically based on the project structure and rules.

IMHO switching to CMake will result in less port specific maintenance.

Some of my arguments for CMake:
*) Reduce the count of build systems. It&apos;s true that if a generic file is added it works nearly without any work, but if you add any more specific stuff like code generators devs need to add it in _all_ build systems.
*) No dependency on Makefiles, CMake contains everything needed to builds.
*) Complete native windows support. There is no need for cygwin. Win32 perl and python are enough.
*) Reuse features of &quot;other ports&quot;. E.g. there is work to get V8 as alternative JS engine into CMake. If we share the build system, you only need to set a define for switching between the JS engines. For all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509203</commentid>
    <comment_count>5</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2011-11-25 09:53:56 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (In reply to comment #1)
&gt; &gt; &gt; &gt; (From update of attachment 116552 [details] [details] [details] [details])
&gt; &gt; &gt; &gt; I don&apos;t think the wx port needs two build systems in the tree.
&gt; &gt; &gt; I want to unify our build systems. There is also a bug for a replacement of the Visual Studio files at bug 72816.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; I really need to keep the maintenance work to a minimum
&gt; &gt; &gt; Maintaining one build system is less work than 5! For _all_ webkit devs.
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; waf does a better job of that than CMake would.
&gt; &gt; &gt; Can you explain that to me? What is a killer feature of waf vs. CMake? When did you used CMake the last time?
&gt; &gt; 
&gt; &gt; The killer feature is that when a new file is added to the build system, 90% of the time no one has to do anything. The build system automatically adds the file to the build for me so long as it&apos;s in one of the directories the port is set to build. Since the WebKit port is fairly clean, this is almost always the correct action to take, and I just add an exception on the rare occasions it doesn&apos;t work.
&gt; 
&gt; The &quot;implicit vs. explicit&quot; way is in CMake possible too, but I prefer to list all files by hand.

Well, your preference is to do more maintenance work, whereas for me, that &apos;preference&apos; reduces the time I can spend actually improving the port. That alone is a big problem for me switching.

&gt; &gt; So basically, with almost no build system maintenance at all, the build will continue to work sometimes for weeks since my last update, whereas with the other ports someone needs to be updating the build system on more or less a daily basis. Sure, that effort can be shared, but on the wx port, it simply doesn&apos;t need to be done most of the time, which means more time coding features or debugging rather than doing tedious build system work. As an example, I actually checked build system commits one time, and over a period of time in which I updated the waf build system 26 times, the Gyp build files needed around 140 something updates. So that&apos;s about 6 times more build system commits to maintain a port than what wx has. I personally consider that easier to maintain.
&gt; 
&gt; If you want to see what&apos;s the port specific maintenance is, you need to look at the PlatformXXX.cmake files. If I don&apos;t change any port specific stuff, I don&apos;t have to touch them at all. The generic stuff is all handled in the shared CMakeLists.txt. If we get more ports to use CMake it will make sense to share stuff like the networkbackend too.

Right, shared maintenance, which means that until the main ports are using it, sometimes when I&apos;m pulling code I will have to find out what files haven&apos;t yet been added and add them myself.

&gt; &gt; Also, since waf uses Python, I have a full scripting language at my disposal whenever I want to solve a problem (i.e. I can write a script to determine files to build, rather than do everything by hand), so I&apos;m not boxed into some build system&apos;s macro language nor am I limited to what native project files might support.
&gt; 
&gt; I don&apos;t see much need for this, but AFAIK CMake can put all targets into the native project files.
&gt; Please correct me if I&apos;m wrong, but many stuff is done in Makefiles and not in waf.

I don&apos;t have much of a need for native project files either, I think they&apos;re a waste of time, although waf can generate MSVC projects. The problem is that you have to either (1) add support for native project files, or (2) convince all those who DO like them to abandon them if you want them to all use CMake, or waf, or whatever.

As for the Makefiles, if by &quot;many stuff&quot;, you mean running DerivedSources.make, yes, we do that, but it could easily be done in waf, and be rule-based as well, I just have not had the interest in doing it yet because it works &quot;well enough&quot; right now. (Though it is certainly not ideal.) If I had the time to do things like move other people&apos;s build systems to waf instead of adding more features to wxWebKit, it would most certainly have been done a long time ago. ;-) A nice side-effect is that thanks to Python, it would make it really easy to prune the DerivedSources files and remove old ones that no longer get generated and keep that dir clean.

OTOH, waf is already capable of sharing the network backend code, so it&apos;s not a simple issue of waf is limited and CMake is not. In both cases, we&apos;re simply talking about things that could be done, but that haven&apos;t so far been needed or seemed big enough of a problem to be done. Though I might rewrite the DerivedSources stuff over Christmas break or something regardless. :)

&gt; &gt; So from my perspective, CMake, Bakefile, and Gyp all basically work the same, there are differences but they&apos;re mostly in the project format and level of native project support. None of them do what I want them to do, which is let the computer do most of the maintenance work automatically based on the project structure and rules.
&gt; 
&gt; IMHO switching to CMake will result in less port specific maintenance.

Less than other build systems, but not less than waf. In an ideal state, from everything I&apos;ve read and heard so far, CMake is &quot;as good as&quot; waf, until of course you need to do something CMake&apos;s project formats don&apos;t support, and then you have to start calling external tools and doing things like pulling in data from them in a format CMake can manipulate.

&gt; Some of my arguments for CMake:
&gt; *) Reduce the count of build systems. It&apos;s true that if a generic file is added it works nearly without any work, but if you add any more specific stuff like code generators devs need to add it in _all_ build systems.
&gt; *) No dependency on Makefiles, CMake contains everything needed to builds.
&gt; *) Complete native windows support. There is no need for cygwin. Win32 perl and python are enough.
&gt; *) Reuse features of &quot;other ports&quot;. E.g. there is work to get V8 as alternative JS engine into CMake. If we share the build system, you only need to set a define for switching between the JS engines. For all ports.

All of these advantages apply equally to waf. waf also has:

- built-in multi-core support, and will actually  by default compile using all of your cores (even on Windows/nmake);
- is in its entirety a ~90KB file, so we could actually put the build system in the tree and not require people to install it, unlike CMake; and 
- has the power of the entire Python standard library at its disposal (and Py3 compat if we want to go that route), which is a pretty massive plus IMHO.

And thanks to its rules based compilation, adding new ports is pretty easy. You would add your port name to the list (and what core features it uses, like CF, etc.), and it would automatically adjust the rules to include your port subdirectories, and WhateverPN.cpp (where PN is the port / feature name, like WhateverQt.cpp or WhateverCF.cpp) files to the build, and exclude those of other ports / features. (Because of the exclusion rule, I actually have most ports listed already.) Then it&apos;s mostly just a matter of passing --port=XYZ to waf, seeing how it builds, and adding/adjusting whatever port-specific compilation and linking flags you need. Heck, thanks to Python, we could even have waf output CMake or Gyp project files rather than build, if we wanted to.

I personally think waf has a lot going for it and stands up very well against any build system I&apos;ve been presented with thus far. However, I don&apos;t think many people really take it seriously or give it a fair shake. This goes into the whole preferences discussion, which is the real sticking point. Each port developer has preferences, like your preference to explicitly list build files or some peoples&apos; strong preference for project files, and these preferences come into conflict with each other. So the real issue that needs dealt with is not &quot;which build system is best&quot;, it is, &quot;which build system can best accommodate conflicting developer preferences&quot;, to which the answer is simply &quot;none&quot;. Everyone does at some point have to agree on a best method and commit to it if we are to ever consolidate things. This is actually the main reason I don&apos;t really try to evangelize waf, and why I have suggested in the past having scripts that can generate file lists for various project formats as ways to reduce maintenance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932080</commentid>
    <comment_count>6</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-09-23 01:45:37 -0700</bug_when>
    <thetext>Wx has been removed from the tree.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116552</attachid>
            <date>2011-11-24 15:28:35 -0800</date>
            <delta_ts>2011-11-24 21:51:56 -0800</delta_ts>
            <desc>WIP: First code drop of CMake build system for Wx</desc>
            <filename>wx.patch</filename>
            <type>text/plain</type>
            <size>14115</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggNTUwNTFl
Mi4uMTdiOWFiNiAxMDA2NDQKLS0tIGEvQ01ha2VMaXN0cy50eHQKKysrIGIvQ01ha2VMaXN0cy50
eHQKQEAgLTM4LDcgKzM4LDcgQEAgSU5DTFVERShXZWJLaXRGZWF0dXJlcykKICMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KICMgRGV0ZXJtaW5lIHdoaWNoIHBvcnQgd2lsbCBiZSBidWlsdAogIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotU0VUKEFMTF9QT1JUUyBFZmwgV2luQ0UgQmxhY2tCZXJyeSkKK1NF
VChBTExfUE9SVFMgRWZsIFdpbkNFIFd4IEJsYWNrQmVycnkpCiBTRVQoUE9SVCAiTk9QT1JUIiBD
QUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25lIG9mICR7
QUxMX1BPUlRTfSkiKQogCiBMSVNUKEZJTkQgQUxMX1BPUlRTICR7UE9SVH0gUkVUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV3guY21ha2UgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvUGxhdGZvcm1XeC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xNmUwZDNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L1BsYXRmb3JtV3guY21ha2UKQEAgLTAsMCArMSw4IEBACitMSVNUKEFQUEVORCBKYXZhU2NyaXB0
Q29yZV9TT1VSQ0VTCisgICAgaml0L0V4ZWN1dGFibGVBbGxvY2F0b3JGaXhlZFZNUG9vbC5jcHAK
KyAgICBqaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAKKykKKworTElTVChBUFBFTkQgSmF2YVNj
cmlwdENvcmVfTElCUkFSSUVTCisgICAgJHtJQ1VfSTE4Tl9MSUJSQVJJRVN9CispCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1XeC5jbWFrZSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9ybVd4LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjllYjk1ODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1XeC5jbWFrZQpAQCAtMCwwICsxLDQgQEAKK0xJU1Qo
QVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAgICAke0NNQUtFX0RMX0xJQlN9CisgICAgJHtJQ1VfTElC
UkFSSUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9y
bVd4LmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVd4LmNtYWtlCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0YjY5MTcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtV3guY21ha2UKQEAgLTAsMCAr
MSwyMSBAQAorTElTVChBUFBFTkQgV1RGX1NPVVJDRVMKKyAgICBPU0FsbG9jYXRvclBvc2l4LmNw
cAorICAgIFRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuY3BwCisgICAgVGhyZWFkaW5nUHRo
cmVhZHMuY3BwCisKKyAgICB1bmljb2RlL2ljdS9Db2xsYXRvcklDVS5jcHAKKworICAgIHd4L01h
aW5UaHJlYWRXeC5jcHAKKyAgICB3eC9TdHJpbmdXeC5jcHAKKykKKworTElTVChBUFBFTkQgV1RG
X0xJQlJBUklFUworICAgIHB0aHJlYWQKKyAgICAke0NNQUtFX0RMX0xJQlN9CisgICAgJHt3eFdp
ZGdldHNfTElCUkFSSUVTfQorKQorCitMSVNUKEFQUEVORCBXVEZfSU5DTFVERV9ESVJFQ1RPUklF
UworICAgICR7SUNVX0lOQ0xVREVfRElSU30KKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vd3Rm
L3VuaWNvZGUvCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVd4LmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XeC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45N2Q5N2ZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XeC5jbWFrZQpAQCAtMCwwICsxLDE4OSBAQAorTElTVChBUFBFTkQgV2ViQ29yZV9J
TkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7V0VCQ09SRV9ESVJ9L2FjY2Vzc2liaWxpdHkvd3gi
CisgICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2NwcC8iCisgICAgIiR7V0VCQ09SRV9ESVJ9
L3BhZ2Uvd3giCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3d4IgorICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy93eCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vbmV0d29yay9jdXJsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS93eC93eGNvZGUi
CisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0iCispCisKK0xJU1QoQVBQRU5EIFdlYkNvcmVf
U09VUkNFUworICAgIGFjY2Vzc2liaWxpdHkvd3gvQWNjZXNzaWJpbGl0eU9iamVjdFd4LmNwcAor
CisgICAgYmluZGluZ3MvY3BwL1dlYkRPTUNTdHJpbmcuY3BwCisgICAgYmluZGluZ3MvY3BwL1dl
YkRPTUN1c3RvbVZvaWRDYWxsYmFjay5jcHAKKyAgICBiaW5kaW5ncy9jcHAvV2ViRE9NRXZlbnRU
YXJnZXQuY3BwCisgICAgYmluZGluZ3MvY3BwL1dlYkRPTVN0cmluZy5jcHAKKyAgICBiaW5kaW5n
cy9jcHAvV2ViRXhjZXB0aW9uSGFuZGxlci5jcHAKKworICAgIGJpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXJXeC5jcHAKKworICAgIGVkaXRpbmcvU21hcnRSZXBsYWNlSUNVLmNwcAorICAgIGVk
aXRpbmcvd3gvRWRpdG9yV3guY3BwCisKKyAgICBwYWdlL3d4L0RyYWdDb250cm9sbGVyV3guY3Bw
CisgICAgcGFnZS93eC9FdmVudEhhbmRsZXJXeC5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvQ29sb3JXeC5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9GbG9hdFJlY3RXeC5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy93eC9Gb250Q2FjaGVXeC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ZvbnRQbGF0
Zm9ybURhdGFXeC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9Gb250V3guY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3Mvd3gvR2x5cGhNYXBXeC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGlj
cy93eC9HcmFkaWVudFd4LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0dyYXBoaWNzQ29u
dGV4dFd4LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L0ljb25XeC5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy93eC9JbWFnZUJ1ZmZlcld4LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3d4L0ltYWdlV3guY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3gvSW50UG9pbnRXeC5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9JbnRSZWN0V3guY3BwCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3gvSW50U2l6ZVd4LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3d4L1BhdGhXeC5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93eC9TaW1wbGVGb250RGF0YVd4LmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3d4L1RyYW5zZm9ybWF0aW9uTWF0cml4V3guY3BwCisKKyAgICBwbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvYm1wL0JNUEltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNv
ZGVycy9ibXAvQk1QSW1hZ2VSZWFkZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
Z2lmL0dJRkltYWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9naWYv
R0lGSW1hZ2VSZWFkZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvaWNvL0lDT0lt
YWdlRGVjb2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFn
ZURlY29kZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvcG5nL1BOR0ltYWdlRGVj
b2Rlci5jcHAKKyAgICBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29k
ZXIuY3BwCisgICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd3gvSW1hZ2VEZWNvZGVyV3guY3Bw
CisKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyQ3VybC5jcHAKKyAgICBwbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ3JlZGVudGlhbFN0b3JhZ2VDdXJsLmNwcAorICAgIHBsYXRmb3Jt
L25ldHdvcmsvY3VybC9ETlNDdXJsLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvY3VybC9Gb3Jt
RGF0YVN0cmVhbUN1cmwuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL1Byb3h5U2VydmVy
Q3VybC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNw
cAorICAgIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9jdXJsL1NvY2tldFN0cmVhbUhhbmRsZUN1cmwuY3BwCisKKyAg
ICBwbGF0Zm9ybS90ZXh0L1RleHRCcmVha0l0ZXJhdG9ySUNVLmNwcAorICAgIHBsYXRmb3JtL3Rl
eHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0
b3JJQ1UuY3BwCisKKyAgICBwbGF0Zm9ybS93eC9DbGlwYm9hcmRXeC5jcHAKKyAgICBwbGF0Zm9y
bS93eC9Db250ZXh0TWVudUl0ZW1XeC5jcHAKKyAgICBwbGF0Zm9ybS93eC9Db250ZXh0TWVudVd4
LmNwcAorICAgIHBsYXRmb3JtL3d4L0N1cnNvcld4LmNwcAorICAgIHBsYXRmb3JtL3d4L0RyYWdE
YXRhV3guY3BwCisgICAgcGxhdGZvcm0vd3gvRHJhZ0ltYWdlV3guY3BwCisgICAgcGxhdGZvcm0v
d3gvRXZlbnRMb29wV3guY3BwCisgICAgcGxhdGZvcm0vd3gvRmlsZVN5c3RlbVd4LmNwcAorICAg
IHBsYXRmb3JtL3d4L0tVUkxXeC5jcHAKKyAgICBwbGF0Zm9ybS93eC9LZXlib2FyZEV2ZW50V3gu
Y3BwCisgICAgcGxhdGZvcm0vd3gvTG9jYWxpemVkU3RyaW5nc1d4LmNwcAorICAgIHBsYXRmb3Jt
L3d4L0xvZ2dpbmdXeC5jcHAKKyAgICBwbGF0Zm9ybS93eC9NaW1lVHlwZVJlZ2lzdHJ5V3guY3Bw
CisgICAgcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcAorICAgIHBsYXRmb3JtL3d4L01vdXNl
V2hlZWxFdmVudFd4LmNwcAorICAgIHBsYXRmb3JtL3d4L1Bhc3RlYm9hcmRXeC5jcHAKKyAgICBw
bGF0Zm9ybS93eC9Qb3B1cE1lbnVXeC5jcHAKKyAgICBwbGF0Zm9ybS93eC9SZW5kZXJUaGVtZVd4
LmNwcAorICAgIHBsYXRmb3JtL3d4L1NTTEtleUdlbmVyYXRvcld4LmNwcAorICAgIHBsYXRmb3Jt
L3d4L1NjcmVlbld4LmNwcAorICAgIHBsYXRmb3JtL3d4L1Njcm9sbFZpZXdXeC5jcHAKKyAgICBw
bGF0Zm9ybS93eC9TY3JvbGxiYXJUaGVtZVd4LmNwcAorICAgIHBsYXRmb3JtL3d4L1NlYXJjaFBv
cHVwTWVudVd4LmNwcAorICAgIHBsYXRmb3JtL3d4L1NoYXJlZEJ1ZmZlcld4LmNwcAorICAgIHBs
YXRmb3JtL3d4L1NoYXJlZFRpbWVyV3guY3BwCisgICAgcGxhdGZvcm0vd3gvU291bmRXeC5jcHAK
KyAgICBwbGF0Zm9ybS93eC9TeXN0ZW1UaW1lV3guY3BwCisgICAgcGxhdGZvcm0vd3gvVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcAorICAgIHBsYXRmb3JtL3d4L1RleHRCcmVha0l0ZXJhdG9ySW50ZXJu
YWxJQ1VXeC5jcHAKKyAgICBwbGF0Zm9ybS93eC9XaWRnZXRXeC5jcHAKKworICAgIHBsYXRmb3Jt
L3d4L3d4Y29kZS9jYWlyby9ub24ta2VybmVkLWRyYXdpbmcuY3BwCisKKyAgICBwbGF0Zm9ybS93
eC93eGNvZGUvZ3RrL2ZvbnRwcm9wcy5jcHAKKyAgICBwbGF0Zm9ybS93eC93eGNvZGUvZ3RrL3Nj
cm9sbGJhcl9yZW5kZXIuY3BwCisKKyAgICBwbHVnaW5zL1BsdWdpbkRhdGEuY3BwCisgICAgcGx1
Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKKyAgICBwbHVnaW5zL1BsdWdpbkRlYnVnLmNwcAorICAg
IHBsdWdpbnMvUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlci5jcHAKKyAgICBwbHVnaW5zL1BsdWdp
blBhY2thZ2UuY3BwCisgICAgcGx1Z2lucy9QbHVnaW5QYWNrYWdlTm9uZS5jcHAKKyAgICBwbHVn
aW5zL1BsdWdpblN0cmVhbS5jcHAKKyAgICBwbHVnaW5zL1BsdWdpblZpZXcuY3BwCisgICAgcGx1
Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKKworICAgIHBsdWdpbnMvd3gvUGx1Z2luRGF0YVd4LmNw
cAorKQorCitMSVNUKEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUworICAgICR7Q1VSTF9MSUJSQVJJ
RVN9CisgICAgJHtDYWlyb19MSUJSQVJJRVN9CisgICAgJHtHVEsyX0xJQlJBUklFU30KKyAgICAk
e0xJQlhNTDJfTElCUkFSSUVTfQorICAgICR7TElCWFNMVF9MSUJSQVJJRVN9CisgICAgJHtQYW5n
b19DYWlyb19MSUJSQVJZfQorICAgICR7UGFuZ29fTElCUkFSWX0KKyAgICAke1NRTElURV9MSUJS
QVJJRVN9CispCisKK0xJU1QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUworICAg
ICR7Q2Fpcm9fSU5DTFVERV9ESVJTfQorICAgICR7R1RLMl9JTkNMVURFX0RJUlN9CisgICAgJHtH
bGliX0lOQ0xVREVfRElSfQorICAgICR7R2xpYkNvbmZpZ19JTkNMVURFX0RJUn0KKyAgICAke0lD
VV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElCWFNM
VF9JTkNMVURFX0RJUn0KKyAgICAke1BhbmdvX0lOQ0xVREVfRElSU30KKyAgICAke1NRTElURV9J
TkNMVURFX0RJUn0KKykKKworIyBDcmVhdGUgRE9NIEMrKyBjb2RlIGdpdmVuIGFuIElETCBpbnB1
dAorIyBXZSBkZWZpbmUgYSBuZXcgbGlzdCBvZiBmZWF0dXJlIGRlZmluZXMgdGhhdCBpcyBwcmVm
aXhlZCB3aXRoIExBTkdVQUdFX0NQUD0xIHNvIGFzIHRvIGF2b2lkIHRoZQorIyB3YXJuaW5nICJt
aXNzaW5nIHdoaXRlc3BhY2UgYWZ0ZXIgdGhlIG1hY3JvIG5hbWUiIHdoZW4gaW5saW5pbmcgIkxB
TkdVQUdFX0NQUD0xICR7RkVBVFVSRV9ERUZJTkVTfSIuCitTRVQoRkVBVFVSRV9ERUZJTkVTX1dF
QkNPUkUgIkxBTkdVQUdFX0NQUD0xIikKK0ZPUkVBQ0ggKF9mZWF0dXJlICR7RkVBVFVSRV9ERUZJ
TkVTfSkKKyAgICBTRVQoRkVBVFVSRV9ERUZJTkVTX1dFQkNPUkUgIiR7RkVBVFVSRV9ERUZJTkVT
X1dFQkNPUkV9ICR7X2ZlYXR1cmV9IikKK0VOREZPUkVBQ0ggKCkKKworIyBGSVhNRTogV2UgbmVl
ZCB0byBhZGQgdGhlIElETHMgZm9yIFNRTCBzdG9yYWdlIGFuZCBXZWIgV29ya2Vycy4gU2VlIFBS
ICMxMjM0ODQuCitTRVQoV2ViQ29yZV9OT19DUFBfSURMX0ZJTEVTCisgICAgJHtTVkdfSURMX0ZJ
TEVTfQorICAgIGRvbS9DdXN0b21FdmVudC5pZGwKKyAgICBkb20vUG9wU3RhdGVFdmVudC5pZGwK
KyAgICBodG1sL1ZvaWRDYWxsYmFjay5pZGwKKyAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZS5p
ZGwKKyAgICBpbnNwZWN0b3IvU2NyaXB0UHJvZmlsZU5vZGUuaWRsCispCisKK0xJU1QoQVBQRU5E
IFdlYkNvcmVfSURMX0ZJTEVTCisgICAgY3NzL01lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaWRsCisp
CisKK1NFVChXZWJDb3JlX0NQUF9JRExfRklMRVMgJHtXZWJDb3JlX0lETF9GSUxFU30pCisKK0ZP
UkVBQ0ggKF9maWxlICR7V2ViQ29yZV9OT19DUFBfSURMX0ZJTEVTfSkKKyAgICBTVFJJTkcoUkVQ
TEFDRSAiJHtfZmlsZX0iICIiIFdlYkNvcmVfQ1BQX0lETF9GSUxFUyAiJHtXZWJDb3JlX0NQUF9J
RExfRklMRVN9IikKK0VOREZPUkVBQ0ggKCkKKworU0VUKFdlYkNvcmVfQ1BQX0lETF9GSUxFUwor
ICAgIGRvbS9FdmVudExpc3RlbmVyLmlkbAorICAgIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJy
YXkuaWRsCisgICAgIiR7V2ViQ29yZV9DUFBfSURMX0ZJTEVTfSIKKykKKworRk9SRUFDSCAoX2Zp
bGUgJHtXZWJDb3JlX0NQUF9JRExfRklMRVN9KQorICAgIEdFVF9GSUxFTkFNRV9DT01QT05FTlQg
KF9uYW1lICR7X2ZpbGV9IE5BTUVfV0UpCisgICAgQUREX0NVU1RPTV9DT01NQU5EKAorICAgICAg
ICBPVVRQVVQgICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9XZWJET00ke19uYW1lfS5j
cHAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1dlYkRPTSR7X25hbWV9LmgKKyAgICAg
ICAgTUFJTl9ERVBFTkRFTkNZICR7X2ZpbGV9CisgICAgICAgIERFUEVORFMgJHtXRUJDT1JFX0RJ
Un0vYmluZGluZ3Mvc2NyaXB0cy9nZW5lcmF0ZS1iaW5kaW5ncy5wbCAke1NDUklQVFNfQklORElO
R1N9ICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckNQUC5wbSAk
e19maWxlfQorICAgICAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAtSSR7V0VCQ09SRV9E
SVJ9L2JpbmRpbmdzL3NjcmlwdHMgJHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9nZW5l
cmF0ZS1iaW5kaW5ncy5wbCAtLWRlZmluZXMgIiR7RkVBVFVSRV9ERUZJTkVTX1dFQkNPUkV9IiAt
LWdlbmVyYXRvciBDUFAgJHtJRExfSU5DTFVERVN9IC0tb3V0cHV0RGlyICIke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0iIC0tcHJlcHJvY2Vzc29yICIke0NPREVfR0VORVJBVE9SX1BSRVBS
T0NFU1NPUn0iICR7V0VCQ09SRV9ESVJ9LyR7X2ZpbGV9CisgICAgICAgIFZFUkJBVElNKQorICAg
IExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJ
Un0vV2ViRE9NJHtfbmFtZX0uY3BwKQorRU5ERk9SRUFDSCAoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luUGFja2FnZS5jcHAKaW5kZXggZmZjZTc2ZC4uZTA2MDJiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblBhY2thZ2UuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaW5jbHVk
ZSA8d3RmL093bkFycmF5UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCisj
dW5kZWYgWFBfVU5JWAorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBsdWdpblBhY2thZ2U6On5Q
bHVnaW5QYWNrYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ01ha2VMaXN0c1d4
LnR4dCBiL1NvdXJjZS9XZWJLaXQvd3gvQ01ha2VMaXN0c1d4LnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5iNTJkMzY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC93eC9DTWFrZUxpc3RzV3gudHh0CkBAIC0wLDAgKzEsMjggQEAKK0xJU1QoQVBQRU5EIFdl
YktpdF9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL2Nw
cCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9jdXJsIgorICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS93eCIKKyAgICAiLi4vIgorICAgICIke0RFUklWRURfU09VUkNF
U19ESVJ9IgorCisgICAgd3gKKyAgICB3eC9XZWJLaXRTdXBwb3J0CispCisKK0xJU1QoQVBQRU5E
IFdlYktpdF9TT1VSQ0VTCisgICAgd3gvV2ViQnJvd3NlclNoZWxsLmNwcAorICAgIHd4L1dlYkRP
TVNlbGVjdGlvbi5jcHAKKyAgICB3eC9XZWJFZGl0LmNwcAorICAgIHd4L1dlYkZyYW1lLmNwcAor
ICAgIHd4L1dlYlNldHRpbmdzLmNwcAorICAgIHd4L1dlYlZpZXcuY3BwCisKKyAgICB3eC9XZWJL
aXRTdXBwb3J0L0Nocm9tZUNsaWVudFd4LmNwcAorICAgIHd4L1dlYktpdFN1cHBvcnQvQ29udGV4
dE1lbnVDbGllbnRXeC5jcHAKKyAgICB3eC9XZWJLaXRTdXBwb3J0L0RyYWdDbGllbnRXeC5jcHAK
KyAgICB3eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAorICAgIHd4L1dlYktpdFN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAKKyAgICB3eC9XZWJLaXRTdXBwb3J0L0luc3Bl
Y3RvckNsaWVudFd4LmNwcAorKQorCitTRVQoV2ViS2l0X0xJQlJBUllfVFlQRSBTSEFSRUQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1d4LmNtYWtlIGIvU291cmNlL2NtYWtlL09w
dGlvbnNXeC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41Mzg5MzVh
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNXeC5jbWFrZQpAQCAtMCww
ICsxLDY3IEBACitBRERfREVGSU5JVElPTlMoLURCVUlMRElOR19XWF9fPTEpCitBRERfREVGSU5J
VElPTlMoLURXVEZfVVNFX1dYR0M9MSkKKworU0VUKFdURl9VU0VfQ1VSTCAxKQorQUREX0RFRklO
SVRJT05TKC1EV1RGX1VTRV9DVVJMPTEpCisKK1NFVChXVEZfVVNFX0lDVV9VTklDT0RFIDEpCitB
RERfREVGSU5JVElPTlMoLURXVEZfVVNFX0lDVV9VTklDT0RFPTEpCisKK1NFVChXVEZfVVNFX1BU
SFJFQURTIDEpCitBRERfREVGSU5JVElPTlMoLURXVEZfVVNFX1BUSFJFQURTPTEpCisKK0ZJTkRf
UEFDS0FHRShDVVJMIFJFUVVJUkVEKQorRklORF9QQUNLQUdFKENhaXJvIFJFUVVJUkVEKQorRklO
RF9QQUNLQUdFKEdUSzIgUkVRVUlSRUQpCitGSU5EX1BBQ0tBR0UoR2xpYiBSRVFVSVJFRCkKK0ZJ
TkRfUEFDS0FHRShJQ1UgUkVRVUlSRUQpCitGSU5EX1BBQ0tBR0UoSlBFRyBSRVFVSVJFRCkKK0ZJ
TkRfUEFDS0FHRShMaWJYbWwyIFJFUVVJUkVEKQorRklORF9QQUNLQUdFKExpYlhzbHQgUkVRVUlS
RUQpCitGSU5EX1BBQ0tBR0UoUGFuZ28gUkVRVUlSRUQpCitGSU5EX1BBQ0tBR0UoUE5HIFJFUVVJ
UkVEKQorRklORF9QQUNLQUdFKFNxbGl0ZSBSRVFVSVJFRCkKK0ZJTkRfUEFDS0FHRShUaHJlYWRz
IFJFUVVJUkVEKQorRklORF9QQUNLQUdFKHd4V2lkZ2V0cyBSRVFVSVJFRCkKKworSU5DTFVERSgk
e3d4V2lkZ2V0c19VU0VfRklMRX0pCisKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9CTE9CICJFbmFi
bGUgYmxvYiBzbGljZSIgREVGQVVMVCBPRkYpCitXRUJLSVRfRkVBVFVSRShFTkFCTEVfQ0hBTk5F
TF9NRVNTQUdJTkcgIkVuYWJsZSBjaGFubmVsIG1lc3NhZ2luZyIgREVGQVVMVCBPTikKK1dFQktJ
VF9GRUFUVVJFKEVOQUJMRV9DTElFTlRfQkFTRURfR0VPTE9DQVRJT04gIkNsaWVudCBiYXNlZCBH
ZW9sb2NhdGlvbiIgREVGQVVMVCBPTikKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRBQkFTRSAi
RW5hYmxlIGRhdGFiYXNlIiBERUZBVUxUIE9GRikKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9EQVRB
R1JJRCAiRW5hYmxlIGRhdGFncmlkIiBERUZBVUxUIE9GRikKK1dFQktJVF9GRUFUVVJFKEVOQUJM
RV9EQVRBTElTVCAiRW5hYmxlIGRhdGFsaXN0IiBERUZBVUxUIE9OKQorV0VCS0lUX0ZFQVRVUkUo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMgIkVuYWJsZSBkYXRhIHRyYW5zZmVyIGl0ZW1zIiBE
RUZBVUxUIE9GRikKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gIkVu
YWJsZSBkZXZpY2Ugb3JpZW50YXRpb24iIERFRkFVTFQgT0ZGKQorV0VCS0lUX0ZFQVRVUkUoRU5B
QkxFX0ZBU1RfTUFMTE9DICJFbmFibGUgVENtYWxsb2MgaW5zdGVhZCBvZiBzeXN0ZW0ncyBhbGxv
Y2F0b3IiIERFRkFVTFQgT04pCitXRUJLSVRfRkVBVFVSRShFTkFCTEVfRkFTVF9NT0JJTEVfU0NS
T0xMSU5HICJFbmFibGUgZmFzdCBtb2JpbGUgc2Nyb2xsaW5nIiBERUZBVUxUIE9OKQorV0VCS0lU
X0ZFQVRVUkUoRU5BQkxFX0ZJTEVfU1lTVEVNICJFbmFibGUgZmlsZSBzeXN0ZW0iIERFRkFVTFQg
T0ZGKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0ZJTFRFUlMgIkVuYWJsZSBTVkcgZmlsdGVycyIg
REVGQVVMVCBPTiBTVkcpCitXRUJLSVRfRkVBVFVSRShFTkFCTEVfRlRQRElSICJFbmFibGUgRlRQ
IGRpcmVjdG9yeSBzdXBwb3J0IiBERUZBVUxUIE9OKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0ZV
TExTQ1JFRU5fQVBJICJFbmFibGUgRnVsbHNjcmVlbiBBUEkgc3VwcG9ydCIgREVGQVVMVCBPRkYp
CitXRUJLSVRfRkVBVFVSRShFTkFCTEVfR0VPTE9DQVRJT04gIkVuYWJsZSBnZW9sb2NhdGlvbiIg
REVGQVVMVCBPTikKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9HTElCX1NVUFBPUlQgIkVuYWJsZSBH
bGliIHN1cHBvcnQiIERFRkFVTFQgT0ZGKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0lDT05EQVRB
QkFTRSAiRW5hYmxlIGljb24gZGF0YWJhc2UiIERFRkFVTFQgT04pCitXRUJLSVRfRkVBVFVSRShF
TkFCTEVfSU5TUEVDVE9SICJFbmFibGUgaW5zcGVjdG9yIiBERUZBVUxUIE9OKQorV0VCS0lUX0ZF
QVRVUkUoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIgIkVuYWJsZSBKYXZhU2NyaXB0IGRlYnVn
Z2VyIiBERUZBVUxUIE9OKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX0pJVCAiRW5hYmxlIEpJVCBj
b2RlIiBERUZBVUxUIE9OKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX01BVEhNTCAiRW5hYmxlIE1h
dGhNTCIgREVGQVVMVCBPTikKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9NRVRFUl9UQUcgIkVuYWJs
ZSBNZXRlciB0YWciIERFRkFVTFQgT04pCitXRUJLSVRfRkVBVFVSRShFTkFCTEVfTUlDUk9EQVRB
ICJFbmFibGUgSFRNTDUgbWljcm9kYXRhIHN1cHBvcnQiIERFRkFVTFQgT0ZGKQorV0VCS0lUX0ZF
QVRVUkUoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgIkVuYWJsZSBOZXRzY2FwZSBwbHVnaW4g
QVBJIiBERUZBVUxUIE9OKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX05PVElGSUNBVElPTlMgIkVu
YWJsZSBub3RpZmljYXRpb25zIiBERUZBVUxUIE9GRikKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9P
UklFTlRBVElPTl9FVkVOVFMgIkVuYWJsZSBvcmllbnRhdGlvbiBldmVudHMiIERFRkFVTFQgT0ZG
KQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgIkVuYWJsZSBQYWdl
IFZpc2liaWxpdHkgQVBJIiBERUZBVUxUIE9OKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX1BST0dS
RVNTX1RBRyAiRW5hYmxlIHByb2dyZXNzIHRhZyIgREVGQVVMVCBPTikKK1dFQktJVF9GRUFUVVJF
KEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSAiRW5hYmxlIHJlcXVlc3RBbmltYXRpb25G
cmFtZSBBUEkiIERFRkFVTFQgT0ZGKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX1NIQVJFRF9XT1JL
RVJTICJFbmFibGUgc2hhcmVkIHdvcmtlcnMiIERFRkFVTFQgT0ZGKQorV0VCS0lUX0ZFQVRVUkUo
RU5BQkxFX1NRTF9EQVRBQkFTRSAiRW5hYmxlIFNRTCBkYXRhYmFzZSIgREVGQVVMVCBPTikKK1dF
QktJVF9GRUFUVVJFKEVOQUJMRV9TVkcgIkVuYWJsZSBTVkciIERFRkFVTFQgT04pCitXRUJLSVRf
RkVBVFVSRShFTkFCTEVfU1ZHX0ZPTlRTICJFbmFibGUgU1ZHIGZvbnRzIiBERUZBVUxUIE9OIFNW
RykKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9UT1VDSF9FVkVOVFMgIkVuYWJsZSBUb3VjaCBFdmVu
dHMiIERFRkFVTFQgT0ZGKQorV0VCS0lUX0ZFQVRVUkUoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElO
RyAiRW5hYmxlIFRvdWNoIEljb24gTG9hZGluZyIgREVGQVVMVCBPRkYpCitXRUJLSVRfRkVBVFVS
RShFTkFCTEVfVklERU8gIkVuYWJsZSB2aWRlbyIgREVGQVVMVCBPRkYgSFRNTCkKK1dFQktJVF9G
RUFUVVJFKEVOQUJMRV9XRUJfU09DS0VUUyAiRW5hYmxlIHdlYiBzb2NrZXRzIiBERUZBVUxUIE9G
RikKK1dFQktJVF9GRUFUVVJFKEVOQUJMRV9XT1JLRVJTICJFbmFibGUgd29ya2VycyIgREVGQVVM
VCBPRkYpCitXRUJLSVRfRkVBVFVSRShFTkFCTEVfWFNMVCAiRW5hYmxlIFhTTFQiIERFRkFVTFQg
T04pCmRpZmYgLS1naXQgYS9Ub29scy9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMu
dHh0CmluZGV4IGRjY2YwMjMuLmE5N2EzYWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CkBAIC0zLDQgKzMsNiBAQCBJRiAoIiR7UE9S
VH0iIFNUUkVRVUFMICJFZmwiKQogICAgIEFERF9TVUJESVJFQ1RPUlkoRVdlYkxhdW5jaGVyKQog
RUxTRUlGICgiJHtQT1JUfSIgU1RSRVFVQUwgIldpbkNFIikKICAgICBBRERfU1VCRElSRUNUT1JZ
KFdpbkNFTGF1bmNoZXIpCitFTFNFSUYgKCIke1BPUlR9IiBTVFJFUVVBTCAiV3giKQorICAgIEFE
RF9TVUJESVJFQ1RPUlkod3gvYnJvd3NlcikKIEVORElGKCkK
</data>
<flag name="review"
          id="115742"
          type_id="1"
          status="-"
          setter="kevino"
    />
    <flag name="commit-queue"
          id="115743"
          type_id="3"
          status="-"
          setter="paroga"
    />
          </attachment>
      

    </bug>

</bugzilla>