--- a/trunk/mqttsparkplug/mqttsparkplug/Sparkplug™ MQTT edge and host/Function Blocks/FB_PrimaryHost/FB_PrimaryHost/svnobj
+++ b/trunk/mqttsparkplug/mqttsparkplug/Sparkplug™ MQTT edge and host/Function Blocks/FB_PrimaryHost/FB_PrimaryHost/svnobj
@@ -1,4 +1,4 @@
-Gx_lHD!0…jüo¡7ËlšÕD97System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
-TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText// Componentsn_MQTT.IASyncPropertyProvider( IASyncPropertyProvider );b_MQTT.ITLSContextProvider( ITLSContextProvider );_MQTT();¸Connected := (NOT _MQTT.ClientError() AND NOT _MQTT.IsConnecting() AND _MQTT.IsConnected());_SparkplugB( );RIF _MQTT.SubscriberMessageReceived() THEN”    _MessageConsumer( pPrimaryHost := THIS, // Alternatively ADR( THIS^ ) V                      pMQTT := ADR(_MQTT), D                      xError => , J                      eError => );   END_IFv_ExponentialBackOff( Enable := (Connect AND NOT Connected),n                     ConnectionTime := _ConnectionTime,n                     LockTimesArray := _LockTimesArray, R                     Enabled => _Enabled,!v                     OutTimeRemaining => _OutTimeRemaining,"~                     LockTimeRemaining => _LockTimeRemaining );#d_StateMachine( Connect := _ExponentialBackOff.out,$b               PrimaryHostConnected := Connected,%J               pMQTT := ADR( _MQTT ),&b               pSparkplugB := ADR( _SparkplugB ),'H               pPrimaryHost := THIS,(\               SessionState => SessionState );)Diag();*Interface+L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94},(*-*    Primary Host Node.Ö    Allows you to concenrate Edge of Network Data sent by various Edges or other Sparkplug compatible nodes/*)00{attribute 'reflection'}1jFUNCTION_BLOCK FB_PrimaryHost IMPLEMENTS IPrimaryHost2VAR_INPUT3€    ServerUrl     : STRING;          // eg:'test.mosquitto.org';4`    ServerPort    : UINT    := 1883; // eg: 18835r    PrimaryHostID : WSTRING := "";   // eg:'PrimaryHost';6ˆ    KeepAlive     : UINT    := 60;   // eg: 60 (Value is in seconds)7V    // Persistent Session (FALSE = DEFAULT)8°    //  * The client must get all messages from a certain topic, even if it is offline. 9ò    //  * You want the broker to queue the messages for the client and deliver them as soon as the client is back online.:X    //  * The client has limited resources. ;ˆ    //  * You want the broker to store the subscription information of the client and restore the interrupted communication quickly.<È    //  * The client needs to reNumberOfMetricse all QoS 1 and 2 publish messages after a reconnect.=    //  >8    //  Clean session (TRUE)?à    //  * The client needs only to publish messages to topics, the client does not need to subscribe to topics. @Þ    //  * You don t want the broker to store session information or retry transmission of QoS 1 and 2 messages.A–    //  * The client does not need to get messages that it misses offline. B    //CH    CleanSession : BOOL    := FALSE;D¦    Username     : WSTRING := "";           // specify a username if any (optional)E¾    Password     : WSTRING := "";           // specify the password for the username (optional)Fº    UseTLS       : BOOL;                    // Enables usage of the TLS encryption (optional)GT    hCert        : SysTypes.RTS_IEC_HANDLEHü    ;                                           // Handle to the client certificate (optional) and only used if UseTLS is TRUEI\    ITLSContextProvider : MQTT.NBS.ITLSContextJ¢    ; //Encapsulates all the data neccessaray to handle encrypted tcp connectionsKˆ    //Static initialization, as shown in the following code snippet;L    //VARMV    //    commonName : STRING := 'MyRasPi';N¸    //    ciCertInfo : NBS.CERT_INFO := (psInfo:=ADR(commonName), udiSize:=LEN(commonName));OX    //    myTLSContext : NBS.TLSContext := (P`    //        ePurpose:=NBS.PURPOSE.CLIENT_SIDE,QL    //        sUseCaseName:='NBSTest',RB    //        sTLSVersion:='1.3',SJ    //        ciCertInfo:=ciCertInfo,TH    //        udiVerificationMode:=2U    //    );V    //END_VARWš    IASyncPropertyProvider : MQTT.NBS.IAsyncProperty; // Runs the connect process in a own background task. Use this property if the connection setup takes longer than one task cycle (e.g. TLS connections)XEND_VARYVAR_OUTPUTZ4    Connected      : BOOL;[^    SessionState   : SparkplugSessionStateType;\4    xError         : BOOL;]6    eError         : ERROR;^^    itfPrimaryHost : IPrimaryHost := THIS^;    _VAR`À    _groupIDPool        : List; // OF FB_GroupID - This is blank groupids for dynamic allocationaf    _EdgePool           : List; // OF FB_RemoteEdgebj    _DevicePool         : List; // OF FB_RemoteDevicec^    _MetricPool         : List; // OF FB_Metricdœ    _groupIDs           : List; // OF FB_GroupID - This is groupIDs with namese¦    Connect             : BOOL := TRUE; // TRUE: Connects EoN using the configured settings, FALSE: Disconnects EoN from server if it was connectedf¸    _cPrimaryHostID     : WSTRING; // Corrected PrimaryHostID, contains no illegal chars    g>    _Enabled            : BOOL;hP    _ConnectionTime     : TIME := T#30S;i¨    _LockTimesArray     : ARRAY[1..8] OF TIME := [4(TIME#30S0MS), 2(TIME#1M0S0MS), TIME#2M0S0MS, TIME#4M0S0MS]; // could be made accessible public  jž    _OutTimeRemaining   : TIME; // Duration of Out Time Period = TRUE remainingk>    _LockTimeRemaining  : TIME;l¾    _ExponentialBackOff : FB_ExponentialBackOffTimer; // Handles the Exponential Backoff timingmj    _StateMachine       : FB_PrimaryHostStateMachine;nl    _TopicProvider      : FB_PrimaryHostTopicProvider;oZ    _MQTT               : FB_PrimaryHostMQTT;pT    _MQTT_eError        : MQTT.MQTT_ERROR;q–    _SparkplugB         : FB_SparkplugBSimple; // Handles SparkPlugB Stuff r¢    _Blob               : ARRAY[0..65535] OF BYTE; // buffer for encoded messagess€    _BlobSize           : UDINT; // current encoded message sizet|    _LastWillQos        : MQTT.MQTT_QOS := MQTT.MQTT_QOS.QoS0;uP    _LastWillRetain     : BOOL := FALSE;v’    _LastWillTopic      : WSTRING(GC_Sparkplug.supported_string_lengths);wè    _NDEATH             : FB_Metric := (_dataType := MetricDataType.UInt64);    // contains the current NDEATH BDSeqxº    _NDEATHPayload      : ARRAY[0..255] OF BYTE; // what is the maximum size of this payload?y@    _NDEATHPayloadSize  : UDINT;zp    _MessageConsumer    : FB_PrimaryHostMessageConsumer;{B    _Diag               : STRING;|	}$	// IMessageSource~è	_IMessageSource_GroupID : IElement; //The itfElement that you are publishing (for FB_Edge this will be a FB_Device)F	_IMessageSource_publishing : BOOL;€ä	_IMessageSource_published  : BOOL; // TRUE when publish is complete.  Is set false automatically in claimExclusivePublishingRights, but you can set it false yourself if you want    ‚	//Publihserƒ`	_pPayload : POINTER TO FB_PayloadSimpleEncoder;„Ž	_pTopic   : POINTER TO WSTRING(gc_sparkplug.supported_string_lengths);…†	_xCMDBlob : ARRAY [0..MQTT.MQTTParam.g_udiMaxPayloadSize] OF BYTE;†$	_xCMDSize : DINT;‡,	_xCMDEncDone  : BOOL;ˆ,	_xCMDEncxErr  : BOOL;‰.	_xCMDEncError : ERROR;Š>    {attribute 'instance-path'}‹0    {attribute 'noinit'}Œ$    _POU : STRING;"UniqueIdGeneratorŽ2470POULevelL{8e575c5b-1d37-49c6-941b-5c0ec7874787}‘Standard’ ChildObjectGuids“8System.Collections.ArrayList”,AddAttributeSubsequent•boolÐÐ-ÐÐ	E
+Gx_l÷E!0…jüoë8%»r…äêó>‘System.StringL{6f9dac99-8de1-4efc-8465-68ac443b7d08}SpecialFuncL{0db3d7bb-cde0-4416-9a7b-ce49a0124323}NoneImplementationL{3b83b776-fb25-43b8-99f2-3c507c9143fc}TextDocument	L{f3878285-8e4f-490b-bb1b-9acbb7eb04db}
+TextLinesL{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}Id
longTagText// Componentsn_MQTT.IASyncPropertyProvider( IASyncPropertyProvider );b_MQTT.ITLSContextProvider( ITLSContextProvider );_MQTT();¸Connected := (NOT _MQTT.ClientError() AND NOT _MQTT.IsConnecting() AND _MQTT.IsConnected());_SparkplugB( );RIF _MQTT.SubscriberMessageReceived() THEN”    _MessageConsumer( pPrimaryHost := THIS, // Alternatively ADR( THIS^ ) V                      pMQTT := ADR(_MQTT), D                      xError => , J                      eError => );   END_IFv_ExponentialBackOff( Enable := (Connect AND NOT Connected),n                     ConnectionTime := _ConnectionTime,n                     LockTimesArray := _LockTimesArray, R                     Enabled => _Enabled,!v                     OutTimeRemaining => _OutTimeRemaining,"~                     LockTimeRemaining => _LockTimeRemaining );#d_StateMachine( Connect := _ExponentialBackOff.out,$b               PrimaryHostConnected := Connected,%J               pMQTT := ADR( _MQTT ),&b               pSparkplugB := ADR( _SparkplugB ),'H               pPrimaryHost := THIS,(\               SessionState => SessionState );)Diag();*Interface+L{a9ed5b7e-75c5-4651-af16-d2c27e98cb94},(*-*    Primary Host Node.Ö    Allows you to concenrate Edge of Network Data sent by various Edges or other Sparkplug compatible nodes/*)00{attribute 'reflection'}1jFUNCTION_BLOCK FB_PrimaryHost IMPLEMENTS IPrimaryHost2VAR_INPUT3€    ServerUrl     : STRING;          // eg:'test.mosquitto.org';4`    ServerPort    : UINT    := 1883; // eg: 18835r    PrimaryHostID : WSTRING := "";   // eg:'PrimaryHost';6ˆ    KeepAlive     : UINT    := 60;   // eg: 60 (Value is in seconds)7V    // Persistent Session (FALSE = DEFAULT)8°    //  * The client must get all messages from a certain topic, even if it is offline. 9ò    //  * You want the broker to queue the messages for the client and deliver them as soon as the client is back online.:X    //  * The client has limited resources. ;ˆ    //  * You want the broker to store the subscription information of the client and restore the interrupted communication quickly.<È    //  * The client needs to reNumberOfMetricse all QoS 1 and 2 publish messages after a reconnect.=    //  >8    //  Clean session (TRUE)?à    //  * The client needs only to publish messages to topics, the client does not need to subscribe to topics. @Þ    //  * You don t want the broker to store session information or retry transmission of QoS 1 and 2 messages.A–    //  * The client does not need to get messages that it misses offline. B    //CH    CleanSession : BOOL    := FALSE;D¦    Username     : WSTRING := "";           // specify a username if any (optional)E¾    Password     : WSTRING := "";           // specify the password for the username (optional)Fº    UseTLS       : BOOL;                    // Enables usage of the TLS encryption (optional)GT    hCert        : SysTypes.RTS_IEC_HANDLEHü    ;                                           // Handle to the client certificate (optional) and only used if UseTLS is TRUEI\    ITLSContextProvider : MQTT.NBS.ITLSContextJ¢    ; //Encapsulates all the data neccessaray to handle encrypted tcp connectionsKˆ    //Static initialization, as shown in the following code snippet;L    //VARMV    //    commonName : STRING := 'MyRasPi';N¸    //    ciCertInfo : NBS.CERT_INFO := (psInfo:=ADR(commonName), udiSize:=LEN(commonName));OX    //    myTLSContext : NBS.TLSContext := (P`    //        ePurpose:=NBS.PURPOSE.CLIENT_SIDE,QL    //        sUseCaseName:='NBSTest',RB    //        sTLSVersion:='1.3',SJ    //        ciCertInfo:=ciCertInfo,TH    //        udiVerificationMode:=2U    //    );V    //END_VARWš    IASyncPropertyProvider : MQTT.NBS.IAsyncProperty; // Runs the connect process in a own background task. Use this property if the connection setup takes longer than one task cycle (e.g. TLS connections)XEND_VARYVAR_OUTPUTZ4    Connected      : BOOL;[^    SessionState   : SparkplugSessionStateType;\4    xError         : BOOL;]6    eError         : ERROR;^^    itfPrimaryHost : IPrimaryHost := THIS^;    _VAR`L	_groupIDFactory     : GroupIDFactory;aÀ    _groupIDPool        : List; // OF FB_GroupID - This is blank groupids for dynamic allocationbR	_EdgeFactory        : RemoteEdgeFactory;cf    _EdgePool           : List; // OF FB_RemoteEdgedV	_DevicesFactory     : RemoteDeviceFactory;ej    _DevicePool         : List; // OF FB_RemoteDevicefJ	_MetricsFactory     : MetricFactory;g^    _MetricPool         : List; // OF FB_Metrichœ    _groupIDs           : List; // OF FB_GroupID - This is groupIDs with namesi¦    Connect             : BOOL := TRUE; // TRUE: Connects EoN using the configured settings, FALSE: Disconnects EoN from server if it was connectedj¸    _cPrimaryHostID     : WSTRING; // Corrected PrimaryHostID, contains no illegal chars    k>    _Enabled            : BOOL;lP    _ConnectionTime     : TIME := T#30S;m¨    _LockTimesArray     : ARRAY[1..8] OF TIME := [4(TIME#30S0MS), 2(TIME#1M0S0MS), TIME#2M0S0MS, TIME#4M0S0MS]; // could be made accessible public  nž    _OutTimeRemaining   : TIME; // Duration of Out Time Period = TRUE remainingo>    _LockTimeRemaining  : TIME;p¾    _ExponentialBackOff : FB_ExponentialBackOffTimer; // Handles the Exponential Backoff timingqj    _StateMachine       : FB_PrimaryHostStateMachine;rl    _TopicProvider      : FB_PrimaryHostTopicProvider;sZ    _MQTT               : FB_PrimaryHostMQTT;tT    _MQTT_eError        : MQTT.MQTT_ERROR;u–    _SparkplugB         : FB_SparkplugBSimple; // Handles SparkPlugB Stuff v¢    _Blob               : ARRAY[0..65535] OF BYTE; // buffer for encoded messagesw€    _BlobSize           : UDINT; // current encoded message sizex|    _LastWillQos        : MQTT.MQTT_QOS := MQTT.MQTT_QOS.QoS0;yP    _LastWillRetain     : BOOL := FALSE;z’    _LastWillTopic      : WSTRING(GC_Sparkplug.supported_string_lengths);{è    _NDEATH             : FB_Metric := (_dataType := MetricDataType.UInt64);    // contains the current NDEATH BDSeq|º    _NDEATHPayload      : ARRAY[0..255] OF BYTE; // what is the maximum size of this payload?}@    _NDEATHPayloadSize  : UDINT;~p    _MessageConsumer    : FB_PrimaryHostMessageConsumer;B    _Diag               : STRING;€	$	// IMessageSource‚è	_IMessageSource_GroupID : IElement; //The itfElement that you are publishing (for FB_Edge this will be a FB_Device)ƒF	_IMessageSource_publishing : BOOL;„ä	_IMessageSource_published  : BOOL; // TRUE when publish is complete.  Is set false automatically in claimExclusivePublishingRights, but you can set it false yourself if you want…    †	//Publihser‡`	_pPayload : POINTER TO FB_PayloadSimpleEncoder;ˆŽ	_pTopic   : POINTER TO WSTRING(gc_sparkplug.supported_string_lengths);‰†	_xCMDBlob : ARRAY [0..MQTT.MQTTParam.g_udiMaxPayloadSize] OF BYTE;Š$	_xCMDSize : DINT;‹,	_xCMDEncDone  : BOOL;Œ,	_xCMDEncxErr  : BOOL;.	_xCMDEncError : ERROR;Ž>    {attribute 'instance-path'}0    {attribute 'noinit'}$    _POU : STRING;‘"UniqueIdGenerator’2477“POULevel”L{8e575c5b-1d37-49c6-941b-5c0ec7874787}•Standard– ChildObjectGuids—8System.Collections.ArrayList˜,AddAttributeSubsequent™boolÐÐ-ÐÐ	E
 ÐÐ
