<?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>140748</bug_id>
          
          <creation_ts>2015-01-21 16:22:28 -0800</creation_ts>
          <short_desc>[iOS] Fix iphoneos SDK builds for ios-ews queue</short_desc>
          <delta_ts>2015-01-22 11:28:24 -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>Tools / Tests</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>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1063226</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-01-21 16:22:28 -0800</bug_when>
    <thetext>Fix build failures for the iphoneos SDK due to missing private headers to make the ios-ews queue work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063228</commentid>
    <comment_count>1</comment_count>
      <attachid>245098</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-01-21 16:41:14 -0800</bug_when>
    <thetext>Created attachment 245098
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063230</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-21 16:43:51 -0800</bug_when>
    <thetext>Attachment 245098 did not pass style-queue:


ERROR: Source/WebCore/platform/spi/cocoa/IOTypesSPI.h:36:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/platform/spi/cocoa/IOTypesSPI.h:40:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/platform/spi/cocoa/IOTypesSPI.h:41:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:42:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:77:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:78:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:79:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
ERROR: Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:80:  enum members should use InterCaps with an initial capital letter.  [readability/enum_casing] [4]
Total errors found: 8 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063242</commentid>
    <comment_count>3</comment_count>
      <attachid>245098</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-01-21 17:35:07 -0800</bug_when>
    <thetext>Comment on attachment 245098
Patch v1

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

&gt; Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:35
&gt; +#include &quot;IOReturnSPI.h&quot;

Is there value in having the separation between IOSurface SPI (IOSurfaceSPI.h) and IOKit SPI (IOReturnSPI.h) as opposed to grouping this functionality together with the functionality in IOTypesSPI.h into one IOKitSPI.h header? Or would it be too disingenuous to have such functionality in IOKitSPI.h?

&gt; Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:36
&gt; +#include &quot;IOTypesSPI.h&quot;

Is this header necessary? If so, see my remark above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063256</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-01-21 18:57:22 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 245098 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=245098&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:35
&gt; &gt; +#include &quot;IOReturnSPI.h&quot;
&gt; 
&gt; Is there value in having the separation between IOSurface SPI
&gt; (IOSurfaceSPI.h) and IOKit SPI (IOReturnSPI.h) as opposed to grouping this
&gt; functionality together with the functionality in IOTypesSPI.h into one
&gt; IOKitSPI.h header? Or would it be too disingenuous to have such
&gt; functionality in IOKitSPI.h?

Since &lt;IOSurface/IOSurface.h&gt; is API on macosx, and since IOSurface.framework is a separate framework from IOKit.framework, I would prefer to leave it separate from IOKit itself.

The rule I was using was if the header existed as API in the macosx SDK, then keep it as a separate SPI header when making it work for the iphoneos SDK just in case we need to add more things later.

&gt; &gt; Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:36
&gt; &gt; +#include &quot;IOTypesSPI.h&quot;
&gt; 
&gt; Is this header necessary? If so, see my remark above.

The kIOMapWriteCombineCache constant is used in these source files:

Source/WebCore/platform//graphics/cg/ImageBufferCG.cpp Source/WebCore/platform//graphics/cocoa/IOSurface.mm

Since these source files were previously only including &lt;IOSurface/IOSurface.h&gt; before, they were (likely) getting the IOTypes.h header through that header (although I didn&apos;t check explicitly).  It made sense to me to include it through IOSurfaceSPI.h as well rather than include it separately in each source file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063276</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-01-21 21:02:01 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Comment on attachment 245098 [details]
&gt; &gt; Patch v1
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=245098&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:35
&gt; &gt; &gt; +#include &quot;IOReturnSPI.h&quot;
&gt; &gt; 
&gt; &gt; Is there value in having the separation between IOSurface SPI
&gt; &gt; (IOSurfaceSPI.h) and IOKit SPI (IOReturnSPI.h) as opposed to grouping this
&gt; &gt; functionality together with the functionality in IOTypesSPI.h into one
&gt; &gt; IOKitSPI.h header? Or would it be too disingenuous to have such
&gt; &gt; functionality in IOKitSPI.h?
&gt; 
&gt; Since &lt;IOSurface/IOSurface.h&gt; is API on macosx, and since
&gt; IOSurface.framework is a separate framework from IOKit.framework, I would
&gt; prefer to leave it separate from IOKit itself.
&gt; 
&gt; The rule I was using was if the header existed as API in the macosx SDK,
&gt; then keep it as a separate SPI header when making it work for the iphoneos
&gt; SDK just in case we need to add more things later.
&gt; 

OK

&gt; &gt; &gt; Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:36
&gt; &gt; &gt; +#include &quot;IOTypesSPI.h&quot;
&gt; &gt; 
&gt; &gt; Is this header necessary? If so, see my remark above.
&gt; 
&gt; The kIOMapWriteCombineCache constant is used in these source files:
&gt; 
&gt; Source/WebCore/platform//graphics/cg/ImageBufferCG.cpp
&gt; Source/WebCore/platform//graphics/cocoa/IOSurface.mm
&gt; 
&gt; Since these source files were previously only including
&gt; &lt;IOSurface/IOSurface.h&gt; before, they were (likely) getting the IOTypes.h
&gt; header through that header (although I didn&apos;t check explicitly).  It made
&gt; sense to me to include it through IOSurfaceSPI.h as well rather than include
&gt; it separately in each source file.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063288</commentid>
    <comment_count>6</comment_count>
      <attachid>245098</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-01-21 21:27:41 -0800</bug_when>
    <thetext>Comment on attachment 245098
Patch v1

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

&gt; Source/WebCore/platform/spi/cocoa/IOReturnSPI.h:35
&gt; +typedef kern_return_t IOReturn;

