添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
53223
 	(    ï! 6  <¦  ÍI signature_flag
4294967296''crc
3996477610CallTask__TaskFunction
RelativeStack+Output, IsCompiled, RelativeStack, Typified	ptaskinfo	_IMPLICIT_TASK_INFO
*Input, IsCompiled, RelativeStack, Typifiedpapplicationinfo_IMPLICIT_APPLICATION_INFO
Compiled, Typified, Located$64613fde-90c3-4e8e-a569-c4f32dff7ca4$00000000-0000-0000-0000-000000000000	131785522generate_implicit_init_function__Setup__Call__POUProgram$e49cb141-c963-5618-98b0-d3d00e22ddb2
2728864722real32__to__any32indwType2External, Compiled, SuperGlobal, Typified, Located$adb07db6-6cb2-4889-b206-007b85f53578
4094399910any32__to__real32$bc57a7e2-ed11-422f-976f-8be4fc5666bf
2020165724
real32__eq in1!in2"$79084732-5d65-4953-878b-b9d1570ab3c3#	651050431$
real32__ne%$26c1b838-f805-4f80-b547-7a6b4efbbbb5&
1108587135'
real32__lt($8897f859-01db-4c48-85cd-8862ad90c271)76373463*
real32__le+$06045a98-b196-40fe-bbf3-cc6b9cd04fa6,
4168934275-
real32__gt.$57dc0ec0-25cf-4c02-9dde-c27a20a79806/
32024852910
real32__ge1$27ea9ccf-ca7d-4bbb-8a0b-76d96b1b096b2
10447566433real32__add4$4001e5c9-2959-421b-a1ea-3192b559210f5	2673141556real32__sub7$7af69ff9-2d09-4573-9668-4abfb8238c6b8
11036320749real32__mul:$07fdcf4d-2f32-4026-ba50-865a9a4cac44;
1466051322<real32__div=$7433aafb-0867-4fb3-b51c-62aedc81235f>	886904492?real32__abs@$a891677e-9887-4115-baf6-5bc18c14f21fA
3404262884Breal32__minC$7f040799-feda-40a7-b376-ee0db6e12abfD
4154332537Ereal32__maxF$c46be4ae-b278-40fc-8552-9cdb664b8607G	497866625H
real32__limitIin3J$6049606a-24c9-4d04-8810-fd7a837dc535K
1847162626L
real32__truncM$ef945a32-7190-4712-af4e-686069feba9eN	346942548Oreal32__tanP$84acc91c-76a8-41d8-8957-1617354730fcQ	843193954Rreal32__atanS$4e10f990-4cf5-4424-abd6-16195b2c1947T
2676881535Ureal32__sinV$b59097e9-0c6c-4edf-a18e-d34da5f674deW
4177298540Xreal32__asinY$12baf47b-573e-437a-b3eb-06f4c4745ccfZ	406941506[real32__cos\$21313f85-d945-4d56-bab3-9c0d70303453]
3446532930^real32__acos_$29048f1c-76ff-4555-a36d-61013b9112e7`	831403110a
real32__lnb$412735d8-6e6f-49d1-8d62-aad6e08f4198c
2281156508dreal32__loge$bac2aa4e-fb73-4beb-bee8-1cbe13a49551f
1964720339greal32__exph$f127665c-c7d1-4290-b6be-8db37fc1df1ai
2929814886jreal32__exptk$bbbdf0cf-b7ce-4f53-af3f-df8a531c4d5dl
2945838411mreal32__sqrtn$cf137188-d4b3-4d76-b1f6-87afe6ee2148o
2367094826p
int32__divq$16597b72-e6ca-4e3e-b487-0fab4f60f55dr
1538210473suint32__divt$1acf0b76-2778-4975-844a-6ec15f762b2eu	997952827v
int32__modw$32f74310-0500-40a8-bcdc-38e3a235c1a5x
1194593076yuint32__modz$cd4339d7-cb4c-4660-b471-ee4a5c114ad0{
3531525309|
int32__abs}$62876995-1a07-4244-a3f0-8c8f63eec49c~	147726259int32__limit€$79dd4eba-d759-4918-8c09-9ba7cedb378c
1413729490‚
uint32__limitƒ$46a8a0a1-a4c6-464a-a53c-87329443b190„
2280991083…
int32__mul†$3330a6c6-0b50-4a3c-91f0-5ad24d44fbf5‡
1292175001ˆuint32__mul‰$47a65ed1-25f8-43b6-85a3-dee72d9a73cdŠ
4142655437‹
int32__shrŒ$1128c6ef-4d56-40a2-a91f-4f5dc0185d98
4111070444Žuint32__shr$c1f5d873-aaf1-4f92-b314-c17c78644b9d
2164893551‘uint32__shl’$1393b595-1c79-4a79-a17f-db4b5fda7a44“
2239779883”uint32__rol•$af9cbc04-84b4-409b-8830-f18c8ed3a6ec–
4051699624—uint32__ror˜$181ef5ee-7190-4ce0-ada3-cca4fd45a289™	695114823š	get__time›$79ad9f0e-3a56-4c79-af55-c1dafc05b5e6œ
2006625495__sys__rts__cyclež	slotLowerŸ	slotUpper 
stTaskName¡AnyInt¢stApplicationName£$8f58c4c2-6bd5-47c7-a149-8588821180e6¤
2641387053¥__sys__register__slot__pou¦nSlotNumber§dwFunctionPointer¨$70da5b5d-fcb8-48d4-ac57-7c4cb04e2caa©
3903245801ª__sys__unregister__slot__pou«$9e4827e4-6b50-4e6a-bc7b-adeb6c4dd526¬
3363294660­SysCpuDebugHandler®$d6a84056-f4d9-45ca-9a49-a66cec23e145¯hide° ±	242570791²_Implicit_Application_Info³Type´RelativeInstanceµ''NORMAL__COMMENT¶â			
				rest of runtime info DO NOT USE !	
				pcArea : ARRAY [0..APPL_NUM_OF_STATIC_AREAS-1] OF POINTER TO BYTE //Pointer to data areas of this application
				unsigned short ausAreaType[APPL_NUM_OF_STATIC_AREAS];	/* Area type */
				unsigned long aulAreaSize[APPL_NUM_OF_STATIC_AREAS];	/* Area size */
				unsigned char StaticSessionIdPool[MEM_GET_STATIC_LEN_(APPL_NUM_OF_STATIC_SESSIONIDS, sizeof(unsigned long))];
				unsigned char StaticForcePool[MEM_GET_STATIC_LEN(APPL_STATIC_FORCE_ENTRIES, ForceVarDesc)];
				unsigned char StaticBPPool[MEM_GET_STATIC_LEN(APP_STATIC_BP_ENTRIES, Breakpoint)];
	·pParentApplication¸8Local, Structure, IsCompiled, RelativeInstance, Typified¹	pbyRightsºguidCode»guidData¼udState½	udOpState¾dwDoNotUse_0¿dwDoNotUse_1ÀdwDoNotUse_2ÁdwDoNotUse_3ÂdwDoNotUse_4ÃdwDoNotUse_5ÄdwDoNotUse_6ÅbAppendBootprojectÆbPersistentForceÇdwPSVersionÈdwTargetSettingVersionÉFB_INITÊ
3526140261ËMethodÌbInitRetainsÍbInCopyCodeÎ__INSTANCEPOINTERÏ4Input, IsCompiled, RelativeStack, Implicit, TypifiedÐ
__Index__0Ñ2Local, IsCompiled, RelativeStack, NoInit, ImplicitÒ'NonVirtual, Compiled, Typified, LocatedÓ$ff589828-12c2-4e6a-9f0d-1d6dbb3264b6Ô__FB_PARTIALINITÕ
1565233622Ö2NonVirtual, Generated, Compiled, Typified, Located×?Structure, NonVirtual, Compiled, SuperGlobal, Typified, LocatedØ	pack_modeÙ8Ú
1691734129Ûint64__to__any32Ü$e8c04d52-7d17-4965-9598-cb38a570750eÝ
2445978047Þany32__to__int64ß$fbd44dd8-302c-4269-9682-4e63f10e32eeà	716714719áreal32__to__any64â$4996aebf-7b1a-4606-9275-58c6595fe093ã
3713006940äany64__to__real32å$fba8c26a-b719-4b40-ab2a-36a9440d345bæ
2394705132ç
int64__divè$5df34150-5072-488a-a457-a82fe4dddcafé
1872403673êuint64__divë$c72c0ae2-f6fb-4752-9d81-65e25c2adeddì	953205245í
int64__modî$285230dc-fbd4-44eb-96d1-c35d9d1d95a4ï	593286487ðuint64__modñ$7cf5a04d-a334-4d66-8458-aa41fd3d3cb4ò	113053312óuint64__addô$bd215293-9d5f-451b-8b34-fbf355380a1fõ
3531041404ö
int64__add÷$f853b3c3-030b-457f-9c6f-904c951d4c1bø
4246887690ù
int64__subú$b74d723c-4571-496b-9991-776c19eac243û	924210632üuint64__subý$91c29cfe-4ed7-4aaf-862d-2b211eba3727þ
2220778925ÿ
int64__mul€$56cf99a8-dd26-40fc-bd98-c75e222d12a2
2033230057‚uint64__mulƒ$9f1b41e0-0777-4b76-9af1-a82c5e0d5e37„
3251236970…
int64__min†$938d42a9-f6db-4a23-944c-1eb5ddb2deee‡
4061158343ˆuint64__min‰$f38314a9-aaa0-47b1-8175-b88faad4b296Š
3984229475‹
int64__maxŒ$0d9bcbbc-7c0b-403c-afcc-ba79b0a580ab
3479610202Žuint64__max$611c06e1-6846-4ba2-82b4-76c65f121ab0
2541544546‘uint64__xor’$367ed89a-2489-42df-ab7c-864d2f1d2f78“	721305799”uint64__and•$c5a4df4a-a8a2-4c18-a05f-5857c4899a0c–
2965688650—
uint64__or˜$32a1c099-4e89-49fc-b341-847a90f50e30™
2371146893šuint64__not›$b178ef7a-1592-434b-b462-6c46fac2c8a4œ
1107659532
uint64__eqž$cea9db66-1a76-4c47-b9a0-6577ad6e4e74Ÿ	480444143 
uint64__ne¡$a5ae5f79-8207-4854-943b-288c0a7d2b9b¢
2021617967£
uint64__lt¤$2c377459-e121-40b9-9e5a-1118a48f743d¥
1054973575¦
uint64__le§$ae239119-6f5f-4534-a1ee-b390262a39a3¨
3255836883©
uint64__gtª$1450c7da-db41-485f-83a7-d6227fc55a01«
2223951739¬
uint64__ge­$20395126-4d3f-43d9-9df8-5b21c66b6dcb®	863509285¯	int64__eq°$e8ff23a5-d7c7-48b8-805a-b0c01e09cce3±	881440595²	int64__ne³$18d11e8b-afdf-443e-82d2-046d71021018´	238341524µ	int64__lt¶$35ead342-0197-4bd8-ba6f-d3002ea536e8·
3414395280¸	int64__le¹$0a31942a-efba-4ddf-9c0d-7d4e887ec3caº	701077656»	int64__gt¼$b93d8de7-8cc7-458d-b76b-54805d224bf8½
3967736988¾	int64__ge¿$e3fa00fa-76dc-48d3-b18d-70546f8817d1À
1867067789Á
int64__absÂ$83f47c43-8882-441b-809f-1bf3202ee267Ã
3263826000Äuint64__rolÅ$d9ff9b48-8cb1-41b0-92d2-319173b767fcÆ
3062520787Çuint64__rorÈ$8292f004-04fa-4067-bf44-2dd2c43db842É
3322149652Êuint64__shlË$4f5894be-5a41-4c9b-8659-e81c12575fc4Ì
2986584215Íuint64__shrÎ$821a527f-8831-4a09-b5da-58ca3b768f66Ï
2726094904Ð
uint64__limitÑ$26311cc1-5920-4260-9336-be3754cf23cfÒ
2206011875Óint64__limitÔ$b3a15fa1-b9b4-4cad-91f6-3fd673edbae6Õ
1272716029Ö
int64__shr×$427ca261-109e-4d61-a08b-24f6068e58daØ	655075154Ù
get__ltimeÚ$aeaaf22a-a260-4bac-83d9-18ff949be644Û
3183966539Üreal32__to__real64Ý$9673b4f8-36d6-42ee-b5ca-e06e2602fab5Þ
3519950284ßreal64__to__real32à$68d11de2-a882-4f63-8e95-577fbe97dbefá
2972115768âreal64__to__any32ã$51322543-1fa0-4892-92ab-c1559ce724faä
2081721515åany32__to__real64æ$48ba7277-d0f9-4a61-8d0a-cfa10c9598a2ç
3454954494è
real64__truncé$78aea275-8aff-407b-981c-8abf25d34255ê
3137264130ëreal64__tanì$8ee3c317-6d75-4714-ab7c-ad187c5db2eeí
3753412847îreal64__atanï$79d8c72b-fe9c-4bd0-8d79-62e93b3d01b9ð	836685353ñreal64__sinò$df65bfb9-6613-453b-b2b8-4fcb3789d916ó	352719585ôreal64__asinõ$dad7794c-0bfd-4662-adbc-f2c4e528d37bö
3054655764÷real64__cosø$22fbcf03-320c-4e2b-83ce-a942e5631489ù	546799055úreal64__acosû$a11f5103-2691-4d71-bad3-db29bf365b4bü
3328776656ý
real64__lnþ$1c3bb0cc-2170-475c-b9b2-2c991a82ed64ÿ	698653130€real64__log$9335cd5c-acb1-4e96-ad18-0076459fc955‚
3678959237ƒreal64__exp„$4ffba013-6cc1-43e2-b6bb-6715ab108128…
3062998530†real64__expt‡$fdfe2381-2e31-4926-b6d4-4cf674ac1326ˆ	942060455‰real64__sqrtŠ$4ffd7525-5270-4695-b699-ddbbc4b96fd3‹
3310343244Œ
real64__eq$475d8087-1c89-48a4-8923-1690f76c80fdŽ
2615714223
real64__ne$7229c098-2c5d-434a-9ab4-f35ad2b92202‘
4281675375’
real64__lt“$5de9e5f2-dd5e-4a6e-b860-18fd191e23ee”
3115041223•
real64__le–$7301d2cc-2aa1-4de3-9bef-548d89987e86—
1163558803˜
real64__gt™$38f386c3-7170-454b-8528-c10a39021b23š63213627›
real64__geœ$f9510bc1-1227-49ab-9870-64870fd1a5fb	175120083žreal64__addŸ$9dc891f0-020c-40ef-b8a7-99b35c1d6808 
1004225947¡real64__sub¢$2fd9375a-655d-4573-bd00-1bcc1c494227£
1979560122¤real64__mul¥$e2479120-cb69-43ba-87fa-98e33b5112c2¦
1666681994§real64__div¨$a1c7ca2c-f191-46d4-a7f5-1504f1ba9eb8©
1943489239ªreal64__abs«$99947bf9-0e45-48b1-ad7f-8efb60cecd95¬
4275915668­real64__min®$fb18f571-3f0d-4f1e-9a10-9bf219caed48¯
3282809609°real64__max±$7b55e231-072f-4e70-a3f9-b4b1a98c1c66²
3952341867³
real64__limit´$b701090f-8dde-42e6-b8fe-5f22597768eeµ	960100917¶real64__to__any64·$d8153915-f13d-4be5-963e-2e0db8de9f44¸
1431364689¹any64__to__real64º$97dc91e6-edb3-4c35-be5d-6e444884a6ee»
1535689152¼__sys__rts__cycle__2½	hTaskinfo¾$1230b333-5d6b-46b8-a973-900b5373db72¿
1746117600Àexchange__and__addÁ$a39e5468-86fa-4e6d-affe-3e2e51db2150Â
1630658070Ãtest__and__setÄ$78879ef1-a378-4991-b06f-4f6324e3955fÅ
1051002070Æcompare__and__swapÇpAddressÈxwExpectedValueÉ
xwNewValueÊ$84b9de1a-938d-454b-a526-1c5121467a99ËDoLinkÌ
2355386198Í	__memcopyÎpDestÏpSrcÐdwSizeÑ$9d234cab-298b-4f80-8b06-238a4ecbdbf1Ò
1888671637Ó__stringcompareÔpStr1ÕpStr2Ö$9f5705df-d2f0-46b3-8c4d-6a4d6217fac6×
2923953018Ø__wstringcompareÙ$0bea6546-230e-4059-a0c6-574c96c9dcc9Ú	826746150Û__cycle__code__TaskÜ	hTaskInfoÝ&Generated, Compiled, Typified, LocatedÞ$52629769-f13a-4a0f-8d07-284aa5d891c8ß	450027817àLogToDeviceápMessageâ$87fa260a-0206-486b-b1c7-ddcd71ec0182ãJbreakpoint logging functions, 3.5.5.0 (3s - smart software solutions gmbh)ä''DOCU__COMMENTåä	Appending of a string to a target string.
	The string to append and the target have both 
 a maximum length of 255. If there is no more room in the target,
 the remaining characters will be missing. There won't be an error.
 .. cds:ranges::
     :HEAD: |StringRange255|
     :TAIL: |StringRange255|
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
3222489690çAppendToStringè& Head part of the concatenated result éHEADê% Tail part of the concatenated resultëTAILìIntíindex1î*Local, IsCompiled, RelativeStack, TypifiedïindexRetð$2534de7b-0ca5-4f62-a5ca-98671b8c49e2ñ
2055098298òIBase__UnionóNoneô__InterfaceõIBASEö5Local, Structure, IsCompiled, RelativeInstance, Union÷__vfTablePointerø?Local, Structure, IsCompiled, RelativeInstance, Union, Typifiedù
1646999765ú!Output, IsCompiled, RelativeStackû Input, IsCompiled, RelativeStacküIBASE__UNIONý*Input, IsCompiled, RelativeStack, ImplicitþNonVirtual, Compiled, Locatedÿ$d66845db-6264-4814-8201-14e00ce3a97d€\Structure, NonVirtual, Generated, Union, ImplicitInterfaceUnion, Compiled, Typified, Located!base interfaces, 3.5.2.0 (system)‚m4export_32bit_nosignatureƒ	124493086„IoMgrConfigGetConnectorByDriver…IOCONFIGCONNECTOR†IoConfigConnector‡pIBaseˆIBase‰
bIecDriverŠnIndex‹pResultŒRTS_IEC_RESULT%External, Compiled, Typified, LocatedŽ$06985b41-279f-4177-be30-df6637cf2a9biostandard, 3.5.15.0 (system)
1849640412‘IoMgrConfigGetConnectorList’ppConnectorList“pnCount”$328a63c3-d551-4b32-9422-377bc6aac35e•
2797965735–IoMgrConfigGetDriver—
pConnector˜pbIecDriver™$af3d345a-c11f-478f-b5df-a99d8ebf08b6šm4export_nosignature›	120351857œIoMgrCopyInputBEpChannelžIOCONFIGCHANNELMAPŸIoConfigChannelMap $55d03518-4ee8-4b82-a8b3-766e40682994¡
3573238966¢IoMgrCopyInputLE£$2c81bc43-6ab4-4b52-9f19-2965d9566ee8¤
3451368126¥IoMgrCopyOutputBE¦$7717607d-0e2d-4e6e-9262-8273e4cd68de§
1606949052¨IoMgrCopyOutputLE©$5bc7d463-6913-4718-8a12-5e49d1a76983ª
2201279776«IoMgrGetBusCycleType¬$b68569cb-9baa-4ce2-a823-c8a751a0fb64­
4163672564®IoMgrGetConfigApplication¯pszConfigApplication°pnMaxLen±$b8648e29-04fc-41e1-a469-45f6d098f662²
3960301101³IoMgrGetDriverProperties´hIoDrvµRTS_IEC_HANDLE¶ppProperties·$bff24870-39d9-48f3-9d34-114cbabbe751¸
2015607926¹IoMgrGetFirstDriverInstanceº$0e6f29bf-e5f9-4dc0-9040-46a430baf6fd»	189232175¼IoMgrGetNextDriverInstance½
pIBasePrev¾$2321c32b-bfa7-46fc-9f42-71436c2534da¿Ë | Reconfigure a single connector respectively the corresponding master.
 | In the reconfigure sequence we call the corresponding IO-driver at the connector the following way:
 |    1. disable the IO-configuration
 |    2. enable the IO-configuration
 |    3. update the mapping
 | This sequence is called asynchronously so the asynchronous state is transported in the parameter pudiState.
 :return: The runtime system error code (see CmpErrors.library)À
1931367312ÁIoMgrReconfigureÂ7 Pointer to the corresponding connector to reconfigure Ãù Asynchronous state of the reconfigure operation. Can be one of the the following states (see CmpAsyncMgr.library for details:
 (ASYNCSTATE_INVALID | ASYNCSTATE_PENDING | ASYNCSTATE_ACTIVE | ASYNCSTATE_READY | ASYNCSTATE_ERROR | ASYNCSTATE_TIMEOUT)Ä	pudiStateÅ$912d5cf9-41b7-4ddc-870c-b8cb86c2711eÆ
3203918504ÇIoMgrRegisterConfigApplicationÈ$b2f4c643-c7e5-48a2-9923-7da06f28f56fÉ
1108998563ÊIoMgrRegisterInstance2Ë	dwClassIdÌpItfÍ$d0558e3e-16a7-4cff-b56f-4bf2bab8dca5Î
1618632085ÏIoMgrSetDriverPropertiesÐulPropertiesÑ$11359e5a-6c6f-4ab0-ad02-13f1415fc629Ò
2473575876ÓIoMgrSetDriverPropertyÔ
ulPropertyÕbValueÖ$0d12bb26-2b08-402c-9be4-7a3d1d749aac×
3971059502Ø IoMgrUnregisterConfigApplicationÙ$85fc8796-00e3-4500-8f02-96be88b1acabÚ
2198568135ÛIoMgrUnregisterInstanceÜ
hInterfaceÝ$5c4cac23-de3f-40ac-b8bc-1fcdb219c4c9Þ
3870152214ßConfigGetConnectoràpIoConnectorListádwModuleTypeâ
dwInstanceãiädwCurrentInstanceå$05448d5a-856f-498f-8d2c-f54d4a1d2b4bæ
2183295846çConfigGetFirstChildèpFatherénCountê$4ec186af-b262-48d5-b7fc-df5bbfcaba7dë
2505514326ìConfigGetFirstConnectoríwTypeî$f4b6faa7-ed59-4b86-ac5f-530a108dd065ï
1184247126ðConfigGetNextChildñ$24eb7af1-4fea-45c3-9f69-1d59d8d37254ò	182680892óConfigGetNextConnectorô$0f720af6-4d60-4925-b3d9-aa0ac2cc321cõ
2127479105öConfigGetParameter÷IOCONFIGPARAMETERøIoConfigParameterùpIoConnectorú
dwParameterIdû$69449550-bc7e-40a6-a2d3-5b7f5d2fe50aü
1690247643ýConfigGetParameterLengthþ
pParameterÿ$15163bae-b543-4ae9-85e3-287c9d15f161€22967866ConfigGetParameterValueByte‚wValueƒdwValue„$a482a558-eb9a-4b9b-92ef-440028b1a32e…
2864151311†ConfigGetParameterValueDword‡byValueˆ$04e9467c-951f-4e5c-95cf-4a9100c257c9‰
1732278298ŠConfigGetParameterValuePointer‹$a0bb9009-1f2c-4f47-9efd-e6f6d57f364bŒ38318646ConfigGetParameterValueWordŽ$2520e670-523b-47bc-a617-0cf6550b9c99Ï	Mapping information for a single channel. Every I/O-channel is described as a parameter, but with special meanings. The datatype of a channel can be simple (BOOL, BYTE, WORD, etc.) or array of simple types.
1485173771‘& Pointer to the parameter description.’? Pointer to the parameter in the process image on the IEC side.“
pbyIecAddress” Bitoffset of the device.•wParameterBitOffset–5 Bitoffset of pbyIecAddress in the IEC process image.—wIecAddressBitOffset˜ Size in bits of the channel.™wSizešÁ This parameter is now used for the base type information. This information is needed for a correct swapping action. -- wBaseTypeInformation : WORD; -- compiler relies on the name 'wDummy' here›wDummyœ= Driver specific entry. Reserved for the usage in the driver.dwDriverSpecificžXWORDŸ
3799954164 $9993a70e-7153-4204-9a17-aa75207d5f4a¡2Structure, NonVirtual, Compiled, Typified, Located¢w		Connector information. Each device is described completely as a set of one input- and one or more output-conenctors. £
3076999907¤P Type of the connector. See category "Connector types" for detailed information.¥N Connector options. See category "Connector options" for detailed information.¦wOptions§J Connector flags. See category "Connector flags" for detailed information.¨dwFlags©d Registered instance handle of the IO-driver, that operates this device respectively this connector.ª, Number of parameters in the parameter list.«dwNumOfParameters¬O Pointer to the parameter list, that contains all parameters of this connector.­pParameterList®= Pointer to the father connector to describe the device tree.¯
2550773687°$7e08b7ae-f8e8-47d2-8a16-44662e62b8ce±;	Connector map to describe all IO-channels of one connector²
2929473580³IoConfigConnectorMap´( Pointer to the corresponding connector.µ IO-manager specific entry.¶dwIoMgrSpecific·, Number of channels in the channel map list.¸dwNumOfChannels¹ Pointer to channel map list.ºpChannelMapList»
3660353869¼IOCONFIGCONNECTORMAP½$614b5eaf-fe26-4660-8316-12a2d58a3653¾T	Parameter description. This entry describes completely a parameter of an connector.¿	837778035ÀE ID of the parameter. This ID is specified in the device description.ÁJ Value (if is valud < 4 bytes) or a pointer to the value of the parameter.ÂQ Type class of the parameter. See category "Type class" for detailed information.Ã! Length of the parameter in bits.ÄwLenŬ Parameter value flags.  See category "Parameter value flags" for detailed information. Bit 16 to 31 are used for extended parameters (size exceeding 65535 Bits,8192 Bytes)Æ
3168140343Ç$0c1f5741-c666-4ac4-8049-47e0d549144bÈ#	Mapping description for each task.É
2318185417ÊIoConfigTaskMapË Index of the IEC task.ÌdwTaskIdÍN Input or output type. See category "Task map types" for detailed information.Î5 Number of connector maps int the connector map list.ÏwNumOfConnectorMapÐ# Pointer to the connector map list.ÑpConnectorMapListÒ
3888132684ÓIOCONFIGTASKMAPÔ$1e2d8176-ccc8-45ec-9578-1060ca08f642Õ
2962471661ÖIoMgrConfigGetConnector×pConnectorListØ$12573be7-5a8e-4ae9-8d45-6c29427b520eÙ
3097191027ÚIoMgrConfigGetFirstChildÛ$044f0bef-f59d-43ad-8496-90bb6703c2b5Ü	451793610ÝIoMgrConfigGetFirstConnectorÞ$2858dd16-f4fc-4483-bcdf-311c983114f4ß	797436920àIoMgrConfigGetNextChildá$e9fb4157-4aac-42be-ac94-2b7115a46f96â
2780622961ãIoMgrConfigGetNextConnectorä$9eb80208-afcd-40cc-b7ef-e6ba0e5e4845å
3349297925æIoMgrConfigGetParameterç$6d324e8a-97b5-4b18-a273-d5a249575d94è
3729716360é IoMgrConfigGetParameterValueByteê$7f0fa515-c756-4bdf-b369-2bc20d75cf4bë
1871208306ì!IoMgrConfigGetParameterValueDwordí$edf4b27c-1558-4b38-8740-7733f1cd6224î
1664861923ï#IoMgrConfigGetParameterValuePointerð$c7e307ad-2f7f-41c3-a984-0cf8acc87b55ñ
1378701427ò IoMgrConfigGetParameterValueWordó$534433e7-0f3d-4b97-9452-dcee4c3f5982ô
1801502966õIoMgrConfigResetDiagnosisö$883f4d8a-c225-480c-ab37-0adbd1349dfe÷
3771515593øIoMgrConfigSetDiagnosisù$a48fea34-3f67-4013-a0ba-98007fb1f0ffú
m4export_hideû
3966152356üEVTPARAM_CmpIoMgrý
2142005226þEVTPARAM_CMPIOMGRÿ$0c7ba0e4-3fb3-4e68-be6f-1f18acd66874€
1571261114IoMgrGetModuleDiagnosis‚$0e3b12d3-3da9-4300-b32d-a55b095483d1ƒ
3297191157„
IoMgrIdentify…$8f29ce56-8080-4f31-921c-c80d1e131a4b†¿ This function acquires the mutual-exclusion locks for the given operations
 for critical sections inside the I/O driver's implementation of IoDrvReadInputs(), IoDrvWriteOutputs(), and IoDrvStartBusCycle().
 The locks can be released with the function ``IoMgrLockLeave()``.
 While a lock is held, any other thread is blocked from acquiring the lock and waits until the lock is released.
 IMPLEMENTATION NOTE: The behavior of the ``dwLockScope`` parameter can't be implemented on all platforms.
 Platforms without synchronization functionality may not be able to implement this behavior.
 IoMgrEmbedded of the CODESYSControlEmbedded runtime system for example can only disable and enable all interrupts.
 :return: error code
    + ERR_OK: Locks were successfully acquired.
    + ERR_PARAMETER: The ``pbyIoDrv`` parameter is ``NULL`` (only implementations that use this parameter),
      or the ``dwLockScope`` parameter has none of the GVL LockScopes set (only implementations that use this parameter).
    + ERR_FAILED: No driver entry for pbyIoDrv found in device pool.‡	890733340ˆIoMgrLockEnter‰Z Handle to the driver instance which is returned by the function IoMgrRegisterInstance2().ŠX The operations for which to acquire locks. See GVL LockScopes for detailed information.‹dwLockScopeŒ$4fd687bb-454e-46c6-92d3-30d2728a3718Â This function releases the mutual-exclusion locks (that were acquired with the function ``IoMgrLockEnter()``) for the given operations.
 IMPLEMENTATION NOTE: The behavior of the ``dwLockScope`` parameter can't be implemented on all platforms.
 Platforms without synchronization functionality may not be able to implement this behavior.
 IoMgrEmbedded of the CODESYSControlEmbedded runtime system for example can only disable and enable all interrupts.
 :return: error code
    + ERR_OK: Locks were successfully released.
    + ERR_PARAMETER: The ``pbyIoDrv`` parameter is ``NULL`` (only implementations that use this parameter),
      or the ``dwLockScope`` parameter has none of the GVL LockScopes set (only implementations that use this parameter).
    + ERR_FAILED: No driver entry for pbyIoDrv found in device pool.Ž
1023158587IoMgrLockLeave\ The operations for which to release the locks. See GVL LockScopes for detailed information.‘$50cd89f4-1210-43ef-b6c6-2969fa64e786’
1003358786“IoMgrReadInputs”pTaskMap•$d5fc4c8b-d7aa-4c58-861a-b02328639e3c–
4078812334—IoMgrScanModules˜$86e554e2-e3be-4617-a91e-b1c3df71e91f™	166652967šIoMgrStartBusCycle›$4a65f552-4c1b-4aa4-92a4-4c8eb2dd5024œ× Start the bus cycle for a specific connector, and pass the type of this call as an additional option. This way, the driver knows in which conditions (see BusCycleType) was called, by calling IoMgrGetBusCycleType().
2327419416žIoMgrStartBusCycle2Ÿ$baa69047-4c1f-4c1a-b87c-8471ac7a7ad6 
2973243251¡IoMgrUpdateConfiguration¢$8e8c1b49-af35-45e8-8dd6-4183dc7c1266£
1154303272¤IoMgrUpdateConfiguration2¥$d75b572a-b27e-4240-94e8-0565f641933c¦	169153132§IoMgrUpdateMapping¨pTaskMapList©$f05cd498-57b1-4b93-bdc2-c8e263237f40ª
2002746541«IoMgrUpdateMapping2¬$f51df010-35a8-4d39-b7ab-b84c2159ac76­
2557345171®IoMgrWatchdogTrigger¯$adc50bde-6417-4daf-91a3-310b13750941°
3660854195±IoMgrWriteOutputs²$f3cda08a-24ef-4920-8b1f-737f86549f8b³
3548116447´IoMgrReadParameterµpData¶	dwBitSize·dwBitOffset¸$0f6cb342-4622-47eb-8029-2ed7ce38f7e4¹
2902783976ºIoMgrWriteParameter»$59947c7d-7697-4b40-a6f3-1458a495024c¼
2598087253½$ConfigGetParameterValueByte_Internal¾pbyValue¿ByteÀ$ad79290f-4fb0-4668-a246-1230e7f20a89Á	743185784Â%ConfigGetParameterValueDword_InternalÃpdwValueÄDWordÅ$1682af8a-160c-45a7-8955-5be9ff8acfb2Æ
1882665782Ç$ConfigGetParameterValueWord_InternalÈpwValueÉWordÊ$d13aa643-3f97-483d-bb6d-577d824c73e4Ë
3023225215Ìprivate_iomgr_memcpyÍpDstÎiSizeÏ$c3db5c9e-2306-4784-86d3-ddc840e503d2Ð
linkalwaysÑ
1647294876Ò__DataSegmentsÓnNumOfSegmentsÔ
pDataSegmentsÕ
__SEGMENTINFOÖ
__SegmentInfo×
4060142437Ø__DATASEGMENTSÙ$6d5ee79a-0165-410b-9a03-2dcb86d77084Ú
4207933064Û
1489859144ÜdisplaymodeÝhexÞdsKindOfß__DATASEGMENTFLAGSàuiAreaáudOffsetâudSizeãudHighestUsedAddressä	176517104å$86a3bd70-f6af-446c-a3ca-d70c9d74cefbæ	224398676ç
3195237607è__BasePropertyInfoépVarAdrê	930619704ë__BASEPROPERTYINFOì$31ba9dec-acd8-475d-b624-39b6068c7eafí	461629027î	236822733ï__PropertyInfoStructðpGetterñpSetterò	pInstanceó
4145388846ô__PROPERTYINFOSTRUCTõ$85b65d0b-a93f-4e02-80e4-fafd3f54abc3ö
1714484629÷
3751468166ø__POUInfoStructù	dwCRCCodeúdwCRCInterfaceûudiNameStringIndexüusiAreaCodeLocationýusiAreaFPPointerLocationþudiOffsetCodeLocationÿudiOffsetFPPointerLocation€	519335429__POUINFOSTRUCT‚$8467172f-0c66-4acf-9d6b-245b2445da14ƒ
2202995516„
2428029082…__FBInfoStruct†dwCRCVFTable‡udiAreaVFTableLocationˆudiOffsetVFTableLocation‰
1621815094Š__FBINFOSTRUCT‹$1964cd27-f960-4298-b539-cf555cb4552cŒ
2130618155	901311032Ž__MethodInfoStructudiParentPOUIndex
2699900021‘__METHODINFOSTRUCT’$d277c0d4-0a58-4c92-97d1-0453f8828707“
3731023454”
2494911014•__DUTInfoStruct–
2398341060—__DUTINFOSTRUCT˜$76a1e5d2-9eb5-4a1b-a8e7-baf1b7eb9716™
1327871788š
3489042165›__GVLInfoStructœ
1374809287__GVLINFOSTRUCTž$a40cb7c8-28fe-4494-89ac-d9ba39db98a8Ÿ
2456846774 	994902498¡AnyType¢pValue£diSize¤	TypeClass¥
TYPE_CLASS¦
3543456108§ANYTYPE¨$b60a5c90-aa6c-4c3f-8332-c02981c0bf59©	696726884ª
2125849342«__CodeLocationStruct¬udiCodeSize­
2823972544®__CODELOCATIONSTRUCT¯$bb81851c-8557-43fd-ad66-2f0071e45f53°	802123132±	147588528²__ImplicitReferenceTypesInit³$270c4366-521b-4273-856a-24cad42924c9´
2353654990µ__TaskSpecificInfo¶	TaskIndex·	pTaskInfo¸
2567373613¹__TASKSPECIFICINFOº$5f3af15b-046d-4359-9fb1-4011c841ebb0»
1278195045¼qualified_only½	406642837¾__CheckedInterfaceAssign¿InterfaceInputÀ
correctionÁ$09818148-288b-4e68-aaac-88d3699e851bÂ
4255647081Ã
__memcmp__iecÄptr1Åptr2Æ$0ac70c4a-9600-4218-ba11-7d8ad957fb05Ç
4118428513Èany32__to__stringÉ
diExponentÊdwMantËdiExp10ÌpstrÍdiAfterKommaÎudPowÏdwTODÐdwDateÑpszHelpÒ(Compiled, SuperGlobal, Typified, LocatedÓ$52f276ac-71ea-475d-be1d-c34d7442869eÔF new and better way to convert single precision float values to stringÕ	812339439Önew__real32__to__string× Area: 65535, Offset: 0x0 (0)ØindexÙpdwÚdwÛbSignÜdecexponentÝbinexponentÞbinmantissaßdecmantissaàstrMantissaRawástrMantissaâpstrMantissaãnLenä
bFirstCharånNewExponentænPointPositionçnIndexMantissaNewèbNanébInfêExponentëbNegExponentìnTensínOnesî__CONVERSION_CONSTANTSïFðAdrñPFòBoolóbContainsPointôCHAR_0õFLocal, ReplacedConstant, Constant, IsCompiled, RelativeStack, Typifiedö
CHAR_POINT÷
CHAR_MINUSøCHAR_Eù$a891eece-ca29-4db8-b9cf-c1a855c9feacú
4263303623ûany64__to__stringüdintHighýudintLowþ	udintHighÿLWord€ulDivulDig‚bFirstƒnDigits„nWidth…count†$3cce6ca9-0c61-42bf-9945-73fd93e91f59‡	748513653ˆreal64__to__string‰szŠ	pszSource‹
pszHelpSourceŒpszDestDIntŽnSigniExp10nExpSign‘bS’diE“liM”xNan•xInf–$2a265c59-789e-4c94-a95e-f5f70529f084—__GETINTERFACEPOINTER˜__GETINTERFACEREFERENCE™__MAINš__VFINIT›CONFDYNLICCHALLENGEœDEMOMODEEXPIREDDEMOMODESTARTEDžFB_EXITŸGENERATEEXCEPTION GETCODEMETERLICENSEVALUE¡GETDEMOLICENSE¢GETLICENSEVALUE£GETLICENSEVALUEBIT¤GETPURELICENSEVALUE¥GETUSERLICENSEVALUE¦LICENSEMISSING§LOGERRORMESSAGE¨READLICENSEFILE©REQDYNLICCHALLENGEªSTORELICENSE«UDINTVALUEOFLINE¬VALUEOFLINE­hide_all_locals®l This FB manages the access to license values.
 There is one global instance of it with the name ``g_olm``.¯
1762817067°OLM_OnlineLicenseManager±
FunctionBlock²_hFile³-Local, IsCompiled, RelativeInstance, Typified´
_udiTargetµ_udiType¶_udiCPU·_udiOS¸_abyFileContent¹gc_uiMaxFileSizeº_uiFileSize»
_xFileRead¼_uiStoredLicenses½_udiDynLicReqID¾_udiDynLicReqValue¿_udiDynLicChallengeÀ
_xDemoMessageÁ
_semaStoreÂ_adwLicensesStoredÃgc_uiMaxStoredLicÄ__VFTABLEPOINTERÅ=Local, IsCompiled, RelativeInstance, NoInit, Implicit, NoCopyÆ
3309119800ÇOLM_ONLINELICENSEMANAGERÈ
__Index__1É$85fe17fb-708c-43f1-921d-b15ce3e6d622Ê	726124912ËReadLicenseFileÌresÍuxiSizeÎ	udiTargetÏ
udiTargetMASKÐudiTypeÑudiCPUÒudiOSÓpsSerialÔpdiÕ
uiCheckSumÖabyGen×bØStringÙOnlineLicenseManagerÚstComponentÛstFileÜstrÝtiÞ$Compiled, Typified, Located, Privateß$245266f5-25c0-4347-ba16-cf8db3cb1448à83slicense, 3.5.14.0 (3s - smart software solutions gmbh)á÷ With this method a component that previously asked for a license and received a negative result can post an error log message in a unified way
 Hence this method should be called after GetUserLicenseValue has been called and returned no license.â
3647277004ãLicenseMissingä name of the componentåstrComponentæ$c917544e-997c-4a95-85b8-b296375d8bdbç
3970679331èUdintValueOfLineéstrIdê$482e9fa5-988d-470b-a26c-e7f543b44f5fë	699475816ìGetLicenseValueBitíudiLicenseIDîusiBitï
udiLicenseð$0dd60a5f-bcb6-4ca9-bbbe-47aee3a7178añ
2096955056òfb_initó$05fb8a48-e7b2-4a22-ad11-1fd89ee4b04eô
1640385473õGenerateExceptionö$3e4d0264-ac0c-4627-a2fa-6f413a9caafe÷
3646185970øLogErrorMessageù$35438eb1-a664-41a5-9c91-1c77ddde2b52úw With this method a component can propagade in a uniform way that its demo mode has expired and it has stopped to work.û
3922114547üDemoModeExpiredý$e0a0ee36-9b29-4376-92d8-210830590ceaþ
2895160340ÿ__GetInterfacePointer€	pRef	
3063148035‚	fb_exitƒ	$fce63f6e-52d8-4464-9446-53dd8cc9eff7„		167456217…	GetPureLicenseValue†	
xNotFromCache‡	
xFromCacheˆ	udi‰	udiCPUOSŠ	ui‹	udiWibuŒ	$23227458-e40f-430b-b25c-630ba433fec3	
4203605720Ž	StoreLicense	udiValue	$3c47975d-1574-4342-8c3b-38c7e032490c‘	† This method allows to ask for the license value of a component (specified by udiLicenseID)
 :return: Possible values:
   +-------------+------------------------------------------------------+
   | 0           | no valid license installed                           |
   +-------------+------------------------------------------------------+
   | 16#FFFFFFFF | demo mode (lasts for 30 min)                         |
   +-------------+------------------------------------------------------+
   | else        | license value; interpretation depends on component   |
   +-------------+------------------------------------------------------+’	
1784112674“	GetUserLicenseValue”	O ID of the component that asks for its license value (centrally assigned by 3S)•	$faf62368-1791-496f-9aac-1dcccaddbebb–	
1553897900—	ConfDynLicChallenge˜	udiNewLicenseValue™	udiChallengeš	udiLicenseValue›	$3c2f7c5c-8743-4910-b672-93d5c08a11dbœ	
4275231191	GetCodemeterLicenseValuež	udiProductCodeŸ	$2fd2d7ac-965c-4a78-9a9b-c721a84cea62 	
1869023576¡	GetDemoLicense¢	stHelp£	$3dea640c-ce74-46db-89a9-6a2e7e8a089c¤	‡ With this method a component can propagade in a uniform way that it is running in demo mode and will - after a certain time - stop.
 This method should be called after it is clear that the license will stay in demo mode, in particular the (possibly later / after initialization phase) confirmation of dynamic licenses should be taken into account.
 Therefore it is recommended for the OEM to confirm dynamic licenses *during the initialization* (after global init slot 40000) and *before the application* is started.¥	
3669514694¦	DemoModeStarted§	$c9961dd4-2fb3-4d0b-9b3f-67937056004c¨	
3864497688©	__GetInterfaceReferenceª	nInterfaceId«	4293952¬	GetLicenseValue­	param®	CMPEVENTMGR¯	CmpEventMgr°	
EVENTPARAM±	
EventParam²	
eventparam³	EVENTIDS´	CmpMgr_LicenseRequestµ	$d5b19f2e-90e0-4b05-a5e8-3068951f9d50¶	
1280744906·	
3890662013¸	ValueOfLine¹	pbyº	uiEndOfLine»	j¼	
usiBitOffs½	byOrig¾	byPerm¿	byBuffÀ	byOldÁ	
xEndOfLineÂ	$969097ae-9ac4-46e5-a05b-018cd3f16004Ã		584426206Ä	ReqDynLicChallengeÅ	udiTimeÆ	$477a8134-64d2-4992-ac2b-50ed5f5a8858Ç	
1774802008È	Alias, IsCompiled, TypifiedÉ	Alias, Compiled, TypifiedÊ	$1f187897-1eca-4745-9dd7-6e656076701fË	&systypes2 interfaces, 3.5.4.0 (system)Ì	
3827756189Í	$5de0d991-1359-4458-ba16-a7e779ed9ddcÎ		565296024Ï	8 EventID of the event. Contains the class and the event Ð	EventIdÑ	 Component ID of the provider. Ò	
CmpIdProviderÓ	0 Id of the parameter structure (see pParameter) Ô		usParamIdÕ	5 Version of the parameter structure (see pParameter) Ö		usVersion×	R Pointer to the event specific parameter, that is specified by Id (see usParamId) Ø	
3380528868Ù	$708ad4f5-2a48-4fd2-8d88-fb3b143a33a4Ú	cmpeventmgr, 3.5.14.0 (system)Û		154268403Ü	ulLicenseIDÝ	ulLicenseValueÞ	
2430688636ß	CMPMGR_LICENSEREQUESTà	$ec71f5d5-b2a8-42f3-8e75-3a56c8942752á	__OffsetI_TESTRESULTFORMATTERâ	FORMATã	
1989740091ä	I_TestResultFormatterå		Interfaceæ	45520129ç	Formatè	  The total amount of test suitesé	NumberOfTestSuitesê	5 The total amount of test cases (for all test suites)ë	NumberOfTestCasesì	? The total amount of test cases that had all ASSERTS successfulí	NumberOfSuccessfulTestCasesî	C The total amount of test cases that had at least one ASSERT failedï	NumberOfFailedTestCasesð	Busyñ	I_TESTRESULTFORMATTERò	$033e8873-ad7a-489b-8ba9-f0de8a344939ó	$fa75ee61-43fb-4767-8061-125a3a9e3424ô	cfunit, 1.1.0.1 (open source)õ	Compiled, Typifiedö	‚
	This function block reports the results from the tests using CmpLog functionality. 
	It sends the results into the DeviceLog
2677203639ø	FB_LogTestResultFormatterù	__INTERFACEPOINTER__380ú	… Although we can print a message no #1 prior to message no #2, the message #2 can still be displayed before
 message #1, most likely because of some delay. To workaround this, we add a small delay between each message.
 In CfUnit, this delay has been removed.û	USIntü	LastPrintStateý	
PrintStateþ	
3298891267ÿ	FB_LOGTESTRESULTFORMATTER€
$d14d6247-3ce3-459f-be22-6ee3520279ed
1190260893‚
	278100758ƒ
! The total number of test suites „
? The total number of test cases (for all test function blocks) …
@ The total number of test cases that had all ASSERTS successful †
D The total number of test cases that had at least one ASSERT failed ‡
	ErrorCodeˆ
$dba8c729-8b99-4be3-97cd-3a4fea4cd051‰
2457848138Š
	486230573‹
2121478464Œ
2899725525
I_TestResultFormatter__UnionŽ
1286751965
I_TESTRESULTFORMATTER__UNION
CLOSE‘
OPEN’
READ“
SAVE”
1695361983•
FB_FileControl–
ACCESS_MODE—
SYSFILE˜
SysFile™

AM_WRITE_PLUSš
FileAccessMode›
FileHandleœ
SYSTYPES
SysTypesž
2535989555Ÿ
FB_FILECONTROL 
$c9bec8fc-2de3-45f4-b839-e6c4276a6b5a¡
1889971345¢
2355446001£
3308839526¤
Read¥
 Call with ADR();¦
pString§
 Call with SIZEOF(); ¨
Size©
FileSizeª
RTS_IEC_SIZE«
$3984ae50-1cdb-4045-af99-0bb56917afb2¬
 Closes the current file­
4214760544®
Close¯
$519e9011-283c-40b1-afd4-31686c5b81fe°
2474451454±
\ Saves the contents of the buffer into a file
 Be sure to call Open() before calling Save()²
2206094130³
Save´
 Call with SIZEOF();µ
$c4146a99-50c6-4ce0-88ab-794dbfb1af62¶

 Opens a file·
2914156665¸
Open¹
p File name can contain an absolute or relative path to the file. Path entries must be separated with a Slash (/)º
filepath/output.xml»
FileName¼
T_MAXSTRING½
T_MaxString¾
AM_APPEND_PLUS¿
$1873bb2c-c6a3-4681-8948-02aa2bad0a9bÀ
	527503827Á
__GETBUFFERSIZEÂ
__GETLENGTHÃ
__SETAPPENDÄ
__SETLENGTHÅ
__SETPREPENDÆ
CLEARÇ
COPYÈ
CUTOFFÉ
FINDÊ
FINDBACKË
    This functionblock acts as an IO stream buffer for use with FB_XmlControl
	485198785Î
FB_StringBufferÏ
pStrBufÐ
udiBufSizeÑ
	udiLengthÒ
propertyÓ
 Appends a string to the bufferÕ
message_guidÖ
$ddd7c0b6-46f9-4fa9-946e-0da608268245×
AppendØ
 Read current BuffersizeÚ
$879a667c-416e-4879-91ff-6641233ded93Û
BufferSizeÜ
$80c3b0fb-2bdc-4829-89c6-017e171b31ebÝ
LengthÞ
  Prepends a string to the bufferß
$c4fdd2db-7736-4bc5-a06f-ba3a29618794à
Prependá
3379231380â
CutOffã
udiStartPosä
	udiCutLenå
XmlErroræ
E_XMLERRORç
iLoopè
pByteCuté
pByteBufferê
FB_STRINGBUFFERë
$8914e4f8-8b6c-48c3-ba1f-e0642038624aì
$fbccbed5-94ee-455b-a9d5-e8b750ed732eí
    Find a searchstring in the buffer and returns its position.
    It's possible to add a preffered startposition within buffer
4284749251ï
Findð

sSearchStringñ
udiLoopò
iSearchó
pBufferô
pSearchõ
$7e38490a-9555-451d-957e-fef284a567e3ö
1521609244÷
FindBackø
	udiSearchù
$7d08b204-2078-4fde-81eb-e04d71986196ú
 Sets the Buffer û
2991012577ü
 Set buffer adress (ADR ...)þ
pbyAdrÿ
 Set buffer size (SIZEOF ...)€udiSize$59092938-ca22-4896-8f54-1c854a0bd883‚
3016347390ƒ
1042272385„__getLength…$063f44b5-d97e-4feb-bc58-4bdd7430c0c3†
1396001821‡+ Clears the buffer and sets the length to 0ˆ	729685857‰ClearŠ$5f0bbce2-2600-4a2e-8c6f-4b957ad03395‹	897088394Œ
1210959122__setAppendŽpByteIn$2498d17a-6a8a-4bf1-a5ce-9c1a248a9710	758263332‘__getBufferSize’$c7ad50d6-c68e-4f97-8e99-a8d5c013ef7a“
1282047324”__setLength•$c516394c-e0bf-40e3-8a00-92e5ec5cc151–
1153089197—
3878785242˜__setPrepend™TempBufšGVL_PARAM_XMLCONTROL›GVL_Param_XmlControlœMaxFileSizepTempBufž$4ce6b49b-00bd-4bd1-9dcd-2e9ecfab167bŸ
1602047163 1
    Copies a string from the character buffer
1765133474¢Copy£udiStart¤udiEnd¥
udiCopyLen¦	pByteCopy§$b796dd60-63f5-4b75-acc5-8fa40e24be46¨CLEARBUFFER©CLOSETAGª
NEWCOMMENT«NEWPARAMETER¬NEWTAG­
NEWTAGDATA®
NEXTPARAMETER¯NEXTTAG°	SETBUFFER±
TOSTARTBUFFER²WRITEDOCUMENTHEADER³å
Organizes parsing and composing of XML data. Data can be treated as STRING or char array.
Filebuffersize is default 4096 bytes and can be set via Gvl_Param_XmlControl
Usage example:
1. Initiate
        XML : FB_XMLControl;
        Buffer: STRING(GVL_Param_XmlControl.udiMaxFileSize);
        Buffer: ARRAY [0..GVL_Param_XmlControl.udiMaxFileSize] OF BYTE;
    END_VAR
        XML.pBuffer: = ADR (buffer);
        XML.LenBuffer: = SIZEOF (buffer);
    Add your own preferred fileheader like so:
    XML: <?xml version="1.0" encoding="UTF-8"?>
        XML.WriteDocumentHeader( '<?xml version="1.0" encoding="UTF-8"?>');
2. Compose a tag with a parameters:
XML: <MyTag ParaName = "11" />
    XML.newTag(sTagName: = 'MyTag');
    XML.newPara(sName: = 'ParaName', sPara: = sValue);
    XML.CloseTag();
3. Add tag value:
XML: <MyTag> MyText </ MyTag>
    XML.newTag(sName := 'MyTag');
    XML.newTagData(sTagData :='MyText');
    XML.CloseTag();
4. Jump to the beginning of the XML data
XML.toStartBuffer();
5. Add a comment:
XML: <!-- MyComment -->
    XML.newComment(sTagName: = 'MyComment');
6. Returns the next tag from the current position in buffer
XML.NextTag();
7. Output the parameter of the tag
XML.NextPara(sPara: = LastValue);
Feedback: sPara returns the value found (string)
1390422006µ
FB_XmlControl¶Buffer·TagList¸sTags¹TagListSeekº	sTagsSeek»Tag¼sTag½xTagOpen¾iSelect¿iSelectStartÀ
iSelectEndÁiSelectStartParaÂiSelectEndParaÃiSelectTagCloseÄiSelectStartValueÅiSelectEndValueÆudiSearchPosÇTAG_OPENÉ7Local, Constant, IsCompiled, RelativeInstance, TypifiedÊ	TAG_CLOSEÌ/>Í
END_TAG_CLOSEÎ ÏSPACEÐEQUALSÒQUOTEÔ
BACK_SLASHÖ
FORWARD_SLASHØ<!-- ÙOPEN_COMMENTÚ -->Û
CLOSE_COMMENTÜ	ÝTABÞ
ßCR_LFà$4fdf30b6-5fe7-4452-ad0a-85e866e236d0ám
    Must be called after opening a new tag
    XML.NewParameter(Name: = 'ParaName', Value: = 'Value');
3441892040ãNewParameteräNameåValueæ
FB_XMLCONTROLç$60c10606-ff09-4f9b-a3dd-0b54d0f565c7è$f48b7de2-5c07-4763-a8be-3d8ab3c1f58cé	689164787êI
    Closes a Tag:
    XML: <MyTag />'
    Method: XML.CloseTag();
ë	127786746ìCloseTagí$eedd2aac-2425-4325-8128-bfe1e984f3f7îP
    Creates a new Tag:
    XML: <MyTag>
    XML.NewTag(Name: = 'MyTag');
3370213466ðNewTagñ$c44bdbda-725a-4943-a5cc-fa5ea9485541ò	201723272ó
4255942695ôNextTagõ$d039b781-905d-4b69-b5aa-bb0323e598deö
3829759141÷
NextParameterø	Parameterù$4394d0a2-f7bc-4847-9625-00022c462a79úª
    Add your own preffered fileheader like:
    XML: <?xml version="1.0" encoding="UTF-8"?>
    XML.WriteDocumentHeader('<?xml version="1.0" encoding="UTF-8"?>');
û	479115616üWriteDocumentHeaderýHeaderþ$14bf2549-9e7d-451f-8ab5-fe662eb30712ÿc
    Adds a comment;
    XML: <!-- MyComment -->
    XML.NewComment(Comment: = 'MyComment');
€	463402326
NewComment‚Commentƒ$0f41fa45-b92e-4e7e-b2b3-ecb5d5918326„
1027041055…$267105d4-b124-4c5c-a359-0434c4992afc†
1287549530‡
2997900841ˆ	734447611‰
NewTagDataŠData‹$e4679d3f-10eb-47fd-936c-97e3aaaa3768Œ	992604586	SetBufferŽiSizeOf$cbfaa6d5-eab9-48d0-a339-a8bf334e344e1 
    Clears the contents of the entire buffer
4206246355’ClearBuffer“$651b4460-232e-47e8-95ba-ecea1541fbb9”G
    Jump to the beginning of the XML data
    XML.ToStartBuffer();
3509573577–
ToStartBuffer—$cb065068-a6c8-48d5-8c1d-535a21365348˜
3131110348™*Compiled, OnlineChanged, Typified, LocatedšOPENSAVEANDCLOSE›[
	This function block reports the results from the tests into a xUnit compatible XmlFile
œ	937959765FB_XmlFileFormatterž* Default path for storing the output file Ÿ/XmlControl/output.xml 
szFilename¡-Input, IsCompiled, RelativeInstance, Typified¢ Default file access mode £stFileAccessMode¤xBufferInitialised¥File¦Xml§Minus¨
2341875396©FB_XMLFILEFORMATTERª$6597c0b3-0890-4d5d-8d3a-2d0d0b2355db««FB_Init is always available implicitly and it is used primarily for initialization.
The return value is not evaluated. For a specific influence, you can also declare the
methods explicitly and provide additional code there with the standard initialization
code. You can evaluate the return value.¬
2573451756­FB_Init®E TRUE: the retain variables are initialized (reset warm / reset cold)¯P TRUE: the instance will be copied to the copy code afterward (online change)   °$0f23c47b-7245-415e-b489-0ae429217263±
1500150298²
1821870671³OpenSaveAndClose´	msgFmtStrµ3Compiled, OnlineChanged, Typified, Located, Private¶$84256533-6eb5-465b-b1e5-db6f61e2e6c3·	506107888¸ò Responsible for formatting the xml file skeleton
  <testsuites>        => the aggregated result OF all xunit testfiles
   <testsuite>       => the output from a single TestSuite
     <properties>    => the defined properties at test execution
       <property>    => name/value pair for a single property
     </properties>
     <error></error> => optional information, in place of a test case - normally if the tests in the suite could not be found etc.
     <testcase>      => the results from executing a test method
       <system-out>  => data written to System.out during the test run
       <system-err>  => data written to System.err during the test run
       <skipped/>    => test was skipped
       <failure>     => test failed
       <error>       => test encountered an error
     </testcase>
   </testsuite>
 </testsuites>¹
3895483307ºSuiteCounter»TestSuiteInstancePath¼
TestSuiteName½!NumberOfFailedTestsInCurrentSuite¾NumberOfTestsInCurrentSuite¿TestCounterÀTestCaseNameÁAssertResultÂST_ASSERTRESULTÃST_AssertResultÄ$a5260c9c-7f2d-47c3-a7f2-dd0694d00aaaÅ	637835479ÆABORTRUNNINGTESTSUITETESTSÇRUNTESTSUITETESTSÈ]
    This function block is responsible for holding track of the tests and executing them.
É	228587896ÊFB_CfUnitRunnerËL Indication of whether all test suites have reported that they are finished ÌAllTestSuitesFinishedÍ3 Prints the results to Log to display the results. ÎLogTestResultFormatterÏTestResultPrinterÐG These variables (statistics) are occupied once all tests are complete ÑUIntÒNumberOfTestSuitesFinishedÓ= Indication of that the printing of test results is complete ÔDonePrintingTestResultsÕw If this flag is set, it means that some external event triggered the
       request to abort running the test suites ÖAbortRunningTestSuites×@ Aliazzz 15-12-2019  run once after all testsuites are finished ØXmlFileFormatterÙxUnitFileComposerÚBusyGeneratingXmlÛDoneBusyGeneratingXmlÜ	347145541ÝFB_CFUNITRUNNERÞ$857e16d6-a26c-468a-935e-aa7317c263b9ß	940483959à
2403676998á` This function sets a flag which makes the runner stop running the tests
   in the test suites â
4152996005ãAbortRunningTestSuiteTestsä$3fcbd569-749a-493c-a697-2c976fa6e96aå
3647924010æ	817751987ç
1236523078èRunTestSuiteTestséCounterêBusyPrintingë¦ We need to hold a temporary state of the statistics (failed, successful, total amount of test cases etc)
       as we don't consider the tests to be completely finished until all test suites have executed completely.
       The reason we want to do it this way is because a test suite can run over several cycles. Only once all tests
       are finished (which might take many cycles), do we gather correct statistics ìNumberOfTestSuitesFinished_TempíNumberOfTestCases_TempîNumberOfFailedTestCases_Tempï NumberOfSuccessfulTestCases_Tempð$d333e6c4-a1da-4b5b-91b3-4b4808e6c299ñ	161063444ò$fc07005b-6ac8-404d-b2cd-f68d25f42f8eó
2671643726ô$a429e267-db3b-4872-871e-1ca509b971e2õ	227646264öU_ExpectedOrActual÷boolExpectedOrActualøbitExpectedOrActualùbyteExpectedOrActualúdwordExpectedOrActualûlwordExpectedOrActualüstringExpectedOrActualýudintExpectedOrActualþuintExpectedOrActualÿusintExpectedOrActual€
sintExpectedOrActual
intExpectedOrActual‚
wordExpectedOrActualƒ
dintExpectedOrActual„
lintExpectedOrActual…
ulintExpectedOrActual†
realExpectedOrActual‡
lrealExpectedOrActualˆ
wstringExpectedOrActual‰
timeExpectedOrActualŠ
ltimeExpectedOrActual‹
dateExpectedOrActualŒ
dateandtimeExpectedOrActual
timeofdayExpectedOrActualŽ
25436326
U_EXPECTEDORACTUAL
$539c30a7-a560-469c-8422-aaf8c09f45d9‘
9Structure, NonVirtual, Union, Compiled, Typified, Located’
2825047456“
Expected”
Actual•
Message–
TestInstancePath—
1612349127˜
$63e20a3e-c451-4aff-a3c2-cc9b3a584290™

external_nameš
	Task_Info›
  Task information out of the task configuration
 Task configuration menbers which are used with |IecTaskCreate| are marked with [c], status members are marked with [s].
 Note for SIL2: This information is already inside of the data area, so we don't need to tag it as safe anywhere.œ
61652668
Task_Info2ž
! [c] Version of the structure (2)Ÿ
	dwVersion 
  [c] Name of the task, mandatory¡
pszName¢
% [c] IEC priority of the task (0..31)£
	nPriority¤
9 [c] Kind of task. See corresponding category |TaskType|.¥
KindOfTask¦
$ [c] Is TRUE, if watchdog is enabled§
	bWatchdog¨
C [c] Is TRUE, if profiling is enabled (not used, FALSE recommended)©
bProfilingª
E [c] Function pointer to the event check routine, see |IecTaskCreate|«
dwEventFunctionPointer¬
7 [c] Name of the event, if it is an external event task­
pszExternalEvent®
F [c] Function pointer to the task code, mandatory, see |IecTaskCreate|¯
dwTaskEntryFunctionPointer°
 [c] Watchdog sensitivity±
dwWatchdogSensitivity²
 [c] Interval in microseconds³
dwInterval´
" [c] Watchdog time in microsecondsµ
dwWatchdogTime¶
5 [s] Cycle time in microseconds (last execution time)·
dwCycleTime¸
' [s] Average cycle time in microseconds¹
dwAverageCycleTimeº
' [s] Maximum cycle time in microseconds»
dwMaxCycleTime¼
' [s] Minumum cycle time in microseconds½
dwMinCycleTime¾
 [s] Jitter in microseconds¿
iJitterÀ
 [s] Minimal jitterÁ
iJitterMinÂ
 [s] Maximal jitterÃ
iJitterMaxÄ
 [s] Cycle counterÅ
dwCycleCountÆ
( [s] Task state. See category TaskState.Ç
iStateÈ
3 [s] Number jitter statistical distribution entriesÉ
wNumOfJitterDistributionsÊ
, [s] Statistical jitter distribution entriesË
pJitterDistributionÌ
JITTER_DISTRIBUTIONÍ
Jitter_DistributionÎ
 [s] Timeslicing enabledÏ
bTimeSlicingÐ
byDummyÑ
- [s] Cycle counter for execution of user codeÒ
dwIECCycleCountÓ
2750948561Ô
TASK_INFO2Õ
$a1e9fbd6-93bf-46b3-bfe6-3b3118b8971aÖ
cmpiectask, 3.5.14.0 (system)×
) reads the taskinfo from the current taskØ
	380229896Ù
GetCurTaskInfoÚ
pCurTaskÛ
CMPIECTASKÜ
CmpIecTaskÝ
pCurTaskInfoÞ
CurTaskInfoß
.Output, IsCompiled, RelativeInstance, Typifiedà
4105761433á
GETCURTASKINFOâ
$21adb24c-373e-4435-8059-bba210563e99ã
2413748294ä
1915908239å
4214002233æ
2906446323ç
GETNAMEè
ISFAILEDé
ISFINISHEDê
	SETFAILEDë
SETFINISHEDì
SETNAMEí
?
    This function block holds all data that defines a test.
î
	929400243ï
FB_Testð
TestNameñ
C Indication of whether this test has had at least one failed assertò
TestIsFailedó
TestIsFinishedô
1117055996õ
IsFinishedö
FB_TEST÷
$813a9067-b864-4739-9c14-830160e0eabcø
$a51e9086-33ec-4162-acad-93a76961e893ù
2617315923ú
2860593324û
4294720336ü
2009680975ý
	686902952þ
SetNameÿ
$4c12f6eb-bbe4-4872-ac89-4411e2e81414€
1394032034	SetFailed‚$b840b41b-4045-4fd9-b97d-0bf226c46fb3ƒ	340246040„IsFailed…$e42409e3-251f-4133-8b14-3630785983d6†	486247262‡
2121735863ˆGetName‰$94757f0e-9979-49d0-ad9f-e35c823175d4Š
2325423616‹SetFinishedŒ$e1245d1c-be22-4d60-bc91-fe0262827234Á Detects a rising edge of a boolean signal
 .. code-block:: codesys
    (* Example declaration *)
    RTRIGInst : R_TRIG ;
    (* Example in ST *)
    RTRIGInst(CLK := VarBOOL1);
    VarBOOL2 := RTRIGInst.Q;
 .. cds:ranges::
     :CLK: [TRUE,FALSE]
     :~CLK_OLD: [TRUE,FALSE]
     :Q: [TRUE,FALSE]
Ž	754564685R_TRIG Boolean signal to be checked‘CLK’ ``TRUE``: Rising edge detected“Q”M•
3552750443–$752f4be3-bcd1-4b9f-8c29-de66d869ade4—
2057466445˜
2279655128™	725723096š
2849467804›standard, 3.5.14.0 (system)œ
1583981908ST_AssertResultInstancesž* Amount of instances of the "AssertResult"ŸDetectionCount D Amount of instance of the "AssertResult" in this specific PLC-cycle¡DetectionCountThisCycle¢93536004£ST_ASSERTRESULTINSTANCES¤$018c91ab-7038-42ef-b6e4-5007ea06204f¥ADDASSERTRESULT¦3COPYDETECTIONCOUNTANDRESETDETECTIONCOUNTINTHISCYCLE§CREATEASSERTRESULTINSTANCE¨GETDETECTIONCOUNT©GETDETECTIONCOUNTTHISCYCLEª$INCREASEDETECTIONCOUNTTHISCYCLEBYONE«REPORTRESULT¬
    This function block is responsible for keeping track of which asserts that have been made. The reason we need to
    keep track of these is because if the user does the same assert twice (because of running a test suite over several
    PLC-cycles) we want to know it so we don't print several times (if the assert fails).
    An instance of an assert is keyed/identified with the following parameters as key:
    - Value of expected
    - Value of actual
    - Message (string)
    - Test instance path (string)
2083454144®FB_AssertResultStatic¯> The total number of instances of each of the "AssertResults" °
AssertResults±GVL_PARAM_CFUNIT²GVL_Param_CfUnit³MaxNumberOfAsserts´$ The total number of unique asserts µTotalAsserts¶. Function block to get the current task cycle ·GetCurrentTaskIndex¸AssertResultInstances¹ The last PLC cycle count º
CycleCount» Only run first cycle ¼FirstCycleExecuted½
1249903082¾FB_ASSERTRESULTSTATIC¿$9683a633-879e-475e-a97f-0742f9ecfd04À	692841312Á
1389387818Â
2372914603Ã3CopyDetectionCountAndResetDetectionCountInThisCycleÄIteratorCounterÅ$a8cc95e0-191e-40c8-a6bc-8d58d9231bfaÆ
hasanytypeÇ	324331413È$IncreaseDetectionCountThisCycleByOneÉuselocationÊExpected.pValueËExpected__pValueÌ2Local, IsCompiled, RelativeStack, NoInit, TypifiedÍExpected.TypeClassÎExpected__typeClassÏExpected.diSizeÐExpected__sizeOfÑanytypeclassÒANYÓ
Actual.pValueÔActual__pValueÕActual.TypeClassÖActual__typeClass×
Actual.diSizeØActual__sizeOfÙ$b4a5f59b-b092-46e9-a592-20ecca6c06c9Ú
1534235042Û
1576367466Ü	875312424ÝCreateAssertResultInstanceÞ$0e48fb23-038c-40ed-90ff-ee834be2653dß
4040583768àGetDetectionCountThisCycleá$9f89a925-0785-44b9-83cb-36f87d5bc546â
1863076118ãGetDetectionCountä$75f01348-487a-4441-a0e3-f41feb6c1781å¸
    This method is called in every assert and returns whether this particular assert has already been called.
    The reason one would like to know whether this assert has already been reported or not is to not report it several
    times to any logging service. Because a test-suite can consist of several tests, and certain tests can require the
    test to run over several cycles it means that certain asserts could be called several times and thus we need to
    keep track of which asserts we've already reported. The user of the framework should not need to care for any of
    this and he/she should be able to call the asserts in any way they FIND suitable.
    To know what assert this is we need to check for the total combination of:
    - Test message
    - Test instance path
    - Expected value
    - Actual value
    Theoretically we can have a situation where a test has three different asserts, each and one with the same test
    message/test instance path/actual value/expected value but called within the same or different cycles. In order for
    us to handle all situations we need a simple algorithm that works according to:
    - Keep track of how many instances the combination of test message/test instance path/expected value/actual value
      we have. So for example, if we have called Assert(Exp := 5, Act := 5, 'Hello there', 'PRG.InstanceTestSuite.Test')
      two times in one cycle, we have two instances of that combination. This is done according to:
    - Iterate all existing reports.
      - If we have a new PLC-cycle, set the current detection-count to zero.
      - If new report does not match in any of the above fields, create it (together with current PLC-cycle).
        Also store the information that we have one instance of this combination and +1 on the detection-count.
      - If new report matches in all of the above, +1 in the detection-count. If this detection-count is larger than
        the stored detection-count for this combination, create a new report and add +1 to the storage of
        the detection-count.
2144796275çReportResultèAlreadyReportedé
LocationIndexêDataTypesNotEqualsëDataSizeNotEqualsìDataContentNotEqualsíCurrentCycleCountîDetectionCountTempïFoundOneðAdditionalIdenticalAssertñ$675e4dfe-54f1-4dc0-a6fd-481bc63973c5ò
3239381763óAddAssertResultô$22afb213-95b2-4bfd-ada6-e7cf020d9c1dõ
3525697315öST_AssertArrayResult÷% Size in bytes of the expecteds-arrayø
ExpectedsSizeù% The data type of the expecteds-arrayúExpectedsTypeClassû	TYPECLASSü# Size in bytes of the actuals-arrayýActualsSizeþ# The data type of the actuals-arrayÿActualsTypeClass€
2307666740ST_ASSERTARRAYRESULT‚$a97be192-7eab-4934-bf94-f1c1e71902f6ƒ
1707683493„ST_AssertArrayResultInstances…AssertArrayResult†/ Amount of instances of the "AssertArrayResult"‡I Amount of instance of the "AssertArrayResult" in this specific PLC-cycleˆ
2861258322‰ST_ASSERTARRAYRESULTINSTANCESŠ$32c33d09-e3c1-4756-8559-edad569b31f5‹ADDASSERTARRAYRESULTŒ…
    This function block is responsible for keeping track of which array-asserts that have been made.
    The reason we need to keep track of these is because if the user does the same assert twice
    (because of running a test suite over several PLC-cycles) we want to know it so we don't print several times
    (if the assert fails). An instance of an array-assert is keyed/identified with the following parameters as key:
    - Array-size (in bytes) of the expecteds
    - Datatype of the expecteds
    - Array-size (in bytes) of the actuals
    - Datatype of the actuals
    - Message (string)
    - Test instance path (string)
	285741936ŽFB_AssertArrayResultStaticC The total amount of instances of each of the "AssertArrayResults" AssertArrayResults‘$ The total amount of unique asserts ’TotalArrayAsserts“AssertArrayResultInstances”
3879263428•FB_ASSERTARRAYRESULTSTATIC–$b20832df-51fb-47f1-8077-6f683834a939—
4126057407˜
2905686437™
4129591207š$a7fb8083-d80a-4b1b-8816-a954d21029f6›
4220474593œ
2080793920
2799846253ž$f9a4ac71-1920-4a28-b414-2ab956ba44baŸ
2199397778 $a67f455d-9f04-4265-a3ae-ec73cfedab30¡
1425005247¢$da11a180-ba29-4114-ba12-6fb4c00ea850£¸
    This method is called in every assert and returns whether this particular assert has already been called.
    The reason one would like to know whether this assert has already been reported or not is to not report it several
    times to any logging service. Because a test-suite can consist of several tests, and certain tests can require the
    test to run over several cycles it means that certain asserts could be called several times and thus we need to
    keep track of which asserts we've already reported. The user of the framework should not need to care for any of
    this and he/she should be able to call the asserts in any way they FIND suitable.
    To know what assert this is we need to check for the total combination of:
    - Test message
    - Test instance path
    - Expecteds size (in bytes)
    - Actuals size (in bytes)
    - Expecteds datatype
    - Actuals datatype
    Theoretically we can have a situation where a test has three different asserts, each and one with the same test
    message/test instance path/actuals size&datatype/expecteds size&datatype but called within the same or different
    cycles. In order for us to handle all situations we need a simple algorithm that works according to:
    - Keep track of how many instances the combination of test message/test instance path/expecteds size&datatype/
      actuals size&datatype we have. So for example, if we have called
      Assert(Exp := [5,4,3], Act := [5,4,3], 'Hello there', 'PRG.InstanceTestSuite.Test')
      two times in one cycle, we have two instances of that combination. This is done according to:
    - Iterate all existing reports.
      - If we have a new PLC-cycle, set the current detection-count to zero.
      - If new report does not match in any of the above fields, create it (together with current PLC-cycle).
        Also store the information that we have one instance of this combination and +1 on the detection-count.
      - If new report matches in all of the above, +1 in the detection-count. If this detection-count is larger than
        the stored detection-count for this combination, create a new report and add +1 to the storage of
        the detection-count.
¤	334711663¥$9acdaaa9-94c5-4747-8072-7b7279f5cd81¦
2602585500§$909102be-4739-47e1-abb5-2b1a0d9602c4¨
1114810495©AddAssertArrayResultª$60d61a50-adb0-4323-b700-3d64bcdd7ef0« __OffsetI_ASSERTMESSAGEFORMATTER¬LOGASSERTFAILURE­	355528328®I_AssertMessageFormatter¯
4291550583°LogAssertFailure±I_ASSERTMESSAGEFORMATTER²$35efab01-6ac8-46a5-a5e1-adb4f1f5f9b2³$71246e7e-3534-44b1-a788-c1f37427a096´¾
	This function block is responsible for printing the results of the assertions using the built-in
	LOGSTR functionality provided in this library. This sends the result to the DeviceLog.
µ	856032233¶FB_LogAssertMessageFormatter·__INTERFACEPOINTER__635¸
3082900915¹FB_LOGASSERTMESSAGEFORMATTERº$54911d7d-b4a4-43a8-a981-a2fc14a13f71»
1702637047¼
3821178837½	498102394¾
2988799914¿,AdjustAssertFailureMessageToMax252CharLengthÀ/FB_ADJUSTASSERTFAILUREMESSAGETOMAX252CHARLENGTHÁ/FB_AdjustAssertFailureMessageToMax252CharLengthÂTestInstancePathCleanedÃTestInstancePathFinalÄReturnValueÅTestInstancePathProcessedÆMessageProcessedÇ$48cbc6b0-5380-44b8-a045-57b6ad9f189dÈ
4086985287É	694510288ÊI_AssertMessageFormatter__UnionË
1092183428ÌI_ASSERTMESSAGEFORMATTER__UNIONÍADDTESTÎADDTESTNAMETOINSTANCEPATHÏALLTESTSFINISHEDÐASSERTARRAY2DEQUALS_LREALÑASSERTARRAY2DEQUALS_REALÒASSERTARRAY3DEQUALS_LREALÓASSERTARRAY3DEQUALS_REALÔASSERTARRAYEQUALS_BOOLÕASSERTARRAYEQUALS_BYTEÖASSERTARRAYEQUALS_DINT×ASSERTARRAYEQUALS_DWORDØASSERTARRAYEQUALS_INTÙASSERTARRAYEQUALS_LINTÚASSERTARRAYEQUALS_LREALÛASSERTARRAYEQUALS_LWORDÜASSERTARRAYEQUALS_REALÝASSERTARRAYEQUALS_SINTÞASSERTARRAYEQUALS_UDINTßASSERTARRAYEQUALS_UINTàASSERTARRAYEQUALS_ULINTáASSERTARRAYEQUALS_USINTâASSERTARRAYEQUALS_WORDãASSERTEQUALSäASSERTEQUALS_BOOLåASSERTEQUALS_BYTEæASSERTEQUALS_DATEçASSERTEQUALS_DATE_AND_TIMEèASSERTEQUALS_DINTéASSERTEQUALS_DWORDêASSERTEQUALS_INTëASSERTEQUALS_LINTìASSERTEQUALS_LREALíASSERTEQUALS_LTIMEîASSERTEQUALS_LWORDïASSERTEQUALS_REALðASSERTEQUALS_SINTñASSERTEQUALS_STRINGòASSERTEQUALS_TIMEóASSERTEQUALS_TIME_OF_DAYôASSERTEQUALS_UDINTõASSERTEQUALS_UINTöASSERTEQUALS_ULINT÷ASSERTEQUALS_USINTøASSERTEQUALS_WORDùASSERTFALSEú
ASSERTTRUEûFINDTESTSUITEINSTANCEPATHüGETINSTANCEPATHýGETNUMBEROFFAILEDTESTSþGETNUMBEROFSUCCESSFULTESTSÿGETNUMBEROFTESTS€
SETTESTFAILEDSETTESTFINISHED‚call_after_initƒ
reflection„Á 
 This function block is responsible for holding the internal state of the test suite. 
 Every test suite can have one or more tests, and every test can do one or more asserts. 
 It’s also responsible for providing all the assert-methods for asserting different data types. 
 Only failed assertions are recorded.
1004086117†FB_TestSuite‡
instance-pathˆnoinit‰InstancePathŠ5Local, IsCompiled, RelativeInstance, NoInit, Typified‹Ê We need to have access to specific information of the current task that this test suite
       is executed in. This is for instance necessary when we need to know whether a test is
       defined already. The definition of a test that is defined already is that we call on it
       with the same name twice in the same cycle Œ
NumberOfTestsTestsŽ MaxNumberOfTestsForEachTestSuite Rising trigger of whether we have already notified the user of that the test name pointed to by the current
       position is a duplicate TestDuplicateNameTrigger‘‰ Last cycle count index for a specific test. Used to detect whether this test has already been defined in the
       current test suite ’TestCycleCountIndex“” Prints the failed asserts to DeviceLog to display the assert message. This assert formatter can be replaced with something else than the DeviceLog ”LogAssertMessageFormatter•AssertMessageFormatter–æ | Asserts that two REALs are equal TO within a positive delta. IF they are NOT, an assertion error is created.
 Parameters:
     | Expected – REAL expected value
     | Actual – REAL actual value
     | Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : REAL := 1234.5;
         b : REAL := 1234.4;
     END_VAR
     TEST('Test_REAL_Equals');
     AssertEquals_REAL(Expected := a,
                        Actual := b,
                        Delta := 0.1,
                        Message := 'Values differ');
     TEST_FINISHED();
     Failing example:
         a : REAL := 1234.5;
         b : REAL := 1234.4;
     END_VAR
     TEST('Test_REAL_Differ');
     AssertEquals_REAL(Expected := a,
                         Actual := b,
                          Delta := 0.05,
                        Message := 'Values differ');
     TEST_FINISHED();
3935931743˜AssertArrayEquals_REAL™  REAL array with expected valuesšvariable_length_array›
Dimensionsœ1	Expectedsž REAL array with actual valuesŸActuals ¤ The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell¡Delta¢0 The identifying message for the assertion error£Equals¤
SizeEquals¥Index¦ExpectedString§ActualString¨SizeOfExpecteds©
SizeOfActualsªExpectedsIndex«ActualsIndex¬implicit_input­Expecteds__Array__Info®__ARRAY__DIM__INFO¯Actuals__Array__Info°FB_TESTSUITE±$c42ec40e-0859-4258-a3b2-11b258dab324²$f80c23f2-119d-406b-ae11-06d1991bf64d³ð | Asserts that two BOOLs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – BOOL expected value
     | Actual – BOOL actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : BOOL := TRUE;
         b : BOOL := TRUE;
     END_VAR
     TEST('Test_BOOL_Equals');
     AssertEquals_BOOL(Expected := a,
                       Actual := b,
                       Message := 'Bools differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : BOOL := TRUE;
         b : BOOL := FALSE;
     END_VAR
     TEST('Test_BOOL_Differ');
     AssertEquals_BOOL(Expected := a,
                       Actual := b,
                       Message := 'Bools differ');
     TEST_FINISHED();´
1285440394µAssertEquals_BOOL¶ BOOL expected value· BOOL actual value¸$0c41b405-ea35-4450-93cc-7c3349bdf754¹È
 | Asserts that two WORD arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – WORD array with expected values
     | Actuals – WORD array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[1..5] OF WORD := [16#AAAA, 16#BBBB, 16#CCCC, 16#DDDD, 16#EEEE];
         b : ARRAY[1..5] OF WORD := [16#AAAA, 16#BBBB, 16#CCCC, 16#DDDD, 16#EEEE];
     END_VAR
     TEST('Test_WORD_Array_Equals');
     AssertArrayEquals_WORD(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[1..5] OF WORD := [16#0000, 16#3333, 16#5555, 16#7777, 16#BBBB];
         b : ARRAY[1..7] OF WORD := [16#0000, 16#3333, 16#5555, 16#7777, 16#BBBB, 16#FFFF, 16#1122];
     END_VAR
     TEST('Test_WORD_Array_DifferInSize');
     AssertArrayEquals_WORD(Expecteds := a,
                                   Actuals := b,
                                   Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[1..7] OF WORD := [16#2323, 16#876A, 16#4CD4, 16#F3DC, 16#BBBB, 16#FFFF, 16#1133];
         b : ARRAY[1..7] OF WORD := [16#2323, 16#876A, 16#4CD4, 16#F3DC, 16#BBBB, 16#FFFF, 16#1122];
     END_VAR
     TEST('Test_WORD_Array_DifferInContent');
     AssertArrayEquals_WORD(Expecteds := a,
                                   Actuals := b,
                                   Message := 'Arrays differ');
     TEST_FINISHED();º
2226873030»AssertArrayEquals_WORD¼  WORD array with expected values½ WORD array with actual values¾ExpectedDWordString¿ActualDWordStringÀ$16eada18-ce2b-459d-a8d9-277e84766935ÁÄ | Asserts that two STRINGs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – STRING expected value
     | Actual – STRING actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : STRING := 'Hello there';
         b : STRING := 'Hello there';
     END_VAR
     TEST('Test_STRING_Equals');
     AssertEquals_STRING(Expected := a,
                         Actual := b,
                         Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : STRING := 'This is a string';
         b : STRING := 'This is another string';
     END_VAR
     TEST('Test_STRING_Differ');
     AssertEquals_STRING(Expected := a,
                         Actual := b,
                         Message := 'Values differ');
     TEST_FINISHED(); Â	696659643ÃAssertEquals_STRINGÄ STRING expected valueÅ STRING actual valueÆ$cad7fed3-5db3-4371-9240-856c3c740489ǖ | Asserts that two ULINTs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – ULINT expected value
     | Actual – ULINT actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ULINT := 45683838383;
         b : ULINT := 45683838383;
     END_VAR
     TEST('Test_ULINT_Equals');
     AssertEquals_ULINT(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : ULINT := 10000;
         b : ULINT := 53685437234;
     END_VAR
     TEST('Test_ULINT_Differ');
     AssertEquals_ULINT(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();È
1081954271ÉAssertEquals_ULINTÊ ULINT expected valueË ULINT actual valueÌ$6f1e7566-33c3-4f9c-b92d-7828feb26211ÍÑ | Asserts that two USINT arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – USINT array with expected values
     | Actuals – USINT array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[0..100] OF USINT := [42, 100(33)];
         b : ARRAY[0..100] OF USINT := [42, 100(33)];
     END_VAR
     TEST('Test_USINT_Array_Equals');
     AssertArrayEquals_USINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[0..100] OF USINT := [101(42)];
         b : ARRAY[0..70] OF USINT := [71(42)];
     END_VAR
     TEST('Test_USINT_Array_DifferInSize');
     AssertArrayEquals_USINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[0..10] OF USINT := [0,1,2,3,6(4),5];
         b : ARRAY[0..10] OF USINT := [0,1,2,3,6(5),6];
     END_VAR
     TEST('Test_USINT_Array_DifferInContent');
     AssertArrayEquals_USINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();Î	887618224ÏAssertArrayEquals_USINTÐ! USINT array with expected valuesÑ USINT array with actual valuesÒ$b3215098-2f26-48bf-a7e4-ee1a0803a968Ó
3215331727ÔGetNumberOfSuccessfulTestsÕ$635213dc-96ca-4be6-9c0d-c0454c29d34d֎ | Asserts that two BYTE arrays are equal. If they are not, an assertion error is created.
 Parameters:
    | Expecteds – BYTE array with expected values
    | Actuals – BYTE array with actual values
    | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[1..3] OF BYTE := [16#FD, 16#34, 16#9E];
         b : ARRAY[1..3] OF BYTE := [16#FD, 16#34, 16#9E];
     END_VAR
     TEST('Test_BYTE_Array_Equals');
     AssertArrayEquals_BYTE(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();								  
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[1..2] OF BYTE := [16#AB, 16#CD];
         b : ARRAY[1..5] OF BYTE := [16#AB, 16#CD, 16#EF, 16#01, 16#23];
     END_VAR
     TEST('Test_BYTE_Array_DiffersInSize');
     AssertArrayEquals_BYTE(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();								  
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[0..3] OF BYTE := [16#AB, 16#AA, 16#BB, 16#89];
         b : ARRAY[0..3] OF BYTE := [16#AB, 16#CD, 16#BB, 16#89];
     END_VAR
     TEST('Test_BYTE_Array_DiffersInContent');
     AssertArrayEquals_BYTE(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();×	843385749ØAssertArrayEquals_BYTEÙ  BYTE array with expected valuesÚ BYTE array with actual valuesÛExpectedByteStringÜActualByteStringÝ$375a5287-a3e9-4833-ac17-bab8f3f0fdc9Þ
2859496217ß
SetTestFailedà$3adab5a4-e3e4-4dd7-8096-bf6ad3b874d9áý | Asserts that two WORDs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – WORD expected value
     | Actual – WORD actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : WORD := 16#ABCD;
         b : WORD := 16#ABCD;
     END_VAR
     TEST('Test_WORD_Equals');
     AssertEquals_WORD(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : WORD := 16#EF01;
         b : WORD := 16#2345;
     END_VAR
     TEST('Test_WORD_Differ');
     AssertEquals_WORD(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();â
1389270635ãAssertEquals_WORDä WORD expected valueå WORD actual valueæ$85132cdb-0553-4070-be9a-976fcddd873dçÞ | Asserts that two ULINT arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – ULINT array with expected values
     | Actuals – ULINT array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[0..3] OF ULINT := [0, 18_446_744_073_709_551_615, 9_400_000_000_000, 3_213_000_444_000];
         b : ARRAY[0..3] OF ULINT := [0, 18_446_744_073_709_551_615, 9_400_000_000_000, 3_213_000_444_000];
     END_VAR
     TEST('Test_ULINT_Array_Equals');
     AssertArrayEquals_ULINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[0..1] OF ULINT := [0, 9_400_000_000_000];
         b : ARRAY[0..0] OF ULINT := [0];
     END_VAR
     TEST('Test_ULINT_Array_DifferInSize');
     AssertArrayEquals_ULINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[0..1] OF ULINT := [3_213_000_444_000, 9_400_000_000_000];
         b : ARRAY[0..1] OF ULINT := [3_213_000_444_000, 18_446_744_073_709_551_615];
     END_VAR
     TEST('Test_ULINT_Array_DifferInContent');
     AssertArrayEquals_ULINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();è
3439473642éAssertArrayEquals_ULINTê! ULINT array with expected valuesë ULINT array with actual valuesì$916529a0-57b3-4947-a5b8-e7b9ff17f35fí	405680698îŠ | Asserts that two LINTs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – LINT expected value
     | Actual – LINT actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : LINT := -123456789;
         b : LINT := -123456789;
     END_VAR
     TEST('Test_LINT_Equals');
     AssertEquals_LINT(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : LINT := -451416345;
         b : LINT := 589532453;
     END_VAR
     TEST('Test_LINT_Differ');
     AssertEquals_LINT(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();ï9335976ðAssertEquals_LINTñ LINT expected valueò LINT actual valueó$9dc34017-cbc7-41a9-83a2-941f39cc7271ô˜ | Asserts that two objects (of any type) are equal. If they are not, an assertion error is created.
 | For REAL and LREAL it’s recommended to use the AssertEquals_REAL or AssertEquals_LREAL respectively 
 | as these give the possibility to specify a delta between the expected and actual value.
 Parameters:
     | Expected – Expected value
     | Actual – Actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : INT := 5;
         b : INT := 5;
     END_VAR
     TEST('Test_ANY_Equals');
     AssertEquals(Expected := a,
                  Actual := b,
                  Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : INT := 5;
         b : UINT := 5;
     END_VAR
     TEST('Test_ANY_Differ_DataType');
     AssertEquals(Expected := a,
                  Actual := b,
                  Message := 'Values differ');
     TEST_FINISHED();õ
2024349150öAssertEquals÷ Expected valueø$ The value to check against expectedùCountúExpectedDataStringûActualDataStringü
AnyComparatorýFB_ANYCOMPARATORþFB_AnyComparatorÿboolExpected€
boolActualbyteExpected‚
byteActualƒdateExpected„
dateActual…dateAndTimeExpected†dateAndTimeActual‡dintExpectedˆ
dintActual‰
dwordExpectedŠdwordActual‹intExpectedŒ	intActuallintExpectedŽ
lintActual
lrealExpectedlrealActual‘
ltimeExpected’ltimeActual“
lwordExpected”lwordActual•realExpected–
realActual—sintExpected˜
sintActual™stringExpectedšstringActual›timeExpectedœ
timeActualtimeOfDayExpectedžtimeOfDayActualŸ
udintExpected udintActual¡uintExpected¢
uintActual£
ulintExpected¤ulintActual¥
usintExpected¦usintActual§wordExpected¨
wordActual©$092092ee-35b6-45cc-a1ac-e428e5d747baªª | Asserts that two TIME_OF_DAYs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – TIME_OF_DAY expected value
     | Actual – TIME_OF_DAY actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492;
         b : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492;
     END_VAR
     TEST('Test_TIME_OF_DAY_Equals');
     AssertEquals_TIME_OF_DAY(Expected := a,
                              Actual := b,
                              Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : TIME_OF_DAY := TIME_OF_DAY#15:36:30.123;
         b : TIME_OF_DAY := TIME_OF_DAY#06:21:11.492;
     END_VAR
     TEST('Test_TIME_OF_DAY_Differ');
     AssertEquals_TIME_OF_DAY(Expected := a,
                              Actual := b,
                              Message := 'Values differ');
     TEST_FINISHED();«	262122215¬AssertEquals_TIME_OF_DAY­ TIME_OF_DAY expected value® TIME_OF_DAY actual value¯$d892dd01-3d32-4eb1-9f95-980dff16616c°ô | Asserts that two USINTs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – USINT expected value
     | Actual – USINT actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : USINT := 5;
         b : USINT := 5;
     END_VAR
     TEST('Test_USINT_Equals');
     AssertEquals_USINT(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : USINT := 3;
         b : USINT := 7;
     END_VAR
     TEST('Test_USINT_Differ');
     AssertEquals_USINT(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();±
2368473972²AssertEquals_USINT³ USINT expected value´ USINT actual valueµ$7f12117a-f0ab-475b-ba47-c8a5c801a9ac¶² | Asserts that two DINT arrays are equal. If they are not, an assertion error is created.
 Parameters:
    | Expecteds – DINT array with expected values
    | Actuals – DINT array with actual values
    | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[2..7] OF DINT := [64, 98, 2147483647, -2147483648, 0, -63987538];
         b : ARRAY[2..7] OF DINT := [64, 98, 2147483647, -2147483648, 0, -63987538];
     END_VAR
     TEST('Test_DINT_Array_Equals');
     AssertArrayEquals_DINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();								  
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[3..4] OF DINT := [-11, 2147483647];
         b : ARRAY[4..6] OF DINT := [-11, 2147483647, 0];
     END_VAR
     TEST('Test_DINT_Array_DifferInSize');
     AssertArrayEquals_DINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();								  
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[3..5] OF DINT := [-4746, -2147483645, 0];
         b : ARRAY[3..5] OF DINT := [-4746, -2147483641, 0];
     END_VAR
     TEST('Test_DINT_Array_DifferInContent');
     AssertArrayEquals_DINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();·	448306293¸AssertArrayEquals_DINT¹  DINT array with expected valuesº DINT array with actual values»$4f0d9b20-0c78-467d-a52a-6badbd5d37cc¼ï | Asserts that two SINTs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – SINT expected value
     | Actual – SINT actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : SINT := -128;
         b : SINT := -128;
     END_VAR
     TEST('Test_SINT_Equals');
     AssertEquals_SINT(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : SINT := 127;
         b : SINT := -30;
     END_VAR
     TEST('Test_SINT_Differ');
     AssertEquals_SINT(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();½
2975568326¾AssertEquals_SINT¿ SINT expected valueÀ SINT actual valueÁ$10052dfe-cfcb-4a5a-aa97-151e272ce217Â
3094313462ÃGetNumberOfTestsÄ$6f67c6d5-c29e-4577-8651-51bd6db3ab63ŋ	 | Asserts that two LREALs are equal to within a positive delta. If they are not, an assertion error is created.
 Parameters:
     | Expected – LREAL expected value
     | Actual – LREAL actual value
     | Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : LREAL := 1234567.89;
         b : LREAL := 1234567.76;
     END_VAR
     TEST('Test_LREAL_Equals');
     AssertEquals_LREAL(Expected := a,
                        Actual := b,
                        Delta := 0.2,
                        Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : LREAL := 1234567.89;
         b : LREAL := 1234567.76;
     END_VAR
     TEST('Test_LREAL_Differ');
     AssertEquals_LREAL(Expected := a,
                        Actual := b,
                        Delta := 0.1,
                        Message := 'Values differ');
     TEST_FINISHED();  Æ
3690545254ÇAssertEquals_LREALÈ LREAL expected valueÉ LREAL actual valueÊv The maximum delta between the absolute value of expected and actual for which both numbers are still considered equalË$205d107c-0a2d-44f7-b68a-eb06720b6a6bÌÍ Parameters:
    | Expecteds – REAL 2d array with expected values
    | Actuals – REAL 2d array with actual values
	  | Delta - REAL The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell
    | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
	  <insert positive testexample here>
    TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
	  <insert failing testexample1 here>
    TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
	  <insert failing testexample2 here>
    TEST_FINISHED();Í
4044968825ÎAssertArray2dEquals_REALÏ# REAL 2d array with expected valuesÐ2Ñ! REAL 2d array with actual valuesÒ& Index when looping through DimensionsÓDimensionIndexÔ2 Lower bounds of Expecteds array in each dimensionÕLowerBoundExpectedsÖ2 Upper bounds of Expecteds array in each dimension×UpperBoundExpectedsØ0 Lower bounds of Actuals array in each dimensionÙLowerBoundActualsÚ0 Upper bounds of Actuals array in each dimensionÛUpperBoundActualsÜ* Size of Expecteds array in each dimensionÝ( Size of Actuals array in each dimensionÞ? Current Array index offsets from Lower Bound in each dimensionßOffsetàD Array of current Expected array indexes when looping through arraysáExpectedArrayIndexâB Array of current Actual array indexes when looping through arraysãActualArrayIndexä Single expected valueå Single actual valueæ$dc3b5666-7b5a-49ae-9837-cbb9bedd911aç	598611264èAddTestNameToInstancePathéCompleteTestInstancePathê$abecfe2f-b0e2-4118-a1c6-bb248556b776ë= Searches for the instance path of the calling function blockì
1936542576íFindTestSuiteInstancePathî$e69a4510-81a2-4d65-94e4-52c06ac49944ïÐ Parameters:
    | Expecteds – LREAL 3d array with expected values
    | Actuals – LREAL 3d array with actual values
	  | Delta - LREAL The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell
    | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
	  <insert positive testexample here>
    TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
	  <insert failing testexample1 here>
    TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
	  <insert failing testexample2 here>
    TEST_FINISHED();ð
3893451479ñAssertArray3dEquals_LREALò$ LREAL 3d array with expected valuesó3ô" LREAL 3d array with actual valuesõ$251da4d5-4df8-4eed-b154-a479323eb0d5öé | Asserts that two INTs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – INT expected value
     | Actual – INT actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : INT := -12345;
         b : INT := -12345;
     END_VAR
     TEST('Test_INT_Equals');
     AssertEquals_INT(Expected := a,
                      Actual := b,
                      Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : INT := -32000;
         b : INT := 15423;
     END_VAR
     TEST('Test_INT_Differ');
     AssertEquals_INT(Expected := a,
                      Actual := b,
                      Message := 'Values differ');
     TEST_FINISHED();÷	292426684øAssertEquals_INTù INT expected valueú INT actual valueû$7c61106e-9bcd-4577-a949-ab96d8862e41ü¤ | Asserts that two DATEs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – DATE expected value
     | Actual – DATE actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : DATE := DATE#1996-05-06;
         b : DATE := DATE#1996-05-06;
     END_VAR
     TEST('Test_DATE_Equals');
     AssertEquals_DATE(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : DATE := DATE#1996-05-06;
         b : DATE := DATE#2019-01-20;
     END_VAR
     TEST('Test_DATE_Differ');
     AssertEquals_DATE(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();						 ý	246969074þAssertEquals_DATEÿ DATE expected value€ DATE actual value$1645ab79-f969-41aa-a170-f589a5757e7f‚œ | Asserts that two DWORDs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – DWORD expected value
     | Actual – DWORD actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : DWORD := 16#7890ABCD;
         b : DWORD := 16#7890ABCD;
     END_VAR
     TEST('Test_DWORD_Equals');
     AssertEquals_DWORD(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : DWORD := 16#12345678;
         b : DWORD := 16#90ABCDEF;
     END_VAR
     TEST('Test_DWORD_Differ');
     AssertEquals_DWORD(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();ƒ
1252105877„AssertEquals_DWORD… DWORD expected value† DWORD actual value‡$3ce6ba77-0ab2-46fc-a7c9-978b376b93beˆé | Asserts that two REALs are equal to within a positive delta. If they are not, an assertion error is created.
 Parameters:
     | Expected – REAL expected value
     | Actual – REAL actual value
     | Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : REAL := 1234.5;
         b : REAL := 1234.4;
     END_VAR
     TEST('Test_REAL_Equals');
     AssertEquals_REAL(Expected := a,
                       Actual := b,
                       Delta := 0.1,
                       Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : REAL := 1234.5;
         b : REAL := 1234.4;
     END_VAR
     TEST('Test_REAL_Differ');
     AssertEquals_REAL(Expected := a,
                       Actual := b,
                       Delta := 0.05,
                       Message := 'Values differ');
     TEST_FINISHED();‰
4233966449ŠAssertEquals_REAL‹ REAL expected valueŒ REAL actual value$fba4feaf-27d0-4f8b-9014-3895f7bb9cc7Ž | Asserts that two UDINTs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – UDINT expected value
     | Actual – UDINT actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : UDINT := 21845123;
         b : UDINT := 21845123;
     END_VAR
     TEST('Test_UDINT_Equals');
     AssertEquals_UDINT(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : UDINT := 34124214;
         b : UDINT := 52343244;
     END_VAR
     TEST('Test_UDINT_Differ');
     AssertEquals_UDINT(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();
3714610654AssertEquals_UDINT‘ UDINT expected value’ UDINT actual value“$9c21e8db-62d7-4e5c-8e00-cd508f4f5abc”þ | Asserts that two LTIMEs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – LTIME expected value
     | Actual – LTIME actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : LTIME := LTIME#213503D23H34M33S709MS551US615NS;
         b : LTIME := LTIME#213503D23H34M33S709MS551US615NS;
     END_VAR
     TEST('Test_LTIME_Equals');
     AssertEquals_LTIME(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : LTIME := LTIME#213503D23H34M33S709MS551US615NS;
         b : LTIME := LTIME#1000D15H23M12S34MS2US44NS;
     END_VAR
     TEST('Test_LTIME_Differ');
     AssertEquals_LTIME(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();•
3081469954–AssertEquals_LTIME— LTIME expected value˜ LTIME actual value™$05ea6378-c553-40a9-9e6b-8f3736f63098š· | Asserts that two SINT arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – SINT array with expected values
     | Actuals – SINT array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[0..3] OF SINT := [-128, 127, -34, 62];
         b : ARRAY[0..3] OF SINT := [-128, 127, -34, 62];
     END_VAR
     TEST('Test_SINT_Array_Equals');
     AssertArrayEquals_SINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[0..0] OF SINT := [-128];
         b : ARRAY[0..1] OF SINT := [-128, 127];
     END_VAR
     TEST('Test_SINT_Array_DifferInSize');
     AssertArrayEquals_SINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();								  
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[0..0] OF SINT := [-128];
         b : ARRAY[0..0] OF SINT := [127];
     END_VAR
     TEST('Test_SINT_Array_DifferInContent');
     AssertArrayEquals_SINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();›	167706794œAssertArrayEquals_SINT  SINT array with expected valuesž SINT array with actual valuesŸ$133c577e-0641-4157-b42b-46dbf29f788e   | Asserts that two TIMEs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – TIME expected value
     | Actual – TIME actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : TIME := T#11H34M13S244MS;
         b : TIME := T#11H34M13S244MS;
     END_VAR
     TEST('Test_TIME_Equals');
     AssertEquals_TIME(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : TIME := T#12H34M15S10MS;
         b : TIME := T#11H34M13S244MS;
     END_VAR
     TEST('Test_TIME_Differ');
     AssertEquals_TIME(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();¡
3910873930¢AssertEquals_TIME£ TIME expected value¤ TIME actual value¥$717a0cdd-16a7-4f45-90f3-f5700dba9369¦ì | Asserts that two DATE_AND_TIMEs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – DATE_AND_TIME expected value
     | Actual – DATE_AND_TIME actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : DATE_AND_TIME := DATE_AND_TIME#2019-01-20-13:54:30;
         b : DATE_AND_TIME := DATE_AND_TIME#2019-01-20-13:54:30;
     END_VAR
     TEST('Test_DATE_AND_TIME_Equals');
     AssertEquals_DATE_AND_TIME(Expected := a,
                                Actual := b,
                                Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : DATE_AND_TIME := DATE_AND_TIME#1996-05-06-15:36:30;
         b : DATE_AND_TIME := DATE_AND_TIME#1972-03-29-00:00:00;
     END_VAR
     TEST('Test_DATE_AND_TIME_Differ');
     AssertEquals_DATE_AND_TIME(Expected := a,
                                Actual := b,
                                Message := 'Values differ');
     TEST_FINISHED();§
1401989022¨AssertEquals_DATE_AND_TIME© DATE_AND_TIME expected valueª DATE_AND_TIME actual value«$42befc01-2199-49e2-b7ef-cf909b8890f9¬Í Parameters:
    | Expecteds – REAL 3d array with expected values
    | Actuals – REAL 3d array with actual values
	  | Delta - REAL The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell
    | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
	  <insert positive testexample here>
    TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
	  <insert failing testexample1 here>
    TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
	  <insert failing testexample2 here>
    TEST_FINISHED();­
1606741492®AssertArray3dEquals_REAL¯# REAL 3d array with expected values°! REAL 3d array with actual values±$0dc8fccf-4b9a-4206-8d9f-212f576edb04²
4262076380³FB_init´H if TRUE, the retain variables are initialized (warm start / cold start)µO if TRUE, the instance afterwards gets moved into the copy code (online change)¶$9273f5af-0583-448b-bab6-3359f03f9b91·˜ | Asserts that two DINTs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – BYTE expected value
     | Actual – BYTE actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : DINT := -80000;
         b : DINT := -80000;
     END_VAR
     TEST('Test_DINT_Equals');
     AssertEquals_DINT(Expected := a,
                              Actual := b,
                              Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : DINT := -55555;
         b : DINT := 70000;
     END_VAR
     TEST('Test_DINT_Differ');
     AssertEquals_DINT(Expected := a,
                              Actual := b,
                              Message := 'Values differ');
     TEST_FINISHED();   ¸
1997820164¹AssertEquals_DINTº DINT expected value» DINT actual value¼$b7177b75-64df-4021-85c6-c366f61f5f89½ä | Asserts that two UDINT arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – UDINT array with expected values
     | Actuals – UDINT array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[1..3] OF UDINT := [0, 4294967295, 5000];
         b : ARRAY[1..3] OF UDINT := [0, 4294967295, 5000];
     END_VAR
     TEST('Test_UDINT_Array_Equals');
     AssertArrayEquals_UDINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[-5..-4] OF UDINT := [4294967295, 0];
         b : ARRAY[0..2] OF UDINT := [4294967295, 0, 5000];
     END_VAR
     TEST('Test_UDINT_Array_DifferInSize');
     AssertArrayEquals_UDINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[-5..-4] OF UDINT := [4294967295, 5];
         b : ARRAY[0..1] OF UDINT := [4294967295, 4];
     END_VAR
     TEST('Test_UDINT_Array_DifferInContent');
     AssertArrayEquals_UDINT(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();¾	523934130¿AssertArrayEquals_UDINTÀ! UDINT array with expected valuesÁ UDINT array with actual valuesÂ$5f690331-57e2-4ea1-b1d7-ab65b52dc848Ô | Asserts that two INT arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – INT array with expected values
     | Actuals – INT array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[-5..1] OF INT := [64, 98, -32768, 32767, 5478, -378, 42];
         b : ARRAY[1..7] OF INT := [64, 98, -32768, 32767, 5478, -378, 42];
     END_VAR
     TEST('Test_INT_Array_Equals');
     AssertArrayEquals_INT(Expecteds := a,
                           Actuals := b,
                           Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[-4..3] OF INT := [64, 98, -32768, 32767, 5478, -378, 42, 6234];
         b : ARRAY[1..5] OF INT := [64, 98, -32768, 32767, 5478];
     END_VAR
     TEST('Test_INT_Array_DifferInSize');
     AssertArrayEquals_INT(Expecteds := a,
                           Actuals := b,
                           Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[-8..-6] OF INT := [42, -23, -32768];
         b : ARRAY[1..3] OF INT := [42, 24, -32768];
     END_VAR
     TEST('Test_INT_Array_DifferInContent');
     AssertArrayEquals_INT(Expecteds := a,
                           Actuals := b,
                           Message := 'Arrays differ');
     TEST_FINISHED();Ä	528458294ÅAssertArrayEquals_INTÆ INT array with expected valuesÇ INT array with actual valuesÈ$d54cf111-a7e7-4f51-bdf4-9853e055f62dɇ | Asserts that a condition is false. If it is not, an assertion error is created.
 Parameters:
     | Condition – Condition to be checked
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : INT := -33;
         b : INT := -44;
     END_VAR
     TEST('AssertThatINTsAreNotEqual');
     AssertFalse(Condition := (a = b),
                 Message := 'INTs are equal');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : INT := -33;
         b : INT := -44;
     END_VAR
     TEST('AssertThatINTsAreEqual');
     AssertFalse(Condition := (a <> b),
                 Message := 'INTs are equal');
     TEST_FINISHED();  Ê
1993015657ËAssertFalseÌ Condition to be checkedÍ	ConditionÎ$022665a8-9003-4aaa-8ef4-bd39fe196883Ï	614213211ÐGetNumberOfFailedTestsÑFailedTestsCountÒ$12e4522b-e67f-439a-af1d-8713231888aaÓÈ
 | Asserts that two LINT arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – LINT array with expected values
     | Actuals – LINT array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[-1..0] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808];
         b : ARRAY[4..5] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808];
     END_VAR
     TEST('Test_LINT_Array_Equals');
     AssertArrayEquals_LINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[-1..1] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808, 55];
         b : ARRAY[4..5] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808];
     END_VAR
     TEST('Test_LINT_Array_DifferInSize');
     AssertArrayEquals_LINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[-1..1] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_853_775_808, 55];
         b : ARRAY[4..6] OF LINT := [9_223_372_036_854_775_807, -9_223_372_036_854_775_808, 55];
     END_VAR
     TEST('Test_LINT_Array_DifferInContent');
     AssertArrayEquals_LINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();Ô
2145025305ÕAssertArrayEquals_LINTÖ  LINT array with expected values× LINT array with actual valuesØ$d7e53e6b-caed-4867-9ef5-3ccb7ae16bf8Ùí | Asserts that two LWORD arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – LWORD array with expected values
     | Actuals – LWORD array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210];
         b : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210];
     END_VAR
     TEST('Test_LWORD_Array_Equals');
     AssertArrayEquals_LWORD(Expecteds := a,
                                    Actuals := b,
                                    Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[1..1] OF LWORD := [16#EDCBA09876543210];
         b : ARRAY[1..2] OF LWORD := [16#01234567890ABCDE, 16#EDCBA09876543210];
     END_VAR
     TEST('Test_LWORD_Array_DifferInSize');
     AssertArrayEquals_LWORD(Expecteds := a,
                                    Actuals := b,
                                    Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[1..1] OF LWORD := [16#EDCBA09876543210];
         b : ARRAY[1..1] OF LWORD := [16#01234567890ABCDE];
     END_VAR
     TEST('Test_LWORD_Array_DifferInContent');
     AssertArrayEquals_LWORD(Expecteds := a,
                                    Actuals := b,
                                    Message := 'Arrays differ');
     TEST_FINISHED();
2393999758ÛAssertArrayEquals_LWORDÜ! LWORD array with expected valuesÝ LWORD array with actual valuesÞ$7bc0c786-fccc-46e3-b38f-2013c44bfcb0ß÷ | Asserts that two UINTs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – UINT expected value
     | Actual – UINT actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : UINT := 65535;
         b : UINT := 65535;
     END_VAR
     TEST('Test_UINT_Equals');
     AssertEquals_UINT(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : UINT := 64322;
         b : UINT := 32312;
     END_VAR
     TEST('Test_UINT_Differ');
     AssertEquals_UINT(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();  à	455476556áAssertEquals_UINTâ UINT expected valueã UINT actual valueä$86b960b9-ebc0-46af-91ed-94a423f501dcå¼ | Asserts that two LWORDs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – LWORD expected value
     | Actual – LWORD actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : LWORD := 16#0123456789ABCDEF;
         b : LWORD := 16#0123456789ABCDEF;
     END_VAR
     TEST('Test_LWORD_Equals');
     AssertEquals_LWORD(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : LWORD := 16#0123656789ABCBEC;
         b : LWORD := 16#0123256789ABCAEE;
     END_VAR
     TEST('Test_LWORD_Differ');
     AssertEquals_LWORD(Expected := a,
                        Actual := b,
                        Message := 'Values differ');
     TEST_FINISHED();æ
2981194089çAssertEquals_LWORDè LWORD expected valueé LWORD actual valueê$08b090fb-911b-49fa-a51a-7f5edfd3dd2cëÐ Parameters:
    | Expecteds – LREAL 2d array with expected values
    | Actuals – LREAL 2d array with actual values
	  | Delta - LREAL The maximum delta between the value of expected and actual for which both numbers are still considered equal, proportional to the Expected value in that array cell
    | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
	  <insert positive testexample here>
    TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
	  <insert failing testexample1 here>
    TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
	  <insert failing testexample2 here>
    TEST_FINISHED();ì
3118050793íAssertArray2dEquals_LREALî$ LREAL 2d array with expected valuesï" LREAL 2d array with actual valuesð$964c2fec-9de7-47ae-bee4-23c559ae4a3fñ	355422951òß
Asserts that two BOOL arrays are equal. If they are not, an assertion error is created.
Parameters:
* Expecteds – BOOL array with expected values
* Actuals – BOOL array with actual values
* Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
		a : ARRAY[1..5] OF BOOL := [TRUE, FALSE, TRUE, FALSE, TRUE];
		b : ARRAY[1..5] OF BOOL := [TRUE, FALSE, TRUE, FALSE, TRUE];
	END_VAR
	TEST('Test_BOOL_Array_Equals');
	AssertArrayEquals_BOOL(Expecteds := a,
						  Actuals := b,
						  Message := 'Arrays differ');
	TEST_FINISHED();
Failing example 1:
.. code-block:: codesys
		a : ARRAY[1..6] OF BOOL := [TRUE, TRUE, TRUE, TRUE, TRUE, TRUE];
		b : ARRAY[1..4] OF BOOL := [TRUE, TRUE, TRUE, TRUE];
	END_VAR
	TEST('Test_BYTE_Array_DiffersInSize');
	AssertArrayEquals_BOOL(Expecteds := a,
						Actuals := b,
						Message := 'Arrays differ');
	TEST_FINISHED();
Failing example 2:
.. code-block:: codesys
		a : ARRAY[0..5] OF BOOL := [TRUE, TRUE, FALSE, TRUE, FALSE, TRUE];
		b : ARRAY[0..5] OF BOOL := [TRUE, TRUE, TRUE, TRUE, FALSE, FALSE];
	END_VAR
	TEST('Test_BYTE_Array_DiffersInContent');
	AssertArrayEquals_BOOL(Expecteds := a,
                          Actuals := b,
                          Message := 'Arrays differ');
	TEST_FINISHED();
2327915240ôAssertArrayEquals_BOOLõ  BOOL array with expected valuesö BOOL array with actual values÷$3d4059ab-c241-4859-9a9f-090cab6db606ø‘ 
Asserts that a condition is true. If it is not, an assertion error is created.
Parameters:
	| Condition – Condition to be checked
	| Message – The identifying message for the assertion error
Positive example:
.. code-block:: codesys
         a : WORD := 16#ABCD;
         b : WORD := 16#0123;
     END_VAR
     TEST('AssertThatWORDsAreNotEqual');
     AssertTrue(Condition := (a <> b),
                Message := 'WORDs are equal');
     TEST_FINISHED();
Failing example:
.. code-block:: codesys
         a : WORD := 16#ABCD;
         b : WORD := 16#0123;
     END_VAR
     TEST('AssertThatWORDsAreEqual');
     AssertTrue(Condition := (a = b),
                Message := 'WORDs are not equal');
     TEST_FINISHED();
1043909239ú
AssertTrueû$c415013c-c271-42ba-83ad-6c2c653d8f2eü
1475975773ýAddTestþErrorMessageÿFunctionCallResult€TestWithThisNameAlreadyExistsLowerCasedTestName‚TrimmedTestNameƒ$d383011f-6bea-4b05-9018-ea4782ad2837„
2609692221…ƒ
 | Asserts that two DWORD arrays are equal. If they are not, an assertion error is created.
 Parameters:
    | Expecteds – DWORD array with expected values
    | Actuals – DWORD array with actual values
    | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[2..3] OF DWORD := [16#6789ABCD, 16#EF012345];
         b : ARRAY[1..2] OF DWORD := [16#6789ABCD, 16#EF012345];
     END_VAR
     TEST('Test_DWORD_Array_Equals');
     AssertArrayEquals_DWORD(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();								   
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EF012345, 16#67890ABC, 16#DDDDDDDD];
         b : ARRAY[-3..-2] OF DWORD := [16#6789ABCD, 16#EF012345];
     END_VAR
     TEST('Test_DWORD_Array_DifferInSize');
     AssertArrayEquals_DWORD(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
 	   TEST_FINISHED();								   
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EFAA2346, 16#ABABABAB, 16#EEEEEEEE];
         b : ARRAY[-2..1] OF DWORD := [16#6789ABCD, 16#EF012345, 16#ABABABAB, 16#EEEEEEEE];
     END_VAR
     TEST('Test_DWORD_Array_DifferInContent');
     AssertArrayEquals_DWORD(Expecteds := a,
                             Actuals := b,
                             Message := 'Arrays differ');
     TEST_FINISHED();†
2193117219‡AssertArrayEquals_DWORDˆ! DWORD array with expected values‰ DWORD array with actual valuesŠ$eec9d02d-95a1-4885-9906-ad4b2d0f4cab‹
4117816331Κ | Asserts that two BYTEs are equal. If they are not, an assertion error is created.
 Parameters:
     | Expected – BYTE expected value
     | Actual – BYTE actual value
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : BYTE := 16#CD;
         b : BYTE := 16#CD;
     END_VAR
     TEST('Test_BYTE_Equals');
     AssertEquals_BYTE(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();
 Failing example:
 .. code-block:: codesys
         a : BYTE := 16#AB;
         b : BYTE := 16#CD;
     END_VAR
     TEST('Test_BYTE_Differ');
     AssertEquals_BYTE(Expected := a,
                       Actual := b,
                       Message := 'Values differ');
     TEST_FINISHED();	268346097ŽAssertEquals_BYTE BYTE expected value BYTE actual value‘$c039f3f1-9c41-4f5e-93a3-393ce160979a’
1805835891“AllTestsFinished”$2b211901-49a8-4e51-90e1-4b1e298f9e0c•
2084092420–GetInstancePath—$178fa338-5ed3-417b-8f4d-e9f120ace4b9˜— Marks the test as finished in this testsuite.
   Returns TRUE if test was found, and FALSE if a test with this name was not found in this testsuite
3967847859šSetTestFinished›$1ec94335-80d7-46d3-a0f0-345f8eda2ea4œÓ | Asserts that two UINT arrays are equal. If they are not, an assertion error is created.
 Parameters:
     | Expecteds – UINT array with expected values
     | Actuals – UINT array with actual values
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : ARRAY[0..4] OF UINT := [0, 65535, 2000, 34123, 59];
         b : ARRAY[0..4] OF UINT := [0, 65535, 2000, 34123, 59];
     END_VAR
     TEST('Test_UINT_Array_Equals');
     AssertArrayEquals_UINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 1:
 .. code-block:: codesys
         a : ARRAY[0..2] OF UINT := [0, 4, 8];
         b : ARRAY[0..3] OF UINT := [0, 4, 8, 12];
     END_VAR
     TEST('Test_UINT_Array_DifferInSize');
     AssertArrayEquals_UINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();
 Failing example 2:
 .. code-block:: codesys
         a : ARRAY[0..3] OF UINT := [0, 4, 8, 99];
         b : ARRAY[0..3] OF UINT := [0, 4, 8, 12];
     END_VAR
     TEST('Test_UINT_Array_DifferInContent');
     AssertArrayEquals_UINT(Expecteds := a,
                            Actuals := b,
                            Message := 'Arrays differ');
     TEST_FINISHED();
1542196384žAssertArrayEquals_UINTŸ  UINT array with expected values  UINT array with actual values¡$358571ac-0a0d-4e71-8097-c7943f718fce¢ƒ	 | Asserts that two LREALs are equal TO within a positive delta. IF they are NOT, an assertion error is created.
 Parameters:
     | Expected – LREAL expected value
     | Actual – LREAL actual value
     | Delta – The maximum delta between the absolute value of expected and actual for which both numbers are still considered equal
     | Message – The identifying message for the assertion error
 Positive example:
 .. code-block:: codesys
         a : LREAL := 1234567.89;
         b : LREAL := 1234567.76;
     END_VAR
     TEST('Test_LREAL_Equals');
     AssertEquals_LREAL(Expected := a,
                        Actual := b,
                        Delta := 0.2,
                        Message := 'Values differ');
     TEST_FINISHED();
     Failing example:
         a : LREAL := 1234567.89;
         b : LREAL := 1234567.76;
     END_VAR
     TEST('Test_LREAL_Differ');
     AssertEquals_LREAL(Expected := a,
                          Actual := b,
                           Delta := 0.1,
                         Message := 'Values differ');
     TEST_FINISHED();
3785330774¤AssertArrayEquals_LREAL¥! LREAL array with expected values¦ LREAL array with actual values§$fbc23ff0-cdf6-43f2-82cd-e6f3a7903664¨ Jitter distribution©
3779252147ª Maximal range«	wRangeMax¬ Jitters events negative­wCountJitterNeg® Jitter event positive¯wCountJitterPos°
1489059357±$f914311f-5c52-4cd5-b2c8-3263a1508247²Ë
    This function block is responsible for making sure that the asserted test instance path and test message are not
    loo long. The total printed message can not be more than 252 characters long.
3001289633´ Test instance pathµMsgFmtString¶
 Test message·	StringArg¸MsgFmtStringProcessed¹StringArgProcessedºMsgFmtStringTemp»...TestName too long¼TestNameTooLong½...TestMsg too long¾TestMsgTooLong¿X This is actually 253, but if StrArg-argument is used (which it is in TcUnit) it is 252.À'MSG_FMT_STRING_MAX_AMOUNT_OF_CHARACTERSÁILocal, ReplacedConstant, Constant, IsCompiled, RelativeInstance, TypifiedÂ	228984903Ã$d7648cea-fb9f-427f-b157-93784e5b7cabÄ
3505840675Å	197406720Æ
2734844869Ç
3297551346È
2662650258ÉdiLowerÊdiUpperË
3465986364Ì$c2d24aa9-2fc9-4f89-80ac-14d9f558122aÍ	319472823ÎË
    This FB compares two instances of any object type and returns whether they
    are the same type, size and value or not. This is necessary for two reasons:
    1. So that we can know exactly what differs between the two input parameters
    2. It's not possible to do a comparison (= or <>) between two instances of ANY.
Ï	797308994ÐAnyValueOne.pValueÑAnyValueOne__pValueÒAnyValueOne.TypeClassÓAnyValueOne__typeClassÔAnyValueOne.diSizeÕAnyValueOne__sizeOfÖAnyValueOne×AnyValueTwo.pValueØAnyValueTwo__pValueÙAnyValueTwo.TypeClassÚAnyValueTwo__typeClassÛAnyValueTwo.diSizeÜAnyValueTwo__sizeOfÝAnyValueTwoÞ< The data type of the two ANY input parameters are not equalß< The data size of the two ANY input parameters are not equalà? The data content of the two ANY input parameters are not equalá
3159686021â$e4f95c0d-0ece-47a8-977f-f9d45a4f920eã
3901074272ä11252403å	173265148æ	958090425ç
2765784940è_Implicit_Task_InfoéKindOfê_IMPLICIT_KINDOFTASKëbProfilingTaskìdwLastCycleTimeídiJitterîdiJitterMinïdiJitterMaxðwTaskStatusñ_IMPLICIT_JITTER_DISTRIBUTIONò_Implicit_Jitter_DistributionóbWithinSPSTimeSlicingôbShouldBlockõbActiveönCoreConfigured÷nCoreCurrentø
pTaskGroupù_IMPLICIT_TASKGROUP_INFOú_Implicit_TaskGroup_InfoûpszParentTaskNameü
3064147540ý$b922040e-f645-5fa1-bae1-e77badda44f3þ
4288098520ÿ
1363320977€	235137531$55322052-40fa-57d5-bb62-41ef92d72615‚
2880228939ƒ
2164913627„pszGroupName…dwTaskGroupOptions†
diMaxCores‡parrdwCoreBitsˆ	638065670‰$183a9ca7-3f1f-53ff-9585-da2ef43bbe25Š	187872831‹
2860490203Œ$e6fb6cf6-9591-477a-a303-fdedaad04613
__OffsetIBASEŽADDREF	FB_REINITQUERYINTERFACE‘RELEASE’compatibility_id“$76B148E2-3A84-40c4-8BF2-2FBE56618A2F”
2439911566•$de784a2a-6a84-4c6b-a64b-74bfc4713c79–
1835024534—FB_Exit˜$d4f5d20f-e146-4306-9ffb-0b952fe8bdb2™	805362587šQueryInterface›
 InterfaceID œiid$eac54f77-5545-412a-8930-013043c93f65ž
3642965170ŸRelease $13829801-a5ee-4705-bf92-a3430e33fe75¡	951162479¢AddRef£$63704945-b29a-4e6d-b620-0cc4c326d5f8¤	189822725¥	FB_Reinit¦$e129df86-3969-4c96-8e86-63bc2fcd6c83§__OffsetIQUERYINTERFACE¨
3381839861©IQueryInterfaceª
2850955766«IQUERYINTERFACE¬$926f7604-3bb3-4ac2-a2b2-c74509742af8­$7495bafc-e9de-41f4-8422-4fa3de13a1fe®
3933441373¯$50ec1707-5731-45b1-885b-40907fd79c2d°
__OffsetINODE±__GETCHILDNODECOUNT²__GETCONNECTOR³__GETENABLE´__GETFIRSTCHILDNODEµ
__GETINDEX¶__GETISROOTNODE·__GETNEXTSIBLINGNODE¸__GETPARENTNODE¹__GETSIBLINGNODECOUNTº__SETENABLE»
__SETINDEX¼GETCHILD½INITIALIZE_DIAG¾) Interface for a node in the device tree.¿
1679280347ÀINodeÁ$fd7144fa-517f-4813-bc56-67e92c7e5783Â4 Returns the number of childs below the current nodeÃChildNodeCountÄCAAÅCOUNTÆLocal, IsCompiled, TypifiedÇ$c6f1e7ee-b52d-41a6-9f5c-bcc106b84d90ÈconditionalshowÉ3SLib_DeveloperÊ	ConnectorË$f4ea4731-d01c-4533-9338-77697dabbea5̱ Set: This property is used for enabling/disabling a node. 
 .. note:: Changes will take effect after reconfiguring (see |Reconfigure|).
 | Get: Returns the current valueÍEnableÎ$6b01515d-1fdc-4fe5-9750-d16690c660fbÏ3 Returns the first child node below the current oneÐFirstChildNodeÑINODEÒ$70ce5ed0-8363-458b-99a2-c7e91cff91e3Ó$79537670-a552-45f6-ab6e-7b6ea58834adÔJ returns true, if the current node is the root (plc) node, otherwise falseÕ
IsRootNodeÖ$4fc47465-1240-4eae-aa26-88efdadfae13×R returns the next sibling node at the same level
 used for step through all nodesØNextSiblingNodeÙ$75624c54-9b82-44bc-86ed-1b657697addaÚE Returns the parent node or zero if the root node is already reached.Û
ParentNodeÜ$d58e9dc5-1ee7-45fd-b7ac-630ba113bf45Ý1 Returns the number of sibling (same level) nodesÞSiblingNodeCountß
1053278547à__getChildNodeCountá$3be2c2f9-740a-4c5d-a58c-6abed303e8d2â$235e3c89-55e7-494b-8b84-872b458a6e30ã8caa device diagnosis, 3.5.15.0 (caa technical workgroup)ä
2331688803å__getEnableæ$5c1a3b91-4992-460a-8857-ee62ff653bdfç
2089571396è__getNextSiblingNodeé$f44e3414-35ca-4a5f-b32d-644d4ebee355ê	577143036ë
__getIndexì$303bed14-d38b-4d25-8370-a89e6ed1090aí
3450249202î__setEnableï$c42fcaf3-2bc1-464d-8bd8-b719d74e9ce1ð
3679339802ñ__getIsRootNodeò$2aad8a1d-bca7-40a6-ae67-33dac1efc86bó
2632354531ô__getSiblingNodeCountõ$fa26950f-599c-4c8a-a533-3c9456426d71ö
1151584233÷Initialize_DiagønConnectorCountùparentúchildrenû
udiChildCountü$8d61d30d-df6f-4f78-ad26-543c5475b68fý
1414379403þ__getConnectorÿ$a08d0408-4aaf-48dc-b06f-355d4bbe5a3d€
3932524878__getParentNode‚$815ab869-5126-46b3-9752-ef4648111ec5ƒ
2352675096„__getFirstChildNode…$dd9ffc80-fbf7-4546-95fd-2afd7557e03a†
1529893201‡
__setIndexˆ$5f8e5e79-7bfe-4d6c-88c6-f0dc961d51b0‰
4054890393ŠGetChild‹udiIndexŒ$29e3a840-e380-44c4-a5de-a0709f4cca59conditionalshow_all_localsŽV Default implementation of |INode| interface for |CAADiagDeviceDefault| function block
2372175289CAADiagTreeBase‘__INTERFACEPOINTER__754’__INTERFACEPOINTER__738“gc_pNULL”m_parent•
m_children–m_udiChildCount—m_udiChildIndex˜m_nCount™m_pConnectorš$db41fdee-7c7d-46b6-96fc-d077b9501594›$0b6affde-7036-4b21-8cb3-f5b4454106d9œ® | Set: This property is used for enabling/disabling a node. Changes will take effect after doing a Reconfigure (see |Reconfigure|).
 | Get: Returns the current Enable value$3a49e78b-8c78-4372-b452-29f7f6cda542ž$ffc0c78b-0986-4b5e-98fb-e407562f5eaeŸ$a6df3da4-e32e-4b58-b63d-6392378e156b $7178dc03-2c94-48c2-97a6-d22d24814482¡$06a13f6f-f338-4418-b4a1-c36a811a4b61¢$71f1ca8a-8e48-407a-a178-746613bd4aa1£$7af9b5d4-e262-4b0b-ab57-037df5d7e9f5¤
1337725604¥CAADIAGTREEBASE¦$29dbca48-e1df-4cb9-8742-738b60efa95f§$c399957d-733c-4ef2-b20d-7e6f2583b3d1¨
1041334345©
xParentEnableª$fcaa4935-89f4-437f-b4f6-51c40fc9c78f«
1794169950¬$b88fb25c-3521-46e3-bf2c-b8140d0f816b­
1850071772®$26d06fe9-5574-413b-a816-207e308e13d0¯
2752772531°$3fbf4916-99bd-4527-8e64-efcef34817ab±	719628131²$50352841-25ee-4fbd-849f-620428843de3³
3089930477´$0a122d78-3d51-4bf2-b4bc-c8c98db0ad74µ
4226274787¶udiDevCount·pDiag¸$00bea2d4-3532-4cab-ba22-c176f0944142¹
1746749093º
2029374153»$3bb26460-be5f-436b-8222-99bd750aa85d¼	302991231½
2286545188¾$681628b3-d485-48ee-81cd-5376350007c0¿
3852824191À$1666fef9-e19b-4a79-be55-dd7e22fd965eÁ	903038446Â
2730769901Ã$605ddd30-4aff-4b82-827c-abc65d11ff05Ä	841274389Å
2550518232Æ$6ac1ae38-8c09-44c0-b4a2-6053845bf7faÇ
1001072835È__OffsetIDEVICEÉGETDEVICEDIAGNOSISINFOÊGETDEVICEERRORASYNCË
GETDEVICEINFOÌGETDEVICESTATEÍGETSPECIFICDEVICEERRORASYNCÎGETSPECIFICDEVICESTATEÏSETCOMMUNICATIONSTATEÐY This is a generic device interface. It provides basic information on a (fieldbus) deviceÑ
3323971103ÒIDeviceÓ² | Returns the fieldbus specific device state.
 .. note::
    The interpretation of ``pData`` is fieldbus dependent and will be specified by the associated fieldbus driver.
3220479703ÕGetSpecificDeviceStateÖERROR×Pointer to memoryØPVOIDÙ2Size of memory in bytes where pData is pointing toÚszSizeÛSIZEÜ Number of Bytes written to pDataÝszCountÞIDEVICEß$5eba67ca-3f98-443e-bd54-1059f749d272à$a2af3108-286a-481c-9edf-fe299b39b8b7ᦠ| Returns the fieldbus specific device error.
 .. note::
    This is an asynchronous method. For easier handling use function block |GetSpecificDeviceError|.
 .. note::
    The interpretation of ``pData`` is fieldbus dependent and will be specified by the associated fieldbus driver.
1355244890ãGetSpecificDeviceErrorAsyncä
PROC_STATEåeCmdæPROC_CMDçerror code if method failsèeErroré$3ba616b7-8b5f-43d3-8394-125c751bde33êž Returns the state of the device; if device state is |DEVICE_STATE.ERROR| further information can be read by |GetDeviceError|.
 :return: current device stateë
2321822876ìGetDeviceStateíDEVICE_STATEî^if true, diagnosis info can be read by calling |IDevice.GetDeviceDiagnosisInfo| (if supported)ïxDiagnosisInfoAvailableð$86141897-058f-40ef-8abf-f632d3828e15ñž | Returns the device error of the current node.
 .. note::
    This is an asynchronous method. For easier handling use function block |GetDeviceError|.
3775709481óGetDeviceErrorAsyncôerror informationõeriDeviceErrorö
ERROR_INFO÷*Inout, IsCompiled, RelativeStack, Typifiedø$ddbff883-9936-4127-a0bf-c09833493df6ù3 Returns the device information of the current nodeú
2011876441û
GetDeviceInfoüdevice informationýdeiInfoþDEVICE_INFOÿ$61900c49-9e5e-41d1-8a6e-27fc3a3b07f0€Æ Starts, stops or resets a device
 .. note::
    Use |IDevice2.CheckSupportedCommunicationState| and |IDevice2.CheckCurrentSupportedCommunicationState| to check which transitions are possible!
3247304650‚SetCommunicationStateƒdesired transition„eRequestedState…DEVICE_TRANSITION_STATE†$8709062a-4320-4308-9489-a60bcc6a8c20‡ã | Returns a DiagnosisInfo if ``xDiagnosisInfoAvailable`` of |IDevice.GetDeviceState| was true.
 .. note::
    The interpretation of ``pData`` is fieldbus dependent and will be specified by the associated fieldbus driver.
2386194229‰GetDeviceDiagnosisInfoŠ$59403a43-9bb7-47ad-84c6-25e5d0fce385‹__OffsetIDEVICE2Œ'CHECKCURRENTSUPPORTEDCOMMUNICATIONSTATE CHECKSUPPORTEDCOMMUNICATIONSTATEŽ" Interface extension for |IDevice|
4205947594IDevice2‘Î | This method checks if a specific |DEVICE_TRANSITION_STATE| is supported by the node in general.
 .. note::
    Use |IDevice2.CheckCurrentSupportedCommunicationState| to check which |DEVICE_TRANSITION_STATE| is possible in the current state.
 :return: True if node supports the requested |DEVICE_TRANSITION_STATE| in general.’
2922005066“ CheckSupportedCommunicationState”( The communication state to be checked. •IDEVICE2–$15474137-dba8-42bc-b183-e7e9b18cecf7—$8de15b4c-6b51-4228-bb46-93f744249c44˜Ê | This method checks if a specific |DEVICE_TRANSITION_STATE| can be processed in the current state.
 .. note::
    Use |IDevice2.CheckSupportedCommunicationState| to check which |DEVICE_TRANSITION_STATE| is supported in general.
 :return: True if node supports the requested |DEVICE_TRANSITION_STATE| in the current state.™
1512391189š'CheckCurrentSupportedCommunicationState›' The communication state to be checked.œ$83b32edf-fb86-4211-8491-c0ba3c6130ea__OffsetILOGGERž
DISABLELOGGERŸENABLELOGGER GETLOGENTRY¡ Interface for a logger.¢
3646957217£ILogger¤ Enables logging.¥	305904215¦EnableLogger§eMode¨LOGGER_MODE©ctMaxLogMessagesªILOGGER«$d9b06692-424a-46e7-97ac-5e1c9e286125¬$3d65c798-92d1-445f-bddf-744f77ae3815­ Disables logging.®
1732310495¯
DisableLogger°$5a5c95c7-9d3f-49a1-bb25-80615fac8edd±Gets the next log entry.²
1308914150³GetLogEntry´	log entryµLogEntry¶	LOG_ENTRY·$b272c323-2264-470f-b544-3616b159452e¸
2445751983¹Loggerº__INTERFACEPOINTER__825»
3277470170¼LOGGER½$a5d4c961-a04c-41de-bb8d-3355194ff7d4¾
3040909387¿
1794219731À
1441683628Á
2155570078Â
1971108980Ã$f0f4b0e3-59b6-4882-8042-fd70c13b97a9Ä
2373599769Å$bbfd6da9-d19e-4333-92c8-ae311815866aÆ
4071542161Ç$6923f72e-ca38-40d5-bbf6-62794d17df33ÈCALCIPADRUDINTÉ
GETBUSINFOÊGETBUSSCANASYNCËGETBUSSTATEÌ
GETERRORASYNCÍGETSTATEÎ
2119875290ÏCAADiagnosisBaseÐ	BusLoggerÑ	817903323ÒGetBusStateÓ	BUS_STATEÔBif true, diagnosis info can be read by calling GetBusDiagnosisInfoÕCAADIAGNOSISBASEÖ$cf8f1e55-5b5a-4144-9eb7-3f514e79e5dd×$6ab0f785-e0bf-447e-b558-f02bd34d3260Ø
3240739918Ù	845751843Ú
GetBusInfoÛ eError ÜBus information structÝbuiInfoÞBUS_INFOßpConOrgàpChildápByteâ$effcd369-8955-4662-b052-5905bda4009eã
2108358032ä) Returns the bus scan of the current nodeå	172339121æGetBusScanAsyncçeCommandè" First node of scanned device listéitfFirstDeviceê$9cdb048e-f705-4b7b-8de4-e529f2d2428eë
2719790002ì$e2574921-8020-42d6-b484-a099eda71c16í	117753732îDevice information structï$3c0e5501-b84a-4092-ab89-95623c3ab5eað
2565930693ñ
2656219543ò
GetErrorAsyncó eState ôerror structõeriErrorö$fba60e6f-d205-4c8d-9c19-4772c11dc2d8÷- Returns the device error of the current nodeø
3127314655ù$95f1158a-dddc-4561-a5b8-48bb7ee9d95aú
1614542200ûGetStateü eDeviceState ýdwFlagsTempþ$cfa1dee5-c1c8-4a20-835c-6bac3748db80ÿ
1369457817€
1934689949	535619913‚CalcIpAdrUdintƒpaby„$cb6ec9d5-9bef-49a6-a59a-55a7f379cfaf…ÿ' This structure provides the basic information on a device.
 - ``eType``: Type of device. See |DEVICE_TYPE|.
 - ``idSystem``: Unique address within the bus system.
    +--------------------------+---------------------------------------------------+
    |Device Type               |Interpretation                                     |  
    +==========================+===================================================+
    |CANopen                   |Node ID                                            |
    +--------------------------+---------------------------------------------------+
    |J1939 Manager             |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |J1939 ECU                 |Preferred Address                                  |
    +--------------------------+---------------------------------------------------+
    |Profibus                  |MasterID (see also Master-FB Property)             |
    +--------------------------+---------------------------------------------------+
    |DeviceNet                 |MAC ID                                             |
    +--------------------------+---------------------------------------------------+
    |EtherCAT Master           | Last 4 Bytes of the Mac address                   |
    +--------------------------+---------------------------------------------------+
    |EtherCAT Slave            | Physical address of slave                         |
    +--------------------------+---------------------------------------------------+
    |Sercos III Master         |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |Sercos III Slave          |active Sercos address                              |
    +--------------------------+---------------------------------------------------+
    |Profinet                  |MasterID (see also Controller-FB Property)         |
    +--------------------------+---------------------------------------------------+
    |Modbus TCP                |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |Modbus RTU Master         |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |Modbus RTU Slave          |slave address                                      |
    +--------------------------+---------------------------------------------------+
    |EtherNet/IP               |IP address                                         |
    +--------------------------+---------------------------------------------------+
    |ASI Master                |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |ASI Slave                 |ASI address                                        |
    +--------------------------+---------------------------------------------------+
    |I/O Modules               |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |Safety Device             |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |SoftMotion Device         |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |SoftVision Device         |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |PLC                       |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |Safety PLC                |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |Drive                     |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |Parameterizable device    |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |HMI                       |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
    |SoftMotion PLC            |``CAA.gc_idMAX_IDENT``                             |
    +--------------------------+---------------------------------------------------+
 - ``idInstance``: Instance number in I/O configuration (starting by 0).
   .. admonition:: Example
      First EtherNet/IP Scanner has instance number 0, second EtherNet/IP Scanner instance number 1, ...
1914872817‡7 Unique ID of the device type (e.g. CANopen, ProfiBus) ˆeType‰DEVICE_TYPEŠx Unique address within the bus system. The interpretation of this value is fieldbus dependent (e.g. NodeID for CANopen).‹idSystemŒIDENT' Instance number in I/O configuration. Ž
idInstance
2268123690$a8b291b8-db6b-49a0-84d0-13c67a89cf60‘GETPROFINETDEVICEINFO’_ The default implementation if the fieldbus specific driver implements no diagnosis functions. “
2396582586”CAADiagDeviceDefault•__INTERFACEPOINTER__754_2_1–__INTERFACEPOINTER__738_3_2_1—__INTERFACEPOINTER__766˜__INTERFACEPOINTER__761™m_diagš_deiInfo›
1530957556œGetProfinetDeviceInfoparentDevicež
parentInfoŸpParentConnector pSlaveParameter¡TSLAVEPARAMETER¢TSlaveParameter£pModuleParameter¤TMODULEPARAMETER¥TModuleParameter¦pSubmoduleParameter§TVIRTUALSUBMODULE¨TVirtualSubmodule©pSubmoduleDeviceªDED_PNS_SUBMODULE_CFG«pSubmoduleDeviceParent¬id2addr­COMMFB®CommFB¯
ID_TO_ADDR°addr2id±
ADDR_TO_ID²slaveAddress³	ADDR_TYPE´validµCAADIAGDEVICEDEFAULT¶$c0bfe649-95b0-4b70-9660-d35c5797afd7·$dab38b7f-5aef-4855-a6a4-1706aae247d1¸
1076661007¹$172ef6c0-c693-4e0a-b0b0-825af801455eº
2122643139»$0eb0af07-f2e6-46b1-a1e9-9076363c354b¼ë Starts, stops or resets a device
 .. note::
    Use |IDevice2.CheckSupportedCommunicationState| and |IDevice2.CheckCurrentSupportedCommunicationState| to check which transitions are possible!
 .. note::
    This is a generic base implementation. The method will always return |ERROR.NOT_SUPPORTED| as it's not possible implementing it in a generic way.
½	674221267¾$b5a20bf9-7440-4bea-b5a6-c7e6c9efd31c¿
1242196287À
1908109712Á
1620243978Â$e298c3dd-4e32-4f39-bbf4-2343429814beÃ
3863095870Ä$99608ba0-ded8-4589-b25e-91e7466b6428Å
4186906968ÆÖ | Returns the fieldbus specific device state.
 .. note::
    The interpretation of ``pData`` is fieldbus dependent and will bespecified by the associated fieldbus driver.
 .. note::
    This is a generic base implementation. The method will always return |ERROR.NOT_SUPPORTED| as it's not possible implementing it in a generic way.
Ç	453564358È$6b8f41c3-1be3-41ca-ba8e-401c1cc7d937ÉÃ | Returns the device error of the current node.
 .. note::
    This is an asynchronous method. For easier handling use function block |GetDeviceError|.
 .. note::
    This is a generic base implementation. The method will always return |ERROR.NOT_SUPPORTED| as it's not possible implementing it in a generic way.
2657248586Ë$c7aa4696-b811-4e9b-8773-651b5c0e276dÌA Returns the state of the device.
 :return: current device stateÍ	723098990Î&if true: diagnostic info is available.Ï$7807e66a-6817-4381-b660-7be91384fed2ÐË | Returns the fieldbus specific device error.
 .. note::
    This is an asynchronous method. For easier handling use function block |GetSpecificDeviceError|.
 .. note::
    The interpretation of ``pData`` is fieldbus dependent and will be specified by the associated fieldbus driver.
 .. note::
    This is a generic base implementation. The method will always return |ERROR.NOT_SUPPORTED| as it's not possible implementing it in a generic way.
Ñ	730917797Ò$226c9589-4532-4484-8644-6d1b9dca228cÓ
3948789993Ԉ | Returns a DiagnosisInfo if ``xDiagnosisInfoAvailable`` of |IDevice.GetDeviceState| was true.
 .. note::
    The interpretation of ``pData`` is fieldbus dependent and will be specified by the associated fieldbus driver.
 .. note::
    This is a generic base implementation. The method will always return |ERROR.NOT_SUPPORTED| as it's not possible implementing it in a generic way.
Õ	717628964Ö$6e54f567-2ffc-49ce-a786-8474c16ef031×	371242809Ø93460638ÙINode__UnionÚ
2959564346ÛINODE__UNIONÜ
2316438915ÝIQueryInterface__UnionÞ
1494420952ßIQUERYINTERFACE__UNIONà
3639762981á(NonVirtual, Generated, Compiled, LocatedâA Realize a target specific data type for handlig counter values. ã
1437321619ä prefix: ct å$ccbb506d-abfe-4570-9928-bc1691694907æ4caa types extern, 3.5.13.0 (caa technical workgroup)ç
3705476656èIDevice2__Unioné
3644318756êIDEVICE2__UNIONë90834715ìIDevice__Unioní	859930826îIDEVICE__UNIONï; Realize a target specific data type for general pointers. ð
2901015905ñ Prefix: p ò$607a79a2-c60b-4e09-b161-a4f6d8099b00ó8 Realize a target specific data type for handlig sizes. ô
2312262315õ Prefix sz ö$ee3ce965-0ec6-4ef9-a5e3-526b882b983e÷‰ This structure contains an error code for a bus or device. The error information can be retrieved by |GetBusError| and |GetDeviceError|.ø22034166ù> unique error code; see |ERROR_CODES| for detailed informationúidErrorCodeû
1807881938ü$9a61b07f-b4e0-4304-a7cb-a21c7886e444ý= Realize a target specific data type for handlig key values. þ
2398423896ÿ Prefix: id €$656e2970-ee0e-4dbf-ae02-c2ac7219a2fd
2783994077‚ILogger__Unionƒ
1201102805„ILOGGER__UNION…K This structure contains information of a log entry delivered by |ILogger|.†	140156519‡	TimestampˆtkTimestamp‰TICKŠMessage code‹	idMessageŒUnique system Id of sourceidSourceŽ
1737004474$1b98c709-5d41-4822-af89-d750bc204584K Realize a target specific data type for handlig the smallest time slices. ‘
2918620229’ prefix: tk “$ea4bd16b-1cff-4a12-a550-72a16611a469”  This structure provides basic information on a fieldbus:
 - ``eType``: Type of fieldbus. See |BUS_TYPE|.
 - ``idSystem``: Unique system ID for the identification of the fieldbus.
    +------------+------------------------------------------+
    |Bus Type    |Interpretation                            |  
    +============+==========================================+
    |CANbus      |Network ID                                |
    +------------+------------------------------------------+
    |Profibus DP |MasterID (see also Master-FB Property)    |
    +------------+------------------------------------------+
    |DeviceNet   |Network ID                                |
    +------------+------------------------------------------+
    |EtherCAT    |low DWORD of the MAC address of the master|
    +------------+------------------------------------------+
    |Sercos III  |``CAA.gc_idMAX_IDENT``                    |
    +------------+------------------------------------------+
    |Profinet IO |MasterID (see also Controller-FB Property)|
    +------------+------------------------------------------+
    |Modbus TCP  |``CAA.gc_idMAX_IDENT``                    |
    +------------+------------------------------------------+
    |Modbus RTU  |``CAA.gc_idMAX_IDENT``                    |
    +------------+------------------------------------------+
    |EtherNet/IP |IP address                                |
    +------------+------------------------------------------+
    |AS Interface|``CAA.gc_idMAX_IDENT``                    |
    +------------+------------------------------------------+
    |Ethernet    |IP address                                |
    +------------+------------------------------------------+
    |Serial Line |number of COM port                        |
    +------------+------------------------------------------+
 - ``idInstance``: Instance number in I/O configuration (starting by 0).
   .. admonition:: Example
      First CANbus has instance number 0, second CANbus instance number 1, ...
1865211865–9 Unique ID of the fieldbus type (e.g. CANopen, ProfiBus) —BUS_TYPE˜Û Unique system ID for the identification of the fieldbus. The interpretation of this value is fieldbus dependent (e.g. NetID for CANBus). 
 If the value gc_idMAX_IDENT is returned the system ID could not be determined.™
4152552832š$0f954769-07ce-4c25-acbe-def63dd7bb09›	713083045œTIdentificationParameter	IPAddressž
SubnetMaskŸDefaultGateway 
MACAddress¡StationName¢
1862380650£TIDENTIFICATIONPARAMETER¤$146cf60a-b2ca-4ab0-96a0-ca21f3cf7a72¥
3211832197¦
uiDeviceId§
uiVendorId¨Identification©RTClassªVLANID«VLANPriority¬	SendClock­ReductionRatio®WatchdogInterval¯MultipleWriteSupported°IOXSRequired±MaxInputLength²MaxOutputLength³
MaxDataLength´uiMinSlaveIntervalµuiObjectUUIDInstance¶
2964575478·$6ede3876-477c-4ac7-8598-d91a395cda0b¸	806226192¹ModuleIdentNumberº
SlotNumber»uiNumberSubModules¼
4242247564½$519602ec-c573-4014-a8b0-478c4b33506b¾
3504034228¿TIsochroneModeÀ	T_DC_BaseÁT_DC_MinÂT_DC_MaxÃ	T_IO_BaseÄ
T_IO_InputMinÅT_IO_OutputMinÆIsochroneModeRequiredÇ
1921377102ÈTISOCHRONEMODEÉ$0fcf9ee9-7cd3-41e8-a72d-e1ec28de4f25Ê	487119563ËSubmoduleIdentNumberÌ
SubslotNumberÍAPIÎProfisafeSupportedÏ
IsochroneModeÐuiNumberRDIÑuiSubModulePropÒ
usiIOPSLenÓ
usiIOCSLenÔ
2639995038Õ$57a3ca52-4d73-4ae3-9438-c758d9a4f5afÖ
1349914448×Slot NumberØuiSlotÙSubslot NumberÚ	uiSubSlotÛID of this ModuleÜ
ulModuleIDÝ
ulSubModuleIDÞ'Length of Output Data of this submoduleß
ulProvDataLenà&Length of Input Data of this submoduleá
ulConsDataLenâ
1038707126ã$4c5b62af-b937-409c-a728-01159a7f9edaä	216741120åICommFBFactory__UnionæICOMMFBFACTORYç
3585902921èICOMMFBFACTORY__UNIONé$2f1143be-726b-40eb-a45b-50031b763449ê5commfb, 3.5.15.0 (3s - smart software solutions gmbh)ë
2905060136ìICommFBFactoryExt__UnioníICOMMFBFACTORYEXTî	991185044ïICOMMFBFACTORYEXT__UNIONð$bfc4b521-e9ac-4780-a8f6-9eedd4f60a06ñ	330015370òICommFBFactoryIO__UnionóICOMMFBFACTORYIOô
1146979078õICOMMFBFACTORYIO__UNIONö$598c2a9e-a0fb-495b-857f-651b986f51a3÷
3966779849ø&ICommFBConnectionManagerFactory__UnionùICOMMFBCONNECTIONMANAGERFACTORYú
3876327603û&ICOMMFBCONNECTIONMANAGERFACTORY__UNIONü$fd490ae3-01cb-471a-8106-8c57a860075bý
1558329430þICommFBFieldDevice__UnionÿICOMMFBFIELDDEVICE€
2454694995ICOMMFBFIELDDEVICE__UNION‚$2e5cea71-49b8-4762-930c-9a011e65cb50ƒ
2057884598„IGenericIDFactory__Union…IGENERICIDFACTORY†
1017473369‡IGENERICIDFACTORY__UNIONˆ$67af4da7-d05e-4120-9779-b23558f92350‰
3473025975ŠICommFBDiagProvider__Union‹ICOMMFBDIAGPROVIDERŒ	673141319ICOMMFBDIAGPROVIDER__UNIONŽ$79d78041-9258-45b7-b611-894b6d89c83fCREATEIDGETCONNECTIONMANAGERFACTORY‘GETDIAGFACTORY’
GETFACTORY“GETFIELDDEVICE”GETIOFACTORY•REGISTER–REGISTERDIAG—REGISTEREXT˜
REGISTEREXTIO™REGISTERFIELDDEVICEšREGISTERINTERFACES›
1972766792œInstanceHandlers_instanceCountž2IsCompiled, Absolut, Static, Initialized, TypifiedŸs_factories 
MAX_INSTANCES¡ICommFBFactory¢s_factoriesExt£ICommFBFactoryExt¤
s_factoriesIO¥ICommFBFactoryIO¦s_factoriesConnections§ICommFBConnectionManagerFactory¨s_fieldDevices©ICommFBFieldDeviceªs_genericIDFactories«IGenericIDFactory¬UDInt­s_ids®s_diagProviders¯ICommFBDiagProvider°
2109533055±CreateID²INSTANCEHANDLER³$59073b19-756d-47f4-bc58-9871ac9b487e´$5c5dca87-c894-4f65-8bc2-317f22a692bfµ
1325033160¶
GetFactory·id¸$87efeb5a-bb9c-43a5-a1ac-ae168c025553¹
4110133566ºRegisterDiag»factory¼diagProvider½$d510148f-6084-4aab-9e74-d303ad67428a¾	627828057¿
1690419585ÀRegisterExtÁ
factoryExtÂ$d1e4d44d-1c3b-4b83-a777-fd995cbec61aÃ	456010953Ä
3810575405ÅGetIOFactoryÆIDÇ$91d7ff16-098e-4a45-9fca-a89622e52995È
3581689018É
RegisterExtIOÊupdateIOË$b66f8b9c-5f9f-4ca6-b8a9-9e055abcbd6bÌ	924451414Í
3014454510Î
3611219374ÏRegisterFieldDeviceÐdeviceÑ$f786da9d-8489-4419-8193-1248d8a81d57Ò
1659579472ÓRegisterInterfacesÔcnctÕ$4ffccdba-e9df-443b-9350-358cb61900c5Ö
1241907512×RegisterØ$276822f0-27df-4b15-8ff4-1987c71699d2Ù
3931592083Ú
1125047827ÛGetFieldDeviceÜfieldDeviceÝ$e5bab004-5b5b-4798-953a-96117a1d3d41Þ	556527522ßGetConnectionManagerFactoryàclient : CNCT;		áD_ADDRâmasterIDã$d9cdfa39-079d-458d-9c52-b636229faef0ä
3776841858åGetDiagFactoryæ$11d4a8dc-0000-4a57-930c-e40fbb033195çž 
 The function block ID_TO_ADDR converts the handle used for the Communication Function Blocks
 to the physical identification of a slot of a PROFIBUS DP-slave or subslot of a PROFINET IO Device.
 .. admonition:: Code-Example: see |RALARM|
    .. code-block:: codesys
3325788151é Enable êENë Slot or subslot handle ì Flag íENOî Last detected status ïSTATUSð Physical address information ñADDRò-Inout, IsCompiled, RelativeInstance, Typifiedós_instanceHandlerô
1110953018õ$d0bab1e9-1c62-4544-865d-f2323c4dc7fcö	587483585÷	467433249ø
1414810569ù	692259942ú
3379746447ûDP_DEVICE_IDü# DP master interface identificationýMASTERþ segment numberÿSEGMENT€ station number	STATION‚	791509230ƒ$cb67c988-d33a-451d-8d66-d5072e021a2a„V | data structure for physical/native identification of a slot of a PROFIBUS DP-slave.…93623151†DP_ADDR‡* Type of the IO Subsystem (2= PROFINET IO)ˆSYSTEM‰IO_SYSTEM_TYPEŠ- Version of the data structure (1= Version 1)‹VERSIONŒ# Identification of the Field DeviceDŽ' Slot Number (identification of a slot)SLOT
4009948900‘$2c4c59cf-f622-4b98-8cd2-3724a6e08ac4’	821757692“PN_DEVICE_ID”Station name•STATIONNAME–Instance ID—INSTANCE˜	Device ID™DEVICEš	Vendor ID›VENDORœ
4141392916$c284315c-4b28-4abe-b120-e371e7e96a6cžX | data structure for physical/native identification or subslot of a PROFINET IO Device.Ÿ	921029509 PN_ADDR¡ application process identifier¢- Subslot Number (identification of a subslot)£SUBSLOT¤
2817459605¥$c47a08c8-d2f4-4d7a-801d-785811b6a362¦º | Uniform data structure (UNION) for physical identification of a slot of a PROFIBUS DP-slave or subslot of a PROFINET IO Device.
 | (see: |AddressConcept|, |ADDR_TO_ID|, |ID_TO_ADDR|)§	378918204¨ 1 = DP, 2 = PROFINET IO©DPªPN«
1827896718¬$0be6145e-367d-4a84-84f0-60a68e629dce­__OffsetICOMMFBFACTORY®
CHECKOWNER¯GETRDREC°GETWRREC±RELEASERDREC²RELEASEWRREC³
4003227676´
1684431953µ
CheckOwner¶$e7a7e6a9-93a8-4d0a-b5a6-ca7272703b04·
1682915193¸GetWRREC¹	WRRECBASEº	WRRECBase»%oder interface CommFBFactoryClient ? ¼client½WRREC¾$e480cef7-8ccf-4817-90e6-453a57f879a7¿
2428101586ÀGetRDRECÁ	RDRECBASEÂ	RDRECBaseÃRDRECÄ$580fa7e4-334c-458f-810a-f2c319f5af44Å
3069814003ÆReleaseWRRECÇ$cde679bc-271b-4bd4-80de-3ddf237af2b6È
1795400948ÉReleaseRDRECÊ$73d173a3-3f2f-4ec9-9321-aff91cbbb042Ë
1468360598Ì	WRRECbaseÍ	 Request ÎREQÏ2 Identifier of a slot / subslot of a Field Device Ð Index of the data record ÑINDEXÒ Length of the data record ÓLENÔ
 Data record ÕRECORDÖ Data record written ×DONEØ FB is busy ÙBUSYÚ Error detected Û	433484387Ü$d41698d9-db5b-40b4-bbd6-acf9e91b6e07Ý
1127404326Þ
3313790790ß
1048846724à
2194520798ហ| **Write Data Record (WRREC)**
 | This function block executes an acyclic write of user or system record-data.
 | The ID parameter identifies the slot or subslot of the Field Device the process data record is written to. 
 | The INDEX input of the WRREC function block contains an integer which identifies the data record to be written. 
 | The data record shall be stored in the variable given at the RECORD parameter.
 | The LEN input contains the length of the data record to be written in byte. 
 | The variable given as RECORD parameter shall be at least of LEN byte.
 | The values of the RECORD and LEN parameters shall not be changed as long as the BUSY output is true.
 | If the data record is written successfully, the DONE output indicates that the read data record is written to the Field Device.
 | If an error occurred, the ERROR output indicates an error and the STATUS output contains the error code.â
1625929800ãJ Identifier of a slot / subslot of a Field Device (see: |AddressConcept|) ä	m_factoryåm_pWRRECæ_REQç57694772è$217ef9f1-e885-4091-9848-6b80a26c7eccé
1906241013ê
1786991832ë
1257047149ì
3184163650í
2378989493î	RDRECbaseï maximum length to be read ðMLENñ Read data record ò' New data record received and is valid óVALIDô  Length of the read data record õ
1372076423ö$33a528a5-c809-4d29-b3b7-94ad124cc302÷	139793704ø
1426875363ù
1996665953ú
3988838904û¢ | **Read Process Data Record (RDREC)**
 | This function block executes an acyclic read of user or system record-data.
 | The function is invoked when REQ input is equal to TRUE.
 | The ID parameter identifies the slot or subslot of the Field Device the data record is read from. 
 | The INDEX input of the READ function block contains an integer which identifies the data record to be read, e.g. Profinet Diagnosis- or I&M-Data.
 | The MLEN parameter specifies the count of bytes which shall be read as an maximum. 
 | The variable given as RECORD parameter shall be at least of MLEN byte.
 | If the data record is read successfully, the VALID output indicates that the read data record is stored in the RECORD parameter. 
 | The LEN output contains the actual length of the data that has been read in byte.
 | If an error occurred, the ERROR output indicates an error and the STATUS output contains the error code.
 .. admonition:: Code-Example: use RDREC to read the diagnosis of a PN-Slave
    .. code-block:: codesys
        PROGRAM PLC_PRG
            rdrec : CommFB.RDREC;   
            buffer : ARRAY[0..255] OF BYTE;
            readError : DWORD;
            diagReader : ProfinetCommon.DiagnosisDataReader;
            channelDiag : ProfinetCommon.ChannelDiagnosisData;
        END_VAR
        // Read Diagosis-Data:
        rdrec.ID := pnDevice.ID;                // "pnDevice" is a Profinet slave in the device tree
        rdrec.INDEX := TO_INT(ProfinetCommon.DiagnosisRecordIndex.Device);      // = 16#F80C --> get all diagnosis for this device
        rdrec.MLEN := TO_INT(SIZEOF(buffer));
        rdrec.RECORD := ADR(buffer);
        rdrec();
        IF(rdrec.VALID AND rdrec.REQ) THEN
            //here we have valid data
            diagReader.InitData(rdrec.RECORD, TO_UINT(rdrec.LEN));
            WHILE(diagReader.Read()) DO
               ; // do something useful with diag-data       
            END_WHILE   
        ELSIF(rdrec.ERROR) THEN
            readError := rdrec.STATUS;      // read service failed
        END_IF
        rdrec.REQ := rdrec.BUSY;            // only read once
2179528639ým_pRDRECþ
2747863616ÿ$d9fbb3df-cbc7-4a28-b57a-e0ee2393ee08€
3355360872	194079521‚
4004182689ƒ
2930055351„__OffsetICOMMFBFACTORYEXT…
TRYGETADDRESS†TRYGETID‡
2844420846ˆ
1503752971‰TryGetIDŠ$5ec3814a-fc43-4b01-bbfa-0fd9a4f7395f‹	347775611Œ
TryGetAddress$d0ff3694-b426-42ed-819c-44a9d1d54042Ž__OffsetICOMMFBFACTORYIOGETINPUTDATA
PUTOUTPUTDATA‘
1023048387’
3701321460“$1aebf684-1598-4865-a974-84dc02651d0d”37104571•GetInputData–3 Identifier of a slot or subslot of a Field Device —3 Count of the first byte within the IO data object ˜OFFSET™ Length of the data to read š$ Requested subset of the input data ›INPUTSœIO_LENCONSISTENCYž$634a4b4b-a09c-4889-b8dc-5104f3661d5aŸ
2768903901 
PutOutputData¡% Offset of the subset of output data ¢$ Length of the output data to write £ IO data object to write ¤OUTPUTS¥$0cef4890-63a8-402d-ae84-e83c7ef8d59a¦'__OffsetICOMMFBCONNECTIONMANAGERFACTORY§GETCONNECTIONMANAGER¨RELEASECONNECTIONMANAGER©
3241754423ª
2713815570«GetConnectionManager¬ICONNECTIONMANAGERCLIENT­IConnectionManagerClient®connectionManager¯ICONNECTIONMANAGER°IConnectionManager±$a5a38a36-2c67-46de-8c36-78d646a61fb6²
3979117591³ReleaseConnectionManager´$e321d229-7a25-4d9d-9484-c607c6c3873bµ __OffsetICONNECTIONMANAGERCLIENT¶
CONNECTCNF·ERRORIND¸
RELEASECNF¹	751434976º
1193357634»ErrorInd¼	errorCode½$a7e0efb2-ee1f-4f19-b647-ff9615d75f2e¾$1f44cbc9-970b-4611-b313-ce8f32c49057¿
3864829861À
ConnectCnfÁ$a2b37d2b-5bd3-48eb-8021-c98d4c126f99Â
3489361720Ã
ReleaseCnfÄ$7fbe0720-543c-4e22-9c44-9f7a9fea4a52Å
3995921025ÆIConnectionManagerClient__UnionÇ
2688909893ÈICONNECTIONMANAGERCLIENT__UNIONÉ__OffsetICONNECTIONMANAGERÊ
CONNECTREQË
RELEASEREQÌ
UPDATEADDRESSÍ
3058668088Î	510338560Ï
ConnectReqÐ$9bb6ffb7-b0ee-4cdb-8f50-3c1b96218d87Ñ$1b1284bb-2c39-46c9-af21-380c5a43728bÒ
2045559820Ó
UpdateAddressÔ$6604240f-dd32-4f29-98df-50b4eb1b28a2Õ
2352242233Ö
ReleaseReq×$20882f95-6ca5-4131-8d41-e633af9daa3aØ
1271290652ÙIConnectionManager__UnionÚ	528104974ÛICONNECTIONMANAGER__UNIONÜ__OffsetICOMMFBFIELDDEVICEÝALARMREQÞCHECKREADINDß
CHECKWRITEINDà
READNEGRSPáREADRSPâWRITENEGRSPãWRITERSPä	356195680å
1856056745æWriteNegRspçINDè	WRITE_INDé	Write_Indê Reason for negative response ëCODE1ìCODE2í$1a750f35-5bde-4e01-a152-97f71b5fbc9fî
2071070839ïAlarmReqðAlarmSenderñICOMMFBALARMSENDERòICommFBAlarmSenderó( Handle of the slot of the alarm source ô0eigentlich INT aber in PN_AINFO ist es auch UINTõATYPEöASPEC÷ Length of AINFO data in bytes ø Additional alarm information ùAINFOú$876af766-3353-4d36-af32-fe6c4cdd2cc9û
3119987035üReadRspýREAD_INDþRead_Indÿ$bd1d1658-bc08-46af-ad94-dea07e1f6217€
2586402330CheckReadInd‚ Function specifier ƒMODE„6 Slot / subslot to filter the data records to receive …F_ID† Field Device interface status ‡$ce3da9d3-f3ba-4259-9a83-d1fb3128340cˆ
3567557335‰WriteRspŠ$9e1c3aca-cabd-433e-bf21-79801db4dff7‹
1101577244Œ
ReadNegRsp$7c571832-ba51-4c75-99f0-94793f903082Ž	426759614
CheckWriteInd$b4fa92c5-2f72-45f2-9a3b-27f6ecd39532‘
3923934804’! Slot the record is received for “$ Subslot the record is received for ”# Index of the received data record •PRM–todo—AR_ID˜
SEQ_NUMBER™$ Length of the received data record š Received data record ›DATAœ
2101999731$be551f5d-d9a5-47e8-8100-d584cb5baaf4ž__OffsetICOMMFBALARMSENDERŸALARMCNF 
3863606311¡	941226922¢AlarmCnf£error¤$f64615e1-ac20-434a-bc01-976c2a8c60f6¥$6d464481-9a43-42f9-9505-4622206493c5¦
2670984610§ICommFBAlarmSender__Union¨
1026817257©ICOMMFBALARMSENDER__UNIONª
1260444685«$ Index of the requested data record ¬% Length of the requested data record ­RLEN®
1194315201¯$1f7aedac-6dbb-4c77-9bda-de8c37f9ca8f°__OffsetIGENERICIDFACTORY±TRYGETIDFROMREFERENCE²
1902500616³
3957853781´TryGetIDFromReferenceµ$6178481e-4603-4913-a72c-8c9649c2e464¶__OffsetICOMMFBDIAGPROVIDER·GETALARM¸GETDIAG¹
1059714561º
3323960882»$b1eb7276-33d1-4b93-97ff-d5ba3be205cd¼
3996722608½GetDiag¾DINFO¿DP_DIAGÀ$4f176f26-9226-47b1-808a-043e3f4d08cfÁ
3351759581ÂGetAlarmÃ
AINFO_TYPEÄcurrentAlarmIDÅNEWÆ$1eed95d8-a8cc-41b4-80f7-c7368adb85f3Ç	881725510ÈDP_StationStatus1_DiagÉ/Slave doesn't exist (or has different address).ÊStation_Non_ExistentË!Slave not ready for data exchangeÌStation_Not_ReadyÍ*Slave has mismatching confi-guration data,Î	Cfg_FaultÏ6indicated serious faults, extended diagnosis availableÐExt_DiagÑ,Slave doesn't support the required function.Ò
Not_SupportedÓInvalid_Slave_ResponseÔ!Slave got wrong parameterization.Õ	Prm_FaultÖ0Slave has been parameterized by another master.	×Master_LockØ
3977943208ÙDP_STATIONSTATUS1_DIAGÚ$07d60273-af69-4f64-b00e-14f19d0010b7Û/iodriver profibus2 interfaces, 3.5.6.0 (system)Ü	292890171ÝDP_StationStatus1ÞvalueßDiagà
1011547228áDP_STATIONSTATUS1â$b0c29696-d5d3-42dc-a51e-2f3cfafa42a4ã
1307755166äDP_StationStatus2_Diagå Slave requests parameterization.æPrm_Reqç	Stat_Diagè(always 1 (if 0, no valid diag available)éWatchdog configured.êWD_OnëSlave is in FREEZE mode.ìFreeze_ModeíSlave is in SYNC mode.î	Sync_ModeïreservedðDiagnosis deactivated.ñDeactivatedò
1312996121óDP_STATIONSTATUS2_DIAGô$ad5c5581-8b09-484d-ae8d-bc2d2c462cedõ
1397635279öDP_StationStatus2÷
1425307094øDP_STATIONSTATUS2ù$89802cae-c3ea-47c4-9435-5fa04c3b5393ú
1543516467ûDP_StationStatus3_Diagü	reserved0ý	reserved1þ	reserved2ÿ	reserved3€	reserved4	reserved5‚	reserved6ƒ7Slave has more diagnosis data than fit into the buffer.„Ext_Diag_Overflow…
2398007202†DP_STATIONSTATUS3_DIAG‡$f00ec383-8992-43b7-b311-7e82263b4c5dˆ
1486026266‰DP_StationStatus3Š	641809150‹DP_STATIONSTATUS3Œ$10b05bd8-3fbb-47eb-9d4a-1dfd0d80c42dZ | Data structure containing DP Slave diagnosis data (see: |RDIAG|).
 | (see IEC 61158-6)Ž
1248369416DP station status 1status1‘IIODRVPROFIBUS’IIoDrvProfibus“DP station status 2”status2•DP station status 3–status3—taddress of the DP-master (Class 1) which has parameterised this DP-slave (255 means invalid or no parameterisation).˜Diag_Master_Add™Ident Number of DP slavešIdent_Number›Extended Diagnosis DataœExtDiag	984155511ž$6b4cdf9f-0ef9-4dbf-9870-844452a05a5bŸP | Alarm information of a profibus device (see: |RALARM|).
 | (see IEC 61158-6) 	481339779¡DP_AINFO¢.Length of the alarm information: 4 .. 63 bytes£D_LEN¤
Alarm Type¥Slot number¦è **Alarm Specifier**
 | Bit 0 to 1:
     | 0: no further differentiation
     | 1: Alarm appears and the related module is disturbed
     | 2: Alarm disappears and the related module has no further errors
     | 3: Alarm disappears and the related module is still disturbed	
 | Bit 2: Additional acknowledge
 | Bit 3 to 7: Sequence number of alarm§Additional alarm information¨ADD_INFO©	701419933ª$4b43e083-02e7-4f9e-bd9a-b953c4763244«L Alarm information of a profinet device (see: |RALARM|).
 (see IEC 61158-6)¬
1433146548­PN_AINFO®
 BlockType¯	BlockType°% Length (in bytes) of field AlarmData±BlockLength² version high + low³Version´ Alarm typeµ	AlarmType¶ Application Process Identifier· Slot number¸Slot¹ Subslot numberºSubslot» Module Identification number¼  Submodule Identification number½Ô **Alarm Specifier**
 | Bit 0 to 10: SequenceNumber	
 | Bit 11: ChannelDiagnosis
 | Bit 12: ManufacturerSpecificDiagnosis
 | Bit 13: SubmoduleDiagnosisState
 | Bit 14: not used
 | Bit 15: ARDiagnosisState¾AlarmSpecifier¿ UserStructure IdentifierÀUSIÁ! Alarm information (0..n) bytes) Â	AlarmDataÃ	CONSTANTSÄ	ConstantsÅMAX_PN_ALARM_DATAÆ
2761062426Ç$58c695ac-304e-486a-9a07-0358892da7f8È| | This union either contain Profibus or Profinet alarm information, depending on the used IO subsytem type (see: |RALARM|).É
1267195262ÊProfibus alarm informationËProfinet alarm informationÌ	996468414Í$406c9b69-07cd-4f68-98f6-648eff1b3a53η
 | The function block ADDR_TO_ID converts the physical identification of a slot of a PROFIBUS DP-slave or subslot of a PROFINET IO Device to a handle which can be used with the Communication Function Blocks.
 .. admonition:: Code-Example: get ID with ADDR_TO_ID
    .. code-block:: codesys
        PROGRAM PLC_PRG
            ID : DWORD := CommFB.Constants.INVALID_ID;
            convertAddr : CommFB.ADDR_TO_ID;
            addr : CommFB.ADDR_TYPE;    
            errorCode : UDINT;  
        END_VAR
        addr.SYSTEM := CommFB.IO_SYSTEM_TYPE.PROFINET_IO;
        addr.PN.MASTER := PN_Controller.MasterID;
        addr.PN.D.STATIONNAME := 'wago1';
        //addr.PN.D.INSTANCE := ?;      Instance Nr - not relevant for ADDR_TO_ID()
        //addr.PN.D.DEVICE := ?;        Device-ID   - not relevant for ADDR_TO_ID()
        //addr.PN.D.VENDOR := ?;        Vendor-ID   - not relevant for ADDR_TO_ID()
        addr.PN.API := 0;
        addr.PN.SLOT := 2;              
        addr.PN.SUBSLOT := 1;
        convertAddr(EN := TRUE, ADDR := addr);
        IF(convertAddr.ENO) THEN
            ID := convertAddr.ID;       // --> use this ID in RDREC, WRREC etc.
            errorCode := convertAddr.STATUS;        //failed !
        END_IF
2162247043Ðl Data structure to define the address of a slot of a PROFIBUS DP-slave or a subslot of a PROFINET IO Device Ñ Handle Ò
3047466680Ó$5161bf82-7645-4eca-8762-c6c281eca346Ô
2226880784Õ
4047983231Ö	796882652×	112602267Ø	331523042ÙuiMajorÚuiMinorÛ
uiServicePackÜuiPatchÝ
3231598516Þ$5181460b-9464-4c0f-82f2-1f9633a4c34eß
1518820524àTEST_ANY_DIFFER_DATATYPEáTEST_ANY_EQUALSâTEST_BOOL_DIFFERãTEST_BOOL_EQUALSäTEST_BYTE_DIFFERåTEST_BYTE_EQUALSæTEST_DATE_AND_TIME_DIFFERçTEST_DATE_AND_TIME_EQUALSèTEST_DATE_DIFFERéTEST_DATE_EQUALSêTEST_DINT_DIFFERëTEST_DINT_EQUALSìTEST_DWORD_DIFFERíTEST_DWORD_EQUALSîTEST_INT_DIFFERïTEST_INT_EQUALSðTEST_LINT_DIFFERñTEST_LINT_EQUALSòTEST_LREAL_DIFFERóTEST_LREAL_EQUALSôTEST_LTIME_DIFFERõTEST_LTIME_EQUALSöTEST_LWORD_DIFFER÷TEST_LWORD_EQUALSøTEST_REAL_DIFFERùTEST_REAL_EQUALSúTEST_SINT_DIFFERûTEST_SINT_EQUALSüTEST_STRING_DIFFERýTEST_STRING_EQUALSþTEST_TIME_DIFFERÿTEST_TIME_EQUALS€TEST_TIME_OF_DAY_DIFFERTEST_TIME_OF_DAY_EQUALS‚TEST_UDINT_DIFFERƒTEST_UDINT_EQUALS„TEST_UINT_DIFFER…TEST_UINT_EQUALS†TEST_ULINT_DIFFER‡TEST_ULINT_EQUALSˆTEST_USINT_DIFFER‰TEST_USINT_EQUALSŠTEST_WORD_DIFFER‹TEST_WORD_EQUALSŒCfUnitµ
    This testsuite tests the different assert-functions for all the different data types in TwinCAT.
    For every data type at least two different tests have been defined:
        1. One test that succeeds (Expected and actual are equal)
        2. One test that fails (Expected and actual are false).
1070688907FB_PrimitiveTypes
3620816422‘Test_LINT_Differ’LInt“FB_PRIMITIVETYPES•$0cb4e3f2-729d-4d75-8a0a-07516a9794ee–$d6f75dd1-f045-4082-8776-85982b0ae74c—
1656850260˜Test_DATE_Differ™Dateš$ebffe951-7f27-462e-ba85-3f2a43270aec›
1488232747œTest_DWORD_Differ$66ceea20-5a7d-4b95-b1eb-e7ee3c4b70abž
2180744207ŸTest_USINT_Equals $cde72b40-2fd6-4a92-a04b-0269b424b2b7¡
2473017636¢Test_TIME_OF_DAY_Equals£	TimeOfDay¤$85b6b1a1-2462-4da9-a251-839c4ad33df3¥
3533535052¦Test_BOOL_Equals§$d651b9d0-71bd-4878-9d2a-2c66a765b494¨
4042043810©Test_LINT_Equalsª$3c0c4aa8-9424-42f1-8731-d26293625ab3«
3162049214¬Test_BYTE_Differ­$9fca7156-628d-44c1-894f-faa6a71a4cb1®
1195216282¯	753850732°Test_DINT_Differ±$418a15a8-8942-49de-a21f-56f7300e9e30²	198389480³Test_DINT_Equals´$fa1d9c35-669d-435c-9546-d70c8c7a94b2µ
2627522554¶Test_LREAL_Equals·AnyReal¸$a6c932be-4f0b-491a-ad95-e6f71c55d689¹
4139474265ºTest_WORD_Differ»$317e9494-4efd-4b73-a4a1-57f443dfc0a8¼
3968155212½Test_TIME_Differ¾Time¿$a2a654a2-ed53-4c52-a509-5a2db7ecc761À
2604989754ÁTest_BYTE_EqualsÂ$c70715ae-5a04-466d-b626-61983eac447dÃ	284634104ÄTest_REAL_EqualsÅRealÆ$3ff5f032-f56a-4bde-877a-abef9f04842eÇ
4191488800È
1728221018ÉTest_DWORD_EqualsÊ$8ebd3af4-2c8a-4b2c-8bd9-6ffcce8288b9Ë
3497657072Ì
3823116006Í
2889501815ÎTest_ANY_Differ_DataTypeÏ$727d1587-a665-48c7-a3e8-8439592b1864Ð	915563648ÑTest_LTIME_DifferÒLTimeÓ$7a97b632-b7b0-4607-996d-4d3bf6c0810cÔ
1324226636ÕTest_ULINT_EqualsÖULInt×$77c931b5-b02f-44a9-aa1d-9b1c38d24d32Ø
1014784762ÙTest_LWORD_DifferÚ$42c0d250-6fed-4761-bbd6-b6618c453bf5Û
3235634345ÜTest_ANY_EqualsÝ$f83e4948-5c3d-4d05-8637-52a58b5c2c14Þ
2592807266ßTest_UDINT_Differà$62ab8ea6-6d7c-4923-bc8b-9990cfa99a91á	183225360âTest_STRING_DifferãThis is a stringäThis is another stringå$bd078c70-d4cc-4f1e-9b59-781cb6a3aadbæ
3515263709çTest_WORD_Equalsè$4e51651a-d7d1-4780-80a3-72ea1ca78f2bé	653268572êTest_SINT_Differë$00951826-692b-41c4-8e91-b80ea25e2eb7ì
3192760958íTest_USINT_Differî$b15f330c-b7f1-4831-a041-9baf2e7afb7fï30269912ðTest_SINT_Equalsñ$74a08324-89cf-4885-85ec-ab50cb20e9c6ò
3417885128óTest_TIME_Equalsô$73b6837a-0142-4874-8ee8-8557d9cc2dc5õ	470409468ö63589515÷Test_LWORD_Equalsø$81ec823f-5c65-4a2b-80ae-540b503cacbeù
1661423725úTest_INT_Differû$0e29bf59-ed94-41f5-80b8-e9cb3b8b1c20ü	153373425ýTest_LTIME_Equalsþ$f78dfe01-ebfd-4eef-9bb6-b1e9a54045a9ÿ	138473335€Test_DATE_AND_TIME_EqualsDateAndTime‚$12feba5c-6f76-4f0c-8b02-2cdd4212851cƒ
2314545827„Test_INT_Equals…$fcdc4c69-64f9-42c0-b5cf-f07a205198f8†	936041596‡Test_REAL_Differˆ$eeecbc98-51d6-4618-88bd-2fcd3dc91d0b‰
4090862110Š
2737496459‹Test_LREAL_DifferŒ$e338a5cf-2fe9-45bc-b970-d38cea93e991
1901606461ŽTest_ULINT_Differ$0d0d9e30-1840-46c4-a3ac-cf0cd182d193
3855610535‘Test_DATE_AND_TIME_Differ’$105dcf9b-120f-47e5-b827-eb4805658d35“
1174171856”Test_DATE_Equals•$810985db-2155-47b2-8546-863846ff9ab5–
2277019686—Test_UINT_Equals˜$ea252140-8e94-46a4-ad1a-7cc742796fea™
1901659501šTest_TIME_OF_DAY_Differ›$88c402bd-74ed-48a9-9ffb-b2c7b47dde3cœ
2693097378Test_UINT_Differž$2925eb23-7cf3-4688-b8fb-8da6c368ee8fŸ
4120936648 Test_BOOL_Differ¡$6279ed0b-29d3-4713-a912-29375b72f630¢
2772252435£Test_UDINT_Equals¤$f4df0884-683d-4a41-ab0c-743fcd42e36b¥	163799222¦Test_STRING_Equals§Hello there¨$ed0937c8-047c-4f54-9007-aa5de45de9b3©ASSERTTHATINTSAREEQUALªASSERTTHATINTSARENOTEQUAL«ASSERTTHATWORDSAREEQUAL¬ASSERTTHATWORDSARENOTEQUAL­÷ 
    This testsuite verifies that the Assert_True and Assert_False methods do what they are supposed to. It does so
    by making sure that every assert-method (assert_true & assert_false) does both one failing and one successful
    assert.
1271152990¯FB_AssertTrueFalse°	246191547±AssertThatINTsAreEqual²FB_ASSERTTRUEFALSE³$e329edff-158b-47b8-b448-4482e312fc51´$4a344c15-007d-4e24-b34e-25e793163fe6µ	320104211¶
3984085859·AssertThatINTsAreNotEqual¸$e9713416-6687-4536-b3eb-d0e312881039¹	103446585º
2122037051»
1025769214¼AssertThatWORDsAreNotEqual½$7f2e9dc0-aaa1-4524-9220-4e31b7d76d84¾
2716321451¿
3593351592ÀAssertThatWORDsAreEqualÁ$cb8a8728-6b7f-485b-9255-e9e2c3d7b1b4Â	690419177ÃTWICEASSERTCALLÄÆ
    In this testsuite we are running the same testcase over two cycles, and thus calling every assert method twice.
    This is in order to verify that we don't print every FAILED assert twice.
1989861691ÆFB_AssertEveryFailedTestTwiceÇAssertCountÈ
2696038033ÉFB_ASSERTEVERYFAILEDTESTTWICEÊ$3bea6e4d-8d08-467b-90da-24a784807eaeË
4282869222Ì
2625023338Í
2448907021Î
4171858112ÏTwiceAssertCallÐaANYÑbANYÒaBOOLÓbBOOLÔaBYTEÕbBYTEÖaDATE×bDATEØaDATE_AND_TIMEÙbDATE_AND_TIMEÚaDINTÛbDINTÜaDWORDÝbDWORDÞaINTßbINTàaLINTábLINTâaLREALãbLREALäaLTIMEåbLTIMEæaLWORDçbLWORDèaREALébREALêaSINTëbSINTìHello worldíaSTRINGî	Hey thereïbSTRINGðaUDINTñbUDINTòaUINTóbUINTôaULINTõbULINTöaUSINT÷bUSINTøaTIMEùbTIMEúaTIME_OF_DAYûbTIME_OF_DAYüaWORDýbWORDþ$69d3987a-7ce5-4206-ac7a-879b67c9a54dÿ	365334915€ TESTONE 
TESTONE_AGAIN‚ TESTONE_AGAINAGAINƒ TESTONE_AGAINAGAINAGAIN„ Ï
    This testsuite creates four tests in the same testsuite with the same name. Every test in a testsuite should have
    an unique name. Every assert should be ignored if a duplicate test is being run.
3250938232† FB_CreateFourTestsWithSameName‡ 
3281589091ˆ TestOne_AgainAgain‰ FB_CREATEFOURTESTSWITHSAMENAMEŠ $f97b8825-364c-4046-983a-104d2c070686‹ $7b1f39ab-8960-43b8-8ec6-8f13e574f736Œ 
3191698294 
4168777753Ž TestOne_AgainAgainAgain $2d274c02-8a97-4c6e-806e-1f05be2e2af3 
1209541766‘ 
TestOne_Again’ $01798474-e702-41c3-94c8-ec7fd2bc4723“ 
1643426206” 
3146324223• 
3050414125– TestOne— $a0db3538-83d9-431d-9b73-12250812435f˜ 
3475197072™ 	143144007š TEST_BOOL_ARRAY_DIFFERINCONTENT› TEST_BOOL_ARRAY_DIFFERINSIZEœ TEST_BOOL_ARRAY_EQUALS TEST_BYTE_ARRAY_DIFFERINCONTENTž TEST_BYTE_ARRAY_DIFFERINSIZEŸ TEST_BYTE_ARRAY_EQUALS  TEST_DINT_ARRAY_DIFFERINCONTENT¡ TEST_DINT_ARRAY_DIFFERINSIZE¢ TEST_DINT_ARRAY_EQUALS£  TEST_DWORD_ARRAY_DIFFERINCONTENT¤ TEST_DWORD_ARRAY_DIFFERINSIZE¥ TEST_DWORD_ARRAY_EQUALS¦ TEST_INT_ARRAY_DIFFERINCONTENT§ TEST_INT_ARRAY_DIFFERINSIZE¨ TEST_INT_ARRAY_EQUALS© TEST_LINT_ARRAY_DIFFERINCONTENTª TEST_LINT_ARRAY_DIFFERINSIZE« TEST_LINT_ARRAY_EQUALS¬  TEST_LREAL_ARRAY_DIFFERINCONTENT­ TEST_LREAL_ARRAY_DIFFERINSIZE® TEST_LREAL_ARRAY_EQUALS¯ "TEST_LREAL_ARRAY2D_DIFFERINCONTENT° TEST_LREAL_ARRAY2D_DIFFERINSIZE± TEST_LREAL_ARRAY2D_EQUALS² "TEST_LREAL_ARRAY3D_DIFFERINCONTENT³ TEST_LREAL_ARRAY3D_DIFFERINSIZE´ TEST_LREAL_ARRAY3D_EQUALSµ  TEST_LWORD_ARRAY_DIFFERINCONTENT¶ TEST_LWORD_ARRAY_DIFFERINSIZE· TEST_LWORD_ARRAY_EQUALS¸ TEST_REAL_ARRAY_DIFFERINCONTENT¹ TEST_REAL_ARRAY_DIFFERINSIZEº TEST_REAL_ARRAY_EQUALS» !TEST_REAL_ARRAY2D_DIFFERINCONTENT¼ TEST_REAL_ARRAY2D_DIFFERINSIZE½ TEST_REAL_ARRAY2D_EQUALS¾ !TEST_REAL_ARRAY3D_DIFFERINCONTENT¿ TEST_REAL_ARRAY3D_DIFFERINSIZEÀ TEST_REAL_ARRAY3D_EQUALSÁ TEST_SINT_ARRAY_DIFFERINCONTENT TEST_SINT_ARRAY_DIFFERINSIZEà TEST_SINT_ARRAY_EQUALSÄ  TEST_UDINT_ARRAY_DIFFERINCONTENTÅ TEST_UDINT_ARRAY_DIFFERINSIZEÆ TEST_UDINT_ARRAY_EQUALSÇ TEST_UINT_ARRAY_DIFFERINCONTENTÈ TEST_UINT_ARRAY_DIFFERINSIZEÉ TEST_UINT_ARRAY_EQUALSÊ  TEST_ULINT_ARRAY_DIFFERINCONTENTË TEST_ULINT_ARRAY_DIFFERINSIZEÌ TEST_ULINT_ARRAY_EQUALSÍ  TEST_USINT_ARRAY_DIFFERINCONTENTÎ TEST_USINT_ARRAY_DIFFERINSIZEÏ TEST_USINT_ARRAY_EQUALSÐ TEST_WORD_ARRAY_DIFFERINCONTENTÑ TEST_WORD_ARRAY_DIFFERINSIZEÒ TEST_WORD_ARRAY_EQUALSÓ õ
    This testsuite tests the different assert-functions for all the different type of arrays (varying by the different
    data types that are available in TwinCAT). For every type of array (BOOL, BYTE, INT etc.) at least three different
    tests have been defined:
        1. One test that succeeds, where the data and size of the arrays are matching
        2. One test that fails, where the size of the arrays differs
        3. One test that fails, where the content of the array differs
2699084327Õ FB_ArrayPrimitiveTypesÖ 
1283235838× Test_UINT_Array_DifferInSizeØ FB_ARRAYPRIMITIVETYPESÙ $b31cd7c7-b957-491f-bd93-b12e1f3bbcd4Ú $50358d3a-b100-454e-8d82-abe092455655Û 
3953698730Ü Test_LREAL_Array_DifferInSizeÝ $0a4de673-fd9b-43b6-850e-74dbd41b55a8Þ 
2081626709ß Test_BOOL_Array_DifferInSizeà $41caa71a-6ab3-4490-bc09-94996e7d75baá 
3952018129â Test_SINT_Array_DifferInSizeã $1e2cf123-18a8-4cbd-8e48-7b26724ed431ä 
3484298254å !Test_REAL_Array2d_DifferInContentæ $d59b10ba-c9b8-4aa5-b74d-ea45c0a97441ç 
2541860279è Test_UDINT_Array_Equalsé $6c304295-4f17-4c57-8891-0f1fad1602aaê 
1835772602ë Test_UINT_Array_DifferInContentì $da5beac5-bfad-43f6-bccf-6e73673259adí 
3270196743î 
4121323061ï Test_BYTE_Array_Equalsð $8cb3cfd1-77fc-469e-8ac9-576771a3f2cañ 
1626830512ò  Test_UDINT_Array_DifferInContentó $d7edb2d8-5f1b-4ffb-9939-432d3de30e56ô 
2181332731õ Test_REAL_Array_DifferInContentö $d301c239-4bf1-4c0d-85af-4599db00b21a÷ 
3414218012ø Test_UDINT_Array_DifferInSizeù $ad97c736-6e06-46d5-9c00-65f6c2edd9e0ú 56003460û Test_REAL_Array_Equalsü $703914ba-e617-4db8-9101-ad1e09d951faý 	460706827þ Test_WORD_Array_DifferInSizeÿ $63e71fa0-e00e-4421-8325-513028737c05€!
3793371623! Test_DWORD_Array_DifferInContent‚!$f7dc0453-b8e0-4434-a8ea-0a0c1ad42e07ƒ!	467253204„!!Test_REAL_Array3d_DifferInContent…!
__Index__2†!$0218ea1f-8ab3-4780-855a-4bda76b4bd29‡!
3426194533ˆ!Test_REAL_Array2d_Equals‰!$c2e03616-7116-4142-98e9-1cdbbf9188f6Š!	549657412‹! Test_LWORD_Array_DifferInContentŒ!$d3192e95-f722-47ec-b7f2-44bda4348e2f!
3283755235Ž!Test_REAL_Array3d_DifferInSize!$2f5f884e-e0a5-4854-ae56-af720801bb1f!
2106604960‘!Test_UINT_Array_Equals’!$9766c6d1-f91e-4861-a12b-6da36072d9a8“!	716197780”!Test_USINT_Array_DifferInSize•!$c5f2ed88-90cb-4cd5-b782-f07722f54aa3–!	465230461—!Test_SINT_Array_Equals˜!$43848a04-b953-4660-8589-62195d762770™!
2178838410š!Test_LINT_Array_Equals›!$4bdfad96-2390-412b-a1a3-fa1e514fb731œ!	616078359!Test_REAL_Array3d_Equalsž!$ac6e988d-1d5a-4b2f-9434-494cd25e9d00Ÿ!
2021118962 !Test_LINT_Array_DifferInSize¡!$63ab26dc-0fab-4888-8aea-e3bd038f5016¢!	994396293£!Test_BOOL_Array_Equals¤!$602dc3c1-d714-446a-b1c9-fe3db70e04f2¥!	559292979¦!Test_INT_Array_DifferInSize§!$33a9368b-fc55-4cd4-8de0-0f331d4f93ed¨!
1122440789©!Test_LREAL_Array3d_Equalsª!$35a98408-a9d2-467b-ab41-be1336f4d5d1«!
2350659139¬!Test_LREAL_Array2d_DifferInSize­!$28f95767-365d-466d-b941-002765b7aacb®!
3175161527¯!Test_BYTE_Array_DifferInContent°!$5a3fc488-ce8e-4416-afcb-989908d1a477±!
3735703926²!Test_DINT_Array_Equals³!$d64e3057-abc8-4ec9-90f7-e0bae1e032aa´!
1570086498µ!Test_LREAL_Array2d_Equals¶!$78fed880-525c-48dc-8dc2-6a8b82a2b4e4·!	830890264¸!Test_DINT_Array_DifferInContent¹!$21b235e1-384f-4032-a872-5b20bb0909a6º!	313734004»!Test_SINT_Array_DifferInContent¼!$68217455-3726-49b2-85d5-66552f2e3d11½!
3758696761¾! Test_LREAL_Array_DifferInContent¿!$31469020-3298-4354-8358-e4fbceae9705À!	940798199Á!Test_WORD_Array_DifferInContentÂ!$7043cf17-eda5-41c0-8101-ae3e52fdbf57Ã!
4124015028Ä!Test_DWORD_Array_DifferInSizeÅ!$c334c67b-514e-4468-90d8-4277568b0b2aÆ!
1214728264Ç!Test_INT_Array_EqualsÈ!$ff6e4d4a-b40e-4bcd-b765-ce99ddf56df3É!
1477388691Ê!Test_REAL_Array2d_DifferInSizeË!$d16073c4-cace-4970-8af2-a2b4804325d1Ì!
1571139330Í!Test_USINT_Array_EqualsÎ!$024c8113-991a-4779-a9f7-55567c26bb69Ï!
1434196650Ð!Test_REAL_Array_DifferInSizeÑ!$f718071d-c28b-4a93-b758-c0cdbe82cc9aÒ!	955244002Ó!Test_BOOL_Array_DifferInContentÔ!$7b271ca5-8f9a-4fcf-9207-0915581f4c7cÕ!
2908960794Ö!Test_BYTE_Array_DifferInSize×!$adf0d435-012a-46fa-86ef-fb8e0dd23d8dØ!	402120151Ù!
1138834347Ú!
1431320248Û!
2852748274Ü! Test_ULINT_Array_DifferInContentÝ!$b79f6469-858a-402c-849d-dc166751ba74Þ!
1859603635ß!"Test_LREAL_Array2d_DifferInContentà!$9363c675-3308-4b60-90d8-bc707c8055bbá!
3304282053â!
2048032359ã!Test_INT_Array_DifferInContentä!$b81da39f-9c49-4b61-a088-a3afaeda8830å!	688685866æ!Test_LREAL_Array_Equalsç!$09667cfd-34f5-4531-bd9a-4046fa57fdcbè!
1099872069é!Test_LWORD_Array_Equalsê!$a80af460-c72c-448c-aeb0-96d724afc9a5ë!
2682207806ì!Test_LREAL_Array3d_DifferInSizeí!$18a94bce-050f-43d3-b411-b74954895b02î!	596550510ï! Test_USINT_Array_DifferInContentð!$a21148d1-d45d-4070-b3a5-fadc62daa9f6ñ!
1838016790ò!Test_DWORD_Array_Equalsó!$b0c44502-c8cc-4726-8b79-ef1c800cbe36ô!
1567077497õ!Test_WORD_Array_Equalsö!$e858d122-3913-46cd-84b3-f0f6a3a3b0a4÷!
3064787725ø!Test_DINT_Array_DifferInSizeù!$86eb5976-92fb-4ce3-948d-bdf07eb99e3eú!
2088439193û!Test_LWORD_Array_DifferInSizeü!$3d52b6dd-665b-4dc1-88a4-e1331996e9c4ý!	425218498þ!Test_ULINT_Array_Equalsÿ!$8b0f2531-7534-4e71-a52f-4d759d52b09f€"
1068957092""Test_LREAL_Array3d_DifferInContent‚"$e361e8eb-896b-43c9-aa55-90f36713ed72ƒ"
3033418415„"Test_LINT_Array_DifferInContent…"$2698005b-e405-4442-b11f-bb5aab8920b0†"
1406480748‡"Test_ULINT_Array_DifferInSizeˆ"$6e834fe5-5254-48ec-9178-d37e9e35a502‰"TESTDISABLEDŠ"TESTENABLED‹"µ
    This testsuite runs two tests. One that is enabled (and that is supposed to fail), and one that is disabled (and
    even though it also is failing is not supposed to run).
2499854457"FB_CreateDisabledTestŽ"
1628698511"TestEnabled"FB_CREATEDISABLEDTEST‘"$aaa74956-ecdb-40ff-a4da-e0ad237c9503’"$3f1093ff-32d2-455a-8cf0-190014c55a4c“"
4132480384”"
2238999680•"TestDisabled–"$773db475-8255-416d-8669-8526d3357b4d—"
1023559596˜"
4290862005™"
3909217540š"
3836025984›"TEST_ANY_BOOL_DIFFERœ"TEST_ANY_BOOL_EQUALS"TEST_ANY_BYTE_DIFFERž"TEST_ANY_BYTE_EQUALSŸ"TEST_ANY_DATE_AND_TIME_DIFFER "TEST_ANY_DATE_AND_TIME_EQUALS¡"TEST_ANY_DATE_DIFFER¢"TEST_ANY_DATE_EQUALS£"TEST_ANY_DINT_DIFFER¤"TEST_ANY_DINT_EQUALS¥"TEST_ANY_DWORD_DIFFER¦"TEST_ANY_DWORD_EQUALS§"TEST_ANY_INT_DIFFER¨"TEST_ANY_INT_EQUALS©"TEST_ANY_LINT_DIFFERª"TEST_ANY_LINT_EQUALS«"TEST_ANY_LREAL_DIFFER¬"TEST_ANY_LREAL_EQUALS­"TEST_ANY_LTIME_DIFFER®"TEST_ANY_LTIME_EQUALS¯"TEST_ANY_LWORD_DIFFER°"TEST_ANY_LWORD_EQUALS±"TEST_ANY_REAL_DIFFER²"TEST_ANY_REAL_EQUALS³"TEST_ANY_SINT_DIFFER´"TEST_ANY_SINT_EQUALSµ"TEST_ANY_STRING_DIFFER¶"TEST_ANY_STRING_EQUALS·"TEST_ANY_TIME_DIFFER¸"TEST_ANY_TIME_EQUALS¹"TEST_ANY_TIME_OF_DAY_DIFFERº"TEST_ANY_TIME_OF_DAY_EQUALS»"TEST_ANY_UDINT_DIFFER¼"TEST_ANY_UDINT_EQUALS½"TEST_ANY_UINT_DIFFER¾"TEST_ANY_UINT_EQUALS¿"TEST_ANY_ULINT_DIFFERÀ"TEST_ANY_ULINT_EQUALSÁ"TEST_ANY_USINT_DIFFERÂ"TEST_ANY_USINT_EQUALSÃ"TEST_ANY_WORD_DIFFERÄ"TEST_ANY_WORD_EQUALSÅ"î
    This testsuite tests the different assert-functions for all the primitive data types in TwinCAT, but using the
    ANY-version of the Assert-method.
    For every data type at least two different tests have been defined:
        1. One test that succeeds (Expected and actual are equal)
        2. One test that fails (Expected and actual are false).
    For every failing test the printed value should be the same as if we were using the primitive data type assert
    directly. 
2825987487Ç"FB_AnyPrimitiveTypesÈ"
2296896902É"Test_ANY_TIME_DifferÊ"FB_ANYPRIMITIVETYPESË"$361fa935-4959-4eb6-b25a-f9965f1f30ddÌ"$bf0ad75f-805b-4448-a5e9-9fafb9350eaaÍ"
3592231864Î"Test_ANY_DINT_EqualsÏ"$ac4e8032-dccc-4a7e-9803-44020c8533e4Ð"
1000547020Ñ"Test_ANY_ULINT_EqualsÒ"$f13de1a5-523a-4c9d-8e7e-8c0b2840de93Ó"
1806283063Ô"Test_ANY_ULINT_DifferÕ"$dae19af6-fcc2-42c1-aaca-8dc7c861bdccÖ"
1893644941×"Test_ANY_DATE_AND_TIME_DifferØ"$0d3f804a-d51e-43e6-bd81-f031ee7308e1Ù"
2437122568Ú"Test_ANY_SINT_DifferÛ"$b0f8ac71-681f-4f1a-94dd-32b085f23744Ü"
2912586807Ý"Test_ANY_BOOL_DifferÞ"$9def4202-9b1d-4fca-a694-7baecaa73c6dß"
3487798320à"Test_ANY_LTIME_Equalsá"$ccdb0dec-fafe-402a-802f-577154e15f12â"
2682849227ã"Test_ANY_LTIME_Differä"$c72b07c9-bd17-4b41-8647-93f2630ffe0cå"
4230101695æ"Test_ANY_DINT_Differç"$cb70e186-1a96-4b29-985d-60f5f4684775è"	930357502é"
3700644572ê"Test_ANY_UDINT_Equalsë"$9c466d83-1d0b-48d6-a187-0404dcd7fc0cì"
2445959671í"Test_ANY_STRING_Differî"$8384ce7c-1f54-4249-9dc0-3b2f1dfa1e90ï"
2732129409ð"Test_ANY_TIME_Equalsñ"$8b715def-1875-46d4-8b4b-cd8cbb83966fò"12461003ó"Test_ANY_LREAL_Equalsô"$d886c391-4ffc-42ba-aacc-8f8f2b3a5e54õ"
4221124688ö"Test_ANY_DATE_Differ÷"$cfc83bfe-e5f8-4bb0-9243-3c64bb120daeø"
2755016397ù"Test_ANY_USINT_Equalsú"$44a01ea7-d3cf-4d20-aeb7-e4787721e931û"
2430674199ü"Test_ANY_INT_Differý"$3902bfc9-94f5-457a-8cf1-bf8e15c96e38þ"	138420671ÿ"Test_ANY_WORD_Equals€#$962442d1-3576-440d-880d-7ca8abee0ca2#
1390932524‚#Test_ANY_BYTE_Equalsƒ#$2f42883b-2905-4fcf-ab87-5d19e1fac7b2„#	578748600…#Test_ANY_WORD_Differ†#$684677fe-b88b-4336-9954-f4e16d3d3cf5‡#	624049899ˆ#Test_ANY_TIME_OF_DAY_Equals‰#$54c634d0-a0c1-46c0-81a9-2d082c52fde4Š#	720044093‹#Test_ANY_REAL_DifferŒ#$f2472e3d-089e-474c-b4b8-54a3d353ad64#	856130493Ž#
3410836388#Test_ANY_LINT_Equals#$668fbd05-1b2c-4b08-8d52-d1aaaa059802‘#
1419013707’#
3145509647“#Test_ANY_SINT_Equals”#$630cc9a7-6d4d-40eb-ab44-a0a4844068f6•#
3644680110–#Test_ANY_DATE_AND_TIME_Equals—#$3b6f68a1-4ae4-42ef-9963-3b1290dfe7f6˜#
1677282816™#Test_ANY_TIME_OF_DAY_Differš#$6a1b7492-d6c5-4590-b52d-c2c8e1ee1844›#
3691440655œ#Test_ANY_DWORD_Differ#$23ed3054-fb0f-4676-a33d-13cb685f2f27ž#	267086174Ÿ#Test_ANY_LWORD_Differ #$ef3f03f1-1a53-4489-8c36-c28660c1e7b7¡#
1608645285¢#Test_ANY_LWORD_Equals£#$19993f03-49d7-4cee-97a1-88ff9d9eb2e6¤#13902138¥#Test_ANY_REAL_Equals¦#$8290f811-4b5b-4e83-b6ee-422a2bd05e2b§#
3578830441¨#
2653464199©#Test_ANY_STRING_Equalsª#$45fb731e-62a5-4739-983d-66e18d9850be«#	486070871¬#
1354018864­#Test_ANY_LREAL_Differ®#$c7618ef1-aae1-478a-8d43-1bb5a958b641¯#
3782351523°#Test_ANY_LINT_Differ±#$fb115c0d-34a2-4d3c-af00-30e036afd5d7²#	246386581³#Test_ANY_INT_Equals´#$16ed816c-bec6-46ce-a406-42d965e0fb31µ#
4097615158¶#Test_ANY_USINT_Differ·#$feb2c66c-f754-4a55-ba64-e1fdc77ddce6¸#
2358888743¹#Test_ANY_UDINT_Differº#$e30459bf-ebf3-48ab-a1c1-3d0dd57a829e»#
3517342039¼#Test_ANY_DATE_Equals½#$d466f1ae-1c99-4517-81d7-ba44ee80c32f¾#
2275781936¿#Test_ANY_BOOL_EqualsÀ#$24b88842-0df5-436f-8f65-86f62612214cÁ#
3266197740Â#Test_ANY_UINT_DifferÃ#$6fcb372c-bdc6-4fa3-bdd8-941d914d6b3aÄ#
2027475755Å#Test_ANY_BYTE_DifferÆ#$dd37329d-bb06-4679-abf4-e4d04399c232Ç#
3901823467È#Test_ANY_UINT_EqualsÉ#$9e678934-ef5b-42e1-a53f-17737ee06d35Ê#
2349627892Ë#Test_ANY_DWORD_EqualsÌ#$5708854e-5f0b-4ac2-80a1-0b3d9009a3edÍ#TWICEASSERTCALL_ARRAYSÎ#ú
    In this testsuite we are running the same testcase over two cycles, and thus calling
    every assert method twice. This is in order to verify that we don't print every FAILED assert twice.
    With this version we are doing it with arrays.
2731224403Ð#)FB_AssertEveryFailedTestTwiceArrayVersionÑ#
3310563177Ò#)FB_ASSERTEVERYFAILEDTESTTWICEARRAYVERSIONÓ#$5b8060b0-3687-4b9b-9022-5637e5f78c2dÔ#
3280665375Õ#TwiceAssertCall_ArraysÖ#aLREAL2d×#bLREAL2dØ#aLREAL3dÙ#bLREAL3dÚ#aREAL2dÛ#bREAL2dÜ#aREAL3dÝ#bREAL3dÞ#$3223af5e-9433-428f-b1bd-3d3746f6e73fß#
4253876260à#
2568231803á#	867412798â#	910118007ã#TEST_BITä#	TEST_BOOLå#	TEST_BYTEæ#	TEST_DATEç#TEST_DATE_AND_TIMEè#	TEST_DINTé#
TEST_DWORDê#TEST_INTë#	TEST_LINTì#
TEST_LREALí#
TEST_LTIMEî#
TEST_LWORDï#	TEST_REALð#	TEST_SINTñ#TEST_STRINGò#
TEST_STRING_2ó#	TEST_TIMEô#TEST_TIME_OF_DAYõ#
TEST_UDINTö#	TEST_UINT÷#
TEST_ULINTø#
TEST_USINTù#	TEST_WORDú#TEST_WSTRINGû#2
    Tests the free function F_AnyToUnionValue.
ü#	950625724ý#FB_AnyToUnionValueþ#9 Only structures and function blocks can have BIT definedÿ#Bit€$aBit$	681837092‚$	Test_DINTƒ$result„$FB_ANYTOUNIONVALUE…$$c81a9536-5ff4-4424-9f7e-1d8c5133b5e3†$$0cc46357-158c-41b7-afc0-2c79ec82f0f6‡$
3917569571ˆ$Test_BIT‰$$2bab70c5-093e-48a7-94e6-ae7f2bb2e7b3Š$	566006787‹$
Test_LREALŒ$$af2fee48-9d46-49ec-9fe0-6a046d6c2f7d$	311731436Ž$
Test_UDINT$$2ae444f0-9149-4c01-b7ad-2fdcab7bba7c$	975394959‘$	Test_REAL’$$5ff5264d-4661-4dc4-8889-01d457341535“$	172755847”$Test_WSTRING•$WString–$This is a random string—$$cd24edfa-28c7-4bf7-ad9e-262f073a3ddf˜$
1665664983™$
4246374902š$
Test_STRING_2›$ 255 charactersœ$ÿ8YNn5KOmPC4dAcpOBdLWnw4WkN126EwXsj65xeurG48gWBepinNaOIKeCVMtWNBSxQWPdtUYiAusDkjMLtQhDtiWbwvmoKcFwiUGDd7pOe0fd52J7hK60oaYAX6VWWmceLJX8utaDVrVzCGXafeZLeHl6jj5enfjg4tfb2WMEBdsBuG2iDKwzwhBLCPqXDnhe5HbemIbtZT7p62OEj2oDqiIYDD6tZdlhBCCelDBx6dbIp32wFm0TpRKsTiwkZ6$$1e075eec-d55a-483a-976e-656d4a8d5ac3ž$	591497212Ÿ$
Test_USINT $$ef948bb4-ae4e-47a7-b963-d71ce86c9997¡$	916277003¢$	Test_SINT£$$fd59d157-95aa-462e-812a-26f74d790e8c¤$	340379343¥$
3522644331¦$
1399560010§$Test_DATE_AND_TIME¨$$76b46507-8743-481c-8853-3b45d1544ad5©$
2731946299ª$	Test_BYTE«$$226781dc-3660-487a-bcbd-00cc36750e0e¬$
1033078010­$	Test_LINT®$$d2a7cc80-d43e-4823-a346-11defa0d180f¯$
2842627597°$	Test_DATE±$$84a5fde1-b357-4804-bf01-5c83bfeb54b3²$84583040³$
4282332081´$
Test_ULINTµ$$5e5e97df-5e62-40a2-b054-3ba7c91cef70¶$63816872·$Test_STRING¸$$825e7694-a502-4c32-9d34-807560d3aa4c¹$
1143447900º$
Test_LTIME»$$1affac86-d501-40a0-99f5-4eeb9cd389fd¼$	102530888½$	Test_WORD¾$$3859891c-ade4-48ca-89f8-da9a77a2ccbb¿$
3374558849À$	Test_TIMEÁ$$e7b3c2aa-6660-47ce-9edf-58924221789cÂ$
3966668324Ã$	Test_BOOLÄ$$48f55beb-9fc1-4336-8784-72fc7eda80deÅ$
3885155971Æ$Test_TIME_OF_DAYÇ$$55ccbe56-fcd0-4e7f-8497-d0c19c60ad6aÈ$
1637131823É$Test_INTÊ$$77ff5bf1-1822-4366-a4ee-34a185c0d47eË$
2178852710Ì$
Test_LWORDÍ$$f0464dd4-9a3f-4fed-bf6c-84c05edc34abÎ$	579344440Ï$
1302761495Ð$	Test_UINTÑ$$3309739e-f1a1-45d7-928b-c636d1592c1cÒ$
3815693493Ó$
Test_DWORDÔ$$e6dfcf37-a491-45b2-9543-b7fdd8847283Õ$ASSERT_SEVERALTIMESÖ$Ä
    This test-suite runs several asserts with the same parameters (same expected, actual, message) in the same cycle
    and in the same test.
    The reason we want the framework to support this is that theoretically the user could want to do an assert with the
    same message, in the same test, with the same data values for both expected and actual, although the data that the
    user does the assert on might be from different data sets.
4081204642Ø$:FB_MultipleAssertWithSameParametersInSameCycleWithSameTestÙ$	613592518Ú$:FB_MULTIPLEASSERTWITHSAMEPARAMETERSINSAMECYCLEWITHSAMETESTÛ$$9957a11f-d554-4b5d-be35-f56d53aab4f2Ü$
2308546305Ý$
3727129239Þ$
3252720130ß$Assert_SeveralTimesà$cá$dâ$eã$fä$$cd07d59b-c5ef-4bab-a334-9a8ba622cccaå$
1729793733æ$
3827496724ç$ÿ Implements a timer with a turn-on delay
 .. code-block:: codesys
    (* Example declaration *)
    TONInst : TON ;
    (* Example in ST *)
    TONInst(IN := VarBOOL1, PT:= T#5s);
    VarBOOL2 := TONInst.Q;
 .. image:: @(Ton)
 .. cds:ranges::
     :IN: [TRUE,FALSE]
     :PT: [0..255]
     :~PT_OLD: [0..255]
     :Q: [TRUE,FALSE]
     :ET: [0..4294967295]
2584096362é$TONê$K | Rising edge: starts delay counter
 | Falling edge: resets delay counterë$INì$$ Time for the delay counter [ms]    í$PTî$d | ``FALSE`` if ``IN`` is ``FALSE``
 | ``TRUE`` if ``IN`` is ``TRUE`` and delay time ``PT`` elapsedï$) Elapsed time since rising edge at ``IN``ð$ETñ$ internal variable ò$	StartTimeó$
2487846102ô$$e1ef856a-b512-4271-b62a-e2b2db25e9c1õ$
2628074829ö$
3509158782÷$
1138189611ø$
3981616308ù$ASSERT_SEVERALTIMESAGAINú$ASSERT_SEVERALTIMESAGAINAGAINû$¿
    This test-suite runs several asserts with the same parameters (same expected, actual, message), calling the asserts
    in different cycles and using different tests.
    On top of this, we will call new asserts (though with same parameters) in later cycles.
    The reason we want the framework to support this is that theoretically the user could want to do an assert with the
    same message, in different tests, with the same data values for both expected and actual, although the data that the
    user does the assert on might be from different data sets.
4068034930ý$IFB_MultipleAssertWithSameParametersInDifferentCyclesButWithDifferentTestsþ$( Timer to call "AssertSeveralTimesAgain"ÿ$Assign€%
TimerAgain%- Timer to call "AssertSeveralTimesAgainAgain"‚%TimerAgainAgainƒ%- Indication of whether we've called all tests„%	CalledAll…%	824481148†%IFB_MULTIPLEASSERTWITHSAMEPARAMETERSINDIFFERENTCYCLESBUTWITHDIFFERENTTESTS‡%$0b8cb81e-eae8-42e4-b5ff-552a60654ab4ˆ%
4221773756‰%
3980418740Š%Assert_SeveralTimesAgainAgain‹%$13865f28-fa53-4b31-8e3e-fc9c2f3580daŒ%
2308466723%
3821193263Ž%
1800543707%Assert_SeveralTimesAgain%$7d562c97-c3cc-4d37-92fc-9c428ab6a443‘%
2347385415’%$5aa8b452-9e18-4334-94e6-939c93281b5b“%	327773621”%–
    This test-suite runs several asserts with the same parameters (same expected, actual, message), calling the asserts
    in different cycles and using the same test.
    On top of this, we will call new asserts (though with same parameters) in later cycles.
    The reason we want the framework to support this is that theoretically the user could want to do an assert with the
    same message, using the same test with the same data values for both expected and actual, and splitting the asserts
    on different cycles.
2872403778–%AFB_MultipleAssertWithSameParametersInDifferentCyclesAndInSameTest—%
2988540845˜%AFB_MULTIPLEASSERTWITHSAMEPARAMETERSINDIFFERENTCYCLESANDINSAMETEST™%$b90749b6-04c8-4717-bf88-8db2fbf83f6aš%4280250›%
1229944362œ%
3183058166%gž%hŸ%k %l¡%m¢%n£%o¤%p¥%q¦%rr§%$fec25683-5d3d-4525-82ab-3bcd5de9b899¨%	859150843©%
2622326539ª%7TESTINSTANCEPATH220CHARSEXPECTSHORTENEDTESTINSTANCEPATH«%5TESTINSTANCEPATH252CHARSEXPECTTOOLONGTESTINSTANCEPATH¬%5TESTINSTANCEPATH255CHARSEXPECTTOOLONGTESTINSTANCEPATH­%§ This testsuite tests the function block FB_AdjustAssertFailureMessageToMax255CharLength_Test
   The total printed message can not be more than 252 characters long.
2889695940¯%3FB_AdjustAssertFailureMessageToMax252CharLengthTest°%
2765194856±%3FB_ADJUSTASSERTFAILUREMESSAGETOMAX252CHARLENGTHTEST²%$305341a5-f462-4bcb-ba17-ae2773c50e69³%
4228322229´%
2152342082µ%7TestInstancePath220CharsExpectShortenedTestInstancePath¶% @Text-Fixture·%ÜPRG_TEST.LongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceName@LONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELO¸% TestInstancePathNameWith220Chars¹%<Very long message that is 60 characters long which means thaº%TooLongTestMessage60Chars»%‹ @Test-Result-Expected
 220 + 32 = 252 (in other words, expected test message should be 32 characters long including '...TestMsg too long'¼% Very long mes...TestMsg too long½%TestMessageResultExpected¾%
 @Test-Result¿%TestInstancePathResultÀ%TestMessageResultÁ%$dc008964-f701-440f-97f6-bba60a51fe93Â%
1575012293Ã%5TestInstancePath252CharsExpectTooLongTestInstancePathÄ%üPRG_TEST.LongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceName@LONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAÅ% TestInstancePathNameWith252CharsÆ%Very short messageÇ%ShortTestMessageÈ% @Test-Result-ExpectedÉ%üPRG_TEST.LongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceName@LONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELO...TestName too longÊ%.TestInstancePathNameWith252CharsExpectedResultË%ShortTestMessageExpectedResultÌ%&TestInstancePathNameWith252CharsResultÍ%ShortTestMessageResultÎ%$f67e3ff5-02f7-4268-9fa7-f06935f8269aÏ%
1967219966Ð%
1570258145Ñ%
1731583882Ò%	841471468Ó%5TestInstancePath255CharsExpectTooLongTestInstancePathÔ%ÿPRG_TEST.LongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceNameLongInstanceName@LONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAMELONGTESTNAGAVÕ% TestInstancePathNameWith255CharsÖ%$fbb2640b-9b30-45ae-a207-49da858d57e9×%y This is an empty testsuite with no test cases, so that we can verify that the system still prints the
   test results. Ø%
2885988520Ù%FB_EmptyTestSuiteÚ%	314000593Û%FB_EMPTYTESTSUITEÜ%$1ac34d34-5767-43bd-8deb-b4e9cf217e56Ý%
2779519499Þ%
2216622724ß%
1086682074à%	484821319á%CHECKBEFOREANDAFTERFINISHINGâ%N
    Verifies that the function IS_TEST_FINISHED('Name') works as intended.
1103869340ä% FB_CheckIfSpecificTestIsFinishedå%
3272231955æ% FB_CHECKIFSPECIFICTESTISFINISHEDç%$2acea95d-ab41-4d72-9612-66cd6d5b13ccè%
1289417112é%CheckBeforeAndAfterFinishingê%$bc4e3608-724f-4d4e-ad3f-c0950dd8383eë%
3987449867ì%
1771445048í%	552132160î%	172240257ï%TEST_WRITE_PROTECTED_BOOLð%TEST_WRITE_PROTECTED_BYTEñ%TEST_WRITE_PROTECTED_DATEò%"TEST_WRITE_PROTECTED_DATE_AND_TIMEó%TEST_WRITE_PROTECTED_DINTô%TEST_WRITE_PROTECTED_DWORDõ%TEST_WRITE_PROTECTED_INTö%TEST_WRITE_PROTECTED_LINT÷%TEST_WRITE_PROTECTED_LREALø%TEST_WRITE_PROTECTED_LWORDù%TEST_WRITE_PROTECTED_REALú%TEST_WRITE_PROTECTED_SINTû%TEST_WRITE_PROTECTED_STRINGü%TEST_WRITE_PROTECTED_TIMEý% TEST_WRITE_PROTECTED_TIME_OF_DAYþ%TEST_WRITE_PROTECTED_UDINTÿ%TEST_WRITE_PROTECTED_UINT€&TEST_WRITE_PROTECTED_ULINT&TEST_WRITE_PROTECTED_USINT‚&TEST_WRITE_PROTECTED_WORDƒ&D
    This testsuite tests the WRITE_PROTECTED_* helper functions.
2898592086…&FB_WriteProtectedFunctions†&	153230816‡&Test_WRITE_PROTECTED_ULINTˆ&ProtectedVariables‰&FB_PROTECTEDVARIABLESŠ&FB_ProtectedVariables‹&FB_WRITEPROTECTEDFUNCTIONSŒ&$2ad21ba0-c73a-4a0a-bc3e-58c3bc9c69b2&$812062d4-e1c0-4591-8720-04dcd5e89c1eŽ&
3389490404&	382872579&Test_WRITE_PROTECTED_INT‘&$f27a38f4-d1ea-45d8-a73c-dd6465b9ad58’&	995383304“&Test_WRITE_PROTECTED_UDINT”&$82609066-fb5e-46e7-9e57-65869d828270•&	972467221–&	418137317—&Test_WRITE_PROTECTED_TIME˜&$e37750d2-5a33-4790-8cff-71ab8caece8b™&
3452969631š&
1280354539›&Test_WRITE_PROTECTED_USINTœ&$6592f882-59d3-49e2-82d2-e6fd44600d68&
1080543818ž&Test_WRITE_PROTECTED_SINTŸ&$aab80437-85e4-45a9-bd68-7a6786ffe91a &
2365890875¡& Test_WRITE_PROTECTED_TIME_OF_DAY¢&$1264a760-0d2a-4889-88b2-30d55662bb73£&	567623822¤&Test_WRITE_PROTECTED_BYTE¥&$a2b467b1-3690-41a5-9320-4bc1f69bef8a¦&
1292880222§&Test_WRITE_PROTECTED_BOOL¨&$11a2dddd-2fbe-4039-a6b5-d4eaf7d9434c©&	625019494ª&
3622855031«&Test_WRITE_PROTECTED_LINT¬&$d34a832e-cc58-4f79-97a4-f1430f146a64­&
3131384273®&Test_WRITE_PROTECTED_WORD¯&$386f4047-1083-4370-89d2-3d1998d7c92c°&	669315042±&Test_WRITE_PROTECTED_REAL²&$26a46831-e47f-4e38-bf11-7776e94ca1a4³&
1324924072´&Test_WRITE_PROTECTED_STRINGµ&$efe95956-d83a-443d-917c-316c5a36701a¶&
3001544531·&Test_WRITE_PROTECTED_DWORD¸&$0a357bc6-9801-4812-bff6-98077c8a0a93¹&
3961738829º&"Test_WRITE_PROTECTED_DATE_AND_TIME»&$e35cbab7-8fcd-423a-8410-af8b494e33af¼&
2145571774½&
2411556825¾&Test_WRITE_PROTECTED_LREAL¿&$15de40fe-dc84-4408-be86-5481783ca3e7À&
2103084578Á&Test_WRITE_PROTECTED_DATEÂ&$2510c371-47ea-4abe-a097-c4e0398a7a24Ã&
1249034974Ä&Test_WRITE_PROTECTED_UINTÅ&$7f47e13a-351b-4283-b458-621b21173f32Æ&	470086492Ç&Test_WRITE_PROTECTED_LWORDÈ&$0114d334-4519-459d-8857-f56f423cee37É&
2031320440Ê&Test_WRITE_PROTECTED_DINTË&$4e7c60b5-8b1c-4049-9622-c0382fbb2365Ì&w This function blocks tests the TEST_FINISHED_NAMED function by creating various tests
   and finishing them in steps Í&
2913465186Î&FB_TestFinishedNamedÏ&
1306457185Ð&FB_TESTFINISHEDNAMEDÑ&$845f956b-5469-4f4a-9b3a-de8d813ba965Ò&
1509322461Ó&
3250215243Ô&
1208295908Õ&	791486400Ö&
2358461430×&PRG_TESTØ&PrimitiveTypesÙ&1Local, IsCompiled, Absolut, Initialized, TypifiedÚ&AssertTrueFalseÛ&AssertEveryFailedTestTwiceÜ&CreateFourTestsWithSameNameÝ&ArrayPrimitiveTypesÞ&CreateDisabledTestß&AnyPrimitiveTypesà&&AssertEveryFailedTestTwiceArrayVersioná&AnyToUnionValueâ&7MultipleAssertWithSameParametersInSameCycleWithSameTestã&FMultipleAssertWithSameParametersInDifferentCyclesButWithDifferentTestsä&>MultipleAssertWithSameParametersInDifferentCyclesAndInSameTestå&0AdjustAssertFailureMessageToMax252CharLengthTestæ&EmptyTestSuiteç&CheckIfSpecificTestIsFinishedè&WriteProtectedFunctionsé&TestFinishedNamedê&$48f3a80c-6b31-445f-a938-08b4b352141eë&’
    Contains different types of "protected" variables that you could not normally write to in
    production PLC code, but would need to overwrite for testing purposes. Used for testing the
    WRITE_PROTECTED_* functions, but this FB doesn't contain any tests itself.
2694705544í&	InputBOOLî&	InputBYTEï&	InputDATEð&InputDATE_AND_TIMEñ&	InputDINTò&
InputDWORDó&InputINTô&	InputLINTõ&
InputLREALö&
InputLWORD÷&	InputREALø&	InputSINTù&InputSTRINGú&	InputTIMEû&InputTIME_OF_DAYü&
InputUDINTý&	InputUINTþ&
InputULINTÿ&
InputUSINT€'	InputWORD'VarBOOL‚'VarBYTEƒ'VarDATE„'VarDATE_AND_TIME…'VarDINT†'VarDWORD‡'VarINTˆ'VarLINT‰'VarLREALŠ'VarLWORD‹'VarREALŒ'VarSINT'	VarSTRINGŽ'VarTIME'VarTIME_OF_DAY'VarUDINT‘'VarUINT’'VarULINT“'VarUSINT”'VarWORD•'
3623521859–'$04c8b30f-8b4f-46fd-9e09-1e516a0a3840—'
3254735991˜'	146167806™'
3603611712š'
3266675475›'
2643847952œ'
2338394504'_Implicit_Task_Config_Infož'TODO eventtasksŸ'wVersion 'nNumOfTasks¡'pszApplicationName¢'ptasks£'
3669029852¤'_IMPLICIT_TASK_CONFIG_INFO¥'$52142308-06a0-5e69-aee9-c51225fd9099¦'
1234088797§'
1833442206¨'__sys__setup__tasks©'$099a64f0-871e-534e-b7aa-dff7374c7178ª' <SIL2/>«'	830427680¬'LogAdd2­'hLogger®'udiCmpID¯'
udiClassID°'
udiErrorID±'	udiInfoID²'pszInfo³'$f782c8f1-3e37-44f5-9ca0-ba40c1145169´'cmplog, 3.5.5.0 (system)µ'
2222278874¶'__HelpConvertDate·'ppstr¸'nYear¹'nMonthº'nDay»'DayOfMonthTable¼'$1c137676-f66f-428c-af12-54699e1772b8½'
2130786092¾'__HelpConvertTime¿'dwHourÀ'dwMinuteÁ'dwSecondÂ'
dwMilliSecondÃ'$13c0f538-7207-41d3-8311-a322a7c20a0eÄ'
3586288056Å'__HelpConvertTimeWithUnitÆ'dwDayÇ'$50f01a4a-c350-4e6e-9dfa-0c242ec58ce8È'	371843759É'
__HelpConvertÊ'$fdd0113a-d0f8-4f19-bc73-fa6acf9ecc59Ë'
1562513299Ì'
__ExtractRealÍ'L True iff f is infinity, diM = 1 for +Infinity and -1 for -Infinity, iE is 0Î'iEÏ'diMÐ'xNaNÑ'uiEÒ'udiMÓ'$b4fbe026-742b-4541-9a4b-a710de7d376cÔ'
2223293048Õ'__HelpConvertLTimeWithUnitÖ'lwDay×'lwHourØ'lwMinuteÙ'lwSecondÚ'
lwMilliSecondÛ'
lwMicroSecondÜ'lwNanoSecondÝ'$9b7fa8d4-59a0-43f0-a610-be7bd5350ad9Þ'
1212736547ß'__ExtractLRealà'udiEá'uliMâ'$0ffc8285-5cf0-4854-bfbf-cfca06799935ã'
3132572671ä'__HelpRealConvertå'pnBeginæ'nDigç'dBeginè'dDivé'bNegê'
nHelpBeginë'dDiffì'$e6a8a736-c389-4a55-8363-2e30c26fed79í'È Concatenates two strings
 ``CONCAT(STR1,STR2)`` means: Connect ``STR1`` and ``STR2`` to a single string ``STR1STR2``.
 .. code-block:: codesys
    (* Example declaration *)
    VarSTRING1 : STRING ;
    (* Example in ST , result is 'SUSIWILLI' *)
    VarSTRING1 := CONCAT ('SUSI','WILLI');
 :return: Concatenated string, max. 255 characters. If the result doesn't fit into these 255 bytes, it will be silently truncated. No error is produced.
 .. cds:ranges::
     :STR1: |StringRange255|
     :STR2: |StringRange255|
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
2972623772ï'CONCATð'1 String 1 to be concatenated, max. 255 charactersñ'STR1ò'1 String 2 to be concatenated, max. 255 charactersó'STR2ô'
4221632325õ'LicenseFunctionsö'dwStructSize÷'pfGetUserLicenseValueø'pfConfDynLicChallengeù'pfReqDynLicChallengeú'
1958349117û'LICENSEFUNCTIONSü'$54113402-1f1a-4625-9cf5-98f840f808d4ý'$component manager, 3.5.13.0 (system)þ'
3247230088ÿ'CMRegisterLicenseFunctions€(licenseFunctions($9d4b8b53-13e6-49d1-812f-48d05c3b6bde‚(	674459537ƒ(UnregisterLicenseFunctions„(lf…($fad78c76-def3-4349-88ac-a7d7b1026100†(49087098‡(SysTargetGetIdˆ(pulTargetId‰(/External, Compiled, Typified, Located, InternalŠ($2882c277-8c61-400a-b7f8-fedf8770b0b5‹(
1255376976Œ(SysTargetGetType(pulTypeŽ($8626ba32-8246-4efc-a245-c6603743ef15(
2879083722(RegisterLicenseFunctions‘($3a698490-0f8e-4b05-ba85-54b389411e5b’(CodeMGetContentByFirmcode2“(
3702754381”(CodeMGetContentByFirmcode•(duiFirmcode–(duiProductcode—(licenseEntry˜(RTS_CMBOXENTRY™($22f4fc39-59c8-43ad-9dcc-9e20e4b9a58bš(cmpcodemeter, 3.5.5.0 (system)›(	669955528œ(
musBoxMask(mulBoxSerialž(	mflFiCtrlŸ(mulFirmCode (musFirmAccessCounter¡(musFirmItemRef¢(mulFirmUpdateCounter£(mulFirmPreciseTime¤(mausFirmItemText¥(mulProductCode¦(
mulFeatureMap§(mulUnitCounter¨(mulLicenseQuantity©(musProductItemRefª(
3504795969«($b624d05d-ae57-4b33-b835-ddb290871f29¬(<Structure, NonVirtual, Compiled, Typified, Located, Internal­(ignore_link_all®(
3026495541¯("CodeMGetFeatureMapByFirmcode_local°(%Compiled, Typified, Located, Internal±($8c1740e2-dc30-4803-9b05-2837c6a74377²(
2158031774³(myUDINT_TO_STRING´(i2µ(byt¶($126f9170-8764-47f4-b18b-ad639b548e48·(
1069101478¸(CMAddComponent¹(pszComponentº(udiCmpId»(
udiVersion¼($90843a1a-36bb-40cc-8a00-b137a07f82dd½(
4264633759¾(SysFileOpen¿(szFileÀ(amÁ($4e9f3f6c-f1b2-41f5-8e6e-4c9d0f916cb0Â(
2222749035Ã(SysFileGetSizeByHandleÄ(hFileÅ($203db6ac-ecc2-4b85-b1e0-d533c0597079Æ(
3647132921Ç(SysFileReadÈ(	pbyBufferÉ(ulSizeÊ($db542d11-09a1-412e-ba36-040235d1f6a6Ë(
3248367802Ì(SysFileCloseÍ($81419da6-4d52-4d99-806c-f8e599dcca66Î(Ø <description>
  Test and set a bit in an ULONG variable in one processor step. This operation is to provide
	 a multitasking save operation.
 </description>
 <result><p>RESULT: Returns the runtime system error code (see CmpErrors.library).
	ERR_OK: If bit could be set and was set before,
	ERR_FAILED: If bit is still set
 </p></result>Ï(
3306130432Ð(SysCpuTestAndSetÑ(„ <param name="pulValue" type="IN">Pointer to the unsigned value to test and set a bit inside in one atomic
	processor step</param>	Ò(pulValueÓ(p <param name="ulBit" type="IN">Bit number inside the variable to test and set. 0=first bit, 31=last bit</param>	Ô(ulBitÕ($1b91f178-37d6-463f-a613-9f24443e9396Ö(!syscpuhandling, 3.5.13.0 (system)×(
2702096027Ø(mySTRING_TO_UDINTÙ(uiBaseÚ($7c03f9aa-a908-4345-8fdc-2902079aa956Û(Ê Returns the number of characters of a string
 .. code-block:: codesys
    (* Example declaration *)
    VarINT1 : INT ;
    (* Example in ST , result is '4 *)
    VarINT1 := LEN ('SUSI');
 :return: Length of string ``STR``
 .. cds:ranges::
     :STR: |StringRange255|
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
2091238964Ý( String to be analyzed Þ(STRß($d60923f9-da06-44f9-ab52-de513236e3e2à( Searches for the position of a partial string within a string. 
 ``FIND(STR1, STR2)`` means: Find the position of the first character where ``STR2`` appears 
 in ``STR1`` for the first time. If STR2 is not found in STR1, then OUT:=0.
 .. code-block:: codesys
    (* Example declaration *)
    arINT1 : INT ;
    (* Example in ST , result is '4' *)
    arINT1 := FIND ('abcdef','de');
 :return: Character position of the first occurance of ``STR2`` in ``STR1``. If no occurance is found, result is 0
 .. cds:ranges::
     :STR1: |StringRange255|
     :STR2: |StringRange255|
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
3278768737â(* String within which ``STR2`` is searched ã(/ String whose position is searched in ``STR1`` ä(pszComp1å(pszComp2æ($182b0d71-64b9-4f59-8550-dfdea6ddbf15ç(ç Returns a specific number of characters of a string, starting from left
 ``LEFT (STR, SIZE)`` means: Return the first ``SIZE`` characters from the left in string ``STR``
 .. code-block:: codesys
    (* Example declaration *)
    VarSTRING1 : STRING ;
    (* Example in ST , result is 'SUS' *)
    VarSTRING1 := LEFT ('SUSI',3);
 :return: Resulting string
 .. cds:ranges::
     :STR: |StringRange255|
     :SIZE: [0..255]
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
3595690875é(LEFTê( String to be analyzedë( Number of characters ì($305543de-642d-43ec-a366-8f771da1539dí(º Returns a specific number of characters of a string, starting from a specific position
 ``MID (STR, LEN, POS)`` means: Retrieve ``LEN`` characters from the ``STR`` string beginning with the character at position ``POS``. 
 .. code-block:: codesys
    (* Example declaration *)
    VarSTRING1 : STRING ;
    (* Example in ST , result is 'US' *)
    VarSTRING1 := MID ('SUSI',2,2);
 :return: Partial string of ``STR``
 .. cds:ranges::
     :STR: |StringRange255|
     :LEN: [0..255]
     :POS: [0,1..255]
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
î(	176614815ï(MIDð(, Number of characters, counted from the leftñ(& Start position for the partial stringò(POSó($83426200-a15f-4a0f-939b-ec775900aa99ô(ë Returns a specific number of characters of a string, starting from right
 ``RIGHT (STR, SIZE)`` means: Return the first ``SIZE`` characters from the right in string ``STR``
 .. code-block:: codesys
    (* Example declaration *)
    VarSTRING1 : STRING ;
    (* Example in ST , result is 'USI' *)
    VarSTRING1 := RIGHT ('SUSI',3);
 :return: Resulting string
 .. cds:ranges::
     :STR: |StringRange255|
     :SIZE: [0..255]
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
1359190538ö(RIGHT÷( Number of characters     ø(iResultù($e1f7857b-7abd-48e8-91d6-d6b740f939c9ú(û 
	Ads a message to the log, if the message is longer then 127 characters it splits into two log messages (max 255 chars = 2 log entries)
   Usage example:
   LOGSTR( msgCtrlMask := UDINT_TO_DWORD( CmpLog.LogClass.LOG_INFO ), 
		    msgFmtStr := 'Ammount of tests : %s',
			strArg := uiTestAmmount );
    results into the following logstring
		Ammount of tests : 3 
4018939086ü(LOGSTRý(/ use UDINT_TO_DWORD( CmpLog.LogClass.LOG_.... )þ(msgCtrlMaskÿ(( Usage example: ' Ammount of tests : %s'€) Usage example: uiTestAmmount)strArg‚)	uiMaxSizeƒ)sText„)iCharPos…)$4faf44db-355b-4967-8254-5b291732f959†)’ <category>Project information</category>
 * <description>
 *	Contains the project information as specified in the project information dialog in CoDeSys. To use this, the checkbox 
 *	"Automatically generate POUs for property access" in the project information dialog be enabled.
 * </description>
 * <element name="stProjectName" type="OUT">Project name without ending</element>
 * <element name="stTitle" type="OUT">Title</element>
 * <element name="stVersion" type="OUT">Version as string in the format "x.x.x.x"</element>
 * <element name="stAuthor" type="OUT">Author</element>
 * <element name="stDescription" type="OUT">Description</element>
3365268717ˆ)PROJECT_INFO‰)	stProjectŠ)stTitle‹)	stVersionŒ)stAuthor)
stDescriptionŽ)
1178342348)$c1e43dbd-7721-4bd4-a684-c21620fe030f)cmpapp, 3.5.15.0 (system)‘)8 reads the application info from the current application’)
3589885213“)GetCurProjInfo”)CMPAPP•)CmpApp–)pCurApp—)APPLICATION˜)pCurProjInfo™)
1186304137š)GETCURPROJINFO›)$a1b4b1d0-961b-443c-bfbc-d2cb7b8d4e24œ)
3673772398)
1934937439ž)
2447250513Ÿ)
4156868057 )
3449547646¡)6F_RemoveInstancePathAndProjectNameFromTestInstancePath¢)CharacterPositionOfProjectName£)ProjectNameWithDot¤)$7816860e-5623-4ff0-b466-902e340371e3¥)
3203763967¦) POINTER TO parent application §)
pAppParent¨)* Id of the application. Is always unique. ©)iIdª) GUID for IEC code «)CodeGuid¬) GUID for IEC data ­)DataGuid®)> State of the application. See definitions Application states ¯)udiState°)R Operating state of the application. See definitions Application operation states ±)
udiOpState²) Handle to bootproject ³)hBootproject´) Handle to debug task µ)
hDebugTask¶) Global Init Function ·)pfGlobalInit¸) Global Exit Function ¹)pfGlobalExitº) Handle a pool of session-ids »)hSessionIdPool¼)  Handle a pool of force entries ½)
hForcePool¾) Handle a pool of breakpoints ¿)hBPPoolÀ) Is persistent force enabled Á) Application name Â)szNameÃ)MAX_LEN_APPLNAMEÄ)7Version number of Programming system (set in download) Å)udiPSVersionÆ)?Version number of Target settings used by PS (set in download) Ç)udiTargetSettingVersionÈ)
1512497683É)$91664799-0da5-417a-9e5e-db9ec74ea6f2Ê)j Close a file specified by handle
 :return: Returns the runtime system error code (see CmpErrors.library)Ë) Handle of the fileÌ)sysfile, 3.5.15.0 (system)Í)À | Open or create file. A standard path will be added to the filename, if no path is specified in the file name.
 | If a file extension is specified in the settings, this path will be used (see category settings).
 .. note:: File name can contain an absolute or relative path to the file. Path entries
           must be separated with a Slash (/)  and not with a Backslash (\\)!
 :return: Handle to the file or RTS_INVALID_HANDLE if failedÎ)ž File name. File name can contain an absolute or relative path to the file.	
 Path entries must be separated with a Slash (/)  and not with a Backslash (\\)!Ï)Î | Requested access mode to the file. See |ACCESS_MODE| for details.
 | Here find some examples:
 :AM_READ: If file does not exist, an error is returned. If the file exists, the file 
           will be opened
 :AM_WRITE: If file does not exist, a new file will be created. If the file exists,
            it will be overwritten!
 :AM_APPEND: If the file does not exist, an error is returned. If the file exists, the file 
             will be opened			Ð)= Pointer to runtime system error code (see CmpErrors.library)Ñ)\ Read number of bytes out of the file
 :return: Number of bytes read from file. 0=if failedÒ) Handle of the file	Ó)  Pointer to buffer for read dataÔ)L Number of bytes to read from file. Must be less or equal the buffer size!		Õ)“ Write number of bytes to the file. File must be opened with |AM_WRITE| or |AM_APPEND|.
 :return: Number of bytes written to the file. 0=if failedÖ)
1793200295×)SysFileWriteØ)/ Pointer to buffer with data to write to file		Ù)M Number of bytes to write in the file. Must be less or equal the buffer size!Ú)$a0372ebf-eb9b-4113-942f-e5da73df71ddÛ)[ Removes leading spaces from the character string and returns the reduced character string.Ü)
1900748652Ý)F_LTrimÞ)$6ef917e6-7f9e-46f0-99fd-87a9a9b883adß)O Truncates all trailing spaces from the specified value and returns the result.à)
3142262884á)F_RTrimâ)$29c1cd9e-70b7-43a9-8e3e-f8e8ed84bff7ã)d The F_ToLCase function converts a specified string to lowercase.
 Contains portions of OSCAT BASICä)	886767803å)	F_ToLCaseæ)posç)$4177f901-1a7a-4eea-8fe8-63097fea53f3è)¯ This function converts a decimal number into a hexadecimal STRING (base 16).
 If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left. 
 If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off! 
 If the iPrecision parameter and the in parameter are zero, the resulting string is empty.é)
1972422664ê)BYTE_TO_HEXSTRë)) The decimal number requiring conversion.ì). Minimum number of displayed digits (digits). í)
iPrecisionî)[ This parameter determines whether lower or upper case letters are used in the conversion. ï)bLoCaseð)m_Formatñ)$83e397b4-6883-4c4e-9910-e0278934299aò)‘ This function converts a decimal number into a hexadecimal STRING (base 16).
 If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left. 
 If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off! 
 If the iPrecision parameter and the in parameter are zero, the resulting string is empty.
 This is modified version of the DWORD_TO_STRH made by OSCAT, version 1.3, programmer hugo. ó)
3725441371ô)DWORD_TO_HEXSTRõ)4 Minimum number of displayed digits (digits). 			   ö)temp÷)ptø)m_NumberOfDigitsù)m_precisionú)$37af6bb4-598b-402b-99e0-bd140fa86122û)
1557660451ü)LWORD_TO_HEXSTRý)$6f6ad65d-94c9-44e7-b5f7-5394a261509cþ)± This function converts a decimal number into a hexadecimal STRING (base 16).
 If the actual number of significant digits is less than the iPrecision parameter, the resulting STRING is filled with zeros FROM the left. 
 If the number of significant digits is greater than the iPrecision parameter, the resulting string is not cut off! 
 If the iPrecision parameter and the in parameter are zero, the resulting string is empty.
ÿ)	952797014€*WORD_TO_HEXSTR*$028c7654-6828-48cd-8703-659f86aef415‚*? Copies buffer with size of N bytes from source to destination ƒ*
1485283582„*MEMCPY…*destAddr†*srcAddr‡*$7d591bcc-b453-4853-8327-1622b58624ccˆ*e  This function takes the type-class of a ANY-variable and returns the STRING representation of it.
3242817338Š*F_AnyTypeClassToString‹*AnyTypeClassŒ*$9e1352f3-5f86-40fd-88db-b6807b901391*O Funktion to get own task handle
 :return: Returns the current IEC task handleŽ*
4249138636*IecTaskGetCurrent*K Pointer that returns the runtime system error code (see CmpErrors.library)‘*$b1d506b4-a9e7-4ec3-8e73-e6697d723ffb’*t Function returns the task information of the specified task 
 :return: Return a pointer to the task info structure“*
4205902187”*IecTaskGetInfo3•* Handle to the specified task–*hIecTask—*pti˜*$941fd632-1e71-4fc0-a13a-6074eb0adf1c™*
2092783167š*F_AnyToUnionValue›*AnyValue.pValueœ*AnyValue__pValue*AnyValue.TypeClassž*AnyValue__typeClassŸ*AnyValue.diSize *AnyValue__sizeOf¡*AnyValue¢*$04a97242-7600-4a30-a234-b9e3b1c2770c£*
3394829069¤*F_IsAnyEqualToUnionValue¥*uExpectedOrActual¦*ExpectedOrActual.pValue§*ExpectedOrActual__pValue¨*ExpectedOrActual.TypeClass©*ExpectedOrActual__typeClassª*ExpectedOrActual.diSize«*ExpectedOrActual__sizeOf¬*ExpectedOrActual­*AnyExpectedOrActual®*$1ab30776-5b8c-4eb4-8ece-b0c087a9b905¯*Ã Converts an |INode| object to an |IDevice| object.
 If ``itfNode`` is no |IDevice| object function returns zero.
 :return: corresponding |IDevice| or zero if ``itfNode`` is no |IDevice| object°*
2739045205±*INode_TO_IDevice²* node to be converted³*itfNode´*$4922e0c8-a4af-42bb-bfc1-334b9fd9b6daµ*H Provides the ID of a Profibus slot to a given Profibus DP-slave handle ¶*
3653776739·*SLOT_ID¸*  Handle to a DP-slave or a slot ¹*
 Slot number º*newID»*$fd7ca1be-c86a-44d8-8ccf-9f1c6886b72e¼* Returns the ID of a subslot. ½*
2254917868¾*
SUBSLOT_ID¿*	 OptionalÀ*# Handle to a PN-slave or a subslot Á*' Subslot number. Use 0 for Profibus DP Â*J TRUE: Subslot ID found; FALSE: The requested Subslot could not be found. Ã*addrÄ*statusÅ*$ded43a3c-92df-49ba-9781-6700cb71f9f7Æ*2 Realize a target specific data type for handles. Ç*
1025606651È*HANDLEÉ* Prefix: h Ê*$c6335006-2b05-47eb-a3f2-102e70afce50Ë*
3947751913Ì*COUNT_TO_UDINTÍ*ctValueÎ*$079d3748-5faa-4f7f-baa0-506853c69b7fÏ*C Help function for determining if a connector is currently enabled.Ð*
3523921610Ñ*IsConnectorEnabledÒ*
IOSTANDARDÓ*
IoStandardÔ*$555ef077-4daa-4867-aa19-621547b72d64Õ*F
    This function runs all test suites that have been initialized.
Ö*	740068242×*RUNØ*$bd49b256-e7ba-4b73-b669-380d1f428417Ù*c
    This function declares a new test (if it has not been already declared in an earlier cycle)
2860862278Û*TESTÜ*CounterTestSuiteAddressÝ*CounterTestNameÞ*$8dd61791-c583-4b5e-b392-3e0ecf487849ß*2 
	Sets the currently running test as finished 
à*	563735047á*
TEST_FINISHEDâ*$9922b45b-fca5-4323-be8f-93710371a816ã*: Check if a certain test in the current suite is finished ä*
1883541109å*IS_TEST_FINISHEDæ*CurrentTestç*$79206b95-49a5-42aa-8a6a-b089aa13b1fdè*
3149730259é*WRITE_PROTECTED_BOOLê*Ptrë*$d1649341-8878-4827-b4ef-c286e7025184ì*	708627290í*WRITE_PROTECTED_BYTEî*$0bd58fcc-2342-4cd5-b054-08bdfb22baa1ï*
3979934913ð*WRITE_PROTECTED_DATEñ*$79d90978-55d9-4c8a-9385-a65057de0645ò*	471542011ó*WRITE_PROTECTED_DATE_AND_TIMEô*$af0064cc-fa42-4eeb-9659-37d82d6b5671õ*
2048366443ö*WRITE_PROTECTED_DINT÷*$e753c22d-5f40-4162-b951-1bab50066302ø*
2941634541ù*WRITE_PROTECTED_DWORDú*$adb6e532-53d2-41dc-9582-b0d035315f3aû*	598823859ü*WRITE_PROTECTED_INTý*$d5d23a20-8f67-4a43-b9e4-bf7852dc7164þ*	420606741ÿ*WRITE_PROTECTED_LINT€+$68ed928d-bced-4d06-bb8a-4b6588f248b8+
3799016036‚+WRITE_PROTECTED_LREALƒ+$339c1152-50eb-418b-b2b4-54330f145c79„+
2776663066…+WRITE_PROTECTED_LWORD†+$15899543-59db-47c1-9633-3f27e00c3890‡+
4206807631ˆ+WRITE_PROTECTED_REAL‰+$b51bba4d-2ead-4155-a62f-7a7ea20f8571Š+
1474770335‹+WRITE_PROTECTED_SINTŒ+$e310eaa9-3123-4344-b07c-fc54b5c8e3ac+
1041884527Ž+WRITE_PROTECTED_STRING+$bad90aed-e2f4-4920-ad52-32ebaec9fc44+
3551074257‘+WRITE_PROTECTED_TIME’+$fe63062b-7425-40a7-aecc-017a028de247“+
1217421155”+WRITE_PROTECTED_TIME_OF_DAY•+$c9020a0a-7555-43c0-b5e9-58aed910df89–+	104607911—+WRITE_PROTECTED_UDINT˜+$268b342f-fd80-4091-8fb8-f5f8dab7958d™+
3704966028š+WRITE_PROTECTED_UINT›+$4b5114b2-1dc0-4e59-81df-bbfea3eeaaa0œ+	104110010+WRITE_PROTECTED_ULINTž+$a9290c6c-be1e-44a4-bdbc-9f553ff99e97Ÿ+
3207026080 +WRITE_PROTECTED_USINT¡+$333ffbf6-74a7-432c-9a43-c67b08c23471¢+
3038305457£+WRITE_PROTECTED_WORD¤+$00031d54-f0f1-405a-8c1e-ac2fc1af74f9¥+Ç Extracts the components of a REAL floating point number without
 interpreting them.
 Extracts the sign, (biased) exponent, and mantissa of a REAL value.
 We assume the IEEE 754 binary32 format.
 All values, including NaN and Infinity are supported.
 See http://en.wikipedia.org/wiki/Single_precision_floating-point_format¦+
2007885473§+__ExtractRealRaw¨+C The mantissa as stored in the REAL, without the leading bit 24 set©+pudiª+$3d3aa07e-b7ec-4780-af79-d77e0e2cb50f«+
1475096513¬+__HelpLConvert­+$26023af2-e263-44c0-b290-4197ca6caa6a®+	202956791¯+__ExtractLRealRaw°+puli±+uli²+$e543e1fd-2bb8-4ac1-a749-ebad37d711fc³+
1673363469´+FctConfDynLicChallengeµ+$f9972cfc-8a33-4e40-85fb-7109a5d893d5¶+
2401095727·+FctGetUserLicenseValue¸+$c20edd8e-8e57-4f8a-87df-58345eb4164f¹+
2469315043º+FctReqDynLicChallenge»+$a38e7aa2-cfa8-41d5-adf5-85021e7b5eaa¼+
1900323445½+CMUnregisterLicenseFunctions¾+$f1a79dd5-021a-4cf4-ad25-7ec56df08e56¿+CodeMGetContentByFirmcode_localÀ+Ñ Replaces a specific number of characters of a string by another string
 ``REPLACE(STR1, STR2, L, P)`` means: Replace ``L`` characters from ``STR1`` by ``STR2``, beginning with the character in the ``P`` position. 
 .. code-block:: codesys
    (* Example declaration *)
    VarSTRING1 : STRING ;
    (* Example in ST , result is 'SKYSI' *)
    VarSTRING1 := REPLACE ('SUXYSI','K',2,2);
 :return: Resulting string
 .. cds:ranges::
     :STR1: |StringRange255|
     :STR2: |StringRange255|
     :L: [0..255]
     :P: [0,1..255]
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
Á+	517832753Â+REPLACEÃ+# String of which a part is replacedÄ+) String which replaces a part of ``STR1``Å+) Number of characters, counting from leftÆ+LÇ+s Start position of the characters to be replaced. 
 ``P = 1`` or ``P = 0`` are both addressing the first characterÈ+PÉ+	indexDestÊ+indexSourceË+$f57e2f3d-6edd-4042-ac47-a14833c273c8Ì+	448115908Í+
LogOptionsÎ+ Name OF logger Ï+ Logger active/inactive Ð+bEnableÑ+ See above log types Ò+uiTypeÓ+0 Log filter. It is a combination of log classes Ô+uiFilterÕ+ MAX number OF LOG entries Ö+iMaxEntries×+ Max file size Ø+iMaxFileSizeÙ+ Max number of files Ú+	iMaxFilesÛ+
2267289889Ü+
LOGOPTIONSÝ+$f29300f0-f83d-490d-9603-d3255fa3095bÞ+
2950684213ß+ST_Logà+CMPLOGá+CmpLogâ+LOGTYPESã+LogTypesä+LT_STDå+hLogæ+Createdç+
3954219779è+ST_LOGé+$6fa083cf-0816-49b4-9f1f-643d3266b682ê+ADDLOGENTRYë+PRVCREATENEWLOGGERì+? registers a Log component in devicelog and accept log messagesí+
2253974937î+CmpCfLogï+hCmpð+
hStdLoggerñ+Resultò+vendorIdó+cmpIdô+
3274057501õ+CMPCFLOGö+$e54b0b42-bf68-4a14-aacc-2136ead10c0b÷+
3109562382ø+
1341592248ù+P if TRUE, the instance afterwards gets moved into the copy code (online change)	ú+$4b49c03c-b562-4a6d-a8a9-76b527f97a0eû+
1919457194ü+AddLogEntryý+
udiClassIdþ+
udiErrorIdÿ+	udiInfoId€,$f39143e0-de49-4075-8bca-59cb6ff62612,	281198645‚,$3ba547bb-218f-4ecb-aa09-3033908bd527ƒ,
2650069375„,
1638336279…,
3519561854†,prvCreateNewLogger‡,$e2af6d5a-2680-44e7-b66a-3c3897d9cb0aˆ,” Deletes a number of characters from a string
 ``DELETE (STR, L, POS)`` means: Delete ``L`` characters from ``STR``, beginning with the character in the ``POS`` position.
 .. code-block:: codesys
    (* Example declaration *)
    VarSTRING1 : STRING ;
    (* Example in ST , result is 'SUSI' *)
    VarSTRING1 := DELETE ('SUXYSI',2,3);
 :return: String remaining after deletion 
 .. cds:ranges::
     :STR: |StringRange255|
     :LEN: [0..255]
     :POS: [0,1..255]
 .. |StringRange255| replace:: [NULL_STRING,TERMINATED_STRING_LEN0..TERMINATED_STRING_LEN127,TERMINATED_STRING_LEN128..TERMINATED_STRING_LEN255,UNTERMINATED_STRING]
1739723417Š,DELETE‹, String to be modfiedŒ,A Length of the partial string to be deleted, number of characters,Z Position in ``STR`` after which the deletion starts. Counted from left,
 starting with 1Ž,indexResult,bSkip,$11510cc9-b7a0-4dd6-8600-402b1638691e‘,
2665969477’,
AppGetCurrent“,$7b15c08a-0653-4e21-bae0-a0b9c0885693”,
1239233586•,AppGetApplicationInfo–,APPLICATION_INFO—,pApp˜,$a1d0114c-e318-46c3-9f61-93c7e287c132™,Ï <category>Application information</category>
 * <description>
 *	Contains the application information as specified in the application property dialog in CoDeSys.
 * </description>
 * <element name="pstProjectName" type="OUT">Pointer project name</element>
 * <element name="pstAuthor" type="OUT">Pointer to author</element>
 * <element name="pstVersion" type="OUT">Pointer to version as string in the format "x.x.x.x"</element>
 * <element name="pstDescription" type="OUT">Pointer to description</element>
 * <element name="pstProfile" type="OUT">Pointer to used CoDeSys profile name</element>
 * <element name="dtLastChanges" type="OUT">Time and date of last modification of the application (UTC)</element>
2334584805›,pstProjectNameœ,	pstAuthor,
pstVersionž,pstDescriptionŸ,
pstProfile ,
dtLastChanges¡,
3658178702¢,$d8358556-d5ee-4109-b0bb-55d3f6ee3e15£,
1693369342¤,TO_LOWER¥,$1e55f1d2-e8f8-4c11-a343-0d7e1cf88411¦,
2020938782§,Printf¨,. The buffer, where the result will be returned©,	cbpResultª," The capacity of the result buffer«,uiResultCapacity¬,0 The format string used for formatting the value­,	cbpFormat®,V A pointer to the begin of the piece of memory, where the value to format is
 stored.¯,G A __SYSTEM.TYPE_CLASS value describing the type of the value to format°,	typeClass±,$ba8d48f4-b190-46c7-be6b-9336508c391c², iecstringutils, 3.5.8.0 (system)³,IecTaskGetInfo2´,	711891942µ,IecTaskGetInfo2_Internal¶,	TASK_INFO·,$c6d3a5e1-7385-4753-b73c-f3b0df563229¸,
2900023005¹,	tIntervalº,
tWatchdogTime»,
tCycleTime¼,tAverageCycleTime½,
tMaxCycleTime¾,
tMinCycleTime¿,
3657274649À,$b83e07ab-a3d0-41a5-8f83-2de38b279984Á,
1350663365Â,__CheckedInterfaceCastÃ,queryInterfaceÄ,$6c7b0b40-3393-4ac8-8272-f7e492c63aa3Å,
3040543732Æ,CMRemoveComponentÇ,
hComponentÈ,$11bbd436-1d57-4172-8904-e44dc772fedbÉ,
3645932812Ê,LogCloseË,$c8aaeb24-0f38-477e-9044-1ecd207cbde3Ì,
1735259385Í,	LogDeleteÎ,$52842e3b-7e02-4eaf-bb44-a5db3758476cÏ,
2881342543Ð,LogOpenÑ,$8b85ed35-90d0-4d91-aef7-00ef0b080aadÒ,
1116480908Ó,	LogCreateÔ,pOptionsÕ,$b35829e6-d182-4ea6-91ec-f4e82032a361Ö,Y Does a sprintf for the given format string and the given variable. Will not return NULL!×,k link even in simulation mode
 prevent introducing a signature check lately to prevent compatibility flawsØ,	120951582Ù,
StuSprintfÚ, the formatstringÛ,	pstFormatÜ,2 the address of the variable that shall be printedÝ,8 the type of the variable as a __SYSTEM.TYPE_CLASS valueÞ,
udiVarTypeß,+ the buffer where the text is to be printedà,  the size of the buffer in bytesá,dwBufferSizeâ,$4933794d-6fe5-4285-9a7e-ea7baab7d3f3ã,stringutils, 3.5.14.0 (system)ä,
3016928633å,"I_TestResultFormatter__Struct__380æ,GLocal, IsCompiled, RelativeInstance, NoInit, Implicit, NoCopy, Typifiedç,
3606386227è,"I_TESTRESULTFORMATTER__STRUCT__380é,=Structure, NonVirtual, Generated, Compiled, Typified, Locatedê,	510341721ë,%I_AssertMessageFormatter__Struct__635ì,
2096431365í,%I_ASSERTMESSAGEFORMATTER__STRUCT__635î,
3915079495ï,IBase__Struct__683ð,__INTERFACEPOINTER__683ñ,
2305752680ò,IBASE__STRUCT__683ó,	125080585ô,IQueryInterface__Struct__754õ,
3993031251ö,IQUERYINTERFACE__STRUCT__754÷,
3017202838ø,
3250572586ù,INode__Struct__738ú,	313789213û,INODE__STRUCT__738ü,	423968311ý,IDevice__Struct__766þ,
3359714565ÿ,IDEVICE__STRUCT__766€-
2243812281-IDevice2__Struct__761‚-
3803582841ƒ-IDEVICE2__STRUCT__761„-
2541784888…-ILogger__Struct__825†-	874018163‡-ILOGGER__STRUCT__825ˆ-
3802255008‰-ICommFBFactory__Struct__909Š-__INTERFACEPOINTER__909‹-
1178948245Œ-ICOMMFBFACTORY__STRUCT__909-
1657173416Ž-ICommFBFactoryExt__Struct__961-__INTERFACEPOINTER__961-
1658402263‘-ICOMMFBFACTORYEXT__STRUCT__961’-
1130193604“-ICommFBFactoryIO__Struct__966”-__INTERFACEPOINTER__966•-	848519546–-ICOMMFBFACTORYIO__STRUCT__966—-
2963862213˜-,ICommFBConnectionManagerFactory__Struct__972™-__INTERFACEPOINTER__972š-
3347821471›-,ICOMMFBCONNECTIONMANAGERFACTORY__STRUCT__972œ-
1971983263-%IConnectionManagerClient__Struct__977ž-__INTERFACEPOINTER__977Ÿ-	155000105 -%ICONNECTIONMANAGERCLIENT__STRUCT__977¡-
3205321479¢-IConnectionManager__Struct__983£-__INTERFACEPOINTER__983¤-	278091694¥-ICONNECTIONMANAGER__STRUCT__983¦-62270875§-ICommFBFieldDevice__Struct__989¨-__INTERFACEPOINTER__989©-
3313826397ª-ICOMMFBFIELDDEVICE__STRUCT__989«-
4035410758¬- ICommFBAlarmSender__Struct__1002­-__INTERFACEPOINTER__1002®-
1537622798¯- ICOMMFBALARMSENDER__STRUCT__1002°-	982330450±-IGenericIDFactory__Struct__1009²-__INTERFACEPOINTER__1009³-
3923478915´-IGENERICIDFACTORY__STRUCT__1009µ-	954095370¶-!ICommFBDiagProvider__Struct__1013·-__INTERFACEPOINTER__1013¸-
1990052382¹-!ICOMMFBDIAGPROVIDER__STRUCT__1013º-IoConfigBeforeTask_0»-
bAppHalted¼-$9ca22eff-243e-49ba-99dc-949ea4050c5f½-IoConfigAfterTask_1¾-udiOldState¿-udOldOpStateÀ-$5855055e-e717-4745-82f3-01f36d9c2900Á-call_after_global_init_slotÂ-1000Ã-IoGlobalInit__PouÄ-__iÅ-$c65f2853-63b4-4488-bfe6-056fef3a12baÆ-call_before_global_exit_slotÇ-100000È-crc_for_latelanguagemodelÉ-
1783097031Ê-IoGlobalExit__PouË-$104a2bd4-3c79-4fc7-a905-d5965b3806c3Ì-__download__codeÍ-__online__change__codeÎ-global__initÏ-__bInitRetainsÐ-__IndexÑ-
__bInCopyCodeÒ-GLOBAL__EXITÓ-+IOCONFIG_GLOBALS_MODULELIST__139__GVL__InitÔ-(IOCONFIG_GLOBALS_MAPPING__140__GVL__InitÕ-$IOCONFIGAFTERTASK_1__1733__GVL__InitÖ-?GVL_IO_7DCEBB45_7496_4B62_9686_59BE5C0BA5C4_DPS__138__GVL__Init×-"__DATASEGMENTFLAGS__309__GVL__InitØ-#__COMPILE_CONSTANTS__310__GVL__InitÙ-__WATCHVARS__311__GVL__InitÚ-1__ALLOCATEDIMPLICITREFERENCETYPES__312__GVL__InitÛ-#CONSTANTS__313__SYSTEM____GVL__InitÜ-TYPE_CLASS__597__GVL__InitÝ-$_IMPLICIT_KINDOFTASK__671__GVL__InitÞ-0_IMPLICIT_TASK_CONFIG_VARIABLES__1526__GVL__Initß-.IOCONFIG_APPLICATION_MAPPINGS__1731__GVL__Inità-/_IMPLICIT_TARGET_INFO_VARIABLES__141__GVL__Initá-!__APPLICATIONNAME__142__GVL__Initâ-%__TASKSPECIFICINFOGVL__143__GVL__Initã-__TYPECLASS__1532__GVL__Initä-'__CONVERSION_CONSTANTS__1537__GVL__Initå-(__LCONVERSION_CONSTANTS__1646__GVL__Initæ- __SETUP__CALL__POU__1__GVL__Initç-PRG_TEST__1066__GVL__Initè-"IOGLOBALINIT__POU__1734__GVL__Inité- IOCONFIG_GLOBALS__137__GVL__Initê-APPLICATION_CONTENTë- Offsets in stringtable!ì-SizeOfí-udiInfoSizeî-udiInfoVersionï-	uiNumPOUsð-	uiNumDUTsñ-	uiNumGVLsò-uiNumFBsó-uiNumMethodsô-	uiNumLibsõ-arPOUsö-arDUTs÷-arGVLsø-arFBsù-	arMethodsú-arLibsû-stringtableü-Output, IsCompiledý-Input, IsCompiledþ-Input, IsCompiled, Implicitÿ-Compiled€.NonVirtual, Generated, Compiled.1Structure, Generated, Compiled, Typified, Located‚.RemovedAfterDownloadƒ.__RELOCATE__CODE„.__PAreaOffsetsNew….__dwVersion†.__PAreaOffsetsIn‡.
__pAdrHelpˆ.__j‰.__RELOCATE__RESULTŠ.
__dwOffset‹.__wHighŒ.__wLow.__wCountŽ.__PRELOCATIONTABLE.__PAreaOffsets.8Generated, NoCompareWithNew, Compiled, Typified, Located‘.
1073741824’.global_init_slot“.60000”.
3783281208•.IoConfig_Globals–.	VarGlobal—.$7dcebb45-7496-4b62-9686-59be5c0ba5c4˜.CODESYS_Control™.DEDš.2Global, IsCompiled, Absolut, Initialized, Typified›.DeviceNodesœ.g_itfRootINodeInst.
CAADEDTempž.$403b86fb-43fd-43d9-aed0-cd014308596fŸ.bGlobalInitDone .bIoConfigLateInitDone¡.bUpdateIoInStop¢.bResetBehaviour£.pIoConfigTaskMap¤.nIoConfigTaskMapCount¥.'Compiled, InhibitOnlineChange, Typified¦.$b91cfd14-861b-49b5-9cd8-088964b7757c§.allow_initial_value_changes¨.force_precompile_checks©.	408546936ª./GVL_Io_7dcebb45_7496_4b62_9686_59be5c0ba5c4_DPS«.1Compiled, InhibitOnlineChange, Typified, Internal¬.$6d65ab89-955a-4865-949d-8004ff8652da­.39900®.
2580432259¯.IoConfig_Globals_ModuleList°.blobinit±.
moduleList².$e80b846a-d058-4d15-ad3a-bfe9041fdcc7³.40000´.	714989294µ.IoConfig_Globals_Mapping¶.Compiled, Typified, Internal·.$5a36dd1b-852f-4c2f-ba18-d45924db4c36¸.	669599553¹.__DataSegmentFlagsº.) special flag to indicate an area segment».DA_Data¼.=Local, ReplacedConstant, Constant, Enum, IsCompiled, Typified½.DA_Constant¾.DA_Input¿.	DA_OutputÀ.	DA_MemoryÁ.	DA_RetainÂ.DA_CodeÃ.DA_AreaÄ.
DA_PersistentÅ.Enum, Compiled, TypifiedÆ.$36b719e5-3a34-450b-b806-362248c6fc69Ç.
2121841030È.__COMPILE_CONSTANTSÉ.system_variableÊ.__CONTAINS_COPY_CODEË.AReplacedConstant, Constant, Global, IsCompiled, Absolut, TypifiedÌ.$db173c48-0431-4ee2-8080-d72c759a68e3Í.	629370838Î.__WatchVarsÏ.$e4086481-b65b-4bfc-821c-c1f278b8711dÐ.72176917Ñ.!__AllocatedImplicitReferenceTypesÒ.'Generated, Compiled, Typified, InternalÓ.$4e6b58d5-7a7d-4d43-b710-af56f2531e62Ô.
3976988861Õ. Like x86, ARM etcÖ.
bLittleEndian×.A the runtime version number as defined by the device description.Ø.RuntimeVersionÙ.<Constant, Global, IsCompiled, Absolut, Initialized, TypifiedÚ.S the compiler version as defined in the build options (not OEM Customized Version!)Û.CompilerVersionÜ.. TRUE if project is running in simulation modeÝ.bSimulationModeÞ.e Number of Bits per Register. Possible values: 16 (c16x, 186), 32 (x86, ARM, PPC ...), 64 (x86-64Bit)ß.
nRegisterSizeà.a the pack mode as defined in the device description. Should match to the pack mode of the runtimeá.	nPackModeâ. Does the target support an FPUã.bFPUSupportä.4 the runtime version coded in the nibbles of a DWORDå.RuntimeVersionNumericæ.5	the compiler version coded in the nibbles of a DWORDç.CompilerVersionNumericè.( Does the target support multiple cores?é.bMulticoreSupportê.R The optimal vector size for a vector of lreals, or 1 if no vectors are available.ë.vcOptimalLREALì.Q The optimal vector size for a vector of reals, or 1 if no vectors are available.í.
vcOptimalREALî.)Compiled, Typified, SystemNamespaceForcedï.$c912f995-f4b5-48bd-9416-f36b0846c0e1ð.	997431391ñ.	TYPE_BOOLò.TYPE_BITó.	TYPE_BYTEô.	TYPE_WORDõ.
TYPE_DWORDö.
TYPE_LWORD÷.	TYPE_SINTø.TYPE_INTù.	TYPE_DINTú.	TYPE_LINTû.
TYPE_USINTü.	TYPE_UINTý.
TYPE_UDINTþ.
TYPE_ULINTÿ.	TYPE_REAL€/
TYPE_LREAL/TYPE_STRING‚/TYPE_WSTRINGƒ/	TYPE_TIME„/	TYPE_DATE…/TYPE_DATEANDTIME†/TYPE_TIMEOFDAY‡/TYPE_POINTERˆ/TYPE_REFERENCE‰/
TYPE_SUBRANGEŠ/	TYPE_ENUM‹/
TYPE_ARRAYŒ/TYPE_PARAMS/TYPE_USERDEFŽ/	TYPE_NONE/TYPE_ANY/TYPE_ANYBIT‘/TYPE_ANYDATE’/TYPE_ANYINT“/TYPE_ANYNUM”/TYPE_ANYREAL•/	TYPE_LAZY–/
TYPE_LTIME—/
TYPE_BITCONST˜/$f4fafa0b-0199-4a4a-82c6-354c2db388c0™/
3708279434š/_Implicit_KindOfTask›/_implicit_cyclicœ/_implicit_event/_implicit_externalž/_implicit_freewheelingŸ/_implicit_parentsync /$3fcb16b4-e0d2-5e0d-a314-c47eec9fa5b9¡/no_precompile_checks¢/
2295104117£/_Implicit_Task_Config_Variables¤/$083e7e45-18c0-40b7-aeb6-0e2ebead8738¥/__APPLICATIONNAME¦/__ApplicationName§/	IEC-Tasks¨/Task©/__task_string_tableª/$__Implicit_Jitter_Distribution_Array«/__Implicit_TaskCoreBitsArray_0¬/__Implicit_TaskGroupArray­/__CYCLE__CODE__TASK®/__Task¯/ig_task_config_info°/$52f5650b-a511-50c0-b776-b788682370e0±/init_on_onl_change²/IoConfig_Application_Mappings³/init_on_onlchange´/	iotaskmapµ/AGlobal, IsCompiled, Absolut, OnlChangeInit, Initialized, Typified¶/Generated, Compiled, Typified·/$e1859cca-f171-4793-bcd0-fe41c8f68046¸/__BLOBINIT__139__0¹/__BLOBINIT__1731__0º/__ARRAYDATA__1537__2»/__ApplicationInfoVariables¼/no_init½/
appContent¾/NConstant, Global, IsCompiled, Absolut, NoInit, OnlChangeInit, NoCopy, Typified¿/__BlobInit__1785__0À/__DataSegmentInfoVariablesÁ/arrdataSegmentsÂ/dataSegmentsÃ/__BlobInit__1537__0Ä/__BlobInit__1537__1Å/IMPLICIT__DEFINITIONSÆ/POU__0__START__ADDRESSÇ/-Global, IsCompiled, Absolut, NoInit, ImplicitÈ/POU__1__START__ADDRESSÉ/POU__52__START__ADDRESSÊ/POU__136__START__ADDRESSË/POU__144__START__ADDRESSÌ/POU__145__START__ADDRESSÍ/POU__685__START__ADDRESSÎ/POU__166__START__ADDRESSÏ/POU__167__START__ADDRESSÐ/POU__168__START__ADDRESSÑ/POU__169__START__ADDRESSÒ/POU__170__START__ADDRESSÓ/POU__171__START__ADDRESSÔ/POU__172__START__ADDRESSÕ/POU__173__START__ADDRESSÖ/POU__174__START__ADDRESS×/POU__175__START__ADDRESSØ/POU__176__START__ADDRESSÙ/POU__179__START__ADDRESSÚ/POU__182__START__ADDRESSÛ/POU__185__START__ADDRESSÜ/POU__188__START__ADDRESSÝ/POU__191__START__ADDRESSÞ/POU__206__START__ADDRESSß/POU__223__START__ADDRESSà/POU__224__START__ADDRESSá/POU__225__START__ADDRESSâ/POU__226__START__ADDRESSã/POU__249__START__ADDRESSä/POU__254__START__ADDRESSå/POU__259__START__ADDRESSæ/POU__264__START__ADDRESSç/POU__269__START__ADDRESSè/POU__274__START__ADDRESSé/POU__279__START__ADDRESSê/POU__284__START__ADDRESSë/POU__289__START__ADDRESSì/POU__294__START__ADDRESSí/POU__299__START__ADDRESSî/POU__301__START__ADDRESSï/POU__305__START__ADDRESSð/POU__307__START__ADDRESSñ/POU__308__START__ADDRESSò/POU__314__START__ADDRESSó/POU__315__START__ADDRESSô/POU__316__START__ADDRESSõ/POU__317__START__ADDRESSö/POU__326__START__ADDRESS÷/POU__341__START__ADDRESSø/POU__339__START__ADDRESSù/POU__344__START__ADDRESSú/POU__336__START__ADDRESSû/POU__331__START__ADDRESSü/POU__332__START__ADDRESSý/POU__340__START__ADDRESSþ/POU__328__START__ADDRESSÿ/POU__323__START__ADDRESS€0POU__330__START__ADDRESS0POU__337__START__ADDRESS‚0POU__343__START__ADDRESSƒ0POU__338__START__ADDRESS„0POU__327__START__ADDRESS…0POU__333__START__ADDRESS†0POU__334__START__ADDRESS‡0POU__329__START__ADDRESSˆ0POU__324__START__ADDRESS‰0POU__335__START__ADDRESSŠ0POU__325__START__ADDRESS‹0POU__345__START__ADDRESSŒ0POU__342__START__ADDRESS0POU__350__START__ADDRESSŽ0POU__354__START__ADDRESS0POU__374__START__ADDRESS0POU__378__START__ADDRESS‘0POU__379__START__ADDRESS’0POU__376__START__ADDRESS“0POU__375__START__ADDRESS”0POU__377__START__ADDRESS•0POU__382__START__ADDRESS–0POU__405__START__ADDRESS—0POU__403__START__ADDRESS˜0POU__408__START__ADDRESS™0POU__410__START__ADDRESSš0POU__407__START__ADDRESS›0POU__404__START__ADDRESSœ0POU__411__START__ADDRESS0POU__409__START__ADDRESSž0POU__406__START__ADDRESSŸ0POU__454__START__ADDRESS 0POU__456__START__ADDRESS¡0POU__457__START__ADDRESS¢0POU__458__START__ADDRESS£0POU__445__START__ADDRESS¤0POU__446__START__ADDRESS¥0POU__444__START__ADDRESS¦0POU__452__START__ADDRESS§0POU__451__START__ADDRESS¨0POU__448__START__ADDRESS©0POU__443__START__ADDRESSª0POU__449__START__ADDRESS«0POU__447__START__ADDRESS¬0POU__450__START__ADDRESS­0POU__455__START__ADDRESS®0POU__453__START__ADDRESS¯0POU__429__START__ADDRESS°0POU__421__START__ADDRESS±0POU__426__START__ADDRESS²0POU__430__START__ADDRESS³0POU__427__START__ADDRESS´0POU__433__START__ADDRESSµ0POU__432__START__ADDRESS¶0POU__436__START__ADDRESS·0POU__428__START__ADDRESS¸0POU__422__START__ADDRESS¹0POU__420__START__ADDRESSº0POU__424__START__ADDRESS»0POU__431__START__ADDRESS¼0POU__434__START__ADDRESS½0POU__425__START__ADDRESS¾0POU__435__START__ADDRESS¿0POU__423__START__ADDRESSÀ0POU__389__START__ADDRESSÁ0POU__393__START__ADDRESSÂ0POU__390__START__ADDRESSÃ0POU__395__START__ADDRESSÄ0POU__391__START__ADDRESSÅ0POU__394__START__ADDRESSÆ0POU__392__START__ADDRESSÇ0POU__363__START__ADDRESSÈ0POU__361__START__ADDRESSÉ0POU__366__START__ADDRESSÊ0POU__365__START__ADDRESSË0POU__364__START__ADDRESSÌ0POU__362__START__ADDRESSÍ0POU__367__START__ADDRESSÎ0POU__466__START__ADDRESSÏ0POU__463__START__ADDRESSÐ0POU__543__START__ADDRESSÑ0POU__540__START__ADDRESSÒ0POU__537__START__ADDRESSÓ0POU__539__START__ADDRESSÔ0POU__538__START__ADDRESSÕ0POU__536__START__ADDRESSÖ0POU__561__START__ADDRESS×0POU__554__START__ADDRESSØ0POU__558__START__ADDRESSÙ0POU__556__START__ADDRESSÚ0POU__555__START__ADDRESSÛ0POU__564__START__ADDRESSÜ0POU__562__START__ADDRESSÝ0POU__560__START__ADDRESSÞ0POU__557__START__ADDRESSß0POU__559__START__ADDRESSà0POU__563__START__ADDRESSá0POU__575__START__ADDRESSâ0POU__572__START__ADDRESSã0POU__574__START__ADDRESSä0POU__573__START__ADDRESSå0POU__571__START__ADDRESSæ0POU__596__START__ADDRESSç0POU__584__START__ADDRESSè0POU__582__START__ADDRESSé0POU__589__START__ADDRESSê0POU__587__START__ADDRESSë0POU__592__START__ADDRESSì0POU__583__START__ADDRESSí0POU__585__START__ADDRESSî0POU__588__START__ADDRESSï0POU__591__START__ADDRESSð0POU__590__START__ADDRESSñ0POU__593__START__ADDRESSò0POU__586__START__ADDRESSó0POU__618__START__ADDRESSô0POU__622__START__ADDRESSõ0POU__606__START__ADDRESSö0POU__604__START__ADDRESS÷0POU__611__START__ADDRESSø0POU__614__START__ADDRESSù0POU__605__START__ADDRESSú0POU__607__START__ADDRESSû0POU__610__START__ADDRESSü0POU__613__START__ADDRESSý0POU__612__START__ADDRESSþ0POU__615__START__ADDRESSÿ0POU__609__START__ADDRESS€1POU__608__START__ADDRESS1POU__629__START__ADDRESS‚1POU__633__START__ADDRESSƒ1POU__631__START__ADDRESS„1POU__630__START__ADDRESS…1POU__634__START__ADDRESS†1POU__632__START__ADDRESS‡1POU__637__START__ADDRESSˆ1POU__491__START__ADDRESS‰1POU__499__START__ADDRESSŠ1POU__497__START__ADDRESS‹1POU__512__START__ADDRESSŒ1POU__517__START__ADDRESS1POU__496__START__ADDRESSŽ1POU__526__START__ADDRESS1POU__484__START__ADDRESS1POU__528__START__ADDRESS‘1POU__519__START__ADDRESS’1POU__495__START__ADDRESS“1POU__472__START__ADDRESS”1POU__506__START__ADDRESS•1POU__498__START__ADDRESS–1POU__514__START__ADDRESS—1POU__518__START__ADDRESS˜1POU__485__START__ADDRESS™1POU__511__START__ADDRESSš1POU__527__START__ADDRESS›1POU__507__START__ADDRESSœ1POU__480__START__ADDRESS1POU__477__START__ADDRESSž1POU__523__START__ADDRESSŸ1POU__481__START__ADDRESS 1POU__505__START__ADDRESS¡1POU__501__START__ADDRESS¢1POU__504__START__ADDRESS£1POU__510__START__ADDRESS¤1POU__515__START__ADDRESS¥1POU__508__START__ADDRESS¦1POU__492__START__ADDRESS§1POU__513__START__ADDRESS¨1POU__502__START__ADDRESS©1POU__482__START__ADDRESSª1POU__522__START__ADDRESS«1POU__503__START__ADDRESS¬1POU__493__START__ADDRESS­1POU__487__START__ADDRESS®1POU__520__START__ADDRESS¯1POU__525__START__ADDRESS°1POU__488__START__ADDRESS±1POU__490__START__ADDRESS²1POU__516__START__ADDRESS³1POU__509__START__ADDRESS´1POU__479__START__ADDRESSµ1POU__475__START__ADDRESS¶1POU__483__START__ADDRESS·1POU__521__START__ADDRESS¸1POU__476__START__ADDRESS¹1POU__473__START__ADDRESSº1POU__486__START__ADDRESS»1POU__474__START__ADDRESS¼1POU__500__START__ADDRESS½1POU__478__START__ADDRESS¾1POU__524__START__ADDRESS¿1POU__529__START__ADDRESSÀ1POU__494__START__ADDRESSÁ1POU__489__START__ADDRESSÂ1POU__546__START__ADDRESSÃ1POU__649__START__ADDRESSÄ1POU__646__START__ADDRESSÅ1POU__648__START__ADDRESSÆ1POU__647__START__ADDRESSÇ1POU__645__START__ADDRESSÈ1POU__654__START__ADDRESSÉ1POU__665__START__ADDRESSÊ1POU__662__START__ADDRESSË1POU__664__START__ADDRESSÌ1POU__663__START__ADDRESSÍ1POU__661__START__ADDRESSÎ1POU__670__START__ADDRESSÏ1POU__676__START__ADDRESSÐ1POU__681__START__ADDRESSÑ1POU__720__START__ADDRESSÒ1POU__722__START__ADDRESSÓ1POU__728__START__ADDRESSÔ1POU__724__START__ADDRESSÕ1POU__732__START__ADDRESSÖ1POU__727__START__ADDRESS×1POU__730__START__ADDRESSØ1POU__737__START__ADDRESSÙ1POU__734__START__ADDRESSÚ1POU__721__START__ADDRESSÛ1POU__726__START__ADDRESSÜ1POU__729__START__ADDRESSÝ1POU__723__START__ADDRESSÞ1POU__731__START__ADDRESSß1POU__733__START__ADDRESSà1POU__735__START__ADDRESSá1POU__736__START__ADDRESSâ1POU__725__START__ADDRESSã1POU__819__START__ADDRESSä1POU__817__START__ADDRESSå1POU__823__START__ADDRESSæ1POU__820__START__ADDRESSç1POU__818__START__ADDRESSè1POU__822__START__ADDRESSé1POU__824__START__ADDRESSê1POU__821__START__ADDRESSë1POU__805__START__ADDRESSì1POU__799__START__ADDRESSí1POU__803__START__ADDRESSî1POU__798__START__ADDRESSï1POU__804__START__ADDRESSð1POU__810__START__ADDRESSñ1POU__806__START__ADDRESSò1POU__800__START__ADDRESSó1POU__807__START__ADDRESSô1POU__808__START__ADDRESSõ1POU__809__START__ADDRESSö1POU__802__START__ADDRESS÷1POU__797__START__ADDRESSø1POU__801__START__ADDRESSù1POU__788__START__ADDRESSú1POU__709__START__ADDRESSû1POU__703__START__ADDRESSü1POU__702__START__ADDRESSý1POU__713__START__ADDRESSþ1POU__699__START__ADDRESSÿ1POU__698__START__ADDRESS€2POU__712__START__ADDRESS2POU__707__START__ADDRESS‚2POU__701__START__ADDRESSƒ2POU__711__START__ADDRESS„2POU__706__START__ADDRESS…2POU__708__START__ADDRESS†2POU__710__START__ADDRESS‡2POU__700__START__ADDRESSˆ2POU__705__START__ADDRESS‰2POU__704__START__ADDRESSŠ2POU__740__START__ADDRESS‹2POU__756__START__ADDRESSŒ2POU__763__START__ADDRESS2POU__768__START__ADDRESSŽ2POU__784__START__ADDRESS2POU__827__START__ADDRESS2POU__834__START__ADDRESS‘2POU__839__START__ADDRESS’2POU__846__START__ADDRESS“2POU__843__START__ADDRESS”2POU__849__START__ADDRESS•2POU__855__START__ADDRESS–2POU__852__START__ADDRESS—2POU__858__START__ADDRESS˜2POU__911__START__ADDRESS™2POU__963__START__ADDRESSš2POU__968__START__ADDRESS›2POU__974__START__ADDRESSœ2POU__991__START__ADDRESS2POU__1011__START__ADDRESSž2POU__1015__START__ADDRESSŸ2POU__896__START__ADDRESS 2POU__900__START__ADDRESS¡2POU__904__START__ADDRESS¢2POU__897__START__ADDRESS£2POU__905__START__ADDRESS¤2POU__893__START__ADDRESS¥2POU__902__START__ADDRESS¦2POU__906__START__ADDRESS§2POU__892__START__ADDRESS¨2POU__895__START__ADDRESS©2POU__907__START__ADDRESSª2POU__908__START__ADDRESS«2POU__903__START__ADDRESS¬2POU__894__START__ADDRESS­2POU__901__START__ADDRESS®2POU__898__START__ADDRESS¯2POU__899__START__ADDRESS°2POU__869__START__ADDRESS±2POU__866__START__ADDRESS²2POU__868__START__ADDRESS³2POU__867__START__ADDRESS´2POU__865__START__ADDRESSµ2POU__879__START__ADDRESS¶2POU__876__START__ADDRESS·2POU__885__START__ADDRESS¸2POU__882__START__ADDRESS¹2POU__872__START__ADDRESSº2POU__927__START__ADDRESS»2POU__924__START__ADDRESS¼2POU__926__START__ADDRESS½2POU__925__START__ADDRESS¾2POU__923__START__ADDRESS¿2POU__938__START__ADDRESSÀ2POU__935__START__ADDRESSÁ2POU__937__START__ADDRESSÂ2POU__936__START__ADDRESSÃ2POU__934__START__ADDRESSÄ2POU__949__START__ADDRESSÅ2POU__946__START__ADDRESSÆ2POU__948__START__ADDRESSÇ2POU__947__START__ADDRESSÈ2POU__945__START__ADDRESSÉ2POU__960__START__ADDRESSÊ2POU__957__START__ADDRESSË2POU__959__START__ADDRESSÌ2POU__958__START__ADDRESSÍ2POU__956__START__ADDRESSÎ2POU__979__START__ADDRESSÏ2POU__985__START__ADDRESSÐ2POU__1001__START__ADDRESSÑ2POU__1004__START__ADDRESSÒ2POU__1008__START__ADDRESSÓ2POU__1027__START__ADDRESSÔ2POU__1024__START__ADDRESSÕ2POU__1033__START__ADDRESSÖ2POU__1030__START__ADDRESS×2POU__1039__START__ADDRESSØ2POU__1036__START__ADDRESSÙ2POU__1021__START__ADDRESSÚ2POU__1045__START__ADDRESSÛ2POU__1048__START__ADDRESSÜ2POU__1042__START__ADDRESSÝ2POU__1060__START__ADDRESSÞ2POU__1057__START__ADDRESSß2POU__1059__START__ADDRESSà2POU__1058__START__ADDRESSá2POU__1056__START__ADDRESSâ2POU__1065__START__ADDRESSã2POU__1096__START__ADDRESSä2POU__1088__START__ADDRESSå2POU__1092__START__ADDRESSæ2POU__1121__START__ADDRESSç2POU__1113__START__ADDRESSè2POU__1083__START__ADDRESSé2POU__1097__START__ADDRESSê2POU__1084__START__ADDRESSë2POU__1078__START__ADDRESSì2POU__1090__START__ADDRESSí2POU__1091__START__ADDRESSî2POU__1099__START__ADDRESSï2POU__1122__START__ADDRESSð2POU__1110__START__ADDRESSñ2POU__1085__START__ADDRESSò2POU__1105__START__ADDRESSó2POU__1077__START__ADDRESSô2POU__1093__START__ADDRESSõ2POU__1075__START__ADDRESSö2POU__1074__START__ADDRESS÷2POU__1080__START__ADDRESSø2POU__1100__START__ADDRESSù2POU__1119__START__ADDRESSú2POU__1102__START__ADDRESSû2POU__1081__START__ADDRESSü2POU__1114__START__ADDRESSý2POU__1108__START__ADDRESSþ2POU__1123__START__ADDRESSÿ2POU__1106__START__ADDRESS€3POU__1120__START__ADDRESS3POU__1107__START__ADDRESS‚3POU__1111__START__ADDRESSƒ3POU__1079__START__ADDRESS„3POU__1103__START__ADDRESS…3POU__1094__START__ADDRESS†3POU__1101__START__ADDRESS‡3POU__1087__START__ADDRESSˆ3POU__1095__START__ADDRESS‰3POU__1104__START__ADDRESSŠ3POU__1076__START__ADDRESS‹3POU__1098__START__ADDRESSŒ3POU__1118__START__ADDRESS3POU__1086__START__ADDRESSŽ3POU__1089__START__ADDRESS3POU__1117__START__ADDRESS3POU__1112__START__ADDRESS‘3POU__1116__START__ADDRESS’3POU__1082__START__ADDRESS“3POU__1115__START__ADDRESS”3POU__1109__START__ADDRESS•3POU__1136__START__ADDRESS–3POU__1132__START__ADDRESS—3POU__1140__START__ADDRESS˜3POU__1137__START__ADDRESS™3POU__1135__START__ADDRESSš3POU__1133__START__ADDRESS›3POU__1139__START__ADDRESSœ3POU__1134__START__ADDRESS3POU__1138__START__ADDRESSž3POU__1131__START__ADDRESSŸ3POU__1151__START__ADDRESS 3POU__1149__START__ADDRESS¡3POU__1153__START__ADDRESS¢3POU__1150__START__ADDRESS£3POU__1152__START__ADDRESS¤3POU__1154__START__ADDRESS¥3POU__1148__START__ADDRESS¦3POU__1170__START__ADDRESS§3POU__1163__START__ADDRESS¨3POU__1171__START__ADDRESS©3POU__1169__START__ADDRESSª3POU__1164__START__ADDRESS«3POU__1166__START__ADDRESS¬3POU__1168__START__ADDRESS­3POU__1165__START__ADDRESS®3POU__1167__START__ADDRESS¯3POU__1162__START__ADDRESS°3POU__1231__START__ADDRESS±3POU__1204__START__ADDRESS²3POU__1186__START__ADDRESS³3POU__1225__START__ADDRESS´3POU__1218__START__ADDRESSµ3POU__1229__START__ADDRESS¶3POU__1230__START__ADDRESS·3POU__1180__START__ADDRESS¸3POU__1190__START__ADDRESS¹3POU__1227__START__ADDRESSº3POU__1215__START__ADDRESS»3POU__1228__START__ADDRESS¼3POU__1217__START__ADDRESS½3POU__1240__START__ADDRESS¾3POU__1194__START__ADDRESS¿3POU__1221__START__ADDRESSÀ3POU__1220__START__ADDRESSÁ3POU__1212__START__ADDRESSÂ3POU__1222__START__ADDRESSÃ3POU__1232__START__ADDRESSÄ3POU__1237__START__ADDRESSÅ3POU__1226__START__ADDRESSÆ3POU__1202__START__ADDRESSÇ3POU__1223__START__ADDRESSÈ3POU__1201__START__ADDRESSÉ3POU__1187__START__ADDRESSÊ3POU__1198__START__ADDRESSË3POU__1211__START__ADDRESSÌ3POU__1207__START__ADDRESSÍ3POU__1188__START__ADDRESSÎ3POU__1193__START__ADDRESSÏ3POU__1208__START__ADDRESSÐ3POU__1191__START__ADDRESSÑ3POU__1224__START__ADDRESSÒ3POU__1203__START__ADDRESSÓ3POU__1239__START__ADDRESSÔ3POU__1195__START__ADDRESSÕ3POU__1199__START__ADDRESSÖ3POU__1184__START__ADDRESS×3POU__1219__START__ADDRESSØ3POU__1238__START__ADDRESSÙ3POU__1216__START__ADDRESSÚ3POU__1185__START__ADDRESSÛ3POU__1189__START__ADDRESSÜ3POU__1182__START__ADDRESSÝ3POU__1179__START__ADDRESSÞ3POU__1183__START__ADDRESSß3POU__1233__START__ADDRESSà3POU__1206__START__ADDRESSá3POU__1181__START__ADDRESSâ3POU__1197__START__ADDRESSã3POU__1205__START__ADDRESSä3POU__1214__START__ADDRESSå3POU__1210__START__ADDRESSæ3POU__1236__START__ADDRESSç3POU__1196__START__ADDRESSè3POU__1241__START__ADDRESSé3POU__1192__START__ADDRESSê3POU__1213__START__ADDRESSë3POU__1235__START__ADDRESSì3POU__1209__START__ADDRESSí3POU__1200__START__ADDRESSî3POU__1234__START__ADDRESSï3POU__1256__START__ADDRESSð3POU__1250__START__ADDRESSñ3POU__1254__START__ADDRESSò3POU__1255__START__ADDRESSó3POU__1253__START__ADDRESSô3POU__1251__START__ADDRESSõ3POU__1252__START__ADDRESSö3POU__1249__START__ADDRESS÷3POU__1298__START__ADDRESSø3POU__1279__START__ADDRESSù3POU__1307__START__ADDRESSú3POU__1306__START__ADDRESSû3POU__1274__START__ADDRESSü3POU__1294__START__ADDRESSý3POU__1270__START__ADDRESSþ3POU__1289__START__ADDRESSÿ3POU__1288__START__ADDRESS€4POU__1278__START__ADDRESS4POU__1266__START__ADDRESS‚4POU__1303__START__ADDRESSƒ4POU__1296__START__ADDRESS„4POU__1299__START__ADDRESS…4POU__1287__START__ADDRESS†4POU__1276__START__ADDRESS‡4POU__1309__START__ADDRESSˆ4POU__1282__START__ADDRESS‰4POU__1311__START__ADDRESSŠ4POU__1273__START__ADDRESS‹4POU__1310__START__ADDRESSŒ4POU__1301__START__ADDRESS4POU__1292__START__ADDRESSŽ4POU__1265__START__ADDRESS4POU__1285__START__ADDRESS4POU__1268__START__ADDRESS‘4POU__1295__START__ADDRESS’4POU__1275__START__ADDRESS“4POU__1300__START__ADDRESS”4POU__1280__START__ADDRESS•4POU__1290__START__ADDRESS–4POU__1291__START__ADDRESS—4POU__1293__START__ADDRESS˜4POU__1264__START__ADDRESS™4POU__1297__START__ADDRESSš4POU__1267__START__ADDRESS›4POU__1286__START__ADDRESSœ4POU__1284__START__ADDRESS4POU__1283__START__ADDRESSž4POU__1308__START__ADDRESSŸ4POU__1302__START__ADDRESS 4POU__1277__START__ADDRESS¡4POU__1269__START__ADDRESS¢4POU__1271__START__ADDRESS£4POU__1304__START__ADDRESS¤4POU__1272__START__ADDRESS¥4POU__1305__START__ADDRESS¦4POU__1281__START__ADDRESS§4POU__1320__START__ADDRESS¨4POU__1324__START__ADDRESS©4POU__1325__START__ADDRESSª4POU__1322__START__ADDRESS«4POU__1321__START__ADDRESS¬4POU__1323__START__ADDRESS­4POU__1319__START__ADDRESS®4POU__1344__START__ADDRESS¯4POU__1339__START__ADDRESS°4POU__1348__START__ADDRESS±4POU__1357__START__ADDRESS²4POU__1351__START__ADDRESS³4POU__1362__START__ADDRESS´4POU__1337__START__ADDRESSµ4POU__1354__START__ADDRESS¶4POU__1360__START__ADDRESS·4POU__1352__START__ADDRESS¸4POU__1335__START__ADDRESS¹4POU__1333__START__ADDRESSº4POU__1343__START__ADDRESS»4POU__1341__START__ADDRESS¼4POU__1347__START__ADDRESS½4POU__1342__START__ADDRESS¾4POU__1334__START__ADDRESS¿4POU__1359__START__ADDRESSÀ4POU__1338__START__ADDRESSÁ4POU__1353__START__ADDRESSÂ4POU__1349__START__ADDRESSÃ4POU__1361__START__ADDRESSÄ4POU__1355__START__ADDRESSÅ4POU__1340__START__ADDRESSÆ4POU__1356__START__ADDRESSÇ4POU__1346__START__ADDRESSÈ4POU__1350__START__ADDRESSÉ4POU__1336__START__ADDRESSÊ4POU__1358__START__ADDRESSË4POU__1345__START__ADDRESSÌ4POU__1371__START__ADDRESSÍ4POU__1376__START__ADDRESSÎ4POU__1373__START__ADDRESSÏ4POU__1372__START__ADDRESSÐ4POU__1375__START__ADDRESSÑ4POU__1374__START__ADDRESSÒ4POU__1370__START__ADDRESSÓ4POU__1403__START__ADDRESSÔ4POU__1400__START__ADDRESSÕ4POU__1402__START__ADDRESSÖ4POU__1401__START__ADDRESS×4POU__1399__START__ADDRESSØ4POU__1387__START__ADDRESSÙ4POU__1385__START__ADDRESSÚ4POU__1391__START__ADDRESSÛ4POU__1388__START__ADDRESSÜ4POU__1386__START__ADDRESSÝ4POU__1390__START__ADDRESSÞ4POU__1389__START__ADDRESSß4POU__1392__START__ADDRESSà4POU__1384__START__ADDRESSá4POU__1412__START__ADDRESSâ4POU__1417__START__ADDRESSã4POU__1414__START__ADDRESSä4POU__1413__START__ADDRESSå4POU__1416__START__ADDRESSæ4POU__1415__START__ADDRESSç4POU__1411__START__ADDRESSè4POU__1429__START__ADDRESSé4POU__1426__START__ADDRESSê4POU__1430__START__ADDRESSë4POU__1431__START__ADDRESSì4POU__1432__START__ADDRESSí4POU__1427__START__ADDRESSî4POU__1428__START__ADDRESSï4POU__1425__START__ADDRESSð4POU__1433__START__ADDRESSñ4POU__1442__START__ADDRESSò4POU__1446__START__ADDRESSó4POU__1444__START__ADDRESSô4POU__1443__START__ADDRESSõ4POU__1445__START__ADDRESSö4POU__1441__START__ADDRESS÷4POU__1455__START__ADDRESSø4POU__1460__START__ADDRESSù4POU__1459__START__ADDRESSú4POU__1457__START__ADDRESSû4POU__1456__START__ADDRESSü4POU__1458__START__ADDRESSý4POU__1454__START__ADDRESSþ4POU__1491__START__ADDRESSÿ4POU__1472__START__ADDRESS€5POU__1480__START__ADDRESS5POU__1489__START__ADDRESS‚5POU__1468__START__ADDRESSƒ5POU__1487__START__ADDRESS„5POU__1470__START__ADDRESS…5POU__1492__START__ADDRESS†5POU__1485__START__ADDRESS‡5POU__1488__START__ADDRESSˆ5POU__1475__START__ADDRESS‰5POU__1474__START__ADDRESSŠ5POU__1469__START__ADDRESS‹5POU__1481__START__ADDRESSŒ5POU__1493__START__ADDRESS5POU__1484__START__ADDRESSŽ5POU__1486__START__ADDRESS5POU__1479__START__ADDRESS5POU__1477__START__ADDRESS‘5POU__1471__START__ADDRESS’5POU__1482__START__ADDRESS“5POU__1473__START__ADDRESS”5POU__1476__START__ADDRESS•5POU__1490__START__ADDRESS–5POU__1483__START__ADDRESS—5POU__1478__START__ADDRESS˜5POU__1515__START__ADDRESS™5POU__1519__START__ADDRESSš5POU__1517__START__ADDRESS›5POU__1516__START__ADDRESSœ5POU__1518__START__ADDRESS5POU__1514__START__ADDRESSž5POU__1066__START__ADDRESSŸ5POU__1502__START__ADDRESS 5POU__1506__START__ADDRESS¡5POU__1504__START__ADDRESS¢5POU__1503__START__ADDRESS£5POU__1505__START__ADDRESS¤5POU__1501__START__ADDRESS¥5POU__1525__START__ADDRESS¦5POU__1533__START__ADDRESS§5POU__1534__START__ADDRESS¨5POU__1535__START__ADDRESS©5POU__1536__START__ADDRESSª5POU__1538__START__ADDRESS«5POU__1539__START__ADDRESS¬5POU__1540__START__ADDRESS­5POU__1541__START__ADDRESS®5POU__1542__START__ADDRESS¯5POU__1546__START__ADDRESS°5POU__1547__START__ADDRESS±5POU__1550__START__ADDRESS²5POU__1554__START__ADDRESS³5POU__1558__START__ADDRESS´5POU__1555__START__ADDRESSµ5POU__1559__START__ADDRESS¶5POU__1568__START__ADDRESS·5POU__1569__START__ADDRESS¸5POU__1570__START__ADDRESS¹5POU__1571__START__ADDRESSº5POU__1572__START__ADDRESS»5POU__1573__START__ADDRESS¼5POU__1574__START__ADDRESS½5POU__1589__START__ADDRESS¾5POU__1586__START__ADDRESS¿5POU__1583__START__ADDRESSÀ5POU__1585__START__ADDRESSÁ5POU__1584__START__ADDRESSÂ5POU__1582__START__ADDRESSÃ5POU__1575__START__ADDRESSÄ5POU__1592__START__ADDRESSÅ5POU__1598__START__ADDRESSÆ5POU__1599__START__ADDRESSÇ5POU__1600__START__ADDRESSÈ5POU__1601__START__ADDRESSÉ5POU__1602__START__ADDRESSÊ5POU__1603__START__ADDRESSË5POU__1604__START__ADDRESSÌ5POU__1605__START__ADDRESSÍ5POU__1606__START__ADDRESSÎ5POU__1608__START__ADDRESSÏ5POU__1609__START__ADDRESSÐ5POU__1610__START__ADDRESSÑ5POU__1611__START__ADDRESSÒ5POU__1612__START__ADDRESSÓ5POU__1613__START__ADDRESSÔ5POU__1616__START__ADDRESSÕ5POU__1617__START__ADDRESSÖ5POU__1619__START__ADDRESS×5POU__1620__START__ADDRESSØ5POU__1621__START__ADDRESSÙ5POU__1622__START__ADDRESSÚ5POU__1623__START__ADDRESSÛ5POU__1624__START__ADDRESSÜ5POU__1625__START__ADDRESSÝ5POU__1626__START__ADDRESSÞ5POU__1627__START__ADDRESSß5POU__1628__START__ADDRESSà5POU__1629__START__ADDRESSá5POU__1630__START__ADDRESSâ5POU__1631__START__ADDRESSã5POU__1632__START__ADDRESSä5POU__1633__START__ADDRESSå5POU__1634__START__ADDRESSæ5POU__1635__START__ADDRESSç5POU__1636__START__ADDRESSè5POU__1637__START__ADDRESSé5POU__1638__START__ADDRESSê5POU__1639__START__ADDRESSë5POU__1640__START__ADDRESSì5POU__1641__START__ADDRESSí5POU__1642__START__ADDRESSî5POU__1643__START__ADDRESSï5POU__1644__START__ADDRESSð5POU__1645__START__ADDRESSñ5POU__1647__START__ADDRESSò5POU__1648__START__ADDRESSó5POU__1649__START__ADDRESSô5POU__1652__START__ADDRESSõ5POU__1659__START__ADDRESSö5POU__1656__START__ADDRESS÷5POU__1667__START__ADDRESSø5POU__1665__START__ADDRESSù5POU__1671__START__ADDRESSú5POU__1669__START__ADDRESSû5POU__1670__START__ADDRESSü5POU__1666__START__ADDRESSý5POU__1668__START__ADDRESSþ5POU__1672__START__ADDRESSÿ5POU__1673__START__ADDRESS€6POU__1678__START__ADDRESS6POU__1679__START__ADDRESS‚6POU__1680__START__ADDRESSƒ6POU__1684__START__ADDRESS„6POU__1685__START__ADDRESS…6POU__1732__START__ADDRESS†6POU__1733__START__ADDRESS‡6POU__1734__START__ADDRESSˆ6POU__1735__START__ADDRESS‰6POU__1737__START__ADDRESSŠ6POU__1738__START__ADDRESS‹6POU__1739__START__ADDRESSŒ6POU__1740__START__ADDRESS6POU__1741__START__ADDRESSŽ6POU__1742__START__ADDRESS6POU__1743__START__ADDRESS6POU__1744__START__ADDRESS‘6POU__1745__START__ADDRESS’6POU__1746__START__ADDRESS“6POU__1747__START__ADDRESS”6POU__1748__START__ADDRESS•6POU__1749__START__ADDRESS–6POU__1750__START__ADDRESS—6POU__1751__START__ADDRESS˜6POU__1752__START__ADDRESS™6POU__1753__START__ADDRESSš6POU__1754__START__ADDRESS›6POU__1755__START__ADDRESSœ6POU__1756__START__ADDRESS6POU__1757__START__ADDRESSž6POU__1758__START__ADDRESSŸ6POU__1759__START__ADDRESS 6POU__1760__START__ADDRESS¡6POU__1761__START__ADDRESS¢6POU__1762__START__ADDRESS£6POU__1763__START__ADDRESS¤6%NoInit, Generated, Compiled, Internal¥6__GLOBAL_RELOC_DEFINITIONS¦6__RELOCATIONTABLE§6-Global, IsCompiled, Absolut, NoInit, Typified¨6__RELOCATIONTABLENEW©6%Global, IsCompiled, Absolut, Typifiedª6
2061191735«6_Implicit_Target_Info_Variables¬6__targetInfo­6Compiled, SuperGlobal, Typified®6$0de9e5f1-f2f0-4550-99b9-b0c9c5d532d1¯6
3724943997°6__ParentApplicationName±6$7e624f9d-69d6-42d1-923c-54726d605ee6²6
2535173239³6__TaskSpecificInfoGVL´6taskSpecificInfosµ6taskEntryAddress¶6taskInfoInvalid·6	NUM_TASKS¸6MAX_STACK_SIZE¹6$90165385-435d-46ce-bd91-03a9cc5300c5º6
3459977258»6__TypeClass¼6__TYPECLASS½6%Enum, Compiled, SuperGlobal, Typified¾6$93b6cd3f-8269-4c38-ace2-cca38ff00963¿6contains_blobinitconstÀ6
3183657202Á6
blobinitconstÂ6initial_value_crcÃ6
4251903600Ä6EÅ6
4043848204Æ6FDEZÇ6
EXP_MASK_REALÈ6EXP_OFFSET_REALÉ6MANT_MASK_REALÊ6RES_EXP_REALË6
EXP_BIAS_REALÌ6NAN_REALÍ6	PINF_REALÎ6	NINF_REALÏ6$8282e63e-5bdc-4a17-9c51-c6019a0fc9ebÐ6
3735606965Ñ6__LCONVERSION_CONSTANTSÒ6EXP_MASK_LREALÓ6EXP_OFFSET_LREALÔ6MANT_MASK_LREALÕ6
RES_EXP_LREALÖ6EXP_BIAS_LREAL×6	NAN_LREALØ6
PINF_LREALÙ6
NINF_LREALÚ6$7b8ad65d-ee2e-4a1e-8258-daddee07b488Û6CODE__INIT__VFTABLESÜ6VFTABLE__318Ý6VFTABLE__368Þ6VFTABLE__397ß6VFTABLE__437à6VFTABLE__414á6VFTABLE__384â6VFTABLE__355ã6VFTABLE__530ä6VFTABLE__548å6VFTABLE__565æ6VFTABLE__576ç6VFTABLE__598è6VFTABLE__623é6VFTABLE__467ê6VFTABLE__639ë6VFTABLE__655ì6VFTABLE__714í6VFTABLE__811î6VFTABLE__791ï6VFTABLE__692ð6VFTABLE__886ñ6VFTABLE__859ò6VFTABLE__917ó6VFTABLE__928ô6VFTABLE__939õ6VFTABLE__950ö6
VFTABLE__1050÷6
VFTABLE__1067ø6
VFTABLE__1124ù6
VFTABLE__1141ú6
VFTABLE__1155û6
VFTABLE__1172ü6
VFTABLE__1242ý6
VFTABLE__1257þ6
VFTABLE__1312ÿ6
VFTABLE__1326€7
VFTABLE__13637
VFTABLE__1393‚7
VFTABLE__1377ƒ7
VFTABLE__1404„7
VFTABLE__1418…7
VFTABLE__1434†7
VFTABLE__1447‡7
VFTABLE__1461ˆ7
VFTABLE__1507‰7
VFTABLE__1494Š7
VFTABLE__1576‹7
VFTABLE__1660Œ7/NoInit, NoCopy, Compiled, SuperGlobal, Typified7IMPLICIT_FUNCTION_POINTERSŽ7SIGNATURE__0__FP__ADDRESS7#Global, IsCompiled, Absolut, NoInit7SIGNATURE__1__FP__ADDRESS‘7SIGNATURE__2__FP__ADDRESS’7SIGNATURE__3__FP__ADDRESS“7SIGNATURE__4__FP__ADDRESS”7SIGNATURE__5__FP__ADDRESS•7SIGNATURE__6__FP__ADDRESS–7SIGNATURE__7__FP__ADDRESS—7SIGNATURE__8__FP__ADDRESS˜7SIGNATURE__9__FP__ADDRESS™7SIGNATURE__10__FP__ADDRESSš7SIGNATURE__11__FP__ADDRESS›7SIGNATURE__12__FP__ADDRESSœ7SIGNATURE__13__FP__ADDRESS7SIGNATURE__14__FP__ADDRESSž7SIGNATURE__15__FP__ADDRESSŸ7SIGNATURE__16__FP__ADDRESS 7SIGNATURE__17__FP__ADDRESS¡7SIGNATURE__18__FP__ADDRESS¢7SIGNATURE__19__FP__ADDRESS£7SIGNATURE__20__FP__ADDRESS¤7SIGNATURE__21__FP__ADDRESS¥7SIGNATURE__22__FP__ADDRESS¦7SIGNATURE__23__FP__ADDRESS§7SIGNATURE__24__FP__ADDRESS¨7SIGNATURE__25__FP__ADDRESS©7SIGNATURE__26__FP__ADDRESSª7SIGNATURE__27__FP__ADDRESS«7SIGNATURE__28__FP__ADDRESS¬7SIGNATURE__29__FP__ADDRESS­7SIGNATURE__30__FP__ADDRESS®7SIGNATURE__31__FP__ADDRESS¯7SIGNATURE__32__FP__ADDRESS°7SIGNATURE__33__FP__ADDRESS±7SIGNATURE__34__FP__ADDRESS²7SIGNATURE__35__FP__ADDRESS³7SIGNATURE__36__FP__ADDRESS´7SIGNATURE__37__FP__ADDRESSµ7SIGNATURE__38__FP__ADDRESS¶7SIGNATURE__39__FP__ADDRESS·7SIGNATURE__40__FP__ADDRESS¸7SIGNATURE__41__FP__ADDRESS¹7SIGNATURE__42__FP__ADDRESSº7SIGNATURE__43__FP__ADDRESS»7SIGNATURE__44__FP__ADDRESS¼7SIGNATURE__45__FP__ADDRESS½7SIGNATURE__46__FP__ADDRESS¾7SIGNATURE__47__FP__ADDRESS¿7SIGNATURE__48__FP__ADDRESSÀ7SIGNATURE__52__FP__ADDRESSÁ7SIGNATURE__53__FP__ADDRESSÂ7SIGNATURE__54__FP__ADDRESSÃ7SIGNATURE__55__FP__ADDRESSÄ7SIGNATURE__56__FP__ADDRESSÅ7SIGNATURE__57__FP__ADDRESSÆ7SIGNATURE__58__FP__ADDRESSÇ7SIGNATURE__59__FP__ADDRESSÈ7SIGNATURE__60__FP__ADDRESSÉ7SIGNATURE__61__FP__ADDRESSÊ7SIGNATURE__62__FP__ADDRESSË7SIGNATURE__63__FP__ADDRESSÌ7SIGNATURE__64__FP__ADDRESSÍ7SIGNATURE__65__FP__ADDRESSÎ7SIGNATURE__66__FP__ADDRESSÏ7SIGNATURE__67__FP__ADDRESSÐ7SIGNATURE__68__FP__ADDRESSÑ7SIGNATURE__69__FP__ADDRESSÒ7SIGNATURE__70__FP__ADDRESSÓ7SIGNATURE__71__FP__ADDRESSÔ7SIGNATURE__72__FP__ADDRESSÕ7SIGNATURE__73__FP__ADDRESSÖ7SIGNATURE__74__FP__ADDRESS×7SIGNATURE__75__FP__ADDRESSØ7SIGNATURE__76__FP__ADDRESSÙ7SIGNATURE__77__FP__ADDRESSÚ7SIGNATURE__78__FP__ADDRESSÛ7SIGNATURE__79__FP__ADDRESSÜ7SIGNATURE__80__FP__ADDRESSÝ7SIGNATURE__81__FP__ADDRESSÞ7SIGNATURE__82__FP__ADDRESSß7SIGNATURE__83__FP__ADDRESSà7SIGNATURE__84__FP__ADDRESSá7SIGNATURE__85__FP__ADDRESSâ7SIGNATURE__86__FP__ADDRESSã7SIGNATURE__87__FP__ADDRESSä7SIGNATURE__88__FP__ADDRESSå7SIGNATURE__89__FP__ADDRESSæ7SIGNATURE__90__FP__ADDRESSç7SIGNATURE__91__FP__ADDRESSè7SIGNATURE__92__FP__ADDRESSé7SIGNATURE__93__FP__ADDRESSê7SIGNATURE__94__FP__ADDRESSë7SIGNATURE__95__FP__ADDRESSì7SIGNATURE__96__FP__ADDRESSí7SIGNATURE__97__FP__ADDRESSî7SIGNATURE__98__FP__ADDRESSï7SIGNATURE__99__FP__ADDRESSð7SIGNATURE__100__FP__ADDRESSñ7SIGNATURE__101__FP__ADDRESSò7SIGNATURE__102__FP__ADDRESSó7SIGNATURE__103__FP__ADDRESSô7SIGNATURE__104__FP__ADDRESSõ7SIGNATURE__105__FP__ADDRESSö7SIGNATURE__106__FP__ADDRESS÷7SIGNATURE__107__FP__ADDRESSø7SIGNATURE__108__FP__ADDRESSù7SIGNATURE__109__FP__ADDRESSú7SIGNATURE__110__FP__ADDRESSû7SIGNATURE__111__FP__ADDRESSü7SIGNATURE__112__FP__ADDRESSý7SIGNATURE__113__FP__ADDRESSþ7SIGNATURE__114__FP__ADDRESSÿ7SIGNATURE__115__FP__ADDRESS€8SIGNATURE__116__FP__ADDRESS8SIGNATURE__117__FP__ADDRESS‚8SIGNATURE__118__FP__ADDRESSƒ8SIGNATURE__119__FP__ADDRESS„8SIGNATURE__120__FP__ADDRESS…8SIGNATURE__121__FP__ADDRESS†8SIGNATURE__122__FP__ADDRESS‡8SIGNATURE__123__FP__ADDRESSˆ8SIGNATURE__124__FP__ADDRESS‰8SIGNATURE__125__FP__ADDRESSŠ8SIGNATURE__126__FP__ADDRESS‹8SIGNATURE__127__FP__ADDRESSŒ8SIGNATURE__128__FP__ADDRESS8SIGNATURE__129__FP__ADDRESSŽ8SIGNATURE__130__FP__ADDRESS8SIGNATURE__131__FP__ADDRESS8SIGNATURE__132__FP__ADDRESS‘8SIGNATURE__133__FP__ADDRESS’8SIGNATURE__134__FP__ADDRESS“8SIGNATURE__135__FP__ADDRESS”8SIGNATURE__136__FP__ADDRESS•8SIGNATURE__144__FP__ADDRESS–8SIGNATURE__145__FP__ADDRESS—8SIGNATURE__685__FP__ADDRESS˜8SIGNATURE__147__FP__ADDRESS™8SIGNATURE__148__FP__ADDRESSš8SIGNATURE__149__FP__ADDRESS›8SIGNATURE__150__FP__ADDRESSœ8SIGNATURE__151__FP__ADDRESS8SIGNATURE__152__FP__ADDRESSž8SIGNATURE__153__FP__ADDRESSŸ8SIGNATURE__154__FP__ADDRESS 8SIGNATURE__155__FP__ADDRESS¡8SIGNATURE__156__FP__ADDRESS¢8SIGNATURE__157__FP__ADDRESS£8SIGNATURE__158__FP__ADDRESS¤8SIGNATURE__159__FP__ADDRESS¥8SIGNATURE__160__FP__ADDRESS¦8SIGNATURE__161__FP__ADDRESS§8SIGNATURE__162__FP__ADDRESS¨8SIGNATURE__163__FP__ADDRESS©8SIGNATURE__164__FP__ADDRESSª8SIGNATURE__165__FP__ADDRESS«8SIGNATURE__166__FP__ADDRESS¬8SIGNATURE__167__FP__ADDRESS­8SIGNATURE__168__FP__ADDRESS®8SIGNATURE__169__FP__ADDRESS¯8SIGNATURE__170__FP__ADDRESS°8SIGNATURE__171__FP__ADDRESS±8SIGNATURE__172__FP__ADDRESS²8SIGNATURE__173__FP__ADDRESS³8SIGNATURE__174__FP__ADDRESS´8SIGNATURE__175__FP__ADDRESSµ8SIGNATURE__176__FP__ADDRESS¶8SIGNATURE__179__FP__ADDRESS·8SIGNATURE__182__FP__ADDRESS¸8SIGNATURE__185__FP__ADDRESS¹8SIGNATURE__188__FP__ADDRESSº8SIGNATURE__191__FP__ADDRESS»8SIGNATURE__192__FP__ADDRESS¼8SIGNATURE__193__FP__ADDRESS½8SIGNATURE__194__FP__ADDRESS¾8SIGNATURE__195__FP__ADDRESS¿8SIGNATURE__196__FP__ADDRESSÀ8SIGNATURE__197__FP__ADDRESSÁ8SIGNATURE__198__FP__ADDRESSÂ8SIGNATURE__199__FP__ADDRESSÃ8SIGNATURE__200__FP__ADDRESSÄ8SIGNATURE__201__FP__ADDRESSÅ8SIGNATURE__202__FP__ADDRESSÆ8SIGNATURE__203__FP__ADDRESSÇ8SIGNATURE__206__FP__ADDRESSÈ8SIGNATURE__207__FP__ADDRESSÉ8SIGNATURE__208__FP__ADDRESSÊ8SIGNATURE__209__FP__ADDRESSË8SIGNATURE__210__FP__ADDRESSÌ8SIGNATURE__211__FP__ADDRESSÍ8SIGNATURE__212__FP__ADDRESSÎ8SIGNATURE__213__FP__ADDRESSÏ8SIGNATURE__214__FP__ADDRESSÐ8SIGNATURE__215__FP__ADDRESSÑ8SIGNATURE__216__FP__ADDRESSÒ8SIGNATURE__217__FP__ADDRESSÓ8SIGNATURE__218__FP__ADDRESSÔ8SIGNATURE__219__FP__ADDRESSÕ8SIGNATURE__220__FP__ADDRESSÖ8SIGNATURE__221__FP__ADDRESS×8SIGNATURE__222__FP__ADDRESSØ8SIGNATURE__223__FP__ADDRESSÙ8SIGNATURE__224__FP__ADDRESSÚ8SIGNATURE__225__FP__ADDRESSÛ8SIGNATURE__226__FP__ADDRESSÜ8SIGNATURE__249__FP__ADDRESSÝ8SIGNATURE__250__FP__ADDRESSÞ8SIGNATURE__254__FP__ADDRESSß8SIGNATURE__255__FP__ADDRESSà8SIGNATURE__259__FP__ADDRESSá8SIGNATURE__260__FP__ADDRESSâ8SIGNATURE__264__FP__ADDRESSã8SIGNATURE__265__FP__ADDRESSä8SIGNATURE__269__FP__ADDRESSå8SIGNATURE__270__FP__ADDRESSæ8SIGNATURE__274__FP__ADDRESSç8SIGNATURE__275__FP__ADDRESSè8SIGNATURE__279__FP__ADDRESSé8SIGNATURE__280__FP__ADDRESSê8SIGNATURE__284__FP__ADDRESSë8SIGNATURE__285__FP__ADDRESSì8SIGNATURE__289__FP__ADDRESSí8SIGNATURE__290__FP__ADDRESSî8SIGNATURE__294__FP__ADDRESSï8SIGNATURE__295__FP__ADDRESSð8SIGNATURE__299__FP__ADDRESSñ8SIGNATURE__300__FP__ADDRESSò8SIGNATURE__301__FP__ADDRESSó8SIGNATURE__305__FP__ADDRESSô8SIGNATURE__306__FP__ADDRESSõ8SIGNATURE__307__FP__ADDRESSö8SIGNATURE__308__FP__ADDRESS÷8SIGNATURE__314__FP__ADDRESSø8SIGNATURE__315__FP__ADDRESSù8SIGNATURE__316__FP__ADDRESSú8SIGNATURE__317__FP__ADDRESSû8SIGNATURE__326__FP__ADDRESSü8SIGNATURE__341__FP__ADDRESSý8SIGNATURE__339__FP__ADDRESSþ8SIGNATURE__344__FP__ADDRESSÿ8SIGNATURE__336__FP__ADDRESS€9SIGNATURE__331__FP__ADDRESS9SIGNATURE__332__FP__ADDRESS‚9SIGNATURE__340__FP__ADDRESSƒ9SIGNATURE__328__FP__ADDRESS„9SIGNATURE__323__FP__ADDRESS…9SIGNATURE__330__FP__ADDRESS†9SIGNATURE__337__FP__ADDRESS‡9SIGNATURE__343__FP__ADDRESSˆ9SIGNATURE__338__FP__ADDRESS‰9SIGNATURE__327__FP__ADDRESSŠ9SIGNATURE__333__FP__ADDRESS‹9SIGNATURE__334__FP__ADDRESSŒ9SIGNATURE__329__FP__ADDRESS9SIGNATURE__324__FP__ADDRESSŽ9SIGNATURE__335__FP__ADDRESS9SIGNATURE__325__FP__ADDRESS9SIGNATURE__345__FP__ADDRESS‘9SIGNATURE__342__FP__ADDRESS’9SIGNATURE__350__FP__ADDRESS“9SIGNATURE__354__FP__ADDRESS”9SIGNATURE__374__FP__ADDRESS•9SIGNATURE__378__FP__ADDRESS–9SIGNATURE__379__FP__ADDRESS—9SIGNATURE__376__FP__ADDRESS˜9SIGNATURE__375__FP__ADDRESS™9SIGNATURE__377__FP__ADDRESSš9SIGNATURE__382__FP__ADDRESS›9SIGNATURE__405__FP__ADDRESSœ9SIGNATURE__403__FP__ADDRESS9SIGNATURE__408__FP__ADDRESSž9SIGNATURE__410__FP__ADDRESSŸ9SIGNATURE__407__FP__ADDRESS 9SIGNATURE__404__FP__ADDRESS¡9SIGNATURE__411__FP__ADDRESS¢9SIGNATURE__409__FP__ADDRESS£9SIGNATURE__406__FP__ADDRESS¤9SIGNATURE__454__FP__ADDRESS¥9SIGNATURE__456__FP__ADDRESS¦9SIGNATURE__457__FP__ADDRESS§9SIGNATURE__458__FP__ADDRESS¨9SIGNATURE__445__FP__ADDRESS©9SIGNATURE__446__FP__ADDRESSª9SIGNATURE__444__FP__ADDRESS«9SIGNATURE__452__FP__ADDRESS¬9SIGNATURE__451__FP__ADDRESS­9SIGNATURE__448__FP__ADDRESS®9SIGNATURE__443__FP__ADDRESS¯9SIGNATURE__449__FP__ADDRESS°9SIGNATURE__447__FP__ADDRESS±9SIGNATURE__450__FP__ADDRESS²9SIGNATURE__455__FP__ADDRESS³9SIGNATURE__453__FP__ADDRESS´9SIGNATURE__429__FP__ADDRESSµ9SIGNATURE__421__FP__ADDRESS¶9SIGNATURE__426__FP__ADDRESS·9SIGNATURE__430__FP__ADDRESS¸9SIGNATURE__427__FP__ADDRESS¹9SIGNATURE__433__FP__ADDRESSº9SIGNATURE__432__FP__ADDRESS»9SIGNATURE__436__FP__ADDRESS¼9SIGNATURE__428__FP__ADDRESS½9SIGNATURE__422__FP__ADDRESS¾9SIGNATURE__420__FP__ADDRESS¿9SIGNATURE__424__FP__ADDRESSÀ9SIGNATURE__431__FP__ADDRESSÁ9SIGNATURE__434__FP__ADDRESSÂ9SIGNATURE__425__FP__ADDRESSÃ9SIGNATURE__435__FP__ADDRESSÄ9SIGNATURE__423__FP__ADDRESSÅ9SIGNATURE__389__FP__ADDRESSÆ9SIGNATURE__393__FP__ADDRESSÇ9SIGNATURE__390__FP__ADDRESSÈ9SIGNATURE__395__FP__ADDRESSÉ9SIGNATURE__391__FP__ADDRESSÊ9SIGNATURE__394__FP__ADDRESSË9SIGNATURE__392__FP__ADDRESSÌ9SIGNATURE__363__FP__ADDRESSÍ9SIGNATURE__361__FP__ADDRESSÎ9SIGNATURE__366__FP__ADDRESSÏ9SIGNATURE__365__FP__ADDRESSÐ9SIGNATURE__364__FP__ADDRESSÑ9SIGNATURE__362__FP__ADDRESSÒ9SIGNATURE__367__FP__ADDRESSÓ9SIGNATURE__466__FP__ADDRESSÔ9SIGNATURE__463__FP__ADDRESSÕ9SIGNATURE__543__FP__ADDRESSÖ9SIGNATURE__540__FP__ADDRESS×9SIGNATURE__537__FP__ADDRESSØ9SIGNATURE__539__FP__ADDRESSÙ9SIGNATURE__538__FP__ADDRESSÚ9SIGNATURE__536__FP__ADDRESSÛ9SIGNATURE__561__FP__ADDRESSÜ9SIGNATURE__554__FP__ADDRESSÝ9SIGNATURE__558__FP__ADDRESSÞ9SIGNATURE__556__FP__ADDRESSß9SIGNATURE__555__FP__ADDRESSà9SIGNATURE__564__FP__ADDRESSá9SIGNATURE__562__FP__ADDRESSâ9SIGNATURE__560__FP__ADDRESSã9SIGNATURE__557__FP__ADDRESSä9SIGNATURE__559__FP__ADDRESSå9SIGNATURE__563__FP__ADDRESSæ9SIGNATURE__575__FP__ADDRESSç9SIGNATURE__572__FP__ADDRESSè9SIGNATURE__574__FP__ADDRESSé9SIGNATURE__573__FP__ADDRESSê9SIGNATURE__571__FP__ADDRESSë9SIGNATURE__596__FP__ADDRESSì9SIGNATURE__584__FP__ADDRESSí9SIGNATURE__582__FP__ADDRESSî9SIGNATURE__589__FP__ADDRESSï9SIGNATURE__587__FP__ADDRESSð9SIGNATURE__592__FP__ADDRESSñ9SIGNATURE__583__FP__ADDRESSò9SIGNATURE__585__FP__ADDRESSó9SIGNATURE__588__FP__ADDRESSô9SIGNATURE__591__FP__ADDRESSõ9SIGNATURE__590__FP__ADDRESSö9SIGNATURE__593__FP__ADDRESS÷9SIGNATURE__586__FP__ADDRESSø9SIGNATURE__618__FP__ADDRESSù9SIGNATURE__622__FP__ADDRESSú9SIGNATURE__606__FP__ADDRESSû9SIGNATURE__604__FP__ADDRESSü9SIGNATURE__611__FP__ADDRESSý9SIGNATURE__614__FP__ADDRESSþ9SIGNATURE__605__FP__ADDRESSÿ9SIGNATURE__607__FP__ADDRESS€:SIGNATURE__610__FP__ADDRESS:SIGNATURE__613__FP__ADDRESS‚:SIGNATURE__612__FP__ADDRESSƒ:SIGNATURE__615__FP__ADDRESS„:SIGNATURE__609__FP__ADDRESS…:SIGNATURE__608__FP__ADDRESS†:SIGNATURE__629__FP__ADDRESS‡:SIGNATURE__633__FP__ADDRESSˆ:SIGNATURE__631__FP__ADDRESS‰:SIGNATURE__630__FP__ADDRESSŠ:SIGNATURE__634__FP__ADDRESS‹:SIGNATURE__632__FP__ADDRESSŒ:SIGNATURE__637__FP__ADDRESS:SIGNATURE__491__FP__ADDRESSŽ:SIGNATURE__499__FP__ADDRESS:SIGNATURE__497__FP__ADDRESS:SIGNATURE__512__FP__ADDRESS‘:SIGNATURE__517__FP__ADDRESS’:SIGNATURE__496__FP__ADDRESS“:SIGNATURE__526__FP__ADDRESS”:SIGNATURE__484__FP__ADDRESS•:SIGNATURE__528__FP__ADDRESS–:SIGNATURE__519__FP__ADDRESS—:SIGNATURE__495__FP__ADDRESS˜:SIGNATURE__472__FP__ADDRESS™:SIGNATURE__506__FP__ADDRESSš:SIGNATURE__498__FP__ADDRESS›:SIGNATURE__514__FP__ADDRESSœ:SIGNATURE__518__FP__ADDRESS:SIGNATURE__485__FP__ADDRESSž:SIGNATURE__511__FP__ADDRESSŸ:SIGNATURE__527__FP__ADDRESS :SIGNATURE__507__FP__ADDRESS¡:SIGNATURE__480__FP__ADDRESS¢:SIGNATURE__477__FP__ADDRESS£:SIGNATURE__523__FP__ADDRESS¤:SIGNATURE__481__FP__ADDRESS¥:SIGNATURE__505__FP__ADDRESS¦:SIGNATURE__501__FP__ADDRESS§:SIGNATURE__504__FP__ADDRESS¨:SIGNATURE__510__FP__ADDRESS©:SIGNATURE__515__FP__ADDRESSª:SIGNATURE__508__FP__ADDRESS«:SIGNATURE__492__FP__ADDRESS¬:SIGNATURE__513__FP__ADDRESS­:SIGNATURE__502__FP__ADDRESS®:SIGNATURE__482__FP__ADDRESS¯:SIGNATURE__522__FP__ADDRESS°:SIGNATURE__503__FP__ADDRESS±:SIGNATURE__493__FP__ADDRESS²:SIGNATURE__487__FP__ADDRESS³:SIGNATURE__520__FP__ADDRESS´:SIGNATURE__525__FP__ADDRESSµ:SIGNATURE__488__FP__ADDRESS¶:SIGNATURE__490__FP__ADDRESS·:SIGNATURE__516__FP__ADDRESS¸:SIGNATURE__509__FP__ADDRESS¹:SIGNATURE__479__FP__ADDRESSº:SIGNATURE__475__FP__ADDRESS»:SIGNATURE__483__FP__ADDRESS¼:SIGNATURE__521__FP__ADDRESS½:SIGNATURE__476__FP__ADDRESS¾:SIGNATURE__473__FP__ADDRESS¿:SIGNATURE__486__FP__ADDRESSÀ:SIGNATURE__474__FP__ADDRESSÁ:SIGNATURE__500__FP__ADDRESSÂ:SIGNATURE__478__FP__ADDRESSÃ:SIGNATURE__524__FP__ADDRESSÄ:SIGNATURE__529__FP__ADDRESSÅ:SIGNATURE__494__FP__ADDRESSÆ:SIGNATURE__489__FP__ADDRESSÇ:SIGNATURE__546__FP__ADDRESSÈ:SIGNATURE__649__FP__ADDRESSÉ:SIGNATURE__646__FP__ADDRESSÊ:SIGNATURE__648__FP__ADDRESSË:SIGNATURE__647__FP__ADDRESSÌ:SIGNATURE__645__FP__ADDRESSÍ:SIGNATURE__654__FP__ADDRESSÎ:SIGNATURE__653__FP__ADDRESSÏ:SIGNATURE__665__FP__ADDRESSÐ:SIGNATURE__662__FP__ADDRESSÑ:SIGNATURE__664__FP__ADDRESSÒ:SIGNATURE__663__FP__ADDRESSÓ:SIGNATURE__661__FP__ADDRESSÔ:SIGNATURE__670__FP__ADDRESSÕ:SIGNATURE__669__FP__ADDRESSÖ:SIGNATURE__676__FP__ADDRESS×:SIGNATURE__675__FP__ADDRESSØ:SIGNATURE__681__FP__ADDRESSÙ:SIGNATURE__680__FP__ADDRESSÚ:SIGNATURE__720__FP__ADDRESSÛ:SIGNATURE__722__FP__ADDRESSÜ:SIGNATURE__728__FP__ADDRESSÝ:SIGNATURE__724__FP__ADDRESSÞ:SIGNATURE__732__FP__ADDRESSß:SIGNATURE__727__FP__ADDRESSà:SIGNATURE__730__FP__ADDRESSá:SIGNATURE__737__FP__ADDRESSâ:SIGNATURE__734__FP__ADDRESSã:SIGNATURE__721__FP__ADDRESSä:SIGNATURE__726__FP__ADDRESSå:SIGNATURE__729__FP__ADDRESSæ:SIGNATURE__723__FP__ADDRESSç:SIGNATURE__731__FP__ADDRESSè:SIGNATURE__733__FP__ADDRESSé:SIGNATURE__735__FP__ADDRESSê:SIGNATURE__736__FP__ADDRESSë:SIGNATURE__725__FP__ADDRESSì:SIGNATURE__819__FP__ADDRESSí:SIGNATURE__817__FP__ADDRESSî:SIGNATURE__823__FP__ADDRESSï:SIGNATURE__820__FP__ADDRESSð:SIGNATURE__818__FP__ADDRESSñ:SIGNATURE__822__FP__ADDRESSò:SIGNATURE__824__FP__ADDRESSó:SIGNATURE__821__FP__ADDRESSô:SIGNATURE__805__FP__ADDRESSõ:SIGNATURE__799__FP__ADDRESSö:SIGNATURE__803__FP__ADDRESS÷:SIGNATURE__798__FP__ADDRESSø:SIGNATURE__804__FP__ADDRESSù:SIGNATURE__810__FP__ADDRESSú:SIGNATURE__806__FP__ADDRESSû:SIGNATURE__800__FP__ADDRESSü:SIGNATURE__807__FP__ADDRESSý:SIGNATURE__808__FP__ADDRESSþ:SIGNATURE__809__FP__ADDRESSÿ:SIGNATURE__802__FP__ADDRESS€;SIGNATURE__797__FP__ADDRESS;SIGNATURE__801__FP__ADDRESS‚;SIGNATURE__788__FP__ADDRESSƒ;SIGNATURE__709__FP__ADDRESS„;SIGNATURE__703__FP__ADDRESS…;SIGNATURE__702__FP__ADDRESS†;SIGNATURE__713__FP__ADDRESS‡;SIGNATURE__699__FP__ADDRESSˆ;SIGNATURE__698__FP__ADDRESS‰;SIGNATURE__712__FP__ADDRESSŠ;SIGNATURE__707__FP__ADDRESS‹;SIGNATURE__701__FP__ADDRESSŒ;SIGNATURE__711__FP__ADDRESS;SIGNATURE__706__FP__ADDRESSŽ;SIGNATURE__708__FP__ADDRESS;SIGNATURE__710__FP__ADDRESS;SIGNATURE__700__FP__ADDRESS‘;SIGNATURE__705__FP__ADDRESS’;SIGNATURE__704__FP__ADDRESS“;SIGNATURE__740__FP__ADDRESS”;SIGNATURE__756__FP__ADDRESS•;SIGNATURE__757__FP__ADDRESS–;SIGNATURE__763__FP__ADDRESS—;SIGNATURE__768__FP__ADDRESS˜;SIGNATURE__784__FP__ADDRESS™;SIGNATURE__827__FP__ADDRESSš;SIGNATURE__834__FP__ADDRESS›;SIGNATURE__839__FP__ADDRESSœ;SIGNATURE__846__FP__ADDRESS;SIGNATURE__843__FP__ADDRESSž;SIGNATURE__849__FP__ADDRESSŸ;SIGNATURE__855__FP__ADDRESS ;SIGNATURE__852__FP__ADDRESS¡;SIGNATURE__858__FP__ADDRESS¢;SIGNATURE__911__FP__ADDRESS£;SIGNATURE__963__FP__ADDRESS¤;SIGNATURE__968__FP__ADDRESS¥;SIGNATURE__974__FP__ADDRESS¦;SIGNATURE__991__FP__ADDRESS§;SIGNATURE__1011__FP__ADDRESS¨;SIGNATURE__1015__FP__ADDRESS©;SIGNATURE__896__FP__ADDRESSª;SIGNATURE__900__FP__ADDRESS«;SIGNATURE__904__FP__ADDRESS¬;SIGNATURE__897__FP__ADDRESS­;SIGNATURE__905__FP__ADDRESS®;SIGNATURE__893__FP__ADDRESS¯;SIGNATURE__902__FP__ADDRESS°;SIGNATURE__906__FP__ADDRESS±;SIGNATURE__892__FP__ADDRESS²;SIGNATURE__895__FP__ADDRESS³;SIGNATURE__907__FP__ADDRESS´;SIGNATURE__908__FP__ADDRESSµ;SIGNATURE__903__FP__ADDRESS¶;SIGNATURE__894__FP__ADDRESS·;SIGNATURE__901__FP__ADDRESS¸;SIGNATURE__898__FP__ADDRESS¹;SIGNATURE__899__FP__ADDRESSº;SIGNATURE__869__FP__ADDRESS»;SIGNATURE__866__FP__ADDRESS¼;SIGNATURE__868__FP__ADDRESS½;SIGNATURE__867__FP__ADDRESS¾;SIGNATURE__865__FP__ADDRESS¿;SIGNATURE__879__FP__ADDRESSÀ;SIGNATURE__876__FP__ADDRESSÁ;SIGNATURE__885__FP__ADDRESSÂ;SIGNATURE__882__FP__ADDRESSÃ;SIGNATURE__872__FP__ADDRESSÄ;SIGNATURE__927__FP__ADDRESSÅ;SIGNATURE__924__FP__ADDRESSÆ;SIGNATURE__926__FP__ADDRESSÇ;SIGNATURE__925__FP__ADDRESSÈ;SIGNATURE__923__FP__ADDRESSÉ;SIGNATURE__938__FP__ADDRESSÊ;SIGNATURE__935__FP__ADDRESSË;SIGNATURE__937__FP__ADDRESSÌ;SIGNATURE__936__FP__ADDRESSÍ;SIGNATURE__934__FP__ADDRESSÎ;SIGNATURE__949__FP__ADDRESSÏ;SIGNATURE__946__FP__ADDRESSÐ;SIGNATURE__948__FP__ADDRESSÑ;SIGNATURE__947__FP__ADDRESSÒ;SIGNATURE__945__FP__ADDRESSÓ;SIGNATURE__960__FP__ADDRESSÔ;SIGNATURE__957__FP__ADDRESSÕ;SIGNATURE__959__FP__ADDRESSÖ;SIGNATURE__958__FP__ADDRESS×;SIGNATURE__956__FP__ADDRESSØ;SIGNATURE__979__FP__ADDRESSÙ;SIGNATURE__985__FP__ADDRESSÚ;SIGNATURE__1001__FP__ADDRESSÛ;SIGNATURE__1004__FP__ADDRESSÜ;SIGNATURE__1008__FP__ADDRESSÝ;SIGNATURE__1027__FP__ADDRESSÞ;SIGNATURE__1024__FP__ADDRESSß;SIGNATURE__1033__FP__ADDRESSà;SIGNATURE__1030__FP__ADDRESSá;SIGNATURE__1039__FP__ADDRESSâ;SIGNATURE__1036__FP__ADDRESSã;SIGNATURE__1021__FP__ADDRESSä;SIGNATURE__1045__FP__ADDRESSå;SIGNATURE__1048__FP__ADDRESSæ;SIGNATURE__1042__FP__ADDRESSç;SIGNATURE__1060__FP__ADDRESSè;SIGNATURE__1057__FP__ADDRESSé;SIGNATURE__1059__FP__ADDRESSê;SIGNATURE__1058__FP__ADDRESSë;SIGNATURE__1056__FP__ADDRESSì;SIGNATURE__1065__FP__ADDRESSí;SIGNATURE__1064__FP__ADDRESSî;SIGNATURE__1096__FP__ADDRESSï;SIGNATURE__1088__FP__ADDRESSð;SIGNATURE__1092__FP__ADDRESSñ;SIGNATURE__1121__FP__ADDRESSò;SIGNATURE__1113__FP__ADDRESSó;SIGNATURE__1083__FP__ADDRESSô;SIGNATURE__1097__FP__ADDRESSõ;SIGNATURE__1084__FP__ADDRESSö;SIGNATURE__1078__FP__ADDRESS÷;SIGNATURE__1090__FP__ADDRESSø;SIGNATURE__1091__FP__ADDRESSù;SIGNATURE__1099__FP__ADDRESSú;SIGNATURE__1122__FP__ADDRESSû;SIGNATURE__1110__FP__ADDRESSü;SIGNATURE__1085__FP__ADDRESSý;SIGNATURE__1105__FP__ADDRESSþ;SIGNATURE__1077__FP__ADDRESSÿ;SIGNATURE__1093__FP__ADDRESS€<SIGNATURE__1075__FP__ADDRESS<SIGNATURE__1074__FP__ADDRESS‚<SIGNATURE__1080__FP__ADDRESSƒ<SIGNATURE__1100__FP__ADDRESS„<SIGNATURE__1119__FP__ADDRESS…<SIGNATURE__1102__FP__ADDRESS†<SIGNATURE__1081__FP__ADDRESS‡<SIGNATURE__1114__FP__ADDRESSˆ<SIGNATURE__1108__FP__ADDRESS‰<SIGNATURE__1123__FP__ADDRESSŠ<SIGNATURE__1106__FP__ADDRESS‹<SIGNATURE__1120__FP__ADDRESSŒ<SIGNATURE__1107__FP__ADDRESS<SIGNATURE__1111__FP__ADDRESSŽ<SIGNATURE__1079__FP__ADDRESS<SIGNATURE__1103__FP__ADDRESS<SIGNATURE__1094__FP__ADDRESS‘<SIGNATURE__1101__FP__ADDRESS’<SIGNATURE__1087__FP__ADDRESS“<SIGNATURE__1095__FP__ADDRESS”<SIGNATURE__1104__FP__ADDRESS•<SIGNATURE__1076__FP__ADDRESS–<SIGNATURE__1098__FP__ADDRESS—<SIGNATURE__1118__FP__ADDRESS˜<SIGNATURE__1086__FP__ADDRESS™<SIGNATURE__1089__FP__ADDRESSš<SIGNATURE__1117__FP__ADDRESS›<SIGNATURE__1112__FP__ADDRESSœ<SIGNATURE__1116__FP__ADDRESS<SIGNATURE__1082__FP__ADDRESSž<SIGNATURE__1115__FP__ADDRESSŸ<SIGNATURE__1109__FP__ADDRESS <SIGNATURE__1136__FP__ADDRESS¡<SIGNATURE__1132__FP__ADDRESS¢<SIGNATURE__1140__FP__ADDRESS£<SIGNATURE__1137__FP__ADDRESS¤<SIGNATURE__1135__FP__ADDRESS¥<SIGNATURE__1133__FP__ADDRESS¦<SIGNATURE__1139__FP__ADDRESS§<SIGNATURE__1134__FP__ADDRESS¨<SIGNATURE__1138__FP__ADDRESS©<SIGNATURE__1131__FP__ADDRESSª<SIGNATURE__1151__FP__ADDRESS«<SIGNATURE__1149__FP__ADDRESS¬<SIGNATURE__1153__FP__ADDRESS­<SIGNATURE__1150__FP__ADDRESS®<SIGNATURE__1152__FP__ADDRESS¯<SIGNATURE__1154__FP__ADDRESS°<SIGNATURE__1148__FP__ADDRESS±<SIGNATURE__1170__FP__ADDRESS²<SIGNATURE__1163__FP__ADDRESS³<SIGNATURE__1171__FP__ADDRESS´<SIGNATURE__1169__FP__ADDRESSµ<SIGNATURE__1164__FP__ADDRESS¶<SIGNATURE__1166__FP__ADDRESS·<SIGNATURE__1168__FP__ADDRESS¸<SIGNATURE__1165__FP__ADDRESS¹<SIGNATURE__1167__FP__ADDRESSº<SIGNATURE__1162__FP__ADDRESS»<SIGNATURE__1231__FP__ADDRESS¼<SIGNATURE__1204__FP__ADDRESS½<SIGNATURE__1186__FP__ADDRESS¾<SIGNATURE__1225__FP__ADDRESS¿<SIGNATURE__1218__FP__ADDRESSÀ<SIGNATURE__1229__FP__ADDRESSÁ<SIGNATURE__1230__FP__ADDRESSÂ<SIGNATURE__1180__FP__ADDRESSÃ<SIGNATURE__1190__FP__ADDRESSÄ<SIGNATURE__1227__FP__ADDRESSÅ<SIGNATURE__1215__FP__ADDRESSÆ<SIGNATURE__1228__FP__ADDRESSÇ<SIGNATURE__1217__FP__ADDRESSÈ<SIGNATURE__1240__FP__ADDRESSÉ<SIGNATURE__1194__FP__ADDRESSÊ<SIGNATURE__1221__FP__ADDRESSË<SIGNATURE__1220__FP__ADDRESSÌ<SIGNATURE__1212__FP__ADDRESSÍ<SIGNATURE__1222__FP__ADDRESSÎ<SIGNATURE__1232__FP__ADDRESSÏ<SIGNATURE__1237__FP__ADDRESSÐ<SIGNATURE__1226__FP__ADDRESSÑ<SIGNATURE__1202__FP__ADDRESSÒ<SIGNATURE__1223__FP__ADDRESSÓ<SIGNATURE__1201__FP__ADDRESSÔ<SIGNATURE__1187__FP__ADDRESSÕ<SIGNATURE__1198__FP__ADDRESSÖ<SIGNATURE__1211__FP__ADDRESS×<SIGNATURE__1207__FP__ADDRESSØ<SIGNATURE__1188__FP__ADDRESSÙ<SIGNATURE__1193__FP__ADDRESSÚ<SIGNATURE__1208__FP__ADDRESSÛ<SIGNATURE__1191__FP__ADDRESSÜ<SIGNATURE__1224__FP__ADDRESSÝ<SIGNATURE__1203__FP__ADDRESSÞ<SIGNATURE__1239__FP__ADDRESSß<SIGNATURE__1195__FP__ADDRESSà<SIGNATURE__1199__FP__ADDRESSá<SIGNATURE__1184__FP__ADDRESSâ<SIGNATURE__1219__FP__ADDRESSã<SIGNATURE__1238__FP__ADDRESSä<SIGNATURE__1216__FP__ADDRESSå<SIGNATURE__1185__FP__ADDRESSæ<SIGNATURE__1189__FP__ADDRESSç<SIGNATURE__1182__FP__ADDRESSè<SIGNATURE__1179__FP__ADDRESSé<SIGNATURE__1183__FP__ADDRESSê<SIGNATURE__1233__FP__ADDRESSë<SIGNATURE__1206__FP__ADDRESSì<SIGNATURE__1181__FP__ADDRESSí<SIGNATURE__1197__FP__ADDRESSî<SIGNATURE__1205__FP__ADDRESSï<SIGNATURE__1214__FP__ADDRESSð<SIGNATURE__1210__FP__ADDRESSñ<SIGNATURE__1236__FP__ADDRESSò<SIGNATURE__1196__FP__ADDRESSó<SIGNATURE__1241__FP__ADDRESSô<SIGNATURE__1192__FP__ADDRESSõ<SIGNATURE__1213__FP__ADDRESSö<SIGNATURE__1235__FP__ADDRESS÷<SIGNATURE__1209__FP__ADDRESSø<SIGNATURE__1200__FP__ADDRESSù<SIGNATURE__1234__FP__ADDRESSú<SIGNATURE__1256__FP__ADDRESSû<SIGNATURE__1250__FP__ADDRESSü<SIGNATURE__1254__FP__ADDRESSý<SIGNATURE__1255__FP__ADDRESSþ<SIGNATURE__1253__FP__ADDRESSÿ<SIGNATURE__1251__FP__ADDRESS€=SIGNATURE__1252__FP__ADDRESS=SIGNATURE__1249__FP__ADDRESS‚=SIGNATURE__1298__FP__ADDRESSƒ=SIGNATURE__1279__FP__ADDRESS„=SIGNATURE__1307__FP__ADDRESS…=SIGNATURE__1306__FP__ADDRESS†=SIGNATURE__1274__FP__ADDRESS‡=SIGNATURE__1294__FP__ADDRESSˆ=SIGNATURE__1270__FP__ADDRESS‰=SIGNATURE__1289__FP__ADDRESSŠ=SIGNATURE__1288__FP__ADDRESS‹=SIGNATURE__1278__FP__ADDRESSŒ=SIGNATURE__1266__FP__ADDRESS=SIGNATURE__1303__FP__ADDRESSŽ=SIGNATURE__1296__FP__ADDRESS=SIGNATURE__1299__FP__ADDRESS=SIGNATURE__1287__FP__ADDRESS‘=SIGNATURE__1276__FP__ADDRESS’=SIGNATURE__1309__FP__ADDRESS“=SIGNATURE__1282__FP__ADDRESS”=SIGNATURE__1311__FP__ADDRESS•=SIGNATURE__1273__FP__ADDRESS–=SIGNATURE__1310__FP__ADDRESS—=SIGNATURE__1301__FP__ADDRESS˜=SIGNATURE__1292__FP__ADDRESS™=SIGNATURE__1265__FP__ADDRESSš=SIGNATURE__1285__FP__ADDRESS›=SIGNATURE__1268__FP__ADDRESSœ=SIGNATURE__1295__FP__ADDRESS=SIGNATURE__1275__FP__ADDRESSž=SIGNATURE__1300__FP__ADDRESSŸ=SIGNATURE__1280__FP__ADDRESS =SIGNATURE__1290__FP__ADDRESS¡=SIGNATURE__1291__FP__ADDRESS¢=SIGNATURE__1293__FP__ADDRESS£=SIGNATURE__1264__FP__ADDRESS¤=SIGNATURE__1297__FP__ADDRESS¥=SIGNATURE__1267__FP__ADDRESS¦=SIGNATURE__1286__FP__ADDRESS§=SIGNATURE__1284__FP__ADDRESS¨=SIGNATURE__1283__FP__ADDRESS©=SIGNATURE__1308__FP__ADDRESSª=SIGNATURE__1302__FP__ADDRESS«=SIGNATURE__1277__FP__ADDRESS¬=SIGNATURE__1269__FP__ADDRESS­=SIGNATURE__1271__FP__ADDRESS®=SIGNATURE__1304__FP__ADDRESS¯=SIGNATURE__1272__FP__ADDRESS°=SIGNATURE__1305__FP__ADDRESS±=SIGNATURE__1281__FP__ADDRESS²=SIGNATURE__1320__FP__ADDRESS³=SIGNATURE__1324__FP__ADDRESS´=SIGNATURE__1325__FP__ADDRESSµ=SIGNATURE__1322__FP__ADDRESS¶=SIGNATURE__1321__FP__ADDRESS·=SIGNATURE__1323__FP__ADDRESS¸=SIGNATURE__1319__FP__ADDRESS¹=SIGNATURE__1344__FP__ADDRESSº=SIGNATURE__1339__FP__ADDRESS»=SIGNATURE__1348__FP__ADDRESS¼=SIGNATURE__1357__FP__ADDRESS½=SIGNATURE__1351__FP__ADDRESS¾=SIGNATURE__1362__FP__ADDRESS¿=SIGNATURE__1337__FP__ADDRESSÀ=SIGNATURE__1354__FP__ADDRESSÁ=SIGNATURE__1360__FP__ADDRESSÂ=SIGNATURE__1352__FP__ADDRESSÃ=SIGNATURE__1335__FP__ADDRESSÄ=SIGNATURE__1333__FP__ADDRESSÅ=SIGNATURE__1343__FP__ADDRESSÆ=SIGNATURE__1341__FP__ADDRESSÇ=SIGNATURE__1347__FP__ADDRESSÈ=SIGNATURE__1342__FP__ADDRESSÉ=SIGNATURE__1334__FP__ADDRESSÊ=SIGNATURE__1359__FP__ADDRESSË=SIGNATURE__1338__FP__ADDRESSÌ=SIGNATURE__1353__FP__ADDRESSÍ=SIGNATURE__1349__FP__ADDRESSÎ=SIGNATURE__1361__FP__ADDRESSÏ=SIGNATURE__1355__FP__ADDRESSÐ=SIGNATURE__1340__FP__ADDRESSÑ=SIGNATURE__1356__FP__ADDRESSÒ=SIGNATURE__1346__FP__ADDRESSÓ=SIGNATURE__1350__FP__ADDRESSÔ=SIGNATURE__1336__FP__ADDRESSÕ=SIGNATURE__1358__FP__ADDRESSÖ=SIGNATURE__1345__FP__ADDRESS×=SIGNATURE__1371__FP__ADDRESSØ=SIGNATURE__1376__FP__ADDRESSÙ=SIGNATURE__1373__FP__ADDRESSÚ=SIGNATURE__1372__FP__ADDRESSÛ=SIGNATURE__1375__FP__ADDRESSÜ=SIGNATURE__1374__FP__ADDRESSÝ=SIGNATURE__1370__FP__ADDRESSÞ=SIGNATURE__1403__FP__ADDRESSß=SIGNATURE__1400__FP__ADDRESSà=SIGNATURE__1402__FP__ADDRESSá=SIGNATURE__1401__FP__ADDRESSâ=SIGNATURE__1399__FP__ADDRESSã=SIGNATURE__1387__FP__ADDRESSä=SIGNATURE__1385__FP__ADDRESSå=SIGNATURE__1391__FP__ADDRESSæ=SIGNATURE__1388__FP__ADDRESSç=SIGNATURE__1386__FP__ADDRESSè=SIGNATURE__1390__FP__ADDRESSé=SIGNATURE__1389__FP__ADDRESSê=SIGNATURE__1392__FP__ADDRESSë=SIGNATURE__1384__FP__ADDRESSì=SIGNATURE__1412__FP__ADDRESSí=SIGNATURE__1417__FP__ADDRESSî=SIGNATURE__1414__FP__ADDRESSï=SIGNATURE__1413__FP__ADDRESSð=SIGNATURE__1416__FP__ADDRESSñ=SIGNATURE__1415__FP__ADDRESSò=SIGNATURE__1411__FP__ADDRESSó=SIGNATURE__1429__FP__ADDRESSô=SIGNATURE__1426__FP__ADDRESSõ=SIGNATURE__1430__FP__ADDRESSö=SIGNATURE__1431__FP__ADDRESS÷=SIGNATURE__1432__FP__ADDRESSø=SIGNATURE__1427__FP__ADDRESSù=SIGNATURE__1428__FP__ADDRESSú=SIGNATURE__1425__FP__ADDRESSû=SIGNATURE__1433__FP__ADDRESSü=SIGNATURE__1442__FP__ADDRESSý=SIGNATURE__1446__FP__ADDRESSþ=SIGNATURE__1444__FP__ADDRESSÿ=SIGNATURE__1443__FP__ADDRESS€>SIGNATURE__1445__FP__ADDRESS>SIGNATURE__1441__FP__ADDRESS‚>SIGNATURE__1455__FP__ADDRESSƒ>SIGNATURE__1460__FP__ADDRESS„>SIGNATURE__1459__FP__ADDRESS…>SIGNATURE__1457__FP__ADDRESS†>SIGNATURE__1456__FP__ADDRESS‡>SIGNATURE__1458__FP__ADDRESSˆ>SIGNATURE__1454__FP__ADDRESS‰>SIGNATURE__1491__FP__ADDRESSŠ>SIGNATURE__1472__FP__ADDRESS‹>SIGNATURE__1480__FP__ADDRESSŒ>SIGNATURE__1489__FP__ADDRESS>SIGNATURE__1468__FP__ADDRESSŽ>SIGNATURE__1487__FP__ADDRESS>SIGNATURE__1470__FP__ADDRESS>SIGNATURE__1492__FP__ADDRESS‘>SIGNATURE__1485__FP__ADDRESS’>SIGNATURE__1488__FP__ADDRESS“>SIGNATURE__1475__FP__ADDRESS”>SIGNATURE__1474__FP__ADDRESS•>SIGNATURE__1469__FP__ADDRESS–>SIGNATURE__1481__FP__ADDRESS—>SIGNATURE__1493__FP__ADDRESS˜>SIGNATURE__1484__FP__ADDRESS™>SIGNATURE__1486__FP__ADDRESSš>SIGNATURE__1479__FP__ADDRESS›>SIGNATURE__1477__FP__ADDRESSœ>SIGNATURE__1471__FP__ADDRESS>SIGNATURE__1482__FP__ADDRESSž>SIGNATURE__1473__FP__ADDRESSŸ>SIGNATURE__1476__FP__ADDRESS >SIGNATURE__1490__FP__ADDRESS¡>SIGNATURE__1483__FP__ADDRESS¢>SIGNATURE__1478__FP__ADDRESS£>SIGNATURE__1515__FP__ADDRESS¤>SIGNATURE__1519__FP__ADDRESS¥>SIGNATURE__1517__FP__ADDRESS¦>SIGNATURE__1516__FP__ADDRESS§>SIGNATURE__1518__FP__ADDRESS¨>SIGNATURE__1514__FP__ADDRESS©>SIGNATURE__1066__FP__ADDRESSª>SIGNATURE__1502__FP__ADDRESS«>SIGNATURE__1506__FP__ADDRESS¬>SIGNATURE__1504__FP__ADDRESS­>SIGNATURE__1503__FP__ADDRESS®>SIGNATURE__1505__FP__ADDRESS¯>SIGNATURE__1501__FP__ADDRESS°>SIGNATURE__1525__FP__ADDRESS±>SIGNATURE__1524__FP__ADDRESS²>SIGNATURE__1520__FP__ADDRESS³>SIGNATURE__1528__FP__ADDRESS´>SIGNATURE__1533__FP__ADDRESSµ>SIGNATURE__1534__FP__ADDRESS¶>SIGNATURE__1535__FP__ADDRESS·>SIGNATURE__1536__FP__ADDRESS¸>SIGNATURE__1538__FP__ADDRESS¹>SIGNATURE__1539__FP__ADDRESSº>SIGNATURE__1540__FP__ADDRESS»>SIGNATURE__1541__FP__ADDRESS¼>SIGNATURE__1542__FP__ADDRESS½>SIGNATURE__1546__FP__ADDRESS¾>SIGNATURE__1543__FP__ADDRESS¿>SIGNATURE__1547__FP__ADDRESSÀ>SIGNATURE__1548__FP__ADDRESSÁ>SIGNATURE__1549__FP__ADDRESSÂ>SIGNATURE__1550__FP__ADDRESSÃ>SIGNATURE__1551__FP__ADDRESSÄ>SIGNATURE__1554__FP__ADDRESSÅ>SIGNATURE__1558__FP__ADDRESSÆ>SIGNATURE__1555__FP__ADDRESSÇ>SIGNATURE__1559__FP__ADDRESSÈ>SIGNATURE__1560__FP__ADDRESSÉ>SIGNATURE__1561__FP__ADDRESSÊ>SIGNATURE__1564__FP__ADDRESSË>SIGNATURE__1565__FP__ADDRESSÌ>SIGNATURE__1566__FP__ADDRESSÍ>SIGNATURE__1567__FP__ADDRESSÎ>SIGNATURE__1568__FP__ADDRESSÏ>SIGNATURE__1569__FP__ADDRESSÐ>SIGNATURE__1570__FP__ADDRESSÑ>SIGNATURE__1571__FP__ADDRESSÒ>SIGNATURE__1572__FP__ADDRESSÓ>SIGNATURE__1573__FP__ADDRESSÔ>SIGNATURE__1574__FP__ADDRESSÕ>SIGNATURE__1589__FP__ADDRESSÖ>SIGNATURE__1586__FP__ADDRESS×>SIGNATURE__1583__FP__ADDRESSØ>SIGNATURE__1585__FP__ADDRESSÙ>SIGNATURE__1584__FP__ADDRESSÚ>SIGNATURE__1582__FP__ADDRESSÛ>SIGNATURE__1575__FP__ADDRESSÜ>SIGNATURE__1592__FP__ADDRESSÝ>SIGNATURE__1594__FP__ADDRESSÞ>SIGNATURE__1595__FP__ADDRESSß>SIGNATURE__1596__FP__ADDRESSà>SIGNATURE__1597__FP__ADDRESSá>SIGNATURE__1598__FP__ADDRESSâ>SIGNATURE__1599__FP__ADDRESSã>SIGNATURE__1600__FP__ADDRESSä>SIGNATURE__1601__FP__ADDRESSå>SIGNATURE__1602__FP__ADDRESSæ>SIGNATURE__1603__FP__ADDRESSç>SIGNATURE__1604__FP__ADDRESSè>SIGNATURE__1605__FP__ADDRESSé>SIGNATURE__1606__FP__ADDRESSê>SIGNATURE__1607__FP__ADDRESSë>SIGNATURE__1608__FP__ADDRESSì>SIGNATURE__1609__FP__ADDRESSí>SIGNATURE__1610__FP__ADDRESSî>SIGNATURE__1611__FP__ADDRESSï>SIGNATURE__1612__FP__ADDRESSð>SIGNATURE__1613__FP__ADDRESSñ>SIGNATURE__1616__FP__ADDRESSò>SIGNATURE__1617__FP__ADDRESSó>SIGNATURE__1619__FP__ADDRESSô>SIGNATURE__1620__FP__ADDRESSõ>SIGNATURE__1621__FP__ADDRESSö>SIGNATURE__1622__FP__ADDRESS÷>SIGNATURE__1623__FP__ADDRESSø>SIGNATURE__1624__FP__ADDRESSù>SIGNATURE__1625__FP__ADDRESSú>SIGNATURE__1626__FP__ADDRESSû>SIGNATURE__1627__FP__ADDRESSü>SIGNATURE__1628__FP__ADDRESSý>SIGNATURE__1629__FP__ADDRESSþ>SIGNATURE__1630__FP__ADDRESSÿ>SIGNATURE__1631__FP__ADDRESS€?SIGNATURE__1632__FP__ADDRESS?SIGNATURE__1633__FP__ADDRESS‚?SIGNATURE__1634__FP__ADDRESSƒ?SIGNATURE__1635__FP__ADDRESS„?SIGNATURE__1636__FP__ADDRESS…?SIGNATURE__1637__FP__ADDRESS†?SIGNATURE__1638__FP__ADDRESS‡?SIGNATURE__1639__FP__ADDRESSˆ?SIGNATURE__1640__FP__ADDRESS‰?SIGNATURE__1641__FP__ADDRESSŠ?SIGNATURE__1642__FP__ADDRESS‹?SIGNATURE__1643__FP__ADDRESSŒ?SIGNATURE__1644__FP__ADDRESS?SIGNATURE__1645__FP__ADDRESSŽ?SIGNATURE__1647__FP__ADDRESS?SIGNATURE__1648__FP__ADDRESS?SIGNATURE__1649__FP__ADDRESS‘?SIGNATURE__1650__FP__ADDRESS’?SIGNATURE__1651__FP__ADDRESS“?SIGNATURE__1652__FP__ADDRESS”?SIGNATURE__1659__FP__ADDRESS•?SIGNATURE__1656__FP__ADDRESS–?SIGNATURE__1667__FP__ADDRESS—?SIGNATURE__1665__FP__ADDRESS˜?SIGNATURE__1671__FP__ADDRESS™?SIGNATURE__1669__FP__ADDRESSš?SIGNATURE__1670__FP__ADDRESS›?SIGNATURE__1666__FP__ADDRESSœ?SIGNATURE__1668__FP__ADDRESS?SIGNATURE__1672__FP__ADDRESSž?SIGNATURE__1673__FP__ADDRESSŸ?SIGNATURE__1674__FP__ADDRESS ?SIGNATURE__1675__FP__ADDRESS¡?SIGNATURE__1678__FP__ADDRESS¢?SIGNATURE__1679__FP__ADDRESS£?SIGNATURE__1680__FP__ADDRESS¤?SIGNATURE__1681__FP__ADDRESS¥?SIGNATURE__1684__FP__ADDRESS¦?SIGNATURE__1685__FP__ADDRESS§?SIGNATURE__1688__FP__ADDRESS¨?SIGNATURE__1689__FP__ADDRESS©?SIGNATURE__1690__FP__ADDRESSª?SIGNATURE__1691__FP__ADDRESS«?SIGNATURE__1692__FP__ADDRESS¬?SIGNATURE__1693__FP__ADDRESS­?SIGNATURE__1695__FP__ADDRESS®?SIGNATURE__1697__FP__ADDRESS¯?SIGNATURE__1699__FP__ADDRESS°?SIGNATURE__1701__FP__ADDRESS±?SIGNATURE__1702__FP__ADDRESS²?SIGNATURE__1704__FP__ADDRESS³?SIGNATURE__1706__FP__ADDRESS´?SIGNATURE__1708__FP__ADDRESSµ?SIGNATURE__1710__FP__ADDRESS¶?SIGNATURE__1712__FP__ADDRESS·?SIGNATURE__1714__FP__ADDRESS¸?SIGNATURE__1716__FP__ADDRESS¹?SIGNATURE__1718__FP__ADDRESSº?SIGNATURE__1720__FP__ADDRESS»?SIGNATURE__1722__FP__ADDRESS¼?SIGNATURE__1724__FP__ADDRESS½?SIGNATURE__1726__FP__ADDRESS¾?SIGNATURE__1728__FP__ADDRESS¿?SIGNATURE__1730__FP__ADDRESSÀ?SIGNATURE__1732__FP__ADDRESSÁ?SIGNATURE__1733__FP__ADDRESSÂ?SIGNATURE__1734__FP__ADDRESSÃ?SIGNATURE__1735__FP__ADDRESSÄ?SIGNATURE__1737__FP__ADDRESSÅ?SIGNATURE__1738__FP__ADDRESSÆ?SIGNATURE__1739__FP__ADDRESSÇ?SIGNATURE__1740__FP__ADDRESSÈ?SIGNATURE__1741__FP__ADDRESSÉ?SIGNATURE__1742__FP__ADDRESSÊ?SIGNATURE__1743__FP__ADDRESSË?SIGNATURE__1744__FP__ADDRESSÌ?SIGNATURE__1745__FP__ADDRESSÍ?SIGNATURE__1746__FP__ADDRESSÎ?SIGNATURE__1747__FP__ADDRESSÏ?SIGNATURE__1748__FP__ADDRESSÐ?SIGNATURE__1749__FP__ADDRESSÑ?SIGNATURE__1750__FP__ADDRESSÒ?SIGNATURE__1751__FP__ADDRESSÓ?SIGNATURE__1752__FP__ADDRESSÔ?SIGNATURE__1753__FP__ADDRESSÕ?SIGNATURE__1754__FP__ADDRESSÖ?SIGNATURE__1755__FP__ADDRESS×?SIGNATURE__1756__FP__ADDRESSØ?SIGNATURE__1757__FP__ADDRESSÙ?SIGNATURE__1758__FP__ADDRESSÚ?SIGNATURE__1759__FP__ADDRESSÛ?SIGNATURE__1760__FP__ADDRESSÜ?SIGNATURE__1761__FP__ADDRESSÝ?SIGNATURE__1762__FP__ADDRESSÞ?SIGNATURE__1763__FP__ADDRESSß?9NoInit, NoCompareWithNew, Compiled, SuperGlobal, Internalà?F{attribute 'conditionalshow' := '3SLib_Developer'}
{attribute 'hide'}á?
4261187534â?	Variablesã?stLogStringä?
pLogStringå?$cd51317e-3db2-44da-bb88-6b22ca144fe3æ?3 Base type and swapping information for io channelsç?
2906528882è?BaseTypeInformationé?7 The low byte contains the base clase of the io channelê?
CMLBT_Maskë?7 If this bit is set, the base type information is validì?CMLBT_IS_SETí?E Enable flag, if this bit is set to 0, the swapping must be disabled.î?CMLBT_ENABLEï?$ca9ad7fa-6105-44aa-b100-d441fed9fb53ð?  Fieldbus independent parametersñ?
3214716919ò?BusIndependentParameterIDsó?A Parameter to identify netX devices.TRUE indicates a netX device.ô?FIP_NETX_DEVICEõ?S Master Watchdog TIME. 0 deactivates the watchdog, 1-0xFFFF sets the watchdog TIME.ö?FIP_WATCHDOG÷?- Slot number of the NetX device e.g. PCI slotø?FIP_NETX_SLOT_NUMBERù?8 A NetX chip may have up to four communication channels.ú?FIP_NETX_CHANNEL_NUMBERû?† Wait time for the BUS_ON signal of the master in the IO Driver. If it is set to 0, the IO driver does not wait for the BUS ON signal.ü?FIP_BUS_ON_TIMEOUTý?e Name of the device, if target setting deviceconfiguration:enableAdditionalParameters is set to TRUE.þ?FIP_DEVICENAMEÿ?s Hashcode of DeviceIdentification, if target setting deficeconfiguration:enableAdditionalParameters is set to TRUE.€@FIP_DEVICEIDENTIFICATION_HASH@, Value of UpdateIOInStop (see PLC settings).‚@FIP_UPDATE_IO_IN_STOPƒ@0 Used for Safety. Describing the used protocols.„@FIP_SAFETY_PROTOCOL…@Q Contains the version of the fieldbus config schema e.g. 16#03050100 for V3.5.1.0†@FIP_CONFIG_VERSION‡@i Number of parameters beginning at 0x7f000019 (max. 256 Parameters) describing the used safety protocols.ˆ@FIP_NUMBER_OF_SAFETY_PROTOCOLS‰@  First Safety Protocol ParameterŠ@FIP_FIRST_SAFETY_PROTOCOL_PARAM‹@ Last Safety Protocol ParameterŒ@FIP_LAST_SAFETY_PROTOCOL_PARAM@$4a181e1a-4536-4b69-9aaa-cb9b31f14916Ž@N Connector flags: Flags that specifies diagnostic informations of a connector @
1256596728@ConnectorFlags‘@ Connector enabled’@	CF_ENABLE“@8 Connector provides diagnosis for the associated device.”@CF_DIAG_PROVIDER•@g Only valid if CF_DIAG_PROVIDER is set. Specifies if device is currently enabled (used by Reconfigure).–@CF_DEVICE_ENABLED—@ Demo License is active˜@CF_DEMOLICENSE_ACTIVE™@ A driver is availableš@CF_DRIVER_AVAILABLE›@" Connector found (device detected)œ@CF_CONNECTOR_FOUND@ Connector configuredž@CF_CONNECTOR_CONFIGUREDŸ@ Connector active @CF_CONNECTOR_ACTIVE¡@
 Bus error¢@CF_CONNECTOR_BUS_ERROR£@ General connector error¤@CF_CONNECTOR_ERROR¥@! Diagnostic information available¦@!CF_CONNECTOR_DIAGNOSTIC_AVAILABLE§@8 Passive mode of the second master in redundancy systems¨@CF_CONNECTOR_PASSIVE©@0An Error was automatically cleared by the driverª@CF_ERROR_CLEARED«@$c718ceaa-635a-4cfd-ba2c-768a82c26857¬@A Connector options: Options to specify properties of a connector ­@
2882327493®@ConnectorOptions¯@
 No option°@CO_NONE±@¸ Scan the IO-configuration with segmented transfer is supported. In this case, the call of IoDrvScanModules() can return ERR_PENDING to get further calls to transmit more scan results.²@CO_SCAN_PENDING_SUPPORTED³@$62a7a276-ff5c-4692-9d2b-ead8aef2ed09´@=	Types of connectors. "0x8000..0x8FFF" are Special Connectorsµ@
4271018223¶@ConnectorTypes·@6 Programmable connector (can be programmed by CoDeSys)¸@CT_PROGRAMMABLE¹@! Connector is only parametrizableº@CT_PARAMETRIZABLE»@ CANbus¼@
CT_CAN_BUS½@ CANopen Master¾@
CT_CAN_MASTER¿@ CANopen Remote SlaveÀ@CT_CAN_SLAVEÁ@ CANopen Local Device		Â@
CT_CAN_DEVICEÃ@ CANopen SafetyÄ@CT_CANOPEN_SAFETYÅ@ J1939 ManagerÆ@CT_J1939_MANAGERÇ@
 J1939 ECUÈ@CT_J1939_ECUÉ@ CANopen Safety SlaveÊ@CT_CANOPEN_SAFETY_SLAVEË@ Profibus MasterÌ@CT_PROFIBUS_MASTERÍ@ Profibus SlaveÎ@CT_PROFIBUS_SLAVEÏ@ Profibus DeviceÐ@CT_PROFIBUS_DEVICEÑ@ Profibus modular MasterÒ@CT_PROFIBUS_MOD_MASTERÓ@ Profibus modular SlaveÔ@CT_PROFIBUS_MOD_SLAVEÕ@ Profibus DeviceNet MasterÖ@CT_DEVICENET_MASTER×@ Profibus DeviceNet SlaveØ@CT_DEVICENET_SLAVEÙ@ DeviceNet DeviceÚ@CT_DEVICENET_DEVICEÛ@ EtherCAT MasterÜ@CT_ETHERCAT_MASTERÝ@ EtherCAT SlaveÞ@CT_ETHERCAT_SLAVEß@ EtherCAT Deviceà@CT_ETHERCAT_DEVICEá@ EtherNet/IP Scannerâ@CT_ENIP_SCANNERã@ EtherNet/IP Remote Adapterä@CT_ENIP_REMOTE_ADAPTERå@ PCI Masteræ@
CT_PCI_MASTERç@
 PCI Slaveè@CT_PCI_SLAVEé@$c87be3b5-dafe-4495-952e-a6dffce8842dê@
3062691420ë@DriverPropertyFlagsì@‰ IO-driver realizes bit-consistency by its own (atomar bit access). If this flag is 0, the bit-consistency is provided by the IO-Manager.í@DRVPROP_CONSISTENCYî@¨ The io driver needs a cyclic call TO the IoDrvWatchdogTrigger INTERFACE FUNCTION. The io manager will call the io driver approximately every Watchdogtime/2. The Watchdogtime must be set in the IoConfig parameters (ID 0x70000001). ATTENTION: The io manager will pass a NULL pointer as parameter pConnector to the IIoDrv interface function IoDrvWatchdogTrigger. If this flag is 0, the driver must trigger the watchdog itself.ï@DRVPROP_WATCHDOGð@u IO-driver can support redundancy. If the flag DRVPROP_REDUNDANCY is 1, the redundancy is provided by the IO-Manager.ñ@DRVPROP_REDUNDANCYò@I If the flag DRVPROP_ACTIVE is 1, the master is active otherwise passive.ó@DRVPROP_ACTIVEô@š The flag DRVPROP_ERROR_ACTIVE is used to tell the redundancy component that the active master has an error and it should switchover (only on active plc).õ@DRVPROP_ERROR_ACTIVEö@j The flag DRVPROP_ERROR_PASSIVE can be set to inform redundancy component that the communication was lost.÷@DRVPROP_ERROR_PASSIVEø@š If this property is set, the interface function IoDrvGetModuleDiagnosis() of the driver is called cyclically from a background task. NOTE: In this case, IoDrvGetModuleDiagnosis is called with: IoDrvGetModuleDiagnosis(hIoDrv, NULL); This must be handled correctly in the IO-driver! ù@DRVPROP_BACKGROUND_GETDIAGú@à Disable synchronization for ReadInputs/WriteOutputs/StartBusCycle in the I/O Manager (CmpIoMgr). In this case the I/O driver has to implement the synchronization of these functions itself. CmpIoMgr provides the following functions that can be used by the I/O driver for synchronization:	IoMgrLockEnter(), IoMgrLockLeave() û@DRVPROP_NO_SYNCü@$49ec242b-5a81-4d85-9c22-00f1a2026752ý@‰ Scopes for mutual-exclusion locks to be used with the ``dwLockScope`` parameters of the functions ``IoMgrLockEnter()`` and ``IoMgrLockLeave()``.
 Note: Use both locks ``IOMGR_LOCK_WRITE_OUTPUTS OR IOMGR_LOCK_READ_INPUTS`` in the function ``IoDrvStartBusCycle()``.þ@
1750284199ÿ@
LockScopes€AF Lock critical sections in IoDrvReadInputs() and IoDrvStartBusCycle().AIOMGR_LOCK_READ_INPUTS‚AH Lock critical sections in IoDrvWriteOutputs() and IoDrvStartBusCycle().ƒAIOMGR_LOCK_WRITE_OUTPUTS„A$8293b298-c8b3-457c-a427-e9ab569ef5b0…A Parameter value flags†A
2737844889‡AParameterValueFlagsˆAA Functional access TO the parameter, Value is a FUNCTION POINTER.‰APVF_FUNCTIONŠA  Value is a pointer to the value‹APVF_POINTERŒAF Value can be interpreted directly as a value (max. 32 Bit datatypes).A	PVF_VALUEŽA Parameter can be read.APVF_READA Parameter can be written‘A	PVF_WRITE’Aa Output is bidirectional. There will be a call in IoDrvWriteOutputs as well as in IoDrvReadInputs“APVF_BIDIRECTIONAL”A$f917dec1-6a21-4f14-b013-9452261c64db•A# Types of IO-channels in a task map–A
3184734194—ATaskMapTypes˜A Input connector maps™A
TMT_INPUTSšA Output connector maps›ATMT_OUTPUTSœA$5b8f49a3-c5d0-4510-93fe-4205d28c3905A
2201444556žAEventIDsŸACMPID_CmpIoMgr A
 Parameter ID¡AEVTPARAMID_CmpIoMgr¢A Parameter version£AEVTVERSION_CmpIoMgr¤A3Event is sent before updating the IO-configuration.¥AEVT_PrepareUpdateConfiguration¦A2Event is sent after updating the IO-configuration.§AEVT_UpdateConfigurationDone¨A6Event is sent after the config application is started.©AEVT_ConfigAppStartedDoneªA7Event is sent before the config application is stopped.«AEVT_PrepareConfigAppStopped¬A6Event is sent after the config application is stopped.­AEVT_ConfigAppStoppedDone®A$a036c876-a9b4-48d2-ad0b-64d64266326b¯A0 Type of the bus cycle to differenciate between:°A
1947881383±ABusCycleType²A9 Bus Cycle is executed at the beginning of the task cycle³A	BCT_START´A3 Bus Cycle is executed at the end of the task cycleµABCT_END¶A$cd022f44-7898-4d97-b223-ba8a1334a3fe·Aanalysis¸A-27, -31, -33, -43¹A
4038458023ºASVN_Info_Summary»A® Version-Summary-Tag ähnlich zu svnversion.exe.
	 * Beispiel, '12:34M' bedeutet MINREV=12, MAXREV=34, Geändert.
	 * (Siehe SVN-Dokumentation für weitere Informationen)	 ¼A35125M½AsVersionSummary¾A$1e48524d-73cb-46d1-b590-36eb2c1a7c3f¿A-27, -31, -33, -43, -113ÀA
1943799135ÁASVN_Info_SummaryWÂAwsVersionSummaryÃA$9755c5b0-2092-4717-b940-0c916fcb381cÄA
3734062428ÅASVN_Info_URIÆA Die SVN-URL des Projekts:	 ÇA^svn://server04/LibrariesV3Source/branches/V3.5.15.0/Intern/IoDriverBase/IoStandard/IoStandard/ÈAwURLÉA$b1ef4121-f1a4-4c26-958e-7db6863465e5ÊA
4210413777ËASVN_Info_RevisionsÌA* Die kleinste Revision der Arbeitskopie.	 ÍA
liMinRevisionÎA* Die höchste Revision der Arbeitskopie.	 ÏA
liMaxRevisionÐA$58c55deb-e981-48ac-bd9d-96ba99db81acÑA
4231687110ÒASVN_Info_FlagsÓA› TRUE, wenn die Arbeitskopie unvollständig ist
	 * (z.B. die letzte Aktualisierung wegen Verbindungsproblemen abgebrochen, oder lückenhaftes Checkout)	 ÔAxIncompleteÕA( TRUE, wenn es lokale Änderungen gibt	 ÖA	xModified×A/ TRUE, wenn es umgeschaltete Unterbäume gibt	 ØA	xSwitchedÙAƒ TRUE, wenn die Version sauber ist.
	 * (MINREVISION == MAXREVISION, nicht unvollständig, nicht geändert, nicht umgeschaltet.)	 ÚAxCleanÛA$8e8e011c-3eb6-4b86-9c71-d98f353a1692ÜAâ Warnung: Die Werte der "letzen Änderung"  hier ist nur genau, wenn der Status ihres Arbeitsverzeichnisses sauber ist. Beispielsweise sind die Werte ungenau, wenn gemischte Revisionen oder lokale Änderungen vorhanden sind.	 ÝA
1257847159ÞASVN_Info_LastChangeßAÈ Datum und Uhrzeit der letzten Änderung als IEC DateTime(UTC). Sie können die IEC Time Bibliotheken verwenden,  um auf die lokale Zeit der SPS umzurechnen und nach Ihren Wünschen zu formattieren.	 àAdtLastChangeUtcáAÈ Letzte Änderung vorformatiert im Format "2006-07-22 21:42:37 -0700 (Sat, 22 Jul 2006)" (analog zum
	 * SVN-Schlüsselwort $Date$ Keyword), mit Verwendung der lokalen Zeitdes Entwicklungsrechners.	 âA,2019-06-05 08:48:56 +0200 (Wed, 05 Jun 2019)ãAwsLastChangeLocaläA  Der Autor des letzen Commits.	 åAb.brueckmannæAwsLastChangeAuthorçA$a141e132-98bc-4040-98d9-5ab52651951aèA
2434124423éA
GVL_hiddenêAgc_CLASSID_LicenseëAgc_tDemoìAg_tDemoTimeíAg_olmîAAGlobal, IsCompiled, Absolut, Initialized, OnlChangeExit, TypifiedïA
g_udiStartðA$60802aa3-0da6-43f2-b1c6-612c13d38103ñA
3998489052òA$6c565d0a-715a-4bda-9c41-364072c0854fóARTS_ACCESS_MODEôA
3616192811õAAM_READöAAM_WRITE÷A	AM_APPENDøAAM_READ_PLUSùA"Enum, Compiled, Typified, InternalúA$f6709db2-0787-4cc0-984b-80f9dc50344cûA	no_assignüA	114442801ýA
GVL_CfUnitþACfUnitRunnerÿAaGlobal, IsCompiled, Absolut, LocationChanged, OnlChangeCopy, OnlChangeInit, Initialized, Typified€BW Indication of whether the last instantiated test suite has an assert instance created BTestSuiteAssertRegistered‚B! Current test suite being called ƒBCurrentTestSuiteBeingCalled„B# Current name of test being called …BCurrentTestNameBeingCalled†BC Whether or not the current test being called has finished running ‡BCurrentTestIsFinishedˆBû This is a flag that indicates that the current test should be ignored, and
	   thus that all assertions under it should be ignored as well. A test can be ignored either
	   because the user has requested so, or because the test is a duplicate name ‰BIgnoreCurrentTestŠBb The assert function block instance should be 1:1 mapped to
       the test suite instance path. ‹BNumberOfInitializedTestSuitesŒBTestSuiteAddressesBMaxNumberOfTestSuitesŽB!Compiled, OnlineChanged, TypifiedB$78472b76-c9a4-4b27-a580-8e7898edc3d7Bstrict‘B
2220631024’B
E_XmlError“BOk”BErrorMaxBufferLen•BErrorStringLen–BError—B$05a4fdda-1086-47b5-ad10-7c2bac568355˜B
parameterlist™B
2927770536šB" Filesize in bytes (32 kb default)›B$69588962-bd3e-4958-957e-7bfb94609af1œB
4284228194B$cadec786-f15c-46d7-8a5f-f8454136b189žB	356200577ŸB
GVL_System B
_ST_Logger¡B	_CmpCfLog¢B$7e465938-43b3-4ac5-bae5-c19fce2bd2bf£B¥ | Access mode
 | File modes to open a file.
 .. note::
    For all ``*_PLUS`` modes be aware, that after reading from a file, writing can only be done after a call
    to |SysFileGetPos| or |SysFileSetPos|! If you call |SysFileWrite| right after |SysFileRead|,
    the file pointer could be on an invalid position!
    Correct example::
 	     SysFileRead();
 	     SysFileGetPos();
 	     SysFileWrite();¤BK Open an existing file with Read access. If file does not exist, Open fails¥BL Create new file with Write access. If file does exist, content is discarded¦BZ Open an existing file with Append (only write) access. If file does not exist, Open fails§BQ Open an existing file with Read/Write access. If file does not exist, Open fails¨BQ Create new file with Read/Write access. If file does exist, content is discarded©Bg Open an existing file with Append (read/write) access. If file does not exist, Open creates a new fileªB$52A6FD6D-031C-41c0-A818-0F45FE19AF8F«B
3969002541¬BTYPE_INTERFACE­B$18308f84-bb54-40d0-ae45-a2e8c891c222®Bc This enumeration describes errors which may occur when working with the functions of this library.¯B
1459264828°B
 no error ±BNO_ERROR²B first library-specific error ³BFIRST_ERROR´B Timeout occured. µBTIME_OUT¶B Operation was aborted. ·BABORT¸B& The interface reference was invalid. ¹BREF_INVALIDºB  The function is not supported. »B
NOT_SUPPORTED¼B, A general I/O configuration error occured. ½BERROR_IO¾B Invalid parameter. ¿B
PARAM_INVALIDÀB$ The specified node does not exist. ÁBNODE_NOT_EXISTINGÂBC Dynamic memory allocation is disabled or system is out of memory. ÃB	NO_MEMORYÄB) The specified I/O address is not valid. ÅB
ADR_NOT_FOUNDÆBJ There is no associated |IDevice| instance for the specified I/O address. ÇBINST_NOT_FOUNDÈB There is no data available. ÉBNO_DATAÊB1 Operation not possible due to the current state ËBOPERATION_INVALIDÌB# first manufacturer-specific error ÍBFIRST_MFÎB last error ÏB
LAST_ERRORÐB$f13851e4-c15c-4448-a3cc-5ae43fe11b73ÑBW This enumeration is used to issue the current operation state of asynchronous methods.ÒB
3323856578ÓBThe operation is in IDLE state.ÔBDORMANDÕBThe operation is busy.ÖBThe operation is done.×BThe operation has been aborted.ØBABORTEDÙBAn error occured.ÚB$099e50fd-afc7-47c9-a351-6f3017e8a668ÛB… This enumeration is used when working with asynchronous methods. 
 The current state is issued with the data structure |PROC_STATE|ÜB
1216809641ÝBa Operation is not started and stays in IDLE mode. The operation is returned to its initial state.ÞBNONEßB¶ Operation is started upon a rising edge and executed as long as the input remains on EXECUTE. 
 The operation is done as soon as the output is assigned the value |PROC_STATE.DONE|.àBEXECUTEáB`Operation is aborted. The abort is done if the state is assigned the value |PROC_STATE.ABORTED|.âB$c6d1acd1-ee3a-4ccd-8f66-9666acafa809ãBž This enumeration lists all possible states of a device. 
 The mapping to the according fieldbus specific states is defined by the associated fieldbus stack.äB
1079844211åBM | The device state is unknown.
 | Example: No supervision mechanism active.æBUNKNOWNçBThe device is stopped.èBSTOPPEDéBThe device is running.êBRUNNINGëBX | The device is in error state. 
 | |GetDeviceError| may supply a specific error code.ìB&The device is disabled in device tree.íBDISABLEDîBj | The device has not yet been configured by the stack. 
 | Example: Configuration phase not started yet.ïBNOT_CONFIGUREDðB} | The device has been configured by the stack.
 | Example: Configuration phase finished but device is not in running state.ñB
CONFIGUREDòB The device was not found on bus.óB	NOT_FOUNDôB$433ed6de-55c1-4185-ad70-6ddf325911c3õB3 This enumeration lists all available device types.öB
2114588675÷Bunknown deviceøBfieldbus masterùBFIELDBUS_MASTERúBfieldbus slaveûBFIELDBUS_SLAVEüB
safety deviceýB
SAFETY_DEVICEþBSoftMotion deviceÿB	SM_DEVICE€CSoftVision deviceCSOFT_VISION_DEVICE‚C
DTM deviceƒC
DTM_DEVICE„CSpecific I/O module…CSPEC_IO_MODULE†CStandard PLC‡CPLCˆC
Safety PLC‰C
SAFETY_PLCŠCdrive device‹CDRIVEŒCparameterizable deviceCPARAM_DEVICEŽC
HMI deviceCHMICSoftMotion PLC‘CSM_PLC’C$8aed5c5a-3842-4fbb-88ed-9daf2d992859“CP This enumeration lists all possible commands which can be executed on a device.”C	517549679•CSet device into running mode.–CSTART—CSet device into stopped mode.˜CSTOP™C5Restarts the device and triggers a new configuration.šCRESET›C$a7e257f0-b148-42bd-9728-e37e3d0caf96œCC This enumeration lists all possible logger modes for a bus logger.C
4281962858žCHLogger uses a linear logging buffer and stops logging if buffer is full.ŸCLINEAR CSLogger uses a circular logging buffer and overwrites old entries if buffer is full.¡CCIRCULAR¢C$7e79a0d1-9148-4b9b-ad98-63ccaecf75cf£CŸ This enumeration lists all possible states of a fieldbus.
 The mapping to the according fieldbus specific states is defined by the associated fieldbus stack.¤C
1762241342¥CThe bus state is unknown.¦C:The fieldbus is stopped. No I/O transfer can be processed.§CThe fieldbus is running.¨COThe fieldbus is in error state. |GetBusError| supplies the specific error code.©CBus is disabled in device tree.ªC$241f160c-990c-4b2c-b76d-499a25a87e70«C5 This enumeration lists all available fieldbus types.¬C
2711277066­Cunknown fieldbus®CProfibus DP¯CPROFIBUS_DP°CCAN bus±CCAN²CCANopen³CCANOPEN´C	DeviceNetµC	DEVICENET¶CEtherCAT·CETHERCAT¸CProfiNet I/O¹CPROFINET_IOºCEtherNet/IP»CETHERNET_IP¼C	Sercos II½CSERCOSII¾C
Sercos III¿C	SERCOSIIIÀC
Modbus TCPÁC
MODBUS_TCPÂC
Modbus RTUÃC
MODBUS_RTUÄCAS InterfaceÅCAS_INTERFACEÆCInterbusÇCINTERBUSÈCJ1939ÉCLONÊCCC LinkËCCC_LINKÌC	PowerlinkÍC	POWERLINKÎCEthernetÏCETHERNETÐCserial lineÑCSERIAL_LINEÒCvendor-specific fieldbusÓCVEN_SPECÔCfirst manufacturer fieldbusÕClast manufacturer fieldbusÖCLAST×C$0b0224da-afa6-473e-a720-47672a79c380ØC
3123414534ÙCDeviceDiagnosisGlobalsÚCg_itfRootNodeCountÛC$9949edc9-3b39-416b-b4f7-2127a75a789dÜC
1606829551ÝC$c92eaa45-312c-4223-92e1-5134242146edÞC
4028858377ßC
INVALID_IDàC$64bb6af4-43c3-4bd8-9df2-83ff119f5ca4áCŽ
 * The ``STATUS`` output has the data type DWORD which is interpreted as a packed array of four bytes.
 * | Byte 0:	``Function_Num``
 * | Byte 1:	``Error_Decode``
 * | Byte 2:	``Error_Code_1``
 * | Byte 3:	``Error_Code_2``
 * The Elements are used as specified in IEC 61158-6 (Profibus DP, Profinet IO)
 * Exception: If ``Function_Num`` has a value of 16#40, no protocol element is used.
 * This is the case for example if the validation of one input parameter failed.
 * In this case ``Error_Decode`` value of 16#82..16#8F reports an error at parameter number 2 - 15.
 * Other fixed error codes are defined in this enum.
1954776765ãC	 No erroräC	ERRORCODEåC Invalid IDæC Unknown errorçC Function not implementedèCNOT_IMPLEMENTEDéC& tried to use RDIAG on Profinet deviceêCRDIAG_PROFINETëC Stack not running.ìCSTACK_NOT_RUNNINGíC% Out of ressources or ressource busy.îCNO_RESSOURCEïC+ specified local data-buffer size too smallðCBUFFER_SIZEñC/ requested operation not possible in this stateòC
INVALID_STATEóC target-address is not uniqueôCADDRESS_NOT_UNIQUEõC= address is invalid or unreachable (e.g. different IP subnet)öCADDRESS_INVALID÷C' unable to detect/address target-deviceøCDEVICE_NOT_FOUNDùC5 target device has wrong type for requested operationúCDEVICETYPE_MISMATCHûC Operation timed out	üCTIMEOUTýC$0ea83946-0470-4697-83c0-4b8f9811c9c0þC
1784674971ÿCLogConstants€D
STD_LOGGERDLOG_STD_LOGGER‚DPointerƒDRTS_INVALID_HANDLE„DLOG_INVALID_HANDLE…D$4084b11d-b9ee-47b9-ad20-f9bc4eeb6bb6†D
1666259597‡DLogClassˆDLOG_NONE‰DLOG_INFOŠDLOG_WARNING‹D	LOG_ERRORŒD
LOG_EXCEPTIOND	LOG_DEBUGŽDLOG_USER_NOTIFYDLOG_ALLD$4daa954b-f889-4b97-a05f-93d44b64f374‘D
3164948391’DLT_HIGHSPEED“DLT_SAFE”D	LT_NORMAL•DLT_TIMESTAMP_RTC–DLT_TIMESTAMP_MS—DLT_TIMESTAMP_US˜DLT_TIMESTAMP_NS™D
LT_NO_DISABLEšD
LT_DUMP_ASYNC›DLT_DUMP_ALWAYSœDLT_DUMP_ON_CLOSEDLT_DUMP_ON_REQUESTžDOrŸD$0f010cee-3948-41fd-82ad-af5b1e2e8803 D
1265334668¡DErrors¢D Ok£DERR_OK¤D5 General error - to be used only for internal errors ¥D
ERR_FAILED¦D% Invalid parameter for this operation§D
ERR_PARAMETER¨De Function cannot be executed, since component has not been initialized yet. It may work later, though©DERR_NOTINITIALIZEDªD Version conflict«DERR_VERSION¬D Operation timed out­DERR_TIMEOUT®D- Insufficient memory to carry out the request¯DERR_NOBUFFER°D( For async-calls: call not complete, yet±DERR_PENDING²D! To many pending calls. Try later³DERR_NUMPENDING´D  The function is not implementedµDERR_NOTIMPLEMENTED¶D% No object with the provided id found·D
ERR_INVALIDID¸D Integer overflow¹DERR_OVERFLOWºD, The size of a buffer is to small or invalid»DERR_BUFFERSIZE¼D- No object with this specified name available½D
ERR_NO_OBJECT¾D No heap memory available¿DERR_NOMEMORYÀD0 An object with the same name is still availableÁD
ERR_DUPLICATEÂD> Heap memory was written out of bounds! Memory overwrite errorÃDERR_MEMORY_OVERWRITEÄD Invalid handle TO an objectÅDERR_INVALID_HANDLEÆD End OF object reachedÇDERR_END_OF_OBJECTÈD No changes doneÉD
ERR_NO_CHANGEÊD Invalid OR unknown INTERFACEËDERR_INVALID_INTERFACEÌD Functionality NOT supportedÍDERR_NOT_SUPPORTEDÎD$ No access rights FOR THIS operationÏDERR_NO_ACCESS_RIGHTSÐD( Specified limits OF a resource exceededÑDERR_OUT_OF_LIMITSÒDM Remaining entries that could NOT be transmitted because OF buffer limitationÓDERR_ENTRIES_REMAININGÔD Invalid online sessionidÕDERR_INVALID_SESSION_IDÖD Exception occurred×D
ERR_EXCEPTIONØD& Signature mismatch OF an api FUNCTIONÙDERR_SIGNATURE_MISMATCHÚD Version mismatchÛDERR_VERSION_MISMATCHÜD TYPE mismatchÝDERR_TYPE_MISMATCHÞD ID mismatchßDERR_ID_MISMATCHàD Consistency erroráDERR_NO_CONSISTENCYâD No COMM_CYCLE neededãDERR_NO_COMM_CYCLEäD' DO NOT suspend task after an exceptionåDERR_DONT_SUSPEND_TASKæD* Memory cannot be locked in THIS operationçDERR_MEMORY_LOCK_FAILEDèD  License missing FOR the runtimeéDERR_LICENSE_MISSINGêD Operation deniedëDERR_OPERATION_DENIEDìD
 Device erroríD
ERR_DEVICEîD
 Disk fullïD
ERR_DISK_FULLðD Internal use in runtimeñDERR_CRC_FAILEDòDERR_MEDIA_ERASEóDT File error. e.g. cannot open a file FOR writing because it could be write PROTECTEDôDERR_FILE_ERRORõD No RETAIN memory availableöDERR_NO_RETAIN_MEMORY÷D/ Specified minimum-limit of a resource exceededøDERR_OUT_OF_LIMITS_MINùD/ Specified maximum-limit of a resource exceededúDERR_OUT_OF_LIMITS_MAXûD Size mismatch üDERR_SIZE_MISMATCHýD> Operation is not yet finished, call function again to proceedþDERR_CALL_AGAINÿD+ Operation has nothing TO DO. No execution.€EERR_NOTHING_TO_DOE¹	Some security checks have failed. THIS is a generic error code TO report THIS error over PUBLIC channels. In THIS CASE the error code doesn't provide a detailed cause for the error. */‚EERR_SECURITY_CHECKS_FAILEDƒEERR_INVALID_SEQUENCE„Ef Dereferencing an IEC reference in IecVarAccess failed due to invalid destination address, e. G. NULL.…EERR_INVALID_REFERENCE†E1 Conversion of string encodings was not lossless.‡EERR_CONVERSION_INCOMPLETEˆE Socket not initialized ‰EERR_SOCK_NOTINITIALIZEDŠE& The provided socket handle is invalid‹EERR_SOCK_NOTSOCKETŒE$ The address family is NOT supportedEERR_SOCK_AFUNSUPPORTEDŽE Protocol is NOT supportedEERR_SOCK_PROTOUNSUPPORTEDE( NOT enough buffer TO handle the request‘EERR_SOCK_NOBUFFER’E8 Socket is in nonblocking mode but THIS call would block“EERR_SOCK_WOULDBLOCK”E' The provided address is already in use•EERR_SOCK_ADDRINUSE–E7 The provided address is NOT available on THIS computer—EERR_SOCK_ADDRNOTAVAILABLE˜E/ Connection has been refused BY the remote host™EERR_SOCK_CONNREFUSEDšEERR_SOCK_TIMEDOUT›E The host has NOT been foundœEERR_SOCK_HOSTNOTFOUNDE Host is unreachabležEERR_SOCK_HOSTUNREACHABLEŸE Socket is already connected EERR_SOCK_ISCONNECTED¡E The socket is NOT connected¢EERR_SOCK_NOTCONNECTED£E' Shutdown has been called on the socket¤EERR_SOCK_SHUTDOWN¥EP FOR sockets OF TYPE DGRAM. The package TO send exceeds the maximum package size¦EERR_SOCK_MSGSIZE§EB Socket has been gracefully closed. No more send/receives allowed	¨EERR_SOCK_CLOSED©E, Tag missing in online communication buffer ªEERR_L7_TAG_MISSING«E Unknown command group¬EERR_L7_UNKNOWNCMDGROUP­E/ Unknown command (within a valid command group)®EERR_L7_UNKNOWNCMD¯E Level 7 service incomplete°EERR_L7_INCOMPLETE±E# Certificate validation error codes²EERR_CERT_OK³EB illegal error (FOR uninitialized values, TO avoid ERR_CERT_OK) */´E"ERR_CERT_UNABLE_TO_GET_ISSUER_CERTµEERR_CERT_UNABLE_TO_GET_CRL¶E)ERR_CERT_UNABLE_TO_DECRYPT_CERT_SIGNATURE·E(ERR_CERT_UNABLE_TO_DECRYPT_CRL_SIGNATURE¸E+ERR_CERT_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY¹EERR_CERT_SIGNATURE_FAILUREºEERR_CERT_CRL_SIGNATURE_FAILURE»EERR_CERT_NOT_YET_VALID¼EERR_CERT_HAS_EXPIRED½EERR_CERT_CRL_NOT_YET_VALID¾EERR_CERT_CRL_HAS_EXPIRED¿E'ERR_CERT_ERROR_IN_CERT_NOT_BEFORE_FIELDÀE&ERR_CERT_ERROR_IN_CERT_NOT_AFTER_FIELDÁE'ERR_CERT_ERROR_IN_CRL_LAST_UPDATE_FIELDÂE'ERR_CERT_ERROR_IN_CRL_NEXT_UPDATE_FIELDÃEERR_CERT_OUT_OF_MEMÄE$ERR_CERT_DEPTH_ZERO_SELF_SIGNED_CERTÅE"ERR_CERT_SELF_SIGNED_CERT_IN_CHAINÆE*ERR_CERT_UNABLE_TO_GET_ISSUER_CERT_LOCALLYÇE(ERR_CERT_UNABLE_TO_VERIFY_LEAF_SIGNATUREÈEERR_CERT_CHAIN_TOO_LONGÉEERR_CERT_REVOKEDÊEERR_CERT_INVALID_CAËEERR_CERT_PATH_LENGTH_EXCEEDEDÌEERR_CERT_INVALID_PURPOSEÍEERR_CERT_UNTRUSTEDÎEERR_CERT_REJECTEDÏE7 These are 'informational' when looking for issuer certÐE ERR_CERT_SUBJECT_ISSUER_MISMATCHÑEERR_CERT_AKID_SKID_MISMATCHÒE$ERR_CERT_AKID_ISSUER_SERIAL_MISMATCHÓEERR_CERT_KEYUSAGE_NO_CERTSIGNÔE!ERR_CERT_UNABLE_TO_GET_CRL_ISSUERÕE%ERR_CERT_UNHANDLED_CRITICAL_EXTENSIONÖEERR_CERT_KEYUSAGE_NO_CRL_SIGN×E)ERR_CERT_UNHANDLED_CRITICAL_CRL_EXTENSIONØEERR_CERT_INVALID_NON_CAÙE#ERR_CERT_PROXY_PATH_LENGTH_EXCEEDEDÚE&ERR_CERT_KEYUSAGE_NO_DIGITAL_SIGNATUREÛE'ERR_CERT_PROXY_CERTIFICATES_NOT_ALLOWEDÜEERR_CERT_INVALID_EXTENSIONÝE!ERR_CERT_INVALID_POLICY_EXTENSIONÞEERR_CERT_NO_EXPLICIT_POLICYßEERR_CERT_DIFFERENT_CRL_SCOPEàE&ERR_CERT_UNSUPPORTED_EXTENSION_FEATUREáEERR_CERT_UNNESTED_RESOURCEâEERR_CERT_PERMITTED_VIOLATIONãEERR_CERT_EXCLUDED_VIOLATIONäEERR_CERT_SUBTREE_MINMAXåE$ERR_CERT_UNSUPPORTED_CONSTRAINT_TYPEæE&ERR_CERT_UNSUPPORTED_CONSTRAINT_SYNTAXçE ERR_CERT_UNSUPPORTED_NAME_SYNTAXèE"ERR_CERT_CRL_PATH_VALIDATION_ERRORéE The application is not happyêE!ERR_CERT_APPLICATION_VERIFICATIONëEERR_CERT_MISSINGìEERR_CERT_UNKNOWN_ERRORíE$adcc37d5-f407-4f11-9834-0c31bac94657îE(cmperrors2 interfaces, 3.5.15.0 (system)ïE49000ðE	251212993ñEHandleConstantsòEsuppress_warning_0óEC0195ôE$471467d5-89a4-4482-b970-b13eff79244eõE
1192820603öEGlobalConstants÷ECommon DefinesøE$0c76e09e-5f6c-41d5-841a-2071be1c6304ùE	801285797úE Invalid Handle ûEgc_hINVALIDüE Invalid Pointer ýE Invalid Size þE	gc_szZEROÿE Invalid Counter Value €FSIntF^Implicit conversion from signed Type 'SINT' to unsigned Type 'ULINT' : possible change of sign‚FWarningƒFAll„Fgc_ctMAX_COUNT…F Invalid Key Value †F^Implicit conversion from signed Type 'SINT' to unsigned Type 'DWORD' : possible change of sign‡Fgc_idMAX_IDENTˆF$80cd0e56-2684-4250-bf7e-d98dbc24b3ac‰F	330479632ŠFComponentID‹FE ComponentID of the component manager, e.g. to specify for EventOpen ŒFCMPID_CmpMgrFB ComponentID as a placeholder for all IEC components/applications ŽF
CMPID_IecCodeFCMPID_CmpFileTransferF$228db6b8-947d-4adb-8c50-8280abf93255‘F'Typified, Compiled, ContainsNoParseTree’FSystem.Byte“F	Relocated”FToCheck•FATopLevel, Typified, NotForUpToDate, Compiled, ContainsNoParseTree–F1TopLevel, Typified, Compiled, ContainsNoParseTree—FStaticFunctionCall˜F7Typified, Compiled, ContainsNoParseTree, ContainsNoCode™F^TopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, Generated, ToGenerate, NoCompilešFOTopLevel, Typified, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCalls›FETypified, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCallsœFVirtualFunctionCallF2Typified, ToCompile, Compiled, ContainsNoParseTreežFPTypified, ToCompile, Compiled, ContainsNoParseTree, ContainsVirtualFunctionCallsŸF
InterfaceCall F0¡F7Typified, NotForUpToDate, Compiled, ContainsNoParseTree¢FITypified, ToCompile, Compiled, ContainsNoParseTree, Generated, ToGenerate£F__DOWNLOAD__CODE¤F__ONLINE__CHANGE__CODE¥F+IOCONFIG_GLOBALS_MODULELIST__139__GVL__INIT¦FGTopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, NoCompile§FYTypified, ToCompile, Compiled, DataRelocations, ContainsNoParseTree, Generated, Blob, New¨F(IOCONFIG_GLOBALS_MAPPING__140__GVL__INIT©F$IOCONFIGAFTERTASK_1__1733__GVL__INITªF?GVL_IO_7DCEBB45_7496_4B62_9686_59BE5C0BA5C4_DPS__138__GVL__INIT«F"__DATASEGMENTFLAGS__309__GVL__INIT¬F#__COMPILE_CONSTANTS__310__GVL__INIT­F__WATCHVARS__311__GVL__INIT®F1__ALLOCATEDIMPLICITREFERENCETYPES__312__GVL__INIT¯F#CONSTANTS__313__SYSTEM____GVL__INIT°FTYPE_CLASS__597__GVL__INIT±F$_IMPLICIT_KINDOFTASK__671__GVL__INIT²F0_IMPLICIT_TASK_CONFIG_VARIABLES__1526__GVL__INIT³F.IOCONFIG_APPLICATION_MAPPINGS__1731__GVL__INIT´F/_IMPLICIT_TARGET_INFO_VARIABLES__141__GVL__INITµF!__APPLICATIONNAME__142__GVL__INIT¶F%__TASKSPECIFICINFOGVL__143__GVL__INIT·F__TYPECLASS__1532__GVL__INIT¸F'__CONVERSION_CONSTANTS__1537__GVL__INIT¹FHTypified, ToCompile, Compiled, ContainsNoParseTree, Generated, Blob, NewºF(__LCONVERSION_CONSTANTS__1646__GVL__INIT»F __SETUP__CALL__POU__1__GVL__INIT¼FPRG_TEST__1066__GVL__INIT½F"IOGLOBALINIT__POU__1734__GVL__INIT¾F IOCONFIG_GLOBALS__137__GVL__INIT¿FDToCompile, Compiled, DataRelocations, ContainsNoParseTree, ConstBlobÀFGLOBAL__INITÁF<TopLevel, Typified, ToCompile, Compiled, ContainsNoParseTreeÂF
CODE__INITÃFOTopLevel, Typified, ToCompile, Compiled, ContainsNoParseTree, IgnoreForChecksumÄFRemovedFromMemoryÅF__RELOCATE__OFFSET_TABLEÆF;ToCompile, Compiled, ContainsNoParseTree, IgnoreForChecksumÇF$976ae257-c47e-4874-b5e9-5090fb4b8d5bÈF65183ÉFRetain, AreaÊFRetain, Area, PersistentËF
Code, AreaÌFMemoryÍFInputÎFOutputÏF	AutomaticÐFRetainÑFAutomatic, DynamicSizeÒFRetain, PersistentÓFCodeÔFTargetÕF$45b96011-0000-0000-0000-000000000000ÖF$b5c64aae-0000-0000-0000-000000000000×FAddrSizeØFIsFPUSupportedÙFgenerate_exceptioninfoÚFPackModeÛFIsLittleEndianÜFRegisterSizeÝF64ÞFPlatformßFCompilerVersionProxyàF	ByteOrderáFIntelâF CAA_NETBASESERVICES_USE_ASYNCMGRãFIsMulticoreSupportedäFStandardåFBPLogæF_3S_LICENSEçFIBaseLibraryèF	CmpErrorséFComponent_ManagerêFCmpCodeMeterëFSysCpuHandlingìFsysmem, 3.5.12.0 (system)íFSysMemîFSysTypes_InterfacesïF7caa behaviour model, 3.5.11.0 (caa technical workgroup)ðFCBMñF%iodriver interfaces, 3.5.2.0 (system)òFIIoDrvóFcmpasyncmgr, 3.5.15.0 (system)ôFCmpAsyncMgrõF6caa tickutil extern, 3.5.7.0 (caa technical workgroup)öFTICKU÷F2caa tick extern, 3.5.7.0 (caa technical workgroup)øFTICKSùF%systypes interfaces, 3.5.2.0 (system)úFutil, 3.5.14.0 (system)ûFUtilüFIECStringUtilsýF.caa memory, 3.5.12.0 (caa technical workgroup)þFMEMÿFEcommon behaviour model, 3.5.15.0 (3s - smart software solutions gmbh)€GCBMLGsystimertc, 3.5.5.0 (system)‚G
SysTimeRtcƒGsystimecore, 3.5.5.0 (system)„GSysTimeCore…Gsystime, 3.5.9.0 (system)†GSysTime‡GStuˆGSystem.Guid‰GSystem.Collections.HashtableŠGSystem.Collections.ArrayList‹G	0000 0004ŒG3.5.15.0G$6708bd14-cddc-4e28-b69d-d3183b7c423eŽG
VariableIdGSignatureIdGScopeId‘GPositionToSave’GMessagesToSave“G&{bc2be951-49f6-4f0f-b731-e31e36606f1e}”G$c529d0d0-8cec-4d28-bb44-5e2d4ebecdcf•GFlags–G&{79aa0cce-71e9-4699-9f63-03cf09dcc367}—G$fd373d9e-533d-4d69-ad04-82ccf513ff10˜G$1cf06df3-a230-4b74-89c8-47fcfa9aa3a2™GIdšGCrossReferencesNew›GSystem.Collections.SortedListœGLocationG
AttributesžG
ExpressionŸGDirectVariable GInputs¡GFlag¢G&{1bfe400e-6f3f-4faa-a8db-db81cd2849ba}£G$8499b87a-2b75-4c62-8657-e4aa9316c18b¤GTypeDef¥G$e833a88e-e01b-4cc9-b0cb-fe17b4370a01¦GBaseType§G$48397926-5c6f-41f7-b878-4ffb8fbbd3f0¨GArea©G$1bef2131-34c3-45be-922f-9a02d282ff7bªGCurrent«G$2dacf8ba-27b3-43f2-b9f0-d578dd179b1d¬G
TaskIndexList­GVFTable®GQNEBaseSignature¯GQNEInterfacesArray°GInterfaceIds±G
CalleeSize²GNameExp³GOperator´G&{bffb3c53-f105-4e85-aba2-e30df579d75f}µG
VariableArray¶G&{1cf06df3-a230-4b74-89c8-47fcfa9aa3a2}·G
SubSignatures¸G&{9b5d4c11-b2d9-46c2-bf90-350eefa47fc5}¹G
Flags_longºGParentSignatureId»G
ObjectGuid¼GMessageGuid½GParentObjectGuid¾GLibraryPath¿GDPOffsetÀGDataLocationÁG	IdManagerÂG	TimeStampÃGChecksumÄGChecksumNoInitÅG	DeclarersÆG
ReferencerÇGCallersArrayÈGSystem.Int32ÉG
CalleesArray2ÊGHighestUsedOffsetËG$0ba7ff45-cf9b-419a-84c8-ae1727e3961fÌGcompiledtypeÍGLeftÎGRightÏG$4843ac80-bf56-4163-a5d4-aef6b1846075ÐG$88513019-926a-4125-ab4f-260cf5e4c63eÑG	LongValueÒG&{16f7aa24-038f-444e-9d81-b001bc091d35}ÓGNegativeÔGOriginalTypeClassÕG$d4b6feaa-e9d6-4356-aaf6-400ae9d83e05ÖGLower×GUpperØG$1cdc270d-d608-42d9-b269-87457e40fd7dÙG$c8e3c9b1-32ff-4f6a-ac31-84a9afd1157fÚGOperandsÛG
ScratchOffsetÜG$bad068f5-d75d-4104-a3db-b92ab7fd8e73ÝG$4ed22196-62b5-483e-acc9-441fa02badbdÞGRelocationAreaListßG$3504087f-d7cb-485e-a95e-35e81d5fc2b0àG
CodeBytesXáGflagsâG&{0148e1b6-6651-4ac0-91ad-da620acad399}ãGRelocationListäG$b19c1570-9d63-448c-b1a8-77c564f4bf41åG	ParseTreeæGParseTreeEmptyçGCompiledPOUFlagsèG&{ffb74c62-0dab-4b81-a769-562edfcba448}éGCompiledCodeêGScratchSizeëGMaxParamSizeìGBreakpointlistíGmessagesîGCodeGeneratorStackSizeïGBitWriteAccessesðG
trycatchfpadrñGtrycatchcodeadròGInternalCompiledPOUFlagsóG&{d84e773e-c159-42c6-8f67-07b0df2b44ab}ôG	pmessagesõG$a166e73d-aefc-42a1-8868-6d7ea1412c73öG$08539ba4-dbb3-469d-9743-b026f95bb155÷GRelocationsøG$9acb4711-ae23-42e3-a6bc-58b75ab4215eùGExceptionHandlingSuccessorúGLenûG
CodeOffsetüG
SuccessorsýGStepInsþGAssSuccÿGAreaGPRegister€HOffsetGPRegisterH$762f79d8-237e-4aec-8576-b032ad1bb941‚HSignIdƒH&{fcb43bca-9283-4080-8c7a-085c4f21024c}„H	StepOutBp…HStepInBp†H&{762f79d8-237e-4aec-8576-b032ad1bb941}‡H$9e894478-12b9-4f7b-ae88-4807ccb19a10ˆHList‰HFirstŠH$467ac7f9-d9fc-4e1d-9fb4-9e5dde0a44c2‹HReplaceConstantsŒHUnicodeHLoggingInBreakpointsŽH$1cdc5830-00b6-4d16-ac84-61a1c00364e9H$17b1421c-2984-4921-865a-ab1609aa9f92H
MemManGaps‘HBaseAddress’H$e0d57300-b431-4917-bfe4-fc6030a266ee“HAddress”H
DPTableOffset•H&{68cddacd-2830-4780-ae45-869af5892c4f}–HMemman—HSegmentSize˜HHTMemMansToFlags™H	LogByFlagšH$e22c2694-f644-4661-a028-99897a56f19a›HStartAddressœHDataSegmentFlagsH	AreaFlagsžH&{be5c129c-a197-417b-85f0-00907e2c063f}ŸHMinimalSize HAllocationPlus¡H	Available¢HMaximalSize£H$a20044ae-acaa-44c9-83f9-750bbfb34c6a¤HDataSegments¥HAreas¦H	FirstArea§H$a2ede959-e5fe-4f81-9037-a646588f9067¨H
GuidObject©HGuidTaskªHTaskName«HParentTaskName¬H$b60bf7c1-48fb-428f-888b-da4337fb7f3c­H
TaskListArray®H&{a2ede959-e5fe-4f81-9037-a646588f9067}¯H$df911092-020b-4e0a-bf63-b9df8a0ee0a7°Hlibid±Hname²Hreferencinglib³H	outofpool´HQOµH$d22ac189-3d1c-422d-b11c-0ca8bf22a579¶Hlibinfosave·H&{df911092-020b-4e0a-bf63-b9df8a0ee0a7}¸H$e6a670d4-8bad-4716-a29b-770da7f0eef7¹HTaskListºHTaskGuidsOfObject»H
DownloadSlots¼HOnlineChangeSlots½H$99fa1ec1-fc21-4c93-9f1e-0accb45e8a84¾Htable_1¿H$3966d598-3646-49d7-a64c-1b0623a3daedÀH$d774556f-de05-4539-a455-16fd4345bbf5ÁHtypeÂHversionÃH$32583999-e3b5-4fb3-8394-6c5409f3c8a7ÄHSignaturesArrayÅH&{2dacf8ba-27b3-43f2-b9f0-d578dd179b1d}ÆHGlobalSignaturesArrayÇHCompiledPOUsArrayÈH&{b19c1570-9d63-448c-b1a8-77c564f4bf41}ÉHCompileOptionsToSaveÊHCodegeneratorClassËHImplicitReferenceVariableListÌHProjectChecksumÍHstaticmemorysegmentsÎHMemchecksumÏHDataManagerÐH
KindOfContextÑH&{1d8fe3d0-8423-48cf-8a9b-eaa134990850}ÒHSignatureIDManÓHLibraryIDManÔHReadyForDownloadÕHReadyForCompileÖHSystemApplication×H
DynamicMemoryØHGenerateContentÙHDeviceApplicationÚHApplicationGuidÛHTimeStampContextÜH
TimeStampPoolÝHContainsOnlineChangeCodeÞH
GuidCodeIdßH
GuidDataIdàHGuidCodeIdLastáHGuidDataIdLastâHCRCCodeãHCRCDataäHCRCCodeLaståHCRCDataLastæHDefinesçHPrecompileDefinesèHbFastOnlineChangeéHlibtableêHLPTChecksumëHLibChecksumìHPoolLibChecksumíHSlotPOUListîHDirVarTableïHWithoutTargetsettingsðH	auxiliaryñHsimulationmodeòH
bcontainscodeóHdeviceidôH$34951a1b-8cb0-4c0a-8fa0-271c0a67fbd7õH$4c33f62d-2ba9-4951-b27c-3cedc666c650öH$d383106b-f62a-4320-9b73-1ad1cdb4256b÷H$223d196a-c1d7-4283-aea6-270599207584øH$2de3951e-05c3-42d9-a8c2-0f9e6cd2c60eùH$2c47afd5-45a7-4318-a91c-e6ccae571e57úH$3b41731c-8281-447e-8300-967d85065431ûH$ab09737e-b891-4fc6-9c8c-246eb8cdb046üHSizeExpressionýH&{73ce5f25-d76d-4bc9-a6d5-0f1336fc56e3}þH$1a5bd4e4-ab1d-4514-adeb-22e2eeddcce6ÿH$306eb234-9ade-475b-8492-004f59e739d9€I$ef19db71-9ad6-4d2a-9535-1a0f103c369dI$8db06532-d746-4cb4-83d6-15216b159eed‚I$ac2d6c97-8b55-498b-83df-2059efb47336ƒI$d3df9a8e-760e-4747-9783-699d53cec752„I$859036ba-e550-4f5c-9b70-16ca9202d0ce…I$8805e1b7-ec8d-4bf0-9194-dcb2b29ff03f†I$4b4ec020-a837-40a5-a308-89707ef17af6‡IOrgTypeˆIDefaultValue‰I$861aad71-b796-49c8-8e44-0d476c5ed1abŠI$af63b19d-1ce0-4d63-a098-6d4c02ca35da‹I$5677bd2d-c2f2-4498-a6d6-5e2aecdbd55dŒI$b5bdc032-52f5-48d3-9c8c-8c79ab5a416dIBaseŽI$8ec925c2-9c5b-4d91-b581-8ec7c2f47ca9I$2725bf0b-b380-4604-92d5-60505864ba35I
dicInterfaces‘I
dicOffsets’Ipointersize“I$b297bf25-acd4-4b2f-bc57-473cb93f7d4c”I$1315f3d2-84a9-4bcd-a718-efa3d0501534•IInitListNew–IDefInitDone—I$187803f1-6b2c-486c-bcf0-b6f913f59ce3˜IStringValue™I$5b2d1cb9-99ea-435b-a739-5533bb136a6ašIcpp›IoffsetœIipoffsetI&{182b8553-40b6-4da1-b365-72d137f05911}žI$71c4e10e-3e38-473f-b4b9-db1c89cbe452ŸI$00014fd3-8bc4-4e77-981b-095b9c869fc2 I$80dc2303-8251-4747-b7f7-a402ed859801¡I$6c1d7ed1-429a-4b0d-84d7-fc2a63a0c431¢I$cf26b7be-0f44-4dda-af18-2657035f6b45£I$944d7731-22cd-4544-8e6a-e23be2ec4010¤I$62f14e25-8c68-4d8c-98ca-3067a13656f7¥I$528c9030-405d-451c-b45a-9aa6b0520783¦IFrom§ITo¨I$9a2297c9-1fa0-4ec6-a2b2-e2de8fdc6a63©IBitNrªI$fbc31a5d-5b51-405e-b986-43250b86c9f7«I
FloatValue¬I$60e07f4f-23d9-424e-a27b-bf5e093fd92a­INumber®I$458880e1-4ccc-4f34-af1a-7cd7fe7c8193¯ILValue°IRValue±I$30cfa52e-e32a-43c4-a033-2a152796aeaf²I$aef7a177-3956-4c97-8460-6228ab3f3401³I$79a8baad-3f7f-40d2-8250-3037bf5e6631´IVariableµIAccesses¶I$dd880747-d8b1-4503-8be5-8126a9d323f4·I
ProjectHandle¸IGuid¹I$bc2be951-49f6-4f0f-b731-e31e36606f1eºImid»IPosition¼ISeverity½I&{2f9d7c97-2099-4966-be47-5be6f702f0c4}¾I
Precompile¿I&{62bc566f-5835-4759-8a7f-648843daf3f9}ÀI_idÁI$51bc5dc9-3bc5-4cf9-80a8-0b044cc305b3ÂI$3e13ff7d-638b-4aed-b604-a84f530b3ed7ÃIareaÄIrelocsÅI$40c3211d-4a89-419c-88a4-b26d33c2707eÆIarealistÇI$2f0e740d-b75f-401a-a7f2-ecd76eb6ee2dÈI	CocoFlagsÉI	reloclistÊI
related_idËI$35e108dd-922c-4765-9f66-6c7ed83f4af7ÌIMotorolaByteOrderҍG³ Ý
ŽGGG‘G
’G“Gä”GߕG€–G—Gÿ-˜G‘G
™GšG…›GœGG žG ŸG  G 䳡G€¢G£G¤GGGÿ-G³Ý
ŽGGG‘G
’G“Gä¥G¦Gÿ-§G¨G
ß	©GªG
«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊG«G ¬G ­G G®G ¯G °G GC¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊGËG³ ‘G
’G“GÌG ÍGÎG
˜G‘G
™GšG…›GœGGBžG ŸG  G 䳡G€¢GÏGÿ-ÐG³‘G
’G“GÑG
¤€ÒGÓGÔG€ÒGÕGÖG×GØG›@¦Gÿ-ËG³‘G
’G“GÌGÍGÎGÙG³‘G
’G“GÌGÚG@ÛG³G€´GÜGÿ-˜G‘G
™GšG…›GœGGBžGŸG  G 䳡G€¢G«G ¬G ­G G®G ¯G °G GC¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG«G ¬G ­G G®G ¯G °G GC¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊGÝGÞG@ßGàG@áG€âGÀGãGäGäÓF åG æG»G€ˆG¼G€ˆG½G€ˆGGçG€èGéGêGÂG
ÃG	¾G ëGìG íG“GîGïG ðG ñG òG€óGôG õGßöG¨G÷G@øG	‘G
ùGúGûGüG ýG þGÈGÿG€HH‚H•G€ƒH„H…HøG	‘G
ùGúGûGüGÈGýG†HþGÈGÿG€H ‡HˆHA‰H!äGäÓF åG æG»G€ˆG¼G€ˆG½G€ˆGGçG€èGéGêGÂG
ÃG	¾GëGìGíG“GîGïG ðG ñG òG€óGôG "ŠH‹HÛ.ÈGŒHH#ŽHߨ
$HH@¨
‘H%’H	¨G
“H”H¨
•G€•H–H—H˜H ™H&šH
¥œH€•HH€žHŸH HÃG	¡H¢H'£H¤H@¥H@¦H(§H¨H€ˆG©H€ˆGªH«H )¬H­H®H*¯H°H±H²H³H·´H+µH¶H·H,¸H¹H…‰GºH…‰G»H…‰G¼H…‰G-½H¾HB.¿HˆHƒŠG/ÀHÁH·ÂH0ÃH.ÄH‚ÅHÆH‚ÅHÇH‚ÈHÉHÊH€ˆGËH@ÌH	ÍH@ÎH	ÏHÐH€ÑH¹HÒHÓHÔHÕHÖH×HØHÙHÚH€ˆGÛH
ÝHÞH€ˆGßH€ˆGàH€ˆGáH€ˆGâH	ãH	äH	åH	æH†‰GçH…‰GèHéHêH	ëH	ìH	íHîHïHðHñHòHóH1ôHÿ-2õHÿ-3«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG4«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG5öHÿ-6÷Hÿ-7øHÿ-8ùHÿ-9úHÿ-:ûHüHÿ-;«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊG<«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆGBÇG ÉG ÊG=þHÿ->ÿHÿ-?€Iÿ-@Iÿ-A‚Iÿ-B«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊGCƒIÿ-D„Iÿ-E…Iÿ-F«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊGG«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊGH˜G‘G
™GšG…›GœGG žGŸG  G 䳡G€¢GI«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊGJ†I‡IˆI ¤GGGÿ-K«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊGL«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊGMûHüH ÿ-N‰I¦Gÿ-O«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊGP«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆGBÇG ÉG ÊGQ«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇGÈGÉG ÊGR«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGS«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊGT«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGUŠIÿ-V‹IGä¦GˆI ÿ-W«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGX«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊGY«G ¬G ­G G®G¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆGBÇG ÉG ÊGZ«G ¬G ­G G®G¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG@ÊG[«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG\«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG]«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊG^ŒI³‘G
’G“GIÑG
¤€ÒGÓGÔG€ÒG_ŽIä™G`IˆH@œGI…‰G‘I…‰G’Ia“Iÿ-b”I³‘G
’G“GÌG•I@–Ic«G ¬G ­GG®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG@ÊGdÐG³ ‘G
’G“GÑG
¤€ÒGÓGÔG€ÒGe—I³‘G
’G“G¤€ÒG˜IÔG€ÒGf«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊGg˜G‘G
™GšG…›GœG G žG ŸG  G 䳡G€¢Gh«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGi™I™GäšI›IœIjIˆHAœG I…‰G‘I…‰G’Ik«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊGl«G ¬G ­GG®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGmIˆHAœGI…‰G‘I…‰G’In«G ¬G ­GG®G ¯GI°GÈGGB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGo«G ¬G ­GG®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGp«G ¬G ­GG®G ¯GI°GÈGGB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG@ÊGqÙG³‘G
’G“GÌGÚGAÛG³G€´Gr«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊGs«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆG ÇG ÉG ÊGtžIÿ-uŸIüH ÿ-v Iÿ-w¡Iÿ-x¢Iÿ-y«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGz«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG{«G ¬G’F­GG®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇGÈGÉG ÊG|«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊG}«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊG~«G ¬G’F­GG®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG«G ¬G’F­GG®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG@ÊG€£I³‘G
’G“GI«G ¬G’F­G G®G ¯G °G GC¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊG‚«G ¬G’F­G G®G ¯G °G GC¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊGƒ«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊG„«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG…«G ¬G’F­GG®G ¯GI°GÈGGB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG†«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG‡˜G‘G
™GšG…›GœGGCžG ŸG  G 䳡G€¢Gˆ«G ¬G’F­GG®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇGÈGÉG@ÊG‰«G ¬G’F­GG®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇGÈGÉG ÊGŠ«G ¬G’F­GG®G ¯G °G GC¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇGÈGÉG ÊG‹«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊGŒ«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG«G ¬G ­GG®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGŽ«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG«G ¬G ­GG®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG‘£I³ ‘G
’G“GI’˜G‘G
™GšG…›GœG GBžG ŸG  G 䳡G€¢G“«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG”«G ¬G ­GG®G¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG•«G ¬G ­GG®G ¯GI°GÈGGB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇGÈGÉG ÊG–¤I¦Gÿ-—«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG˜«G ¬G ­GG®G¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG™«G ¬G ­GG®G¯GI°GÈGGB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGš«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG›¥I³‘G
’G“G¦I€ÒG§I€ÒGžGœ«G ¬G ­GG®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇGÈGÉG ÊG«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊGž«G ¬G ­GG®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆGBÇGÈGÉG ÊGŸ«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊG ¨I©IߕG€–G¡«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG@ÊG¢«G ¬G’F­GG®G¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG£ªI³‘G
’G“G¤€ÒG«IÔG€ÒG¤«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊG¥«G ¬G’F­GG®G¯G °G GB¨
±G²G³G€´GµG‚¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG¦¬I³‘G
’G“GÌGå­I§”I³‘G
’G“GÌG•IA–I¨ŸIüHÿ-©®I³‘G
’G“G¯I°I³G€´Gª±I³‘G
’G“GÌG•I@–I««G ¬G’F­G G®G ¯G °G GC¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊG¬«G ¬G’F­GG®G ¯G °G GB¨
±G²G³G€´GµG¶G·G†ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆGBÇG ÉG ÊG­«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG®²I³‘G
’G“GÌGžG¯«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG°«G ¬G’F­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG±«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG ÊG²«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆGBÇG ÉG@ÊG³«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG´«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊGµ«G ¬G ­G G®G ¯G °G G ¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊG¶«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇGÈGÉG@ÊG·«G ¬G ­G G®G ¯G °G G ¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊG¸«G ¬G ­G G®G ¯G °G G ¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG¹«G ¬G ­G G®G ¯G °G G ¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊGº«G ¬G ­G G®G ¯G °G G ¨
±G²G³G€´GµG‚¶G·G…ýH•G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆG ÇG ÉG ÊG»«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀGÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊG¼³I³‘G
’G“GÌG´IµI@½«G ¬G ­G G®G ¯G °G GC¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆG ÇG ÉG ÊG¾«G ¬G ­G G®G ¯G °G GC¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG…‰GÆG ÇG ÉG ÊG¿«G ¬G ­G G®G ¯G °G GC¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊGÀ«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊGÁ«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG‚¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G ¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG ÊG«G ¬G ­G G®G ¯G °G GB¨
±G²G³G€´GµG¶G·G •G€¸G¹G
™GºG»G€ˆG¼G€ˆG½G€ˆG¾G¿GÀG ÁGÂG
ÃG	ÄG	ÅG ÆG ÇG ÉG@ÊGöI·I¸I€ˆG‘G
ĹIºI	»I–B¼I€½IÝ
¾I€¿IÀI€ˆGÅøG	‘G
ùGúGûGüGÈGýG þGÈGÿG€HÆäGäÓF åG æG»G€ˆG¼G€ˆG½G€ˆGGçG€èGéG êGÂG
ÃG	¾GëGìG íG“GîGïG ðG ñG òG€óGôG ÇäGäÓF åG æG»G€ˆG¼G€ˆG½G€ˆGGçG€èGéGêGÂG
ÃG	¾GëGìG íG“GîGïG ðG ñG òG€óGôG ȇHˆH@‰HÉäGäÓF åG æG»G€ˆG¼G€ˆG½G€ˆGGçG€èGéGêGÂG
ÃG	¾G ëGìGíG“GîGïG ðG ñG òG€óGôG ÊäGäÓF åG æG»G€ˆG¼G€ˆG½G€ˆGGçG€èGéGêGÂG