From e91803b8427c094b8f75322cec291842b9d1f8be Mon Sep 17 00:00:00 2001 From: leancloud-bot Date: Thu, 24 Aug 2023 10:43:26 +0800 Subject: [PATCH] 2.2.0 --- Plugins.meta | 8 + Plugins/LC.Google.Protobuf.dll | Bin 0 -> 358912 bytes Plugins/LC.Google.Protobuf.dll.meta | 33 + Plugins/LC.Google.Protobuf.pdb | Bin 0 -> 142288 bytes Plugins/LC.Google.Protobuf.pdb.meta | 7 + Plugins/LC.Google.Protobuf.xml | 9125 +++++++++++++++++++++++++++ Plugins/LC.Google.Protobuf.xml.meta | 7 + Plugins/LiveQuery.deps.json | 111 + Plugins/LiveQuery.deps.json.meta | 7 + Plugins/LiveQuery.dll | Bin 0 -> 22016 bytes Plugins/LiveQuery.dll.meta | 33 + Plugins/LiveQuery.pdb | Bin 0 -> 12328 bytes Plugins/LiveQuery.pdb.meta | 7 + Plugins/Realtime.dll | Bin 0 -> 300032 bytes Plugins/Realtime.dll.meta | 33 + Plugins/Realtime.pdb | Bin 0 -> 105872 bytes Plugins/Realtime.pdb.meta | 7 + Plugins/link.xml | 11 + Plugins/link.xml.meta | 7 + package.json | 16 + package.json.meta | 7 + 21 files changed, 9419 insertions(+) create mode 100644 Plugins.meta create mode 100644 Plugins/LC.Google.Protobuf.dll create mode 100644 Plugins/LC.Google.Protobuf.dll.meta create mode 100644 Plugins/LC.Google.Protobuf.pdb create mode 100644 Plugins/LC.Google.Protobuf.pdb.meta create mode 100644 Plugins/LC.Google.Protobuf.xml create mode 100644 Plugins/LC.Google.Protobuf.xml.meta create mode 100644 Plugins/LiveQuery.deps.json create mode 100644 Plugins/LiveQuery.deps.json.meta create mode 100644 Plugins/LiveQuery.dll create mode 100644 Plugins/LiveQuery.dll.meta create mode 100644 Plugins/LiveQuery.pdb create mode 100644 Plugins/LiveQuery.pdb.meta create mode 100644 Plugins/Realtime.dll create mode 100644 Plugins/Realtime.dll.meta create mode 100644 Plugins/Realtime.pdb create mode 100644 Plugins/Realtime.pdb.meta create mode 100644 Plugins/link.xml create mode 100644 Plugins/link.xml.meta create mode 100644 package.json create mode 100644 package.json.meta diff --git a/Plugins.meta b/Plugins.meta new file mode 100644 index 0000000..f2ab62e --- /dev/null +++ b/Plugins.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5935fb54277274ef3a7747c3489f55cc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LC.Google.Protobuf.dll b/Plugins/LC.Google.Protobuf.dll new file mode 100644 index 0000000000000000000000000000000000000000..548fdec3636a7da0b9f8e262c196fc046eea3284 GIT binary patch literal 358912 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
$*Lq44y0LGV472a3!&Dq|B=DA<0@ptP3?+ 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

1*wT#?>*=*NWH?ciStnQF4N3;dEr6o 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

p)dfZD^ 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 literal 0 HcmV?d00001 diff --git a/Plugins/LC.Google.Protobuf.dll.meta b/Plugins/LC.Google.Protobuf.dll.meta new file mode 100644 index 0000000..fc24641 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 9fc2c813dd0e24c3497c3acfd099b7f2 +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LC.Google.Protobuf.pdb b/Plugins/LC.Google.Protobuf.pdb new file mode 100644 index 0000000000000000000000000000000000000000..1c8e783bc33e12be349ecfd24ce258087989e510 GIT binary patch literal 142288 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 literal 0 HcmV?d00001 diff --git a/Plugins/LC.Google.Protobuf.pdb.meta b/Plugins/LC.Google.Protobuf.pdb.meta new file mode 100644 index 0000000..2eba94a --- /dev/null +++ b/Plugins/LC.Google.Protobuf.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 00daaf2deada34b258a1c48d6f175668 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LC.Google.Protobuf.xml b/Plugins/LC.Google.Protobuf.xml new file mode 100644 index 0000000..0a7b479 --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml @@ -0,0 +1,9125 @@ + + + + LC.Google.Protobuf + + + + + Provides a utility routine to copy small arrays much more quickly than Buffer.BlockCopy + + + + + The threshold above which you should use Buffer.BlockCopy rather than ByteArray.Copy + + + + + Determines which copy routine to use based on the number of bytes to be copied. + + + + + Reverses the order of bytes in the array + + + + + Immutable array of bytes. + + + + + Unsafe operations that can cause IO Failure and/or other catastrophic side-effects. + + + + + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + + + + + Internal use only. Ensure that the provided array is not mutated and belongs to this instance. + + + + + Constructs a new ByteString from the given byte array. The array is + *not* copied, and must not be modified after this constructor is called. + + + + + Returns an empty ByteString. + + + + + Returns the length of this ByteString in bytes. + + + + + Returns true if this byte string is empty, false otherwise. + + + + + Converts this into a byte array. + + The data is copied - changes to the returned array will not be reflected in this ByteString. + A byte array with the same data as this ByteString. + + + + Converts this into a standard base64 representation. + + A base64 representation of this ByteString. + + + + Constructs a from the Base64 Encoded String. + + + + + Constructs a from data in the given stream, synchronously. + + If successful, will be read completely, from the position + at the start of the call. + The stream to copy into a ByteString. + A ByteString with content read from the given stream. + + + + Constructs a from data in the given stream, asynchronously. + + If successful, will be read completely, from the position + at the start of the call. + The stream to copy into a ByteString. + The cancellation token to use when reading from the stream, if any. + A ByteString with content read from the given stream. + + + + Constructs a from the given array. The contents + are copied, so further modifications to the array will not + be reflected in the returned ByteString. + This method can also be invoked in ByteString.CopyFrom(0xaa, 0xbb, ...) form + which is primarily useful for testing. + + + + + Constructs a from a portion of a byte array. + + + + + Creates a new by encoding the specified text with + the given encoding. + + + + + Creates a new by encoding the specified text in UTF-8. + + + + + Retuns the byte at the given index. + + + + + Converts this into a string by applying the given encoding. + + + This method should only be used to convert binary data which was the result of encoding + text with the given encoding. + + The encoding to use to decode the binary data into text. + The result of decoding the binary data with the given decoding. + + + + Converts this into a string by applying the UTF-8 encoding. + + + This method should only be used to convert binary data which was the result of encoding + text with UTF-8. + + The result of decoding the binary data with the given decoding. + + + + Returns an iterator over the bytes in this . + + An iterator over the bytes in this object. + + + + Returns an iterator over the bytes in this . + + An iterator over the bytes in this object. + + + + Creates a CodedInputStream from this ByteString's data. + + + + + Compares two byte strings for equality. + + The first byte string to compare. + The second byte string to compare. + true if the byte strings are equal; false otherwise. + + + + Compares two byte strings for inequality. + + The first byte string to compare. + The second byte string to compare. + false if the byte strings are equal; true otherwise. + + + + Compares this byte string with another object. + + The object to compare this with. + true if refers to an equal ; false otherwise. + + + + Returns a hash code for this object. Two equal byte strings + will return the same hash code. + + A hash code for this object. + + + + Compares this byte string with another. + + The to compare this with. + true if refers to an equal byte string; false otherwise. + + + + Used internally by CodedOutputStream to avoid creating a copy for the write + + + + + Copies the entire byte array to the destination array provided at the offset specified. + + + + + Writes the entire byte array to the provided stream + + + + + Reads and decodes protocol message fields. + + + + This class is generally used by generated code to read appropriate + primitives from the stream. It effectively encapsulates the lowest + levels of protocol buffer format. + + + Repeated fields and map fields are not handled by this class; use + and to serialize such fields. + + + + + + Whether to leave the underlying stream open when disposing of this stream. + This is always true when there's no stream. + + + + + Buffer of data read from the stream or provided at construction time. + + + + + The index of the buffer at which we need to refill from the stream (if there is one). + + + + + The position within the current buffer (i.e. the next byte to read) + + + + + The stream to read further input from, or null if the byte array buffer was provided + directly on construction, with no further data available. + + + + + The last tag we read. 0 indicates we've read to the end of the stream + (or haven't read anything yet). + + + + + The next tag, used to store the value read by PeekTag. + + + + + The total number of bytes read before the current buffer. The + total bytes read up to the current position can be computed as + totalBytesRetired + bufferPos. + + + + + The absolute position of the end of the current message. + + + + + Creates a new CodedInputStream reading data from the given byte array. + + + + + Creates a new that reads from the given byte array slice. + + + + + Creates a new reading data from the given stream, which will be disposed + when the returned object is disposed. + + The stream to read from. + + + + Creates a new reading data from the given stream. + + The stream to read from. + true to leave open when the returned + is disposed; false to dispose of the given stream when the + returned object is disposed. + + + + Creates a new CodedInputStream reading data from the given + stream and buffer, using the default limits. + + + + + Creates a new CodedInputStream reading data from the given + stream and buffer, using the specified limits. + + + This chains to the version with the default limits instead of vice versa to avoid + having to check that the default values are valid every time. + + + + + Creates a with the specified size and recursion limits, reading + from an input stream. + + + This method exists separately from the constructor to reduce the number of constructor overloads. + It is likely to be used considerably less frequently than the constructors, as the default limits + are suitable for most use cases. + + The input stream to read from + The total limit of data to read from the stream. + The maximum recursion depth to allow while reading. + A CodedInputStream reading from with the specified size + and recursion limits. + + + + Returns the current position in the input stream, or the position in the input buffer + + + + + Returns the last tag read, or 0 if no tags have been read or we've read beyond + the end of the stream. + + + + + Returns the size limit for this stream. + + + This limit is applied when reading from the underlying stream, as a sanity check. It is + not applied when reading from a byte array data source without an underlying stream. + The default value is Int32.MaxValue. + + + The size limit. + + + + + Returns the recursion limit for this stream. This limit is applied whilst reading messages, + to avoid maliciously-recursive data. + + + The default limit is 100. + + + The recursion limit for this stream. + + + + + Internal-only property; when set to true, unknown fields will be discarded while parsing. + + + + + Internal-only property; provides extension identifiers to compatible messages while parsing. + + + + + Disposes of this instance, potentially closing any underlying stream. + + + As there is no flushing to perform here, disposing of a which + was constructed with the leaveOpen option parameter set to true (or one which + was constructed to read from a byte array) has no effect. + + + + + Verifies that the last call to ReadTag() returned tag 0 - in other words, + we've reached the end of the stream when we expected to. + + The + tag read was not the one specified + + + + Peeks at the next field tag. This is like calling , but the + tag is not consumed. (So a subsequent call to will return the + same value.) + + + + + Reads a field tag, returning the tag of 0 for "end of stream". + + + If this method returns 0, it doesn't necessarily mean the end of all + the data in this CodedInputStream; it may be the end of the logical stream + for an embedded message, for example. + + The next field tag, or 0 for end of stream. (0 is never a valid tag.) + + + + Skips the data for the field with the tag we've just read. + This should be called directly after , when + the caller wishes to skip an unknown field. + + + This method throws if the last-read tag was an end-group tag. + If a caller wishes to skip a group, they should skip the whole group, by calling this method after reading the + start-group tag. This behavior allows callers to call this method on any field they don't understand, correctly + resulting in an error if an end-group tag has not been paired with an earlier start-group tag. + + The last tag was an end-group tag + The last read operation read to the end of the logical stream + + + + Skip a group. + + + + + Reads a double field from the stream. + + + + + Reads a float field from the stream. + + + + + Reads a uint64 field from the stream. + + + + + Reads an int64 field from the stream. + + + + + Reads an int32 field from the stream. + + + + + Reads a fixed64 field from the stream. + + + + + Reads a fixed32 field from the stream. + + + + + Reads a bool field from the stream. + + + + + Reads a string field from the stream. + + + + + Reads an embedded message field value from the stream. + + + + + Reads an embedded group field from the stream. + + + + + Reads an embedded group unknown field from the stream. + + + + + Reads a bytes field value from the stream. + + + + + Reads a uint32 field value from the stream. + + + + + Reads an enum field value from the stream. + + + + + Reads an sfixed32 field value from the stream. + + + + + Reads an sfixed64 field value from the stream. + + + + + Reads an sint32 field value from the stream. + + + + + Reads an sint64 field value from the stream. + + + + + Reads a length for length-delimited data. + + + This is internally just reading a varint, but this method exists + to make the calling code clearer. + + + + + Peeks at the next tag in the stream. If it matches , + the tag is consumed and the method returns true; otherwise, the + stream is left in the original position and the method returns false. + + + + + Same code as ReadRawVarint32, but read each byte individually, checking for + buffer overflow. + + + + + Reads a raw Varint from the stream. If larger than 32 bits, discard the upper bits. + This method is optimised for the case where we've got lots of data in the buffer. + That means we can check the size just once, then just read directly from the buffer + without constant rechecking of the buffer length. + + + + + Reads a varint from the input one byte at a time, so that it does not + read any bytes after the end of the varint. If you simply wrapped the + stream in a CodedInputStream and used ReadRawVarint32(Stream) + then you would probably end up reading past the end of the varint since + CodedInputStream buffers its input. + + + + + + + Reads a raw varint from the stream. + + + + + Reads a 32-bit little-endian integer from the stream. + + + + + Reads a 64-bit little-endian integer from the stream. + + + + + Decode a 32-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Decode a 32-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Sets currentLimit to (current position) + byteLimit. This is called + when descending into a length-delimited embedded message. The previous + limit is returned. + + The old limit. + + + + Discards the current limit, returning the previous limit. + + + + + Returns whether or not all the data before the limit has been read. + + + + + + Returns true if the stream has reached the end of the input. This is the + case if either the end of the underlying input source has been reached or + the stream has reached a limit created using PushLimit. + + + + + Called when buffer is empty to read more bytes from the + input. If is true, RefillBuffer() gurantees that + either there will be at least one byte in the buffer when it returns + or it will throw an exception. If is false, + RefillBuffer() returns false if no more bytes were available. + + + + + + + Read one byte from the input. + + + the end of the stream or the current limit was reached + + + + + Reads a fixed size of bytes from the input. + + + the end of the stream or the current limit was reached + + + + + Reads and discards bytes. + + the end of the stream + or the current limit was reached + + + + Abstraction of skipping to cope with streams which can't really skip. + + + + + Encodes and writes protocol message fields. + + + + This class is generally used by generated code to write appropriate + primitives to the stream. It effectively encapsulates the lowest + levels of protocol buffer format. Unlike some other implementations, + this does not include combined "write tag and value" methods. Generated + code knows the exact byte representations of the tags they're going to write, + so there's no need to re-encode them each time. Manually-written code calling + this class should just call one of the WriteTag overloads before each value. + + + Repeated fields and map fields are not handled by this class; use RepeatedField<T> + and MapField<TKey, TValue> to serialize such fields. + + + + + + Computes the number of bytes that would be needed to encode a + double field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + float field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + uint64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + int64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + int32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + fixed64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + fixed32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + bool field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + string field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + group field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + embedded message field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + bytes field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + uint32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a + enum field, including the tag. The caller is responsible for + converting the enum value to its numeric value. + + + + + Computes the number of bytes that would be needed to encode an + sfixed32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sfixed64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sint32 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode an + sint64 field, including the tag. + + + + + Computes the number of bytes that would be needed to encode a length, + as written by . + + + + + Computes the number of bytes that would be needed to encode a varint. + + + + + Computes the number of bytes that would be needed to encode a varint. + + + + + Computes the number of bytes that would be needed to encode a tag. + + + + + The buffer size used by CreateInstance(Stream). + + + + + Creates a new CodedOutputStream that writes directly to the given + byte array. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + + + + + Creates a new CodedOutputStream that writes directly to the given + byte array slice. If more bytes are written than fit in the array, + OutOfSpaceException will be thrown. + + + + + Creates a new which write to the given stream, and disposes of that + stream when the returned CodedOutputStream is disposed. + + The stream to write to. It will be disposed when the returned CodedOutputStream is disposed. + + + + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + + The stream to write to. It will be disposed when the returned CodedOutputStream is disposed. + The size of buffer to use internally. + + + + Creates a new CodedOutputStream which write to the given stream. + + The stream to write to. + If true, is left open when the returned CodedOutputStream is disposed; + if false, the provided stream is disposed as well. + + + + Creates a new CodedOutputStream which write to the given stream and uses + the specified buffer size. + + The stream to write to. + The size of buffer to use internally. + If true, is left open when the returned CodedOutputStream is disposed; + if false, the provided stream is disposed as well. + + + + Returns the current position in the stream, or the position in the output buffer + + + + + Writes a double field value, without a tag, to the stream. + + The value to write + + + + Writes a float field value, without a tag, to the stream. + + The value to write + + + + Writes a uint64 field value, without a tag, to the stream. + + The value to write + + + + Writes an int64 field value, without a tag, to the stream. + + The value to write + + + + Writes an int32 field value, without a tag, to the stream. + + The value to write + + + + Writes a fixed64 field value, without a tag, to the stream. + + The value to write + + + + Writes a fixed32 field value, without a tag, to the stream. + + The value to write + + + + Writes a bool field value, without a tag, to the stream. + + The value to write + + + + Writes a string field value, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a message, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a group, without a tag, to the stream. + + The value to write + + + + Write a byte string, without a tag, to the stream. + The data is length-prefixed. + + The value to write + + + + Writes a uint32 value, without a tag, to the stream. + + The value to write + + + + Writes an enum value, without a tag, to the stream. + + The value to write + + + + Writes an sfixed32 value, without a tag, to the stream. + + The value to write. + + + + Writes an sfixed64 value, without a tag, to the stream. + + The value to write + + + + Writes an sint32 value, without a tag, to the stream. + + The value to write + + + + Writes an sint64 value, without a tag, to the stream. + + The value to write + + + + Writes a length (in bytes) for length-delimited data. + + + This method simply writes a rawint, but exists for clarity in calling code. + + Length value, in bytes. + + + + Encodes and writes a tag. + + The number of the field to write the tag for + The wire format type of the tag to write + + + + Writes an already-encoded tag. + + The encoded tag + + + + Writes the given single-byte tag directly to the stream. + + The encoded tag + + + + Writes the given two-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + + + + Writes the given three-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + + + + Writes the given four-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + The fourth byte of the encoded tag + + + + Writes the given five-byte tag directly to the stream. + + The first byte of the encoded tag + The second byte of the encoded tag + The third byte of the encoded tag + The fourth byte of the encoded tag + The fifth byte of the encoded tag + + + + Writes a 32 bit value as a varint. The fast route is taken when + there's enough buffer space left to whizz through without checking + for each byte; otherwise, we resort to calling WriteRawByte each time. + + + + + Writes out an array of bytes. + + + + + Writes out part of an array of bytes. + + + + + Encode a 32-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Encode a 64-bit value with ZigZag encoding. + + + ZigZag encodes signed integers into values that can be efficiently + encoded with varint. (Otherwise, negative values must be + sign-extended to 64 bits to be varint encoded, thus always taking + 10 bytes on the wire.) + + + + + Indicates that a CodedOutputStream wrapping a flat byte array + ran out of space. + + + + + Flushes any buffered data and optionally closes the underlying stream, if any. + + + + By default, any underlying stream is closed by this method. To configure this behaviour, + use a constructor overload with a leaveOpen parameter. If this instance does not + have an underlying stream, this method does nothing. + + + For the sake of efficiency, calling this method does not prevent future write calls - but + if a later write ends up writing to a stream which has been disposed, that is likely to + fail. It is recommend that you not call any other methods after this. + + + + + + Flushes any buffered data to the underlying stream (if there is one). + + + + + Verifies that SpaceLeft returns zero. It's common to create a byte array + that is exactly big enough to hold a message, then write to it with + a CodedOutputStream. Calling CheckNoSpaceLeft after writing verifies that + the message was actually as big as expected, which can help bugs. + + + + + If writing to a flat array, returns the space left in the array. Otherwise, + throws an InvalidOperationException. + + + + + Utility to compare if two Lists are the same, and the hash code + of a List. + + + + + Checks if two lists are equal. + + + + + Gets the list's hash code. + + + + + Representation of a map field in a Protocol Buffer message. + + Key type in the map. Must be a type supported by Protocol Buffer map keys. + Value type in the map. Must be a type supported by Protocol Buffers. + + + For string keys, the equality comparison is provided by . + + + Null values are not permitted in the map, either for wrapper types or regular messages. + If a map is deserialized from a data stream and the value is missing from an entry, a default value + is created instead. For primitive types, that is the regular default value (0, the empty string and so + on); for message types, an empty instance of the message is created, as if the map entry contained a 0-length + encoded value for the field. + + + This implementation does not generally prohibit the use of key/value types which are not + supported by Protocol Buffers (e.g. using a key type of byte) but nor does it guarantee + that all operations will work in such cases. + + + The order in which entries are returned when iterating over this object is undefined, and may change + in future versions. + + + + + + Creates a deep clone of this object. + + + A deep clone of this object. + + + + + Adds the specified key/value pair to the map. + + + This operation fails if the key already exists in the map. To replace an existing entry, use the indexer. + + The key to add + The value to add. + The given key already exists in map. + + + + Determines whether the specified key is present in the map. + + The key to check. + true if the map contains the given key; false otherwise. + + + + Removes the entry identified by the given key from the map. + + The key indicating the entry to remove from the map. + true if the map contained the given key before the entry was removed; false otherwise. + + + + Gets the value associated with the specified key. + + The key whose value to get. + When this method returns, the value associated with the specified key, if the key is found; + otherwise, the default value for the type of the parameter. + This parameter is passed uninitialized. + true if the map contains an element with the specified key; otherwise, false. + + + + Gets or sets the value associated with the specified key. + + The key of the value to get or set. + The property is retrieved and key does not exist in the collection. + The value associated with the specified key. If the specified key is not found, + a get operation throws a , and a set operation creates a new element with the specified key. + + + + Gets a collection containing the keys in the map. + + + + + Gets a collection containing the values in the map. + + + + + Adds the specified entries to the map. The keys and values are not automatically cloned. + + The entries to add to the map. + + + + Returns an enumerator that iterates through the collection. + + + An enumerator that can be used to iterate through the collection. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Adds the specified item to the map. + + The item to add to the map. + + + + Removes all items from the map. + + + + + Determines whether map contains an entry equivalent to the given key/value pair. + + The key/value pair to find. + + + + + Copies the key/value pairs in this map to an array. + + The array to copy the entries into. + The index of the array at which to start copying values. + + + + Removes the specified key/value pair from the map. + + Both the key and the value must be found for the entry to be removed. + The key/value pair to remove. + true if the key/value pair was found and removed; false otherwise. + + + + Gets the number of elements contained in the map. + + + + + Gets a value indicating whether the map is read-only. + + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Compares this map with another for equality. + + + The order of the key/value pairs in the maps is not deemed significant in this comparison. + + The map to compare this with. + true if refers to an equal map; false otherwise. + + + + Adds entries to the map from the given stream. + + + It is assumed that the stream is initially positioned after the tag specified by the codec. + This method will continue reading entries from the stream until the end is reached, or + a different tag is encountered. + + Stream to read from + Codec describing how the key/value pairs are encoded + + + + Writes the contents of this map to the given coded output stream, using the specified codec + to encode each entry. + + The output stream to write to. + The codec to use for each entry. + + + + Calculates the size of this map based on the given entry codec. + + The codec to use to encode each entry. + + + + + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + + + + + A codec for a specific map field. This contains all the information required to encode and + decode the nested messages. + + + + + Creates a new entry codec based on a separate key codec and value codec, + and the tag to use for each map entry. + + The key codec. + The value codec. + The map tag to use to introduce each map entry. + + + + The tag used in the enclosing message to indicate map entries. + + + + + A mutable message class, used for parsing and serializing. This + delegates the work to a codec, but implements the interface + for interop with and . + This is nested inside Codec as it's tightly coupled to the associated codec, + and it's simpler if it has direct access to all its fields. + + + + + Provides a central place to implement equality comparisons, primarily for bitwise float/double equality. + + + + + Returns an equality comparer for suitable for Protobuf equality comparisons. + This is usually just the default equality comparer for the type, but floating point numbers are compared + bitwise. + + The type of equality comparer to return. + The equality comparer. + + + + Returns an equality comparer suitable for comparing 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing nullable 64-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Returns an equality comparer suitable for comparing nullable 32-bit floating point values, by bitwise comparison. + (NaN values are considered equal, but only when they have the same representation.) + + + + + Read-only wrapper around another dictionary. + + + + + The contents of a repeated field: essentially, a collection with some extra + restrictions (no null values) and capabilities (deep cloning). + + + This implementation does not generally prohibit the use of types which are not + supported by Protocol Buffers but nor does it guarantee that all operations will work in such cases. + + The element type of the repeated field. + + + + Creates a deep clone of this repeated field. + + + If the field type is + a message type, each element is also cloned; otherwise, it is + assumed that the field type is primitive (including string and + bytes, both of which are immutable) and so a simple copy is + equivalent to a deep clone. + + A deep clone of this repeated field. + + + + Adds the entries from the given input stream, decoding them with the specified codec. + + The input stream to read from. + The codec to use in order to read each entry. + + + + Calculates the size of this collection based on the given codec. + + The codec to use when encoding each field. + The number of bytes that would be written to a by , + using the same codec. + + + + Writes the contents of this collection to the given , + encoding each value using the specified codec. + + The output stream to write to. + The codec to use when encoding each value. + + + + Gets and sets the capacity of the RepeatedField's internal array. WHen set, the internal array is reallocated to the given capacity. + The new value is less than Count -or- when Count is less than 0. + + + + + Adds the specified item to the collection. + + The item to add. + + + + Removes all items from the collection. + + + + + Determines whether this collection contains the given item. + + The item to find. + true if this collection contains the given item; false otherwise. + + + + Copies this collection to the given array. + + The array to copy to. + The first index of the array to copy to. + + + + Removes the specified item from the collection + + The item to remove. + true if the item was found and removed; false otherwise. + + + + Gets the number of elements contained in the collection. + + + + + Gets a value indicating whether the collection is read-only. + + + + + Adds all of the specified values into this collection. + + The values to add to this collection. + + + + Adds all of the specified values into this collection. This method is present to + allow repeated fields to be constructed from queries within collection initializers. + Within non-collection-initializer code, consider using the equivalent + method instead for clarity. + + The values to add to this collection. + + + + Returns an enumerator that iterates through the collection. + + + An enumerator that can be used to iterate through the collection. + + + + + Determines whether the specified , is equal to this instance. + + The to compare with this instance. + + true if the specified is equal to this instance; otherwise, false. + + + + + Returns an enumerator that iterates through a collection. + + + An object that can be used to iterate through the collection. + + + + + Returns a hash code for this instance. + + + A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. + + + + + Compares this repeated field with another for equality. + + The repeated field to compare this with. + true if refers to an equal repeated field; false otherwise. + + + + Returns the index of the given item within the collection, or -1 if the item is not + present. + + The item to find in the collection. + The zero-based index of the item, or -1 if it is not found. + + + + Inserts the given item at the specified index. + + The index at which to insert the item. + The item to insert. + + + + Removes the item at the given index. + + The zero-based index of the item to remove. + + + + Returns a string representation of this repeated field, in the same + way as it would be represented by the default JSON formatter. + + + + + Gets or sets the item at the specified index. + + + The element at the specified index. + + The zero-based index of the element to get or set. + The item at the specified index. + + + + Extension methods for , effectively providing + the familiar members from previous desktop framework versions while + targeting the newer releases, .NET Core etc. + + + + + Returns the public getter of a property, or null if there is no such getter + (either because it's read-only, or the getter isn't public). + + + + + Returns the public setter of a property, or null if there is no such setter + (either because it's write-only, or the setter isn't public). + + + + + Provides extension methods on Type that just proxy to TypeInfo. + These are used to support the new type system from .NET 4.5, without + having calls to GetTypeInfo all over the place. While the methods here are meant to be + broadly compatible with the desktop framework, there are some subtle differences in behaviour - but + they're not expected to affect our use cases. While the class is internal, that should be fine: we can + evaluate each new use appropriately. + + + + + See https://msdn.microsoft.com/en-us/library/system.type.isassignablefrom + + + + + Returns a representation of the public property associated with the given name in the given type, + including inherited properties or null if there is no such public property. + Here, "public property" means a property where either the getter, or the setter, or both, is public. + + + + + Returns a representation of the public method associated with the given name in the given type, + including inherited methods. + + + This has a few differences compared with Type.GetMethod in the desktop framework. It will throw + if there is an ambiguous match even between a private method and a public one, but it *won't* throw + if there are two overloads at different levels in the type hierarchy (e.g. class Base declares public void Foo(int) and + class Child : Base declares public void Foo(long)). + + One type in the hierarchy declared more than one method with the same name + + + + Represents a non-generic extension definition. This API is experimental and subject to change. + + + + + Internal use. Creates a new extension with the specified field number. + + + + + Gets the field number of this extension + + + + + Represents a type-safe extension identifier used for getting and setting single extension values in instances. + This API is experimental and subject to change. + + The message type this field applies to + The field value type of this extension + + + + Creates a new extension identifier with the specified field number and codec + + + + + Represents a type-safe extension identifier used for getting repeated extension values in instances. + This API is experimental and subject to change. + + The message type this field applies to + The repeated field value type of this extension + + + + Creates a new repeated extension identifier with the specified field number and codec + + + + + Provides extensions to messages while parsing. This API is experimental and subject to change. + + + + + Creates a new empty extension registry + + + + + Gets the total number of extensions in this extension registry + + + + + Returns whether the registry is readonly + + + + + Adds the specified extension to the registry + + + + + Adds the specified extensions to the registry + + + + + Clears the registry of all values + + + + + Gets whether the extension registry contains the specified extension + + + + + Copies the arrays in the registry set to the specified array at the specified index + + The array to copy to + The array index to start at + + + + Returns an enumerator to enumerate through the items in the registry + + Returns an enumerator for the extensions in this registry + + + + Removes the specified extension from the set + + The extension + true if the extension was removed, otherwise false + + + + Clones the registry into a new registry + + + + + Methods for managing s with null checking. + + Most users will not use this class directly and its API is experimental and subject to change. + + + + + Gets the value of the specified extension + + + + + Gets the value of the specified repeated extension or null if it doesn't exist in this set + + + + + Gets the value of the specified repeated extension, registering it if it doesn't exist + + + + + Sets the value of the specified extension. This will make a new instance of ExtensionSet if the set is null. + + + + + Gets whether the value of the specified extension is set + + + + + Clears the value of the specified extension + + + + + Clears the value of the specified extension + + + + + Tries to merge a field from the coded input, returning true if the field was merged. + If the set is null or the field was not otherwise merged, this returns false. + + + + + Merges the second set into the first set, creating a new instance if first is null + + + + + Clones the set into a new set. If the set is null, this returns null + + + + + Used for keeping track of extensions in messages. + methods route to this set. + + Most users will not need to use this class directly + + The message type that extensions in this set target + + + + Gets a hash code of the set + + + + + Returns whether this set is equal to the other object + + + + + Calculates the size of this extension set + + + + + Writes the extension values in this set to the output stream + + + + + Factory methods for . + + + + + Retrieves a codec suitable for a string field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a bytes field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a bool field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an int32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint32 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an int64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint64 field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a float field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for a double field with the given tag. + + The tag. + A codec for the given tag. + + + + Retrieves a codec suitable for an enum field with the given tag. + + The tag. + A conversion function from to the enum type. + A conversion function from the enum type to . + A codec for the given tag. + + + + Retrieves a codec suitable for a string field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a bytes field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a bool field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an int32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint32 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an int64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sint64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a fixed64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an sfixed64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a uint64 field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a float field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a double field with the given tag. + + The tag. + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for an enum field with the given tag. + + The tag. + A conversion function from to the enum type. + A conversion function from the enum type to . + The default value. + A codec for the given tag. + + + + Retrieves a codec suitable for a message field with the given tag. + + The tag. + A parser to use for the message type. + A codec for the given tag. + + + + Retrieves a codec suitable for a group field with the given tag. + + The start group tag. + The end group tag. + A parser to use for the group message type. + A codec for given tag + + + + Creates a codec for a wrapper type of a class - which must be string or ByteString. + + + + + Creates a codec for a wrapper type of a struct - which must be Int32, Int64, UInt32, UInt64, + Bool, Single or Double. + + + + + Helper code to create codecs for wrapper types. + + + Somewhat ugly with all the static methods, but the conversions involved to/from nullable types make it + slightly tricky to improve. So long as we keep the public API (ForClassWrapper, ForStructWrapper) in place, + we can refactor later if we come up with something cleaner. + + + + + Returns a field codec which effectively wraps a value of type T in a message. + + + + + + + An encode/decode pair for a single field. This effectively encapsulates + all the information needed to read or write the field value from/to a coded + stream. + + + This class is public and has to be as it is used by generated code, but its public + API is very limited - just what the generated code needs to call directly. + + + + This never writes default values to the stream, and does not address "packedness" + in repeated fields itself, other than to know whether or not the field *should* be packed. + + + + + Merges an input stream into a value + + + + + Merges a value into a reference to another value, returning a boolean if the value was set + + + + + Returns a delegate to write a value (unconditionally) to a coded output stream. + + + + + Returns the size calculator for just a value. + + + + + Returns a delegate to read a value from a coded input stream. It is assumed that + the stream is already positioned on the appropriate tag. + + + + + Returns a delegate to merge a value from a coded input stream. + It is assumed that the stream is already positioned on the appropriate tag + + + + + Returns a delegate to merge two values together. + + + + + Returns the fixed size for an entry, or 0 if sizes vary. + + + + + Gets the tag of the codec. + + + The tag of the codec. + + + + + Gets the end tag of the codec or 0 if there is no end tag + + + The end tag of the codec. + + + + + Default value for this codec. Usually the same for every instance of the same type, but + for string/ByteString wrapper fields the codec's default value is null, whereas for + other string/ByteString fields it's "" or ByteString.Empty. + + + The default value of the codec's type. + + + + + Write a tag and the given value, *if* the value is not the default. + + + + + Reads a value of the codec type from the given . + + The input stream to read from. + The value read from the stream. + + + + Calculates the size required to write the given value, with a tag, + if the value is not the default. + + + + + A tree representation of a FieldMask. Each leaf node in this tree represent + a field path in the FieldMask. + + For example, FieldMask "foo.bar,foo.baz,bar.baz" as a tree will be: + + [root] -+- foo -+- bar + | | + | +- baz + | + +- bar --- baz + + + By representing FieldMasks with this tree structure we can easily convert + a FieldMask to a canonical form, merge two FieldMasks, calculate the + intersection to two FieldMasks and traverse all fields specified by the + FieldMask in a message tree. + + + + + Creates an empty FieldMaskTree. + + + + + Creates a FieldMaskTree for a given FieldMask. + + + + + Adds a field path to the tree. In a FieldMask, every field path matches the + specified field as well as all its sub-fields. For example, a field path + "foo.bar" matches field "foo.bar" and also "foo.bar.baz", etc. When adding + a field path to the tree, redundant sub-paths will be removed. That is, + after adding "foo.bar" to the tree, "foo.bar.baz" will be removed if it + exists, which will turn the tree node for "foo.bar" to a leaf node. + Likewise, if the field path to add is a sub-path of an existing leaf node, + nothing will be changed in the tree. + + + + + Merges all field paths in a FieldMask into this tree. + + + + + Converts this tree to a FieldMask. + + + + + Gathers all field paths in a sub-tree. + + + + + Adds the intersection of this tree with the given to . + + + + + Merges all fields specified by this FieldMaskTree from to . + + + + + Merges all fields specified by a sub-tree from to . + + + + + Class containing helpful workarounds for various platform compatibility + + + + + A message type that has a custom string format for diagnostic purposes. + + + + Calling on a generated message type normally + returns the JSON representation. If a message type implements this interface, + then the method will be called instead of the regular + JSON formatting code, but only when ToString() is called either on the message itself + or on another message which contains it. This does not affect the normal JSON formatting of + the message. + + + For example, if you create a proto message representing a GUID, the internal + representation may be a bytes field or four fixed32 fields. However, when debugging + it may be more convenient to see a result in the same format as provides. + + This interface extends to avoid it accidentally being implemented + on types other than messages, where it would not be used by anything in the framework. + + + + + Returns a string representation of this object, for diagnostic purposes. + + + This method is called when a message is formatted as part of a + call. It does not affect the JSON representation used by other than + in calls to . While it is recommended + that the result is valid JSON, this is never assumed by the Protobuf library. + + A string representation of this object, for diagnostic purposes. + + + + Generic interface for a deeply cloneable type. + + + + All generated messages implement this interface, but so do some non-message types. + Additionally, due to the type constraint on T in , + it is simpler to keep this as a separate interface. + + + The type itself, returned by the method. + + + + Creates a deep clone of this object. + + A deep clone of this object. + + + + Generic interface for a Protocol Buffers message containing one or more extensions, where the type parameter is expected to be the same type as the implementation class. + This interface is experiemental and is subject to change. + + + + + Gets the value of the specified extension + + + + + Gets the value of the specified repeated extension or null if the extension isn't registered in this set. + For a version of this method that never returns null, use + + + + + Gets the value of the specified repeated extension, registering it if it hasn't already been registered. + + + + + Sets the value of the specified extension + + + + + Gets whether the value of the specified extension is set + + + + + Clears the value of the specified extension + + + + + Clears the value of the specified repeated extension + + + + + Interface for a Protocol Buffers message, supporting + basic operations required for serialization. + + + + + Merges the data from the specified coded input stream with the current message. + + See the user guide for precise merge semantics. + + + + + Writes the data to the given coded output stream. + + Coded output stream to write the data to. Must not be null. + + + + Calculates the size of this message in Protocol Buffer wire format, in bytes. + + The number of bytes required to write this message + to a coded output stream. + + + + Descriptor for this message. All instances are expected to return the same descriptor, + and for generated types this will be an explicitly-implemented member, returning the + same value as the static property declared on the type. + + + + + Generic interface for a Protocol Buffers message, + where the type parameter is expected to be the same type as + the implementation class. + + The message type. + + + + Merges the given message into this one. + + See the user guide for precise merge semantics. + The message to merge with this one. Must not be null. + + + + Thrown when an attempt is made to parse invalid JSON, e.g. using + a non-string property key, or including a redundant comma. Parsing a protocol buffer + message represented in JSON using can throw both this + exception and depending on the situation. This + exception is only thrown for "pure JSON" errors, whereas InvalidProtocolBufferException + is thrown when the JSON may be valid in and of itself, but cannot be parsed as a protocol buffer + message. + + + + + Thrown when a protocol message being parsed is invalid in some way, + e.g. it contains a malformed varint or a negative byte length. + + + + + Creates an exception for an error condition of an invalid tag being encountered. + + + + + Reflection-based converter from messages to JSON. + + + + Instances of this class are thread-safe, with no mutable state. + + + This is a simple start to get JSON formatting working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + + + + + + Returns a formatter using the default settings. + + + + + The JSON representation of the first 160 characters of Unicode. + Empty strings are replaced by the static constructor. + + + + + Creates a new formatted with the given settings. + + The settings. + + + + Formats the specified message as JSON. + + The message to format. + The formatted message. + + + + Formats the specified message as JSON. + + The message to format. + The TextWriter to write the formatted message to. + The formatted message. + + + + Converts a message to JSON for diagnostic purposes with no extra context. + + + + This differs from calling on the default JSON + formatter in its handling of . As no type registry is available + in calls, the normal way of resolving the type of + an Any message cannot be applied. Instead, a JSON property named @value + is included with the base64 data from the property of the message. + + The value returned by this method is only designed to be used for diagnostic + purposes. It may not be parsable by , and may not be parsable + by other Protocol Buffer implementations. + + The message to format for diagnostic purposes. + The diagnostic-only JSON representation of the message + + + + Writes a single value to the given writer as JSON. Only types understood by + Protocol Buffers can be written in this way. This method is only exposed for + advanced use cases; most users should be using + or . + + The writer to write the value to. Must not be null. + The value to write. May be null. + + + + Central interception point for well-known type formatting. Any well-known types which + don't need special handling can fall back to WriteMessage. We avoid assuming that the + values are using the embedded well-known types, in order to allow for dynamic messages + in the future. + + + + + Writes a string (including leading and trailing double quotes) to a builder, escaping as required. + + + Other than surrogate pair handling, this code is mostly taken from src/google/protobuf/util/internal/json_escaping.cc. + + + + + Settings controlling JSON formatting. + + + + + Default settings, as used by + + + + + Whether fields whose values are the default for the field type (e.g. 0 for integers) + should be formatted (true) or omitted (false). + + + + + The type registry used to format messages. + + + + + Whether to format enums as ints. Defaults to false. + + + + + Creates a new object with the specified formatting of default values + and an empty type registry. + + true if default values (0, empty strings etc) should be formatted; false otherwise. + + + + Creates a new object with the specified formatting of default values + and type registry. + + true if default values (0, empty strings etc) should be formatted; false otherwise. + The to use when formatting messages. + + + + Creates a new object with the specified parameters. + + true if default values (0, empty strings etc) should be formatted; false otherwise. + The to use when formatting messages. TypeRegistry.Empty will be used if it is null. + true to format the enums as integers; false to format enums as enum names. + + + + Creates a new object with the specified formatting of default values and the current settings. + + true if default values (0, empty strings etc) should be formatted; false otherwise. + + + + Creates a new object with the specified type registry and the current settings. + + The to use when formatting messages. + + + + Creates a new object with the specified enums formatting option and the current settings. + + true to format the enums as integers; false to format enums as enum names. + + + + Reflection-based converter from JSON to messages. + + + + Instances of this class are thread-safe, with no mutable state. + + + This is a simple start to get JSON parsing working. As it's reflection-based, + it's not as quick as baking calls into generated messages - but is a simpler implementation. + (This code is generally not heavily optimized.) + + + + + + Returns a formatter using the default settings. + + + + + Creates a new formatted with the given settings. + + The settings. + + + + Parses and merges the information into the given message. + + The message to merge the JSON information into. + The JSON to parse. + + + + Parses JSON read from and merges the information into the given message. + + The message to merge the JSON information into. + Reader providing the JSON to parse. + + + + Merges the given message using data from the given tokenizer. In most cases, the next + token should be a "start object" token, but wrapper types and nullity can invalidate + that assumption. This is implemented as an LL(1) recursive descent parser over the stream + of tokens provided by the tokenizer. This token stream is assumed to be valid JSON, with the + tokenizer performing that validation - but not every token stream is valid "protobuf JSON". + + + + + Parses into a new message. + + The type of message to create. + The JSON to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses JSON read from into a new message. + + The type of message to create. + Reader providing the JSON to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses into a new message. + + The JSON to parse. + Descriptor of message type to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Parses JSON read from into a new message. + + Reader providing the JSON to parse. + Descriptor of message type to parse. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new instance of the message type for the given field. + + + + + Checks that any infinite/NaN values originated from the correct text. + This corrects the lenient whitespace handling of double.Parse/float.Parse, as well as the + way that Mono parses out-of-range values as infinity. + + + + + Settings controlling JSON parsing. + + + + + Default settings, as used by . This has the same default + recursion limit as , and an empty type registry. + + + + + The maximum depth of messages to parse. Note that this limit only applies to parsing + messages, not collections - so a message within a collection within a message only counts as + depth 2, not 3. + + + + + The type registry used to parse messages. + + + + + Whether the parser should ignore unknown fields (true) or throw an exception when + they are encountered (false). + + + + + Creates a new object with the specified recursion limit. + + The maximum depth of messages to parse + + + + Creates a new object with the specified recursion limit and type registry. + + The maximum depth of messages to parse + The type registry used to parse messages + + + + Creates a new object set to either ignore unknown fields, or throw an exception + when unknown fields are encountered. + + true if unknown fields should be ignored when parsing; false to throw an exception. + + + + Creates a new object based on this one, but with the specified recursion limit. + + The new recursion limit. + + + + Creates a new object based on this one, but with the specified type registry. + + The new type registry. Must not be null. + + + + Simple but strict JSON tokenizer, rigidly following RFC 7159. + + + + This tokenizer is stateful, and only returns "useful" tokens - names, values etc. + It does not create tokens for the separator between names and values, or for the comma + between values. It validates the token stream as it goes - so callers can assume that the + tokens it produces are appropriate. For example, it would never produce "start object, end array." + + Implementation details: the base class handles single token push-back and + Not thread-safe. + + + + + Creates a tokenizer that reads from the given text reader. + + + + + Creates a tokenizer that first replays the given list of tokens, then continues reading + from another tokenizer. Note that if the returned tokenizer is "pushed back", that does not push back + on the continuation tokenizer, or vice versa. Care should be taken when using this method - it was + created for the sake of Any parsing. + + + + + Returns the depth of the stack, purely in objects (not collections). + Informally, this is the number of remaining unclosed '{' characters we have. + + + + + Returns the next JSON token in the stream. An EndDocument token is returned to indicate the end of the stream, + after which point Next() should not be called again. + + This implementation provides single-token buffering, and calls if there is no buffered token. + The next token in the stream. This is never null. + This method is called after an EndDocument token has been returned + The input text does not comply with RFC 7159 + + + + Returns the next JSON token in the stream, when requested by the base class. (The method delegates + to this if it doesn't have a buffered token.) + + This method is called after an EndDocument token has been returned + The input text does not comply with RFC 7159 + + + + Skips the value we're about to read. This must only be called immediately after reading a property name. + If the value is an object or an array, the complete object/array is skipped. + + + + + Tokenizer which first exhausts a list of tokens, then consults another tokenizer. + + + + + Tokenizer which does all the *real* work of parsing JSON. + + + + + This method essentially just loops through characters skipping whitespace, validating and + changing state (e.g. from ObjectBeforeColon to ObjectAfterColon) + until it reaches something which will be a genuine token (e.g. a start object, or a value) at which point + it returns the token. Although the method is large, it would be relatively hard to break down further... most + of it is the large switch statement, which sometimes returns and sometimes doesn't. + + + + + Reads a string token. It is assumed that the opening " has already been read. + + + + + Reads an escaped character. It is assumed that the leading backslash has already been read. + + + + + Reads an escaped Unicode 4-nybble hex sequence. It is assumed that the leading \u has already been read. + + + + + Consumes a text-only literal, throwing an exception if the read text doesn't match it. + It is assumed that the first letter of the literal has already been read. + + + + + Validates that we're in a valid state to read a value (using the given error prefix if necessary) + and changes the state to the appropriate one, e.g. ObjectAfterColon to ObjectAfterProperty. + + + + + Pops the top-most container, and sets the state to the appropriate one for the end of a value + in the parent container. + + + + + Possible states of the tokenizer. + + + This is a flags enum purely so we can simply and efficiently represent a set of valid states + for checking. + + Each is documented with an example, + where ^ represents the current position within the text stream. The examples all use string values, + but could be any value, including nested objects/arrays. + The complete state of the tokenizer also includes a stack to indicate the contexts (arrays/objects). + Any additional notional state of "AfterValue" indicates that a value has been completed, at which + point there's an immediate transition to ExpectedEndOfDocument, ObjectAfterProperty or ArrayAfterValue. + + + These states were derived manually by reading RFC 7159 carefully. + + + + + + ^ { "foo": "bar" } + Before the value in a document. Next states: ObjectStart, ArrayStart, "AfterValue" + + + + + { "foo": "bar" } ^ + After the value in a document. Next states: ReaderExhausted + + + + + { "foo": "bar" } ^ (and already read to the end of the reader) + Terminal state. + + + + + { ^ "foo": "bar" } + Before the *first* property in an object. + Next states: + "AfterValue" (empty object) + ObjectBeforeColon (read a name) + + + + + { "foo" ^ : "bar", "x": "y" } + Next state: ObjectAfterColon + + + + + { "foo" : ^ "bar", "x": "y" } + Before any property other than the first in an object. + (Equivalently: after any property in an object) + Next states: + "AfterValue" (value is simple) + ObjectStart (value is object) + ArrayStart (value is array) + + + + + { "foo" : "bar" ^ , "x" : "y" } + At the end of a property, so expecting either a comma or end-of-object + Next states: ObjectAfterComma or "AfterValue" + + + + + { "foo":"bar", ^ "x":"y" } + Read the comma after the previous property, so expecting another property. + This is like ObjectStart, but closing brace isn't valid here + Next state: ObjectBeforeColon. + + + + + [ ^ "foo", "bar" ] + Before the *first* value in an array. + Next states: + "AfterValue" (read a value) + "AfterValue" (end of array; will pop stack) + + + + + [ "foo" ^ , "bar" ] + After any value in an array, so expecting either a comma or end-of-array + Next states: ArrayAfterComma or "AfterValue" + + + + + [ "foo", ^ "bar" ] + After a comma in an array, so there *must* be another value (simple or complex). + Next states: "AfterValue" (simple value), StartObject, StartArray + + + + + Wrapper around a text reader allowing small amounts of buffering and location handling. + + + + + The buffered next character, if we have one. + + + + + Returns the next character in the stream, or null if we have reached the end. + + + + + + Creates a new exception appropriate for the current state of the reader. + + + + + Stream implementation which proxies another stream, only allowing a certain amount + of data to be read. Note that this is only used to read delimited streams, so it + doesn't attempt to implement everything. + + + + + Extension methods on and . + + + + + Merges data from the given byte array into an existing message. + + The message to merge the data into. + The data to merge, which must be protobuf-encoded binary data. + + + + Merges data from the given byte array slice into an existing message. + + The message to merge the data into. + The data containing the slice to merge, which must be protobuf-encoded binary data. + The offset of the slice to merge. + The length of the slice to merge. + + + + Merges data from the given byte string into an existing message. + + The message to merge the data into. + The data to merge, which must be protobuf-encoded binary data. + + + + Merges data from the given stream into an existing message. + + The message to merge the data into. + Stream containing the data to merge, which must be protobuf-encoded binary data. + + + + Merges length-delimited data from the given stream into an existing message. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The message to merge the data into. + Stream containing the data to merge, which must be protobuf-encoded binary data. + + + + Converts the given message into a byte array in protobuf encoding. + + The message to convert. + The message data as a byte array. + + + + Writes the given message data to the given stream in protobuf encoding. + + The message to write to the stream. + The stream to write to. + + + + Writes the length and then data of the given message to a stream. + + The message to write. + The output stream to write to. + + + + Converts the given message into a byte string in protobuf encoding. + + The message to convert. + The message data as a byte string. + + + + Checks if all required fields in a message have values set. For proto3 messages, this returns true + + + + + A general message parser, typically used by reflection-based code as all the methods + return simple . + + + + + Creates a template instance ready for population. + + An empty message. + + + + Parses a message from a byte array. + + The byte array containing the message. Must not be null. + The newly parsed message. + + + + Parses a message from a byte array slice. + + The byte array containing the message. Must not be null. + The offset of the slice to parse. + The length of the slice to parse. + The newly parsed message. + + + + Parses a message from the given byte string. + + The data to parse. + The parsed message. + + + + Parses a message from the given stream. + + The stream to parse. + The parsed message. + + + + Parses a length-delimited message from the given stream. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The stream to parse. + The parsed message. + + + + Parses a message from the given coded input stream. + + The stream to parse. + The parsed message. + + + + Parses a message from the given JSON. + + The JSON to parse. + The parsed message. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new message parser which optionally discards unknown fields when parsing. + + Whether or not to discard unknown fields when parsing. + A newly configured message parser. + + + + Creates a new message parser which registers extensions from the specified registry upon creating the message instance + + The extensions to register + A newly configured message parser. + + + + A parser for a specific message type. + + +

+ This delegates most behavior to the + implementation within the original type, but + provides convenient overloads to parse from a variety of sources. +

+

+ Most applications will never need to create their own instances of this type; + instead, use the static Parser property of a generated message type to obtain a + parser for that type. +

+
+ The type of message to be parsed. +
+ + + Creates a new parser. + + + The factory method is effectively an optimization over using a generic constraint + to require a parameterless constructor: delegates are significantly faster to execute. + + Function to invoke when a new, empty message is required. + + + + Creates a template instance ready for population. + + An empty message. + + + + Parses a message from a byte array. + + The byte array containing the message. Must not be null. + The newly parsed message. + + + + Parses a message from a byte array slice. + + The byte array containing the message. Must not be null. + The offset of the slice to parse. + The length of the slice to parse. + The newly parsed message. + + + + Parses a message from the given byte string. + + The data to parse. + The parsed message. + + + + Parses a message from the given stream. + + The stream to parse. + The parsed message. + + + + Parses a length-delimited message from the given stream. + + + The stream is expected to contain a length and then the data. Only the amount of data + specified by the length will be consumed. + + The stream to parse. + The parsed message. + + + + Parses a message from the given coded input stream. + + The stream to parse. + The parsed message. + + + + Parses a message from the given JSON. + + The JSON to parse. + The parsed message. + The JSON does not comply with RFC 7159 + The JSON does not represent a Protocol Buffers message correctly + + + + Creates a new message parser which optionally discards unknown fields when parsing. + + Whether or not to discard unknown fields when parsing. + A newly configured message parser. + + + + Creates a new message parser which registers extensions from the specified registry upon creating the message instance + + The extensions to register + A newly configured message parser. + + + + Struct used to hold the keys for the fieldByNumber table in DescriptorPool and the keys for the + extensionByNumber table in ExtensionRegistry. + + + + + Helper methods for throwing exceptions when preconditions are not met. + + + This class is used internally and by generated code; it is not particularly + expected to be used from application code, although nothing prevents it + from being used that way. + + + + + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + + + + + Throws an ArgumentNullException if the given value is null, otherwise + return the value to the caller. + + + This is equivalent to but without the type parameter + constraint. In most cases, the constraint is useful to prevent you from calling CheckNotNull + with a value type - but it gets in the way if either you want to use it with a nullable + value type, or you want to use it with an unconstrained type parameter. + + + + + Container for a set of custom options specified within a message, field etc. + + + + This type is publicly immutable, but internally mutable. It is only populated + by the descriptor parsing code - by the time any user code is able to see an instance, + it will be fully initialized. + + + If an option is requested using the incorrect method, an answer may still be returned: all + of the numeric types are represented internally using 64-bit integers, for example. It is up to + the caller to ensure that they make the appropriate method call for the option they're interested in. + Note that enum options are simply stored as integers, so the value should be fetched using + and then cast appropriately. + + + Repeated options are currently not supported. Asking for a single value of an option + which was actually repeated will return the last value, except for message types where + all the set values are merged together. + + + + + + Retrieves a Boolean value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 32-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 64-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field, + assuming a fixed-length representation. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 32-bit integer value for the specified option field, + assuming a zigzag encoding. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a signed 64-bit integer value for the specified option field, + assuming a zigzag encoding. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 32-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves an unsigned 64-bit integer value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a 32-bit floating point value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a 64-bit floating point value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a string value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a bytes value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + + Retrieves a message value for the specified option field. + + The field to fetch the value for. + The output variable to populate. + true if a suitable value for the field was found; false otherwise. + + + Holder for reflection information generated from google/protobuf/descriptor.proto + + + File descriptor for google/protobuf/descriptor.proto + + + + The protocol compiler can output a FileDescriptorSet containing the .proto + files it parses. + + + + Field number for the "file" field. + + + + Describes a complete .proto file. + + + + Field number for the "name" field. + + + + file name, relative to root of source tree + + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "package" field. + + + + e.g. "foo", "foo.bar", etc. + + + + Gets whether the "package" field is set + + + Clears the value of the "package" field + + + Field number for the "dependency" field. + + + + Names of files imported by this file. + + + + Field number for the "public_dependency" field. + + + + Indexes of the public imported files in the dependency list above. + + + + Field number for the "weak_dependency" field. + + + + Indexes of the weak imported files in the dependency list. + For Google-internal migration only. Do not use. + + + + Field number for the "message_type" field. + + + + All top-level definitions in this file. + + + + Field number for the "enum_type" field. + + + Field number for the "service" field. + + + Field number for the "extension" field. + + + Field number for the "options" field. + + + Field number for the "source_code_info" field. + + + + This field contains optional information about the original source code. + You may safely remove this entire field without harming runtime + functionality of the descriptors -- the information is needed only by + development tools. + + + + Field number for the "syntax" field. + + + + The syntax of the proto file. + The supported values are "proto2" and "proto3". + + + + Gets whether the "syntax" field is set + + + Clears the value of the "syntax" field + + + + Describes a message type. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "field" field. + + + Field number for the "extension" field. + + + Field number for the "nested_type" field. + + + Field number for the "enum_type" field. + + + Field number for the "extension_range" field. + + + Field number for the "oneof_decl" field. + + + Field number for the "options" field. + + + Field number for the "reserved_range" field. + + + Field number for the "reserved_name" field. + + + + Reserved field names, which may not be used by fields in the same message. + A given name may only be reserved once. + + + + Container for nested types declared in the DescriptorProto message type. + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Exclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + Field number for the "options" field. + + + + Range of reserved tag numbers. Reserved tag numbers may not be used by + fields or extension ranges in the same message. Reserved ranges may + not overlap. + + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Exclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + + Describes a field within a message. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "number" field. + + + Gets whether the "number" field is set + + + Clears the value of the "number" field + + + Field number for the "label" field. + + + Gets whether the "label" field is set + + + Clears the value of the "label" field + + + Field number for the "type" field. + + + + If type_name is set, this need not be set. If both this and type_name + are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + + + + Gets whether the "type" field is set + + + Clears the value of the "type" field + + + Field number for the "type_name" field. + + + + For message and enum types, this is the name of the type. If the name + starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + rules are used to find the type (i.e. first the nested types within this + message are searched, then within the parent, on up to the root + namespace). + + + + Gets whether the "type_name" field is set + + + Clears the value of the "type_name" field + + + Field number for the "extendee" field. + + + + For extensions, this is the name of the type being extended. It is + resolved in the same manner as type_name. + + + + Gets whether the "extendee" field is set + + + Clears the value of the "extendee" field + + + Field number for the "default_value" field. + + + + For numeric types, contains the original text representation of the value. + For booleans, "true" or "false". + For strings, contains the default text contents (not escaped in any way). + For bytes, contains the C escaped value. All bytes >= 128 are escaped. + TODO(kenton): Base-64 encode? + + + + Gets whether the "default_value" field is set + + + Clears the value of the "default_value" field + + + Field number for the "oneof_index" field. + + + + If set, gives the index of a oneof in the containing type's oneof_decl + list. This field is a member of that oneof. + + + + Gets whether the "oneof_index" field is set + + + Clears the value of the "oneof_index" field + + + Field number for the "json_name" field. + + + + JSON name of this field. The value is set by protocol compiler. If the + user has set a "json_name" option on this field, that option's value + will be used. Otherwise, it's deduced from the field's name by converting + it to camelCase. + + + + Gets whether the "json_name" field is set + + + Clears the value of the "json_name" field + + + Field number for the "options" field. + + + Field number for the "proto3_optional" field. + + + + If true, this is a proto3 "optional". When a proto3 field is optional, it + tracks presence regardless of field type. + + When proto3_optional is true, this field must be belong to a oneof to + signal to old proto3 clients that presence is tracked for this field. This + oneof is known as a "synthetic" oneof, and this field must be its sole + member (each proto3 optional field gets its own synthetic oneof). Synthetic + oneofs exist in the descriptor only, and do not generate any API. Synthetic + oneofs must be ordered after all "real" oneofs. + + For message fields, proto3_optional doesn't create any semantic change, + since non-repeated message fields always track presence. However it still + indicates the semantic detail of whether the user wrote "optional" or not. + This can be useful for round-tripping the .proto file. For consistency we + give message fields a synthetic oneof also, even though it is not required + to track presence. This is especially important because the parser can't + tell if a field is a message or an enum, so it must always create a + synthetic oneof. + + Proto2 optional fields do not set this flag, because they already indicate + optional with `LABEL_OPTIONAL`. + + + + Gets whether the "proto3_optional" field is set + + + Clears the value of the "proto3_optional" field + + + Container for nested types declared in the FieldDescriptorProto message type. + + + + 0 is reserved for errors. + Order is weird for historical reasons. + + + + + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + negative values are likely. + + + + + Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + negative values are likely. + + + + + Tag-delimited aggregate. + Group type is deprecated and not supported in proto3. However, Proto3 + implementations should still be able to parse the group wire format and + treat group fields as unknown fields. + + + + + Length-delimited aggregate. + + + + + New in version 2. + + + + + Uses ZigZag encoding. + + + + + Uses ZigZag encoding. + + + + + 0 is reserved for errors + + + + + Describes a oneof. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "options" field. + + + + Describes an enum type. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "value" field. + + + Field number for the "options" field. + + + Field number for the "reserved_range" field. + + + + Range of reserved numeric values. Reserved numeric values may not be used + by enum values in the same enum declaration. Reserved ranges may not + overlap. + + + + Field number for the "reserved_name" field. + + + + Reserved enum value names, which may not be reused. A given name may only + be reserved once. + + + + Container for nested types declared in the EnumDescriptorProto message type. + + + + Range of reserved numeric values. Reserved values may not be used by + entries in the same enum. Reserved ranges may not overlap. + + Note that this is distinct from DescriptorProto.ReservedRange in that it + is inclusive such that it can appropriately represent the entire int32 + domain. + + + + Field number for the "start" field. + + + + Inclusive. + + + + Gets whether the "start" field is set + + + Clears the value of the "start" field + + + Field number for the "end" field. + + + + Inclusive. + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + + Describes a value within an enum. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "number" field. + + + Gets whether the "number" field is set + + + Clears the value of the "number" field + + + Field number for the "options" field. + + + + Describes a service. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "method" field. + + + Field number for the "options" field. + + + + Describes a method of a service. + + + + Field number for the "name" field. + + + Gets whether the "name" field is set + + + Clears the value of the "name" field + + + Field number for the "input_type" field. + + + + Input and output type names. These are resolved in the same way as + FieldDescriptorProto.type_name, but must refer to a message type. + + + + Gets whether the "input_type" field is set + + + Clears the value of the "input_type" field + + + Field number for the "output_type" field. + + + Gets whether the "output_type" field is set + + + Clears the value of the "output_type" field + + + Field number for the "options" field. + + + Field number for the "client_streaming" field. + + + + Identifies if client streams multiple client messages + + + + Gets whether the "client_streaming" field is set + + + Clears the value of the "client_streaming" field + + + Field number for the "server_streaming" field. + + + + Identifies if server streams multiple server messages + + + + Gets whether the "server_streaming" field is set + + + Clears the value of the "server_streaming" field + + + Field number for the "java_package" field. + + + + Sets the Java package where classes generated from this .proto will be + placed. By default, the proto package is used, but this is often + inappropriate because proto packages do not normally start with backwards + domain names. + + + + Gets whether the "java_package" field is set + + + Clears the value of the "java_package" field + + + Field number for the "java_outer_classname" field. + + + + If set, all the classes from the .proto file are wrapped in a single + outer class with the given name. This applies to both Proto1 + (equivalent to the old "--one_java_file" option) and Proto2 (where + a .proto always translates to a single class, but you may want to + explicitly choose the class name). + + + + Gets whether the "java_outer_classname" field is set + + + Clears the value of the "java_outer_classname" field + + + Field number for the "java_multiple_files" field. + + + + If set true, then the Java code generator will generate a separate .java + file for each top-level message, enum, and service defined in the .proto + file. Thus, these types will *not* be nested inside the outer class + named by java_outer_classname. However, the outer class will still be + generated to contain the file's getDescriptor() method as well as any + top-level extensions defined in the file. + + + + Gets whether the "java_multiple_files" field is set + + + Clears the value of the "java_multiple_files" field + + + Field number for the "java_generate_equals_and_hash" field. + + + + This option does nothing. + + + + Gets whether the "java_generate_equals_and_hash" field is set + + + Clears the value of the "java_generate_equals_and_hash" field + + + Field number for the "java_string_check_utf8" field. + + + + If set true, then the Java2 code generator will generate code that + throws an exception whenever an attempt is made to assign a non-UTF-8 + byte sequence to a string field. + Message reflection will do the same. + However, an extension field still accepts non-UTF-8 byte sequences. + This option has no effect on when used with the lite runtime. + + + + Gets whether the "java_string_check_utf8" field is set + + + Clears the value of the "java_string_check_utf8" field + + + Field number for the "optimize_for" field. + + + Gets whether the "optimize_for" field is set + + + Clears the value of the "optimize_for" field + + + Field number for the "go_package" field. + + + + Sets the Go package where structs generated from this .proto will be + placed. If omitted, the Go package will be derived from the following: + - The basename of the package import path, if provided. + - Otherwise, the package statement in the .proto file, if present. + - Otherwise, the basename of the .proto file, without extension. + + + + Gets whether the "go_package" field is set + + + Clears the value of the "go_package" field + + + Field number for the "cc_generic_services" field. + + + + Should generic services be generated in each language? "Generic" services + are not specific to any particular RPC system. They are generated by the + main code generators in each language (without additional plugins). + Generic services were the only kind of service generation supported by + early versions of google.protobuf. + + Generic services are now considered deprecated in favor of using plugins + that generate code specific to your particular RPC system. Therefore, + these default to false. Old code which depends on generic services should + explicitly set them to true. + + + + Gets whether the "cc_generic_services" field is set + + + Clears the value of the "cc_generic_services" field + + + Field number for the "java_generic_services" field. + + + Gets whether the "java_generic_services" field is set + + + Clears the value of the "java_generic_services" field + + + Field number for the "py_generic_services" field. + + + Gets whether the "py_generic_services" field is set + + + Clears the value of the "py_generic_services" field + + + Field number for the "php_generic_services" field. + + + Gets whether the "php_generic_services" field is set + + + Clears the value of the "php_generic_services" field + + + Field number for the "deprecated" field. + + + + Is this file deprecated? + Depending on the target platform, this can emit Deprecated annotations + for everything in the file, or it will be completely ignored; in the very + least, this is a formalization for deprecating files. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "cc_enable_arenas" field. + + + + Enables the use of arenas for the proto messages in this file. This applies + only to generated classes for C++. + + + + Gets whether the "cc_enable_arenas" field is set + + + Clears the value of the "cc_enable_arenas" field + + + Field number for the "objc_class_prefix" field. + + + + Sets the objective c class prefix which is prepended to all objective c + generated classes from this .proto. There is no default. + + + + Gets whether the "objc_class_prefix" field is set + + + Clears the value of the "objc_class_prefix" field + + + Field number for the "csharp_namespace" field. + + + + Namespace for generated classes; defaults to the package. + + + + Gets whether the "csharp_namespace" field is set + + + Clears the value of the "csharp_namespace" field + + + Field number for the "swift_prefix" field. + + + + By default Swift generators will take the proto package and CamelCase it + replacing '.' with underscore and use that to prefix the types/symbols + defined. When this options is provided, they will use this value instead + to prefix the types/symbols defined. + + + + Gets whether the "swift_prefix" field is set + + + Clears the value of the "swift_prefix" field + + + Field number for the "php_class_prefix" field. + + + + Sets the php class prefix which is prepended to all php generated classes + from this .proto. Default is empty. + + + + Gets whether the "php_class_prefix" field is set + + + Clears the value of the "php_class_prefix" field + + + Field number for the "php_namespace" field. + + + + Use this option to change the namespace of php generated classes. Default + is empty. When this option is empty, the package name will be used for + determining the namespace. + + + + Gets whether the "php_namespace" field is set + + + Clears the value of the "php_namespace" field + + + Field number for the "php_metadata_namespace" field. + + + + Use this option to change the namespace of php generated metadata classes. + Default is empty. When this option is empty, the proto file name will be + used for determining the namespace. + + + + Gets whether the "php_metadata_namespace" field is set + + + Clears the value of the "php_metadata_namespace" field + + + Field number for the "ruby_package" field. + + + + Use this option to change the package of ruby generated classes. Default + is empty. When this option is not set, the package name will be used for + determining the ruby package. + + + + Gets whether the "ruby_package" field is set + + + Clears the value of the "ruby_package" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. + See the documentation for the "Options" section above. + + + + Container for nested types declared in the FileOptions message type. + + + + Generated classes can be optimized for speed or code size. + + + + + Generate complete code for parsing, serialization, + + + + + etc. + + + + + Generate code using MessageLite and the lite runtime. + + + + Field number for the "message_set_wire_format" field. + + + + Set true to use the old proto1 MessageSet wire format for extensions. + This is provided for backwards-compatibility with the MessageSet wire + format. You should not use this for any other reason: It's less + efficient, has fewer features, and is more complicated. + + The message must be defined exactly as follows: + message Foo { + option message_set_wire_format = true; + extensions 4 to max; + } + Note that the message cannot have any defined fields; MessageSets only + have extensions. + + All extensions of your type must be singular messages; e.g. they cannot + be int32s, enums, or repeated messages. + + Because this is an option, the above two restrictions are not enforced by + the protocol compiler. + + + + Gets whether the "message_set_wire_format" field is set + + + Clears the value of the "message_set_wire_format" field + + + Field number for the "no_standard_descriptor_accessor" field. + + + + Disables the generation of the standard "descriptor()" accessor, which can + conflict with a field of the same name. This is meant to make migration + from proto1 easier; new code should avoid fields named "descriptor". + + + + Gets whether the "no_standard_descriptor_accessor" field is set + + + Clears the value of the "no_standard_descriptor_accessor" field + + + Field number for the "deprecated" field. + + + + Is this message deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the message, or it will be completely ignored; in the very least, + this is a formalization for deprecating messages. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "map_entry" field. + + + + Whether the message is an automatically generated map entry type for the + maps field. + + For maps fields: + map<KeyType, ValueType> map_field = 1; + The parsed descriptor looks like: + message MapFieldEntry { + option map_entry = true; + optional KeyType key = 1; + optional ValueType value = 2; + } + repeated MapFieldEntry map_field = 1; + + Implementations may choose not to generate the map_entry=true message, but + use a native map in the target language to hold the keys and values. + The reflection APIs in such implementations still need to work as + if the field is a repeated message field. + + NOTE: Do not set the option in .proto files. Always use the maps syntax + instead. The option should only be implicitly set by the proto compiler + parser. + + + + Gets whether the "map_entry" field is set + + + Clears the value of the "map_entry" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "ctype" field. + + + + The ctype option instructs the C++ code generator to use a different + representation of the field than it normally would. See the specific + options below. This option is not yet implemented in the open source + release -- sorry, we'll try to include it in a future version! + + + + Gets whether the "ctype" field is set + + + Clears the value of the "ctype" field + + + Field number for the "packed" field. + + + + The packed option can be enabled for repeated primitive fields to enable + a more efficient representation on the wire. Rather than repeatedly + writing the tag and type for each element, the entire array is encoded as + a single length-delimited blob. In proto3, only explicit setting it to + false will avoid using packed encoding. + + + + Gets whether the "packed" field is set + + + Clears the value of the "packed" field + + + Field number for the "jstype" field. + + + + The jstype option determines the JavaScript type used for values of the + field. The option is permitted only for 64 bit integral and fixed types + (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + is represented as JavaScript string, which avoids loss of precision that + can happen when a large value is converted to a floating point JavaScript. + Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + use the JavaScript "number" type. The behavior of the default option + JS_NORMAL is implementation dependent. + + This option is an enum to permit additional types to be added, e.g. + goog.math.Integer. + + + + Gets whether the "jstype" field is set + + + Clears the value of the "jstype" field + + + Field number for the "lazy" field. + + + + Should this field be parsed lazily? Lazy applies only to message-type + fields. It means that when the outer message is initially parsed, the + inner message's contents will not be parsed but instead stored in encoded + form. The inner message will actually be parsed when it is first accessed. + + This is only a hint. Implementations are free to choose whether to use + eager or lazy parsing regardless of the value of this option. However, + setting this option true suggests that the protocol author believes that + using lazy parsing on this field is worth the additional bookkeeping + overhead typically needed to implement it. + + This option does not affect the public interface of any generated code; + all method signatures remain the same. Furthermore, thread-safety of the + interface is not affected by this option; const methods remain safe to + call from multiple threads concurrently, while non-const methods continue + to require exclusive access. + + Note that implementations may choose not to check required fields within + a lazy sub-message. That is, calling IsInitialized() on the outer message + may return true even if the inner message has missing required fields. + This is necessary because otherwise the inner message would have to be + parsed in order to perform the check, defeating the purpose of lazy + parsing. An implementation which chooses not to check required fields + must be consistent about it. That is, for any particular sub-message, the + implementation must either *always* check its required fields, or *never* + check its required fields, regardless of whether or not the message has + been parsed. + + + + Gets whether the "lazy" field is set + + + Clears the value of the "lazy" field + + + Field number for the "deprecated" field. + + + + Is this field deprecated? + Depending on the target platform, this can emit Deprecated annotations + for accessors, or it will be completely ignored; in the very least, this + is a formalization for deprecating fields. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "weak" field. + + + + For Google-internal migration only. Do not use. + + + + Gets whether the "weak" field is set + + + Clears the value of the "weak" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Container for nested types declared in the FieldOptions message type. + + + + Default mode. + + + + + Use the default type. + + + + + Use JavaScript strings. + + + + + Use JavaScript numbers. + + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "allow_alias" field. + + + + Set this option to true to allow mapping different tag names to the same + value. + + + + Gets whether the "allow_alias" field is set + + + Clears the value of the "allow_alias" field + + + Field number for the "deprecated" field. + + + + Is this enum deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum, or it will be completely ignored; in the very least, this + is a formalization for deprecating enums. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "deprecated" field. + + + + Is this enum value deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the enum value, or it will be completely ignored; in the very least, + this is a formalization for deprecating enum values. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "deprecated" field. + + + + Is this service deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the service, or it will be completely ignored; in the very least, + this is a formalization for deprecating services. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Field number for the "deprecated" field. + + + + Is this method deprecated? + Depending on the target platform, this can emit Deprecated annotations + for the method, or it will be completely ignored; in the very least, + this is a formalization for deprecating methods. + + + + Gets whether the "deprecated" field is set + + + Clears the value of the "deprecated" field + + + Field number for the "idempotency_level" field. + + + Gets whether the "idempotency_level" field is set + + + Clears the value of the "idempotency_level" field + + + Field number for the "uninterpreted_option" field. + + + + The parser stores options it doesn't recognize here. See above. + + + + Container for nested types declared in the MethodOptions message type. + + + + Is this method side-effect-free (or safe in HTTP parlance), or idempotent, + or neither? HTTP based RPC implementation may choose GET verb for safe + methods, and PUT verb for idempotent methods instead of the default POST. + + + + + implies idempotent + + + + + idempotent, but may have side effects + + + + + A message representing a option the parser does not recognize. This only + appears in options protos created by the compiler::Parser class. + DescriptorPool resolves these when building Descriptor objects. Therefore, + options protos in descriptor objects (e.g. returned by Descriptor::options(), + or produced by Descriptor::CopyTo()) will never have UninterpretedOptions + in them. + + + + Field number for the "name" field. + + + Field number for the "identifier_value" field. + + + + The value of the uninterpreted option, in whatever type the tokenizer + identified it as during parsing. Exactly one of these should be set. + + + + Gets whether the "identifier_value" field is set + + + Clears the value of the "identifier_value" field + + + Field number for the "positive_int_value" field. + + + Gets whether the "positive_int_value" field is set + + + Clears the value of the "positive_int_value" field + + + Field number for the "negative_int_value" field. + + + Gets whether the "negative_int_value" field is set + + + Clears the value of the "negative_int_value" field + + + Field number for the "double_value" field. + + + Gets whether the "double_value" field is set + + + Clears the value of the "double_value" field + + + Field number for the "string_value" field. + + + Gets whether the "string_value" field is set + + + Clears the value of the "string_value" field + + + Field number for the "aggregate_value" field. + + + Gets whether the "aggregate_value" field is set + + + Clears the value of the "aggregate_value" field + + + Container for nested types declared in the UninterpretedOption message type. + + + + The name of the uninterpreted option. Each string represents a segment in + a dot-separated name. is_extension is true iff a segment represents an + extension (denoted with parentheses in options specs in .proto files). + E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents + "foo.(bar.baz).qux". + + + + Field number for the "name_part" field. + + + Gets whether the "name_part" field is set + + + Clears the value of the "name_part" field + + + Field number for the "is_extension" field. + + + Gets whether the "is_extension" field is set + + + Clears the value of the "is_extension" field + + + + Encapsulates information about the original source file from which a + FileDescriptorProto was generated. + + + + Field number for the "location" field. + + + + A Location identifies a piece of source code in a .proto file which + corresponds to a particular definition. This information is intended + to be useful to IDEs, code indexers, documentation generators, and similar + tools. + + For example, say we have a file like: + message Foo { + optional string foo = 1; + } + Let's look at just the field definition: + optional string foo = 1; + ^ ^^ ^^ ^ ^^^ + a bc de f ghi + We have the following locations: + span path represents + [a,i) [ 4, 0, 2, 0 ] The whole field definition. + [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + + Notes: + - A location may refer to a repeated field itself (i.e. not to any + particular index within it). This is used whenever a set of elements are + logically enclosed in a single code segment. For example, an entire + extend block (possibly containing multiple extension definitions) will + have an outer location whose path refers to the "extensions" repeated + field without an index. + - Multiple locations may have the same path. This happens when a single + logical declaration is spread out across multiple places. The most + obvious example is the "extend" block again -- there may be multiple + extend blocks in the same scope, each of which will have the same path. + - A location's span is not always a subset of its parent's span. For + example, the "extendee" of an extension declaration appears at the + beginning of the "extend" block and is shared by all extensions within + the block. + - Just because a location's span is a subset of some other location's span + does not mean that it is a descendant. For example, a "group" defines + both a type and a field in a single declaration. Thus, the locations + corresponding to the type and field and their components will overlap. + - Code which tries to interpret locations should probably be designed to + ignore those that it doesn't understand, as more types of locations could + be recorded in the future. + + + + Container for nested types declared in the SourceCodeInfo message type. + + + Field number for the "path" field. + + + + Identifies which part of the FileDescriptorProto was defined at this + location. + + Each element is a field number or an index. They form a path from + the root FileDescriptorProto to the place where the definition. For + example, this path: + [ 4, 3, 2, 7, 1 ] + refers to: + file.message_type(3) // 4, 3 + .field(7) // 2, 7 + .name() // 1 + This is because FileDescriptorProto.message_type has field number 4: + repeated DescriptorProto message_type = 4; + and DescriptorProto.field has field number 2: + repeated FieldDescriptorProto field = 2; + and FieldDescriptorProto.name has field number 1: + optional string name = 1; + + Thus, the above path gives the location of a field name. If we removed + the last element: + [ 4, 3, 2, 7 ] + this path refers to the whole field declaration (from the beginning + of the label to the terminating semicolon). + + + + Field number for the "span" field. + + + + Always has exactly three or four elements: start line, start column, + end line (optional, otherwise assumed same as start line), end column. + These are packed into a single field for efficiency. Note that line + and column numbers are zero-based -- typically you will want to add + 1 to each before displaying to a user. + + + + Field number for the "leading_comments" field. + + + + If this SourceCodeInfo represents a complete declaration, these are any + comments appearing before and after the declaration which appear to be + attached to the declaration. + + A series of line comments appearing on consecutive lines, with no other + tokens appearing on those lines, will be treated as a single comment. + + leading_detached_comments will keep paragraphs of comments that appear + before (but not connected to) the current element. Each paragraph, + separated by empty lines, will be one comment element in the repeated + field. + + Only the comment content is provided; comment markers (e.g. //) are + stripped out. For block comments, leading whitespace and an asterisk + will be stripped from the beginning of each line other than the first. + Newlines are included in the output. + + Examples: + + optional int32 foo = 1; // Comment attached to foo. + // Comment attached to bar. + optional int32 bar = 2; + + optional string baz = 3; + // Comment attached to baz. + // Another line attached to baz. + + // Comment attached to qux. + // + // Another line attached to qux. + optional double qux = 4; + + // Detached comment for corge. This is not leading or trailing comments + // to qux or corge because there are blank lines separating it from + // both. + + // Detached comment for corge paragraph 2. + + optional string corge = 5; + /* Block comment attached + * to corge. Leading asterisks + * will be removed. */ + /* Block comment attached to + * grault. */ + optional int32 grault = 6; + + // ignored detached comments. + + + + Gets whether the "leading_comments" field is set + + + Clears the value of the "leading_comments" field + + + Field number for the "trailing_comments" field. + + + Gets whether the "trailing_comments" field is set + + + Clears the value of the "trailing_comments" field + + + Field number for the "leading_detached_comments" field. + + + + Describes the relationship between generated code and its original source + file. A GeneratedCodeInfo message is associated with only one generated + source file, but may contain references to different source .proto files. + + + + Field number for the "annotation" field. + + + + An Annotation connects some span of text in generated code to an element + of its generating .proto file. + + + + Container for nested types declared in the GeneratedCodeInfo message type. + + + Field number for the "path" field. + + + + Identifies the element in the original source .proto file. This field + is formatted the same as SourceCodeInfo.Location.path. + + + + Field number for the "source_file" field. + + + + Identifies the filesystem path to the original source .proto. + + + + Gets whether the "source_file" field is set + + + Clears the value of the "source_file" field + + + Field number for the "begin" field. + + + + Identifies the starting offset in bytes in the generated code + that relates to the identified object. + + + + Gets whether the "begin" field is set + + + Clears the value of the "begin" field + + + Field number for the "end" field. + + + + Identifies the ending offset in bytes in the generated code that + relates to the identified offset. The end offset should be one past + the last relevant byte (so the length of the text = end - begin). + + + + Gets whether the "end" field is set + + + Clears the value of the "end" field + + + + Base class for nearly all descriptors, providing common functionality. + + + + + The index of this descriptor within its parent descriptor. + + + This returns the index of this descriptor within its parent, for + this descriptor's type. (There can be duplicate values for different + types, e.g. one enum type with index 0 and one message type with index 0.) + + + + + Returns the name of the entity (field, message etc) being described. + + + + + The fully qualified name of the descriptor's target. + + + + + The file this descriptor was declared in. + + + + + The declaration information about the descriptor, or null if no declaration information + is available for this descriptor. + + + This information is typically only available for dynamically loaded descriptors, + for example within a protoc plugin where the full descriptors, including source info, + are passed to the code by protoc. + + + + + Retrieves the list of nested descriptors corresponding to the given field number, if any. + If the field is unknown or not a nested descriptor list, return null to terminate the search. + The default implementation returns null. + + + + + Provides additional information about the declaration of a descriptor, + such as source location and comments. + + + + + The descriptor this declaration relates to. + + + + + The start line of the declaration within the source file. This value is 1-based. + + + + + The start column of the declaration within the source file. This value is 1-based. + + + + + // The end line of the declaration within the source file. This value is 1-based. + + + + + The end column of the declaration within the source file. This value is 1-based, and + exclusive. (The final character of the declaration is on the column before this value.) + + + + + Comments appearing before the declaration. Never null, but may be empty. Multi-line comments + are represented as a newline-separated string. Leading whitespace and the comment marker ("//") + are removed from each line. + + + + + Comments appearing after the declaration. Never null, but may be empty. Multi-line comments + are represented as a newline-separated string. Leading whitespace and the comment marker ("//") + are removed from each line. + + + + + Comments appearing before the declaration, but separated from it by blank + lines. Each string represents a newline-separated paragraph of comments. + Leading whitespace and the comment marker ("//") are removed from each line. + The list is never null, but may be empty. Likewise each element is never null, but may be empty. + + + + + Contains lookup tables containing all the descriptors defined in a particular file. + + + + + Finds a symbol of the given name within the pool. + + The type of symbol to look for + Fully-qualified name to look up + The symbol with the given name and type, + or null if the symbol doesn't exist or has the wrong type + + + + Adds a package to the symbol tables. If a package by the same name + already exists, that is fine, but if some other kind of symbol + exists under the same name, an exception is thrown. If the package + has multiple components, this also adds the parent package(s). + + + + + Adds a symbol to the symbol table. + + The symbol already existed + in the symbol table. + + + + Verifies that the descriptor's name is valid (i.e. it contains + only letters, digits and underscores, and does not start with a digit). + + + + + + Returns the field with the given number in the given descriptor, + or null if it can't be found. + + + + + Adds a field to the fieldsByNumber table. + + A field with the same + containing type and number already exists. + + + + Adds an enum value to the enumValuesByNumber table. If an enum value + with the same type and number already exists, this method does nothing. + (This is allowed; the first value defined with the number takes precedence.) + + + + + Looks up a descriptor by name, relative to some other descriptor. + The name may be fully-qualified (with a leading '.'), partially-qualified, + or unqualified. C++-like name lookup semantics are used to search for the + matching descriptor. + + + This isn't heavily optimized, but it's only used during cross linking anyway. + If it starts being used more widely, we should look at performance more carefully. + + + + + Internal class containing utility methods when working with descriptors. + + + + + Equivalent to Func[TInput, int, TOutput] but usable in .NET 2.0. Only used to convert + arrays. + + + + + Converts the given array into a read-only list, applying the specified conversion to + each input element. + + + + + Thrown when building descriptors fails because the source DescriptorProtos + are not valid. + + + + + The full name of the descriptor where the error occurred. + + + + + A human-readable description of the error. (The Message property + is made up of the descriptor's name and this description.) + + + + + Descriptor for an enum type in a .proto file. + + + + + The brief name of the descriptor's target. + + + + + The CLR type for this enum. For generated code, this will be a CLR enum type. + + + + + If this is a nested type, get the outer descriptor, otherwise null. + + + + + An unmodifiable list of defined value descriptors for this enum. + + + + + Finds an enum value by number. If multiple enum values have the + same number, this returns the first defined value with that number. + If there is no value for the given number, this returns null. + + + + + Finds an enum value by name. + + The unqualified name of the value (e.g. "FOO"). + The value's descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this enum. + + + + + The EnumOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value enum option for this descriptor + + + + + Gets a repeated value enum option for this descriptor + + + + + Descriptor for a single enum value within an enum in a .proto file. + + + + + Returns the name of the enum value described by this object. + + + + + Returns the number associated with this enum value. + + + + + Returns the enum descriptor that this value is part of. + + + + + The (possibly empty) set of custom options for this enum value. + + + + + The EnumValueOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value enum value option for this descriptor + + + + + Gets a repeated value enum value option for this descriptor + + + + + A collection to simplify retrieving the descriptors of extensions in a descriptor for a message + + + + + Returns a readonly list of all the extensions defined in this type in + the order they were defined in the source .proto file + + + + + Returns a readonly list of all the extensions define in this type that extend + the provided descriptor type in the order they were defined in the source .proto file + + + + + Returns a readonly list of all the extensions define in this type that extend + the provided descriptor type in accending field order + + + + + Base class for field accessors. + + + + + Descriptor for a field or extension within a message in a .proto file. + + + + + Get the field's containing message type, or null if it is a field defined at the top level of a file as an extension. + + + + + Returns the oneof containing this field, or null if it is not part of a oneof. + + + + + Returns the oneof containing this field if it's a "real" oneof, or null if either this + field is not part of a oneof, or the oneof is synthetic. + + + + + The effective JSON name for this field. This is usually the lower-camel-cased form of the field name, + but can be overridden using the json_name option in the .proto file. + + + + + Indicates whether this field supports presence, either implicitly (e.g. due to it being a message + type field) or explicitly via Has/Clear members. If this returns true, it is safe to call + and + on this field's accessor with a suitable message. + + + + + An extension identifier for this field, or null if this field isn't an extension. + + + + + The brief name of the descriptor's target. + + + + + Returns the accessor for this field. + + + + While a describes the field, it does not provide + any way of obtaining or changing the value of the field within a specific message; + that is the responsibility of the accessor. + + + In descriptors for generated code, the value returned by this property will be non-null for all + regular fields. However, if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, and the value of the map field itself is represented by a dictionary in the + reflection API. There are never instances of those "hidden" messages, so no accessor is provided + and this property will return null. + + + In dynamically loaded descriptors, the value returned by this property will current be null; + if and when dynamic messages are supported, it will return a suitable accessor to work with + them. + + + + + + Maps a field type as included in the .proto file to a FieldType. + + + + + Returns true if this field is a repeated field; false otherwise. + + + + + Returns true if this field is a required field; false otherwise. + + + + + Returns true if this field is a map field; false otherwise. + + + + + Returns true if this field is a packed, repeated field; false otherwise. + + + + + Returns true if this field extends another message type; false otherwise. + + + + + Returns the type of the field. + + + + + Returns the field number declared in the proto file. + + + + + Compares this descriptor with another one, ordering in "canonical" order + which simply means ascending order by field number. + must be a field of the same type, i.e. the of + both fields must be the same. + + + + + For enum fields, returns the field's type. + + + + + For embedded message and group fields, returns the field's type. + + + + + For extension fields, returns the extended type + + + + + The (possibly empty) set of custom options for this field. + + + + + The FieldOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value field option for this descriptor + + + + + Gets a repeated value field option for this descriptor + + + + + Look up and cross-link all field types etc. + + + + + Enumeration of all the possible field types. + + + + + The double field type. + + + + + The float field type. + + + + + The int64 field type. + + + + + The uint64 field type. + + + + + The int32 field type. + + + + + The fixed64 field type. + + + + + The fixed32 field type. + + + + + The bool field type. + + + + + The string field type. + + + + + The field type used for groups. + + + + + The field type used for message fields. + + + + + The bytes field type. + + + + + The uint32 field type. + + + + + The sfixed32 field type. + + + + + The sfixed64 field type. + + + + + The sint32 field type. + + + + + The sint64 field type. + + + + + The field type used for enum fields. + + + + + The syntax of a .proto file + + + + + Proto2 syntax + + + + + Proto3 syntax + + + + + An unknown declared syntax + + + + + Describes a .proto file, including everything defined within. + IDescriptor is implemented such that the File property returns this descriptor, + and the FullName is the same as the Name. + + + + + Computes the full name of a descriptor within this file, with an optional parent message. + + + + + Extracts public dependencies from direct dependencies. This is a static method despite its + first parameter, as the value we're in the middle of constructing is only used for exceptions. + + + + + The descriptor in its protocol message representation. + + + + + The syntax of the file + + + + + The file name. + + + + + The package as declared in the .proto file. This may or may not + be equivalent to the .NET namespace of the generated classes. + + + + + Unmodifiable list of top-level message types declared in this file. + + + + + Unmodifiable list of top-level enum types declared in this file. + + + + + Unmodifiable list of top-level services declared in this file. + + + + + Unmodifiable list of top-level extensions declared in this file. + Note that some extensions may be incomplete (FieldDescriptor.Extension may be null) + if this descriptor was generated using a version of protoc that did not fully + support extensions in C#. + + + + + Unmodifiable list of this file's dependencies (imports). + + + + + Unmodifiable list of this file's public dependencies (public imports). + + + + + The original serialized binary form of this descriptor. + + + + + Implementation of IDescriptor.FullName - just returns the same as Name. + + + + + Implementation of IDescriptor.File - just returns this descriptor. + + + + + Pool containing symbol descriptors. + + + + + Finds a type (message, enum, service or extension) in the file by name. Does not find nested types. + + The unqualified type name to look for. + The type of descriptor to look for + The type's descriptor, or null if not found. + + + + Builds a FileDescriptor from its protocol buffer representation. + + The original serialized descriptor data. + We have only limited proto2 support, so serializing FileDescriptorProto + would not necessarily give us this. + The protocol message form of the FileDescriptor. + FileDescriptors corresponding to all of the + file's dependencies, in the exact order listed in the .proto file. May be null, + in which case it is treated as an empty array. + Whether unknown dependencies are ignored (true) or cause an exception to be thrown (false). + Details about generated code, for the purposes of reflection. + If is not + a valid descriptor. This can occur for a number of reasons, such as a field + having an undefined type or because two messages were defined with the same name. + + + + Creates a descriptor for generated code. + + + This method is only designed to be used by the results of generating code with protoc, + which creates the appropriate dependencies etc. It has to be public because the generated + code is "external", but should not be called directly by end users. + + + + + Converts the given descriptor binary data into FileDescriptor objects. + Note: reflection using the returned FileDescriptors is not currently supported. + + The binary file descriptor proto data. Must not be null, and any + dependencies must come before the descriptor which depends on them. (If A depends on B, and B + depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible + with the order in which protoc provides descriptors to plugins. + The file descriptors corresponding to . + + + + Returns a that represents this instance. + + + A that represents this instance. + + + + + Returns the file descriptor for descriptor.proto. + + + This is used for protos which take a direct dependency on descriptor.proto, typically for + annotations. While descriptor.proto is a proto2 file, it is built into the Google.Protobuf + runtime for reflection purposes. The messages are internal to the runtime as they would require + proto2 semantics for full support, but the file descriptor is available via this property. The + C# codegen in protoc automatically uses this property when it detects a dependency on descriptor.proto. + + + The file descriptor for descriptor.proto. + + + + + The (possibly empty) set of custom options for this file. + + + + + The FileOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value file option for this descriptor + + + + + Gets a repeated value file option for this descriptor + + + + + Performs initialization for the given generic type argument. + + + This method is present for the sake of AOT compilers. It allows code (whether handwritten or generated) + to make calls into the reflection machinery of this library to express an intention to use that type + reflectively (e.g. for JSON parsing and formatting). The call itself does almost nothing, but AOT compilers + attempting to determine which generic type arguments need to be handled will spot the code path and act + accordingly. + + The type to force initialization for. + + + + Extra information provided by generated code when initializing a message or file descriptor. + These are constructed as required, and are not long-lived. Hand-written code should + never need to use this type. + + + + + Irrelevant for file descriptors; the CLR type for the message for message descriptors. + + + + + Irrelevant for file descriptors; the parser for message descriptors. + + + + + Irrelevant for file descriptors; the CLR property names (in message descriptor field order) + for fields in the message for message descriptors. + + + + + The extensions defined within this file/message descriptor + + + + + Irrelevant for file descriptors; the CLR property "base" names (in message descriptor oneof order) + for oneofs in the message for message descriptors. It is expected that for a oneof name of "Foo", + there will be a "FooCase" property and a "ClearFoo" method. + + + + + The reflection information for types within this file/message descriptor. Elements may be null + if there is no corresponding generated type, e.g. for map entry types. + + + + + The CLR types for enums within this file/message descriptor. + + + + + Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. + Each array parameter may be null, to indicate a lack of values. + The parameter order is designed to make it feasible to format the generated code readably. + + + + + Creates a GeneratedClrTypeInfo for a message descriptor, with nested types, nested enums, the CLR type, property names and oneof names. + Each array parameter may be null, to indicate a lack of values. + The parameter order is designed to make it feasible to format the generated code readably. + + + + + Creates a GeneratedClrTypeInfo for a file descriptor, with only types, enums, and extensions. + + + + + Creates a GeneratedClrTypeInfo for a file descriptor, with only types and enums. + + + + + Interface implemented by all descriptor types. + + + + + Returns the name of the entity (message, field etc) being described. + + + + + Returns the fully-qualified name of the entity being described. + + + + + Returns the descriptor for the .proto file that this entity is part of. + + + + + Allows fields to be reflectively accessed. + + + + + Returns the descriptor associated with this field. + + + + + Clears the field in the specified message. (For repeated fields, + this clears the list.) + + + + + Fetches the field value. For repeated values, this will be an + implementation. For map values, this will be an + implementation. + + + + + Indicates whether the field in the specified message is set. + For proto3 fields that aren't explicitly optional, this throws an + + + + + Mutator for single "simple" fields only. + + + Repeated fields are mutated by fetching the value and manipulating it as a list. + Map fields are mutated by fetching the value and manipulating it as a dictionary. + + The field is not a "simple" field. + + + + Accessor for map fields. + + + + + Describes a message type. + + + + + The brief name of the descriptor's target. + + + + + The CLR type used to represent message instances from this descriptor. + + + + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. This is not represented in any + generated type, so this property will return null in such cases. + + + For wrapper types ( and the like), the type returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + + + + + + A parser for this message type. + + + + As is not generic, this cannot be statically + typed to the relevant type, but it should produce objects of a type compatible with . + + + The value returned by this property will be non-null for all regular fields. However, + if a message containing a map field is introspected, the list of nested messages will include + an auto-generated nested key/value pair message for the field. No message parser object is created for + such messages, so this property will return null in such cases. + + + For wrapper types ( and the like), the parser returned here + will be the generated message type, not the native type used by reflection for fields of those types. Code + using reflection should call to determine whether a message descriptor represents + a wrapper type, and handle the result appropriately. + + + + + + Returns whether this message is one of the "well known types" which may have runtime/protoc support. + + + + + Returns whether this message is one of the "wrapper types" used for fields which represent primitive values + with the addition of presence. + + + + + If this is a nested type, get the outer descriptor, otherwise null. + + + + + A collection of fields, which can be retrieved by name or field number. + + + + + An unmodifiable list of extensions defined in this message's scope. + Note that some extensions may be incomplete (FieldDescriptor.Extension may be null) + if they are declared in a file generated using a version of protoc that did not fully + support extensions in C#. + + + + + An unmodifiable list of this message type's nested types. + + + + + An unmodifiable list of this message type's enum types. + + + + + An unmodifiable list of the "oneof" field collections in this message type. + All "real" oneofs (where returns false) + come before synthetic ones. + + + + + The number of real "oneof" descriptors in this message type. Every element in + with an index less than this will have a property value + of false; every element with an index greater than or equal to this will have a + property value of true. + + + + + Finds a field by field name. + + The unqualified name of the field (e.g. "foo"). + The field's descriptor, or null if not found. + + + + Finds a field by field number. + + The field number within this message type. + The field's descriptor, or null if not found. + + + + Finds a nested descriptor by name. The is valid for fields, nested + message types, oneofs and enums. + + The unqualified name of the descriptor, e.g. "Foo" + The descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this message. + + + + + The MessageOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value message option for this descriptor + + + + + Gets a repeated value message option for this descriptor + + + + + Looks up and cross-links all fields and nested types. + + + + + A collection to simplify retrieving the field accessor for a particular field. + + + + + Returns the fields in the message as an immutable list, in the order in which they + are declared in the source .proto file. + + + + + Returns the fields in the message as an immutable list, in ascending field number + order. Field numbers need not be contiguous, so there is no direct mapping from the + index in the list to the field number; to retrieve a field by field number, it is better + to use the indexer. + + + + + Returns a read-only dictionary mapping the field names in this message as they're available + in the JSON representation to the field descriptors. For example, a field foo_bar + in the message would result two entries, one with a key fooBar and one with a key + foo_bar, both referring to the same field. + + + + + Retrieves the descriptor for the field with the given number. + + Number of the field to retrieve the descriptor for + The accessor for the given field + The message descriptor does not contain a field + with the given number + + + + Retrieves the descriptor for the field with the given name. + + Name of the field to retrieve the descriptor for + The descriptor for the given field + The message descriptor does not contain a field + with the given name + + + + Describes a single method in a service. + + + + + The service this method belongs to. + + + + + The method's input type. + + + + + The method's input type. + + + + + Indicates if client streams multiple requests. + + + + + Indicates if server streams multiple responses. + + + + + The (possibly empty) set of custom options for this method. + + + + + The MethodOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value method option for this descriptor + + + + + Gets a repeated value method option for this descriptor + + + + + The brief name of the descriptor's target. + + + + + Reflection access for a oneof, allowing clear and "get case" actions. + + + + + Gets the descriptor for this oneof. + + + The descriptor of the oneof. + + + + + Clears the oneof in the specified message. + + + + + Indicates which field in the oneof is set for specified message + + + + + Describes a "oneof" field collection in a message type: a set of + fields of which at most one can be set in any particular message. + + + + + The brief name of the descriptor's target. + + + + + Gets the message type containing this oneof. + + + The message type containing this oneof. + + + + + Gets the fields within this oneof, in declaration order. + + + The fields within this oneof, in declaration order. + + + + + Returns true if this oneof is a synthetic oneof containing a proto3 optional field; + false otherwise. + + + + + Gets an accessor for reflective access to the values associated with the oneof + in a particular message. + + + + In descriptors for generated code, the value returned by this property will always be non-null. + + + In dynamically loaded descriptors, the value returned by this property will current be null; + if and when dynamic messages are supported, it will return a suitable accessor to work with + them. + + + + The accessor used for reflective access. + + + + + The (possibly empty) set of custom options for this oneof. + + + + + The OneofOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value oneof option for this descriptor + + + + + Gets a repeated value oneof option for this descriptor + + + + + Specifies the original name (in the .proto file) of a named element, + such as an enum value. + + + + + The name of the element in the .proto file. + + + + + If the name is preferred in the .proto file. + + + + + Constructs a new attribute instance for the given name. + + The name of the element in the .proto file. + + + + Represents a package in the symbol table. We use PackageDescriptors + just as placeholders so that someone cannot define, say, a message type + that has the same name as an existing package. + + + + + The methods in this class are somewhat evil, and should not be tampered with lightly. + Basically they allow the creation of relatively weakly typed delegates from MethodInfos + which are more strongly typed. They do this by creating an appropriate strongly typed + delegate from the MethodInfo, and then calling that within an anonymous method. + Mind-bending stuff (at least to your humble narrator) but the resulting delegates are + very fast compared with calling Invoke later on. + + + + + Empty Type[] used when calling GetProperty to force property instead of indexer fetching. + + + + + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to object. + + The method to create a delegate for, which must be declared in an IMessage + implementation. + + + + Creates a delegate which will cast the argument to the type that declares the method, + call the method on it, then convert the result to the specified type. The method is expected + to actually return an enum (because of where we're calling it - for oneof cases). Sometimes that + means we need some extra work to perform conversions. + + The method to create a delegate for, which must be declared in an IMessage + implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + the type that declares the method, and the second argument to the first parameter type of the method. + + The method to create a delegate for, which must be declared in an IMessage + implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + type that declares the method. + + The method to create a delegate for, which must be declared in an IMessage + implementation. + + + + Creates a delegate which will execute the given method after casting the first argument to + the type that declares the method, and the second argument to the first parameter type of the method. + + + + + Creates a reflection helper for the given type arguments. Currently these are created on demand + rather than cached; this will be "busy" when initially loading a message's descriptor, but after that + they can be garbage collected. We could cache them by type if that proves to be important, but creating + an object is pretty cheap. + + + + + Accessor for repeated fields. + + + + + Describes a service type. + + + + + The brief name of the descriptor's target. + + + + + An unmodifiable list of methods in this service. + + + + + Finds a method by name. + + The unqualified name of the method (e.g. "Foo"). + The method's descriptor, or null if not found. + + + + The (possibly empty) set of custom options for this service. + + + + + The ServiceOptions, defined in descriptor.proto. + If the options message is not present (i.e. there are no options), null is returned. + Custom options can be retrieved as extensions of the returned message. + NOTE: A defensive copy is created each time this property is retrieved. + + + + + Gets a single value service option for this descriptor + + + + + Gets a repeated value service option for this descriptor + + + + + Accessor for single fields. + + + + + An immutable registry of types which can be looked up by their full name. + + + + + An empty type registry, containing no types. + + + + + Attempts to find a message descriptor by its full name. + + The full name of the message, which is the dot-separated + combination of package, containing messages and message name + The message descriptor corresponding to or null + if there is no such message descriptor. + + + + Creates a type registry from the specified set of file descriptors. + + + This is a convenience overload for + to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2). + + The set of files to include in the registry. Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the specified set of file descriptors. + + + All message types within all the specified files are added to the registry, and + the dependencies of the specified files are also added, recursively. + + The set of files to include in the registry. Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + + + This is a convenience overload for + to allow calls such as TypeRegistry.FromFiles(descriptor1, descriptor2). + + The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values. + A type registry for the given files. + + + + Creates a type registry from the file descriptor parents of the specified set of message descriptors. + + + The specified message descriptors are only used to identify their file descriptors; the returned registry + contains all the types within the file descriptors which contain the specified message descriptors (and + the dependencies of those files), not just the specified messages. + + The set of message descriptors to use to identify file descriptors to include in the registry. + Must not contain null values. + A type registry for the given files. + + + + Builder class which isn't exposed, but acts as a convenient alternative to passing round two dictionaries in recursive calls. + + + + + Represents a single field in an UnknownFieldSet. + + An UnknownField consists of four lists of values. The lists correspond + to the four "wire types" used in the protocol buffer binary format. + Normally, only one of the four lists will contain any values, since it + is impossible to define a valid message type that declares two different + types for the same field number. However, the code is designed to allow + for the case where the same unknown field number is encountered using + multiple different wire types. + + + + + + Creates a new UnknownField. + + + + + Checks if two unknown field are equal. + + + + + Get the hash code of the unknown field. + + + + + Serializes the field, including the field number, and writes it to + + + The unknown field number. + The CodedOutputStream to write to. + + + + Computes the number of bytes required to encode this field, including field + number. + + + + + Merge the values in into this field. For each list + of values, 's values are append to the ones in this + field. + + + + + Returns a new list containing all of the given specified values from + both the and lists. + If is null and is empty, + null is returned. Otherwise, either a new list is created (if + is null) or the elements of are added to . + + + + + Adds a varint value. + + + + + Adds a fixed32 value. + + + + + Adds a fixed64 value. + + + + + Adds a length-delimited value. + + + + + Adds to the , creating + a new list if is null. The list is returned - either + the original reference or the new list. + + + + + Used to keep track of fields which were seen when parsing a protocol message + but whose field numbers or types are unrecognized. This most frequently + occurs when new fields are added to a message type and then messages containing + those fields are read by old software that was built before the new types were + added. + + Most users will never need to use this class directly. + + + + + Creates a new UnknownFieldSet. + + + + + Checks whether or not the given field number is present in the set. + + + + + Serializes the set and writes it to . + + + + + Gets the number of bytes required to encode this set. + + + + + Checks if two unknown field sets are equal. + + + + + Gets the unknown field set's hash code. + + + + + Adds a field to the set. If a field with the same number already exists, it + is replaced. + + + + + Parse a single field from and merge it + into this set. + + The coded input stream containing the field + false if the tag is an "end group" tag, true otherwise + + + + Create a new UnknownFieldSet if unknownFields is null. + Parse a single field from and merge it + into unknownFields. If is configured to discard unknown fields, + will be returned as-is and the field will be skipped. + + The UnknownFieldSet which need to be merged + The coded input stream containing the field + The merged UnknownFieldSet + + + + Merges the fields from into this set. + If a field number exists in both sets, the values in + will be appended to the values in this set. + + + + + Created a new UnknownFieldSet to if + needed and merges the fields from into the first set. + If a field number exists in both sets, the values in + will be appended to the values in this set. + + + + + Adds a field to the unknown field set. If a field with the same + number already exists, the two are merged. + + + + + Clone an unknown field set from . + + + + Holder for reflection information generated from google/protobuf/any.proto + + + File descriptor for google/protobuf/any.proto + + + + `Any` contains an arbitrary serialized protocol buffer message along with a + URL that describes the type of the serialized message. + + Protobuf library provides support to pack/unpack Any values in the form + of utility functions or additional generated methods of the Any type. + + Example 1: Pack and unpack a message in C++. + + Foo foo = ...; + Any any; + any.PackFrom(foo); + ... + if (any.UnpackTo(&foo)) { + ... + } + + Example 2: Pack and unpack a message in Java. + + Foo foo = ...; + Any any = Any.pack(foo); + ... + if (any.is(Foo.class)) { + foo = any.unpack(Foo.class); + } + + Example 3: Pack and unpack a message in Python. + + foo = Foo(...) + any = Any() + any.Pack(foo) + ... + if any.Is(Foo.DESCRIPTOR): + any.Unpack(foo) + ... + + Example 4: Pack and unpack a message in Go + + foo := &pb.Foo{...} + any, err := ptypes.MarshalAny(foo) + ... + foo := &pb.Foo{} + if err := ptypes.UnmarshalAny(any, foo); err != nil { + ... + } + + The pack methods provided by protobuf library will by default use + 'type.googleapis.com/full.type.name' as the type URL and the unpack + methods only use the fully qualified type name after the last '/' + in the type URL, for example "foo.bar.com/x/y.z" will yield type + name "y.z". + + JSON + ==== + The JSON representation of an `Any` value uses the regular + representation of the deserialized, embedded message, with an + additional field `@type` which contains the type URL. Example: + + package google.profile; + message Person { + string first_name = 1; + string last_name = 2; + } + + { + "@type": "type.googleapis.com/google.profile.Person", + "firstName": <string>, + "lastName": <string> + } + + If the embedded message type is well-known and has a custom JSON + representation, that representation will be embedded adding a field + `value` which holds the custom JSON in addition to the `@type` + field. Example (for message [google.protobuf.Duration][]): + + { + "@type": "type.googleapis.com/google.protobuf.Duration", + "value": "1.212s" + } + + + + Field number for the "type_url" field. + + + + A URL/resource name that uniquely identifies the type of the serialized + protocol buffer message. This string must contain at least + one "/" character. The last segment of the URL's path must represent + the fully qualified name of the type (as in + `path/google.protobuf.Duration`). The name should be in a canonical form + (e.g., leading "." is not accepted). + + In practice, teams usually precompile into the binary all types that they + expect it to use in the context of Any. However, for URLs which use the + scheme `http`, `https`, or no scheme, one can optionally set up a type + server that maps type URLs to message definitions as follows: + + * If no scheme is provided, `https` is assumed. + * An HTTP GET on the URL must yield a [google.protobuf.Type][] + value in binary format, or produce an error. + * Applications are allowed to cache lookup results based on the + URL, or have them precompiled into a binary to avoid any + lookup. Therefore, binary compatibility needs to be preserved + on changes to types. (Use versioned type names to manage + breaking changes.) + + Note: this functionality is not currently available in the official + protobuf release, and it is not used for type URLs beginning with + type.googleapis.com. + + Schemes other than `http`, `https` (or the empty scheme) might be + used with implementation specific semantics. + + + + Field number for the "value" field. + + + + Must be a valid serialized protocol buffer of the above specified type. + + + + + Retrieves the type name for a type URL, matching the + of the packed message type. + + + + This is always just the last part of the URL, after the final slash. No validation of + anything before the trailing slash is performed. If the type URL does not include a slash, + an empty string is returned rather than an exception being thrown; this won't match any types, + and the calling code is probably in a better position to give a meaningful error. + + + There is no handling of fragments or queries at the moment. + + + The URL to extract the type name from + The type name + + + + Returns a bool indictating whether this Any message is of the target message type + + The descriptor of the message type + true if the type name matches the descriptor's full name or false otherwise + + + + Unpacks the content of this Any message into the target message type, + which must match the type URL within this Any message. + + The type of message to unpack the content into. + The unpacked message. + The target message type doesn't match the type URL in this message + + + + Attempts to unpack the content of this Any message into the target message type, + if it matches the type URL within this Any message. + + The type of message to attempt to unpack the content into. + true if the message was successfully unpacked; false if the type name didn't match + + + + Packs the specified message into an Any message using a type URL prefix of "type.googleapis.com". + + The message to pack. + An Any message with the content and type URL of . + + + + Packs the specified message into an Any message using the specified type URL prefix. + + The message to pack. + The prefix for the type URL. + An Any message with the content and type URL of . + + + Holder for reflection information generated from google/protobuf/api.proto + + + File descriptor for google/protobuf/api.proto + + + + Api is a light-weight descriptor for an API Interface. + + Interfaces are also described as "protocol buffer services" in some contexts, + such as by the "service" keyword in a .proto file, but they are different + from API Services, which represent a concrete implementation of an interface + as opposed to simply a description of methods and bindings. They are also + sometimes simply referred to as "APIs" in other contexts, such as the name of + this message itself. See https://cloud.google.com/apis/design/glossary for + detailed terminology. + + + + Field number for the "name" field. + + + + The fully qualified name of this interface, including package name + followed by the interface's simple name. + + + + Field number for the "methods" field. + + + + The methods of this interface, in unspecified order. + + + + Field number for the "options" field. + + + + Any metadata attached to the interface. + + + + Field number for the "version" field. + + + + A version string for this interface. If specified, must have the form + `major-version.minor-version`, as in `1.10`. If the minor version is + omitted, it defaults to zero. If the entire version field is empty, the + major version is derived from the package name, as outlined below. If the + field is not empty, the version in the package name will be verified to be + consistent with what is provided here. + + The versioning schema uses [semantic + versioning](http://semver.org) where the major version number + indicates a breaking change and the minor version an additive, + non-breaking change. Both version numbers are signals to users + what to expect from different versions, and should be carefully + chosen based on the product plan. + + The major version is also reflected in the package name of the + interface, which must end in `v<major-version>`, as in + `google.feature.v1`. For major versions 0 and 1, the suffix can + be omitted. Zero major versions must only be used for + experimental, non-GA interfaces. + + + + Field number for the "source_context" field. + + + + Source context for the protocol buffer service represented by this + message. + + + + Field number for the "mixins" field. + + + + Included interfaces. See [Mixin][]. + + + + Field number for the "syntax" field. + + + + The source syntax of the service. + + + + + Method represents a method of an API interface. + + + + Field number for the "name" field. + + + + The simple name of this method. + + + + Field number for the "request_type_url" field. + + + + A URL of the input message type. + + + + Field number for the "request_streaming" field. + + + + If true, the request is streamed. + + + + Field number for the "response_type_url" field. + + + + The URL of the output message type. + + + + Field number for the "response_streaming" field. + + + + If true, the response is streamed. + + + + Field number for the "options" field. + + + + Any metadata attached to the method. + + + + Field number for the "syntax" field. + + + + The source syntax of this method. + + + + + Declares an API Interface to be included in this interface. The including + interface must redeclare all the methods from the included interface, but + documentation and options are inherited as follows: + + - If after comment and whitespace stripping, the documentation + string of the redeclared method is empty, it will be inherited + from the original method. + + - Each annotation belonging to the service config (http, + visibility) which is not set in the redeclared method will be + inherited. + + - If an http annotation is inherited, the path pattern will be + modified as follows. Any version prefix will be replaced by the + version of the including interface plus the [root][] path if + specified. + + Example of a simple mixin: + + package google.acl.v1; + service AccessControl { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v1/{resource=**}:getAcl"; + } + } + + package google.storage.v2; + service Storage { + rpc GetAcl(GetAclRequest) returns (Acl); + + // Get a data record. + rpc GetData(GetDataRequest) returns (Data) { + option (google.api.http).get = "/v2/{resource=**}"; + } + } + + Example of a mixin configuration: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + + The mixin construct implies that all methods in `AccessControl` are + also declared with same name and request/response types in + `Storage`. A documentation generator or annotation processor will + see the effective `Storage.GetAcl` method after inherting + documentation and annotations as follows: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/{resource=**}:getAcl"; + } + ... + } + + Note how the version in the path pattern changed from `v1` to `v2`. + + If the `root` field in the mixin is specified, it should be a + relative path under which inherited HTTP paths are placed. Example: + + apis: + - name: google.storage.v2.Storage + mixins: + - name: google.acl.v1.AccessControl + root: acls + + This implies the following inherited HTTP annotation: + + service Storage { + // Get the underlying ACL object. + rpc GetAcl(GetAclRequest) returns (Acl) { + option (google.api.http).get = "/v2/acls/{resource=**}:getAcl"; + } + ... + } + + + + Field number for the "name" field. + + + + The fully qualified name of the interface which is included. + + + + Field number for the "root" field. + + + + If non-empty specifies a path under which inherited HTTP paths + are rooted. + + + + Holder for reflection information generated from google/protobuf/duration.proto + + + File descriptor for google/protobuf/duration.proto + + + + A Duration represents a signed, fixed-length span of time represented + as a count of seconds and fractions of seconds at nanosecond + resolution. It is independent of any calendar and concepts like "day" + or "month". It is related to Timestamp in that the difference between + two Timestamp values is a Duration and it can be added or subtracted + from a Timestamp. Range is approximately +-10,000 years. + + # Examples + + Example 1: Compute Duration from two Timestamps in pseudo code. + + Timestamp start = ...; + Timestamp end = ...; + Duration duration = ...; + + duration.seconds = end.seconds - start.seconds; + duration.nanos = end.nanos - start.nanos; + + if (duration.seconds < 0 && duration.nanos > 0) { + duration.seconds += 1; + duration.nanos -= 1000000000; + } else if (duration.seconds > 0 && duration.nanos < 0) { + duration.seconds -= 1; + duration.nanos += 1000000000; + } + + Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. + + Timestamp start = ...; + Duration duration = ...; + Timestamp end = ...; + + end.seconds = start.seconds + duration.seconds; + end.nanos = start.nanos + duration.nanos; + + if (end.nanos < 0) { + end.seconds -= 1; + end.nanos += 1000000000; + } else if (end.nanos >= 1000000000) { + end.seconds += 1; + end.nanos -= 1000000000; + } + + Example 3: Compute Duration from datetime.timedelta in Python. + + td = datetime.timedelta(days=3, minutes=10) + duration = Duration() + duration.FromTimedelta(td) + + # JSON Mapping + + In JSON format, the Duration type is encoded as a string rather than an + object, where the string ends in the suffix "s" (indicating seconds) and + is preceded by the number of seconds, with nanoseconds expressed as + fractional seconds. For example, 3 seconds with 0 nanoseconds should be + encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should + be expressed in JSON format as "3.000000001s", and 3 seconds and 1 + microsecond should be expressed in JSON format as "3.000001s". + + + + Field number for the "seconds" field. + + + + Signed seconds of the span of time. Must be from -315,576,000,000 + to +315,576,000,000 inclusive. Note: these bounds are computed from: + 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years + + + + Field number for the "nanos" field. + + + + Signed fractions of a second at nanosecond resolution of the span + of time. Durations less than one second are represented with a 0 + `seconds` field and a positive or negative `nanos` field. For durations + of one second or more, a non-zero value for the `nanos` field must be + of the same sign as the `seconds` field. Must be from -999,999,999 + to +999,999,999 inclusive. + + + + + The number of nanoseconds in a second. + + + + + The number of nanoseconds in a BCL tick (as used by and ). + + + + + The maximum permitted number of seconds. + + + + + The minimum permitted number of seconds. + + + + + Converts this to a . + + If the duration is not a precise number of ticks, it is truncated towards 0. + The value of this duration, as a TimeSpan. + This value isn't a valid normalized duration, as + described in the documentation. + + + + Converts the given to a . + + The TimeSpan to convert. + The value of the given TimeSpan, as a Duration. + + + + Returns the result of negating the duration. For example, the negation of 5 minutes is -5 minutes. + + The duration to negate. Must not be null. + The negated value of this duration. + + + + Adds the two specified values together. + + The first value to add. Must not be null. + The second value to add. Must not be null. + + + + + Subtracts one from another. + + The duration to subtract from. Must not be null. + The duration to subtract. Must not be null. + The difference between the two specified durations. + + + + Creates a duration with the normalized values from the given number of seconds and + nanoseconds, conforming with the description in the proto file. + + + + + Converts a duration specified in seconds/nanoseconds to a string. + + + If the value is a normalized duration in the range described in duration.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Seconds portion of the duration. + Nanoseconds portion of the duration. + Determines the handling of non-normalized values + The represented duration is invalid, and is false. + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + + Appends a number of nanoseconds to a StringBuilder. Either 0 digits are added (in which + case no "." is appended), or 3 6 or 9 digits. This is internal for use in Timestamp as well + as Duration. + + + + Holder for reflection information generated from google/protobuf/empty.proto + + + File descriptor for google/protobuf/empty.proto + + + + A generic empty message that you can re-use to avoid defining duplicated + empty messages in your APIs. A typical example is to use it as the request + or the response type of an API method. For instance: + + service Foo { + rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); + } + + The JSON representation for `Empty` is empty JSON object `{}`. + + + + Holder for reflection information generated from google/protobuf/field_mask.proto + + + File descriptor for google/protobuf/field_mask.proto + + + + `FieldMask` represents a set of symbolic field paths, for example: + + paths: "f.a" + paths: "f.b.d" + + Here `f` represents a field in some root message, `a` and `b` + fields in the message found in `f`, and `d` a field found in the + message in `f.b`. + + Field masks are used to specify a subset of fields that should be + returned by a get operation or modified by an update operation. + Field masks also have a custom JSON encoding (see below). + + # Field Masks in Projections + + When used in the context of a projection, a response message or + sub-message is filtered by the API to only contain those fields as + specified in the mask. For example, if the mask in the previous + example is applied to a response message as follows: + + f { + a : 22 + b { + d : 1 + x : 2 + } + y : 13 + } + z: 8 + + The result will not contain specific values for fields x,y and z + (their value will be set to the default, and omitted in proto text + output): + + f { + a : 22 + b { + d : 1 + } + } + + A repeated field is not allowed except at the last position of a + paths string. + + If a FieldMask object is not present in a get operation, the + operation applies to all fields (as if a FieldMask of all fields + had been specified). + + Note that a field mask does not necessarily apply to the + top-level response message. In case of a REST get operation, the + field mask applies directly to the response, but in case of a REST + list operation, the mask instead applies to each individual message + in the returned resource list. In case of a REST custom method, + other definitions may be used. Where the mask applies will be + clearly documented together with its declaration in the API. In + any case, the effect on the returned resource/resources is required + behavior for APIs. + + # Field Masks in Update Operations + + A field mask in update operations specifies which fields of the + targeted resource are going to be updated. The API is required + to only change the values of the fields as specified in the mask + and leave the others untouched. If a resource is passed in to + describe the updated values, the API ignores the values of all + fields not covered by the mask. + + If a repeated field is specified for an update operation, new values will + be appended to the existing repeated field in the target resource. Note that + a repeated field is only allowed in the last position of a `paths` string. + + If a sub-message is specified in the last position of the field mask for an + update operation, then new value will be merged into the existing sub-message + in the target resource. + + For example, given the target message: + + f { + b { + d: 1 + x: 2 + } + c: [1] + } + + And an update message: + + f { + b { + d: 10 + } + c: [2] + } + + then if the field mask is: + + paths: ["f.b", "f.c"] + + then the result will be: + + f { + b { + d: 10 + x: 2 + } + c: [1, 2] + } + + An implementation may provide options to override this default behavior for + repeated and message fields. + + In order to reset a field's value to the default, the field must + be in the mask and set to the default value in the provided resource. + Hence, in order to reset all fields of a resource, provide a default + instance of the resource and set all fields in the mask, or do + not provide a mask as described below. + + If a field mask is not present on update, the operation applies to + all fields (as if a field mask of all fields has been specified). + Note that in the presence of schema evolution, this may mean that + fields the client does not know and has therefore not filled into + the request will be reset to their default. If this is unwanted + behavior, a specific service may require a client to always specify + a field mask, producing an error if not. + + As with get operations, the location of the resource which + describes the updated values in the request message depends on the + operation kind. In any case, the effect of the field mask is + required to be honored by the API. + + ## Considerations for HTTP REST + + The HTTP kind of an update operation which uses a field mask must + be set to PATCH instead of PUT in order to satisfy HTTP semantics + (PUT must only be used for full updates). + + # JSON Encoding of Field Masks + + In JSON, a field mask is encoded as a single string where paths are + separated by a comma. Fields name in each path are converted + to/from lower-camel naming conventions. + + As an example, consider the following message declarations: + + message Profile { + User user = 1; + Photo photo = 2; + } + message User { + string display_name = 1; + string address = 2; + } + + In proto a field mask for `Profile` may look as such: + + mask { + paths: "user.display_name" + paths: "photo" + } + + In JSON, the same mask is represented as below: + + { + mask: "user.displayName,photo" + } + + # Field Masks and Oneof Fields + + Field masks treat fields in oneofs just as regular fields. Consider the + following message: + + message SampleMessage { + oneof test_oneof { + string name = 4; + SubMessage sub_message = 9; + } + } + + The field mask can be: + + mask { + paths: "name" + } + + Or: + + mask { + paths: "sub_message" + } + + Note that oneof type names ("test_oneof" in this case) cannot be used in + paths. + + ## Field Mask Verification + + The implementation of any API method which has a FieldMask type field in the + request should verify the included field paths, and return an + `INVALID_ARGUMENT` error if any path is unmappable. + + + + Field number for the "paths" field. + + + + The set of field mask paths. + + + + + Converts a field mask specified by paths to a string. + + + If the value is a normalized duration in the range described in field_mask.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Paths in the field mask + Determines the handling of non-normalized values + The represented field mask is invalid, and is false. + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + + Parses from a string to a FieldMask. + + + + + Parses from a string to a FieldMask and validates all field paths. + + The type to validate the field paths against. + + + + Constructs a FieldMask for a list of field paths in a certain type. + + The type to validate the field paths against. + + + + Constructs a FieldMask from the passed field numbers. + + The type to validate the field paths against. + + + + Constructs a FieldMask from the passed field numbers. + + The type to validate the field paths against. + + + + Checks whether the given path is valid for a field mask. + + true if the path is valid; false otherwise + + + + Checks whether paths in a given fields mask are valid. + + The type to validate the field paths against. + + + + Checks whether paths in a given fields mask are valid. + + + + + Checks whether a given field path is valid. + + The type to validate the field paths against. + + + + Checks whether paths in a given fields mask are valid. + + + + + Converts this FieldMask to its canonical form. In the canonical form of a + FieldMask, all field paths are sorted alphabetically and redundant field + paths are removed. + + + + + Creates a union of two or more FieldMasks. + + + + + Calculates the intersection of two FieldMasks. + + + + + Merges fields specified by this FieldMask from one message to another with the + specified merge options. + + + + + Merges fields specified by this FieldMask from one message to another. + + + + + Options to customize merging behavior. + + + + + Whether to replace message fields(i.e., discard existing content in + destination message fields) when merging. + Default behavior is to merge the source message field into the + destination message field. + + + + + Whether to replace repeated fields (i.e., discard existing content in + destination repeated fields) when merging. + Default behavior is to append elements from source repeated field to the + destination repeated field. + + + + + Whether to replace primitive (non-repeated and non-message) fields in + destination message fields with the source primitive fields (i.e., if the + field is set in the source, the value is copied to the + destination; if the field is unset in the source, the field is cleared + from the destination) when merging. + + Default behavior is to always set the value of the source primitive + field to the destination primitive field, and if the source field is + unset, the default value of the source field is copied to the + destination. + + + + Holder for reflection information generated from google/protobuf/source_context.proto + + + File descriptor for google/protobuf/source_context.proto + + + + `SourceContext` represents information about the source of a + protobuf element, like the file in which it is defined. + + + + Field number for the "file_name" field. + + + + The path-qualified name of the .proto file that contained the associated + protobuf element. For example: `"google/protobuf/source_context.proto"`. + + + + Holder for reflection information generated from google/protobuf/struct.proto + + + File descriptor for google/protobuf/struct.proto + + + + `NullValue` is a singleton enumeration to represent the null value for the + `Value` type union. + + The JSON representation for `NullValue` is JSON `null`. + + + + + Null value. + + + + + `Struct` represents a structured data value, consisting of fields + which map to dynamically typed values. In some languages, `Struct` + might be supported by a native representation. For example, in + scripting languages like JS a struct is represented as an + object. The details of that representation are described together + with the proto support for the language. + + The JSON representation for `Struct` is JSON object. + + + + Field number for the "fields" field. + + + + Unordered map of dynamically typed values. + + + + + `Value` represents a dynamically typed value which can be either + null, a number, a string, a boolean, a recursive struct value, or a + list of values. A producer of value is expected to set one of that + variants, absence of any variant indicates an error. + + The JSON representation for `Value` is JSON value. + + + + Field number for the "null_value" field. + + + + Represents a null value. + + + + Field number for the "number_value" field. + + + + Represents a double value. + + + + Field number for the "string_value" field. + + + + Represents a string value. + + + + Field number for the "bool_value" field. + + + + Represents a boolean value. + + + + Field number for the "struct_value" field. + + + + Represents a structured value. + + + + Field number for the "list_value" field. + + + + Represents a repeated `Value`. + + + + Enum of possible cases for the "kind" oneof. + + + + Convenience method to create a Value message with a string value. + + Value to set for the StringValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a number value. + + Value to set for the NumberValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a Boolean value. + + Value to set for the BoolValue property. + A newly-created Value message with the given value. + + + + Convenience method to create a Value message with a null initial value. + + A newly-created Value message a null initial value. + + + + Convenience method to create a Value message with an initial list of values. + + The values provided are not cloned; the references are copied directly. + A newly-created Value message an initial list value. + + + + Convenience method to create a Value message with an initial struct value + + The value provided is not cloned; the reference is copied directly. + A newly-created Value message an initial struct value. + + + + `ListValue` is a wrapper around a repeated field of values. + + The JSON representation for `ListValue` is JSON array. + + + + Field number for the "values" field. + + + + Repeated field of dynamically typed values. + + + + + Extension methods on BCL time-related types, converting to protobuf types. + + + + + Converts the given to a . + + The date and time to convert to a timestamp. + The value has a other than Utc. + The converted timestamp. + + + + Converts the given to a + + The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original DateTimeOffset. + The date and time (with UTC offset) to convert to a timestamp. + The converted timestamp. + + + + Converts the given to a . + + The time span to convert. + The converted duration. + + + Holder for reflection information generated from google/protobuf/timestamp.proto + + + File descriptor for google/protobuf/timestamp.proto + + + + A Timestamp represents a point in time independent of any time zone or local + calendar, encoded as a count of seconds and fractions of seconds at + nanosecond resolution. The count is relative to an epoch at UTC midnight on + January 1, 1970, in the proleptic Gregorian calendar which extends the + Gregorian calendar backwards to year one. + + All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap + second table is needed for interpretation, using a [24-hour linear + smear](https://developers.google.com/time/smear). + + The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By + restricting to that range, we ensure that we can convert to and from [RFC + 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings. + + # Examples + + Example 1: Compute Timestamp from POSIX `time()`. + + Timestamp timestamp; + timestamp.set_seconds(time(NULL)); + timestamp.set_nanos(0); + + Example 2: Compute Timestamp from POSIX `gettimeofday()`. + + struct timeval tv; + gettimeofday(&tv, NULL); + + Timestamp timestamp; + timestamp.set_seconds(tv.tv_sec); + timestamp.set_nanos(tv.tv_usec * 1000); + + Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. + + FILETIME ft; + GetSystemTimeAsFileTime(&ft); + UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; + + // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z + // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. + Timestamp timestamp; + timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); + timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); + + Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. + + long millis = System.currentTimeMillis(); + + Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) + .setNanos((int) ((millis % 1000) * 1000000)).build(); + + Example 5: Compute Timestamp from current time in Python. + + timestamp = Timestamp() + timestamp.GetCurrentTime() + + # JSON Mapping + + In JSON format, the Timestamp type is encoded as a string in the + [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the + format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" + where {year} is always expressed using four digits while {month}, {day}, + {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional + seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), + are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone + is required. A proto3 JSON serializer should always use UTC (as indicated by + "Z") when printing the Timestamp type and a proto3 JSON parser should be + able to accept both UTC and other timezones (as indicated by an offset). + + For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past + 01:30 UTC on January 15, 2017. + + In JavaScript, one can convert a Date object to this format using the + standard + [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) + method. In Python, a standard `datetime.datetime` object can be converted + to this format using + [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) with + the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one can use + the Joda Time's [`ISODateTimeFormat.dateTime()`]( + http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D + ) to obtain a formatter capable of generating timestamps in this format. + + + + Field number for the "seconds" field. + + + + Represents seconds of UTC time since Unix epoch + 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to + 9999-12-31T23:59:59Z inclusive. + + + + Field number for the "nanos" field. + + + + Non-negative fractions of a second at nanosecond resolution. Negative + second values with fractions must still have non-negative nanos values + that count forward in time. Must be from 0 to 999,999,999 + inclusive. + + + + + Returns the difference between one and another, as a . + + The timestamp to subtract from. Must not be null. + The timestamp to subtract. Must not be null. + The difference between the two specified timestamps. + + + + Adds a to a , to obtain another Timestamp. + + The timestamp to add the duration to. Must not be null. + The duration to add. Must not be null. + The result of adding the duration to the timestamp. + + + + Subtracts a from a , to obtain another Timestamp. + + The timestamp to subtract the duration from. Must not be null. + The duration to subtract. + The result of subtracting the duration from the timestamp. + + + + Converts this timestamp into a . + + + The resulting DateTime will always have a Kind of Utc. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a value of 99 will result in a + value precisely on a second. + + This timestamp as a DateTime. + The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range. + + + + Converts this timestamp into a . + + + The resulting DateTimeOffset will always have an Offset of zero. + If the timestamp is not a precise number of ticks, it will be truncated towards the start + of time. For example, a timestamp with a value of 99 will result in a + value precisely on a second. + + This timestamp as a DateTimeOffset. + The timestamp contains invalid values; either it is + incorrectly normalized or is outside the valid range. + + + + Converts the specified to a . + + + The Kind of is not DateTimeKind.Utc. + The converted timestamp. + + + + Converts the given to a + + The offset is taken into consideration when converting the value (so the same instant in time + is represented) but is not a separate part of the resulting value. In other words, there is no + roundtrip operation to retrieve the original DateTimeOffset. + The date and time (with UTC offset) to convert to a timestamp. + The converted timestamp. + + + + Converts a timestamp specified in seconds/nanoseconds to a string. + + + If the value is a normalized duration in the range described in timestamp.proto, + is ignored. Otherwise, if the parameter is true, + a JSON object with a warning is returned; if it is false, an is thrown. + + Seconds portion of the duration. + Nanoseconds portion of the duration. + Determines the handling of non-normalized values + The represented duration is invalid, and is false. + + + + Given another timestamp, returns 0 if the timestamps are equivalent, -1 if this timestamp precedes the other, and 1 otherwise + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + Timestamp to compare + an integer indicating whether this timestamp precedes or follows the other + + + + Compares two timestamps and returns whether the first is less than (chronologically precedes) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a precedes b + + + + Compares two timestamps and returns whether the first is greater than (chronologically follows) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a follows b + + + + Compares two timestamps and returns whether the first is less than (chronologically precedes) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a precedes b + + + + Compares two timestamps and returns whether the first is greater than (chronologically follows) the second + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if a follows b + + + + Returns whether two timestamps are equivalent + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if the two timestamps refer to the same nanosecond + + + + Returns whether two timestamps differ + + + Make sure the timestamps are normalized. Comparing non-normalized timestamps is not specified and may give unexpected results. + + + + true if the two timestamps differ + + + + Returns a string representation of this for diagnostic purposes. + + + Normally the returned value will be a JSON string value (including leading and trailing quotes) but + when the value is non-normalized or out of range, a JSON object representation will be returned + instead, including a warning. This is to avoid exceptions being thrown when trying to + diagnose problems - the regular JSON formatter will still throw an exception for non-normalized + values. + + A string representation of this value. + + + Holder for reflection information generated from google/protobuf/type.proto + + + File descriptor for google/protobuf/type.proto + + + + The syntax in which a protocol buffer element is defined. + + + + + Syntax `proto2`. + + + + + Syntax `proto3`. + + + + + A protocol buffer message type. + + + + Field number for the "name" field. + + + + The fully qualified message name. + + + + Field number for the "fields" field. + + + + The list of fields. + + + + Field number for the "oneofs" field. + + + + The list of types appearing in `oneof` definitions in this type. + + + + Field number for the "options" field. + + + + The protocol buffer options. + + + + Field number for the "source_context" field. + + + + The source context. + + + + Field number for the "syntax" field. + + + + The source syntax. + + + + + A single field of a message type. + + + + Field number for the "kind" field. + + + + The field type. + + + + Field number for the "cardinality" field. + + + + The field cardinality. + + + + Field number for the "number" field. + + + + The field number. + + + + Field number for the "name" field. + + + + The field name. + + + + Field number for the "type_url" field. + + + + The field type URL, without the scheme, for message or enumeration + types. Example: `"type.googleapis.com/google.protobuf.Timestamp"`. + + + + Field number for the "oneof_index" field. + + + + The index of the field type in `Type.oneofs`, for message or enumeration + types. The first type has index 1; zero means the type is not in the list. + + + + Field number for the "packed" field. + + + + Whether to use alternative packed wire representation. + + + + Field number for the "options" field. + + + + The protocol buffer options. + + + + Field number for the "json_name" field. + + + + The field JSON name. + + + + Field number for the "default_value" field. + + + + The string value of the default value of this field. Proto2 syntax only. + + + + Container for nested types declared in the Field message type. + + + + Basic field types. + + + + + Field type unknown. + + + + + Field type double. + + + + + Field type float. + + + + + Field type int64. + + + + + Field type uint64. + + + + + Field type int32. + + + + + Field type fixed64. + + + + + Field type fixed32. + + + + + Field type bool. + + + + + Field type string. + + + + + Field type group. Proto2 syntax only, and deprecated. + + + + + Field type message. + + + + + Field type bytes. + + + + + Field type uint32. + + + + + Field type enum. + + + + + Field type sfixed32. + + + + + Field type sfixed64. + + + + + Field type sint32. + + + + + Field type sint64. + + + + + Whether a field is optional, required, or repeated. + + + + + For fields with unknown cardinality. + + + + + For optional fields. + + + + + For required fields. Proto2 syntax only. + + + + + For repeated fields. + + + + + Enum type definition. + + + + Field number for the "name" field. + + + + Enum type name. + + + + Field number for the "enumvalue" field. + + + + Enum value definitions. + + + + Field number for the "options" field. + + + + Protocol buffer options. + + + + Field number for the "source_context" field. + + + + The source context. + + + + Field number for the "syntax" field. + + + + The source syntax. + + + + + Enum value definition. + + + + Field number for the "name" field. + + + + Enum value name. + + + + Field number for the "number" field. + + + + Enum value number. + + + + Field number for the "options" field. + + + + Protocol buffer options. + + + + + A protocol buffer option, which can be attached to a message, field, + enumeration, etc. + + + + Field number for the "name" field. + + + + The option's name. For protobuf built-in options (options defined in + descriptor.proto), this is the short name. For example, `"map_entry"`. + For custom options, it should be the fully-qualified name. For example, + `"google.api.http"`. + + + + Field number for the "value" field. + + + + The option's value packed in an Any message. If the value is a primitive, + the corresponding wrapper type defined in google/protobuf/wrappers.proto + should be used. If the value is an enum, it should be stored as an int32 + value using the google.protobuf.Int32Value type. + + + + Holder for reflection information generated from google/protobuf/wrappers.proto + + + File descriptor for google/protobuf/wrappers.proto + + + + Field number for the single "value" field in all wrapper types. + + + + + Wrapper message for `double`. + + The JSON representation for `DoubleValue` is JSON number. + + + + Field number for the "value" field. + + + + The double value. + + + + + Wrapper message for `float`. + + The JSON representation for `FloatValue` is JSON number. + + + + Field number for the "value" field. + + + + The float value. + + + + + Wrapper message for `int64`. + + The JSON representation for `Int64Value` is JSON string. + + + + Field number for the "value" field. + + + + The int64 value. + + + + + Wrapper message for `uint64`. + + The JSON representation for `UInt64Value` is JSON string. + + + + Field number for the "value" field. + + + + The uint64 value. + + + + + Wrapper message for `int32`. + + The JSON representation for `Int32Value` is JSON number. + + + + Field number for the "value" field. + + + + The int32 value. + + + + + Wrapper message for `uint32`. + + The JSON representation for `UInt32Value` is JSON number. + + + + Field number for the "value" field. + + + + The uint32 value. + + + + + Wrapper message for `bool`. + + The JSON representation for `BoolValue` is JSON `true` and `false`. + + + + Field number for the "value" field. + + + + The bool value. + + + + + Wrapper message for `string`. + + The JSON representation for `StringValue` is JSON string. + + + + Field number for the "value" field. + + + + The string value. + + + + + Wrapper message for `bytes`. + + The JSON representation for `BytesValue` is JSON string. + + + + Field number for the "value" field. + + + + The bytes value. + + + + + This class is used internally by the Protocol Buffer Library and generated + message implementations. It is public only for the sake of those generated + messages. Others should not use this class directly. + + This class contains constants and helper functions useful for dealing with + the Protocol Buffer wire format. + + + + + + Wire types within protobuf encoding. + + + + + Variable-length integer. + + + + + A fixed-length 64-bit value. + + + + + A length-delimited value, i.e. a length followed by that many bytes of data. + + + + + A "start group" value + + + + + An "end group" value + + + + + A fixed-length 32-bit value. + + + + + Given a tag value, determines the wire type (lower 3 bits). + + + + + Given a tag value, determines the field number (the upper 29 bits). + + + + + Makes a tag value given a field number and wire type. + + +
+
diff --git a/Plugins/LC.Google.Protobuf.xml.meta b/Plugins/LC.Google.Protobuf.xml.meta new file mode 100644 index 0000000..2957fed --- /dev/null +++ b/Plugins/LC.Google.Protobuf.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 897d43a60ca3544e7b4c42fc69654bf3 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.deps.json b/Plugins/LiveQuery.deps.json new file mode 100644 index 0000000..b49ba21 --- /dev/null +++ b/Plugins/LiveQuery.deps.json @@ -0,0 +1,111 @@ +{ + "runtimeTarget": { + "name": ".NETStandard,Version=v2.0/", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETStandard,Version=v2.0": {}, + ".NETStandard,Version=v2.0/": { + "LiveQuery/1.0.0": { + "dependencies": { + "NETStandard.Library": "2.0.3", + "Realtime": "1.0.0" + }, + "runtime": { + "LiveQuery.dll": {} + } + }, + "Microsoft.NETCore.Platforms/1.1.0": {}, + "NETStandard.Library/2.0.3": { + "dependencies": { + "Microsoft.NETCore.Platforms": "1.1.0" + } + }, + "Common/1.0.0": { + "dependencies": { + "LC.Newtonsoft.Json": "11.0.1-beta2" + }, + "runtime": { + "Common.dll": {} + } + }, + "LC.Google.Protobuf/3.12.4": { + "dependencies": { + "NETStandard.Library": "2.0.3" + }, + "runtime": { + "LC.Google.Protobuf.dll": {} + } + }, + "LC.Newtonsoft.Json/11.0.1-beta2": { + "runtime": { + "LC.Newtonsoft.Json.dll": {} + } + }, + "Realtime/1.0.0": { + "dependencies": { + "LC.Google.Protobuf": "3.12.4", + "Storage": "1.0.0" + }, + "runtime": { + "Realtime.dll": {} + } + }, + "Storage/1.0.0": { + "dependencies": { + "Common": "1.0.0" + }, + "runtime": { + "Storage.dll": {} + } + } + } + }, + "libraries": { + "LiveQuery/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Microsoft.NETCore.Platforms/1.1.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==", + "path": "microsoft.netcore.platforms/1.1.0", + "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512" + }, + "NETStandard.Library/2.0.3": { + "type": "package", + "serviceable": true, + "sha512": "sha512-st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==", + "path": "netstandard.library/2.0.3", + "hashPath": "netstandard.library.2.0.3.nupkg.sha512" + }, + "Common/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "LC.Google.Protobuf/3.12.4": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "LC.Newtonsoft.Json/11.0.1-beta2": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Realtime/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Storage/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/Plugins/LiveQuery.deps.json.meta b/Plugins/LiveQuery.deps.json.meta new file mode 100644 index 0000000..f4e9568 --- /dev/null +++ b/Plugins/LiveQuery.deps.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: c06dd774b321441138bfcdc529dcf92d +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.dll b/Plugins/LiveQuery.dll new file mode 100644 index 0000000000000000000000000000000000000000..e729e4f46f534b100b2fd18c147f5ba247f8210b GIT binary patch literal 22016 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 literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.dll.meta b/Plugins/LiveQuery.dll.meta new file mode 100644 index 0000000..d208504 --- /dev/null +++ b/Plugins/LiveQuery.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: 9adcdca4d76b14c139e400d2d285448e +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/LiveQuery.pdb b/Plugins/LiveQuery.pdb new file mode 100644 index 0000000000000000000000000000000000000000..6b4363d9481d0b0da40d66ab438b5b279d9c0999 GIT binary patch literal 12328 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 literal 0 HcmV?d00001 diff --git a/Plugins/LiveQuery.pdb.meta b/Plugins/LiveQuery.pdb.meta new file mode 100644 index 0000000..d792d43 --- /dev/null +++ b/Plugins/LiveQuery.pdb.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 7ec7ac1047ee2413f8fb987264a82dbd +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Realtime.dll b/Plugins/Realtime.dll new file mode 100644 index 0000000000000000000000000000000000000000..7dfad7022cfb7625695175d91ed02741a88eef87 GIT binary patch literal 300032 zcmbrn37B0)wKjaRcjqKIovD+Y?oMauW(e7wP67l1O%6i{a{!qk%pnk&Ij|dK$k~TR zL=i+LnM6UR3+Q#Y7f}!t!C6$IsOUun2b{PLh>C)c|9#(8RePUq?tQ-R|MFXAkUg;GqL&HBMf)WXhDv=1%lMdzMQ3 zkBduJ4}ACszP1-in+|l2+qzVGAG9hPTKOpG0nlHhrlskkBh#CJP!gr_r4n%di%V-R zXIB0%k6n@w{yp?SN9jNkklRZ`jQ;mRM`<#!$L{Ya9X6WxzoiFCrHKXpM5OmAq?eqx z?!xnso_?ik7u)Le_SsNm&60FDJqdtxW82x#_cO@K4Iv*UpMc_uLSb#tAKzwnMwGaPrQ2Sfnq@qh>by&ez&V73QD0O<382mo_DAOgT#4~PIT&jTU= z%=dr@0R0{i0bsxbA^>dS0TBQ;^?-<*q6BTK#7Q^8MV%>}=A2+Fg;5#Z%%2+H46(gzo1Iqs^44TtO_-%82eq6{sUB z9pLMT6S!VE>PX;UxuM2}%skC@Gb|>J{1|D(wJSP%y~a z+R56+$=J$d7|fyQ$ zoNF=2DRTj3u2h*Q+g)*-?V-3M+f(uQY%j&tY&XSC%bq|2Wiyp546@lr=;~mTeN`sP z_EQ{Zs}xtWeH1s1P3NF2rmX3qzcJNNRzf}BrZQ1>km5KyP;oUoKylO92})2FQwcn$ zQkx$QZw*(nem?~I!CkxJM!j4rSIT>$YOQY=3Z()3f02usF89w^GN%?L%Rt7B^%N2% zI~EggBhT3@N-*n{7c7pps5J&zG5Zfh2{79L$(8I-=^AB+Io%I2-3?Bl*`Vo3J7UfZ zc0AIRTdg?Gj&kLXu=2*H0&F`|qwLsevX)SXV^t=~j#nIK$0@F6$0%+ZJ3;M~#Zl^iwtdmtH%HFOx&ekceW+y3b8aqMll*N?E+CG9cOC51z8%hqTrLLa1v<2Ef z1@*Kx<0LVo)YulRMG-n+_%?Q&;pGOVlS;X^%987=sGxz~s%*hIV-C6<^G69wjmc?X zmZ>z*XO+s}WV8UxO5=Wr1C4I2EPm-{Q)iUk>^>1?8<>SEKdFtwDimS!GJ8vk`9GEU z!2gxZ`8FZfmJHWX=LlO2r(KT$YYU+W02r(WhyVa186d)o0R!XF7$N{*{1_mjkaJ7V z5P_U9oaGeZbG|)F*21|LO|!VM6BO-!b6l;5io(aOhzJ1ibOS^HSnL52w@1m_A19eL$sDQR)KCdi6Q`?lMN6709|W<2o(JQ1aS+L+(=?3=I*=E zf7oSoMaj*87NkdFVQXM{tek%mIyOC}Em?_@tC6d*3;2r~g+zK0^3536zzD4@np{?L zLSqF|#Y~qoQxq~WIdM#;8<;5$nV6iUOdM-*=|1QS_v=C%Zh=TuJN;D}se^hp9*8HvkFBm+Z6j<9E*dqTQvo}0LG&zkIV%A*$)66wCk9{h09`A48%ClA5p zN(I@ARumG+UZJ)vN5cyicWg0ha9VmKgtqo(zI_l(9^B7mr230?DI^NQ7LJDh2VoP< zE|Vun^)Ul$(H2e)o0=ZO);a&3GC|3%4w@D)IIkYc9Qq4Wc^F?@rW1geo;qH$hvUO-7bgas5 z&jEwWJxmq5A!l({IXxGCW{^frxmKyd#W{A+@g?Nyij~I=nnjZ%^FpftiXQA05di>u zbkke}G;3eVHSe|{yGJ_R3}yar*78+FH~xQH%UwIqgD#lm|DV_CFQO$y;2UhYHQjwKak{yt|)Q zSRgh-M*W){C@e^<%dY}ezrUIs_E%lwvCL6bKbcp%%C-la+-0_!IiYL9lxX6lVT_lG z8DeVx>$KY0-fAL_kJg_FU~x37W>l=*Z|&U?kKH6 zdt~eN7w7}v9y0y~1O;0&}mU*RT zcXBvDH>vP0lQmeq<4f3aa(?NGdai~F;}&$cuxwWDN~T~Xsm$uMI@LTaVv}196rPAp z&T3>^G-*-;gQ3znSRUqV*EwNg<5|R3yYGt`6S_K*qmfOkt*kPk-1rIdO{i@zdAR>V zdvG!~zxz+b{5K3osw}9s8d%QWEPoGY!Qtb8G>#|S|E9yA8HK;$@b8bp|K;!>jKW`c z_zy?nuQ~kLQTU|}|4|!0Lc7pa&S6X|ivV!02Sfl!Js@JQNW0ABHP}PD3Y_AF#L4S` zD00{r5V2RZJ_C?UMGpIazDntNS z?*S3Nx5F-GvW=+BjW^1ThEIgCGTP3OG+H5p?wNLgF7u!Z_A{9ND%rW(UqxA}xSE}# zxM^@Q&GuVNB`32h&|bR}oo_PcQpWjC#ygyh^Gt@p$#j#!RN+n(`{Gi6LB>T+2HqQR zR~u&+E3Rf2DsCD(=`vYNjgmEBver?bmdZrgh~hZAL~%9C6gQ2X%rIF@C8vb8QLjx3 zvfiaKQTA@dadx@lYId38rm>TmCX1471~A_ zSOmiU7|%(PagCF4waGA;*C3R^R6z!|x~0uc#;LRqo|+`%M#XVudhG8qOZ*f~)T zrV29HU)XojKI;2Bos7E`$Jt$qtJy~sH;tWOcSBiB75a;^l7g)JR3^$EP#kA?UW47L z*}o}n8awGTSxk+RwPiup$5kfEKB+j)KB2gp{k!6(v6DF_i>Xnvuy%wt{-?@B*{2o9 z*@KF!*?%Z*8k@%{wvnk(vIb3-#_nfTCdwXB9A^(Ju4bQ6+%$HA8H2KzD%hTWwWuKL zF_nq3#}&uf=M{HkUr=1l9#!15Y?MQpOpTJcxFGXMm5H*iD2}r)DelO=thkyzp}1+; z_`E`yOci9(&z6|XGwA$T+M!{xM|rE%rKP6R6!=zlhRU?iAA=O{ZwV5 z>}QJO?0Ll<8J@5)F2-j+SB!V7Ul=hy`=y9#_7lZT6OdpoVr@(%SewxTuA{cDY-{z& zH-D{CQT7`rvnSolcyfeGAZ#Kk$;&MJWT9+5l&y^_+h=8G;svI|3ctd_mlp~j z7z&Rv(C?TNcWRTiLGVW-+o4E>U$Zty{ds`aSwWU!T(zr5|yv9}SNerL1+*glEzkgKv zno;R%N2RYDmA-yd`i4>I4=5e9yRkiaQ+x8}_T(+?$y?i#A5=2<@^bSbIBF$(&H2#l z&WHYKK4fq*Xg6RsaI&q*U}}_%-A%^*v@t%3 z()oK!Cu5<>Fqj{{Q4gk)kG9!(kAfbHoQ%az#-PbCm>(ih22-Q-*wbWujCyS2WGrq@0{qLy&wZunjLYeoP7w67B?n>#F(KU79B3bxb3Lz<$RKf z)C3UE|zsw~LY{2TgJz!p42T;>H;WAz8>2>~G4A$*8N`n2xaV zNeaWTz=*YBAp$eGhDDrQM6X(sdiyQoZ*?WQ=+c2(Swtx#Oec2?Z9Z2VY>{l-+G@2T&qg3LWsCd&3! z9A|qf?#T91JU-h;aW&granrK%<0r~ysvsMhm-aK+=g}4is7#a{s5s8vrnn`)`h*Jc-|H`Me>Wn{uzRUE-;~P4~_=Zk#)7bou zmpU+2XcuL{2ZF5ARVK>LR2*k#D6VFwDQ+4&!3d=+rbfxanIOnIS7oAXSaF=CigA~$ zxM}PJ8c-HfCMygn_T@12JJ@9Q(}zY>HpqDvJWY)X16MCTDAnM4`nh{xC^Ar!wWL+Qkf{bS8<%(t+*q*M{zZ~Q*qO> zC0LCplc|DC`q>dCQ*+lxRVK>*U2&X!OmQ`PKylO9305V_VrrD19a)g|NtKDR|4H*$Ju8TcVrJKu4WG^Zd$ekr74rCLR%^G zsDjMTsZ5l8UU8f~s<s4`LZCB<>}gyN3uNyXLd zam7u`#t(-mlc`ZMk15Ffy2?b^Q;Os48;U!!Zz`^4UsK$)YzbBk%4Dh_lk3T`CR6>q zL1m)s`-(8nT?lKkQE>kh? zFcmkAonR%PET#(gw$$@@lXWg-{Y+(|>=%l0hp8BMn2K?SskoZ`RB_X?^BIt`nJV0m zQuYZ2*)OV0l>JU|oc&sHNA?@V%AD zAxuM31)W6Vye*396u+SES(GAP?;#hclOwa#@U-n zcVrtCSF?X9Zd$ekvo&QhW#_{%kDqKZ-^sSdk`-m+oy-o!)htrnG*3;Fyru5w4?VUV4J`%Y*)0%Gzo25@=7#Kz9t zqhf+3y&GvvW~2`QZ67R-H<_43%2Ub>*tI;V@i~Z?(0CN#;!pmpGGS49g5A@V-8be7 zONTf4$$zPIy=^6Ww3E22u#=dhoy48Cld%0N`wdr@q2DH{{ZZDbIL<1HtJy@wO=Blm zacCE&3jIb|rxavOSD7fAp*YUE6j!rpikrsfM;esH)F@flKnK05DidYhisP(DaW$Kz zxM}PJD-2~ZHA>cL1zCM66J>K0$Jt!P)oixnrm+)r3S}`hN*4CDL9c$5!P!x9oNc1G zn$1_-G`6 z-!>`6-!>_38k=9IP!?08WSv!zwYADb**1#fY^maEww2;?Vz}tZKt?t>;x+aWid5MR-+&b`(>S%aY)m=u(RT7wp?-3*a=n)%3^AitaA#o zc2k)sTd6qCc2``@a2({>*VqYG49a3^lq@VFp&$2B8JwXM#~BWakWtO{RNORna)QZX zYLu+BAZtIBiL(6_$JqgjtJx~WO=Bl(Ocqn4WMTgt^g2joqU>PBadwE}YIdOFrm+)D zWNaf-qh#R_7i1l-GEsJf;y61}aWy+kansoRl!UUF8YS!ef~=!e2In)yadxcYYIc<3 zrm+*usFcN2kQJA{i8<#TkQM7AD|{=)2RHkp3`_?23{Y1D`eUI9_!japOrOiILz!~A zO^gQ<_s0|6lkUYNh>r&?`|!S)A}0?XjnC$hsquLfS~RDe?i&(5-%-l9w49zuVeT98 z9(;P&CT*^A;q!UkRt)nB)zPNb#Ksp;!NhW-51fg$wJslJFR*5bQ|oJeg!dVox2Kiv zn}J5)-@r!^T+OB~=uS_A7I!V^Nq?!hH$AR{>DejXZxQ#U2ajhwC&dO2@!S*+iFjW6 zxZ?TgjuV*fpOijmL?vB3QAlTcpAnPOO(qGMlHO*-)U;X=GA+Hvi0SF1P9a_CWk$?M z-!NikdckC|W~DD1QBBX7BBVQg(TJY(gsDP$(;pi#J3VxokiPWWM$Ad~o-Sl=`h*el z(t4MW`RPMO^ru_R5HgTHV8kZrW;2Csnts@b&C;G(LN-sYGh#v7SrxKHdbtq`(~U+X z=|$aQZJEAeL@hn5N629M8zUB_C-w?ioIYp7lJxM|LbghuHe%~^-##JRq+c>(X}a?q zA={>(HDbGTo4G=kr5`h5`*guPAv>gZ7%`O2o-bs_^adlAr&Icc)YJDEu~Ry3K*-MN zdLwp8|7OIlX=4+yR;0f(Vz>09O@*vXe`>_;>5-cW*(3d~5qqZlZ7yW5^eaZ}o$k6o z$Uf;KM(mqzyM>Td>Bo)OFI~7$$o}b_MjVjNNrb#Dz0rsR(`j1@IVgRv5eKJnO~@f> zX2hZCt417_o;xVk;pt089FeYDB;?5Sc_UV*M=cg|RQik&N2doY5pqoWH6xBqciT$H zap|K*9G@=RTF43MCyiK>Zn=$+6VtnmSewpUD&(Z}W+P5cyS5dwF1^Z#x2NN`6LLy= zi4mu!|1{#XbaB1~;*9i^?S-6~{@jSO(qncIa(4OyBO2*}Lqg6;zhT6=>FzrU zNz>08F`VwOT*!Ipe;9FoI#?I-j`Ut5E=c=#5^`aBs}UEaGj|qpaeB28>(dFl2x+F5 z8j+>18_`P7-&L$j(m#n97{Lsbp0Vd0SV|u>`byG^_Y{5=>HCbv!%ivPWG~@YlfKR9_mi&f zE&LkN*BE^*=}G$t=hBc~X7u%>-!S?H(iiNjJRczave7q^K4X>en@GQC^v$GC*iZN^ zqm_7iQWx3uzJqy4O@o9tp0gdW9y0qYy%cI%aJ^U z)o+ep*VY}z%6rmt75Ao@;@RnY75AlgFrI~f!%w(+2ZNv=K~S$3^f49aNk2cTK<|b{ zp}?O|pwAb0+7)P>D+A9xq_=sEmCZmV}J+kg>nwbMC;L zXymSnd(#6H&rT0l+?SrFcup#bSiFaoo|j&ycz$}XVl3W|kSJJV&W5c*m4~s)PG6;o z>~SJ{T~)KwrzEN`eOB?D^p}eBDqmK5emda@s*Ec8ji`*Nd+vs7Wr)(jASMnjUNf{zlS>>FGKny3(tSn2|nU#LRTG!TLKlEDNo{ z{KV@9#tNzIwwht1IfyCTCX40PYB^B*WUvVP6 zQ_IxYkxp98=Fd%ME1u`%7z_6Yd+1^O#Yt?K<~}H-jBE z^GeTl*6mB5QhHAMtm3)pi;Cx^e^NX@eO)nnVf<0fOQ#vpna(j{vTJ)k&IRVuQ&SrY z{nOHgmS=ieH=-*&(1;o7Nk+^}&o^RLdV>+w^dTd<(;pbolm5+!-n8pzsWCg9V?V$4dWsSA(@Tu#Pj570AicwgP0~*qv1$6K5u2r7AyKsM^bN~{b>9Q) z&hy4K_v>-Z?RAEj?d;I!9Cl9nyhP7UUmY#EYXjC#x9s6F@N)lDFWN5&la66~dtHCb zc2)GHQ-se+XDXiSmW+AnJf-KSTPa4r?QBFPJ=loObe$2C)AdG7N#9FiR*zrCf9Z9C z72LAgKV!pA9!>C}T)sft=>MO@k1wnXzR5O0xK*%Na@K}j zLdk84B^S!?dYs?%nj;lURyW{+(%E_cVo6`8xm9nf5mqeOy%eHtZHkUQ{gkF;~*2gkD>MizRzEtPCYTfRgzvrQ{IH^mZt8}-uv46hBV(Q<0wZD8;?$DT-&O_%laT z(dWj^95?Xirk4qym)@p$zMmo{`6;5}XR}T}n@zUiT~uf8hP{G1xTq{+7wfKJ9+cRg z^ijpV=@W`)r{7lGmp-Q$GlJr|=^KjYrPGe1y7SY1#Td5R7*R=gHv+@fh{@?CModX> zHezb}kP*|;r;V7NzGOsKI_`K1?w^s)Gh$}C%!pa(enwQ&lZ@z2*BjB3-e5#;`k)cB z)2EH-OMhp?oOJvNk~}wENFq1S@RK|pdHe&#K5@`mYCzECXdKzg4pl6U~0J=(=0qF6FlCPrL zj1(#z#$Vc&Yscfa>X7a^VbKKq1RXi8i42d99Ak~ET=mwL`t03r#kY!hbi#U1XcP8EyRbe9W8-SAsYPLZL713MSYNxa*PXDH_~knkUa+{l zMGL3jQk9fucJ2? zsnAmb8RnpR-1Yl6=x)-1hkWSK)q@YnK9Bs1y6|loYv*5Wd=uGD1mg+Mpc+NSS3HCI z6dB(jV=6>ZvBpzQ&bK{E%{(f-m{){DH445ZEzMRRakg?=&Wz_bz72M4$~L|O+UYqf z?w{^?)YtK(DtNt~N0l8<+Jd*K=Sl0QB~vlY7+2dsi=EJUT zZ`0}J9@8`VF7m8i?Nt>{9dlf23a5TKE)|8VtH0;vNIl`|ZI6#K>NCua-}a&{TqIG?u){t88IpLWnt2anE9VDX+%s4eG3?-h4B~=&iB3# zU2M*wF1*~j5Vjh;pxi%wS!a3vk{XC5+YU}E_xCPYUhdy?$?oO;+LHafkmLux{NNs_ z{P?GUwNsqH;=6xw!EoFcwsnH#ctFXk!A~6#Z)*kN1@~ z%ePFxOT~|oiGSZ-8R6vJJ;F(`d!$n#r=j#vOdcbgN{rIv(AVk)fR8)FOyA>Y`X8g} zFw;L7CC?#^SsBkB9T@}A^GGuQ-Gj(xYf_x8e?kG6j+j}~(QGo>r!n$49WnOPkua2_ zV3os*%;<9Du^eMxP8g>#T_^p9wfpZ2X{@$6>}TM{4Tkyjll(#;!yHt*Tk$ghcn()^T>{K}&g=TQmML_!kWF zP(dNa}tKrcYFIG#1wX=LMb$es}dZ(+_O+4w1Wq`=mkn zJrOIkJrS#`wKiqQJ&_n|oI=utdm_v3w=qm{PsA8Pr7Ay`mU;xJiU1L=I@>i-vs!CQ zhQ2!NnkWh7#dOu>yCzkKU6ZQgh}C^=gu6P;{}I1S(Z9Aa`!}>SZZNcc#Xps1$ls2s zaElTpuM1>Y0N)VEP$gwWXUlv{w@~9nZlCcgvM%bu=767_-wf`r3M$t48AMrUEhN~lWQkYRqHywV1F88h#5%=<6prFwBghWc-j8xg`7af1d*-b8?5CCeyGG(CNAG0py;B$#MK;LRU^b!F+JPY#MKRX62CIEsgDtyXgPGzQ%$Q2B%8P7_7kHMn*7{P0;pZljv5xQQj zbs)pzonQ1%51NPzIjVblyDEQjs&Eq2qxAlCR?I0JUpQmxU)z+p88XBThWV73;Flu+ zGPF(9pwbKrnYI$h&@yeSG{Zus9RxBgfcS96J?!jb5Y1{p25aXnGySaU$Q3|ym+D&f}DMQcABA}yNsd5h?A7d zuF17{_p}(c;XnMY0Ob^yCRxbNjIs}S;qr-gau-Z85qM#vC{tNE84A3xQKZ2d{|#$7 zTY(oYpJX#DCyRl%)Ne3lIpfK0;0<{m?dN35bl|PoU!j_;uMlOE^uI-+9Su!Zm_IepyU7O~v2; zusbz*mT(QGkYAP(uJIIbSxGp}lgp8XY|m^KQ68FtzhGi@$r{3GhM@B(hw^(2vjw(| z`ez#sS%Vu68Dn!ui5v1EVlo7Ny#|=9KukthBuo|{CIeuKLO!*gm>R#GFtwbR8a^aU zttO^M?<7nuCPrUKRtVEbBBqA#Axy0%rbh1r4AZPSU7>A~wBEDtCt%!Yul`pw8<%*? zHsu}PWNw&_;U(Y6gFAD_eg=2!=kby+8(dWGA6ka1zoknq0ad>o1qXY}{VVG4m55dK zYZM<;=f`HgZrgORTAd1@o^JPO(!nNDx+A192ha9AnsIOqQh!E=CN$vSA)ZIm>26U{ zXf)j|DksgQyG8B%X((Njyi6%Hk#>EmkH+!4zU3R=^mmJAL2v$Rt<@&*9&Q5vg3`mU zAQ;&iZLm!s_eR|#+~Qc8+m!CpN4VWEfLjKmxCsD@i+T45SK$Qqu8eRc?HrEF6`+J1wUf|`UuhtKp#b#0qA2% zGXQ-8X$GLzl4byU9cc!jPbJL&^ckcXfTk{uzXz@2_2-hw0L=49GXQ-EB0C0=;zn~d z+q5#0irQ2hPDa>NoXkxHHRm>ovEL>MLpioY%b#hS{HjGY~m`+%}VU#dz7>mMe!^rNgwN5Dt!-mlb z6VnOHH;fX74WopuHRHKmA04LFI-MbReaeYlpA#o8c6|niU7wQJ^)ZIe$ldVg29|9= zyGi<5t#wYD+<_ohTrYQ^UGDRv^jsl%^w(NzxJ}-QAWvK`Z$-Pj$DKUxPPgJdeReiFWIxkqXRC|Z&+!a4zsNYxGiZk*<3i7%LGmj~TtjGz^KYY> z&qkBv*`nl9&!BC%)%_-H$SY1-NPAZjZ@qWL?}voFtE`3nTewz{)oi~gn}HYJJ7hcK z$#UR@hf`Y6?ImSA@WR8XjA-R#Lhus5U!*BrIav|Btv!#{bUYanys&qrK^;%F1TXAe zX;XKpN^8cgvuKNdz(V+eKJd6%4;xlm)@^iURPa`N1!!EinU!6!nUx0?@0iBJmVPfQ zYij?eVHWn3vZQd0w1CTs!fC#IuPF-(*PsjeWj*0ETb^H*6Hb%mxU43e=E`wdOnX`9 zaAu)@!a{t8mW|w2S2mFd8YAD*w)yQ$Uh8{f9r)c8AeSM0? z9jqgz9Wc$xtMbC&dmV<=rdSzh(tJ})V}?!f_qZwMK64mq@n7pC?TPQ>p7>voGW-UD zk%Q4T+vsu|XB0PP*z$6NWdJux0Jzyf#BB;9ZZNt>xH0HomEa&+8R6{EJ;EiudqfLy zU+a7%iaX=EerJ3&bPd<6e~FT7kj8fNBIM5)fNqjz0QwTr3_!mFk!?vyaZ7qFg{_QK zTD!Un$!OozQ7CtHjQy@o7|O8{m0Lfy9C<9q*q0NAa#Tp=T4T$R$8wB)IbqypY|U-P z9n{+Hz>c*pYJcay9{jk$u&`UWNg%@l_(6dTb5Le-#?lf`Utm3)WBK;~0c6+u&Kknf ze2Yg}ML<8~QP$y6)u1Jk{V-;UWPPW(cDdTHB!u-*wc1*yI>8I;qv|%EY6dUd?MMUh ztbQydtiJtTWUXr_-z(HkO}sK?SOZk6a9K0ps!_NM>hV#n%_nM}#aD;^<2K=60Xkr|5Gg0dK-og>S-tfkl%~pcPR z1OiSMGqjdl>ZbSKJt0#*rf*mH?k2U(vq%p1zeN>zxK)Gsa2p)z3$?Rb>*P=$r$dc{ zFAYa@DEUfX>s_p~@HRW&yUZidF}MuA-FlQd$LrsX{22q#?SC;M!X$?m2A17l7%;^P1IBVSbXSyoiK0K#b{hNwpt!-%PFB>y zX=PrpjQ^;DCDqv^#<&?Qp^}B~C@8>o+_C~+ZdJSgRx&DW zk^7jHcHb(rSLOZ6z16B3PD_-ZJdOZ1lVCHpT!v|TtHl^JpV=Ir7t&>v)m(<8CLHZn zC@T2J_iFEMy zkK)<&B#XZj+GQ;!&b{Fv*6KGV62hud3kw zYKS{ja*o{}^6gCN+F&)<`OG!M>X?K&cw|#8Zj`h)z>gBj^*+V72B*83i02-syIH9M zxp6~MIi#p_@_htw1u1Jjr6I+%_JeVW`xni_hljNuclY>W*B7(l#S(*XANGzjp3VoD zq}fHze4S7sAB3zt48l8WueDCmAjI!*l!qrH=kOE+BOG`A`1l6R8DXdN&qyj%{p~n4 zjj&U?N959dt(%Z&8=)0HLVu0|VT67P+1y}#kfe=J`tlMS>-aB9eo4E;>u&)+V*vU# z(hNY~PMQJeJ4rJDeGh2{pzkBi0Q5&mGXVW@(hNXT6&v$XDqc^843KK^`p+;o1LS^$ zGy~9&k!Aq;ancMxKS`Pa=&z7w0Q&2s8GwF@Gy~AzAIIjBgPtMN?DO}jb-<94O5(J81o24`|3#ZVFK+( zDDrruVeF4I!cdNVp>iJ?TaG-IW9-WbLpk=F%H2J-9C<9q*q0OL8f_Qx?Co0X-x&Hv z<078z!9~27uF?5Lyc&&*c;9F`iIjMNQra6$9+hD1l@JEy=};>7?_`U=Ij%&|2$ZhTaHxKyXG7(-|RuK#&pefFL6{ zVfKJP53jWzEegW}f)ggD6P7<9NEjXvBn&O$z)*|6Kq>7lB9AR%>{}!Z;UPdtJXkPhk8sdRkFODE*PlG< z!Px5|%LiI5=O_THkJyhX)QPPh2lA zf8dZjJa9yq94v0dIB&eo=e-1;RJW=>Q( zo{8Y`Y&*{CTj5X2{l4W^H`llApnr{dEN(Egw~F5@%`m^sNd730VFCP$K!yeI?*bW` zxYv|sSjhCIK!!P}Vd<8Kd;`TX>XwKACj8-X`}y&_c*36`w;v+6iup6)v3@Mv($ke@ zSSU10Aj1OKE0Cd;oU1g$LZ$(M3@y{FuQLDg+1YI&dkMO$ zLiU?Ov5C`q9`>f}uTY}wOR&QNS|Q46*<*z_pJb|Mu?_d5fv5VWM&!s32* zWyBpAN2_|faK>b(yXPVGck!A|{chKE>hU;3QGnRb7c=7=7!ZQ{*1|X4Jp!6ZWwA{la%Q?UcZ&!2@ z_o12m1H3i99R0-cbQ@;@c}#CS@J@71Ph%R7 z5>X=Wv9j_V@UJNH=|`@|-ftv)^;;s_TWbzjIt&E}Z=waO-N}?BC=Ut~W-_ z9>p^-c6Rz_-`i>4;0afq{2TO1+)xh_QwP5!Oub7?o%<(Y>RDpy*jI$9SBY^#NM04D z-X*5aeO;J(mY6zrBQRSK+&XUO@xmHz50mOqmQsg~M~mZzdXtzsbCNI(cw*|vDZOEo{(8+9J>P2E&%jXGG4-!)cZX!&*M@*f!K$v=tm^yAtV%BT8 z^?e3D8*Y6UgB2z0#<;=I-})BTdfhiL?d}`S#Qe|uhM}WCl=}}^hL_c3+4g*BomHM+ z$LF#@XVm!|J@j=Y`sx@RdT@>42gqITL_G8{fyzHr$#<^DCxW|aF^*S8jLO?^l5@G;}*^%X+W`d*4JtnW|GZe`7U%X-V2 zA?tgRDX6{=`J0qA^VRni&Ph(?%9_vW2Li=LR#vg=6p}+n5_T`ObmJjb3E)|bh=e{o zw5$NofrmCP0QBA=HW)>8=}FfeqK&)^`t1-tX$%0JcIX8H#iffEIYZwR`XKa*ZAudQ z=|W-pu78`>myvW_|28dvUORMYp$J_zf19SW>TO!u(oOX?t>)4}^S5cbrrxIYicP1) z+qAP3-H~qt&y03NELifv;@iOT58^)psJH1SpcenNPSqvUXLt!UotIEuyo9<5!tl_{ z`wV++;+=$1yk#(o_Xgb~JpNmnM|h)nDDPiscUasF_-ATv1S|)S+ub7%E97z4P##&0 z;vuwqghxqB^Dqd7c&0*ZhC%*EExmPKPJrp^iN1L0R22^2B3dIngM8vx2r5w6tDj+nGC@E0V2CXBE>7D zI#t8jpS9T)66>n9uzuS`f*5O@Hd2IFNS57SAu+`(B*r{DQ$?MfpCizIb|#N!XU6{Q zEX*lkS2}E1t@Sg8yv?9sT{QmDIn21B@IgKg)%2)*RHqec>r28_6P;FgR{0NE zlUA0tg|iBkcDr%ui(Pg2q(FMxu31`x7akI*y(=fh!3$>YeZQq`GkGoadL?!sQ+L{+8}+ zD*Mf>lvY-`hu>_DGQ8jDL08&5_hEkDAg#F*kt=`ZpBX|@Q~fR zWHEo^j0Lp4$LwSEVnZ5^8I*P&yfOn8qeMVL%&N!o;D{vITR8pBJuhdK*j*fGHC{&Cy{0V zdNOGSpr?^$0D1;#2B52?8G!C3%>eWq(hNY)C(Qsf8*hrp4DtHS$z%ZLLedOC{~n6l z;z^2&=LxhYmI|6fOT{0^XkRMG<5I!cFBQU2j;2$&KaVX(9?LQI<%FRe&8%{-j4ekV z%Q5!lgkgPU7uq7v&Z)Kj&XDV?7;9V?tLM1LTXw(5GsQ)oF?S4%ZLwzW)>{8$=!Idi zCLfEnm`+%}SW6fd>!L7w$Dn)ETK_5v!#jo(CZ-dXzhg)k-Z3N$D>xm>YiREobgNn` zV(2x*dxjG#rW2aKXGkdCGb9u?r#H&x<0+-RkIAFW8GD-xLpge`%1s2HXuu#)G1u`sv?-t0= zN?xfn!$PL_3uIUTuNTO$0Nx~!p^5vT(hMzqyV4BvKPZ=*xMeAC(%s6*&`RE?G()Ae zIJqTCTYH{6ev1C_Z#X9*r?&6x8Nb&~PVp$aCZK0{lzkJ>22s9huyYEJ4#}`*u$PL@ z9T#{8yDMj4zo*6De?HXo+1O!uwkR1PgGUbbT+riP9%a`B^a`TXj(t}Y@;;xPofxuT z>rwV%KtJG7c4I(qAxhEg$D-&Dc?LVQXpxVQLB-j#P7YeForZ7qy}mH}v?%of&tT^k zo}kplIv8>L;iZOy5%z1`r|*sHJN}Cj^*GKZ;d^WKyd8kl@8E^Qk^0|w>V5FS_tx?P z{0|n(%cJyz0X9#x1~9oh!^x#k;QnF( zx|gd^o(2A=ihO#R9evHgaAKu@`45%pQ}<&Y@#j@}l@5=Z;{D;#W)k6arTn}qZxT*7 z%5iy;aJo=Nyo- zcZE~`s42l8+1Y2f4%I(3mI`ka{w`Q*xQAvw}`2;P8X)0BBqWyTbRZ= zF^=&h6{g-I#<88e1A)!+ZgsYEz50xqIHr^JDyY6Armnk0nEH*Fy6rMy>N8>-yUBZm zsqcuX>#h=}ej}!CyGEG$jF`IY24U(iVjPpn&BD}g#MEuK2~(dDQNR5OwEJ1m4K8(@{dI@Vk~Vjr8RYflyy3}My zf4XS?^g`#<(~Ed?OI<>#C>=6?dZ8=o66$3(iB8Br3*?R>wrNAxPW&BS6{Z8`e-=pB z3ztxL^XWzV_pd`Q{%f7CJE+Ha2Q`a#P*vVR@fykQm3XUR6z?gF;>`n|K6r!BJ;I}Z z_XyAI{mboAipzQT2oKzrorh+lcnro5`-U`+qsHL@(*i(083_x#7ngQtTNizVApM>ei7=Yf1Gy~APl4bxJAKP?f3_$NmngM9)Wmi$s zFkZhOnGC>u8)*ihw?t%DQKWbk^)TCqTN!F?S3K0Y)>_1ncOGJ_ajjB=c*SGc{S^;W zyy9WZI|DXVXWgv`gtP9+JnNFjGdyE|h8Ko%G>ghD9b1k(mSgP82}3!WQ0115Ek_>9 zG4|zzxklSn6b)Z%4KehM##I#CgR3YpU8D1>C^Z^aQNGdaFDX%{l=eoGMqOG@AhOG-Flc6CKJskL@13d7Zv6DFn;mS0^-7_P1) z3}&TwsYQEGN_&gQV~ZI3773dl$sPHd9g=6i07qY}wN^3Ym5gzMI^yE~!xd!J_mN(U}y*BFDT8ha4vsR zAj1OqRe=l(;5P*_G;!ZinqeW+_XIMuOg~hbp{4&zX@+?rS=SBuSHsQ4^UBH4O8!!5 zhJ}(G^KK3ZXZ@J%;Q$u+j>}N4YPO!E-6i5ze)4}&Ta77X_}Dz`#w8uQ_TJ&&!CZtjGvG}6=^Le2m39}jQ;5Sb6=QtDz@)M zUzi5-N@%jwxtVtJB1fN_k8-{gC9+=OO_4@)Z-cTQPJ`jtEIZn1PgVpk9GhiLgU zX5kvP;eaI*3)jdExXdeDgE!zZt#H~jKZMDw!ZnUVewkD_ZJFnnIfc`XIWAKQrw#p~ z(|N0z(I4hyNM)r3^QOv(!ZpUdDx-YXAM7yK@oYCK%zJ!`l@)o)kP#n+__!ep5|aTR z7bfcwlkvVJOqL@i!+lMdtVT>mdrFurMob2KT9~XwOvZXfm@Gw1hI&?*tVB#kdJdQk zXE*oR@k#b!CYk326_jm=$uz%WLFZAn|Ir&TJ&YxN|J`udP3h*ehoT7wYBD3VJtY$F!Xl*em|5pzS}qr0uN0{?J)L#~AiRepX-~ z*r?$+FfS_iKWGPR^SvGn^%Ujf;6MG^WOxZox@q-v*CC3-h~$OU+WB=6&~kV z0SC*{%+O;>>*x3E^MO@20vo}nt2Fu<4AN)`r?a*yxRImvwN_K7;-AS+^CMzB{^N0wz4qZah3H?DOh8>2E=MCv z#sD;Hu`{jei`TCqlL45x@#@GJfPOn^2B1$P%>eY7q#1y2kY)fnCCvcz`J@?uzK}En z(CbMv0NoWa#9!cYo0`KvhN78ttzz1B za;J_hM;^;D_T_}39LIploiVl?c`V1+mlK9^94{(&_Skadu^eMxPMEX2U1)HW)mrB= z^p?kkhBKC!&RF?{hKz*^4H?S`vkMIl(^~7iqA*-&IALNsVflrIgyBL%!q!?RyKiGS z&}*#=81h0wIq_|b6DKY%Bn%GU#wdvk3C6tOP};sZ;bc*3UEC%Q-<&W9979|$FaPF5 zP^$ zIIBsI%P6N^5Avu7W3PuW=+7BY<=#EE9C<9q*q0NA4_jDo{$UH}&RXle4EbS8V1`yG z1F8$0@L`J(`>=&1KWq`CFI4zn&g5KNYrU^cHkm=TGI-f4#yNo>%}9`a*wQW=tC&8T z;oM$pUDGZb%phACf@~IRmyHYdybriK$d=brV0#~sM_V%XwiE{8TuD^!#!mY zoUmZ04%e1jnX`2Z!_WsMFhg6EA+&|X+S~GaXiJbi(aGkTR%_kXE*s1sTN#3E7HgON z>R8#+o$Na#`}TI(UUhuP`NUM%2}+v^5;Y4LG}tKo6B^q_3!Pn!3?sMA;@O2cG-^y*=PvYcsA%k7k`E^ z3O|Ba&hs#VcBdnc&coO{k1)vLN-x8R0Kny4fCvCw(*=kCz=d3Z2;S1}$ivGe+I8~2 zA}W2=?GM||FI?Z_n-!!O*Thrzy?Q(leE2m|uq`JpvgPz&QdL7QlXi3=809 z0vTEz3zcSQ=|QC#T6!y`8CrTUhVd+TX;p1RN@#Gn)nWZ3=4`}D3Df8G5U@RJz2Uq3O&1x;dGG;yOcjg5Vk2{kmJyb76*E2XOii`t1V?Pi@Ee|Gx zT5_C(3J&)u2TDMXBFbtxQi{4C=NTL_MaGGq!LgI;gG&pY@$7O1DIM_KRg2ajsl;Iu zDnHGO;<(90;iF5>-~h^-2B{oJt~^p)3Gx(2PLO>bMbHQwG#=HIFO;Jupq%c7a@Yiv zbG}fHn}BlS7s`PX(4!ox@#E0Kk52F&JH~c{|Lm|Aw~j>-_bHnOQSrWrgQ@WX{5P_3 z1YY>-EsiJ0(@+90ytHUY*^7w=6nHg%2c>~!JPj-G!b^*Wm+>^Xz+3LiX^M`+3XP{R*c%Uwpqs)sj2w^7-WrPFUs2?9SUSE&B>2}B z`5c|DJsOzc^9!LMUxU=@*ANB&t|DK<)%Y5$;NM^5bKtsmYs`ZGsUn}_*YP!U!GE~O z=P)+?Z4GSQNyl7>rN_o_+`1=ts*Phvz|&3M0*&eC<*gdg;Qy$|=je78(!d7)g(9DW z+$^Nw9k)K2SI7~LzXi_$Esw2-2;i$O3=j=;hJQ~LIT&A411@|S`wL&r2eYuIhWlQwsWv0{ zH#E%&?widn7|8$RhsM0_fjQXyGhCEtybI?*&vA`);T+^Su5m7$13bqy#)Wfm=Wll! z-@-Ytb6jIvI0to(Yg`NGfX;D^Y2h5qdA%CX!a0z`{dS_UES!Tl&#!SToC7$=HHO`X zq#Cb|*4WfXr5upCJ{pt4IS_L>8jHd?0CQYpP&fx(uBXPHa1OW}*O-$IZiTe*g)bOz zt?!me8)2^JZH!402UhY63@rUnjK-F0jmDAkaPaunxb@M-kBM`Oq>Z2eaS+)Us!0zw ziX>2*%O7U9}$23(^=xHg;tZ(lh5^99GpAs8S0 zXKxpU1C+g?YJBkRqLT)gj391koDiEvY`QRw7h)PNvxI4^5YtfU6{c}QOv7ZZFpUvn z8X^P2G(L!Fcx*0AV}qE6Mj}k(f|!QIB4HX6#55$f7N+q)Ov7P2VHyj>G!%w}X&eyK zFxW|$#sD!5ffd5!|HQa%C3^_dI3UKgD%nSv#se`8hy8_VED+OBI7pbr0Wl4O!-Q!J z5YrG?ElmDTOzwZIF!?^Q6Oc^SAh1oMJ7*2%YmDs{)wAaR_>mW0SMWz(a5se?VrAik z0|K9LBWz$%0;w^<8o0(Jr;4qyK}{T$ixkXF0V!n@-hy2*DEiF z5k4T#^J*j^FXNCmQ(g|OxWQ0zBe&?-yMsO;;BdoZ9>>>&@$UP9zhYx*A26@{6~41Z5P-9E*}_pN}Z*U{Y45dJzFiQak_68x+Htt}0GRp3%)uhnOZv$Vb` zIrvo)WLsX}Lg0$}R*Ltj50QC|n5VL;)hv5ZeW}>1>vgiv5qoWYSAnP2@u*)KI!55d z%%0Zw7U$ynLFCwH)+1;`9dFD2r*ZH??V4A|BvKl}6D`u*psc)x&DCyc*)H~}_Odzl zNq2pBmAZ?v_GKx2XN;`ec-2>l#XXi)i*qJePa_=M_Lk&iFZYfRiBd^t&Mr66J@$)`Yir?KZ;`peKWg!M$_PA&RY9DW@> zDd+S%gloP4aPA$t&46by;F4Jct}Fn(1gJhnm~zY|fJdSLaK0U4?;(di-QZ+9v{wP( zOgpr!0C1We+Pna8jvbn5fNI%}KxDw5sn`$!{Hb}Ub|(Ta6adbvLr)u^&&@fh4t=2j za7G>axB=3X)9KKM3NkpC4qa6M4kK`}0n%eNfzt}Wu>@8dplUgP4(&~#xKUq>$!dsy z*U+|GR}azC-(niYPZVhe#bB=t;ogZYR|T9thkk8Ir64!u*^#!RA6O!Frd8$9tXW=>?#q^S%m-eS5$2F;YpfUgk7%#p~T z>5&=yR|v~DzUKc%fPcWjf336hQNmaFQNmVe!Z7{@qcXA@gTenuI8X20BPS?ai_kvU zSr;h2b{fX_OQZNA**(IC#qJTl2zHO~C9iwrVuY3>WBT+FK7<*-r!1r1P1XqCm%2yz z64X6{bmu08*=J+;=i81fOCCg@q?ETP8o`Cq7BOjf!)eEug&Ti~B^Vz9*$bN^lhAoe;uQ?@prcDKE}09mkV+!?AGiEu9gXxR|QKPdvZGhb1F9~c!r7_(wmv2_T9|n3@z2|dqT~z zPUp`fz7XSL=%XO`J62u%uCUG@vf6_`WOcyc9R5)#{^N(6E;$g?lGTG1{hk$06id$X z!fmTcx%n5vY;pd>j%;iG#V}i$e=*GV=_jtV2V%?k{bIqVxU7-p-&&SBq;+&S31 zbSz^2Yn`pV!`HcYz`m?9yp($fE{V28b15;3ivt#GPVxqDqV68yeA~a&mRmZt@icGt zwf+l0+tS+Qm)1`~F)pp!qPnacV`a;Kv|61JEy%W&rxHq#1yIl{5p;uaRZ|`VG+0>bY=KsopOMkN!jQ)mhOu8^gkia(6>QCAyKAkVGvsn7 z#u{fO8HLN8W#?B4TyvS?n#-7<+%dMblZLCce#OuW!`ewczQhpI3Cq_`3B%f16lR~K z(eky{Z;Hb3NtzQTrW2Nbk|tsJB&{gSK1pNO)mpzV3d1L9PMDZZSpG?xgyEAk34^WK z-H3YLEZs-kE!6CJ8brGa-~jB;hcV zM2cWwKtMnN3n)@V#ekql@xTm4xc3eb8v^!%Vxfo)LF}m5m8ar+D9?hTiM?WZ>QkTk zjQ{WNxA#8h+?h$>{r~^@d}i-`*4k~Yz1G@mmvgQ&q`G^qq`B^JCCzo?B}&cxD!_!i zz5Aun_Vx5Kzy5lBy^nxykLEcYY}$#JMWs zt3v3wT`VkG{#t^HhXwQ-2`VNQ(0c_{FU3V&I7l~1z9+;o5Mt-zzD0doMt*{r6a{~f z3W~kef; zhSZ+MDdIdt;ELmY4OKiO)*v;e`w8>?P>#Bt0=ae+c0xYu)s9K%rU_vtJ${=Gv@>|b5Sre@#nyT z!H9->y<{;8p}7~m^xUwQ;?%LJ5fE4p7^3O9yx)Hr@mt+zAp4w@lyk6 zGvEyq+SMIjtS{btSCExQYybcIBohT;QKinWXD_(e9oHzYSCg>8d&C;zo>xCLzUkFZ z?`&&u)2p8bXk>d{{nW6QpNY|cmJ7N6)RTTa-pex$q8D<^07IFE&kH%@G;rlYPD92* zF7{G`H9j1ND+v7l3|Fy`JI}9v+UIyB#OZH3_d4#YTF3FdprNS=f{pjVkgy=rGGk<; zRtqB=<>s@JlY>qq*E-~pdmK`7ctc7q?8rtrqN5w-KJqCUhw{_-hzwTEgONQ&XNzYs zN*iVA*i~&Qs_v>TN=rXZ@H{Uqg(-fAa)T*gkg~skVjVR|*{%Z83zSws`XNdyAiYRw z1*DfMt$_40r4^7KAPUPbrL_F|tJ=oTQ-yZX=L^xhBoIz6y5i)b8%8-b?sD7BE+?GI zDNf}KW2Gfx!m>?W9-AIksFjux8zQl$N6WU5JuTbxq-C38E!z}_Wt(Uoo91p#SsBYV z;qhsWjFpwkHdn^7&6PosSY?VvRZA}?gcC)I6Get;tMfn&*mmsEdki~q410Xvzrk(Z z+a#UrSz&k{^s~aUkcT%8vOP@gx4wdYY>fWpKWM{Vo_bI? zVE;-`b)kSZsM`LV`cU1wFewcb4{V8`CT;YeQ$1|Qh2dSsy#RtUH$8w8Ly(?yhwzl}B2aK2hrqA=daJS}#12r#jXgIV{#yQw` z*}ssIMPoXUWg6KilM=u-3(Kc>0MKL37w62YLu1RcQQF6}#LzPxQdN-vNkX}v{?6y*}+soAm)=C9!t#%fo*IEfDYo$0@E5k6EYCPCq zH8(cBQladx5gTIX+!xv3kUiO7J<0wmRwvX;cj93J^malxbwY9Kgkdt72gzjaAyPbd zpBVYnV>5RG%`Z?9mXo84J1M(cv4PXj%riNa zTFYGsc1rDP`J}klPMt=($xgXt+Z3}h*_1%7;cBk5M{dz@b2a6kL2j=NI;j{xtuNf7 zY=#@$nc5qQR6ljHXdrWG#6?xnTxgW9lLM(d>e>+WFYu>S*Gd2Jt5b5i*1AVFmx zRCU!p9GVbnqk?c7HW6xawux}NrHyc_RU6^fgN<<8RU4r`L>uAe!4*D`x)E@p2iOSH zoVHl(%T#TITei-dl}YCV#fGc7(nh#N!_`y)pF!`oY=m2s?z_SD)WXm75c;zwZtOtA z+>-LSp+kTnnw0_c?MOXu!$vH#jc}o0Ba|#{gc>hxgqpRDu*Fb=6&rE)^rUUXH)SIZ zk&R%dYG|V@KrjhXK5T@Ph{)oF%r%hi9CODVhFMw9wwn#xP0!26 z$9Z{Cn3wlW#e&YM#Q5Gc?0H!Yk8>Hi!a5(RqOg=1nAXu;iT(|ldc=4dH4|N z_WA0Xbo<0edyj5E2P~KQ3BwetHY4?gT4(1tlfsGt5b2Q>rLX=B+PFOG^>fL;W|Uc1 zwKKVH8Oi8RQrAFUe5z;9Q)X>NsFegYqpj#_ER`%2owlSWYEysp%q>>Ft*M5?v50xu zm_AI^{Et*6G>Ba&{Bt)P?1Ea8)|rkCVdlmyBYOR#ix~pbTYgH1|T2+iqKVG5K+K3IY5!WxZ4%w4h>q%;@Sn8~n ztZQv)d3HJBR8Da!XPC^uq0)`3MT%|UoOa+c(2ZPSaJ^sX zXN9H8XD>BSVF@(XBJWB&pfx-Dsh;0oKz@7Qs$EX@CKON~^?k7r(s?zLbUu4of~uVa zbt|?68k*UbK=$oS+SFe?bBh%_poa4wTJ7B?YF}(gy6xbqyXC4$a1Vk>P_r@#isO=9 zI(h=_C41mj<9?u3P>MM6pW8jGCpqFnXDGFumjMxylXhzA{h3v`L=}E>;u`H+J zu(2R!j!mDcFjdCJg79oC7#S-oHx^tO8w;)siZlkM=ycW6%L(B`k>W&=VX+h8UY|y8 zZ2CD0Qzy9B7dv5O>_mC5&z<02U+RPg+?_Z}we)sEICVmC>V#o*Uc%vW=k}C41FzPC zqhIz@p2{!#=`k@eTqTrLjZL4YF!i6Sgt7ld#{QRA3Eh9L61xAp)Gd+vDxKlss-DDg zZ2F?mTEZ078cXM5fu51(s-EkGKFP7^yF~T$@pu#Ydz0=PM!}HC4R#++YJ_8koOds^K!b+x(8mO@R zIlb%?1}bz(vp1@J=|F$RnG}ZVzu;$uW%afI(GC>rWZqgY&H~>;c2Ae$LYf$}>l0LL zD4;h9svR%!p|Y`+y*nYqkm_0BEkbBA7H5ij-k-9IHPw1PoU)5YMfQ&+sF+khKPjj> zBQBL~;=tNE##Mdxxs*+Os=DRbMyP#4Zvr4cnmbR9vcykjsgmkG zfVmhZe)F*E6quI*XHJ4E_UOdXxPND6f-BA`#nk9%n4jQ^b4v3y)M>7Q+cTXFh`X^) zGZtKNU(5^+<;-4i#eFfe*+18onaSXa`(k2t=u42v=_&CkEPl*tG8dP`#PZkya~oXo z4H$FX9SA(f3lhtVgA4JQ&l?whkU4E1M=UPyeVNOKTVs>&lbOSYi?zj`WDwQpPnny} zW5q4Xnv;f$g=JZD(QxZ4CN+-m%LJQv^NGWXn8l*+)Zw0<+cTuh8An=!8pw=Sn< zX2@pg&RHf03;U*h9dk>5nwj-xs&C}xlwfAmb%vQsf|*HgH_Y-UnB*>dmtp3VU}n^N z4KtSnGm~yJ%p4NT4Em5^=8j-y&h3VoGlEH;vO5TZ+D01})}7{$GMPP}bwTq+Ftg^1 zDi{UF>r1-%8%J_l(vG{@g zJ&O6VrKTaC>6w^I`o8K7b5xn-p>Nw=)* zAZtL%TUHth-?H-lv<9JkT}JHpEi3>0mKa~&vJ%VnfqmJ^Mi5Icw{@28s>JTn^A@9% z=Y7COb<0X?qZiR}{Y_tFKm3RC!;g_44%3G=K831--z^t2q~tWR6E5d(WTU*c0G8(k zSRPaW$O{U;pC!L$WTSkO^m%<*95TzX2$}5~ET3)z=yB_JNN)W-^d8?~>Pd8~yOC_s ztrrc41`==_!M9dQzV$cN4$hE@$-`1D!RJ+x zvFXbd%EK~ZLu|$M$>$B(lP9Dn`Mip~r+%0`n(wO#^*il*R{a?_9D98ny$;{kzn3CN z7h&)v)Z5tmu(bC2U3>`VU8thzPBZ9tDd~w;Ra9nBGr)7DYTVjfnfe(jZA@RLyicKX zTm)Ce%n8Low;G5CRjN`eV|O-fmT68nf_{dzaqMTP@px)v<2%%8+o{S5n>wSfGi+y) z0j-5&KLZO+pjPgfs-LnsuJSuPF@zN^djCt$Y5(hJ`sj6U@AvgxBp3oEwc8~|N1mKW zTjfcUT1g7GR^QjZ*edoDsTf}q7@Fd@e}*d}bh zNh5wniLo2we)d&li^-#xpk(34+?0gd(*;JXS)tA?;1bzP12D}+=4^3_T! zAg%gCMz_>xtCaw7dwhi+K>V1ylHtSaN>Td7L_y<}lE(c~bg)cNKfFwMsSv%(1mUzy zP@I+thM}qIuF9*cF8^`?ddmx^@`_V=!zd@RT<%q~%L%7)ic>kmXjjzBQiy29BG4bC zbwcZx!=>&2EAqnn<^7TWRejHX4Ze{pta$vQDGo`wR`|VhDlBtme=<;E33S)uKo!N^ z&p22GF#DT}E3ABZR3j5ds#tHlCF-os<$gnUyWQ$_G8$nZk`tc&A>~nj3+SH{R2?o$ zTBL%l!Xj9nqUADI-In^8>ai5rY^kfM9tNR2=lfV8>+UTks<@})UI(|;e4f5il?4CS z-6nIf`S0!rC)=F|SG*K$B0@!?pfUa0qN2d<={J-BNrfzB;l7)oA879}kb|W(Td+~QJJq0WcChbrP2gx<$m!$7#S zrRB%bL7p)bg;iGnZ!hFs{;bDACfEer&v1s$M>!AvqWi8)?)ra`sgb+ig1OuO?Skfa zFh${jQ$iD^+cky$avmwZ7awQ(y9!r?K7E|2BJrLH^sGJcMvX1$;CtRhLO<)|_o5%A z1Cht-uF~;(FM2Gz7k#4cL2d}|MW3VhqAz8Van)hQP;&j{)T4PwTccva_yv&-VG!-X zotiR;0prJ|Cy_pWM6f(j*qj}|!{mnnGl+R<7U6tx#WMF(nojf50ee*5n@;Ct)6e%r z^>a;BtdobP_|VhPM$JUQS(AZIM>Eo$0F~JdDH+lgW8s`uDv@5HmNsxid#$4C5$%p? zO6zYHw(_VbJ8@FGkuov)?lSp-GWp>$dApPT&6rOp*>e`OIn|rBXp9NzEoA8`Abp+E z3P`KPFsr$3zCA6Z0+8xMK)N@L_Irg?0P=lGDbUWHUN-Qp4j;enz$Qc2YQXQgP~}VGyUGbh*#ZE+?GIDNf}Klb?YPt4RRFq(kFO`b1JOl)Nn?*FLN$&PK9Cja+#kMR!WNZQ4xxg z9*C$6B~YUh6`}-ch@w)IA7NkVh7^W|ck{Etvf(Tj2}cQ>9%E+D)8 z4RI=Y7C{@5_mK^!JmOKA$3`KoxJHymTbtsJR$R;+on(Gp;(n*O)|;oHS#B=r|>z>1-97&utCfRe$$!vZ8W1}+vLF*5KmeZSV6bQ@w}v3$?WMZ>M9g982*}`l`Qh?rjdrJv0O7(`H~^v}?hyH1CwjtlQq1Dkd#tGS`&JOj}B(MsAJ? zW`^zHf)$GvoKLYTTC)JCSh4`9Sh4U;Q*%l6nn@3JTjr2pX3#3b%pJkZoITWj6eu$& zY?gY?4|@7ac%yxb^&JxWEz-IBVkPhD=WU zhB$RMxWMY^`X31#U0{vZ`mYOMiEjjvmk+!C6P0WlvGwn9wu;$sw%3Mieg#%z*5hGo zz~o_9OoaVozG>(|3j%J?6N6jO2m)@m>u>rJ``5pcfBkg%*UylDeJ!jB{!LmI+LIuCjhBPOf|`P}Yx)Ciyy{7Wpe7We;Te^cMm2cIH_CPukp7C&3P}IE(h5j_O=$(B|5IrNq`#%K0@B}6S^??rDXoC? zW~CL7{*lrONdHu61*CtWv;xw+yN5~pOoK{%zr{i(z$nKKg2u2SIsT;i0>37TD{!2PwvDVaZs z1z}eyaDOXtO6LE=OLkqQ!2P4dDVcv*IHkb-v&1Qx4+^IgxPO&6CG)F=QwrR?zJi}h z=Fe7Nlmgc%aZ2XX!YKu=zr-n-e@i%}z_m)8lKHQMQwkjYO5>+wK8Togl>#@v#3`A7 zN@JuHxI5`?SQ#mW%ueku**&Fh2@NX~iRRe!mlewCm(=o!#~{3xTdhnCExz}oC#_5r zr^><#Lb5$J{Z)mjGFA|=G9zPUqny;o zg+V<*bHEbat%S=@=!!eGT;YLtx_o8F{QpPO<{ zeyK55XDoME0=Rd0xx>;^U-;aV?9ABo4}0q4b5pTCV^e+Q=cZgepPTBbFMMuFwrXtp zCq4D?xv5y6v8lfDb5pL5&rP{LJ~yR!`NH1~>sg2Fd^@0LUsC-~<4fA_JTNAp2v0698m%3~&N~ zER6w9XhqKH78h$}XLQbYLYy0W*5eak`3V8Su!KF>&kDoyVSZLvu3odp8mO=We4K#_ zL&;lI0F@iOegwTVR(L;pB0AZXZl%Tcz%|j6^7^M_*r3jaF9LMK!p|H*#;`C z0Qssj)GMq2a|0Dtfae>iuma>o5sE9U0J%vDP+K!p`x+dzdCVAnu} z72stCDy#rsV4%VZ@P!5{tN>qZpu!69r3Naj0AFUH!V>5SElz9R!3bwdpGL;G2jP3w z2T{Q9S4@y#?_tZxYUD93_p?J2`d||58EhHZy^20UXkDs0j6_lBs04j%75W50waX#t z(|5hnF2|Enc8Ot8$?++>F5efvRgo9-3*oR7EqZu zLnXZhRCdl#iEjawu`^WiTR>&;43z*EP?J8G*mKNKxG9Dl@J$D znLEMdndXo51XAt&fGk$E#f*;Nt zHFwYYu`R1Wz*_+*|3Su}_%SUjL%>@Vz-yIW;H?$`Z>0eL`6}KD67W_J@H$s3%3DSp}_yKinnqFyj2T4 z`#WX-tY!gkB?Ess_?^>_omt@m-s%Sa$|~Nf7w}d*@Y<~@%3BEo-YN+G+A7}a81Pm` z@HbZRR?L96T7tj1inodeycLwqOU0G$j4-<^x(!~;Pbu?Uh znD#pBnN`tn>0k-B8X7MBD|a!if`&`?%KTP8!=-m+eyg70(zz0DwKH7$R_;_<D1FX0w>!zJe>+@fx{LWh|XxNYwZPG5~ z)%X9h=R2>|EG$a$#m;L@Bd=oR)wkiZOPyD$7uG8If4L9VKJqG7UbLc_b(~k~*vJ*; zFLGXMBzYApuYSuVn|5BQXd_pc-{QR1Qt~QR-qS_fM(35<@?N3xUgZ8-bIGe%c{|E` zx${bu8@a;#)y`{eCa+@U{f6?s$a$sSyql=JKXP7cIC&K-ukI;kFL7R}JTEjV?>r^F z3>SZ;{mR<{nq5Iq&t9qwxx##JCA~sdURea?y+bm2rSr-(G;)Rcmw~cf;u+6jI9<`R z--T@S$Fmg%f)91>jeGiNxkt?v>-RlY$1FQFcbT}(=Puh%yxZ~ei4PF3pYlVdUrO6` z;{D-a;^V?_2UN#26Q6RtenLOrww_O906cczotrBTnYhyrM^4-wfD`vB2e(`3!LIax z9~fJ4(!@84=ZWtMU-$DE_=(>-sm@L`nY`EkLOou2mWn<%d~I~!)ys;c(8Q_AqR$gHSDvQl3yo466R#jSeo=Gfl|1Oj z)Gk%bkD^Tq`FiIQXySd!_r&JP%k^-l;VLr0$31J~`|(?FJgD4j1mtU;G$qhPgJ67w z-;C44C_!`O%}TB%NP`*9o-~f@_Z7I2|AaX@lRaO*TLmCvzJ754aH=(w$&#-iSG>hOt^Z20;g27rsmfUo~rC5No{dM(dW5t;7ww+4Xk>C0}fe@g`*qrLvBN)cJ? z^_L1T+gx+4%a&T#y4Gu}X$~_@9$RSV+1q($nP>9YGCR+9&NIs_lSg(rcb;D(SaX~6@TSGwjfx8#w%4SD!VHF;*4 zS@OuvhCGX$XO?*-k1ebF{5xcQ4zo%gTU6)K%4QC8N*-HM=Xs~|%rc|ou?2OW%bjPI z`6Q1mr}F4G+Gg2IGT2-?!y$7RN;23+Is-QbXIV!w*f1(Xah}=uNBWJnv+0=rrkSbw zwlsgE^UPCpp7~6jXMPcN8`-EsmC=n~B@8EvI?)KJdyLmnLwLT|&-Xdpr0}eb+GHov z-uTGIpA(Lq5RM$Vi-n`sSLf@wMEv@}Xm>k3Pi>&(?m{KAH!z^Q4lcLKpL@vj0s$2kP&r`XR zCy#$-?Y!(%x>L_?P-72KN1s?92_0>#kNIh!>D=Ny`)fL!*B_LOy8Aj=h0LXTnEI1g z`z+BmqUU;jOY=qun>roP)O$&FcW}P5=aF3IkeK0lK9C4pZ% ziF9Ph{9?j2znG-OuK>=@qw@Ha?Lzjz^Mk45rJ)XfR$-|7npnr{95=eJjdi^`)D_U# z`Jpa7WoJ>Wtm}$Of8OLW_3pKf8{IcMUfO-5<4!#eVGwZKu#L#%j2}q`Qj< z-@)9fx5fXQ3fa*TL-Y5MTwQOAqdB88l%GSu%OS|#xq5so6BX&_kzRZM=Is{Mwv2qS zR@*T@01kW~nV7ddvQXQvw!<;C?P#*LQh8&fFV9tHb{^rH9qVn0 z%H(qpyJq$dGGyliw*)qGtvmLA9o00w@|a(5OOBe0>iMJ!KQlh(_$foHo8FgSb4Z9+ z9dReprx{``rGnuEiA!~Mfn`{v@-z;G+SKvnn-#y~T_P!HqJ4_!Qe z@_ahiy83BQmt6!VyO?17tK7&f{ z$D2(rtrqhvHV+Rh8qA+hjcW#m2b(!ZFwM=a>=FQ*Yh$%Tk;L>j4j=X306%K*-%f?VpU(3kKnkgKU< z@)~$tH%G75uD=;QbtzmJs)wcPPR+^doabPuy?XbQCvTHyb#wAP!nst0SHLO3nXGZXJ?7^wjYm6yf+!k z)*TY)Svy$I)#uT54-bIReRd0w6}zlk7E^22Z5LB}Z<#l;W!~7x*eL%`uCHAA89wWt zVL!N?(p`zb_-szL>g5&QqdDgNJ0tHA3E8Ru&MpYN*Hgj!y1&DM^Q(Eq_U@Kg2R4AR zjqa_E`?|L|?(e?e@pgUP4>+;3iv?FBp$T4 z8Fg?2tf=FQv5q@q9bX7_1aNjqs6$V&4%zg*lf1PvIFi2zV(TIKVv?J82u5TPA43Jb zYHefncz=#h5bSicE6bMETCyeh&9xOPYKv55x*xS8XBoHhi~;6rcwZ(|Mpu0{{XPj^m6Y!zl7n)rKP=3=q(>Gi@^O8Vc zjp^uu%WI>eb-&P&Ms{_`EIQv@(D`sW1D$&j&2O$bAP|`|Da}cqazozUiaN}7Ca*2> zj^SH{JVTzM3VAA$$O}}t5|^%0RYD_Gnp;K3Y3CJmsKp8$12tWNe7(nOA5hS-FA;P+ zwUzDf!P<}Kdi#-tBYgBw(aMdyoLq13PdbNv&HUxCMdy#NAdaJ`%IbsN0~B@m1?;{> z_}Cqhd0f3M=)!tO(UzrmG3R>}RfI}jMI{S1@36Q}1LbO5ez-4tHJHsydcgx3KZv9O zOtfD9s@e{5%+zcndu_n)xaUCaehPS`Q+E)?)&#OZXfifYH%J;lVs@l|oek zg@-8W97re%xm|BL6%+~;RVY-ENa2OcnU4xGU6(6?%-0uWmf(Sm-*E|Y8ppJIRY9j3 zZ)De$bbbOluQ8p6f`ZP&h@kV>G^U61ykul_wB9~~RK5Ke!mSdjIw171iaL)b6rt0R zP(dM7QH4+yNrdiPCDe7f5(s@$L1+mc$gT}^r16}-x}Z~SH?lV;I{Rz)LFXGy=aHbG z^KnGbc?ut(BbAL{yVlH~{17w!)F|moTca;O0a00nBrC&>+2M$I{uXNV!TMWCtbLTN zkSeSX_jMnyxN{WYB9>a0iR!cJZ9x&xj^Zs#|2;{t3UPA(HmX@TxMpB5+erSkeM=T> z-gPj00cj0*zXaITyV~LYid>iAS#tfhTM9m?Hx;>V)V>WL-ef*J0Tg^VmIyvPquxG- z)EfLv#Tg6i@wM|OKVI@9B90atZb)okpCYkA^@$BnQrvkWq1f<3vEe!OwxD8z;w?+> zPHa#i*l?5CVDfh#%vg_(=kEYi@W6GuPI&N6FhRFV@Idx1pcUP|_T2>!)RjiY-lOoc z$KQts*O~`U1_ckELKNnmgQ7`h{V>BMAMCMK0Zj7oiaN&;YQ|w5Jih5lD&>3R!rZ)i;h?9XR<F!|uUc&q~#Bp;inK}2sO`{gKfDhAD z3C?a6rD=}3=%uyQyCKK2?Kj+3@I+m2WbaeXz!TYa<|*dl6F|X}lZcRu6I%Gd5ZivL zXlUf0l%DhrF4%k-YhJ;!!z2(g>(&d~^`IB3NCI)P;?9XGk3g^p9^ZUIy)CE&LUF|$ zs1O1n%f66Sq7Jw!SJ9&bC3uz&RBXFi?$H6hd{KLgX?+?fXg!5!eslkic?h4ugVaEA zP=nTz1)G|bsZZTTx4O>+5zwtI&BsIi)cXNvtjxz_vB8X`_4wkxK{7l+89t;8ERn|- z_Ye248HI?AJdEr`e$_VIpMQiLEk+bSKdM)2Q7f~09csx_SL?&A?gqu3rxPw}@k8`f zvkCb_^n_U4s&^DuG)(2FNgB4eIm{iXVNNi58s|U@Wa!C)%_~_uVs+fyl0d6l8y?7R zC)?&7=fnaS;4X^i$(huT75)jNu}Eaj9nxHBq8O`lYi^i@3`?u(?&Mc z3X~8CLq~CC=5l8TJaZv#p|h>nS@nFu=G_+$N=V$mlCJr`#GDMx3=alL+I3r*l0a4E z>Fx0F1N^f-Px2%lM|lc%>~?T(v&@_g3Yj^V2s?IsD`QF9TyuVi^JUnvFzG)tK$hej zHx1>VCeSM5GaA*f%1}kv{O2j^oI@y^Pi5nqkL4qTJY(<`ZCU!QG@vR%C7-2|)p2#< zT3o#9hnLV9emK5NT2H9S=!dVHx<@*b11WT7`4m1}b8Pw47eaJbh*%m5cu$B}X6cDp z59QJvcr$#u&U`wL%HY!^5qvtLrMG07xg7dd_CqCE$u#rNL5lqL&zF2rL7crQMV<2r zzF z*_Q%dbbS`Ot~Xs5fP$`zh@k7FR`wf+S=+yf9->7i@{t9RE!}8o=B#aJO#49uR2L#} zv7*j}gc1R^9z2r?iU=sG%=s#k=KPWDx6~d5!F9QksvwlmAP9-pm%hG`1GQUOk2PxF zg_0Xg>+?ZDYnupK&*s~aq+}Hp=TAY_@#Q{O`f@YJIA&xP=foFgYNWqH95q1IGtwPJ zol6Kc((IayZ+<#o4C0xQR+1EFiZ;-To4M^$Z zxNg^pd+>EoK@UpsKz0w%iXPnju|f~jl}7fT!lxaUqwDRL_N8@#rJFp}W z=k^nu?a|D_Ms6oPyziH_mC=V$-y^RX;ys(Sf71WATmD`K3VvQi1V5iX%a*1!WkfIz z%^OQ;lh#?-!dgR>p>Rd@Etz%zrd=r)jh6#bGrKm^JwqPJXgBI2-4!jyD zrEYxJf&4U3Bl)+|x~>FVddUdW}oUD4J4 z8dE{!)yqM_t5*`itD}nbc9l0-e-fvHH^CsQFuZw{qRuM_#TzEM@y(rjTTmFIsKOW( z>1E8?{{t7?pj+zULJ6KRf4}ACf(Pneg$I4Lr!ww0SzcZZ3Ld218GBw#%FOcPu<;=XXh9BIQ=PUG)4KYKje`=Wo!^uni!nlw9$a zr9Vg}(#`f|_fgGid`gj@{T{+XvRDSXZWF^Ge2>h*M3&%z?E645kv;2>o#FR5|2qJW zIxL3p8}1>q{Dxb>UGFh@BPhn?S|Y||4u6QX>6}i23gRTZSyAUrgmMzFZFUj_#Ys?9 zVYiATCt)0D+1Sxr~utxDTlKtbEvh~}n^ebYH9kt%Jj%av4VE1}z>O-=XEhT9hBvg<)X+uMntjk*6uQkuXN zrwMGEbH6g?>=DmB_p5$QU^gl5+(4)a>`mf9UT+I3!B$)`Ix3WAuQ2Pc8E&APX&Nli?76uVQF$?J+Ws9LPp-@e*+3R>>~1+AYUg4T=c?N5<{)`x6JM=JI9rvqqJ0h)t+6$?3a z&^{*<)D%qktfI~*3B?3JPIyd6@hRo2Kog?H4WC@V@lTTCj<#NU& zpZ3Q?2)i<&-cTmzz;8}IsXOrL-xPH|PbfZJ7x^S8d{R{5lZy26$(6Wtl}{zKmrq}~ zr{I$stnex9Ila?*@g-33=_^FY${aoxCzQOfhg|+Lb*gHQUI38u0QRHU951 zU0($SU3U{f7u$pXL2CBkx3WdE=nG!EDuBMPDeC+?q3F8-`Zh63B1}R+qM{0kDiul0 ze@?#^_l@t$TJ9H0a^R3ZjMidbxIQqn2H1kl>&bBkPiw!mdHd$b!{-n8t>FM7T(;vF za)-rD?a#VH?g{4xzof#zsS-Sp{YsqBc~iZ1Rqf%QsCmam=S`ozyO%Uy)=Fs z6f}N^Xe%^+7gW7{A7TEctW2siMv%LQ&1?*;ES()rz(({Y4sC6`>N&NXn6QH7*a;e*qIlwgeAke+4?0?ETf( z7UQZ$8`=K|E7@(-uwik2{~0J~{sj><&tb>7FEFQNRzWQDFBNruPAJQaujm;}P%N{e zie*-jUd!xCT)JwROK4h1C7RA{7q(eVR%~-$?PJh%v&ZpQprGk~qEc3;_JojCK6Z+y z0(${ioj*qO=~9G7&4){2e@2xsYQIs``8A`$rpCWRzXnYOVO64ze-j?MUb!mrIJFrT#d^k zUH>eks{{{ZTYy&VeZ>z@vyJRu0WZ6N{%RiyTlhCn(De@@=sKj;zJe8hI8!SRWM`<1 z%0SZpD(d{5P$a=BlO!l4DXOT9ibRzuNOCnU4@vJVNGid_Rhi;E?YS2hI-_=b?#jFm zn)rvNe}aOhe-S~`L9Nm32nJ_$E8Ch4Pyq<4^^2e_JcuClZ+tU%>ji}%MHPZnBoef0 zZQtr8k*!=(w{Oq!K*q%=46U3Odwm&za}@p@Vz`w1^m^$IanO4S>oq)Xf}s%~qT1xk;;39O?!Yb((~t4v98(fI`aud8iGB(`Q&W$AAdX(~b` zya39CV&YB8{d^{FL9s|Kf*66GUGXQN6k zBj^rOdTIw!I!UUx^|&Nk&NG{R;c+zIQ5hG3S@v@F;eD@CPdBa_UAa9MI-c&xO;rxmhX=a6%^sPMuL4+a3y`lSneVP(<}mJ1G(P7rejI^#FvG~9XJ{!a8f9y9 z4<1^>{i846;4zp!fnmNeL-@wKQl}*5>lP1b@n@zl@$m9)m$*k{dMsMQLqYcUco2D$ zLLACEQGeU<-$f$zM(;Y(@mxj{ThWb1joS$N%@1tbC@8qM0};B>pv=Miv-MTmmprYk zBh7ycJH9>*^VKXLhlQMc+1j1Ct-2z&1?-dE#Q@{d zt<~MR>>7&m5xTZ{lJ}C-FSJJSmZg8~=~pXzxa#ZEu7KWx&Mu_g&|WKhzF5HvLAui6 z3xjUQjOC_ac}!e_gNIlhf3BO1+Fp>!Kh2o1U7%AlwmHHASL^eN-Krw!+ zh#0@aTO-RY$O}S`2TBRn%xzYNrKHL+bFWs^*^N*$H_O%W&Cja01!d+|RNIAB z|5Sz{3al8CPCHz$D`XBY1-1kiG^e#?<^2NnqlZq`Q`*yl&fP&l=N?4R$%XQZXkYiw zrlc}2!PygmHcf#*6@b7oMV*XL1j4uR%}?dcD4rouQN=2$2$k3>wcmo_E<6)g=31a? zFBlL!lM+0T@vVc>_d4g&!uL|sjcgxbu>-7Uc4ur6S!fyu1x;&-qVC}pZcF!6K)Sb1 zac2#obng?A|8G)~x3d6A_Y_xjPvw&CwMJGfcmP{hXkEB_5L#_^A5JZ?RkV&x&hgEB z3_wt+oZ^bGxXGk)J&J~;v^2H3S`#tcsz^!+j*^n(gfqe9&x-PjoV04sWWGaq;VCcF zil=)MaaJI!fJr+RmWR&+b@u@g#g@sgxrP@}W`Od4XhI04xPNvQf%1QmWy!*rX&+^} zpz;utG}_Fcr{EEczAwG)OCtJ|>Znd_AECIj7okpVKdG_gK$5W(LZ`Nhw=DfznnYBN zQ`<*U)55_6*quXQJZ-dS$(!N_{3pO{JsBoer^K4<4l2{8^PTK4!O?;%=nx%uXN3_OFP`$7O6>cD z-6PPI>mffFN=Eh?8O-_i4qbF9BMt%4T9!>S3Fu5_Fh5U|bHBf4HnP{EVcd07`$E;C z@8g7tiyWnEryKmy$&iDik_3U3bs1#cfq1aCEQ z_44)z5Q(>sQFEb28ix05MkvDRV( z@=y1Ia_MW#QrG}BY>SZJLGG;&GWy*!$aCs&xKS=HN{5e9+&P?3I{djf$bw3N6;}pX zg`xtlPU_@}TmkA-y0axX402VMSVz{b;=iIx>OdUtbdNlI15yTsDSwzx=`lyGS=`7^ zAZYqLW7WTkHi@Y9r*aRGjo(i{;f{XC`F z&R2R;>03hjBBj}b5u8tdHM8wtlwOc*^5GK=)7qVz9#P)!rTO4)Kw;DO-^b^T=B)Ue z>HV@Fg87tX`SE0Cw2vV|mJbGApW2J>3w4hN!dsmVpGephRSBT%UA5zH6Jk!3FVOu_ zJ|D=Wcr1W5`!K;Mkv~Zb0B%Jz6W|yDxGYcrjuU_rRM_{VR8)yjl&c!bX@HAz)1d&k zDCemHJXvKM%S10H%7PrHN0-+rI&ui{M9Pqh>kb|$dBDyL^O`dx$k>%qgk4}kmTbg_8lTL@Dc-a@IDEp!Y z_Xr;44EZ*KTU`=H#f@?)!H2oNtv3rB&vdIY{|3hPCjM8_$rU(qe6K;B?>XPS8ywyv zHts}F$i>r$SofUeZ)P&iPvtrP5)&Kgla>Ag=>@GFJiBXWX0qVnV1Avb)UwZhwby+? z^;Nn2>ZdF2oJ1(U`c8=6{N#FDP&w6#D=R-0!l~BE56$tCI~VS2co5M33{cR1DiJz?@viyPo(rbfffM1+1d;Dd8adxUdd;rLloG+v zv(A^`8DN9XE(<1;UNJ8|#`EI*;0<|7yr|$9j$_F(NnM3y>XW4IG{v1$2qkscCbLXX ziJamJ%T$PJBFijCuE*sOpps=JII*laBfIN61<%xM56{>ss(scxdlo2o_G}_}b`-qi zZBicm9adh)xE?uKvlDwA#Q9@k0wc^iT?VxK9P*71*9Y=bL1wa|2Jwa^h=F`sMPyDB z;Bo*w_#h9q>JWVc@k`b;)y0=5 zgPl%*mk7Y#Pb?WpI0`^`U0h@Pim-~4yCdFdY|m8OIh{~ri_bQ`Neam;u7EVWiYsr7 zs~k1GikcP`IeJq5Tat*NXwNz6Xb$>I8f(WQh;2pY3%$as4D6yrwpf0% z7h#H5N17i7&adptY&tjJ`5a0sG=Y4|6 zn;7o9@F8^GFXZnS$9WZSkMqL@S$92-u8r>yQM)J9fL68|evU%akH}bj;-LfHz|Y!k zUdCm*#R0m8kII?t2Y~%P1@w@-aFU^MWhGvL6T8P2J@|Iwpx>BU#z%uKA|-GD-xjX=~BHdgfv@mMSxT;YBqMV zttQtzrQTLI7y}L~ntQF%zzU$>R!t^quQXQL&3imU6~}Nq!B15wQI-_KD zI{#eO3Gahw%&2pZ1Yg)wXL49f`jWs!Q=aA<+lE=#*|yvd_2yj-bZnPK&d!tLAHpfUd(Jz69BhBVa(Ed% zLk=$|V!r$=^|A;0d}O^ob+Fv;mw~9aL-+#HT~S$Yjjq_mtLg5Qdi2-6aY$asL%sl^ zCH*3$x0e84r7Z0i6KV%lPx%n=0E(-;mk7IS!16Y%@|@{Bq3}xuI0u0DCvkVK0N@SG zwZnsxtQPnbgFyKqurqYm!=V>F)OSBHb11!~d5E0cCn9(HVW9Ess|3@Rg7JqbG*nxf zhbhakWLdRQnCW&e`f#D2WVA5)Nn(9@M4g@DT0wKw;7E2nT?w06+zwz%jNV5r&?fNy zxVLFHR?iV7{zt~-B*Sj7&c!Rc!5XsqFt4R5?rbDn#JTu?NSW&mDYFnd7gt=_4OTg7 z(r)nLf#HEQ2M=?ANh53a3q9xY*=qBUg7HASOS--a@iys!hIsJ9i1K+_XwX4Vy)AHM zQ)Ot;P+GU>9zp2-Q1|8JirwdHv^W^!o7k+O`$BN~-BDawx48R5Ubkpg3LlhTOg|R) z2j;b59v^a9#C{m8Ki~&2IEdsL&SSOhJ%u}nXR@9t3yekX#E9XA(B@(;V24^qsdaMj zG_GD82eU>NEy$iiyk@uI`HL2$JZF>Voa}fpbK#RkxIFqIxr!M263uS%7O}{l?Eyp(C(CXCCOop`r z!y>U#5hY~5x2uVd7s{g%%3+(Y{YIM%w%%dY^11$i|Q^YXKjWqTFR`4ZT<5Ysna zY$OimrQE}dawD-=tA~ZAYSsMv8pWMg5^Dba8Zy6`SCRzPxDWWfo|px zr+sbSdI9AsT@@2rd4a72rweRp&3Vl`iuIE^P`SU>SJRr4WiRx<78LYfLj?VoCHh~_ zbD)1P7`S@-4S;6ax6u`AADA~YHd)o8oZB}l?!1mr&h6L58-5~LPRek0 zT|H4;nI}|^nmkXSzswWOVxCaPd92J65mK2aBBYonTBFM>6bqSvO?as@)mt-_qZLgP zq4xvb>uE9eo^4qaHGO`T)!PcA{M@AE1Imvo=#d{4o1EIF{HR-!pLZ$lu#mI-e5;fnAtXPF zEApdqTazDkyjOlAq#{2NQjwn>3i&bN4@!PQ?+3c?rp4HMS3He1PYpOC&Er#!}!6}OnS1=X~z zxWX+Jiqp1iZ+~f^Q`)vU*yDKj#|^mwrfnNyf03aC&v-BVr++NuN4@INnSVlQ;N{0b z!OKq(AwL%iOCk3&69bNg6|2K?MOJdZg6?Z;CC`R2E86~I~rMSW<75cw2 z$_=@J9!8bm!qgQ0&F8*W@Jb!4@T$MYYd1Cg5ajMNpy1UPh|2kC1L*McRxI{E2P&VB zkJ|krDc*_J^L9Mf+n-nR0p}-G&@(@&*ko7p)A@yeBMGedH|mxcd#B>gX9>kvuDpzI zIzpXm3nAVruFOv=M@{x`I48!x=`Z{nb(}~0H+#7M5#ssjp;d_Ir&T~&E0*~8DvL?V z)ay6D!h*PJW{a!A;gV_~q1F92nvEoIHTe4?0bPa!AvDD*u84<8sNN3tFXrq*ldM9V zUO~F>Ykb4hZ7m4{WNvZMwDfCcVGCiY`ZXVhuY7;7wvx_8zearDirjn&6ms)bqOHiy zS3m{1`FB$Fw!$bkcPaURa-#}*WfjUb%^oirhpk$j#*ee-HNPIt&z+4ns{8@tbdtW_I@$=FXD z&wi@@aM{MUAZ$zBktODH=m$FCk63t(I15{R%c5#a&w;_0^1qUvM_Z}^==rV%yZtq` zrOG2{=Cmh_<=BY2&utCQi-owG6lSSAu7KE8*w=UFeUxTKQH&qqYKmvR4m3 ze+mkI{)z~GzQp`w%EXHN9FXTE(!Wr8DRB7tOVZ}268R1QnfQ0EFtfDW+hV2~7BhdX zxbrhYG4tmoGldW{6<3(4aXXy^P8MSh_%KU~SGQ8*I7Ld&vF7=K3{ z`IyWV*Yy4AlyJ(k^Kd*^L4bUmatV@B{E*fN{0c?aP;`y&9u%N;5wz?iT}l|)OFs_Q z%-2v}=Y?g18)z`kW`R!?SSnS`%dI(H^MZ*Zi11p~*veOuM<>&zPE{Sh%I=m7uUMu_ zhrd_c`3<2i9kM$=zUkFgDIv5wp|~OiDwi$}dr$ZxTJ?VCj28-jNmYFN{sRy{^(=au zvCluAp|0icI(WCs9dQTPrg&$eUnRJBSzTw~`olM_L3WLk%i_1nNcw%kn;CoEPp#Z% z6m6CF+57!Y3#UEE&3}PHZvI3Rb+F$4BM(~7Dh}&eefu91AM72=vfN`Kd|Z}Qb+BZ9 zj}8{w@xh>}VQt6%x8lwp2(=ymYjOW-TB^5&(2l&~3inm6XGi`4xc@BWcm6^s*ND45 z=Q!Xk>U#bR4#f)3+scP2tqf!^BsGj6TP`FGROl6P4{>IK~=G7M(%fN`UP%U z2#uWL%0&h@9j+*0)=lcu)X<-qYvS{Xde$9=baTLMEpZP+Q$05aW?|E&PIZpopK*CC z|10TRoa4o=ici<5p_uwkA!GNypcuOvzXQhD3|2^#6d?r5%3sk&QTp2bM>XCX)-r>&La}mKpqFuQwg;C{42TE}K z=m7Ml`Q_F-3Yk`CdcHgGFY?`EzSQXteCa2GFK3%C7=qL3M!nq!R5zE0V8|mLm?1M< z8&$2@xT(0)Ak=L9Uy`S=02e~DvEm9(R4&fO!J#QEK}Mg)L$?<7=La)CtQi{ae+O1` z9;Z{T)TgM?CuKWhB(`k4uYkWMJBd?rQZsOfFgB)3JK9qyZ+?(NcJ z)unUXC1J8ZQEgWPQz0Xi-O@Z?d7nq#j2lpui8{SFxE2b0F^;>tIobG$4<7@YfF*%j zO9GEfMzU28)d~C7G9{DM^G-4TQtd$gxo?+jmiW?RvtHh;)i^+7{2l^|@moa1HvzVz z3>$DYZshomT&rHIF($RI@xKpuQ+V^M#?M^WHuQ1c%>P(_t@cX(@xtKsFqK%F7R0pP zs9rd@BHMG#;EIRtxoB|3%5|5Jn&1qowjSrcHn?K<30ywnY~l*y_3Q`n@W?%v4z5@? z!8JNPOq>XC{cXamyoHia^=CcsjQm>OC3I~Q|AQ-eVJYHP(Z!eX|2zJVqmuQL6y^sM zxb`>mB6*k*#RbiXixqdaC)A9{> zecNbb-h*x9W{81~cg)p>KDn`tHr`6n2SvwYLL2y!vw5X2Yiy&9{U2-_KW1Q{_IicZA~@8Vriy^K*{`VH!|{I8~F^@j7DyovylbcZsY@$eK3@aKZ6$DKf8s4 z>nj#+vjx3g^S~xCy;oX4Kb9JPV}%34&0xn~|@Z>`2;!aTMF6!X{! z5kBS-!ExY|H$3OPOA>uM;uZ2B!nY$-kZ(t@*@AgztH|Gu_zRX_$Do4p?FdDc#fXYf z$*ZU&dMNqgG`$bA5_6+FYB{3I(Qv`PuIh%|LeJMSO7M(*pWkBH*uF}G_hvU02hdy-@G|5@W!_c+!yzuM?y;Q4BmYB^966z z@d|GmwVxF-!Fif^vyuqj9GQ5-Dd0@r6fzOMA*_PP#IA}uoWxlsSXz#6y2_jp0KQkNr7()xls z!VeQvFM|%*hi8{A>dtN;;L~a%_;g%-sv`$J<1w*pchWP&X$H$w2Q1^v6_#u%+3RtNl#`Ec{YYHZeQ#`bWPnezQQd_Q+pplg2>7*EK{{o3xha ztuZs$Bo&02>lAgy3H3djzek%SD4bMO;iQTrP6m#&=X3GbOAbky8=WO(ZpbYp`ok}F zQ(0(uhTc_dlDf4Ox*rY-y7wZg(!Dp&+ooFup?e=i9X{)4y8jXB78JS_Rp?fc8FVkG z((OiP(d~xZLJ!>~cZDgtEnK z#wA-Uglw_m3iT>i+G00UwZ+qLV$eU57L|lOte_;e#m--x=Co&5!!%kCTi0)8Dx6ztARWOp9LW3oF3k)FZ28Foi?ATq2p;m!o1RE29o$?gb& z)F`U(O{J35@H^x@@udsGirrDK2mCuTA;XsDOXsvZ4^1qU-BC?#m5kMu%#C)(-CbfD zLwA$>+3w83Zo}?~)`}c9bj}#!XRP`ga)5TVrOhJ1Ph>4_DMVlu*p%T-v^n zpm0)Ag_A0hI2ncPA&DchJ8pEA{<$Hykm$GFDZw*jtYUZ6t*y{~1Ssf!EK!y2BYEC7 z-6{y(M=9z&hEQ~~e`&e}g>FR^x>aNb-NRM7-RLa3-H==8p}Pccoo;ojLU&(H=K{e8 zJQ@^qKc1*+cb>rW47z999hH>bd7|RZ;|OJUYV%MZZ{@Xxklj&SpHO?d+?t~lfF*qeSFeS~sl|5&5cq=?P1{6Gb5>b^WEGiy|Cn_nP9H+Q* zETMS9=Zq6igb+^@S9qdwB~RSY+&tO2hbPWBizn`c8}H#s3EnDC)Zq$G`fGLkynDS? zcnTk&hJI51>C)7N?>791(gb+^@S9qdwB~RRtUi6sjz;hw$ zws2rD-;w2LbYK7l2WE6&aB2#_mCs2~VQy|+P+2~>d+t^bw@PqStK!_^OW!Ki4(lBeQr-Gu*rx8{8^>p>2cTG7{uT)a}dWPc8$%NupL;QNV`6Yz-rMSW`l`Hw> zhR%RrQJdNv+Xja045MDd&ir8h20}h{LAk(|3oC4KFWh<$TS{?-AK38S=tbQeP`3&7>|WFz0rf$lp3{rEJD@%y)S11g zp9Iv$gnDi->HtnVpz98y&gw;-5>THO>g-Uq0Z?={VAZnDAc*Vs20*fTVE3D zdA+DB1L`iJ@?O*j1L{A7IVjU>=>he9p)Tx2bpq-KLh+%KsvKSuP(K#x;$9S&2-U-%3HAJ56gPu}`lV2p^rBjv zT7bG=s7rfM>xDvr^=;2}*wydaPPEB{o#+x_Cl+vKe+PNigT&Ia@6hHoYCa6TkTB=_ zOGDYk1pc6neka`@X9@cbs)*m2m{!#35bAd(xaKy#>5EiVZwtXsO(?1yLa0>wsfp(5 zO)nwqWS3iV*{Rxu$=^tydmB5@-vi%jWBQ)^1Gdy^ZwEOC?DQ|b*D$(Jhg7c5y&lx2 z`_N{)bR{%nms~IB&D%+Q*`;>gD{9Th@u-_8e{Rf6ztt|X8`|wwUh!G)Hgek@dwdxv z`1}GQ_`H29yMdF@?nCIu`kPg!)?DWGvZu|-Z7m%t+*WmXeU~fhY$TM|M{DDoUQcDb zQx6EoPf>;2Dn&gy^4Z*2z4>H!qSaO}GTyr%(vWf{H57Yt@;Uo)K71`>&}#E$eP2FK zpCj`gC+5Z7L3hTzz%wk_SArA!BL8-+O}?(yNc^jOTStUM{tb=l>j5}Pd_AC^vFYS@ zBlYehU%1pcA3VK+?C|tTqWR5b`?Xr5U8Yx*-rom52u9@mzlJerwU?>?=U~8le;y#n zt}23?S1angj8NQciktUPn3viC!A(V#UkFesxH%-oA^BJFSRd)Wf{1r8*PTB3%0iCY z%W0h#-9hEgq7Rd|f?Beuf6LOxBSc&)yEVzVCu5IuxTNo%F&V#7m4~h|8MoB6{oFMn zG#M+djI{d}KNPi?(^{?>yj)d`x__IYN&VC{ve83=#0Y%>YwUU1C5Xr5SLf{f84t4a z;p5|5@4SAe`GI@RCsWj`R(l5x-s>fY%RIs$#LLYCtsVSae977^noT`lvM#~VYd93X z>rZzUUctZi6WIp$nKMysIsd-~#!ZsiKn1Qd<{Gf=_-E5Dol#3Gb% z{&@Nx0s8Vul;ytK2I~2~W%<=)MwVYk6u)oJMTeSBYc}ye^%o4f-eG+$_^v7*boJTI zRJ{M^$k}R-h)H}FZ)k8!^RHx|;!}M?*#M%V`?mXw)XCp!RQd2eTCD8D+#}Eh?V&Yi zAcWJvXMBn>?6#|KlAt#z?!1Oj7gYu&gg4STUdINcizh-XO6d-1 z#cHo3U-;~rE5&?1B`KPs*$lxZ0VrgIT5>$=_H!JIGh z46T+vxgT?|FsQ=TS-APM2gN@whWSSsT+tGbG1dp(sv@?pBzCJcl&>Md+)F)kMDtZX11^*Dk{y69Xo9)qJoOOfgqxy(byHG zSx`Vh6dShK8)7fP#2#yGu|=aM(Wr?vMuUkaCeg$sYVJ8_4!D8j`^&w5T%L#7_cLeC zlrv|_JNxb~{JV2Jd^a9;wZUU5=78&&QA~x@x5!^%Wk!F6#R2>^Fc)-S>j1}{+{f;A zDbCPiiGk45@CkBA<*^aE#3KQ_8`pM@oCbM2C_9=UEv|9zLz=WzkowKfgdqLf&xGKj zSPgP$q^EJL6HMc)@g;RRggA|t#IC&r6@w4SLljKo_+s-LA*coUxI;eh(RKizzWTM; z*Y@F)5L5 z89J^y=)&5y4q^iExj~mwup#NAhik>ezSM~*%jW zw63W;n2i>%X;5MMU6~^Fee+v0Mfz4Rw*RBf@RTPw(EnX$UA1cV!3W{XzzU$r*ul2nhyW(!9P6fL;eM>Bt8T`!8Pz2yy9F^@P}*U6Nvkh0)O+ztB~#v`Qru< zfj@477x2gW`T_oGrS%j1wvX)k>I)+10wQ3g*D2_tV4DFY;Jgg$pSVl5 zd>4{|E#HF|n3vJx7BXHk?L}ESU1hDc_6>2fL){5Ss>{MF5|~Fm490 zyKu+J#R+!QGijcLiJHFy%f%)c{Kh%N$IYT7JK(Y*JZpikakC++RD-%;)oi$eUzK^2 zH;nc<5C<=F;Ux|ZKI|dce0XVe`F1&SYr|`o^6-Hv?bh(Yd&u$4=GkKbByITjYG4XH zWU_~)1sefh8vrr%^Ht@{ubm^Ici?jv@Nqr+v|S*0v)UlRYGe7A-=e~gPoRbIt0{Kl zYib^Z<=}&0WpHMD1>FH3m4_(&AQ-;dtTU(w<5jOSSWXCzs)BC$?H{^DrC_om+Zg>@ z7rGLbv^|i3D*@XWM|A5H__cM2#XStZ+W0lqK<{DfJitWw<$X|sxehE!H3!=)O7!Ur zD#D5Eqf03GW@%cKib)IozTo=`bD(v;@c$Y77o8vAM;}C6_;&{x&ktxwoB6>gYJ$_= zBcI+2BJk-C;05Lfx5U;^S3Q|J>B-ZHCQFzN5_NaG=feYPliI;XyBxHidfOPc2zuMW zeFkjv>DR_e6?D1<`n!Z}f8%4iw5!l78J3QZ>F&qZ)O`@*W4dLrzcZow@O=Xig^%gt zt4)8S9^{1mU8nHVLbq#!L&N5XMi%U*U?WbK)8I03XhFMf!fZoN*izY4X2CPHbTIKI znyoH9peCZeSan*@H43gbUJ|u27I$~~zZT9r*Z>>$Gc1iHT zT>G?oFe!k)^nl3`-z*BiFIu!q!PvNEAa9B{*VXLFQU2auz0<^8p}oiPCG{wT*j|{T z8r+HjMfgqvh=L~Li%pYJi<=yPtDi0qew!WQ*)vf$k#T^ixi zwVXjab&0qYpj5PexJ&)_`r)4HKh%$lgPUKoQ`|}@rOxeYcpFKpp^Xqe>9h)^WsMWz zrW~tiV?~$d72%YKJ$yAJa|>FA`;bzUi=78dkY-w0X%kF!CSw-te#zJ0M05Wa+`I3E zmMnw+F4$G@s@GUNof86ffnq8A!@Dqr@whKp266CkuMB|W=fJcr(@sMqFpN9RXOLae&cX}$RX^~n15jQ7K7?M-m#C7I0R!D;Qp&*& zTmu2_T5{o)Z)LD(*tML)m(-6S#9J9BbTF8ipaW3=8y9?e?d$?;qjH9BM=i)_E#w2= zc!yRv zwc1Xm_?Z`;Owlo^U2v4}G1QbB21g0b*s!)xtV%%v9wp$b&16a~GZ&dmZ*9ejx-^0J z+|ZS7TH-c917PV*!EPvP7p+pTTjmb;YFu#T)|8wdHXijRZ3`a8hLL{8el zoOE@_0}7U3`c%cgB`O#rgTONI2hTsyZzQe++uFf3juG%5ibvyZhWL{3TJYBtF6u#o zf$(2+>K=MiV7)ny=ZeM~6^&T?Xs`ZK~NSHtuaq z41Z7+*|XZZk|l8P{~>+wgP~aZO!$YnUwi`3-#WtKU4H}ZBLsAX*b4~^U$eh?RB55?nmv1=> zPN;ruIiQDGOs6oE!T}WCqVRkON~@3U9c~t9EV8m$Ob)?(YWBdG~VaqwOX3^hFrcn50YFS2{Ur)h-eNZ3n>v_LHPhj7fN zO;Ze?Kr8G;>tu}IM6HWAVSFm&;7?j+v5wj}8e;6lny9{MX3;dzH@=)`)M|K7vlu_V zb_}%955w$$+A%KTPlreMEGM2P5ASI&+#%j9f&vGD1r}2sBB*Y^Cu45g!4pc0 zz!uS9tLh_tp%uL#XBROo8tt=YIJPl00>kKd3?EZWmkKL8l@^_cb?_-IWH;>DThy+* zV7=0!-U!UCeOJui+oyI+X^|O+G5e#i7p&A4|746GG9KesL`(44Gea@`$D?Hrf3XU@ z!bPl(L(9*NN1J?{h~b3JXvy{=c-^rTrawsjFg~SsIF6huw0FZ{2@JolmQ|feo+Hy6qOzU-vNfy9w-!AcZp~# zqzn-~;F&0twTi?%5$i^N+*RftvyI7)&%KOfd- z*bHdvXqgT)1;|U}2>6^M&;pXJ5tE6Whhxe$VwTJRPU;aF<|T5)ZmNqzv(T{Z&|706;l^VDI}(J6j>3Ni;-zNk&C=evX7!sR#pB;R4xFifwWhs_b?F2Q&u5r z9gY+(BZ*4%LK-Wxi6Xs`(&c8NP@<`FKhbe7l+BXoi3X8uiM&fRiRg;-H(+@ii5|&5 zM2(0%)E=T=DVJ{QDbYicMJuBb^#X`asOdzriM~|t6D1MZ8Ga$UNiC{ia516Y4Wilx zFQV_L1TRBpB1h6|W*9(phN!(^0#PTjM5JL6kvqv!43~*MplMknixMI8UP!J1mR;mKokL6kpvNBJVewBHu4FgrSS;S7 zB}#!AAVG979w$no61p2t678cBqKv1AvZ;hV#xrI^bw}Y*K?pA~z<7>i8C2dt;{~EH z%5$XgqD{&;<7JY4M7hKpZxEdzy)nkGh;~ywla05C4pBYRjCY7&XhC^XjQ5D}F|-7c zX}nLAYebr9d_eRFmYW1I$M`K#r4mRBjE{(RQ~Q<~zbDG4_N_8LA^M7HmTUZx=q2oP zyu?Q1Ped1~o|}xn5S^lW<{6(8eM0rzY5a}o5Y=p-@pqy;s@WmqpG428X2*@Mi0V?! z&KUn9I!ZM=Z0+(&u-4u^0^n<&p$MrWcB%0-%7i3U2*!DiON&y4NP^3{vz@; z)g!7+b@4MbAnHbSX>Mvnw28`VZE8YPh5E0f$&1LJO7Cp)A!ayI_mB@$cvepzv^nz%ssXLJe)#W`?BvDD&7bJ+?rYIt)3eW*lG|}7Sbw^FT ziQs%3WM@n20F6RI_hPgNWKuUA{LBAqt>gd1@L) z)P`#I+%$q{Al2oiDV7MnX#q-C=FvnC$!2!uc%70;x0n-&=27Wo%wvdBsdOjvIHD0$ zdIfVbQ5uzA)jW|1e!Ub%YE5%0Q8v}3mU$A8yaNZVnc(?@7mB1^LsWl)V$M% zhMD)+&~WnyHZ;O~(1u2ukJwPG`IrrjGM}`e(dN^3Q(#8*jn!lqSGf@Af zn4b_?ssARMf3!2es+~9-Ta;=331mWqhX}D9=ozJ~PI@z#dXRt4H~&hq0hG%E^9v$; z;wnKbGyg%fkvwaS`6bao^1%(}*Hqs0u2>$7Wed*GaN`bo@0#t1dXQi5HJ2c|LnHiv zxg=2|^4$;NCst7}l1eyfE@M$p>wZyK>+|Na7K0c)wrPDS66-!TN-?z|hFNr7wh>wmx1Tfc&KxK>19mzX-0Q>*qq~L!p<~7PwyD zI1j?~#ycTA-FRPpFVQak5M0-4a0WMANrkFjR*C588+PkFD zUAQjQ;IT0({p}D8BfDbwejJ8pDfCRl>kbe~vAiMXf29eA9U9%QZ#K6qcdC9=dVZIO z5U%QqVd<2IAT@e^2VpY`FEqsK2rrC}uKT3EihaSYb!;QMyf$n`io{*=WGf; zqwqL|+bLX4VKRh~>19$M8za-_P}DDnQtk z!a%ajWwJ>N(t6yaYJ=*Ozd_s|RilAHY>BM_ZI2y}y%{#=N4QdP%*1JISX(c>1fdSnjY90gywz2(l8yOMxv4Pd`59v9YZ9 zY-F_RyQQh2iqN~>4EupGstrL-)pNt1}S5I@Hq!{0h$xGfmNJ2fzTRujXe zX&BZSkKz2W7#^hbraE~2qzi@%s$=*l8N?-R zF||o+B3-v`g)u)TVz`{rx1kc_V=%^r()6i?*Da{r(bS5!DSiXBBC;z=J*c*GDCf(R zGK=zgm%<1iOtX-#`_gp|T`!>UmsFJQA+3It+aL;^$ua{dEKOl=3VV@sAGOg+^$eyk zn!-Jl=U-HlPbf`qvdjnyBPbk5VP{BR;3r|-J3$?mcIs3Z^GDAxi1Dh6;r95j23}(O z@E+i4-;R0H9(sn0|DTx@{&c*)|N~ zPdHI424WpfI447k7Si=D=QOxJM0LL39!Ks_m+zpg?Zc-OmTu~crI%=pWkrsmidb0ZYfgh2hH(nBaFG89XELaV?-ig`q7+ESXSRPNUHID5BsxeJ!*0JZWGo2gy% z$udPtk4hgzS~EziHfe3AoVSN!{i~G!4)WPU_OWlb1nSw^c?q=f23f<}7VC4@2}{{N zd}WbV{Fl;;*EyT)vy|+!0PGW${@oDFe^v)<*D6<%r*`cv?7J6anU`eqPGs`{vcnwmrHSNA=cxYI zsQx>+e~%XC@B{hD6X$c}{}+o`Y%%4(h%8?QERR;bUL?)b!Dx-w)QYCmii6ZU(G|Xi zc6D`r4DDJ(wR+M9+kU`F=ksfkd>+PNKKZTCs-Kb#k5bHstpz-KO`3xePj3S$)kyaOK#nTGd7l&N1FWOPe zd5YOcF(rm#4d3m6^*K$Y2T*@4rm;Vh#(n~g^wc)!hm*?VY;cp(IJQTv2UPkfiur^_ zK`zCVBcJ!C5!!?5`~%gw9ii-+rJP7KKo?~C6bnPdO)JE_V z=uJB+%YnQ%jQsgA_0&u1siV|W#YbpS?}8PRO7Ghiec*TSx2W`?)SG3lAFE6~Slm8=lx7CCt2BA|eDa^B9dS0eP2LhiF$Rh` zMlrQ1=3EDyLpHnO91=j|x;O1QO3|+49m@G(TTJ6gGfyYd`iZm-kXA=Zvw})@rqYY| z*MFH~>y!6-wnm>HRt|mMnPMtZOkax0B8$y$h4raN`+;OiGlhJ9I{CZ{jV2EoO}8kf zJ+*5j%~$1Vt)E0O>nX-cF@vcGYte}7OCzos#Y9$W3w_$&H4OSRk4ASnntyy~{&@!D z3&y^4Z;+;vWomcC`d^_OR#I&@QEh#xwyBguJ(?fBp!wku#k@~3Whu|kDP~c{x1d~; z>u|_9mU4EYzPm_$mkxD<`&ri{kp2apCdJQAc>O7~ONt~HyiNlfUPf(H)Fb7oN6tf!V11?(sZVjQ-bmKlLDri?zE|91i`USV zY;}-E{l_%wU1+wiOtXC(nq7;}IlX9}+)r!767t~_ROgelC-I=&;0a3eyj?cb{1fMF zuyA)uGnCT&O8z;NV$vw)ImJAod7vYWpzmPE2=|ZVSBaGtK>zl1T}i#Ov4}N_uL#BM zQ@rh-RC;SF{YNUj=w1{p|9+9OisxK>?JH_A%;!Lne2VW9i;uFRBN6jC$@xU37q3b2 z5mzwNenK(l6IKaVT@o)|0>ebdSv-#l}a?KE`nXlH!8k+M6D`~^#1U_^>{GN z@NH>^A4l_f7{x?WOcKSEpgCs}%{lXF&Z$H(iz#Lf#k`p_u?}^)4h8q%S7_{fL35NR z%@VHEmTzfhZa_2hb4v3&r3s)k+o+TQl;$awQhbgoK6@V~tz^=AL0StbrVYj1rG=T1iQ#+vQhLQJ>|o~wLCHvf)nzMpJvBx^X6 zHLg<31e&p@(2U)iX6*M#>o95MQkr!%KX>VfYtuv8KeVONyS2fX0kreKN2UKktMdd} zou5-o8Jg8IDdq^xt8Q&k>mtpoG5zuSMfo7`x(vt@&fCj}!1Wl4H#@a~>kV{W!>J=& ze@@rUow~ub6J1{{9|_lINjJBAFSy=G*XzpngX_7J#>HtMTpy-uPp4sUU7gn7QBI@a zx<18!Sw0c2?~(5N<;TPIV~X$WlnU1`DgIdb47grK*9*#L!L^C<>EkpTu3J+2Z_Cez zanyPuzB{nB>|*G(DV=e5@k3Le2Gzy6uBYmUr+)?~nc?Y+DO}))*Bcxk8x6v*?qg$h z@!jYZpfv{K;RIvEyKudB%nk?*NqZrT2{{Pi{H{l#ltGCn;rd3k$HwsVG)P}vI7D4& z6rNs(@@z+;KZSRwtS1nf#YMkQ8=1wzV634b=}X9=TdO+|(=!C6<%d0j>ppQ+8<@oj zAFO$d>4$%i7LEV8P-|_%pK$Hp^s&(_mch;noDXTtQ-yemw!V*#HZzB!mQvSU~KZAvf*1toMJb$r^YOHhi z6Hm*$)!0SsQG;ws`RDX=O8kj^Y8nN)vn{rD*1eEIc}{MOdCs)SZ7$V$2}xJj#A_`b zU$oa=K`)>Mv~-<~*86bXmF=UY`ys}A{P7}bcE)NOVwy6hQ&c*p{JZD8$>INs{}^;@ z1UiGKZH#|zQ@0<$CbKP{|4YtA+f~pa+xY+5BHLD%G2JZIqJPe(pk4o4ihZG5_fIuM z=|L;D-9#4nw=|hm(W|cnYTwqjwQcD=uu`F}jm7?iYpwfFQezXXWftSc;h5SnQG0kP zh%ac}e@O#R&r|7U@ndpLxUTAh;i#x4&@P>`r8&-HF{ZjUIscoN>N!NWvG`cQeH$;D|1$ zf6+8D@+R30b4a(-HMd<8(GIq0R-5lZeY%zSo@({KQueUJ@jI#no&bMiuUBnMk835a z9Z#FMh~viR5SFqtdb+@;n94)=v8)1NJv$H2H=`cM0%~C^_CfgDcwE8tI<8mYh%}6O z6^8Q$uHCp6cza6WWVs3TTv=k2jX&7-GLEK#zSvi+fBm5jT3WD96;Ffntxi)gZ(|y7 z%fFTQCVj!m^}o}<@k4C;zk9+zN#Cpm|K7$o^|7u0-~H{M)6}rc{uitMzfJ$9jelQR zinmvYf^Hr#)mB>}WK-bx}wy29W{C^`|GU0NOdfMht#?%w)`S+dq|Cdq<=G%YPeH8n@ z>k#w*LmmEi4U0=f%Kx(e8!67N13WPtLg7dX<0%|V;Y122Q#h5vnH0{Ya3O`uC|ph9 zItn*am`CAG3inZXh{9tOo}%z$3NKN3g~A&Y-lp(Ah4~adv6<)fT@T(@{@nwM#Pf4p zKL#CyJ6yXi7&eK(@LA1+;EjK`+Xcw&h8;eigF7EMQMddIJzK*b_eirXxEe-Iz!k7S z>p9d%$MlIq-A8tRktgVJT6FcqG_dY?<0`YAhL;d`fuf zR>NI+voEc4&VHs4}5k4I>fGErIUZ+rl62n=xuahHuIx>-EBSFs~CbBFU z^b8`CDAV$|d#J%EX0z;7cSrd2@*>vzvu3cDNvvYB)CvXK$dnKi3@zKvG$|+)XdhE% za7QmY@gdW^;0T~IOxLRS^|FXdOb@CL1-i~urAA+`65=jXqZ&hj9x+X*-Pg-r{KPc9 z_E4Zdn2tc6C55Uk;4jPaG2~fNlw|s`MxvL4D9>c5nE_Op$#GnwS1D18sm8brAUKkt zTz;vZ=v7)+nJhIjfLbs$hdj%OwoH*AD!Qg*BlD8m#L(CUoRJNgsF=AP@vOH-`6_oRIn=%Ybd70etuMXY#2u!KweADu zGi89Rf_Tcb9Ap*5??joF18GmZDhgQxt(#%FnD#S}JyE9R(Xba@l|(s~{Wa`0P$iaa z9%k~cENZgs$gq+?4O!+nyqtFx;mfj4!`*w+U(9R`C|oqO^J5eqtC=ruZRZ5zuL-;M%YQ7uT5@5jobuTr$OXkf*Xd?8fVv3$hxSPA#NGBdj|Efi0B z9Q1AuPwFBq5&MIWd$$mIOjCo9@EZ-F4PZgDXdx^_3*1_cM46M8S?>De8C!_TOpkmd zq^!-9+B4J;EE+LQ@98Llg&$MQgj3!jq6O2?2^WFdX`=F4if$~+Pq^;gQuHLsv^-0= z3)G)w115$VT8UvS8!-_+FDVkVjB;r$CUDBNP+n`1!6^?zd9B4PmR+0h$U9WL!?JHD z`~tL6%P5yNVm+t)C?VI_MjT;U+9K4@Mx0{W*uoJ$`+1S+(_U_++KMlj?(`BscbMMu z2{p76-!kp@aTM*uQ>IsSa*geUTfH}yZ;zMociQx{#cS_3bg6~Kr-K%OYaH@~hIjM4dVP7iF5S_L}H_J0di}OTT zmX+gkfj(#2I{tt|w7AK1EIHTMOMJt0A^CtqFY$y)h2^*X@{ zE+(<;-7%qtw?!7q_Kk5AZ;N>>TN)N>7${Z|>3$d}HfS03!$7f{NZWdl*iWQ;Wsq3b z=uNK-5|M{^kj=;vgGD7Goy%ZRP0K91s)Rzyx=g3wL)?RfCll^UhKK+r z+?5OwEt!T^3pETC9hj1;-ro+HIGPPq;8 z94UmSmUV@cvBI4x5$2Fs;lVT&=8#z7#Wbc{u5pwIWXkMzz+seV#pGHu*Em{qB+9hZ zu6e*=w1{9j4I>~<^kMn}MnIexq>1_=Uc?feG+-aaizK2fOAgF@@gjw3Gt7MPVycZ^ z0(=gnpf?@i6E&-dv==0bOGLVF6U7yl;YdvsFSQ=c8c71)WQIRIYb1$ML|GP`HO2^M zmf@^1MpPxz9ywOj(J9Fz#|lp(UHUk2m%r1?QgeqCHWD1?Qge zBAiH@1NVF?pN6`waHOcd3LvMi+|yZcNO^_VI}Mgw^h=@L>z zQ!RrMqJ2_CXChrfsyNJqC8UZ7{BkpHLz?KRsRYh-Y2q!S49hV1G21jTj3~?E75ghX%X<`;pCfzYi6AM{3tYfY*ORQvBQpW=hSz-gr&cc|UF7jA*6~^>* zv6p2(2ZkDEh%+qvGtg1Y5La2|3*&vJxW&{8#`{e1km+pfb?;f?1=ANq_Wrt_UEK4G zvqU+fOiQ%86thGnmc<5)_n9qfvMetz0>kc{AQn}qCZiVsF|?YXPL-j8XYmh zuv|Q4N*#yfi(mT#`&Jj9y*|su45o=8BMd9W1*X=mkQ{?_$`X+0N)f~4475sYVe$f6 zEuJy80Ll>|&9vTJzY{)dL^e|mzjHph;x5w%fuH%T6TbK%La587=o>y8L^9K#(GP(> zVtN?=)Muk`gUu?Y{0wNbh-I2G`cI#&;wI5)xifx*;XUCVtW$p7#nJaYF_37XSREM* zvUs9QkrQ6V^u8F=3R7l^l;|?19pWw#?uF<2>=chRi3pgJcL~qdI?ujDW0>0Ztl+y# zd_Z(sVClQWhgwFf=q_=Z30Kiw;u6#Fs-cG6;u_Pqs*Yl}xXZK>M%*5e&$IzX+#c~0 z(~#l0#=XK2N_DZc7>4AmiDs0&q6$%_B{QnJ?_N=xD8sTKsxDAt*1I+)*SJskG2I_? zz+s;VW*SgE*Z6^G$26(>0f!Gnm?pBzet|!5j{RUC-Preln9S4*=#ZGl)S$c7_lQ`- z)C}mTc%NxcH>>Y)ag=FUVhi7s;v!S!i7k9T61SLKqeFd9i6=}Wx;OScBVI9iKzZjx zsW!SU(?ND#RAFibvQOX>I$GAKYbW1JqB&DFpie~?rg?Fld_Na`nS4@O_+AyUOhY@j z@clxhFy;BS@VzExF*O<6!uPsZ&UB$yci$Ug3sd~K?!I4&{Y*7{qJ6&-FPVHMIsyf^ z)iql^Hp%-dF;o*-_oj$v*+Llox5OT%7x9CAZ;8K%P756Gw?)Zzn9FH_Gs7KGjtPD6 zj;KJCWyyn?{f?;4bP#6tJEA@l?#S*6ZzkN4-4#Jh_h2`3Pqb$G0d_O@L}yLpXJ3m* zmZih2__c^3%CyXddG~8Em}ToBm-}LTq264d`y!oXoqh9+--sDR8J1{Yco$48VA(4F zP{RYUoMrF&JHqdzuG2CoJ<<1}IK(MCz&QF&oMh?&5AbTSIVmcm{XZ%6f(G6Obc1iE=bpi^cwJ^xT}dyE1rsm9k8b}g)hwIKZ$rI zJiGWw>|t_`7~uAkctMmQo^(N3vyP~jAqIG7`u-%+nXX670s26b1^eh{ae?Th!qbYM zg-a*Y(`(f)qAC-vRlkV3M7o~OFd6)vv_rk;!jDtl?y<=CSJ6t7_}O~}Q1?RG%zf-<{iA79PMqlz((xHo%g?0VR$0GYP zwRb<_YcF>b=@vQ2$3z+8lJ5iGQZfKOjgEE+tNy^Zw4BOxJ^6ue8F`6Fx6e^t*CdWi zeBxVHMt9TYZA~^?-Q)(QP0?kn732%1Gx0U8m1O5Iow8;^O=}gI%QP{>+geRNW@_Ea z+v+X@!gb0Lkg~eWW^x9qDep3Q0o9hi-F3iDATqMk^w{+Vxap2-)3?u)1=4;zRl%jriV2)SX;=-Jy9=1*wx%% z4VJ^0UXI;h4Uv184C6LfTf#B8PPw}F25T$Xndv-GYq^Z+Fi@!chUo{OHqx_~)_YWa zgSD+pW%7d3+sU&`4nXatQ*WIz8mNQp&orvm25U!|$J7jR=_Fq;ZBlvG&hla(tyj*l z%i2YLOSHtYZsdMzSNW7k@6x-<^`kN663e3DAA)Qf)4Gx8fDRMgD=}pxe9BIqB+_Sc zUFC&Bx&$c$;xLzo@>$Rq)^0L{D9e&LBG1@OMl;PB0nZ@FIHq+Ya*bg!Rg+jc!Ysn% z9G1NgdSP-S(*e*6lZTluf?l{h$9gA0FI;}fvVCyc6fS>eI@SfAUzH`|v1VD8t6g%9 z-KC2r@o^Wk=q~HB%o-eO=q>}8LW3Pa)`@9gaIP^zMzLN*uvtXNw^%mHE7TAnWXkr+HAc$0td{}rOhn41M5je++)Znw+(PsaY;e!oLpDsndY%>`umVNNb4<@V zhZ>^f6{3eyMR#n+ZD%;c%zQwKF zSS&ru(y(c+v5%~xNmOkL?>);pEOY1OGV> z;rZ77GJ!~2aDZG(gcdCAH$ZM-LJJO%2Z^)=2gu_@+JXb*g+i(TdYzMX3D1Ju{oa<5 zL|GQMW_5sKnd&xc2$adxwpp%mpq#Hs_%$<&fpRU&4o7@p9VoXleH?KKXcyCx2?e`ykb!5AAN9VcL|wdIFMcOtaB zkKa(ah-GN`VY2E(of0iSOnMM$%MX+Lnb7jXrEiM1L{4}Gzv1#`A>~^~$Z4r4)0Q78 zw-ce|oBEBEdzjGjBjsr#ZTXS%6C!Q-k@9LGwE?|9h|qUC`^8F?h9zWK9Nj_u!c`IjqgH0Z`sp>Blr2${Q;?FinK=#>q(5 zOMvpm$-XSZcR0q$u}t_5$2ghI^hKXs<9NB8_0IHx?{<~jSe6zZY8WpMF=d52g6tyG z;qY8zvb@21yTaj}digcW&_j~tFHGnm$r8SF5dN|(=phqiSxw|26J$k})r5PQ3DTR% z5AJ0q$PP?>p`H_E6zg?>dQOx>S%#;!6Xj$kJhh!DmoT*gS&CfGdOkJHB1P_DS$vnu zrBdW6rb%5)K-Za8!uppgAF^IHtbeKUN0x1Bo(D3^6y2iT%_Yd(nJzZZHKxhNn#8f@ zW|1a?iS!6alVL2g_?rkwCW ze(7??^a9GaX2?}Dkn{+cBAsU<;Rs0fn<6VS;Ru)_8x!dfFhyF4^az+D+ZR$M=*d}_ z3(f_z{4!+;qAUw~NT#gFgdUP98!@4WOqBte1bWC+*^*`GAyZ{{CiIZ0axfEm$TS(x zdN_wnlM`5mo;*!1U_wuxCbux5CuhmMtcRYQB~P;q4paAdEX9|kIlu=BrBMvysmZO;>L6$93 zHHl6U@V(D+4$E*nWXnxVI3BX)hfFvg=Ew`IhvQ+6q+j|5pT~XO9Ql}JI3AY!&6PLj zV6F9dm?z~tO*kIrNe3c59_GpD`6$!lVZMxApeZLj({H|vf2V-*tqbIig-Cilyd#?| zLc;No>-UcIW5V(9j%-h)$HP0a8<8Fl@5r8o^e*TvBEs>o%Wt7vrDc|BFheht+nMIT z482euW4Z`4^dfm)lQ>n!EEdTtEW^{nMe+d?o)#{WFPP2-<{B4E!(yy;me?K$-#0BC zG+Dj{zg{e>F#QaEy;yoOm8hC)Tq1*5?-ls<5*bRQEx$xY5~1by`z@7+S%z!zGFfX0 zmZ$fF%Va|$ZTV$#0~4;r%cav&Oo?mpyMD`Mav|kgSIC=0+VU%<%Q8%fmOtvZQdVI? z%deD8h_vNbN^+z1*f{mXS4bjqBwJrqmh- z9M;PlOlv^4K|a(Z=F~8Y4e~c4ZHW!iv=Zxy{r;=pM(InWN8Bcv#DpVmlT6{1xCh%L z^O(>Qo8@h$obX3}o2BC_ohRN0Y>{1vv?aF6I3l#fE5EIB91~h%tDH%sEwNS3C(@SK zDt8o;#eb_Ty;_&>EU1kCHt9l?Wyy`5@3&1>Wvbl88Dw>s4h7{Jx5*YvXMzqmY?D2h z?t<)H`L-tUd5~GWE0c({mEM(8iO@>!{&_N=W#}*4W$PTQi}si8vNMtPm+dl-39a;= zG_EPIi^cyvIjE5Gt?$dvh_sb<$g;VZ60KC%e}{BqLM!c%4T!Xrc1Uj`ZKWMDtdQpT z?vS(A3iv~R@%G;--ywpXYB{%3JLNW}^5q23aVGb2xyD`cq9#$HoLTIWcUTrtHq@|7 zK4t1v7T*1khILp%mSsrUT;pz8T9bIItQo#1+?8efKySD7U^)zXyJZm5Indi9+p^vX z(Ay)svFxcUylW!+GyUcY@0!RYCNt~{_R2}D_u3Vn=9JS}HUaY7E7vehE_=XXuiVF! z4YGamBG3D(>FvNKa%qDZD-c#>ql9L&@fo+Q~XlbL$J zUgLnw)Fir$F^dB-n`NKEY4!oRf$1wa%|0LxF+GK+Zw|_{toI-cKKmwbuneCEJ1Bo* z!so#bO3Mb_x9|Ao8V^ZlO=1T8R>C1!hh_Mz*dgi9gwKi{k{y}8?wM;mEPJrt7w{_t zhh;yOZGop&56d{F{qWT4VL65AM)zFf5jltT&UT02>X1uV*1Q+W-e(H!b->|>Ji`gOo3sy3hW4G16*bX{cS6=+!WHj?Y(S)Eu#>VG5zb%% z{vXM2He)V&otrv((<0BobWlmr{$IR3n<@uMt0tX zq-U_Rvchg8oWX+q&q{YDoWagYA0j=2os~_A^bB@Zh80pr(EEf4XRvVpbMmT|(bJ3P zbM-`P4ZXEG%~c^Bjo)*A$)4^k>=J7DM8071@8Sq4OYYUJ?Fx6M7p03P(F*QNFUo2}y5BEKPa^F1p8l8Q zWtQQ}by+6w!(8;rby=np>3+W~Lq0&6?)OjSGp3yIj{cv@MfGu-kDyLpE2Q`={5O?3GYm=%U@X! z?@X^tyTjPpEDP>YuFGmnxJS7z{g`l%aznP(M0=DQGLmH>El?KA)Vak0hZ{1JX)wsX zl=E3Hx`kPMDc2V0fuDUTw=&_n`K3J0gzM&)@;Vc)n_tNXngp(!U&&uth9_TNNxLJu z4S4ePm8{5wCto*ZZB2CYbyGHG89sM-QwB5PbB8x&cc!pvxyD)w(>ScXrZ z-jb7<@afZAaw*e8klmIWS?`1KW^r5YV_7v=Q*X;NOm$#Qy)D0Fvcj5rM?PS^MzE&d zkw37^8}6&_$iJAH!+q5qS?)vK+DJGrxGSq@67Au>>aMKAvQRkJxGVjc!r@%wuI$JZ z3;UOQvIpz+gL930vLDOvDcO5+JQF@8dr!_|stU5NK5V2*L_)o2~WPhk)E0ao_u{H16hXW1>eY) zOnB<>jqJ;Wrw-r9WF|aycpztLqEm+lay85Fyx@U6z=Y=o59AdlJTG`CAFv*t7d(`| z6Y1IQp|l*sTI1|C&i`Avp$dGa8-LE|75~d?TIXX5lhIj z;Hvh6te{EYs`i7d!7@BS{z3XM;R*5&vMm#yApa=CSr1Q;f0VshhU5K5Ig$y-`;T%G z6OQ+%awhBHN%vFvPJtfWcRZEbnDD;isXWev_Z>gUi>!zD9Y4uCEW_FRC;5~KXYZe+ z;gW72&fY)E(wYR$-akuMmWf2SQa{TkOeGTqP+O)NiMhsKWCZKEB$~x9auCbnLGKrt z$}|D=evu2AvO({e%w@ePp!ZDfWZ54z$4z9^u4>!0%3H6%TbUdpN0k#HQX@_#93GvPRTDRYSQIC?2J66taDQtmIL z&7fzxfw|x~de8rrEJc)M`8{zDkTX+P*onWAjhJF!2meZjGTnk5{A(GmNnC^-{A>9( zk+#cg8Bc_EIqLtHJjOEIJqcCnODtXQo`iBE(smJQ7!%(2OLdqjCw#NNR1RP1TI23X zske!=T?}do5!&Unzd@~LLc18$4kB$AgW6A|?P5@lH!)A7PeHHWZC%2%pzHodHH0Y3 z(xvQtKcgDWgsZ4gWijC@YE-M4a1}MFZJGqGq9%2SW%$&wNqx?QPaT`ocTBTDW>&wk z-lUH3i=N7IhiXRekC{~kCY&|Qsv#538g|NG6YUc0R0zvHgy#$FR5;UFc)q|+4Pv?l z&lgx!9P51s&lgx!GRuNeLJbx*lc{ZrBgj@U^-ak&mQb5nFFeI8N~j$ylM_M>CDd^y z`w5O9yTVjuLN5H8>>buCKfw&Y44Tifj__=~y%KkIYa`*=dVA%{G<;mHv81Y{N%R|M z7A2LHWm|jYfvgMDF8C3jl4=msDY)ZvPzkJe2=4eC)D)II1kZ9%E17 zbK$3DkF%Zw{OVyT^%={CCg*|dd!_{V;kQ!Ca8JM=ydRgGYb>qGY7!~%`-!Dh4VHZe z{ZLx@Fg=5QD6QHum4K(C%cyYHdky_iM)hVHo;HT8zaX;WGC3lp9;l~v}ib^GwNshldSN#JQy zIaQHm4`4@DPWdtY;&uRjA3L1Mu|lq~yn37UWCi$!E;Wv2TS2e9dWY!)&?~RDGhG3h zllqYLPQfnENqxq$osM}R`+@1GBYbyqQBmz;+5XYD{VS@2O!2Tc zt*A~g4UgUh^f6On^t(WxGo787YpkSxWV$->fI}r^|3KIJDab0TN}9yi6V0NsYQnN7 z(0`RxC#F}>f0fk`rmEm)Rn&OaD+PX5Ma^beG}Nq$TF7*mXeHD3QIGtqsP#sQlVy5)mJRbPw4DdRo!QLme2<1F;nRlo&Bn*XH0G_+5o*` zx;3)1pSvD`gGkNrWrqGyj^(_y}{+JBV5; z_^~G3LDW+1iS$ZYOGQ6LnchLvR>{9;$_f9}zqY#mYXRk3>!`#cda4%_&OPB`CsD5S{uKf*_{a?C$xb`P$Mh0TM;fVUrV=otG*Tm(YQc=sSdG&pTwq3NtR@p_ ze`&1d6QRG94``x7g@npzfALiCgPcU@FP_SQNc)SY%4fozm6zIrKN|(!lM`+Z@KP~` z0?M~~D-R=*_7@*Dp9uY>Vt|iY%7p&nqqY%gfALW}iL}4?sE-P%Ht4N2=@Om=H4N}o zTZ#0uKfdZ96Ygz%)hA52x3Q}0nrLrhRrgrtRW=V~zccxlmBOkV;deIC>q4Rb{8SZ9 zqB-=RAAAjsmf>E*Pqk&jy@sFa%Y=Ike>H;jaIfL7Qdow5=C2kqp`ZDyZA|EA0qO(R zLq7{pXIb{v7`IXZ>MqleF#_l}rm=8x5~z%JR5LLOPEG=qvnET4x}kTOqRTq}wooQ3mj|uNgo2mpRyfY0_sjP>0ra@{N%YF$DH3X?8 zOak6j2vS>_Ds|5_HdA|8uT*#VwP zxhiGR{ooqq9nf6WVX7S!0Mvr1RaCCAh3c$H_(Z{H@l{`z9fRk(TBvbM7u^pyv`}-I zz6V*bTE%)d;hC>swVh=zNp_B@Bz%%5Sbf7(A3o(1qMox}#p-4eqDqv|^}G#dEFr2k z(<3-z2~i8Qht+RD)U8JuWz)r5Z(~$8AfMN`&LKV?ZmFYmX)9aobus zIcUOh+gep7(&M(ZI$R26dY%te4rMgugx3xTRh?n=)T21x+D1KvaZoUB+p5{+kZ|0F z2eei1FyXjut2Pqpaobkq5$SQ;R_!UI7|?SsuS<9qG%%o@@*vWmu570QneYU%o$Abl zCy?z`PfY?(Als|{EW;C!_9}r1$9sD-Bqn%!k+G`HW2Ba?y4eP zw5@T5?xymYa>8Q*x~Va)T88(&Vano$q-W@G)td-=IzAv=4Pe5a4p(D{bWew?6e8Wz z;c99jrGVabB3#j@1awz-wT$jQyQ`m=u*bS9V+AZd%Yr=?p~`5Y89G9_u?$c0Ba|l- zp5#ZUc1(DZAE_c)4^Q$V)nJz43>K-zG2sjrsb(_a4Aw&}Vm+L}dZ^Vz+VVYA9uZo8 zMnIHutcdm0mhY)jn9%Y))l?#F`JU<}6Iwo6#a1e?bxJ_Ax?D*4)?UiD@*B(dRwIef z^78_Et3)QWd~Y?4NL#+Q$|lm5@2wUU(hAVaCqm1w4d|nuY8gER)kn!H+Sd3KR3GKU zgik@msA`(%DX19b!7{vmh*2R-c>fTidNSetLtizB_3-|ouNuoTykF_7<}l&?N?)~s z3GY|>shzBc_bdI>2_kLze(Ew2T7GlDTgtQQ8_V}sIZSBz{%Q-6wtRo(UQOE?Ek8ib zXUYj*5imeKE2Mnu+X|oXE%5n)Dw_x`|6agAwU7xdKTvHV(v}~nwi9W~4^$Tl=>X_e zt*%Rd7IZ9Nkg7wZcO`?AKNI@=Ak~oxeSWa&p^1Ecuy_Rn2N>o1vA4s!$?rrJ-sA6IyAQveeYI&IvydFiZ_Aqyl-`r#E6%IVM~YVpUBhv~{fVV?tYx zQY|%+tw*VjMB1LCR5TIV^HsoTb(m#n&p1`P&KrBiDNiD8&p5S;3GErLEOiU)c|Rat z#TF7g2d}OWX?rFr2af`K8Uqtmc_y@HqN+or?U|?=5ovoSs(?Z&1A5s+Xit~GB(+G( zEFZubV3NvXIt}N8N$Moi1CWhTmoYuE=!2;WJ}gMyiawa8 zLNt*Nrl}4r!?h|+^=87gDox?{E~1y?S~W=}vmUNhlT-%FaBZBVmNVhnI7#7m8KNGp zjg!?8*2A@NvbxB!Q}Ax!Wc85gGQ3kbS-oQV7G&wlzA@z@zJjMB(p4o*^jVX1)sP8$ zI$Z@bVNYkMj;x10ouMLFhVP4JsF6(gzG#M;!i4XOPEqq%58oG^qH% zJG_6CrS`Mz9e5WpOPym{2k#5%2&QdR|1(a`{ts?!A z^f<~^-w@$AY89BRzGuR5l&xM9>2Z{;OaZ8;$5FO&E2J)KG4Sr{Qni$6GSM0)JSknOHZ$Q#=~A_WNcZ0|b&Lr6Z))Ij zmD(Ij*ZsFb)oP&$`)`G6NTmC3g?h?_{kKx>2*#9nN;N)kr5Y1bK>5~Hs((u)-G8gq zIU?-8*@3IoWhU&u)#^Tx?!VRQF_G@S)he_V=7O{Y^cuI;B|HmS9hjs1h_WnIV4lxW z?U+2E|8i7sreK)o*Qmjogb&Q~Yt(3#-Gu&IqsB2UhFsRD=}fth%Nn(U=>y0mS8dcJ z-i2Ip)q5*2}l26dNZc!In^{ltVP$QzWg zjcz-hAa7JsEEFGm`e!Z7Qh?5_;>lz-?+G6ME}5HHS!h>o&EB zNPFuxwW^R7d2dtg!*mJHg7yZ!tHOw~EX%zP0S#kX>vbGxGSe=vTw|Wf)+DxinMIyj z&9W-J&IabGy-c-wT?D$oNZjQL+8ke$V1oqTTngZ-4*&{vV#b*1OjGo_+S2t14CJG{C3X59*((a`0Wh2X(FC zc4U7_?tDhX^N?=jDs>h<3wlU5V{R3udq{Vnx)swsqz6!ajp-iN!#Ul@nC@YH0dwQ< z_oIjPOjh8vd)f(Y0-}%e%t$*FvRjS7_eCuDgVQx0Q8UBdwPqh@+ z>qqn?s#`kXTmO0nrz`J(Z~f~f%pIH2F#S<|GnG@SpdO^kD#f?{^)sBVRw=&qulF$5 zrnF)DcKr!eS4_8E|3Wni(>_9OMJ%pn9ir_jx+URdL-3Fc>nOY zp2q2h;r+wodLeVF%Nv~^*I}yKU0#7Ir%LaX(d7xfhN?-YWT-o+nssU4Ih{h4rqI{TpdQN7sdi~JXK5!HL04nmEl z8kk?d>n=Ts>Vo_XsEeqEbRN}px4w*OO6S2)3#i(5TGsVNeI-@zP79z`Qr(k(SJ%Jl z8>zPE-vV_z)&9;$JHMniP#x|Zhx)T9_l)_neo~Y@W4_(BQfG~|>&!i4zM?-J?<#x7 zd_^A><(@HL(JLm|oO{N6RZk1L>h9s|+P|v9(@v?+JMGaohOBbWn6K%i=~mf$1s>@7 znrsYZeG_9bGinS`zuxUL|b`4 zl)c+cCe-X1c7A25^StS1uYQ1P;}EM3Q*~c-uJO<_;1%_|`g2ih)T8bH(e+*3dzS6fUP-*&_Uloib}PGH z-q*LeIV^3hZtv@pRQ9e)AL+nsnGSa(I-}c1dc}XK_MKvSuc+m!HtqyhrR!bpF5jQe zw`v^Kofuh_-Y&|$j#cR$qN(yyU%~AUlHZ5voH0VqRQ0s zxa0Mg`T(c1y&Tr+%0w@RbtaX~eWedo%YCK473I$1YyA&V?i{|>zOe13Om#A?yM3+G zsebiXRgbEFl2whVdi$+vMzt@+sywQUG^@^~@~2ysFUsBSUu(5IG3u{%CY2ra5q-E? z?ub5FEq7EOyDBl=QSB*nm7VSzoxCEE`$pFnR}R5o`^NB)$^9n)K>Z0@+;bWI|6TyLkcx$kv;c_R0{9!O<#Kj?bbCUQUMTq>J8 zp^sL}ozVE9x$Ma{_oGf*m6+~FeYz-j`F_&PM3t$p%>1OEbUrKXbU*7=s}s}xtk+Z7 z+)2Ii`b6%ezKzP}e$gv#NaTLe>!@t*A9~h}iQGSQn9AmU)pOS*a=+>oR5qu~`kN9t zWwub+oMYy$P2?Q2g39K!d0<^4r_Ga8HfPMLn-e)>)>GM>$IQAVk@J`^mCbq0v|AH7 zubE3_b3T)QTO#K(1F38-$z7Kxir(}u0$@)^q{i2baSj)F5P(Ub}MbJmf1^X&%3outXeL^ zY`-VbXNK8LWv9zDd+$x;GEI!i=4zY0n-aO&CPrm*bX0 zmCe;NMGqu$^~^*nn>)=!DiXQV%vLI!t8enRBy#o5Kq{MSU_1{eat%y9Dw}I)f?E^0 zhGrI(%{4N^9!caHnaQHu_Myh?z z#BMFjU#L1Hm2_)qwu^GF2(8TaU5SykGP|kls9T%uyA!$AW;d11<(bc4Oyu&+2`ZaA z)3km$kvr4mQ`y{E=8{(uxwFhdDw}I#Ccc`;wK1hsHrLh++mpz(H9;zyJKL;(Es;Ch zY@xEbbIi+sOXSWm`>Aa1T%+DdJ&?$CF)OHS zF5jH{Q6iUb0#r8F)eQW5BG=W7qq4bfW^OEz>t?PJo4s=hbWt-I-15+w7&Xxq#VsIFSpO zk43rTEHGb)DpRN7l}CX&!Ad(_9~1aGFzN3j;KNFy` zx&Ef;n?$a^xj>XVmH}p}s512eUL_1Lvsh`TJI_4%ZDP9f%*#|ZH_&YTE|D8(qEt3l zXdXD0$Q7C=sci0iv*UOocfQ#}Wpjhf-tQB+K_*6Jb45m-NaTu4CY8+%HVuDFs;IR4%Ad zSyrR+I#$jwMX0=~M&;c#DmSw--Cb<-Qt~2UvMPKZ44G zH7bwPsQiJIef1lt{6~$-l%MRnKD9pUh$>T6>L@B3i8{6BThyp*%gS$5MwcO`V~xr{ zjmm+n+-BONa%hdp2{kH9SXt-{N9FVymGf&8kN7)sPz79w?mma z>9j#*ny6E2zM-g7+bElrx9Ad7wyIItp+;qQR`xenp|Ven${{r>$NX3222@U}Q5mXH zIh&PhOca$1YgDeNQMrnh>G}&)uB}mdPmRj^S=ryz?>fXhRHO3g8kH}wvc2wv%E}s* zZ`Y{&kd-6#C{!M*QF*jRMMP7?b5o zG43f3Fa43?($7E$@sCEU3NS7iDpk)V(t^o0VtW1)ZU$D1l;>+!Z9^$O2eJh(J7)4}t=?Nl3P+o`&Av%TGRzU}S7 z%dBr5&DgC;8E$LbZ0A8)mPj|AT^-5fZeN3x;jO`vif4=Q!>lMF^k1VwQ86E8Y zeCZgw&)Z6`O2)FE+LP5{8y}JN;EuEU$p2OBR#soPzmEsWp5yxeJa)Ivscm%AAQ?%u z?e+UU-SPb1Z{aS5Oxvbf{20y#)#p+(uD*2calLMVyAJJC?zX62Q$7Cuy1Kuk-7a=} z8F~7YM?Kxe_EUYT-^Xr0?m6nyk+$AF&$yLt)^(n3C;d;fH8ysXo3$f9HD7mMN;vLT z*2?ZbhWpRAa$dFjhLL^4Bm0I|_6>Zd_+R^mR&8+3In~3K!HKcCyYiVyOvu25;$+W*;qW`nK{l5SIedoVlqRJumbyr_`4dcG=9<|867W$>V zMf;9bt6Hcz<+!htU36>gJM>dMESYX!`z^$)Q==;IDS=1X{vEZcq4nL@!|prNhq_z; ze}?XBwm&khyF`Da(yjS->;HJq|2vg`e9b&9Tl@~$I!4~*xzkpEZT!D8=HJi79mDVa z>dt?^r2olwY=^a>)vRT9|16UA*}Me8K0@}7jAVNEd{NXI!o0-JC0T# z?R3>foq={7tr=QN)fQE4q1&pn(b@w$qa8=~Igr^&Kg6^cQN4p7g zzXc6XOH_BD-L1N)d(n=gZASaE%2yAe9Y=cv?QzvrJ&kr8?K!j;FzUae9Y=cw?Qg2P zdK2w9+B<0Ps~+kjwBu+WqkXD+;+dE|p?l(4l|9wBSmN)|j-&mA_7BxtX{R@IZ{-80 zI001)?YIi4I^g0$DcYrIm!Zu>n}s$T z?Q*m^Xmio*|M_SO&=#UCLc0QOG1?NerD)60u0#u?El0Zwtqg4i+Mm#_L0gGdj&?2D zb!gY4-GFu@+8VT*(AJ`@L%SL67PMQ@ZbQ2r?GCg%(bl8gg?2aEJ!lcM4QLzDHlf{z zwi)eyvbwhn5AA)l56}*veT4RR zv=~|y+Q(>q)qRGeY6J28AYh8h17_m*u-H|wK(J77xZrrf*+AUI9C(_FEBhCMxU%2I z@;laF1kA*J=q*+W#+`d-Q}|1qgKCN;;TW{PmD z?MXAv!aIR;@Oz{;@Y^r@-9)>j^^CpuUY4;v40oC}+=bZolVxl_!<}34blV?geP$V3 zpJi5OTi-sfJ+2px{0zU}C|!0K80v7uvs2&HFv&aIxd%_d9qyddFaxoDmV3xazw9h; z$m!9oy|+@$8o+UsZ}HYP_2+H#=E|tr zm=0av_cp?l>;DeNjxbk7)dqM7jvZT$Nxk9=Z$~&@Uk}OlGj@w$yx1c6MLf1hkvK)- z6p1rRoKfP85@(_~6UCV*&NOkRi8D={QgKSfDHUg~ICI6BE6z6Ee#rc!ENq2MNlUO5 zo=jR{RxEzsyG z4jBNyso)JWZ9JyPPIa;1mX0<)XP!lSFUShV{x)vCjB34%YQ2oA*r~Jln&e_;HXkJ?tk(QijXA-6Ka$ zmT`|GyGL!)SI*s)`jnc{wKBCB)4m}XPkqn%w!;bFdzU4p9m4U_8211?);%X}kvVhN znQ7a!TDB*t7*CAqkoKOoztu06Cx0$C&lmMd%hT@<>JR+L=iu&ZA7ZUG()NipdHNsc z4+oAMGzPud-(@z^cMqR{_=e##(%R{LK6^j0H}PAKcKW$N3(^i_Jcqo;fUDC^O6>92 zxSg?c%+vAVw*PZGKY~72;~w34`oclB|Mr8PLvOL+wzmsAJ%V@z?%AD&X%BhpNe@{P z=Stia%W@>GfPFrYqSEtp%b8wa#-KFdyg{|o+v&Sg8UnLsW~H~0X*+V-3zl_E?|~TK z6Z0JFUVwPX%t1gsZW6Hnpc%l`*`Fr$@Vq>HetJKdwn(NeH@_6!l0HhDiQ-I?xK!e~ z5-*W>1rWbdm;P5s|0|^b71I9->3@avze=WBCsUQ17rT6q@xMPPqt<%yH;KPR;_VXe zka)MmdnDc`@d2Pu9gsO5kU1WZIUbNX9*{X6kU1WbsSe9j$7HILg2!aqlY+;jhm(TG zq@R<5$E3HDg2$xKlY+;j=aYgSuia{Cz}0E>B+imJ7wA*DUc1h7y>^}FdhI&T_1blw z>$U4V*K5~#8=0!3Ow~i;ei9c+JWAq;5>J!36o|WwNYACxbE))PDm|A<&!y7yT$yT# zOtnJdRT8h0c)i4%B;F$Nb|8LdCp~YMp0`WS+ok92((`udd5283Tc+A0@ji(UNPI}* z!xA5pc(`2M)|jn>>tqhs9}L0u4t^^<^wh3Bk5ASi(5EWZ3-kMA*7MnGL_MFqM%44! zYebsQUOlsX_Uf7IvscetpFJBN^FAz5BGS#BZV&97)-yZRG*U9uWV4_y@#4B>o}s z4~c(B{E5=@H0gPo^qFHGT{x~zj_Gj4C3Q+AJ6E!YrH8pvv&8q)l3jHUOK*pzx5Ls~ zo-9RyG0 zV!ib>E>sW8QrE-r{?va{(;v5jCNTxj?eh+inkWZ6}q=zEup-6f-`Ey-@>iBdUH zDkn>>-tNrLu=q z&Xvl!QaM*D`$=VyRIZcCBB@*_mFuK(om7sJ%863BUMeR_<$9@HFO}=1a+*|@O64Z0 zES1VlQn^VgH%Voo=`?*p!)<2F^x}qdWvV4I)e@<<$MRJT-@xk@Ji7|l)=c$=({sqR z4R@N`=dFR?s>7`fcS^R>oVVz1#93Jt4J*}*#ZLjfOP_DJLi$`KeXf!|-;;jUiND@m z7V+P3YTIg$3WqM^5H>`9WGp~1AqfJu3Me4Um{dRG7h_geSEwZFrWEr=}GH#J& z+%1)Rq;k8|?2-CHGiSjSr^n6NSAmrnskX~hwT*AyE2nqW?+$EW?Q zP{=tQuirvW%ggZlXPk|3mPoS4-GL-~{Ms}Bk(91__TmGL4<*@GW!t@Wk2)-S)G={R z0*|D4l5I9E**#|Gj2u?Cp2S&n1}uF!>l>5ZyKa+W=g8bf!0#{3YtjR+(>i;0%Tm~P z0V|s9mXYt4k?)p~$IV^yPMpz3`stW#M^)i8>($RxIQAaq6^^~9Lxr<#c0bcYYW7HP z{TSP$c#rh9M|wLX=Oz34iO(A>-p^2rk>9p>9swx7vJ98?y>c9m&=t7_Y#_QdTt|6 z$4jz-A-w-umu%m0;GUg$$FV8dzT?=GY~O1%@;rX=faLYb_F7hqS9(2B|LBnO(9f`} zA-Nk&%dD$&^E}_zssOf|`EYJO8A(6cEBg7y_jwyNSy=~iJIXb#qg?Mcm|lUe;kV0b z&|*unJqvA5wr8R3$@ctHq3t&ZEA-Qs4+Yw*TcIa?>8utO7sKh>g4FpLRUo zst!Kmuz0oLYQZ&vHv=_3b!c~H9eloEvpA)AcP8&<(Tq}BjGSGNF1Id=lbIT7GQ=RRQ2`7>~u z^DyudXFIUed8%bCHOqMpIM;a%xX}3sxWxGi7ksyoJ;g> ztg#Rrj6qkzUn$vDlD$#t*J-x&`9< zBz{1jiMT@IE&3ePKPd55nQEK92+nrh75JF=PwHNXcj&&rs2&L1tp@{N)+2y>^jP3t zJrTH17X$Z84+r!N#D`?epUapJ%b1U1w8{9js2%4Cj4&CWUbFxzb0*MZ?0AxmU9L1^ z$B=34-0K-Tcl^o>m}TYxv&|L2TyrI`wOIjdW6FW&n(Kib&01i-xeeIE+yxAndx5w& z32>m<0xUAyfWyq=z)|KI;5ZWnPBbq9gXR_BH1j&}60;9jYTg6RG9LlwnuEZ3GVMb1 zIpQVeD`41s3tVA-0IoDAfvb#@m#l6yKHxf&3cSr^0@s_=>yzt&I7(|ihz5}aNu4u2Dr~m0PZ(I-~n?XFlMF$51E<3 z&&^!mVY3K$)GPy@Fm?|-Y3v^8@z^~u*<+nF&l((4>2T`c{AB&p1RHtmzL6z0O~h%9 zN~~><-5UcQyC3$KsR|`qXHhH_5bHW!fDw?aN-fe;$w?K9?Sj zNe{_B+h>+wN5O#4_Fv?){ZA8TmN-kqS?RNLT<5cMjQH$mxA^R6pY++$?)KTy?)BNx z9`M;Ye(tkJ#4(>eB26mQC6G*n>DN45E8JBFwGcDPUXI8Qu&yr+2o|Vb={ID*$4Ey1hWIMJelkM1cC)=^@ zO}1k@kZi~Hd9oebv1B`6<+tl3&2QI9L%$tEuHTN~T)!Q|K)>y0l;8GKD)B;zSNLt8 zH~MX#>;1OR2mH3r?S9*5RQlW_eeRb&4@sX#rO%UoyIjdBcDd@M*yYMjvCGva#V%KV zie0XLDR#MrrO0|tvCDNyie0X`DJy~Dl-0mhDK`OcOSu&oNm&ovlClB#WXfjX?i71w z+nZv~YzI>8dF=BPdk#68V$UHbQvQM(mAVyJFV!w%cB);*HmP>G@>A_{^-HzOH7wOG z*ThtNw!bvh9>24J7zw7TqvlDxRC)+Y538hy+oXq0(!*BiVF!A^879@P?R}|sZO2mW z+CH3W*Y=52yS6=PcFkm_J%&-WPP3!xm}W;6NVB6VO0%OHmu5#bOR`HOyHc_dakhx_ zq&R!T*)Pr^aZZYpoNoK9mu~xPlWymdFHS#kCW>>3ICI4br`!3iO1Ja9E#0n-P3d-7 zwx-)<*^zFS<>hp{Ec?>!vc%HuvYe29Jhkk+8rHIN$(8urT6VrYYS}&q*0Oz$s%85O z*0O!hmCCSGu9C{zq;iu~Zk5U%wd{Ofu4U)Dua=!}td^bc;aW1^T6P_JGVI=!m0{=G zI>U~kV}_k?Aj8hLD8tToT!x+Rv}o!%+`#j zv0a|buzOB4!|pjRXV@*ZH{*HW{*2wgSVkrA^Nha%k7m3DJdv>_*Pm>ecACr8K|$Wii6a*SL>#!pGy`IEEB zIphGjfE*-;$;-(R@&X_)~dR0*?oIFa@ zkzU!tZF}c{?eP{6eR1ys>Y(U{dKXiNMaO$Dr`|x`NvCzp{Uc&l#rFGJ2D zHzxeW?BJtUve?Igj`0BkT;T} z>gMD;`T^^Tuy%j^+s|9{hidi$d&Y~s1K6k z^qsm~9gMD;`T^GIiTt>f~euR31_zsT@}hc&%zZ#Zddfvb@wel5anyIdvZM0qO$D2d4C;E@VDPT`c*cDJ9e) z=EKy>B|l+G8Fe}H5$X++zi7%v>I&v}ihuc(UGyvISBbxT%0c>Z`lcZ$Dj$}akq z^kdXjl7D^5LFzd33coA2uL~UTTJ`=EL+uC4a#80<{_vFM)OpMYs0$?j)0Do{h0GU= z?+upF57A#Pew|<${c`#n#BUnhNWX&qPVvtU?xLco1xtBTgS*$#jgG5dWfJU;2ggi^ZQ6ETJEwzg+yQf@So}>2DDKhTul}74&zC ze@Ac^{Yv^V>MF@^4j!bAGmkHKyUPV$s~!m&YCqU6SC0742b0AELip{HkCX{c`#n#Q!>2K^mGooutHe(&K1dyB-f3*d-@Mp>?RN8n zW&GmzC~i(akA8vpql^2}FQi{A{*>Yp`XTzu#h+1JM!%f?2JzwuKX|RWz1UFu!Lnab=Scp(;^x$O%m=6oB)_e=FLfdFLF!`3KVKZ8 zAEv)t{J#~K(~r>KApS?i74&zCK2lssT_xI?8mCtHHMt!3;I*pWR6kh8Pd`We?5TP5 z3q+qiwUD}4bl0gN>M+>$w_N-IQ_JZ`=x-2zEj0t z?s&m#)%8>TU>Ps{9P#g&nnyoCzd-zLQw!+_=@*N?b83iwnErC{_f0LQAECcN{7EPT!x+^$0FeB?UQPtlyG6upMUrT%tA> z6o`LkNg@59`1=cr#ebkAL_aKk-9F{i5z#~XR8U7nuj*4t9TUB?Pn=ri*!g|m#}Ah6 zEBdUydDH>X!M=smLD9GN4N-?hzty*#IwHDuzY6N8=pp?osbiv7_lr}jW_JFs_Va^f z{-XW;^QZ%&&+lJI9Ta_C{}6RpbY=f?>WJvn0Tt9y(L)DRQpZHE9uTKi&F%c(8sG=p z`R9=f$suw%IRY+G{_`rRqoNDXtE7&JzV5s@wLh231-AQB9(91akUB^mq7GA+Q%9&P zsH4=C)N!)E1($;y0NeQ%QU|F+)M4s!>IiiOb(Ff2Iz}C*_P6Bx$c5w(xtv@CL>;Csr;bopP)DgN zsbkb}YW&Pjmdg*8_L98^e1}ppgih;=r;xxQU^u1Dhg4DMK3KXr;doOEUKWcB*( zU(qiN&Z90Q2gT1C5~2=^o;#$RIwJawAr;h7(Ro8Fsbiv-4~9^diAIZ>Zs_$qbjN6WPeA_4_u;(M(0rnL~k5j zNF5Zd#)PQDqQ{OYr;dnzY)l1pRCLPNO6r*C3&+N(RVO>YXU6)$vb>_}j?1GCh@LgB zkUA*(^>HEUu;^Cf%c&!xmyfTYj*5Ea*P}&t8QEm;)YpODLW!B5U37m`Eda&m-RL5`9u z$uV-A?C-<%Pc9?}$sux>TuzRVE67oDB{@cplkrn`cR9$}U%-lw3)Ull}d>t4X$N_R8 zIYcfeSCFIRN^+d+Kac&91LQ(-h+IytAVTAxAvs76k;CM2a)ew#j*=_MF>;)Yn^L&@138)PL7Z($d%+c*j%g|a+n+;N69fVZWZE=gB&Ht$heJ&Bs?c zkQ^pQ$k9{ziSBe^a)g{c$@L@T?8(&R>?zdb?4YY-99T(B4wO@q1J_cM1J_ZL1FKveSWTZCxt{t4mt$ny8pvHva)2Bp zhslvs`895RkQ^rC))w+8Mi-jH5s=;ay1#ZMG_q#2gzY_gd8Qu$heh~OqWfL zl4E4tX33ooSw*PHxc!owCr8Lpa*T`{e7W->2gpHk_*8zQTNfY)$+1&L58xj*z3|7#TkVb;m^xkYi-rn##?S zBV^pJ%Js{Nb>JAH&4B?lgK{TLay!*b_C4v>T7FgZewl4Gax4|6`` zC^@jz^`qp#HdhD9VRD2VCCA9PEtfkka)2Boqp7K=Up8pN61lfjI5&Uj~pP!$oSc^J05a`9C*R?W8~m2R|j{~CkJ12 zb(kC>N69fVZt&;Mha4aW$?7HM$pLcolz!RGN6CRoYI5KeYI5LJYI0x?H97c(tHb07 zIZBR^aU()^+~fc`3NBIJ2{GZp6C!U}ee;B<@Fx>u!tEx8_gR1GMCWbybK@Lx0XYmV zQ7=u52-ltz6`nK+H$H@a|DgiWlj+0cC|P~T`I5urC>gijbEhLm$+#V#_yKa5 z93`t5^W-o&O2%#c-08_-a+Hi){JD8@m>eamgUpk|ebJ zrj;^%m>eam&o~`9OpcPX<8D4kj*w&I>@S!nN60a9_Lt0)Bjgx4`!Mt52suX1{)%~W zgd98Nf9>WYyzp|bj zA;-w}Uat1ypQn!J zOiy1=iD#>4kLPXAaZe*}3vW;F0Pp$U(cX#Pi@YWlzCC^HZ zChtp*B_B>ck?ip|@HhA8`+N8Y`^Wn)^w0J$^_Tl^_HXb%=zq%pqW=wl+<)Bfq@<@b zN@YCKMQY%s)OYNF=aoV5LeoPyazB_$TtIMCuh#d zyfSlr<`wHw!NReMP73u<3f`|{fN)_$+{54BILGq=v3I#qR?y7$zrS8rs! z#r0O#`&+%{rwu!8+iAy6>r{VE{RiuRUq7os=LVA-tZeX5gUSZph8-FWK5Imnta_P=Zx`ZJby;Nrk6Fn zt?5Ti&&VE|y*&GY?1!^^<&4dlpVOh)rOobZ_ENKWvxd#DZvJ@lcbXq=ep&9_xzFYv z%hlNK9(9KDsvPCRmw1v?OJ(oPn}$Esr>hRCmg=Z7R9BU$x~bZ#5I;v4r0U{cul3Y0 zbs9djs;@@jtGE~8YpXLTj>=;Y(hrd@G=kZ!n#M|bt4 z(?h-E^i&6(Uh1%eJKs71+|Q!`_wneX(sf_eO7~N3b$``O4^YGPhq!BpQr|ayxSLWR z53+bimPKcz#kAZ=WSGxi-GBx$Pk*+hS&mqrf+Fe*xYl_~ueycid_tlnUH=Np0ZJPy^uY z9h(5-W9cw+9z1 zn^?zPw@YLV|1!ajq2b(OV5Y=#=h*m~3#@;h#1Bb4LgJOOEEPlT7z&$Pd|$@)7g;vH=FG~)W-R;9XE%z{-$zpk7wYV-@{h^ZRAeigCk!8)}LXWx`LZS zuOY79|2++DpVu~Y=f3|p*-0&J_JWo+>u$j%**0D-{xb31BjWuD*8gC*t&a}3arK_3 z$yP3w8g~yIAY0+y!3S-ntdqBU+V%5hPdn}Akp1g-^>O~Io~zHjr5q{Eo7f&|&9%ou zs_YNv&9QN(Io7W}68DJMEbDXcrN@w+Fw)kH6RbI&U*K0C&)c#F-jp@q?u~o8+G#Uo zUrIm2#+yUQJ!($1dt6;On?sF$<8N+e>o*E+4(0wPTPkCFVDLHcKkIHQ4+(A#b^A?a zt2%Z`bL-feOKaP0F}=2p_e%Vl#ObodQ)G*;73W4l_q_eqAY1RAy>HF3aXXp&S%MSg z95r6n>JP*0_BtkKHuqe5OGjJpo>4y?Yvb4mJBANO*!Y6+7RL%+Dtq#DS@TbKvtxcj z_VBLVZQNOw?zZtZzFF!|t+)QaS>As&U-#&qC*!F;ua9LZMh~{58XrncU_QhXuj{jb(!^&`Fd_^a<} z)z?zq<#wyJyxcC=T8VFz_`RNXov)Rn+ufh5Z=;%9N|w2wCCk`amT_}v`)~TMz6A%#_y@}Pt8c05^I9V3|3z{fwP|IyPM*A4tG+)s zle1G(IXk^C*Q0j@OU68pxepj)*Vwmmy*nbEtu5Hu0xL;>0@TTDC=bJZ^m5x z7_UD5>f;evR84`rtRcRqvtt`KS64Z4Q0gHQ)%T*!p>KXORrPtf zd(khKpG3{(P*TsD+x^?i>%ci8$GCf?s6OrHP{ZHUAC}`WE?E7XQ2o`y=1}wBOjW(l z>dRYwJ$x-!lP?9U_g4K3S$z#xKU-EmPr7H$&K>P}tb<%ZUXk|*FUb{cbLi~fjBVXz zUEx%}a%~Rv`%O*t@w@ADS7W{1&~ zka(QLm&$9!>2ftWt;=l8H>cAAVAn27fuD3K19r=|-$*R$d;{>BPB#ND>~tq^O_vQo zU;h2Tuks%RZteUi@WW0|0Vn4_4=m~YBCv0#SAkFFzX3ej`CZ_w(hq?hXMPGi+2cr0 z`<~vQX`pRhd5`Z!?8W|P^0A_&IW3<=7^gCHChYA zxj>E93UN!IM$1Fo8mQ6ELVPArqqRlc2B^`_L3}n)qqRePE>NR&K-?av(K;dS2-Ij@ z5O)URDc|_i!%_J_jn*A;H=xGn9X%0`25L11U+;AAWE(t(M~zbjh{pppK5^@dcp^}% zNvc2M$v~}w>O927Ks-$vpQbqY?7I;0h4@rO<5QHua4rUFd@W-r;t)`)>G<-HgU?rn zBQC`=b+o!1^LOwm%V@-NF@Fc2wv0tQAMC@s)Vij-$dr zjX%d1Bfbi#aet{2#4CUr_lLa@@t=SiPrkVr@wGs$R%0vIJg_yg-=#2bMc&%#*> zybmLF@I0I=5#NuIYV`od=-^M2Wr+WbF>3V}JfFwG^Kq_0{2)fE)kCqX{tT$q=NLPl+z!-u0@S0xFEMJZ4yz~Ne+AU)Ym6OF zq6TVpR6T?E8=zL-Vrd-p9Z;)dSSAP0YkD5>_gE&aeo(vMoB(R|qk0ke6PC|WKLfQo ziRHud?tmH}G{1`YS0Ii@=QYI5fH)qV*AeFeaXdP2AZ`i7@#wq-Y>htvX*^x(UHE4K z@%(4!J;ZH+8c&@10P#6Mt%f=uA|3|BJxQIvBOU?NYNS(zcoY!Fmva#DSRjrs=M&%s z&S!8Y05$F-97j9}sMQqbOTjU&h^GRzDshe=o(9BG=6r+rBA`|mJKrI`1c>9y zIS!of`~Y0&{0M&$5J!;nGw@O87vN*gufWG0$I8gs_qU<(>;Nix;JWS1GTE73xG{@U*H+KKd`Aj z57=B6q9zxJeM1idw$g*)vnXtQx)@FmpjJI~39z@m5KaK7Re`=3*jI<(^aEs=g9V2~ewPdO7eS zT?Xf3AkNxn2XDuh+s^0L0#? zZw6kWZv`&ax5Hlo#93Y63A|F@1t$!|`CQ)vT%|VvSL=-BxWoAmvtSqs!^ovr}h zqW=QtR-ncms~-g3p&y2GClF_By$yK3eiZnCehgTlp8!6npF+(;K%6=CGr*_xv%shI z^T6lyPGp}4YTTK67w}d6B5;p>3HX|>1iqnP1-_|Y1HPqSNBuq^&Yb!UU`)RStkQ1- zKi2O8Kh^J{<})D9hx!BH7y3guUjlI^)PDzlt*hW10bW@0@&5G0`@d{$o2x_s4-^&3rt%$eSkP>%sIgRcs`P&1^{u?m<~WZ>jBRBK&=Lu zF2KR2D{zSE4u2?6<1XGkffGz`;6zgZoMid}i%oyjOa1H>yL zb2ac@a}98#DTluah}S~qI^g|gHJk^4I3CRn!0l!Y@G-L%__({G{sQN9 zpvL{p9|XQ>9)|N4P~%?b+ko$wN8!8+#P!QO27KQ<0p|mt#y!xV0)Awk0sh@Q3qJV_pJ&i)RDkC^oMGe=x71@&pjqGV?mn<9P$<^}Gf2 zdEN%5c-{r3dfr228W8VdJRblvJRicz1mgXR=kLI}o+>!?fOzNPIS6dv`2Un+zcJSbZ1@7VQ7+m!{IEkn(9xt4HAdXy560p0+52ptZ zN3kar*xQ4%4(|D$j<~>+0qpCk4W}OvN3o|a@I23Ha0UW#6nh!~2YDL7DFWL2!Z!vE z^)!Jq3~28W-xN3!&;7$IF`&I)d~@JfPYXEXfExFXZv~v-$%8Wyh$G!|7I2EEEu0__ zN4@79V2P(4aGIwB@Ip@~WG@2ZsP}Y1dD zf#sgjz}23y$X*Y`yBp7V;2O^aI5z?DzQ!{Nc(Z2;oLhie-Rda@-tH-Za|aObcRUvY z@A6y>=Wd`@_jp3U4W1dmdp(!J-w4Ee9M4SP!=Bl|t)4l+ZJv3+$2<#A^EeQ%Fg=Ta zPk9!@c^ZgUo1Ue>XFXTKc@BtIo1W#sot`o{F97js({nZOMb9;G{tCpaO;0(n(sLc0 zSAe)KdsYKq^V|UEZ$P|@!4tG_b@r@<^Cl2iXV1;Rw>`JQc?YP~yPn&D?|JTo^FC0k z4?K4PKlI!K=OZAFYtIH?m1iTIkAXO@J@)}W@!SvRQ=nF#c`AT$&tHJwc^(8F^E?bZ z?%4+X(eo%Oe*)swspm1^FPI1hMV1lISy1Z?1~1UB@(3e57phMFcoTxY$n1GBwvz{vsPI_rH4nCpETP75He zv)*@s?Y!>++j~C%cJO`(?Be}9YVv_NLcLYM?%soNdH`{RdOrd7_I?H@0K^gMjRT9k zUjhevzXA^N9s!Qv(YNcnz@B>-9M5QXpP!dXs>Qynf&n-c;aXZ#wWwZw6|@K)i1B)&`b&>%v(9#3umW z(}34_8^Bo!#4+M+1YGBB47}Of1bB>N4!qmj0?s`^T+zI(fcJXy z;A{k9&-b1M-0W=&=YAkwVS3L2{@L3O&R>99ZSi&hKIH8L=V2g@5pNgZBi^oX9tGms z=j{%B+}jh*6F|Ho_4Won?Ja=w3=mg9Z(rbZ-u}Snz30J?0&%=}3xT`5gW&82;&|~6 z2JZC^1-{`O4t&!)68MgHH1J*TSXAx@V*mG!2OjcH0Dj_~1pL%H1^9)x7&Tu4@w(Jo z0{q&0A@GRzV)#daxR!ZC!0)^>;2Z;DpZ8u0{J}dDc)~jy_@j3YvOfWFUGvQYdVLFk zKHnl>if=KpsX)Bi^eqL}@?8nc@GXa*3B+~HR|c%>yBb)}cMbg0fY|?i<-mr%>)Xu35eh5zhkRn&taD;>&?}z3Qt%JQs*pt-gbZ=L7Mo)%OYF zg+LswzRwU}0mRYjiz8kF#5+FUmxz}Eas2weLL3I-`1Kt@d=(H!vF{tiD}XqPecvJe z6A;I;?>OR>Kpe}y9}r&)#5R`^8q4q!(dU#;+o>gB#x_(b(-U>8-I z)C!-d9s+h%Y00hdiE15xD}1Ut71%?40qm*HO=+cisf&QU)p}q+{S{cCz6bWflQvr6 zQ`JqtergY}ze-DMr3R?WfP>WZ^v1x_^d@*J`DKWU)GWk<)#Zo>tGS4WsQHM8sD+4! zsw)r=RZ9>LQ_Bz!Q(?rz)m4axs}+bxs6Qbdp;jUusjfvl63?_~f=_|3M?6a1hs$IZp7o&|HIq6z{ho6^}<^kJ9^l9+K!!AvgJl;3vG?%M{GB48og}G z*2C7raokX4G&8cs9?d8-Bil+7kdkoQ(n3=xG<|VX2#|8~(X_PO0D-35v=m6%(1uG| zav{B6%GW|JH}n^v+!px$|F!l$XP+}8C!yc(i*qzj5vAX21)k74U7Q9q?^tBjBRB5^xdU_UMF%_-eo<(*d|_wgE1i zF2IZCHGmiK<&REyv|kJOf_XjQi{?iGUo>w7e97zte97zrykvF*UNUjZKV<#@@Q2M~fIn>h5b#IL zzyBTZ{pK0K_nU73 z{tvnMT0BX<7mQrfCQKNwX2~ zC(V_BA2wS6KWwfB{3(11W-I<~1N>>z1^CnEHGqH1bOZh^^IE{4!FOV|;_r_F{+js) z;IEly0Y7d23h>kTvP&oS1HKLTFU;Qp{yM(zvK4>73-}x6CBWY>{{;9i@x_;|`1^kV zKWlyf_*wIBfd9%gw{FGX*49q**QOotUz?49pEFkieh%M*>BPPQjt1jz2jKr{wgLX1 z_(Du4cF1-?&h|kfPGbLO7Blk_xcH~R6(0pPe-pb1kHORbRn+=C_7wgJzW#dnrLTrh z`Hk=d-%xX;=0wfSH8VBmYsxiu*8HcM_to52^YNPBsQIm$M{B-N^W~bqsClmDJ2l^} z`F_os+NRnoYq!_FzP6|K&9(it!?jbjZ?8RDyHLASdsppyYCll>vD#m&{bcPUwV$v3 zliIJDu}4BxTl{c9dr^XQr{ zto`cRe_z{rMduYquUN*`<(9fP)(zJ^T=#h0SL?2=zfk|h`o@MIY3OVCi-z|!KHc~? zjqU5-vHqU*_pSf<`Y){i^7_A6|J?f5G`*qe%}w_-{Y=ySO`mA`bkpxO{c+P*oBp!t z`KJHXw5fSp^Xr;-H6Lv5Yd+b0ra9GoTl4MB?{5CN=3j39FU?sMNLwe4>kZ2PUY$J=(bU*G=o?Z4Fid+ob6%x-vQ!}A;VZalPc zX5-w(U)%Vpjo;k(?T!Dsv2D}&O~p-3S8lm7edYNp@450lSAOxzKf7{p^YP8kZT{QM zo40J+lHF3+@~2zAy5;}b^1rtXUNv%6`l{SjZ@)Tobz$o}xBmUs){fV9jCb7J@qvzq zI)1lf$99}v+5VO7ja^T7{Zm)hjy*d*yyNt1reE{E*Brm*wcT&(-q-!3*Y3Xd%(ZKl z@lizl3;&zL{$xnZz@N=MJ7$CJY|k0+0(fM)^EZFr!&pshATOKpaB+6=99 z6|~V+m{nIp`&FzbH+CeuAtAaU6}uq~yCDU;A^o~3`ylPQu^aiL=C@%P{#V$AkH9MY z9oU4w3ybjgAafptHTe6m1^)n+;OAfmJ_alB^RNN`5EkHngZ=k7q|z5)`+X6X-yh-m z5^TRehUNDsu>1ZLR^Jn_`JRNu_hrbgufW=S3bx*#!P5IG?7Xj;Bao^`u-|$VyRAnd zRgYq)^(Z9jQApCGkYz_9Ifw8z!7)h9W001|ASI7MIv#^mJcfPOFAB^3e$DIJug6y< zuZRD*7oOWA_|oGDe4@SZa8BS0jc>y-s$TdHr{UL|hL`SovwiI+v8w!>`Tp8J!fNPx zvkT9mE1tv}CpGXZ!S&-sSGGZ*oD zH=g(5`3Rn0$Mahaz2*j5Z-!fYB{@VA|d}n=UZ9{Ws?cI1jg9jE!?Z4ugZ0W51bPL9$ z^=)Q->sM+=Tdy~#TfbI2kKZLcFXCxvyWVWVvjfj0o?G$c+S(HD#q;5|?TIJaekAd? zZ9R$l_U(xy?Qcz_+I#W5HSztmM-so${yCFspGbTiaWA!}fXm>?Cf>DSKJl}7{sB*7 zV_RZy<2w@t{QeZ4-{1I=#EW>=Y-&qfho^tjCle_=w*!7Bp7(9~NaBNd9>DX5c)kMM zvv{7z^TMXjC%Uiv)5OG;f0_7sJojJuoy7mRvMurVS8h+N+uW9TEuNj5|2Z+f`AFj8 z=Ix1(ZGLCs_cyOy^N*W1tagMfgzv}mD4uWP zxvB&G?MNklx#K^t`Q?sZUGqZ6_Qdz_tnGYf;%Mh5*IelQ6w3QZ;*rjeB)-u3IarGy zNqi0PbDh}p+SZoXux8OOB=N)+7h36OX{0ibewe9nX7qld+5S1R zfBRo1ZpHJ{+m9q3+5SoMMc|*={>N*6fZq*WpEFl=wIvSWIo7pyO{wdj6Cdu%CjJWH zZ*~3UnyYtY6K~kjmKej6#q%?GK85EG@cb#BXYhOr&v)_sJD&BgLI3c)7SC}!cfDpJ z@i{zy4mfd5TcY)ve_4~g=HJ&8@Z5>;$MO6oo-gBh9?#9)ZHZYt@5l35JWt}e{@S)g z>RNapC|?du<>wd6nUT!=Or}`6Aw50av&$UnFXZ!?RM`c`@*|m2DS0+Co=Ii03juy2 zlTY^-=I4|7G?VT|&J)GVLb8})j6)sCl*jV9Y~HVgNr6W_7f@}ooGs*svn4Hf58_ZG zS|vp=IG&j=T=4Vn7i21#%h{H(vI9WwOr^?&;texsP0z0B2x3nxyjQ|Eq^73_vZaMw za;ZO;ES2`hQXPne_w4G47TePkL+qDuyxiT)6-Vyb6D#Xr9MQ8^@*Tvu2n3?_veO){ zq5N!tJq^?BmNaAeseCb$ObZn>f2@<5E~Hh@UP%@rG#qbkEK$$yebMH}!+T=!Jw4Yk z0~w-taxqg}^2fgP!|ofyhD` zJ2`~3z(wae=m}hOYAMbYIh>g-lk7;w2|b>z~V{&QC1Plu|{A6HI=Q6^J0~QXc8d2jW;EE0OyFPc5WT zqd(z+ya7{V_cVZLdj$0|jD}1ewGXh68xDZUv>9#&A?TzTL2dMmc29ZP7jFH9#k`6! z6t>914rentNXc|2bt?jkdH#%N7D&9b#34MHES-lSUC3ofjETZxF_i&&$o7@sKqj*Q zy5=*1+yBAqR#kwOA}>@@4SGA~CEMKfNi| z3Sb;U1ELz!GM9t+S7dK#DW77>kxY56knUT|=F*uWQV$KHqFlC&-X>KA@2Gm;XoR?hO-f2KF z@d`|Yix8eKogGTwun&xB4lSxE)<6og#VJh1%&TIxi5HUPISZCB;Yd9jL{4gC4^u); z&KxbLm`PpeTb!NE6dj^GKanXyyV`I$RSJu`;9z9af|YMwSvt=(G?PoF&gZC{HOxL( za4KK&rvrKm10kxDf#WRnr-;n;2#skw=ychwGi0~p$=&97X6aNix0pGR%ocCmjd_q2 z#)NQ2$T4gL8L$n?3})`0>Z9HRypwh%U-SU)^6m$WK19_n%?;oqBabi!FeM`hxTxaN z4H+=yEQY(BoL?aQ5C)%wV}>wEJCv5Ou_2q#F{~J2q#vT$yc5~{SsNT%$cUgsOjYR$ zJUU@nLQ6o{%H=?6Ar+<89!GzM?IZ*^QBD?7gqn6ed#jU$c-NSo-3&N$gu{&RQJ9N4 znv%+SD(idpNJ>!_R{HOCGx@r`!Au5th;yBt-VZqFg4jYp9sn{jC0)X|OOmTgnJ)Bkpj9qlZ!ek7o*&q6jGcT^&F~wX5W?QWTLwCiE|py`XAhpUXha z=Bq+Pgt~G!LSy-U@PIRk*%V>}S~&!|UB!Z8Y|kDk#fnQyNuZRsnPNXe+Wc5+4j>{z zI)sDP0q#wmXMRFyzZXDAd3Nml{$1x!bH7(TyAd^(r*_viGF-h^x+vKr>229QmuS8? zA72MF`NV6?exO!q=K(}TdXBKL47v*t?V2o{*XboOvBd~*VxW@z`-2|OCClT5!n_R1 zZlD7(<8>NnX_7zaw!eOk=x8FwRksIl&``ip1CN6Zqz<;~87ce#kijIf?CKwV}S~OG4Cv(!B14@(XRx+u81gb)-TGC1qq#4VLg^3)yC3K>QIae%aGbNpH zY6T+daJHz6!#xN@C*yU%2tW8k%`BYDm^iR6C!N^U-XAb$Gv(>2$-_uBnz=Zkdeo_9 zGzNGM7KAO9ylgBG;ru~BCisbh%3g%4)g_%gh_s&JOws@ae)0!g$pO6Mkbo#2jk*r24b(b2*F$q+R$)i-@&d~9;8e{5Jv0r|^|rOC-*sUQqVMPZO_K!s5R z8Ir_zx&5%@_Yt;)I7;gs){beDP>%v5(!x<`*{G%%bzL7d6HBFXW_~B`YG%>nl4@L2 zjk{FiW~BG@bV!HEp^?D}GY1-$`><%}pPZ1C6WV#rtSEL?$BKEzrY24Q@YuxQbP%$X zb>Z>BlT(8elR-S&G%3X*CkJiPwFy{9^J#+~I1)~q3$)Fqr_I7*X>I_^j%kB68vZWg z(L5&>XB>#d6Tropa$zBxLdwjAY$`L9M(TX_wnc%&be=ZFLSdc}**prtLWgS+4bK+% zn_O7n&upZE_G?fMCw#Q*I4xOAVr7s0T197zA>Kvk)9v=f;~hKzJd$ zln9a+Qwsr{DHaRGAcTCSAdt=$p&5c8Jb#5^7!1}8L4p+KT@WZ@-31zf0{P@TAo$+O z>b4p!l(Vyx+0!N;f{Yh=r7^JE=u&h{G`Y0kl5@F>QBw@7R4A7!OPY&wnIe+TB}*e1 zQc$o6Qxwcz0-U0M0fT6Ngel2`*>V(4j zPr;f(FQ-kR6o5J&f)#FqWl&<0qWvw2^r0qUr}!7-na!Ss*JeJsfHs`Z;_rO&5>1Lg zY1$rnVWfa9=po8Z!J;`VM@l(YD59`zoDZ&sog^Mm= zhf8BnzNEmEN4f?5D+&}rN3=z_a1i7)nKlq<#id}`2n1&DVy+B;!_41ufqzv_%4l4W zRLOL28BIx@=T90>E<2yaPq~=PmnhAc7JepV#f)PCh{Kc5Tq0z9ubkVrL>|u;;0ggm z5kHj_8IK2)eh{*?1YwB{NM1Q4uU?BTEdVN6b5ZQQG|w|fV{j6d3hO(NmGA@4y&29V z^H>iprgu(&kzpF{bVl(`iu07`=`+(1hT`Fyrc9ueOZm78jA+DC1sYYa65~&hc=1)| zOFU6*`oyEd*;EnZO|E#HKiA@McIw5^{!EO=c@r}p<jadsBR(VWe3oJ{mM zQs#XH(u#pNJ}MRBu_7emNGdGX6f)x^O(o%3g@j)fw7ePyz^~;Xc@R(zcTtYPUD#Tr zp~tth^GGJ2DWX!YT*Uc{NdkYqf>=?}t>FTYR4}lMa6{RYx?0o#>l#W+B;X%k29tlHryYd8*9E!BbHGr9HyD=`- zsnlaZ$zx%g$qNldtXL&T6eam%$!s}Qu>D{X=S{IqkDAm+&{itwpt2y; zOA}k#s*t2s&?eSEQqmE1q*z#Vc^s^D=;-ST-4+@I=5;Sqlc)-pS}n+e4+mzx#CSm| z-V587c^FCIl?6THh5GEGLCOsRk|zk+G9zKpQU$C#Bx4w|X@Ms+Hgk@y6AiFUZY>gY zBS0|uWMsV}X<{g8SPW;YjA7H6*(7X@pnSEm&=hipZ4u2psYL*3uv;MnQDYH|)E}e< zDFq%;i&46)CcKntLFfLp)`o0{I6Z5VOfBRJXbKz}W~cspZp(wG^> z^2Lg)@r?M_(0ckuR*htZz253nQb!O>F_u4`rFko{K|o{r)bh1aE~IhV^pZoeC9XdK zQd0)bM_W!9j+7LlBV~nXrWV`JuCJxI2tr66!7vXeEUinI&DH7-q`(pgx*t%OyHLP# zAA&#D(JZ48bW{DXwpW%O7RNe9-0ELagdu5V7_?0c5w;}dQdDlk;AP=kU?M#j$mF0; z;amtBA{`6SOg&T@ytIJTw&tbzY13O!+GJtdATKmj5(Ta`1OaWuiR5A_sM`i2?X#ZP zXzLs@x?MrF62@r1qqqtOucZZN2SrJ5+2vOzs>EyChz}@KEmM_9&8ZT{@<~bdy`oiK zCPBr<6}GUsl?B#>RHc_3l$70W40duhL+Z$$z8yD^J`x_w59KdlhuRIj3t_ENBo>^? zEt-H|ge%EgWfxV<}i$OC|iZ^*R(vC+O;RDYV`o#zQ-B%9hDr$xXmE*?~hP z>@HjMB>Z^N2mvIAKsJlOz3P53*f^LhjOEhi5Z9S ztW4>YUbPsj-l|1ev3!{nf$F+U_LoT$(NUKv#%>8#@I|0is^^Vripn%j)>p=iK zi?J+c#bUJ-6=Hd{M3rK=TFTW$Zne}_N>+=qV=D6SGVxX4L_v|s ziN1=ehDxM$WmzhkD)AH9+pDCWOrEVwdQ&!yvrrW^+8F__YGvF_@T6B_Mc7RhtHi+L zUYXpwnRUazqWa;2?k-g38(1vLzC&dUq;VQM2so-$Q5<9GIoS=IIdPfBs(IPOX4fM%cYydA-Ib2 z`oKIH4(^^d86n;gEgC&fd6sU+k zn#rD>tCCHf0hPr~x^0EZsG-tjBE=Vow*e{|FqD?V{1tdRc~^^`SWKmG>SA^==iC<6 zi#d$_8px^Yk)zlHscg|?RqO=Mprx^USDE2NF*{#1A`p{@F*Jo$vdV5tMWM7K<@l@^ znF@)Osh~A8!$AMMwZ-u(>4>nY2x5cT(E7ATSL|Me3t2a=3sP=4SQV}d(a-B(oEMf2 z<{+%Q*7Ax6&IIz1GT-(vbZ$C$*lsR+;Vf4^lCa`{jTuitZ))Tq_m*7%#c+KjxpYRj z(17eSyU%Iq%8xOpFj=f<;Obi zB*iceUuDZU!l5B(UI|#!3wv|nfVkbd;55A%?jIVldPlPRFz1sCbCKr|`p!kJ!6Hswjr-gKQNSmMe!i+HFC>gDhM2Hx9=#hUP&WA3@8~ zg~{7cdvZS3;Z&u$kesM@0oFU1Pmj&|2;mKfkXBHHI0UmmjJP1fyO_=f z2$l_T=;Eb=VUV$yCw{CK#LRIqkd_W)9+9dJ!7?KVrl6?x6Zqj{Fi3UZ!lhsi6~PX} zLZcX_Q6cQ7iDIPYaFL^=_QJ}2I5ZKggJgCF(%dh(0x9zYO5P=6Wfc1^%qII`DE=TW zpSkFgv6wzR(4z-tab!nU+1#8M=kZH}^(PJk_xr5vRw@IF4uF zR1BxAItk4YoFYbu^4DU9`#JfflLD}f0?axz7kEM^0Ys1rR$;BvW%Z+=dHO=WRS)SN)=w%))K?mITaM(hhyqZ()g-L z5S$BsrkH@0G`@fpgfCzPaZ_eyf+xV7Xb>dV1Afu-I?J_49%&T_JO1*^{s|X(XA492 z_K_h6`dCY!iXz4qqxeFh?GzoH<0yPvIp2C&?rrS%WBBPb54n=N_fC7L+^| zwmH1eO*|hd$rY02h=RILpzv^iKQ^JHWoR&uQc4~NOC2s?D{(=}SZvIxyTq>L#3l=t zR#I#jVvoa+E~MEPO1`87IZ)a!VQ#1panME90E<$8Y;Se>oPCSywv_o8Psf6wL z+|p#W?4!quSy*$)995m47%#O-Tdk}Oqx2xf;UdysEEI7BGv1=3SsXpchj>>p#nmZ2 zmRlLgeNcLN;08?QR!s%Q#CcrnNel}a(8C-$EFoH{CuM>cla~Z4h4HRo*mX@WrplEO zEFhU*3L~u5BKUH4Cd;>b!&sVzb_dtPsyE%xi-w`ir}4VcV#Z7smj?L$Bf!DD{*qhd zRZd18$&?kwi_LOUMME4Cd9@>g^jfzKbALKMtiMNVkg@LCS%%2u4qnMNrX$VX-J4l! zZMFzHZmL8gsak1$M38DiL{L`YM{uDUjG#qFMKGd?q8K^f89@yNuVzHh*iedu596(k z2!iWqoL=`Ok6rb}utLa4x?cNIM+7+_?{`E{;YL*it%h#|#cityVuJ62L@=DH5rn+r zjZMA?(vBrxRgK`$wMbZ(?$AULtaKHV8A3jSA6tk7C!#^sSo#J@G#y?hi6GpH6bm9) z2J_L#fMF}6kPj{*F0HD?;VqMBEqvi5g2CA-`|e2u&8f;4P$Ed(cZeaO(EQgpA{jU^ zXmBzb9OfG$kphE_n+R4;JVh`Q@SH~w z+(C&TocfI*IraLWpEd zP_YQ3Sx%p;H5tr(wJ5`&6dQ^LSG0%Gl?-k~nO}gdDK~_0YuZCxw^tBi;W9?oAYl@_ zc+_0UT#9cuW&ASqRJ@O&!^jWIzM~)pu<3#oMouc?A4qDfh;|++6wc-{J7IH`3p0ze z(heM1ta}9Zz0#Xv#pzC_wCZjo_pdfow5~)lEo&%P4|-BYat0 z2Sg!#t95d&i1sjQtcV+8`j&c2DJ1p~=%>SoPoGi6#e80h(?YBTy3?A-jNu&X!~1y{ z5_!{r?}=GxvM`WMp3N6Z)!nP0_ zg4hth{4J5U|sHno5TbGdUL@6u%-1HPxa*L zL52vv(r=3c?vWIrNhFNJM><0z_e4qsHX?dMqn%&X<4|~&E0dghIFc*O(Ebt^ns&h* zhtzwW@Je?I2YxtOU|hO)iZ)njr|pEIwfE<_@;!{T980@J0D2MP0SjNm!Z|s?$!Y!WxSUW^g&4{wyqq2)L`H%qg6k|jorqS>%ed^s$)hrE9xKe2 zchZw89fy1-sFsv~q^GD7FUk)K`F(^P03Ri3YKZ(0$iHN6^{<#N$;^@B*uyE7#fnsC1W$_1DCD}Ai7SV!292yE7GqdNW0l0uu3xl zS&ph!36gML@JQ^MK4AlJO(31ZoefH0FT_M%a4Bmf01R)T35~~( z#N*e-TL|R_H*82r5rpK4U~KLP4o5_!)Css$qznPHKB8QW4i0=Jk~j=89rz$TJ}mK3 z4AaoV7{!vzl~|^Ydv&D93Z%5P0&Ck{6))_J)q!*SNVyeAmQZ0vCH?Ozovy6pS39MK{;N3#gh78%bkX~V|YR8a)hSm8lzsWFPFc8M7l z`Gp0i!$vdZos_#`%geirFok#(p1$g+OFj#Wo?xLX zL3e$8B-J>k0dMN^(Ib9f)DMjNfeAk_=?A8ge#q_p_&9A2wtgy+5b{1!Hhz2r4Fg`m z;N#Q=9n#BwZI9K>6~)0n5Jl*ok6%=D%O@Jc9UmV9FGLi<1%dAO_{rRMkB^J)_V_Ur z3w~JldVEZ<)e}JmJ3T&@JB#k_Eg$c10Qq>k2DaBG2fTx`2az`E+lY~j*?0oHBIqZ; z){h_L&W|6KjUOL@eIGw)w|#t+OnR;-eI$k?jv5HhoBAmuhf4hj4uG|;e6)^3l?d#& zl)M|m{5;acDp??Ks$jj7mwq8`g;OPmta+;7?W&|oOn4U3ufjjR=;KkoJH_au)!wXD zx_>{JpCdT;Q6&>4P!%+{>iiMaU z;hK*WO8N-rp7U|)fb%h-Tg}I+pUlV51?Gpvf#f47T>Y?foA@}-8R4VRA3qpf<@+(g z^4>=V%PSu#)PSgfweO=tOWDVcE%>2{NXWNCBdK6(`r)_@=f?$1UgEZ&9}_cUqEXn{ ziy*kM=Oe;>Js(S*;)mTfpO169d_GPzdCA8(RUSc73aSo`p!I%pE7+>UPrAG5{0f|b zGn9^$W#34~%kvTRq}*KR=eG%=$|4DQqE0Wc^Ap2Q?C!Pm(U$+?WuU#WQe_a~UF63M ztmbuN&SS-q2nuFDVQd4{kHRT9zGUa4IFq6n?x^}H)IReuly;FMRFl1BKMAy26fqEq zo`{4dBO%#a^~(yjR(+)GtojIUtomW@tNLL#{yt83Reg-xRP}Ka8LZE4<3ahO=qC*5 zA#7#ga2Y&G7x2PC(e(104X1ETq`s*n_KQQ)7ZOG5CYVcf=!Ww2^o)Mx0qbXd2d7Bq zioAvcYdureTkB=v35!0NPvW2+Qiw57G=(zGka{i<42JF&1ls}_FZ;TuTcP_wt8cwT zT+mcvxoE4z(*I;R;C6a=H5h?;rE0CrY(501tn2nZ2-3buM7Ag*{#|zs6JdAtI1Fw3r z>D)o#$z_Cg^7T*rl^^WQg65@i5$7y{U6^_Eo2&SR-S=E}awD8yzIg>n*(5Ky

YM zW2as)9Tv^3)Q8e*0g?<6twS(blBggcqzpn#2g*mnPIXGYARzgIkj)nf3E3_#(8tgfvlJf;nP|A+K(6X+*{mxjR{KVz(qW5zAq7OKRQ&AY3XZb0Dd)FD*FT zm=^E|l%D`I@|Pr#eVdZrgsvsg0K%2Ad#9(%bJ>8egYz*vDZ5KXT;nB3Svu9G%Gq2= zo$wGOvbFD|f3Qzjg1qAGzrr_26=)$BVNY5_qtIe&&+NWM@_cC%3{l47=`slgKdEMe2!m7g8Um3rWc?VCn6GWCmep%u0u&RS?ICxQrv2 z8PYb6o)`F$gG&x^YG8w);uY~2biE?>@6QXq1287f!*47pdcQ9*JgImxR zlm=SZw#&tMT&HX(90>;WA{-mqsB9X%VPTd=b6%AJ0jWz+wkCnaF)?@vhKsgcO@7H` zL8g{>Vr)3*tdEq!y$n=m;%gT9z&4l6MXdq5t&U7wI#?BSNl3icChn2F=K;64$lGYn<)%0HV^_rP4s!jRCRn1S?jaluU^CKceBN>)HpheFaV z1sRQAg#m62xGpFy2Ff~A__e7mG@c#^Xog@oV!FgA13EWr{%ec?-ZW zI>R9NUcY-Gxzv1>K3LG6HFeV8Vp)Tj)hVsq!PwgsTYB&kHt$iDo&>{+#-6^kVVF}f z%y@=3xgsI=_1SE0nnOdREHsu6F9F0$S`d6?tG}GVhR>EoCJ8@TCT4*jPDvC zhCMivDZ6c2QQQ*vHyd%@xUV3=%zRG2PsG)T!|NN19}wntjv-P9wA{jeo| zn7i~} zjbt0D-;1Ozu6kvXRAS$(ynlr(sUok@eu5H&^z3Yij*aZnYT6F6wC zGuEDL!_psL=iqvQ5X@fwWO;zn0OAkZPsf)uL4XnL7z-eT7RVA>V7q+a3)+%d016=i z@EKnE^rgYEBBIW-D! zp_rM?Uc!QNmOu7zyChV1om6N+>6C?Sw`>S%Ke=Qk3tT?P2T#qBLh>R|Oa|-2nftmU zs2|*jp;bK%rDN#eGMqRbr`dQdj)$hRzze#%_;Rd==8DM+x>P(6R0S<($76UL+VwE* z7@>!9Wx8{OUKBkQx-26Sd@8FUFM-Re%Dzg3sw6Lhyu;vml9^w7T7rv|HXJ0)5*a<; zn`c!EIvT;fU^22{h$Drm&Wph$#=(3I!F`ofKEEQ1El*eT9Ytuhoq+>X#G}Yde;z9K zNQNKiMHRQn-yurX;EnXdFkEo!m@rKRlGCIT=?*fwtT=opOHaJp%d?C_d8~|a_7Nf5 zKY5AAbx;GIWOoi}omoMMc`>sh;lcR@lsZ)6nQX7< zG+54@jEYxM@4Y6g@Wo8i9Ws(S&&794bH7Q_Hz+_OuPGef|nH+>?QF0DA(>9O4 zWuzIv!(X%RBI43ghG}9sS#uWUm60}$vWt=q?=hfVX7I2rr^}3(DKlXv(SlJkCcoOA zJo4o5Pun+(d_|PmCGBU=(5AOmD@Aj|{a`L2efo0w*A>wBb4sH+wlD`;<&l$pGfi6O zytLaSP+vm{t-hUc>!yvX+fjy;x+J|FMq5ce$ZGBFhMfGKMYxP!rCCB-&ZY=3O-f;= zO$GEWnS zFr)_QN}eNy7tn(-a}lKoXSR$0OWL2+a6`9*QD#$0sCPlf>0~eJ;i$5#dEs4BqYI_; zFU}96d~!2+r-1U62iV#!P-hM?jA!fEK8)&G($ln&4s2CF@Oki#*&N4Af;)%N_Y%eg z^k3>nY2zsEj5!V7z1`ewZbHjAOKwM77x8=4979QIbHp4#c*g8Ocme4zA^w!apF-Ls zc9k@iSZ+-+bj*CrGw@;=3WnK&PmF{$ibR&;OJ9`KZTUc znL`U^(9$8K><4vEp~YuA%yp#C21+SfWLc$4^qM<GN)(38{YyG|Qp9GpKh+YG&KXIVsTo3?P;~ir&nCqxMRRvO$YDAC5_l|M3=0pH+>A2Z{2oF~KhhjWTF$isW!cgxq4pAT+=Mor7fv_@ zPGB2ZVn5&l%Dox6@ERbnod2XIwY$#Ky(qH}E#)lI`OOwl4)miZy?C5t!AD(z9hGtB z_?{F_g0*OQ`#fqKl(rqSvdr=DE~LB(eZD9y2qndUwC19;;0S76Ld$o9wl|~1aL%w? zM;nf_Pn{#uMoPba;r^SXjhtPfOgoGi^1jMrO4-BcLrVI1G|1m8avdL>MIZ6To6yv8 zG9?dd);{+mjq5XB^$q%bvv3M!5jDX+$PQ|jy!06_b|MdXcm(OAGHeEE&S1PKY5Gt% zM+pb)ZTiEg8D9$)ny_v7Xo^rNjXKyD&O452H7fd&$ERYHhC0q64IK@3p=OS=BtYG(A+0c9{I>0ZSk~Yd3gYB?8O}PXC)=eB1+fsHcQGOL$8QKXsK!X z!{Fg_;1JT_Jo?HOkfTP0hkG#BRW|y%3vX^qd-h06$=jUqp)H}aX+&njxSf~Onry4D zEy;N*L9{PtFb58TGqt?Xk{}I^Vf@I!mjVuk6$xs)Hj~rHVe{aK3ACP^a$KY&<*(y) za@IbinL#*o{(i_$8+;qP@G(_cB^WX-r#&^qjJN4z;UUq6TN5I17$pB%EaN=PNY{`J5ca z^wc>wqck1gD6O2F=WHEExf~^x^H{f{24|~~!*-+hv{p$yo%tiEqaQd*`d3Q5>a^o% zkp_#P;%?M?oAivc&n!)%ZBcue*2)Q?PFko*yNWA6j<0fBsQHJab+k>%K^!IWH0^e# zXN}dVe+)G<2dNiQg>qPR58lWJt!}EYigccm1N+b?(#q#$ww#s$Y1@NQp`IQDPOWR5 zJ7LXBQgdkaa(;*Nk5W}fBd*I%N)2asCSE#$9y6<-MIZmA^wBZz} znnG!`1hh}2D(x$$JyWQWt0GE}dGwlElQv5wwX2uMK1WM*RO0-lggG9gl3Ud2y`&B+)sa4)P=7!M%^i? z0sAocWxlakzOYAXL7cFCR{hBtKPDxgu_beS$)mJL1`*@5COM3Hr2y)xO{p}9+F^s> zbzOtzWF(wUBgc(NY!M>$L#bO6#bDbyW79PKgMmR!LP;FmH`*U|ehO5_`7J-IbyxNhqg2|;VR z(k5}zj*>;G8QRqckgpFlam|@R9nq3Q>q#wtwRNaTPJ!ao3%IrcAzfEH%Rnu5ZR=5# z9@-dcKZQ1iv!2KYeQ1Gii-y+IF|@i2*+f4-Zn{t*Nm2oF; zaJDI*a2C;ea&nu!;Cv=E(#WH;XcRffIVy8P>ZzSZPfkCmMyXj{Dyp0grR*`G_F-@& z$2YX}hfs5<8FqtXIKEM7sItq+AQwO4^&v_lTFoj^R;w!a2XhYW*U8#-8_>$L^dg038 zr0}-dTTZq)dn@!EROaggwcVQHaIBAm!V&Z$@1fIO&Zls@%$m5*$X~^cmGtx`?}b0KaexfaiZM&!&gX0EQg`Y^*tE3-r!PbGnRSg6eof>OQ}L>j0T zb+*Q?$cj8%!AJWRT2pGnNw^Psw~% zc}>ed)NRfaN9}e_IHV8bq}CAEhVeCm>SO2kel_}-^4e)*+AdsI(PpGoON)*Y;0SEV z99l7Fc~$+=9ED1&CiF(o$8a1aP=9e{q82{a+0|E!lwoSI&v?8Yjz_3DR+EbKi@DiF zspw>08noL74oso1w4y1uLtbB9ZpV4uS-bQSs|?dw=<6WLZ^zSWf9JrdCn2}bLn`!n zE#xeuO`<%lwg}g`)EM!#fvZ{9S3T&9rqdNbIR72*b6rKBp?d5>-am{HRBMTTPx|a= zYu*IP(9aQ4Ppul~>!B>8=Tvo1znzzym3}%>nHqw8LHmnqJvSQuddw_o+e3?9=dIJL zi!wfY139kqRabiCRhAsuUo6>a2B$$NK{yAdp!ZLqS59X+J1naC)w@IsfV|!V`g2Xl zwFAe}w=En8syBl=O!ok$P|F}_%@snFhE5-_&ru$99=5?)U!0aC6=`G8OF^5Gvxh4> z`WoohbouF%@u{pf$w`bBy%>AJVN;R$yqYKVRM1x)jngRitjJ?(**Q>!ng@sWL~B;F z+kD-oK0r#s0xU8&@3@aa-x{^&B}g;&CG>Amrg63I^fyQ89P-mIrrI!r9);3!N~qrl z4ptds_c%DdbKoQ$g^R*r^u(lv z_h-D8(XMvu?aK7zZCW`~NJH6`3Ucb&fAyTy1fl*-OTJLvyL_|=$uC?-b1s}mP1HQ+ zMOV?clZoZrBYj&yzuiiVeH=#*NquMWsntu1PqpWW*x9daHA^iS-4`B4dvw>AR?L#6 zX55?TfoK^H{aU2}aQ`VhBNnCsCnuX(h3cT#BBHCf$j3ZWgmD1Ia~;jZ)98 z71j2PuS(SKp_V&+0O6XFc1F0SJS#lii&3He_U*K4mO<#Nt!5d7UMS8MXOnWgmrypP zt9q4nPlpo8x6gc8ru&s#b5KiG^RVh_C6q}{YVw3v)ZbC*)13eXQ|K#cG>q})nk5fR zbcILW)*TbK3qUy>^r`6EVU(8KIioL#9OduzF`curogEfhxk_#F8$IK+ zZlcuFcqhZ?>kZeApj`NQZYH)|$Dp3{Rf0j|gjhmwM{s;PDH9XN!z!qYPvBAeD?jLI%>Ltq<(h3*tlnuRHL8xEZVB)zy4$AO?+t^t|XM&;i-(Uk18>o zH<>a?InS3#=RxsFq2`Ea#h0_UollAWbLW+!RCg;ij_a#mz4+3Us~43I;W{e10$|OQ zeq3ehO3j@}@pTtZX3<(Z3uzouz4}h4qY-7GqfzMNrIvJ_0{VtjL#Y2tsU7MlygYy! zDNX77=Ssle0o8Q0f@t@?y0wN{fb6rbHNrme3|n||iF-Gczb7y&c^;4!A}x27U8kzf zCQ4sD$rN3W)4rz<(2ef^`t@qg3B=b)?v#LzTDXFDvd%w`!qa)q0wlMSnkPkiQsz*q zy4`x+J#yY-w>#|b0fc-(T{UEWOh&0k_=0;pJnct$9ZDMC2N?RJsR5|jDectCr7uYB zZ^~!q3-BcaZBBQ>(4894{Z7smr_br1V!3nZGr2#MMcijvl#*3~Pzo_6d6haz*M#&* zyb>Fx(lQ9;g|iHtr$x15HE)A2LDV-K+M?ur>Rr6oBJ()37^xk@6}$6RalJr)SV%q2 zH|L3YrTZ1WZ_oEuN2PMyv&UUvr7C9)tyg-R=_eVLS)-o0aK(2KEpxg@C6Iq|iMt3T za4PLKj+&E+zSSF^jnngCw1(V@S|vr?6YfUCKb05V5%qn7>^r?-w0fhobMk^G95|b} zFX7uD)C4!7%?0otTNLgRg|ouhQ=wm+`Z+u|=6pdq7j#EeJwdukrmo_-f>(cTH`*fq z^d5KS)l0<{o_ZnuIie>RRbz0S9Mv^^Pv9gd#uB)u=s^me_vLSOPx&jEWzIfxdpGKp z(whB!X7%w>8Xm-$kpp#w7Wc4nREDH)^r*(u`!J$w_@xGjufz6<^h}Fo&(Y+Hf$M55KZP954pZOGS@8I)J*nVZ_BNdjJ$8CA*@Ey51nMfTEVwIAziB^ml9wqh)rYGbQjMqGX*`ZUSF>Czy7g1s#&N45 zuEXfH_Pvjl(v-R=x@L@? z|MC4^{y9)u%X8p7u0473j53Vcvnbj&>bc{Jnrji|AALh$^_+Y|D%8`u6B2Ts%coM4 zb6`)^8g-@U@{uc#i`?d!H$5N39Ww5i`KLNmD*7_$hx10elQ5Jd9LMS$ABEq)pNWmVVvh&wWF?v)#J|m zH_I$yew}^#UJm!UxpL>Mp@&6n&3#fM>LKOMSC}J<)~L^iyv;rpFxK>^@pJ%t;95jWLVL6* z`9o_sJgG zwReNqw^!Ce+RX8qD_cs9p?fR?Xo0_HQ_Xi@xqEQ#Rj-?M50_T2u09XTY~iUnp69LR zS?9Z%1sPZB>Ci`5y@j;QoTX1bI$zO3au`?O;keG`J!iNbe%-)=bz`&9kgMLzdLJF?VU3228DLG((dxw^5u0^=*L>EWz?43-HnzI}3BZWWHZ2o8(#+3C-I*mckNp&xw?+>BnKLC5m_lH!UzdRY^x3E&Dy;_Yy z+dlLOUQVa!I-Kuf>FKO^3&~-$G^ok^Hdbo2S4u^dFehQl@qI0N?D<>CnY0Xe;_^72 zBS@iV z{Q~MuJ{Z`nlnGq*(*CM$yQZyH4$m3+x_0)$ubWh zdg*+6m3uT(C}9AtcJImY-ELn3os@X4mRt?=hwVn4yjg+wB!uPD4%1bQ&l!8A1WHOh zZ@`nNY&+j2q=%L@@E!+ua|Yk1(Rjz(e!6gV%v~raiD-Lr+(M6eA1uPChn3XlPP?wy z`$aNToA)edO42!wVoO;Q&&y>%<6hW)(G}>G@q3uj_2CN%WK* z<8PMy>Ld0~ah^xXec)4fhT{@o`g+}N{3-Dr=zLY*EXT7SdE9=}ocM&eqvqb|;mr!{ zv+}g-6Zfgf^RC4OX%SaPN3H(m=^gfsH)SZ*hGm?%&(tS+ns}ui`*s#BQQlVnrCVP) z9_QWw=Ss-q>URnEdi9icFGgM8esMLqol9BZlr2kCZza!j^Q}RSij%U=9t%C{eCtuE zu6&^T&*6!1mf+9hXbG%gSZZ)I(9^Tdmq1CwH>ATBMB{bb`$eK~R;i@tJqA1#t+RkK z$4PpX%hC9Yk$5*sdfuDz{*uQp)I^+>v=Hb^$iq8z64V|Md8&J*yjP1eU*Au6D>(A* z?NSnbf0QJAN1W7-mdN?O3+eRUgF*0rG(Ly9L%pr{)R-mSFGH#3B)|5VZ~JktiMC3- zhG+?u`IYl{cZr^qn1kIN=aX6VS$U50vj=VB{snapefUm744?&}ZsH9o+IH@HP=32n zQLiNTsdcxQZ-tCYyqo9bNYa$En7qw1dw$8>hhPgXA*ae~Un+)ov-BZe<+RR9=Hm{j zt6BTbJAOjV!`so+r=VJrJj*v=!W8brHzmH7KuHtIvS|D`>SR3Sd#G8s%Hf_K{bO7; zvPHbxfwbT`eWv8zOTVP3mQrh`u5oYPmr)|U9IKan9a=z+)0F|e6VC3YEaWbejx)Jk z+q_?L=zgT*VLg>s*>-Kwtk6Ow$Qf`F^)&4*N?mFSe7YQE(juS)8A80Cebt)7)2~d) zx$1P*VNi=!FsZ&9y6q%(N?l2m14l8gT)AaYA}tK%kAB$edb&$zYdR9IoJ(pSM_pmZ-Nu@Wd$Pdt9o<_pQiBMcZOMO~BoL_FnG+qvYT{VVqqY z$9c${=+2jxpfsUA=AOFRS!!>UaYKgRV$!IDbflr48>DZYb{S_CA?DCktgeGDi7cYV zR9bLl-j9~3-qpL&lAtuDE$uSe6r_gM!1>K{3hW8TUA3^@h*gmEl(Jk)l8QaZN8Z)* z1hg5V76UE&cuhLqt}o=-Ih4Z_EtH9ru2BntJ~j44cN6)36=z4-mK4&vlcPOiYdULa z7$c=QIqwHhcJ+KZkGbE>(c#S%K5x4g(i+k>I!jdI~mLi<};fH1g5Vh1FdUs!`v{2(oO-xyC1VC1$R+)_Tq0Em;x~Ac{?LYt!H_o9EG z+vX_tg!BVzvpTKW)G5X^jDr$#qifR;TEsg~rM^uQXc_P7vT zeva-5ggDx^mLC}d&Xs-HlxrtQv32}Ai3gNva9ro;SdtpdX1@)Sz@0~p;474Xb1hAb z<>_Jau6f-sAX3NY7D_^n@+@jnZZTV3x=Ic)SLscovq(#+&o}XT*DUI4;VjUbNYkj* zGz6p9q%oGpb$ovxwBO`7(WjDWIVx@BSsC&(d6?&6BXnFVv_=f=&%97udDW~PKzm3b zy(d-DwS}Y48H6!xxCt!~ers}Vpr_C@ur3GLIlE5#dx7yAs?aJiVrO4)Yb|oP+h~n& zCut;S0~#izR~*@4v|wJSXMpATJx~yHld~M0CAISQTc+jvnru0#L5?6yexAVJnHY|J zjpOVMux%W5*Gi#GC;6Cm7I~x}bw}=B-a%=3NhBd>t>X^z4_6In?{-b0bG%wSwLJNs zdvT;UXE#?xDgn*bcn!SCmot-Np^}YIFpt}KM_Kf?+c?Jdb#olg{-UhS+75TaZor}7 zMV%v*3IVoZ6!ppN$SsszCG>{+2j#503DShUAfHp7$!)w>If&d#>zT7e4dG4U}ta3va%*dIhtCbmOhsT*XN% zHnH3aY!fZNGTO0#RHlLVKvUCG##((MwK=Xc&`IPY)8j-XAUVYC|YF0=cz0 z#A(S^g0+Nr8Toabg$pPbcR05xkF&29(-g*{jhGMQ_b?tfw6=)6PBSunFrqe2!$!&q z_-r$6NZw*i3F>h{3?HP2?w#l8tQ|w!sOc#EWL`BzM-*PoPSQ+g4(X$GqlS?5kWfYR zm*YvgVrAJv?N9_|)q)@$G|az~93AjPI9~;`Ba}|e71j}G=BspUv#6Idk$Q^K2BQuw z!t}{FKBmuNxvm;SYiPL?VIM5U+c)t!&kT^u8RAgT+C5(xQx&x>Y4K=kZKDZU;G#_t*2R z87-BHa<^;WIA)YD72~*${!Y$#jA@MlUy;Yo;^y$5kbkD3%N&9w+-1zQ~F)5IZQ*NgVu^{s^eeq<0kf(Qjk6c-pMa>8TYk^TuNT& zoMoN!sE4+)#oun&tc44$f49K{;mCb-#+zE zczb&n?jK>_HFpO6z&c^akD;AC*e7Hu+OM}Fmz(QYRcv@IdPUjGyZAGpF4pZk$QwRg zDJR)SEd%$r?;A#lwR0X5n>KF(JOPfOPF_HWexKv0c{lER=d;Vyv=u?wdEjVao<(l6 zm34;}=QQF28*qb5#j(-WnGLQbDvd;sugfEk^0=9g(!7#p^j6V-=cGz}l)6wBsp!&0 z*9`u6f(msh^aCT-;Ks;|EJ6P9-|Iku*P)&f3-SK^*P+(eVcmHYf8UH}9{&^~1$JVU z=>I!zYMQvG%$|}TOcQ4eWh%p_fmRpin%S3<{*xcMG9$HAi@pgwz|moFf%=GlO()mfJHewIHS!y0{H*Zk9`HWX zDs5=D()x?#zm{Ltprz;Z6s1{Q7MW{V7i%ClvBlwhdNVLiGIe3b-GH#UiuH0W9Zzju z$JwYYq6ASZiT&Lv|AMmKP??V3WSA9x38msZXlFzxMavW$>rFb6(R#Yz!Js^${jc^# z8T^Yjzag4h>99)L?a{Pd!lj{1G1sUh;hfj8tSrauaA{Vn$bccOU$NmuAeGu9}+qM3<>q3!try!DfQ(KQ4b4*LIoq z<$tN))V}<$HSNm}0$4$$0&6WGQ4hH&0T@Lg(Q35cEfJ8mvq6ABPd?*1H>=iC$UGR zjlUrHqkQF7Ld{dqVJ9&S{8-+70H4u9^+n!1k3c5Qzi;&{d1L)(tgvUA2ha zP_wSC1`YXDiCo8CEq@#dHqh7qoyP~5W|C-wB)@qdgZSLs6I5judUIEEg+uYpTR@c~JOF>)*vecQ{_LXFF za|0xw#z=Q>5t7_Oc=@wez?575Y$F6>+w!N@7>s5;dd6ONB?#Teh{NNmLH%4&f z7iv1z%W!j?+n2wtY(3A(YHB*yHn)N^BUMY|o{+{pA@EZIKPB+f$_KTAdYatS+`-A+ zjFKf(FMpM3o{?0~NXBOcepcY;1b$B7=NnP`&wv}jdxCymgwdxO&;bwt|FgjQX2Ht5 zTj^<9XAt*U{=d?r2^o;`zHLWFx$N75dqE0*LEsk!eo^3;1b#{2?+N@pfq$T#)b{*< zsJjfK@s}_(kI3m|AM_DDVM+4+wln;6no6=va}$N$@ucen8*>fsYD& zRN!HOhXp<%@Ckt@1)dc6w7{nYzD3|$1in?^TLn%FoECUa;5mVF0_Ox?5O_ggQC)YH z1-`W2G6iM5MqHAJJ0!y$0xt`^Ebu)7-_usNrhN;f)}LW8p636pkbqEI%TL2`BKQro zF*F{EOEp&8UGJ6b@0FtN75H9(KOpc21inw;`vm@|z#kR(0f8S7_(6dm6!;;59}@Us zfgcw55rH2O_)&o$75FiM9~1a-fgcz6O9FpM;3ourLg1$aeyYhS2N)a>@6c_X&27?Mm5B`UauCH&bWz!qA>78tKqZGN)i3U>BBcUtm5m)#l5KAlobzNHn zi-DB87EMO$q3;D`;f=NRO^{+B36MK9o<$JUh^uVK)$pjR;n4;I;fR#Y0g)baaRj7m zk2}oc915rYW!)k@{u1M_wKR|%Pq-XUv|}u#f^7y?7?O*T3UX2Iu3hV@c*IW|I52VBtoV8nAlo~ zZvpQ@y7ty~uC2!}4gUIdVrXQ+LSj;ONLjZ?S+@wBwyG0VvNF*QcZ+tod#*898?eh* z7@$BV=W3yTb6q2g};Q~B}Kif0c_n~-?r3#CoJ@~rN&*gwOk~&ZmX#S zn=Wzn*v0nR(5_aDVtal2X;9_eSd6vbi6&&ZV1(cyiX);?>l6h-FF*27~tJ8Zhi>a*11b zY?I0Ug#0r9j!`_Xp%V+HU*e5zwc^ z@Xoph^wl;au)M>t&F31&NseSnq?RU0xAv0KR`4gONjg6pzgg8;bZOfl%a*Vh9iMEwnnmG)oHL@P_j;ZTu zUBA1gew|HOkJY72gwvb|meuFBNKRcd+cwjH4OoH!#}b4?axv7ll9Rzc-M$3|p)_ra zn=M=H9N7|#{g$?s1;spP5SrSv0{5jal73zv?ZNJmcafcsRwux_SThin= z2EDsS=k1NQB{v4yZfsk*$5P;3_V>L(B$|1zAGl9uF1qMi6KTsw{iOHX!XB`{58B^{ z9GNlPw@NX>Keq;CCf<>ma7bo`+EyO!tgFKaM>2zwFu-rczdPf}KZA}lBc~42*dA=u z9&B_&w9yh~W6+0R zq=ta`k}&8k9)mt%^FJjlev3+5su{9)t+IHnV{xdZr=`Kwrf0maXQV~xmubike+wX*Vr}Da)Yi=b>b4wrtkh*QGx_Uvw2!mmX~JKnQL}3}Du1EQ ztfA&^RwMj>NUm>c;G2ym0r~RH_T}$1w{$^pQtW&Sp|+LpK&it4w~mG~u$j*GjLxr& zZF45zoD3_md7a4mRw%N*g=n$#{{c=wmfuW;b;mW-3(NOlfe#x5|GNpj{FL?(NGG>m zw531gN`ERW{i(JU8%;|_gwo2EAR5K4yx1M9$x<+^2Tiy$$g+$QUkXAj;3fD9rKvF2 zYz1C=ruZH$L3F0sSbbXhtMU%1`B=)O`ByU{|7hr{B+x0-B4-0wUBi;ZV4%ZQ2Qa9sr^n`DiG2u^?ttByL^W> zxn{fwYbD6!r+p));S}U4dc>-lch|L`NB1JNc*@aqQ({!$khlrBy+zQ0rqV4Md6?2u1@@M3uN3yW_p*&2j$}EpRl9;#X*X8o?a4^K z(>p|}X>ZV>m+8VSk<7RFUAQ$86%D1|sI{npVI_!CU5M>eAw>vmVypI=+wPj%ysHKq zNnEu?a#e_(Ij}Q^qJ#6|W3?UJB;a38S}|y_0J+tXXyeO~C>N$&*+`<@F)?@o>AvU55Ia!hYzwKRLY?N1azn>YLi8D;>!AYF0*-lW> zr3;`Uc_xkWf9Uo@k=|+5IeFg2 zrQW`ET0h=PuES0Qx2;t{KJNu1KMF?91taH!kqg0yzr2Q2(?QJTVB|_La`g#k5OGHI z1#5T>-KGnj4uiB-f{|#wO9`ip1<9_X>3Tv?do=n;Jml1PFmGSWJz*Rz z+gSDX=z@IeAWp<3N4dpsg{dRFGD3>n8a>I8q8#_uxIAfT!F(5JnKN}$#~g;oevgY> zWQQeA9cMpv4xv$hBXtYc>-edOqg`UTKO9^6Fl)FVzi|dduSqD*O(VfwT-@;08R-SweM`O6Ybl9DJRP+Wk=-3)g z`kRoZs&=EPi-%ZO9@N#9yI=}Ew4TW)H#>SL4``*!1Ei-`u#C0CQ2QUnoZSYqD1DDE z^2-D6Dt^Fk%K;wl(J;Gsk5V`J6t4d2kWT|aO}r&Ln#pHklh1@BX1&E<{tt(*eShN@ z|Mu)BJ>kFlciaBSm7j+qLC43i>-X47H$?Z5kGZanbO@yb*ldT$g4sQrXuhZ8VuUDd zVbt7`eVL@R#favY93%``a8L_X5#Tn}gucLE=r;uaOYnf;e+d4YpbQWlf;RjIA!;@1 zdNmh}hu23!B8pe6%jrB#|;^B78iA4#9lELM^>3`DB#q#ahFcaM2+# zZ=$n3o+Cl`(h&4yLbYEr=3pg#a6{zF9hwPM6Ffu^CV-m~4s;0~A&3xcAczt?N>EEs zM-U^}NKjAk7{ONwewQFl@Du^WH=!*AUnkf~u#MnZ0=OKTP&2`H0(feh&<+Clt(s6P z!Se(=33d@2A?P9KCFmpQCm0|&N{}S53Ggl#6T;&gCWLoZn$Y(N&Jg@L!Cw&kHNoEy zoG18Og1;m9dx8rD|3Gk&;6s8R6Z|8=C4!F#enRk11k(gRCHNV^;{;C-G!Q&V@D+mJ zA!sDnM1W_^OlXWCMSz!9n9%D4;{<5}I82*Rh5#b< z5gdyDa}~UY>XDZ|uOWlx3B853w5-tC9t#gDIFmwba9wq*{UOW{^nzfbZ2Rbj5}5fn zcu|}?(aYI_7}?h1>Hxt&BIari%-eUspAf_F%Og?+3Xud0UYmn?Fl z)%Zmbl!I&D+A1sot2eBxuG>~sUByh?3V_-6b=8~Jlg$SNA5lKvg$nqNP&KxD2q$<FlTTrNq7 zTr|XL-tn+A9(INTseB|;_9VMOgfGEep&*w}p}VQKJyz2mD-AKrJumZpFQi2h`@o}B zEKBq9m5obL4tb%l7mB#FWlaOE69VUQt(ULf3pKDFqV{VHT_=#b-DKz%!EJ&E1osF~ zLFkI$Es-7V~lTgDkkclMWv>7h1bzi^m&O=5fM`Gpr^j}?`b8yp!p97v18``p3NLMCZT zeAC_J2Vj`-E zieraE7Db_l@s$U#h>5k!eSN!JLvs#PXG;xXcPP`L`cLT0$StEzjhqW{xeCqs@fxC; zG1l>jpfv0!w*`{hBFyd1l^Z0#8xwgrb*elJQQEjj3kbhZZj>-azA2HnHS)GZ-qFZA zVeG=O8IQ#uMj-YYL!gh@RgcBx_>AWh7(=2sbEPG?mo#I}p;~<$hq5UgBG9?*Q8Km5f`!IG-N_#D+UB-c({2#8J)c$k`! zC4shu1YJ?k2b>LGBP2(KYMtrK7f#Q;-sN)(|StOx@o;=?gN1zY1WTG z)(D3=xMN4*kPDwy$nY;XYhpb+q$N6-6H5)Iz>gMn3OiS3VF-#{sVEjrD>}nD1f+{N z!gk>3emm%~pY90D)*C6+3`CI!_0_At*m1X>$KmR&*J$1;^?eSt&zv6)I*}8 zazjI0H}S5~R?%@xrWF-19Nnnu(NxEXUDIe#Q(*mU*cXe8MxBNcB_7A2mD+nf>KFAZ zjn15mxltOP_6K+Yy28S936{!O6>P7H4y|Zs0xT+2{Ihph@*uqVK@XoM^xx005p!3X zlJL1|@SHT-IT&A6BT{e%dQK4KCw+qRn)SS7Wdym-`{)abz948qENhvhKgfH*&wEkx z!g&xfF#_~OAAL#DmjulS(3gDlw4$d4JuOxN|36*_Bj2>2@3Q8*EcqA#`m&F{qUbAv zW(4RfKKiPnuL_zGps)JqYl^-m=xZ|AiW8z!n`?efu}(2naJcTL-%t*4kB1T%0s4lI zzNzS&f@TEhn?CxMqHhVB5uk7R=-Z0EE$G|6c#bx2`#JAuPS^^>xZ~%X@q>qOZjQEUdHD|5lWCVjljS(DgpLLDC5^Ix;JM zB=Vj{_ydXt49IYgZg)msBsgi<9AL)6#<>AM%!u)vQ)#UIQJ$D`%Hw(mtDT2Az;5E{ zDW|7?4n!U7l;H0y9uaiTksA@@^$nMl9HWjmLJYWwTtWm_zN8)GrZG+rY!wC4v2dyv zu9dn@VTehx{*ojKNzKY#>$aFEPKsjf;Vqz&HI@c=XTVTkA>|@s9W`FCEyAF;MA8Tr zMqn9V4}i50;oAb=L1|$rNLCcg%!LGhW%U4b75>-Y{|0cV+a`HApCE?i06BdCh}m7j zABDDHHNdhu2*Q&1F=08rK8(zt)r7%YPYxvEbIJ0#pM2gAUH}fGvE(=>Fo3-1=etB) zd6Sd5G)UiX7H{NPPLc*_so_BmYgQ}6hxGgACz zKjDTX1S)jbr~4E*jzVk_k!sq<-SdO@{osrreBhJ$88AXnt?zr;(Er^=L0|WR5sx^S zTI*-1_k#_>@?C-N0b*hjcunASfm+L(622wyw!jAh?+IjWF{lf?ODMu(gpzPXV6DJ< zLOco}dSQn`K)Mmq(V4?Iy~6>ZF<<3DUVqi&ujUiE!`aNfH%9DSF_q2qkL9zc3KsJ5 zG~SqhCx_51UQ3HwwwKfX6r$fXmf41-+4*%VU{$b{0H?(5mf5`=LEcUj?aplGB~liqKcJu9N@w6E*07qnuco>EFw zx(jzlD<*Q=aTo5IR!nrLRFn~C7fc@`XUmEjZy+<_lEL1;VVRvPB4b%WH7;Z5vl>B* z3{t~zmg?xUs9#QJN5+H1FrB3anOVdGnc=zQt23XGL^|zsI-1XJn9quhPfb2Z4LjS25!IG4f|TL{N6a>Q7<#b&QiS$ax|M@=iLpP z>$J>EE7E{)kmjGwV>Py?Qs}5DqwH?j-agB8tVn|Wc5!43GfgU2?8n-oP)tnZlnadT zdCP2HITx`W*xnMObf29+nHrh3B-q;4R~jyi^z>baFq8Xjd{7YNTm=}TF^vlx;It~--X zW!w?Vo958}mKyOEWxyIkbBkDRSEgv^Gl_IlZx-gB$1<|F|B!}77HZYbJ6c<${g>n+ zW=MMUzk`-}Wr5c7=rQXS^VxJ-vtB#vER-SJAn(%)?GlF03JE=X zTLfFJ5Z~E*CfMz_Ei+I7Wz5@9VO)iq*1-y}_O>&|^jYR`1vvV99gL}~>==t#*_@3K zI>vV_bF^Z@1~xkE8Wn1_xqGMgP4(H8=5nZ*9o zdhPF(aKb9QpsO|U>dbnlDZCl$vdrFPjB{bRyh}z(#c6C+oNx*lY(&)2Z9|M8%hm5y zd$Q-Rq^Vz%xk(k1RQRImW&xD5Z*({!zVj34*_}By-7IHXAv@;{{QDCXK z&duggD)ZPQV|c2HdB6W3+ z(C3MCih5+$L^4SZ)OucSWW9)-r>d}dJzQl*(%`a%3Xzs#&=uizSpeeGDwc^(=*8}k zn?~)WvDQ+lT&$*O;gry6v=Lr@yERwIsfCj4IkjL7Lm)Ed;zhHUWFezrh*>OwBiTCz zss<(!Z$Kk#ZMIjcFr-*~9l|m(4G*O-M+~_IHdtok{B+RIMU3dIqEfNyDoHAHGDQig zytJKQOH%Cd6pdKh_jR#simI8xoCs!d)mzG?v#yD1m>5>UyGOz&s4P?CMS-rh%p)cL zqDj>sNI;gDg-@&$hJsWqdLo-loq!e5W+a?)+kcoBw@x$YEv`l+-Ib}N7)I+Y^QhAR zLtdW8@u4F(F_4$?;%IYZTyv_tn&28Ss|d3lDvXtiC3JquueR$Y`IhfyVv2@`9FwP& zIw_vzla-g|cNtA$RaiE(CnYofn1u&`9aHyHeLE@)1#?pft&8TxmvrD?m34Z1_5_~i zqy>~RqY z$D^Ta(}LW0IYvV_9k_C#iOI28M4mr}r&k-U=f-g(CMUpHZ&b4??E)PeWb?3!#np&qs%U0Nf7(IA*FP2>kW-?d@xL{Hyy9z4sr7&%N3D zpFch`^A+-F9?MSH&G{16Q2A#1uQiVp#uEA5vxVfWpj+`~H_)`FyT3U*{5lfQsS9>< z#x7#a5%)N_wfXsSNqj@*z@8n??=+48nJtb0sN}I<{p{R_fB9cq{&i;G&#!!finxEj zW;pJ~X8-;&kPpWio!R_eI20r>;7k-ovU%HXN~ZZZu>5`T4A{(7hl~8}@0UUY7^hIr z24l|7t}fj_;YGPXI`bXC|G~>4Gp$abOhUL7@Tlp-_pgrPE62SEb>SOqhY{}r+>bE- zej57KZ}4Om{6}44mIOBofqbCcco-+i>_q@)_IL|I9(?q*4Bq#%fO}e~{4dD5uV>(U z8}#o&s1e2CrVZ~=;J2{&K8N|7W*`cDM7)2kc&h_+fNx>pz1#9tFMeT--+4QY8u7cS zn6mN5FHP}FeeT!TnD(O3xMlFmy#>6Gf@SBtcR4IZyUoD=-jnaByzGH5ig4@We?yMt zY(QRWgWo~R_zxT%Ad->w@KDt?nHhq_Tpef@;N5CJDkDTCkB zV>-3RGTgc`rkYr)EY%^uM8>bFmgMCezLX2=aJ%SXHqBgZwBV~>+vUH(x6#9>&mL%+ mU%28o1Jm-ovbi+A{z&^J`+GlRBB*lY#V=XCe_LJA!2ba)#FPyH literal 0 HcmV?d00001 diff --git a/Plugins/Realtime.dll.meta b/Plugins/Realtime.dll.meta new file mode 100644 index 0000000..8249c78 --- /dev/null +++ b/Plugins/Realtime.dll.meta @@ -0,0 +1,33 @@ +fileFormatVersion: 2 +guid: fb7688d7f0ac743fa854fd1c50d407eb +PluginImporter: + externalObjects: {} + serializedVersion: 2 + iconMap: {} + executionOrder: {} + defineConstraints: [] + isPreloaded: 0 + isOverridable: 0 + isExplicitlyReferenced: 0 + validateReferences: 1 + platformData: + - first: + Any: + second: + enabled: 1 + settings: {} + - first: + Editor: Editor + second: + enabled: 0 + settings: + DefaultValueInitialized: true + - first: + Windows Store Apps: WindowsStoreApps + second: + enabled: 0 + settings: + CPU: AnyCPU + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/Realtime.pdb b/Plugins/Realtime.pdb new file mode 100644 index 0000000000000000000000000000000000000000..776617134dba7684a8dcd08cc19c9333ff070a6c GIT binary patch literal 105872 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 ScjI#r5Bxob0iwU4-~R{W + + + + + + + + + + \ No newline at end of file diff --git a/Plugins/link.xml.meta b/Plugins/link.xml.meta new file mode 100644 index 0000000..0634613 --- /dev/null +++ b/Plugins/link.xml.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: df655a0995a374bdb9eeea75dc6932f3 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json new file mode 100644 index 0000000..a8d4f42 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "com.leancloud.realtime", + "version": "2.2.0", + "displayName": "LeanCloud Realtime", + "description": "This is leancloud realtime package", + "unity": "2019.1", + "dependencies": { + "com.leancloud.storage": "https://github.com/leancloud/csharp-sdk-upm.git#storage-2.2.0" + }, + "keywords": ["LeanCloud", "Realtime"], + "author": { + "name": "LeanCloud", + "email": "support@leancloud.rocks", + "url": "https://leancloud.cn/" + } +} diff --git a/package.json.meta b/package.json.meta new file mode 100644 index 0000000..6286bf1 --- /dev/null +++ b/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 6720d47a95a544af2a15ea88fe63a116 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: