--- a/project/sparkplug™_mqtt_edge_b9741afd/function_blocks_d9bd2ff1/fb_device_309d3c13/fb_device_98658e3f/dcmd_30b11517/ondcmdmessage_ad92ffe1/ad92ffe15e424ca183019a5de5ce07bd.object +++ b/project/sparkplug™_mqtt_edge_b9741afd/function_blocks_d9bd2ff1/fb_device_309d3c13/fb_device_98658e3f/dcmd_30b11517/ondcmdmessage_ad92ffe1/ad92ffe15e424ca183019a5de5ce07bd.object @@ -1 +1 @@ -{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)ad92ffe1-5e42-4ca1-8301-9a5de5ce07bd","ParentGuid":"(Guid)98658e3f-2022-4201-ad82-e23b1cb5aaf1","Name":"(string)onDCMDMessage","Properties":{"@Type":"2c41fa04:IDictionary","@Value":[{"@Key":"(Guid)24568a24-c491-472c-a21f-ee5d33859fab","@Value":{"@Type":"24568a24","@Value":{"MemoryReserveForOnlineChange":"(int)0","ExcludeFromBuild":"(bool)False","External":"(bool)False","EnableSystemCall":"(bool)False","CompilerDefines":"(string)","LinkAlways":"(bool)False","Undefines":{"@Type":"[string]","@Value":[]}}}},{"@Key":"(Guid)829a18f2-c514-4f6e-9634-1df173429203","@Value":{"@Type":"829a18f2","@Value":{"ParentObjects":{"@Type":"fa2ee218:IDictionary","@Value":[{"@Key":"(Guid)21af5390-2942-461a-bf89-951aaf6999f1","@Value":"(Guid)30b11517-09d1-42f8-b826-fe0a8a4c00e9"}]}}}}]},"TypeGuid":"(Guid)f8a58466-d7f6-439f-bbb8-d4600e41d099","EmbeddedTypeGuids":{"@Type":"[Guid]","@Value":["(Guid)a9ed5b7e-75c5-4651-af16-d2c27e98cb94","(Guid)3b83b776-fb25-43b8-99f2-3c507c9143fc"]}}},"TypeInfos":{"24568a24":"{24568a24-c491-472c-a21f-ee5d33859fab}","2c41fa04":"{2c41fa04-1834-41c1-816e-303c7aa2c05b}","81297157":"{81297157-7ec9-45ce-845e-84cab2b88ade}","829a18f2":"{829a18f2-c514-4f6e-9634-1df173429203}","bool":"System.Boolean","fa2ee218":"{fa2ee218-a39b-4b6d-b249-49dbddbd168a}","Guid":"System.Guid","int":"System.Int32","string":"System.String"}},"object":{"Graph":{"@Type":"f8a58466","@Value":{"Implementation":{"@Type":"3b83b776","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)2197","Tag":null,"Text":"(string)//note: pMessage is already decoded"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2198","Tag":null,"Text":"(string)onDCMDMessage := FALSE;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2284","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2285","Tag":null,"Text":"(string)// //get first metric"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2338","Tag":null,"Text":"(string)PayloadMetric REF= pMessage.GetMetricFirst(ObjectValid => PayloadMetricIsValid, HasNext => HasNext);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2339","Tag":null,"Text":"(string)WHILE PayloadMetricIsValid DO"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2340","Tag":null,"Text":"(string)\tPayloadMetric.ReadAlias(HasAlias=>hasNewAlias, Alias=> newAlias);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2337","Tag":null,"Text":"(string)\tPayloadMetric.ReadName (HasName=> , Name=> newName);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2298","Tag":null,"Text":"(string) \tGetMetric(hasAlias := hasNewAlias AND ItfEdge.UseAlias,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2300","Tag":null,"Text":"(string)\t\t\t Name := newName,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2301","Tag":null,"Text":"(string)\t\t\t Alias := newAlias,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2302","Tag":null,"Text":"(string)\t\t\t itfMetric => itfExistingMetric,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2214","Tag":null,"Text":"(string)\t\t\t xError => MetricNotExisting);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2218","Tag":null,"Text":"(string)\tIF MetricNotExisting THEN"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2219","Tag":null,"Text":"(string)\t\tWriteEdgeLog("}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2220","Tag":null,"Text":"(string)\t\t\tCmpLog.LogClass.LOG_WARNING,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2221","Tag":null,"Text":"(string)\t\t\t'Someone sent a DCMD with metric %s not in our DBIRTH. It was ignored',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2222","Tag":null,"Text":"(string)\t\t\tTO_STRING(newName));"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2279","Tag":null,"Text":"(string)\tELSIF itfExistingMetric.Access = SPStack.AccessMode.ReadOnly THEN"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2278","Tag":null,"Text":"(string)\t\titfExistingMetric.Notify := TRUE; // It Is readonly, so ignore it. We notify anyway (with the old value, so the host knows it didn't work)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2223","Tag":null,"Text":"(string)\tELSE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2224","Tag":null,"Text":"(string)\t\t// update one as it allready excists"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2233","Tag":null,"Text":"(string)\t\titfExistingMetric.UpdateThisMetricFromPayload(Notify := TRUE, PayloadMetric := PayloadMetric);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2234","Tag":null,"Text":"(string)\tEND_IF"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2342","Tag":null,"Text":"(string)\tPayloadMetric REF= pMessage.GetMetricNext(ObjectValid => PayloadMetricIsValid, HasNext => HasNext);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2341","Tag":null,"Text":"(string)END_WHILE"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2272","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2273","Tag":null,"Text":"(string)WriteEdgeLog("}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2274","Tag":null,"Text":"(string) CmpLog.LogClass.LOG_DEBUG,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2275","Tag":null,"Text":"(string) 'EoN DCMD Received Topic: %s',"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2276","Tag":null,"Text":"(string) WSTRING_TO_STRING(pTopic^));"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2277","Tag":null,"Text":"(string)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1781","Tag":null,"Text":"(string)onDCMDMessage := TRUE;"}}]}}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextLines":{"@Type":"[a5de0b0b]","@Value":[{"@Type":"a5de0b0b","@Value":{"Id":"(long)2138","Tag":null,"Text":"(string)///"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2139","Tag":null,"Text":"(string)/// Device Command (DCMD)"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2140","Tag":null,"Text":"(string)/// "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2141","Tag":null,"Text":"(string)/// DCMD messages are used by backend applications to write to device outputs and send Device Control commands"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2142","Tag":null,"Text":"(string)/// to devices. Multiple metrics can be supplied in a single DCMD message."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2143","Tag":null,"Text":"(string)/// The following is a representation of a simple DCMD message on the topic:"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2144","Tag":null,"Text":"(string)/// "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2145","Tag":null,"Text":"(string)/// spBv1.0/Sparkplug™ B Devices/DCMD/Raspberry Pi/Pibrella"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2146","Tag":null,"Text":"(string)/// "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2147","Tag":null,"Text":"(string)/// • The ‘Group ID’ of this device is: Sparkplug™ B Devices"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2148","Tag":null,"Text":"(string)/// • The host ‘EoN node ID’ of this device is: Raspberry Pi"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2149","Tag":null,"Text":"(string)/// • The ‘Device ID’ is: Pibrella"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2150","Tag":null,"Text":"(string)/// • This is an DCMD message from the device"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2151","Tag":null,"Text":"(string)///"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2152","Tag":null,"Text":"(string)/// Consider the following Sparkplug™ B payload in the DCMD message shown above:"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2153","Tag":null,"Text":"(string)/// {"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2154","Tag":null,"Text":"(string)/// \"timestamp\": 1486144502122,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2155","Tag":null,"Text":"(string)/// \"metrics\": [{"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2156","Tag":null,"Text":"(string)/// \"name\": \"Outputs/LEDs/Green\","}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2157","Tag":null,"Text":"(string)/// \"timestamp\": 1486144502122,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2158","Tag":null,"Text":"(string)/// \"dataType\": \"Boolean\","}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2159","Tag":null,"Text":"(string)/// \"value\": true"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2160","Tag":null,"Text":"(string)/// }, {"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2161","Tag":null,"Text":"(string)/// \"name\": \"Outputs/LEDs/Yellow\","}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2162","Tag":null,"Text":"(string)/// \"timestamp\": 1486144502122,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2163","Tag":null,"Text":"(string)/// \"dataType\": \"Boolean\","}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2164","Tag":null,"Text":"(string)/// \"value\": true"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2165","Tag":null,"Text":"(string)/// }]"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2166","Tag":null,"Text":"(string)/// }"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2167","Tag":null,"Text":"(string)/// "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2168","Tag":null,"Text":"(string)/// The DCMD payload tells the EoN node to write true to the attached device’s green and yellow LEDs. As a result,"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2169","Tag":null,"Text":"(string)/// the LEDs should turn on and result in a DDATA message back to the MQTT Server after the LEDs are successfully"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2170","Tag":null,"Text":"(string)/// turned on."}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2171","Tag":null,"Text":"(string)/// "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2172","Tag":null,"Text":"(string){attribute 'hide'}"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2173","Tag":null,"Text":"(string)METHOD onDCMDMessage : BOOL"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2174","Tag":null,"Text":"(string)VAR_INPUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2175","Tag":null,"Text":"(string) pTopic : POINTER TO WSTRING(SPStack.GC_sparkplug.supported_string_lengths); // resembles the topic under which the message is posted "}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2176","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2177","Tag":null,"Text":"(string)VAR_IN_OUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2178","Tag":null,"Text":"(string) pMessage : SPStack.FB_Payload; //should already be decoded"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2179","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2180","Tag":null,"Text":"(string)VAR_OUTPUT"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2181","Tag":null,"Text":"(string) xError : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2182","Tag":null,"Text":"(string) eError : SPStack.ERROR;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2183","Tag":null,"Text":"(string)END_VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2184","Tag":null,"Text":"(string)VAR"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2185","Tag":null,"Text":"(string) newName : WSTRING(SPStack.GC_sparkplug.supported_string_lengths);"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2283","Tag":null,"Text":"(string) newAlias : ULINT;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2282","Tag":null,"Text":"(string) hasNewAlias : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2195","Tag":null,"Text":"(string) itfExistingMetric : SPStack.IMetric;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2196","Tag":null,"Text":"(string) MetricNotExisting : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2343","Tag":null,"Text":"(string)\t"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2345","Tag":null,"Text":"(string)\tPayloadMetric : REFERENCE TO SPStack.FB_PayloadMetric;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2346","Tag":null,"Text":"(string)\tPayloadMetricIsValid : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)2344","Tag":null,"Text":"(string)\tHasNext : BOOL;"}},{"@Type":"a5de0b0b","@Value":{"Id":"(long)1","Tag":null,"Text":"(string)END_VAR"}}]}}}}}}},"TypeInfos":{"3b83b776":"{3b83b776-fb25-43b8-99f2-3c507c9143fc}","a5de0b0b":"{a5de0b0b-1cb5-4913-ac21-9d70293ec00d}","a9ed5b7e":"{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}","f3878285":"{f3878285-8e4f-490b-bb1b-9acbb7eb04db}","f8a58466":"{f8a58466-d7f6-439f-bbb8-d4600e41d099}","long":"System.Int64","string":"System.String"}}},"FormatVersion":"1.0"} \ No newline at end of file +{"payload":{"meta":{"Graph":{"@Type":"81297157","@Value":{"Guid":"(Guid)ad92ffe1-5e42-4ca1-8301-9a5de5ce07bd","ParentGuid":"(Guid)98658e3f-2022-4201-ad82-e23b1cb5aaf1","Name":"(string)onDCMDMessage","Properties":{"@Type":"2c41fa04:IDictionary","@Value":[{"@Key":"(Guid)24568a24-c491-472c-a21f-ee5d33859fab","@Value":{"@Type":"24568a24","@Value":{"MemoryReserveForOnlineChange":"(int)0","ExcludeFromBuild":"(bool)False","External":"(bool)False","EnableSystemCall":"(bool)False","CompilerDefines":"(string)","LinkAlways":"(bool)False","Undefines":{"@Type":"[string]","@Value":[]}}}},{"@Key":"(Guid)829a18f2-c514-4f6e-9634-1df173429203","@Value":{"@Type":"829a18f2","@Value":{"ParentObjects":{"@Type":"fa2ee218:IDictionary","@Value":[{"@Key":"(Guid)21af5390-2942-461a-bf89-951aaf6999f1","@Value":"(Guid)30b11517-09d1-42f8-b826-fe0a8a4c00e9"}]}}}}]},"TypeGuid":"(Guid)f8a58466-d7f6-439f-bbb8-d4600e41d099","EmbeddedTypeGuids":{"@Type":"[Guid]","@Value":["(Guid)a9ed5b7e-75c5-4651-af16-d2c27e98cb94","(Guid)3b83b776-fb25-43b8-99f2-3c507c9143fc"]}}},"TypeInfos":{"24568a24":"{24568a24-c491-472c-a21f-ee5d33859fab}","2c41fa04":"{2c41fa04-1834-41c1-816e-303c7aa2c05b}","81297157":"{81297157-7ec9-45ce-845e-84cab2b88ade}","829a18f2":"{829a18f2-c514-4f6e-9634-1df173429203}","bool":"System.Boolean","fa2ee218":"{fa2ee218-a39b-4b6d-b249-49dbddbd168a}","Guid":"System.Guid","int":"System.Int32","string":"System.String"}},"object":{"Graph":{"@Type":"f8a58466","@Value":{"Implementation":{"@Type":"3b83b776","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextBlobForSerialisation":"(string)//note: pMessage is already decoded\nonDCMDMessage := FALSE;\n\n// //get first metric\nPayloadMetric REF= pMessage.GetMetricFirst(ObjectValid => PayloadMetricIsValid, HasNext => HasNext);\nWHILE PayloadMetricIsValid DO\n\tPayloadMetric.ReadAlias(HasAlias=>hasNewAlias, Alias=> newAlias);\n\tPayloadMetric.ReadName (HasName=> , Name=> newName);\n \tGetMetric(hasAlias := hasNewAlias AND ItfEdge.UseAlias,\n\t\t\t Name := newName,\n\t\t\t Alias := newAlias,\n\t\t\t itfMetric => itfExistingMetric,\n\t\t\t xError => MetricNotExisting);\n\tIF MetricNotExisting THEN\n\t\tWriteEdgeLog(\n\t\t\tCmpLog.LogClass.LOG_WARNING,\n\t\t\t'Someone sent a DCMD with metric %s not in our DBIRTH. It was ignored',\n\t\t\tTO_STRING(newName));\n\tELSIF itfExistingMetric.Access = SPStack.AccessMode.ReadOnly THEN\n\t\titfExistingMetric.Notify := TRUE; // It Is readonly, so ignore it. We notify anyway (with the old value, so the host knows it didn't work)\n\tELSE\n\t\t// update one as it allready excists\n\t\titfExistingMetric.UpdateThisMetricFromPayload(Notify := TRUE, PayloadMetric := PayloadMetric);\n\tEND_IF\n\tPayloadMetric REF= pMessage.GetMetricNext(ObjectValid => PayloadMetricIsValid, HasNext => HasNext);\nEND_WHILE\n\nWriteEdgeLog(\n CmpLog.LogClass.LOG_DEBUG,\n 'EoN DCMD Received Topic: %s',\n WSTRING_TO_STRING(pTopic^));\n\nonDCMDMessage := TRUE;","LineInfoPersistence":"(string)ad92ffe1-5e42-4ca1-8301-9a5de5ce07bd_Impl_LineIds"}}}},"Interface":{"@Type":"a9ed5b7e","@Value":{"TextDocument":{"@Type":"f3878285","@Value":{"TextBlobForSerialisation":"(string)///\n/// Device Command (DCMD)\n/// \n/// DCMD messages are used by backend applications to write to device outputs and send Device Control commands\n/// to devices. Multiple metrics can be supplied in a single DCMD message.\n/// The following is a representation of a simple DCMD message on the topic:\n/// \n/// spBv1.0/Sparkplug™ B Devices/DCMD/Raspberry Pi/Pibrella\n/// \n/// • The ‘Group ID’ of this device is: Sparkplug™ B Devices\n/// • The host ‘EoN node ID’ of this device is: Raspberry Pi\n/// • The ‘Device ID’ is: Pibrella\n/// • This is an DCMD message from the device\n///\n/// Consider the following Sparkplug™ B payload in the DCMD message shown above:\n/// {\n/// \"timestamp\": 1486144502122,\n/// \"metrics\": [{\n/// \"name\": \"Outputs/LEDs/Green\",\n/// \"timestamp\": 1486144502122,\n/// \"dataType\": \"Boolean\",\n/// \"value\": true\n/// }, {\n/// \"name\": \"Outputs/LEDs/Yellow\",\n/// \"timestamp\": 1486144502122,\n/// \"dataType\": \"Boolean\",\n/// \"value\": true\n/// }]\n/// }\n/// \n/// The DCMD payload tells the EoN node to write true to the attached device’s green and yellow LEDs. As a result,\n/// the LEDs should turn on and result in a DDATA message back to the MQTT Server after the LEDs are successfully\n/// turned on.\n/// \n{attribute 'hide'}\nMETHOD onDCMDMessage : BOOL\nVAR_INPUT\n pTopic : POINTER TO WSTRING(SPStack.GC_sparkplug.supported_string_lengths); // resembles the topic under which the message is posted \nEND_VAR\nVAR_IN_OUT\n pMessage : SPStack.FB_Payload; //should already be decoded\nEND_VAR\nVAR_OUTPUT\n xError : BOOL;\n eError : SPStack.ERROR;\nEND_VAR\nVAR\n newName : WSTRING(SPStack.GC_sparkplug.supported_string_lengths);\n newAlias : ULINT;\n hasNewAlias : BOOL;\n itfExistingMetric : SPStack.IMetric;\n MetricNotExisting : BOOL;\n\t\n\tPayloadMetric : REFERENCE TO SPStack.FB_PayloadMetric;\n\tPayloadMetricIsValid : BOOL;\n\tHasNext : BOOL;\nEND_VAR","LineInfoPersistence":"(string)ad92ffe1-5e42-4ca1-8301-9a5de5ce07bd_Decl_LineIds"}}}}}},"TypeInfos":{"3b83b776":"{3b83b776-fb25-43b8-99f2-3c507c9143fc}","a9ed5b7e":"{a9ed5b7e-75c5-4651-af16-d2c27e98cb94}","f3878285":"{f3878285-8e4f-490b-bb1b-9acbb7eb04db}","f8a58466":"{f8a58466-d7f6-439f-bbb8-d4600e41d099}","string":"System.String"}}},"FormatVersion":"1.0"} \ No newline at end of file