We should include header mach/kern_return.h for the definition of kern_return_t.

Notice that IOPMLibSPI.h also has a typedef for IOReturn. We may want to consider consolidating this typedef into one file, say IOReturnSPI.h.

&gt; Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:82
&gt; +#if USE(APPLE_INTERNAL_SDK)
&gt; +#import &lt;IOSurface/IOSurfacePrivate.h&gt;
&gt; +#else
&gt; +enum {
&gt; +    kIOSurfacePurgeableNonVolatile = 0,
&gt; +    kIOSurfacePurgeableVolatile = 1,
&gt; +    kIOSurfacePurgeableEmpty = 2,
&gt; +    kIOSurfacePurgeableKeepCurrent = 3,
&gt; +};
&gt; +#endif

Nit: The style used for this #if/#else/#endif block differs from the style you used for similar blocks both in this file (above) and in other files with regards to the omission of empty lines after the #if (line 73), before and after the #else (line 75) and before the #endif (line 82). I suggest that we pick a style for writing such blocks and stick with it for consistency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063289</commentid>
    <comment_count>7</comment_count>
      <attachid>245098</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2015-01-21 21:34:54 -0800</bug_when>
    <thetext>Comment on attachment 245098
Patch v1

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

&gt; Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h:59
&gt; +mach_port_t IOSurfaceCreateMachPort(IOSurfaceRef buffer);

Nit: We should include the header for the definition of mach_port_t, mach/mach_port.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1063404</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-01-22 11:28:24 -0800</bug_when>
    <thetext>Committed r178927: &lt;http://trac.webkit.org/changeset/178927&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245098</attachid>
            <date>2015-01-21 16:41:14 -0800</date>
            <delta_ts>2015-01-21 21:27:41 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-140748-20150121164122.patch</filename>
            <type>text/plain</type>
            <size>21808</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4ODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGU3ZWVjODkzOTQ2NTY4