­†ÚÐ-ÐÐ
­‡ÚÐ-ÐÐ
­ˆÚÐ-ÐÐ
­‰ÚÐ-ÐÐ
­ŠÚÐ-ÐÐ
­‹ÚÐ-ÐÐ
­ŒÚÐ-ÐÐ
­ÚÐ-ÐÐ
­PÚÐ-ÐÐ
­¡	ÚÐ-ÐÐ
­¢	ÚÐ-ÐÐ
­£	ÚÐ-ÐÐ
­QÚÐ-ÐÐ
­RÚÐ-ÐÐ
­SÚÐ-ÐÐ
­TÚÐ-ÐÐ
­UÚÐ-ÐÐ
­VÚÐ- ÐÐ
­WÚÐ-!ÐÐ
­XÚÐ-"ÐÐ
­YÚÐ-ÐÐ
­ZÚÐ-#ÐÐ
­[ÚÐ-$ÐÐ
­\ÚÐ-%ÐÐ
­]ÚÐ-&ÐÐ
­^ÚÐ-'ÐÐ
­_ÚÐ-(ÐÐ
­`ÚÐ-ÐÐ
­…ÚÐ-)Ð*+Ð	E
-eÐÐ
­nÚÐ-,ÐÐ
­oÚÐ--ÐÐ
­pÚÐ-.ÐÐ
­qÚÐ-/ÐÐ
­rÚÐ-0ÐÐ
­sÚÐ-1ÐÐ
­tÚÐ-2ÐÐ
­uÚÐ-3ÐÐ
­vÚÐ-4ÐÐ
­wÚÐ-5ÐÐ
­xÚÐ-6ÐÐ
­yÚÐ-7ÐÐ
­zÚÐ-8ÐÐ
­{ÚÐ-9ÐÐ
­|ÚÐ-:ÐÐ
­}ÚÐ-;ÐÐ
­~ÚÐ-<ÐÐ
­ÚÐ-=ÐÐ
­€ÚÐ->ÐÐ
­ÚÐ-?ÐÐ
­‚ÚÐ-@ÐÐ
­ƒÚÐ-AÐÐ
­„ÚÐ-BÐÐ
­…ÚÐ-CÐÐ
­†ÚÐ-DÐÐ
­‡ÚÐ-EÐÐ
­ˆÚÐ-FÐÐ
­‰ÚÐ-GÐÐ
­ŠÚÐ-HÐÐ
­‹ÚÐ-IÐÐ
­ŒÚÐ-JÐÐ
­ÚÐ-KÐÐ
­ŽÚÐ-BÐÐ
­ÚÐ-LÐÐ
­ÚÐ-MÐÐ
­‘ÚÐ-NÐÐ
­’ÚÐ-OÐÐ
­“ÚÐ-PÐÐ
­”ÚÐ-QÐÐ
­•ÚÐ-RÐÐ
­–ÚÐ-SÐÐ
­—ÚÐ-TÐÐ
­˜ÚÐ-UÐÐ
­™ÚÐ-VÐÐ
­šÚÐ-WÐÐ
­›ÚÐ-XÐÐ
­œÚÐ-YÐÐ
­ÚÐ-ZÐÐ
­žÚÐ-[ÐÐ
­ŸÚÐ-\ÐÐ
­ ÚÐ-]ÐÐ
­¡ÚÐ-^ÐÐ
­¢ÚÐ-XÐÐ
­£ÚÐ-_ÐÐ
­¤ÚÐ-`ÐÐ
­¥ÚÐ-aÐÐ
­¦ÚÐ-bÐÐ
­§ÚÐ-cÐÐ
­¨ÚÐ-dÐÐ
­©ÚÐ-eÐÐ
­ªÚÐ-fÐÐ
­«ÚÐ-gÐÐ
­¬ÚÐ-hÐÐ
­­ÚÐ-iÐÐ
­®ÚÐ-jÐÐ
­¯ÚÐ-kÐÐ
­°ÚÐ-lÐÐ
­±ÚÐ-mÐÐ
­²ÚÐ-nÐÐ
­³ÚÐ-oÐÐ
­´ÚÐ-pÐÐ
­µÚÐ-qÐÐ
­¶ÚÐ-rÐÐ
­·ÚÐ-sÐÐ
­¸ÚÐ-tÐÐ
­¹ÚÐ-uÐÐ
­ºÚÐ-vÐÐ
­»ÚÐ-wÐÐ
­¼ÚÐ-xÐÐ
­½ÚÐ-yÐÐ
­ÄÚÐ-zÐÐ
­ÅÚÐ-{ÐÐ
­ÆÚÐ-|ÐÐ
­ÇÚÐ-}ÐÐ
­ÈÚÐ-~ÐÐ
­ÉÚÐ-ÐÐ
­ÊÚÐ-€ÐÐ
­ËÚÐ-ÐÐ
­ÏÚÐ-‚ÐÐ
­ÑÚÐ-ƒÐÐ
­ÒÚÐ-„ÐÐ
­ÓÚÐ-…ÐÐ
­ÐÚÐ-†ÐÐ
­ÖÚÐ-‡ÐÐ
­×ÚÐ-ˆÐÐ
­ØÚÐ-‰ÐÐ
­ÕÚÐ-|ÐÐ
­ÌÚÐ-ŠÐÐ
­ÍÚÐ-‹ÐÐ
­ÎÚÐ-ŒÐÐ
­kÚÐ-XЍ-ŽЏ-‘’“Д•­
\ No newline at end of file
+iÐÐ
­nÚÐ-,ÐÐ
­oÚÐ--ÐÐ
­pÚÐ-.ÐÐ
­qÚÐ-/ÐÐ
­rÚÐ-0ÐÐ
­sÚÐ-1ÐÐ
­tÚÐ-2ÐÐ
­uÚÐ-3ÐÐ
­vÚÐ-4ÐÐ
­wÚÐ-5ÐÐ
­xÚÐ-6ÐÐ
­yÚÐ-7ÐÐ
­zÚÐ-8ÐÐ
­{ÚÐ-9ÐÐ
­|ÚÐ-:ÐÐ
­}ÚÐ-;ÐÐ
­~ÚÐ-<ÐÐ
­ÚÐ-=ÐÐ
­€ÚÐ->ÐÐ
­ÚÐ-?ÐÐ
­‚ÚÐ-@ÐÐ
­ƒÚÐ-AÐÐ
­„ÚÐ-BÐÐ
­…ÚÐ-CÐÐ
­†ÚÐ-DÐÐ
­‡ÚÐ-EÐÐ
­ˆÚÐ-FÐÐ
­‰ÚÐ-GÐÐ
­ŠÚÐ-HÐÐ
­‹ÚÐ-IÐÐ
­ŒÚÐ-JÐÐ
­ÚÐ-KÐÐ
­ŽÚÐ-BÐÐ
­ÚÐ-LÐÐ
­ÚÐ-MÐÐ
­‘ÚÐ-NÐÐ
­’ÚÐ-OÐÐ
­“ÚÐ-PÐÐ
­”ÚÐ-QÐÐ
­•ÚÐ-RÐÐ
­–ÚÐ-SÐÐ
­—ÚÐ-TÐÐ
­˜ÚÐ-UÐÐ
­™ÚÐ-VÐÐ
­šÚÐ-WÐÐ
­›ÚÐ-XÐÐ
­œÚÐ-YÐÐ
­ÚÐ-ZÐÐ
­žÚÐ-[ÐÐ
­ŸÚÐ-\ÐÐ
­ ÚÐ-]ÐÐ
­¡ÚÐ-^ÐÐ
­¢ÚÐ-XÐÐ
­£ÚÐ-_ÐÐ
­­	ÚÐ-`ÐÐ
­¤ÚÐ-aÐÐ
­¬	ÚÐ-bÐÐ
­¥ÚÐ-cÐÐ
­«	ÚÐ-dÐÐ
­¦ÚÐ-eÐÐ
­ª	ÚÐ-fÐÐ
­§ÚÐ-gÐÐ
­¨ÚÐ-hÐÐ
­©ÚÐ-iÐÐ
­ªÚÐ-jÐÐ
­«ÚÐ-kÐÐ
­¬ÚÐ-lÐÐ
­­ÚÐ-mÐÐ
­®ÚÐ-nÐÐ
­¯ÚÐ-oÐÐ
­°ÚÐ-pÐÐ
­±ÚÐ-qÐÐ
­²ÚÐ-rÐÐ
­³ÚÐ-sÐÐ
­´ÚÐ-tÐÐ
­µÚÐ-uÐÐ
­¶ÚÐ-vÐÐ
­·ÚÐ-wÐÐ
­¸ÚÐ-xÐÐ
­¹ÚÐ-yÐÐ
­ºÚÐ-zÐÐ
­»ÚÐ-{ÐÐ
­¼ÚÐ-|ÐÐ
­½ÚÐ-}ÐÐ
­ÄÚÐ-~ÐÐ
­ÅÚÐ-ÐÐ
­ÆÚÐ-€ÐÐ
­ÇÚÐ-ÐÐ
­ÈÚÐ-‚ÐÐ
­ÉÚÐ-ƒÐÐ
­ÊÚÐ-„ÐÐ
­ËÚÐ-…ÐÐ
­ÏÚÐ-†ÐÐ
­ÑÚÐ-‡ÐÐ
­ÒÚÐ-ˆÐÐ
­ÓÚÐ-‰ÐÐ
­ÐÚÐ-ŠÐÐ
­ÖÚÐ-‹ÐÐ
­×ÚÐ-ŒÐÐ
­ØÚÐ-ÐÐ
­§	ÚÐ-€ÐÐ
­ÌÚÐ-ŽÐÐ
­ÍÚÐ-ÐÐ
­ÎÚÐ-ÐÐ
­kÚÐ-XБ-’Г”-•–—И™­
\ No newline at end of file