OTEzYWY5N2JmZjc1NDM5YjVkM2I4ZmI0NC4uMTdjYWViNzhiNzk4NjAyYjc5NjQxZDgwMTcwNjYy
MzQ2NTVkNjM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTAxLTIxICBEYXZp
ZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gRml4IGlwaG9u
ZW9zIFNESyBidWlsZHMgZm9yIGlvcy1ld3MgcXVldWUKKyAgICAgICAgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvMTQwNzQ4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IFNQSSBo
ZWFkZXJzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3Bw
OiBTd2l0Y2ggdG8gdXNpbmcKKyAgICAgICAgIklPU3VyZmFjZVNQSS5oIiBmcm9tIDxJT1N1cmZh
Y2UvSU9TdXJmYWNlLmg+LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVm
ZmVyRGF0YUNHLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
SU9TdXJmYWNlLm1tOiBEaXR0by4gIE1vdmUgZGVmaW5pdGlvbnMKKyAgICAgICAgaW4gPElPU3Vy
ZmFjZS9JT1N1cmZhY2VQcml2YXRlLmg+IGludG8gIklPU3VyZmFjZVNQSS5oIi4KKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6IFN3aXRjaCB0bworICAgICAgICBX
VEZfRVhURVJOX0Nfe0JFR0lOLEVORH0uICBBZGQKKyAgICAgICAgQ0dDb250ZXh0R2V0Rm9udEFu
dGlhbGlhc2luZ1N0eWxlKCkgYW5kCisgICAgICAgIENHQ29udGV4dFNldEZvbnRBbnRpYWxpYXNp
bmdTdHlsZSgpLgorICAgICAgICAqIHBsYXRmb3JtL3NwaS9jb2NvYS9JT1JldHVyblNQSS5oOiBB
ZGQuCisgICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0lPU3VyZmFjZVNQSS5oOiBBZGQuCisg
ICAgICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0lPVHlwZXNTUEkuaDogQWRkLgorCiAyMDE1LTAx
LTIxICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViR0wy
IChzcGVjIHNlY3Rpb24gMy4xKTogQWRkIG5ldyB0eXBlcyB0byBXZWJHTDIgQVBJLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDI4MjE5YWY0NGE4YmVkNGEyNWMyNDJkMTM4MjQ3OWNkNzQ0MGI1NDUuLjhhODM5NGJm
NDM3ZmMxYjczZTA4NjRhMTA3ODczMTE1NDQ4MjAyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxNS0wMS0yMSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFtpT1NdIEZpeCBpcGhvbmVvcyBTREsgYnVpbGRzIGZvciBpb3MtZXdzIHF1ZXVlCisg
ICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzE0MDc0OD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvQktTUHJvY2Vz
c0Fzc2VydGlvblNQSS5oOiBBZGQgLWludmFsaWRhdGUKKyAgICAgICAgZGVmaW5pdGlvbi4gIFNv
cnQgQHByb3BlcnR5IHRvIHRoZSB0b3Agb2YgQktTUHJvY2Vzc0Fzc2VydGlvbi4KKwogMjAxNS0w
MS0yMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4g
UXVpY2tMb29rIHByZXZpZXcgZGVsZWdhdGUgbWV0aG9kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTEzNDYwOWM0Y2U3NzhkNzk3
ODNkZmY0NWVmYTRmYWFkNGVjMjdmMi4uNTJiMTg4YjRiOTQ5ZWE4ZmM2MTk1MjRhYTg3M2EzYWRl
NDI5MmZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTYyNiw2ICsxNjI2LDkgQEAKIAkJNDRDOTkxQTAwRjNEMjEwRTAwNTg2
NjcwIC8qIFRoZW1lSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDRDOTkxOUUwRjNEMjEwRTAwNTg2NjcwIC8qIFRoZW1lSU9TLm1tICovOyB9Owog
CQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0REFCNUFG
MTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwICovOyB9Owog
CQk0NERBQjVCMjE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NERBQjVCMDE1
QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmggKi87IH07CisJCTQ0
REVGNjQzMUE2RkY5MjcwMEQ0NUVFQyAvKiBJT1JldHVyblNQSS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDRERUY2NDIxQTZGRjkyNzAwRDQ1RUVDIC8q
IElPUmV0dXJuU1BJLmggKi87IH07CisJCTQ0REZGNjQzMUE2RkY5MjcwMEQ0NUVFQyAvKiBJT1N1
cmZhY2VTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ0REZGNjQyMUE2RkY5MjcwMEQ0NUVFQyAvKiBJT1N1cmZhY2VTUEkuaCAqLzsgfTsKKwkJNDRF
RkY2NDMxQTZGRjkyNzAwRDQ1RUVDIC8qIElPVHlwZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0RUZGNjQyMUE2RkY5MjcwMEQ0NUVFQyAvKiBJ
T1R5cGVzU1BJLmggKi87IH07CiAJCTQ1MDk5QzQxMTM3MEE3ODAwMDU4RDUxMyAvKiBJY29uVVJM
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ1MDk5
QzQwMTM3MEE3ODAwMDU4RDUxMyAvKiBJY29uVVJMLmNwcCAqLzsgfTsKIAkJNDUwQ0VCRjAxNTA3
M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDUwQ0VCRUUxNTA3M0JCRTAwMkJCMTQ5IC8qIExh
YmVsYWJsZUVsZW1lbnQuY3BwICovOyB9OwogCQk0NTBDRUJGMTE1MDczQkJFMDAyQkIxNDkgLyog
TGFiZWxhYmxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDUwQ0VCRUYxNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODY5MCw2
ICs4NjkzLDkgQEAKIAkJNDREOERBOUExMzk1NDVDRDAwMzM3Qjc1IC8qIFNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTVkdBbmltYXRlTW90aW9uRWxl
bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0REFCNUFGMTVBNjIzNTgw
MDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDREQUI1QjAxNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVu
c2lvbnMzRE9wZW5HTENvbW1vbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eHRlbnNpb25zM0RPcGVuR0xDb21tb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDRERUY2NDIxQTZGRjkyNzAwRDQ1RUVDIC8qIElPUmV0dXJuU1BJLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElPUmV0dXJuU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ0REZGNjQyMUE2RkY5MjcwMEQ0NUVFQyAvKiBJT1N1cmZhY2VTUEkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSU9TdXJmYWNlU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ0RUZGNjQyMUE2RkY5MjcwMEQ0NUVFQyAvKiBJT1R5cGVzU1BJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElPVHlwZXNTUEkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDUwOTlDNDAxMzcwQTc4MDAwNThENTEzIC8qIEljb25VUkwu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvblVSTC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ1MENFQkVFMTUwNzNCQkUwMDJCQjE0OSAvKiBM
YWJlbGFibGVFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExhYmVsYWJsZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NTBD
RUJFRjE1MDczQkJFMDAyQkIxNDkgLyogTGFiZWxhYmxlRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYWJlbGFibGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xNjIzNCw2ICsxNjI0MCw5IEBACiAJCQkJQ0UxMjUyNEExQTE2Qzc5QjAw
ODY0NDgwIC8qIERpc3BhdGNoU1BJLmggKi8sCiAJCQkJQ0UxMjUyNDQxQTE2QzIyNTAwODY0NDgw
IC8qIER5bmFtaWNMaW5rZXJTUEkuaCAqLywKIAkJCQlDRTEyNTI0QzFBMUE3N0RFMDA4NjQ0ODAg
LyogSU9QTUxpYlNQSS5oICovLAorCQkJCTQ0REVGNjQyMUE2RkY5MjcwMEQ0NUVFQyAvKiBJT1Jl
dHVyblNQSS5oICovLAorCQkJCTQ0REZGNjQyMUE2RkY5MjcwMEQ0NUVFQyAvKiBJT1N1cmZhY2VT
UEkuaCAqLywKKwkJCQk0NEVGRjY0MjFBNkZGOTI3MDBENDVFRUMgLyogSU9UeXBlc1NQSS5oICov
LAogCQkJCUNFMTI1MjRFMUExQTc4RDIwMDg2NDQ4MCAvKiBNYWNoVk1TUEkuaCAqLywKIAkJCQlD
RTEyNTI1MDFBMUJFQkQ4MDA4NjQ0ODAgLyogTlNDYWxlbmRhckRhdGVTUEkuaCAqLywKIAkJCQky
RERCOTdGMzE5RjlBRUNBMDAyMDI1RDggLyogTlNFeHRlbnNpb25TUEkuaCAqLywKQEAgLTI0Njk5
LDggKzI0NzA4LDExIEBACiAJCQkJQjI3NTM1NzUwQjA1MzgxNDAwMkNFNjRGIC8qIEludFNpemUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUIyNzUzNTc2MEIwNTM4MTQwMDJDRTY0RiAvKiBJbnRTaXpl
SGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyNEQxQTFBNzdERTAwODY0NDgwIC8qIElP
UE1MaWJTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0REVGNjQzMUE2RkY5MjcwMEQ0NUVFQyAv
KiBJT1JldHVyblNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQwQjRBQUIxOERBMUNDRDAwNDM0
REUxIC8qIElPU3VyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUMyMUU1N0QxODNFRDFGRjAw
MUMyODlEIC8qIElPU3VyZmFjZVBvb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0REZGNjQzMUE2
RkY5MjcwMEQ0NUVFQyAvKiBJT1N1cmZhY2VTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0RUZG
NjQzMUE2RkY5MjcwMEQ0NUVFQyAvKiBJT1R5cGVzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
N0FDNDcwMjE5NTIxMDIxMDBFRTk3MjMgLyogSVNPVlRUQ3VlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0MThGODgwNTBGRjk1N0FGMDA4MEYwNDUgLyogSlNBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDcwNTg1MUIxN0ZCNDRCNDAwNUYyQkNCIC8qIEpTQWxsQXVkaW9DYXBhYmls
aXRpZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNwcAppbmRleCA5ZDZkNTI4MGM4Zjc2OGM2NGQw
Njk5MjVkYWViMTQ4NGE0YTg5YmFmLi5mNTgyNWY1MDQyYmUxMzE2ZWVjZjkwNjgxNDA5MWNjOTlj
MjMzZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9J
bWFnZUJ1ZmZlckNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9JbWFnZUJ1ZmZlckNHLmNwcApAQCAtNDksNyArNDksNyBAQAogCiAjaWYgVVNFKElPU1VSRkFD
RV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKICNpbmNsdWRlICJJT1N1cmZhY2UuaCIKLSNpbmNsdWRl
IDxJT1N1cmZhY2UvSU9TdXJmYWNlLmg+CisjaW5jbHVkZSAiSU9TdXJmYWNlU1BJLmgiCiAjZW5k
aWYKIAogLy8gQ0EgdXNlcyBBUkdCMzIgZm9yIHRleHR1cmVzIGFuZCBBUkdCMzIgLT4gQVJHQjMy
IHJlc2FtcGxpbmcgaXMgb3B0aW1pemVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3BwCmluZGV4IGU3ZWM4NjJl
ZWE5MTE4ODk3ZmZjM2VjMDc3ZGJhZmYzOWY2ZDZlYzUuLjgyMmJlN2ZkNjMxYmY0MmFlYzJkMmI4
NzYxMjY4OTM3ZGE3YWU2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAKQEAgLTM1LDcgKzM1LDcgQEAK
ICNlbmRpZgogCiAjaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKLSNpbmNs
dWRlIDxJT1N1cmZhY2UvSU9TdXJmYWNlLmg+CisjaW5jbHVkZSAiSU9TdXJmYWNlU1BJLmgiCiAj
aW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UubW0KaW5kZXggYTg0OWQy
NmZmYWM3YWNkMmQwMmQ3OGRkNjBlODQ2N2VmNTY5ZTg2OC4uN2VmNzg3Mzc3YmNkNzkwODk3NjAx
ZTA2NjgxZDJlNzBhMmU5NWI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQpAQCAtMzAsMjUgKzMwLDEzIEBACiAKICNpbXBv
cnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCiAjaW1wb3J0ICJJT1N1cmZhY2VQb29sLmgiCisjaW1w
b3J0ICJJT1N1cmZhY2VTUEkuaCIKICNpbXBvcnQgIk1hY2hTZW5kUmlnaHQuaCIKLSNpbXBvcnQg
PElPU3VyZmFjZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKLSNp
ZiBfX2hhc19pbmNsdWRlKDxJT1N1cmZhY2UvSU9TdXJmYWNlUHJpdmF0ZS5oPikKLSNpbXBvcnQg
PElPU3VyZmFjZS9JT1N1cmZhY2VQcml2YXRlLmg+Ci0jZWxzZQotZW51bSB7Ci0gICAga0lPU3Vy
ZmFjZVB1cmdlYWJsZU5vblZvbGF0aWxlID0gMCwKLSAgICBrSU9TdXJmYWNlUHVyZ2VhYmxlVm9s
YXRpbGUgPSAxLAotICAgIGtJT1N1cmZhY2VQdXJnZWFibGVFbXB0eSA9IDIsCi0gICAga0lPU3Vy
ZmFjZVB1cmdlYWJsZUtlZXBDdXJyZW50ID0gMywKLX07Ci0jZW5kaWYKLQogZXh0ZXJuICJDIiB7
CiBDR0NvbnRleHRSZWYgQ0dJT1N1cmZhY2VDb250ZXh0Q3JlYXRlKElPU3VyZmFjZVJlZiwgc2l6
ZV90LCBzaXplX3QsIHNpemVfdCwgc2l6ZV90LCBDR0NvbG9yU3BhY2VSZWYsIENHQml0bWFwSW5m
byk7CiBDR0ltYWdlUmVmIENHSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKENHQ29udGV4dFJl
Zik7Ci1JT1JldHVybiBJT1N1cmZhY2VTZXRQdXJnZWFibGUoSU9TdXJmYWNlUmVmLCB1aW50MzJf
dCwgdWludDMyX3QgKik7CiB9CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCmluZGV4IGQ3ZDI0
NmQ4MmY5NDgxMjkyMWM2NWRlMmFhNjA5Njg1MDJkZmFkNTUuLjFmY2I2MjBmODM0NzdmYzBiYmEz
MGRkYmZmM2VkMzM3YzhmNGU1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9jZy9Db3JlR3JhcGhpY3NTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cGkvY2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTExMiw0MyArMTEyLDUwIEBAIHR5cGVkZWYgc3Ry
dWN0IENHRm9udENhY2hlIENHRm9udENhY2hlOwogCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKIAotRVhURVJOX0MgQ0dDb2xvclJlZiBDR0NvbG9yVHJhbnNmb3JtQ29udmVydENv
bG9yKENHQ29sb3JUcmFuc2Zvcm1SZWYsIENHQ29sb3JSZWYsIENHQ29sb3JSZW5kZXJpbmdJbnRl
bnQpOwotRVhURVJOX0MgQ0dDb2xvclRyYW5zZm9ybVJlZiBDR0NvbG9yVHJhbnNmb3JtQ3JlYXRl
KENHQ29sb3JTcGFjZVJlZiwgQ0ZEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMpOwotCi1FWFRFUk5f
QyBDR0FmZmluZVRyYW5zZm9ybSBDR0NvbnRleHRHZXRCYXNlQ1RNKENHQ29udGV4dFJlZik7Ci1F
WFRFUk5fQyBDR0NvbXBvc2l0ZU9wZXJhdGlvbiBDR0NvbnRleHRHZXRDb21wb3NpdGVPcGVyYXRp
b24oQ0dDb250ZXh0UmVmKTsKLUVYVEVSTl9DIENHQ29sb3JSZWYgQ0dDb250ZXh0R2V0RmlsbENv
bG9yQXNDb2xvcihDR0NvbnRleHRSZWYpOwotRVhURVJOX0MgQ0dGbG9hdCBDR0NvbnRleHRHZXRM
aW5lV2lkdGgoQ0dDb250ZXh0UmVmKTsKLUVYVEVSTl9DIGJvb2wgQ0dDb250ZXh0R2V0U2hvdWxk
U21vb3RoRm9udHMoQ0dDb250ZXh0UmVmKTsKLUVYVEVSTl9DIHZvaWQgQ0dDb250ZXh0U2V0QmFz
ZUNUTShDR0NvbnRleHRSZWYsIENHQWZmaW5lVHJhbnNmb3JtKTsKLUVYVEVSTl9DIHZvaWQgQ0dD
b250ZXh0U2V0Q1RNKENHQ29udGV4dFJlZiwgQ0dBZmZpbmVUcmFuc2Zvcm0pOwotRVhURVJOX0Mg
dm9pZCBDR0NvbnRleHRTZXRDb21wb3NpdGVPcGVyYXRpb24oQ0dDb250ZXh0UmVmLCBDR0NvbXBv
c2l0ZU9wZXJhdGlvbik7Ci1FWFRFUk5fQyB2b2lkIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlh
c0ZvbnRzKENHQ29udGV4dFJlZiwgYm9vbCBzaG91bGRBbnRpYWxpYXNGb250cyk7Ci0KLUVYVEVS
Tl9DIENGU3RyaW5nUmVmIENHRm9udENvcHlGYW1pbHlOYW1lKENHRm9udFJlZik7Ci1FWFRFUk5f
QyBib29sIENHRm9udEdldERlc2NyaXB0b3IoQ0dGb250UmVmLCBDR0ZvbnREZXNjcmlwdG9yKik7
Ci1FWFRFUk5fQyBib29sIENHRm9udEdldEdseXBoQWR2YW5jZXNGb3JTdHlsZShDR0ZvbnRSZWYs
IGNvbnN0IENHQWZmaW5lVHJhbnNmb3JtKiAsIENHRm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBD
R0dseXBoW10sIHNpemVfdCBjb3VudCwgQ0dTaXplIGFkdmFuY2VzW10pOwotRVhURVJOX0Mgdm9p
ZCBDR0ZvbnRHZXRHbHlwaHNGb3JVbmljaGFycyhDR0ZvbnRSZWYsIGNvbnN0IFVuaUNoYXJbXSwg
Q0dHbHlwaFtdLCBzaXplX3QgY291bnQpOwotRVhURVJOX0MgY29uc3QgQ0dGb250SE1ldHJpY3Mq
IENHRm9udEdldEhNZXRyaWNzKENHRm9udFJlZik7Ci1FWFRFUk5fQyBjb25zdCBjaGFyKiBDR0Zv
bnRHZXRQb3N0U2NyaXB0TmFtZShDR0ZvbnRSZWYpOwotRVhURVJOX0MgYm9vbCBDR0ZvbnRJc0Zp
eGVkUGl0Y2goQ0dGb250UmVmKTsKLUVYVEVSTl9DIHZvaWQgQ0dGb250U2V0U2hvdWxkVXNlTXVs
dGljYWNoZShib29sKTsKLQotRVhURVJOX0Mgdm9pZCBDR0ltYWdlU2V0Q2FjaGluZ0ZsYWdzKENH
SW1hZ2VSZWYsIENHSW1hZ2VDYWNoaW5nRmxhZ3MpOwotRVhURVJOX0MgQ0dJbWFnZUNhY2hpbmdG
bGFncyBDR0ltYWdlR2V0Q2FjaGluZ0ZsYWdzKENHSW1hZ2VSZWYpOwotCi1FWFRFUk5fQyBDR0Rh
dGFQcm92aWRlclJlZiBDR1BERkRvY3VtZW50R2V0RGF0YVByb3ZpZGVyKENHUERGRG9jdW1lbnRS
ZWYpOworV1RGX0VYVEVSTl9DX0JFR0lOCisKK0NHQ29sb3JSZWYgQ0dDb2xvclRyYW5zZm9ybUNv
bnZlcnRDb2xvcihDR0NvbG9yVHJhbnNmb3JtUmVmLCBDR0NvbG9yUmVmLCBDR0NvbG9yUmVuZGVy
aW5nSW50ZW50KTsKK0NHQ29sb3JUcmFuc2Zvcm1SZWYgQ0dDb2xvclRyYW5zZm9ybUNyZWF0ZShD
R0NvbG9yU3BhY2VSZWYsIENGRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzKTsKKworQ0dBZmZpbmVU
cmFuc2Zvcm0gQ0dDb250ZXh0R2V0QmFzZUNUTShDR0NvbnRleHRSZWYpOworQ0dDb21wb3NpdGVP
cGVyYXRpb24gQ0dDb250ZXh0R2V0Q29tcG9zaXRlT3BlcmF0aW9uKENHQ29udGV4dFJlZik7CitD
R0NvbG9yUmVmIENHQ29udGV4dEdldEZpbGxDb2xvckFzQ29sb3IoQ0dDb250ZXh0UmVmKTsKK0NH
RmxvYXQgQ0dDb250ZXh0R2V0TGluZVdpZHRoKENHQ29udGV4dFJlZik7Citib29sIENHQ29udGV4
dEdldFNob3VsZFNtb290aEZvbnRzKENHQ29udGV4dFJlZik7Cit2b2lkIENHQ29udGV4dFNldEJh
c2VDVE0oQ0dDb250ZXh0UmVmLCBDR0FmZmluZVRyYW5zZm9ybSk7Cit2b2lkIENHQ29udGV4dFNl
dENUTShDR0NvbnRleHRSZWYsIENHQWZmaW5lVHJhbnNmb3JtKTsKK3ZvaWQgQ0dDb250ZXh0U2V0
Q29tcG9zaXRlT3BlcmF0aW9uKENHQ29udGV4dFJlZiwgQ0dDb21wb3NpdGVPcGVyYXRpb24pOwor
dm9pZCBDR0NvbnRleHRTZXRTaG91bGRBbnRpYWxpYXNGb250cyhDR0NvbnRleHRSZWYsIGJvb2wg
c2hvdWxkQW50aWFsaWFzRm9udHMpOworCitDRlN0cmluZ1JlZiBDR0ZvbnRDb3B5RmFtaWx5TmFt
ZShDR0ZvbnRSZWYpOworYm9vbCBDR0ZvbnRHZXREZXNjcmlwdG9yKENHRm9udFJlZiwgQ0dGb250
RGVzY3JpcHRvciopOworYm9vbCBDR0ZvbnRHZXRHbHlwaEFkdmFuY2VzRm9yU3R5bGUoQ0dGb250
UmVmLCBjb25zdCBDR0FmZmluZVRyYW5zZm9ybSogLCBDR0ZvbnRSZW5kZXJpbmdTdHlsZSwgY29u
c3QgQ0dHbHlwaFtdLCBzaXplX3QgY291bnQsIENHU2l6ZSBhZHZhbmNlc1tdKTsKK3ZvaWQgQ0dG
b250R2V0R2x5cGhzRm9yVW5pY2hhcnMoQ0dGb250UmVmLCBjb25zdCBVbmlDaGFyW10sIENHR2x5
cGhbXSwgc2l6ZV90IGNvdW50KTsKK2NvbnN0IENHRm9udEhNZXRyaWNzKiBDR0ZvbnRHZXRITWV0
cmljcyhDR0ZvbnRSZWYpOworY29uc3QgY2hhciogQ0dGb250R2V0UG9zdFNjcmlwdE5hbWUoQ0dG
b250UmVmKTsKK2Jvb2wgQ0dGb250SXNGaXhlZFBpdGNoKENHRm9udFJlZik7Cit2b2lkIENHRm9u
dFNldFNob3VsZFVzZU11bHRpY2FjaGUoYm9vbCk7CisKK3ZvaWQgQ0dJbWFnZVNldENhY2hpbmdG
bGFncyhDR0ltYWdlUmVmLCBDR0ltYWdlQ2FjaGluZ0ZsYWdzKTsKK0NHSW1hZ2VDYWNoaW5nRmxh
Z3MgQ0dJbWFnZUdldENhY2hpbmdGbGFncyhDR0ltYWdlUmVmKTsKKworQ0dEYXRhUHJvdmlkZXJS
ZWYgQ0dQREZEb2N1bWVudEdldERhdGFQcm92aWRlcihDR1BERkRvY3VtZW50UmVmKTsKKworQ0dG
b250QW50aWFsaWFzaW5nU3R5bGUgQ0dDb250ZXh0R2V0Rm9udEFudGlhbGlhc2luZ1N0eWxlKENH
Q29udGV4dFJlZik7Cit2b2lkIENHQ29udGV4dFNldEZvbnRBbnRpYWxpYXNpbmdTdHlsZShDR0Nv
bnRleHRSZWYsIENHRm9udEFudGlhbGlhc2luZ1N0eWxlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQotRVhURVJOX0MgQ0dTUmVnaW9uRW51bWVyYXRvck9iaiBDR1NSZWdpb25FbnVtZXJhdG9yKENH
UmVnaW9uUmVmKTsKLUVYVEVSTl9DIENHUmVjdCogQ0dTTmV4dFJlY3QoY29uc3QgQ0dTUmVnaW9u
RW51bWVyYXRvck9iaik7Ci1FWFRFUk5fQyBDR0Vycm9yIENHU1JlbGVhc2VSZWdpb25FbnVtZXJh
dG9yKGNvbnN0IENHU1JlZ2lvbkVudW1lcmF0b3JPYmopOworQ0dTUmVnaW9uRW51bWVyYXRvck9i
aiBDR1NSZWdpb25FbnVtZXJhdG9yKENHUmVnaW9uUmVmKTsKK0NHUmVjdCogQ0dTTmV4dFJlY3Qo
Y29uc3QgQ0dTUmVnaW9uRW51bWVyYXRvck9iaik7CitDR0Vycm9yIENHU1JlbGVhc2VSZWdpb25F
bnVtZXJhdG9yKGNvbnN0IENHU1JlZ2lvbkVudW1lcmF0b3JPYmopOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShXSU4pCi1FWFRFUk5fQyBDR0ZvbnRDYWNoZSogQ0dGb250Q2FjaGVHZXRMb2NhbENh
Y2hlKCk7Ci1FWFRFUk5fQyB2b2lkIENHRm9udENhY2hlU2V0U2hvdWxkQXV0b0V4cGlyZShDR0Zv
bnRDYWNoZSosIGJvb2wpOwotRVhURVJOX0Mgdm9pZCBDR0ZvbnRDYWNoZVNldE1heFNpemUoQ0dG
b250Q2FjaGUqLCBzaXplX3QpOworQ0dGb250Q2FjaGUqIENHRm9udENhY2hlR2V0TG9jYWxDYWNo
ZSgpOwordm9pZCBDR0ZvbnRDYWNoZVNldFNob3VsZEF1dG9FeHBpcmUoQ0dGb250Q2FjaGUqLCBi
b29sKTsKK3ZvaWQgQ0dGb250Q2FjaGVTZXRNYXhTaXplKENHRm9udENhY2hlKiwgc2l6ZV90KTsK
ICNlbmRpZgogCitXVEZfRVhURVJOX0NfRU5ECisKICNlbmRpZiAvLyBDb3JlR3JhcGhpY3NTUElf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0lPUmV0dXJu
U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvSU9SZXR1cm5TUEkuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44ZjlmY2M2ZjYxZTEwYTkyODRhYWFmMjQ2ZTVlZTAxOGFmMWZlMmJjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0lPUmV0dXJu
U1BJLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSU9SZXR1cm5TUElf
aAorI2RlZmluZSBJT1JldHVyblNQSV9oCisKKyNpZiBQTEFURk9STShNQUMpIHx8IFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisKKyNpbmNsdWRlIDxJT0tpdC9JT1JldHVybi5oPgorCisjZWxzZQor
Cit0eXBlZGVmIGtlcm5fcmV0dXJuX3QgSU9SZXR1cm47CisKKyNlbmRpZgorCisjZW5kaWYgLy8g
SU9SZXR1cm5TUElfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2Nv
Y29hL0lPU3VyZmFjZVNQSS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0lP
U3VyZmFjZVNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjZDNkOWNmOGY4MGI1ZDI5NzM1ODgxZTNjMDcwNTgy
ZmFiNGZhYmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkv
Y29jb2EvSU9TdXJmYWNlU1BJLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgSU9TdXJmYWNlU1BJX2gKKyNkZWZpbmUgSU9TdXJmYWNlU1BJX2gKKworI2lmIFBMQVRGT1JN
KE1BQykgfHwgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPElPU3VyZmFjZS9J
T1N1cmZhY2UuaD4KKworI2Vsc2UKKworI2luY2x1ZGUgIklPUmV0dXJuU1BJLmgiCisjaW5jbHVk
ZSAiSU9UeXBlc1NQSS5oIgorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGQmFzZS5oPgorCit0
eXBlZGVmIHN0cnVjdCBfX0lPU3VyZmFjZSAqSU9TdXJmYWNlUmVmOworCitlbnVtIHsKKyAgICBr
SU9TdXJmYWNlTG9ja1JlYWRPbmx5ICA9IDB4MDAwMDAwMDEsCit9OworCisjZW5kaWYKKworV1RG
X0VYVEVSTl9DX0JFR0lOCisKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrSU9TdXJmYWNlQWxs
b2NTaXplOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtJT1N1cmZhY2VCeXRlc1BlckVsZW1l
bnQ7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0lPU3VyZmFjZUJ5dGVzUGVyUm93OworZXh0
ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtJT1N1cmZhY2VDYWNoZU1vZGU7CitleHRlcm4gY29uc3Qg
Q0ZTdHJpbmdSZWYga0lPU3VyZmFjZUhlaWdodDsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBr
SU9TdXJmYWNlUGl4ZWxGb3JtYXQ7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0lPU3VyZmFj
ZVdpZHRoOworCitzaXplX3QgSU9TdXJmYWNlQWxpZ25Qcm9wZXJ0eShDRlN0cmluZ1JlZiBwcm9w
ZXJ0eSwgc2l6ZV90IHZhbHVlKTsKK0lPU3VyZmFjZVJlZiBJT1N1cmZhY2VDcmVhdGUoQ0ZEaWN0
aW9uYXJ5UmVmIHByb3BlcnRpZXMpOworbWFjaF9wb3J0X3QgSU9TdXJmYWNlQ3JlYXRlTWFjaFBv
cnQoSU9TdXJmYWNlUmVmIGJ1ZmZlcik7CitzaXplX3QgSU9TdXJmYWNlR2V0QWxsb2NTaXplKElP
U3VyZmFjZVJlZiBidWZmZXIpOwordm9pZCAqSU9TdXJmYWNlR2V0QmFzZUFkZHJlc3MoSU9TdXJm
YWNlUmVmIGJ1ZmZlcik7CitzaXplX3QgSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3coSU9TdXJmYWNl
UmVmIGJ1ZmZlcik7CitzaXplX3QgSU9TdXJmYWNlR2V0SGVpZ2h0KElPU3VyZmFjZVJlZiBidWZm
ZXIpOworc2l6ZV90IElPU3VyZmFjZUdldFByb3BlcnR5TWF4aW11bShDRlN0cmluZ1JlZiBwcm9w
ZXJ0eSk7CitzaXplX3QgSU9TdXJmYWNlR2V0V2lkdGgoSU9TdXJmYWNlUmVmIGJ1ZmZlcik7CitC
b29sZWFuIElPU3VyZmFjZUlzSW5Vc2UoSU9TdXJmYWNlUmVmIGJ1ZmZlcik7CitJT1JldHVybiBJ
T1N1cmZhY2VMb2NrKElPU3VyZmFjZVJlZiBidWZmZXIsIHVpbnQzMl90IG9wdGlvbnMsIHVpbnQz
Ml90ICpzZWVkKTsKK0lPU3VyZmFjZVJlZiBJT1N1cmZhY2VMb29rdXBGcm9tTWFjaFBvcnQobWFj
aF9wb3J0X3QpOworSU9SZXR1cm4gSU9TdXJmYWNlVW5sb2NrKElPU3VyZmFjZVJlZiBidWZmZXIs
IHVpbnQzMl90IG9wdGlvbnMsIHVpbnQzMl90ICpzZWVkKTsKKworV1RGX0VYVEVSTl9DX0VORAor
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPElPU3VyZmFjZS9JT1N1cmZh
Y2VQcml2YXRlLmg+CisjZWxzZQorZW51bSB7CisgICAga0lPU3VyZmFjZVB1cmdlYWJsZU5vblZv
bGF0aWxlID0gMCwKKyAgICBrSU9TdXJmYWNlUHVyZ2VhYmxlVm9sYXRpbGUgPSAxLAorICAgIGtJ
T1N1cmZhY2VQdXJnZWFibGVFbXB0eSA9IDIsCisgICAga0lPU3VyZmFjZVB1cmdlYWJsZUtlZXBD
dXJyZW50ID0gMywKK307CisjZW5kaWYKKworV1RGX0VYVEVSTl9DX0JFR0lOCisKK0lPUmV0dXJu
IElPU3VyZmFjZVNldFB1cmdlYWJsZShJT1N1cmZhY2VSZWYgYnVmZmVyLCB1aW50MzJfdCBuZXdT
dGF0ZSwgdWludDMyX3QgKm9sZFN0YXRlKTsKKworV1RGX0VYVEVSTl9DX0VORAorCisjZW5kaWYg
Ly8gSU9TdXJmYWNlU1BJX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jb2NvYS9JT1R5cGVzU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2Ev
SU9UeXBlc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzOTlkYzMzNThkNGZkNjc4N2JlZTYyMTUxOGU3YjJh
MDZiYzFiMzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkv
Y29jb2EvSU9UeXBlc1NQSS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IElPVHlwZXNTUElfaAorI2RlZmluZSBJT1R5cGVzU1BJX2gKKworI2lmIFBMQVRGT1JNKE1BQykg
fHwgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgPElPS2l0L0lPVHlwZXMuaD4K
KworI2Vsc2UKKworZW51bSB7CisgICAga0lPV3JpdGVDb21iaW5lQ2FjaGUgPSA0LAorfTsKKwor
ZW51bSB7CisgICAga0lPTWFwQ2FjaGVTaGlmdCA9IDgsCisgICAga0lPTWFwV3JpdGVDb21iaW5l
Q2FjaGUgPSBrSU9Xcml0ZUNvbWJpbmVDYWNoZSA8PCBrSU9NYXBDYWNoZVNoaWZ0LAorfTsKKwor
I2VuZGlmCisKKyNlbmRpZiAvLyBJT1R5cGVzU1BJX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL3NwaS9pb3MvQktTUHJvY2Vzc0Fzc2VydGlvblNQSS5oIGIvU291cmNlL1dl
YktpdDIvUGxhdGZvcm0vc3BpL2lvcy9CS1NQcm9jZXNzQXNzZXJ0aW9uU1BJLmgKaW5kZXggNjMx
YWJmYWRkMGYzNWQ5YTVmZGUxYzA2YTM1YzY0OTQzNGViZDc0Ni4uNjNmOTM3NmFiYjA0ZGM1MDg0
NDg3ODU1OTFlODExNjA4MjcyOTUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZv
cm0vc3BpL2lvcy9CS1NQcm9jZXNzQXNzZXJ0aW9uU1BJLmgKKysrIGIvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vc3BpL2lvcy9CS1NQcm9jZXNzQXNzZXJ0aW9uU1BJLmgKQEAgLTUyLDggKzUyLDkg
QEAgdHlwZWRlZiB2b2lkKF5CS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25IYW5kbGVyKShC
T09MIGFjcXVpcmVkKTsKIEBlbmQKIAogQGludGVyZmFjZSBCS1NQcm9jZXNzQXNzZXJ0aW9uIChE
ZXRhaWxzKQotLSAoaWQpaW5pdFdpdGhQSUQ6KHBpZF90KXBpZCBmbGFnczooQktTUHJvY2Vzc0Fz
c2VydGlvbkZsYWdzKWZsYWdzIHJlYXNvbjooQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbilyZWFz
b24gbmFtZTooTlNTdHJpbmcgKiluYW1lIHdpdGhIYW5kbGVyOihCS1NQcm9jZXNzQXNzZXJ0aW9u
QWNxdWlzaXRpb25IYW5kbGVyKWhhbmRsZXI7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWdu
KSBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3MgZmxhZ3M7CistIChpZClpbml0V2l0aFBJRDoocGlk
X3QpcGlkIGZsYWdzOihCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3MpZmxhZ3MgcmVhc29uOihCS1NQ
cm9jZXNzQXNzZXJ0aW9uUmVhc29uKXJlYXNvbiBuYW1lOihOU1N0cmluZyAqKW5hbWUgd2l0aEhh
bmRsZXI6KEJLU1Byb2Nlc3NBc3NlcnRpb25BY3F1aXNpdGlvbkhhbmRsZXIpaGFuZGxlcjsKKy0g
KHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAogI2VuZGlmCg==
</data>
<flag name="review"
          id="270044"
          type_id="1"
          status="+"
          setter="dbates"
    />
    <flag name="commit-queue"
          id="270045"
          type_id="3"
          status="-"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>