diff --git a/ModeliRpc/CapnConvert/CapnConvert.vcxitems b/ModeliRpc/CapnConvert/CapnConvert.vcxitems
new file mode 100644
index 0000000000000000000000000000000000000000..04f589fa6999776e3740421b5adba233177adc99
--- /dev/null
+++ b/ModeliRpc/CapnConvert/CapnConvert.vcxitems
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Label="Globals">
+    <MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
+    <HasSharedItems>true</HasSharedItems>
+    <ItemsProjectGuid>{085c4931-4962-4fbf-b2cc-e436ffedc310}</ItemsProjectGuid>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories>
+    </ClCompile>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ProjectCapability Include="SourceItemsFromImports" />
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpc.sln b/ModeliRpc/ModeliRpc.sln
new file mode 100644
index 0000000000000000000000000000000000000000..bbfe37dc7fd54be18d820cfe2c43bb0dbdde43ac
--- /dev/null
+++ b/ModeliRpc/ModeliRpc.sln
@@ -0,0 +1,41 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.27130.2003
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModeliRpcCLR", "ModeliRpcCLR\ModeliRpcCLR.vcxproj", "{A8187A41-1D24-438F-9B5D-0F7BF270130E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ModeliRpcNative", "ModeliRpcNative\ModeliRpcNative.vcxproj", "{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x64.ActiveCfg = Debug|x64
+		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x64.Build.0 = Debug|x64
+		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x86.ActiveCfg = Debug|Win32
+		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Debug|x86.Build.0 = Debug|Win32
+		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x64.ActiveCfg = Release|x64
+		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x64.Build.0 = Release|x64
+		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x86.ActiveCfg = Release|Win32
+		{A8187A41-1D24-438F-9B5D-0F7BF270130E}.Release|x86.Build.0 = Release|Win32
+		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x64.ActiveCfg = Debug|x64
+		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x64.Build.0 = Debug|x64
+		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x86.ActiveCfg = Debug|Win32
+		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Debug|x86.Build.0 = Debug|Win32
+		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x64.ActiveCfg = Release|x64
+		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x64.Build.0 = Release|x64
+		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x86.ActiveCfg = Release|Win32
+		{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}.Release|x86.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {E1F47424-6A4D-43F9-982C-D5C9154CA77F}
+	EndGlobalSection
+EndGlobal
diff --git a/ModeliRpc/ModeliRpcCLR/AssemblyInfo.cpp b/ModeliRpc/ModeliRpcCLR/AssemblyInfo.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..dbcb8d2a442816e3d170f7c0d989dd85c7305bc5
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/AssemblyInfo.cpp
@@ -0,0 +1,38 @@
+#include "stdafx.h"
+
+using namespace System;
+using namespace System::Reflection;
+using namespace System::Runtime::CompilerServices;
+using namespace System::Runtime::InteropServices;
+using namespace System::Security::Permissions;
+
+//
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+//
+[assembly:AssemblyTitleAttribute(L"ModeliRpcCLR")];
+[assembly:AssemblyDescriptionAttribute(L"")];
+[assembly:AssemblyConfigurationAttribute(L"")];
+[assembly:AssemblyCompanyAttribute(L"")];
+[assembly:AssemblyProductAttribute(L"ModeliRpcCLR")];
+[assembly:AssemblyCopyrightAttribute(L"Copyright (c)  2017")];
+[assembly:AssemblyTrademarkAttribute(L"")];
+[assembly:AssemblyCultureAttribute(L"")];
+
+//
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version
+//      Build Number
+//      Revision
+//
+// You can specify all the value or you can default the Revision and Build Numbers
+// by using the '*' as shown below:
+
+[assembly:AssemblyVersionAttribute("1.0.*")];
+
+[assembly:ComVisible(false)];
+
+[assembly:CLSCompliantAttribute(true)];
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcCLR/ModeliRpc.cpp b/ModeliRpc/ModeliRpcCLR/ModeliRpc.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..c8329dd6912d1df86793e5aaafc1e7f1afc48476
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/ModeliRpc.cpp
@@ -0,0 +1,67 @@
+#include "stdafx.h"
+#include "ModeliRpc.h"
+#include "msclr/marshal_cppstd.h"
+
+using namespace msclr::interop;
+using namespace System::Runtime::InteropServices;
+
+namespace ModeliRpcImpl
+{
+    ModeliRpcImpl::ModeliRpcImpl(String^ address, int port)
+    {
+        // Managed callbacks
+        _newValues = gcnew NewValuesDelegate(this, &ModeliRpcImpl::onNewValues);
+        _log = gcnew LogDelegate(this, &ModeliRpcImpl::onLog);
+        // Load the unmanged instance
+        HINSTANCE _rpcDll = LoadLibrary("ModeliRpcNative.dll");
+        if (!_rpcDll)
+        {
+            throw gcnew Exception("Unable to load ModeliRpcNative.dll!");
+        }
+        createRpcFrontendType createRpcFrontend = reinterpret_cast<createRpcFrontendType>(GetProcAddress(_rpcDll, "create_klass"));
+        if (!createRpcFrontend)
+        {
+            FreeLibrary(_rpcDll);
+            throw gcnew Exception("Unable to load createRpcFrontend from DLL!");
+        }
+        _rpcFrontend = createRpcFrontend();
+        // Register callbacks
+        _rpcFrontend->registerCallbacks(
+            static_cast<NewValuesCallback>(Marshal::GetFunctionPointerForDelegate(_newValues).ToPointer()),
+            static_cast<LogCallback>(Marshal::GetFunctionPointerForDelegate(_log).ToPointer()));
+        // Connect
+        _rpcFrontend->connect(marshal_as<std::string>(address), port);
+
+    }
+
+    ModeliRpcImpl::~ModeliRpcImpl()
+    {
+        // Call the finalizer
+        this->!ModeliRpcImpl();
+    }
+    ModeliRpcImpl::!ModeliRpcImpl()
+    {
+        // Clear all unmanaged resources
+        if (_rpcFrontend)
+        {
+            _rpcFrontend->destroy();
+        }
+        if (_rpcDll)
+        {
+            FreeLibrary(_rpcDll);
+        }
+    }
+
+    void ModeliRpcImpl::onNewValues(double timestamp, ValuesStruct values)
+    {
+        throw gcnew System::NotImplementedException();
+    }
+
+    void ModeliRpcImpl::onLog(std::string instanceName, fmi2Status status, std::string message)
+    {
+        throw gcnew System::NotImplementedException();
+    }
+
+
+
+}
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcCLR/ModeliRpc.h b/ModeliRpc/ModeliRpcCLR/ModeliRpc.h
new file mode 100644
index 0000000000000000000000000000000000000000..c7a1f9d5c4625a38128a85726c1a3420a43d0679
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/ModeliRpc.h
@@ -0,0 +1,43 @@
+#pragma once
+#include"../ModeliRpcNative/IRpcFrontend.h"
+#include <string>
+#ifndef VC_EXTRALEAN
+#define VC_EXTRALEAN
+#endif
+#include <windows.h>
+
+using namespace System;
+
+typedef IRpcFrontend* (*createRpcFrontendType)();
+
+namespace capnp
+{
+    class EzRpcClient;
+}
+
+namespace ModeliRpcImpl
+{
+    ref class ModeliRpcImpl
+    {
+    private:
+        // Unmanaged rpc interface
+        IRpcFrontend* _rpcFrontend;
+        // The native project exports a dll to hide the rpc framework
+        HMODULE _rpcDll;
+
+        // Delegates for callbacks
+        delegate void NewValuesDelegate(double timestamp, ValuesStruct values);
+        delegate void LogDelegate(std::string instanceName, fmi2Status status, std::string message);
+        NewValuesDelegate^ _newValues;
+        LogDelegate^ _log;
+
+        // Functions for the delegates
+        void onNewValues(double timestamp, ValuesStruct values);
+        void onLog(std::string instanceName, fmi2Status status, std::string message);
+
+    public:
+        ModeliRpcImpl(String^ address, int port);
+        ~ModeliRpcImpl();   // Destructor (IDisposable)
+        !ModeliRpcImpl();   // Finalizer
+    };
+}
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj b/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj
new file mode 100644
index 0000000000000000000000000000000000000000..ab51d943bee78e7bf6991321d8f58104df52e0bc
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{A8187A41-1D24-438F-9B5D-0F7BF270130E}</ProjectGuid>
+    <TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
+    <Keyword>ManagedCProj</Keyword>
+    <RootNamespace>ModeliRpcCLR</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CLRSupport>true</CLRSupport>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CLRSupport>true</CLRSupport>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CLRSupport>true</CLRSupport>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CLRSupport>true</CLRSupport>
+    <CharacterSet>NotSet</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared" />
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>
+      </AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>
+      </AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>
+      </AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <WarningLevel>Level3</WarningLevel>
+      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>
+      </AdditionalLibraryDirectories>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="ModeliRpc.h" />
+    <ClInclude Include="resource.h" />
+    <ClInclude Include="Stdafx.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="AssemblyInfo.cpp" />
+    <ClCompile Include="ModeliRpc.cpp" />
+    <ClCompile Include="Stdafx.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <Text Include="ReadMe.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="app.rc" />
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="app.ico" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\ModeliRpcNative\ModeliRpcNative.vcxproj">
+      <Project>{171ed599-c0c6-4342-8328-e7abe7f7feaa}</Project>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj.filters b/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj.filters
new file mode 100644
index 0000000000000000000000000000000000000000..1a04e777243f92a1a9f00dd44c161294c7f27a82
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/ModeliRpcCLR.vcxproj.filters
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Stdafx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="resource.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ModeliRpc.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="AssemblyInfo.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Stdafx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="ModeliRpc.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <Text Include="ReadMe.txt" />
+  </ItemGroup>
+  <ItemGroup>
+    <ResourceCompile Include="app.rc">
+      <Filter>Resource Files</Filter>
+    </ResourceCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <Image Include="app.ico">
+      <Filter>Resource Files</Filter>
+    </Image>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcCLR/ReadMe.txt b/ModeliRpc/ModeliRpcCLR/ReadMe.txt
new file mode 100644
index 0000000000000000000000000000000000000000..608f7492c1aeeceb2cb280fdae260b6475b58a99
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/ReadMe.txt
@@ -0,0 +1,38 @@
+========================================================================
+    DYNAMIC LINK LIBRARY : ModeliRpcCLR Project Overview
+========================================================================
+
+AppWizard has created this ModeliRpcCLR DLL for you.  
+
+This file contains a summary of what you will find in each of the files that
+make up your ModeliRpcCLR application.
+
+ModeliRpcCLR.vcxproj
+    This is the main project file for VC++ projects generated using an Application Wizard. 
+    It contains information about the version of Visual C++ that generated the file, and 
+    information about the platforms, configurations, and project features selected with the
+    Application Wizard.
+
+ModeliRpcCLR.vcxproj.filters
+    This is the filters file for VC++ projects generated using an Application Wizard. 
+    It contains information about the association between the files in your project 
+    and the filters. This association is used in the IDE to show grouping of files with
+    similar extensions under a specific node (for e.g. ".cpp" files are associated with the
+    "Source Files" filter).
+
+ModeliRpcCLR.cpp
+    This is the main DLL source file.
+
+ModeliRpcCLR.h
+    This file contains a class declaration.
+
+AssemblyInfo.cpp
+	Contains custom attributes for modifying assembly metadata.
+
+/////////////////////////////////////////////////////////////////////////////
+Other notes:
+
+AppWizard uses "TODO:" to indicate parts of the source code you
+should add to or customize.
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/ModeliRpc/ModeliRpcCLR/Stdafx.cpp b/ModeliRpc/ModeliRpcCLR/Stdafx.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..ddd6528df2ed0a3e59344cd29e08750570da3c66
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/Stdafx.cpp
@@ -0,0 +1,5 @@
+// stdafx.cpp : source file that includes just the standard includes
+// ModeliRpcCLR.pch will be the pre-compiled header
+// stdafx.obj will contain the pre-compiled type information
+
+#include "stdafx.h"
diff --git a/ModeliRpc/ModeliRpcCLR/Stdafx.h b/ModeliRpc/ModeliRpcCLR/Stdafx.h
new file mode 100644
index 0000000000000000000000000000000000000000..3cc4c24ef9fa8b939c60763a015898bc45a84009
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/Stdafx.h
@@ -0,0 +1,7 @@
+// stdafx.h : include file for standard system include files,
+// or project specific include files that are used frequently,
+// but are changed infrequently
+
+#pragma once
+
+
diff --git a/ModeliRpc/ModeliRpcCLR/app.ico b/ModeliRpc/ModeliRpcCLR/app.ico
new file mode 100644
index 0000000000000000000000000000000000000000..789d7ccbb56ed92f1bb005054ec7e67257ddc37e
Binary files /dev/null and b/ModeliRpc/ModeliRpcCLR/app.ico differ
diff --git a/ModeliRpc/ModeliRpcCLR/app.rc b/ModeliRpc/ModeliRpcCLR/app.rc
new file mode 100644
index 0000000000000000000000000000000000000000..63ac7d2d9151530cfa80831a78bc496f8bcf237e
Binary files /dev/null and b/ModeliRpc/ModeliRpcCLR/app.rc differ
diff --git a/ModeliRpc/ModeliRpcCLR/resource.h b/ModeliRpc/ModeliRpcCLR/resource.h
new file mode 100644
index 0000000000000000000000000000000000000000..d5ac7c42aa08621a84006d54a017215e11edf05d
--- /dev/null
+++ b/ModeliRpc/ModeliRpcCLR/resource.h
@@ -0,0 +1,3 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by app.rc
diff --git a/ModeliRpc/ModeliRpcNative/CapnConverter.cpp b/ModeliRpc/ModeliRpcNative/CapnConverter.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..fa6ef93968accdbc4f8282fca7a28b6b4817e808
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/CapnConverter.cpp
@@ -0,0 +1,142 @@
+#include "stdafx.h"
+#include "CapnConverter.h"
+#include "capnp/message.h"
+
+CapnConverter::CapnConverter()
+{
+}
+
+
+CapnConverter::~CapnConverter()
+{
+}
+
+ValuesStruct CapnConverter::convertValues(Values::Reader reader)
+{
+    // Read the data into std types
+    std::string instanceName = reader.getInstanceName();
+
+    // int
+    std::vector<uint32_t> intVrs;
+    for (auto element : reader.getIntegerValueRefs())
+    {
+        intVrs.push_back(element);
+    }
+    std::vector<int32_t> intValues;
+    for (auto element : reader.getIntegerValues())
+    {
+        intValues.push_back(element);
+    }
+    // real
+    std::vector<uint32_t> realVrs;
+    for (auto element : reader.getRealValueRefs())
+    {
+        realVrs.push_back(element);
+    }
+    std::vector<double> realValues;
+    for (auto element : reader.getRealValues())
+    {
+        realValues.push_back(element);
+    }
+    // bool
+    std::vector<uint32_t> boolVrs;
+    for (auto element : reader.getBoolValueRefs())
+    {
+        boolVrs.push_back(element);
+    }
+    std::vector<bool> boolValues;
+    for (auto element : reader.getBoolValues())
+    {
+        boolValues.push_back(element);
+    }
+    // string
+    std::vector<uint32_t> stringVrs;
+    for (auto element : reader.getStringValueRefs())
+    {
+        stringVrs.push_back(element);
+    }
+    std::vector<std::string> stringValues;
+    for (auto textReader : reader.getStringValues())
+    {
+        // std copy does not work because we have to convert the textreader implicity
+        stringValues.push_back(textReader);
+    }
+    // assemble
+    return ValuesStruct{
+        instanceName,
+        intVrs,
+        intValues,
+        realVrs,
+        realValues,
+        boolVrs,
+        boolValues,
+        stringVrs,
+        stringValues
+    };
+}
+
+Values::Builder CapnConverter::convertValues(ValuesStruct values)
+{
+    capnp::MallocMessageBuilder builder;
+    auto retVal = builder.initRoot<Values>();
+    retVal.setInstanceName(values.instanceName);
+
+    // int
+    auto intVrs = retVal.initIntegerValueRefs(values.integerValueRefs.size());
+    for (int i = 0; i < intVrs.size(); i++)
+    {
+        intVrs.set(i, values.integerValueRefs[i]);
+    }
+    auto intValues = retVal.initIntegerValues(values.integerValues.size());
+    for (int i = 0; i < intValues.size(); i++)
+    {
+        intValues.set(i, values.integerValues[i]);
+    }
+    // real
+    auto realVrs = retVal.initRealValueRefs(values.realValueRefs.size());
+    for (int i = 0; i < realVrs.size(); i++)
+    {
+        realVrs.set(i, values.realValueRefs[i]);
+    }
+    auto realValues = retVal.initRealValues(values.realValues.size());
+    for (int i = 0; i < realValues.size(); i++)
+    {
+        realValues.set(i, values.realValues[i]);
+    }
+    // bool
+    auto boolVrs = retVal.initBoolValueRefs(values.boolValueRefs.size());
+    for (int i = 0; i < boolVrs.size(); i++)
+    {
+        boolVrs.set(i, values.boolValueRefs[i]);
+    }
+    auto boolValues = retVal.initBoolValues(values.boolValues.size());
+    for (int i = 0; i < boolValues.size(); i++)
+    {
+        boolValues.set(i, values.boolValues[i]);
+    }
+    // string
+    auto stringVrs = retVal.initStringValueRefs(values.stringValueRefs.size());
+    for (int i = 0; i < stringVrs.size(); i++)
+    {
+        stringVrs.set(i, values.stringValueRefs[i]);
+    }
+    auto stringValues = retVal.initStringValues(values.stringValues.size());
+    for (int i = 0; i < stringValues.size(); i++)
+    {
+        stringValues.set(i, values.stringValues[i]);
+    }
+    return retVal;
+}
+
+ModeliBackend::ChannelLink::Builder CapnConverter::convertChannelLink(ChannelLink channelLink)
+{
+    capnp::MallocMessageBuilder builder;
+    auto retVal = builder.initRoot<ModeliBackend::ChannelLink>();
+    retVal.setMasterInstanceName(channelLink.masterInstanceName);
+    retVal.setSlaveInstanceName(channelLink.slaveInstanceName);
+    retVal.setMasterValueRef(channelLink.masterValueRef);
+    retVal.setSlaveValueRef(channelLink.slaveValueRef);
+    retVal.setFactor(channelLink.factor);
+    retVal.setOffset(channelLink.offset);
+    return retVal;
+}
diff --git a/ModeliRpc/ModeliRpcNative/CapnConverter.h b/ModeliRpc/ModeliRpcNative/CapnConverter.h
new file mode 100644
index 0000000000000000000000000000000000000000..e186717f7f6f660da544ac180c4e2ab98200bf7d
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/CapnConverter.h
@@ -0,0 +1,18 @@
+#pragma once
+#include <string>
+#include <vector>
+#include "ModeliRpc.capnp.h"
+#include "IRpcFrontend.h"
+
+/// Several helper methods to convert our capn protocol
+class CapnConverter
+{
+public:
+    CapnConverter();
+    ~CapnConverter();
+
+    static ValuesStruct convertValues(Values::Reader reader);
+    static Values::Builder convertValues(ValuesStruct values);
+    static ModeliBackend::ChannelLink::Builder convertChannelLink(ChannelLink channelLink);
+};
+
diff --git a/ModeliRpc/ModeliRpcNative/IRpcFrontend.h b/ModeliRpc/ModeliRpcNative/IRpcFrontend.h
new file mode 100644
index 0000000000000000000000000000000000000000..df53ffd9d1e43f0e631035ac23e829bb0a7612f3
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/IRpcFrontend.h
@@ -0,0 +1,63 @@
+#pragma once
+#include <string>
+#include <vector>
+
+enum fmi2Status
+{
+    fmi2OK, 
+    fmi2Warning, 
+    fmi2Discard,
+    fmi2Error,
+    fmi2Fatal,
+    fmi2Pending
+};
+
+// Struct that will be used for the NewValues callback
+struct ValuesStruct
+{
+    std::string instanceName;
+    std::vector<uint32_t> integerValueRefs;
+    std::vector<int32_t> integerValues;
+    std::vector<uint32_t> realValueRefs;
+    std::vector<double> realValues;
+    std::vector<uint32_t> boolValueRefs;
+    std::vector<bool> boolValues;
+    std::vector<uint32_t> stringValueRefs;
+    std::vector<std::string> stringValues;
+};
+
+// Definition of a channel link
+struct ChannelLink
+{
+    std::string masterInstanceName;
+    std::string slaveInstanceName;
+    uint32_t masterValueRef;
+    uint32_t slaveValueRef;
+    double factor;
+    double offset;
+};
+
+// Callback definitions shall be easy to marshall
+typedef void(__stdcall *NewValuesCallback)(double timestamp, ValuesStruct values);
+typedef void(__stdcall *LogCallback)(std::string instanceName, int status, std::string message);
+
+
+/// This interface hides the rpc (framework) implementation.
+/// We can compile a pure native library and do not have to worry about CLI compiler errors.
+class IRpcFrontend
+{
+public:
+    virtual void destroy() = 0;
+    virtual void connect(std::string address, int port) = 0;
+    virtual void registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback) = 0;
+    virtual fmi2Status play() = 0;
+    virtual void pause() = 0;
+    virtual fmi2Status stop() = 0;
+    virtual bool addFmu(std::string instanceName, std::vector<unsigned char> fmuFile) = 0;
+    virtual bool removeFmu(std::string instanceName) = 0;
+    virtual bool addChannelLink(ChannelLink channelLink) = 0;
+    virtual bool removeChannelink(ChannelLink channelLink) = 0;
+    virtual fmi2Status setValues(ValuesStruct values) = 0;
+};
+// Factory signature
+extern "C" __declspec(dllexport) IRpcFrontend* createRpcFrontend();
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..d456bc21f38694f954b56dc2ec2ab337be30ae35
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.cpp
@@ -0,0 +1,27 @@
+#include "stdafx.h"
+#include "ModeliFrontendImpl.h"
+#include "CapnConverter.h"
+
+
+ModeliFrontendImpl::ModeliFrontendImpl(NewValuesCallback newValuesCallback, LogCallback logCallback) :
+    _newValuesCallback(newValuesCallback), _logCallback(logCallback)
+{
+}
+
+ModeliFrontendImpl::~ModeliFrontendImpl()
+{
+}
+
+kj::Promise<void> ModeliFrontendImpl::newValues(NewValuesContext context)
+{
+    _newValuesCallback(context.getParams().getTimestamp(), CapnConverter::convertValues(context.getParams().getValues()));
+    // Return to client
+    return kj::READY_NOW;
+}
+
+kj::Promise<void> ModeliFrontendImpl::log(LogContext context)
+{
+    _logCallback(context.getParams().getInstanceName(), context.getParams().getStatus(), context.getParams().getMessage());
+    // Return to client
+    return kj::READY_NOW;
+}
diff --git a/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h
new file mode 100644
index 0000000000000000000000000000000000000000..94a3c313b44a2bc1b611308c22167accda77969d
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/ModeliFrontendImpl.h
@@ -0,0 +1,21 @@
+#pragma 
+#include "ModeliRpc.capnp.h"
+#include "IRpcFrontend.h"
+#include <string>
+#include <vector>
+
+
+/// This class serves as a forwarder of the callbacks.
+class ModeliFrontendImpl final : public ModeliFrontend::Server
+{
+private:
+    NewValuesCallback _newValuesCallback;
+    LogCallback _logCallback;
+public:
+    ModeliFrontendImpl(NewValuesCallback newValuesCallback, LogCallback logCallback);
+    ~ModeliFrontendImpl();
+
+    // Overrides of the ModeliFrontend::Server interface
+    kj::Promise<void> newValues(NewValuesContext context) override;
+    kj::Promise<void> log(LogContext context) override;
+};
diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++
new file mode 100644
index 0000000000000000000000000000000000000000..d483ef74e12d2169ef8db07cb90562a6c405f022
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.c++
@@ -0,0 +1,2015 @@
+// Generated by Cap'n Proto compiler, DO NOT EDIT
+// source: ModeliRpc.capnp
+
+#include "ModeliRpc.capnp.h"
+
+namespace capnp {
+namespace schemas {
+static const ::capnp::_::AlignedData<131> b_c189361aa8d3ec0a = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     10, 236, 211, 168,  26,  54, 137, 193,
+     16,   0,   0,   0,   3,   0,   0,   0,
+    165, 163,  90, 206, 176, 102,  17, 181,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 242,   0,   0,   0,
+     33,   0,   0,   0,  23,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     45,   0,   0,   0, 135,   2,   0,   0,
+    221,   1,   0,   0,   7,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,   0,   0,   0,
+      4,   0,   0,   0,   1,   0,   1,   0,
+     84,  43, 232, 178,  87, 193,   8, 174,
+      1,   0,   0,   0,  98,   0,   0,   0,
+     67, 104,  97, 110, 110, 101, 108,  76,
+    105, 110, 107,   0,   0,   0,   0,   0,
+     40,   0,   0,   0,   3,   0,   5,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      5,  56,  43, 188,  82, 153,  97, 235,
+     47,   7,  46, 236,  44, 131,  92, 147,
+     49,   1,   0,   0,  42,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     37,   1,   0,   0,   7,   0,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+    254, 246, 209, 214, 117, 135, 213, 146,
+     88,  61, 155, 234,  21, 143, 231, 220,
+     25,   1,   0,   0,  74,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     17,   1,   0,   0,   7,   0,   0,   0,
+      2,   0,   0,   0,   0,   0,   0,   0,
+     62,   4,   3,  50, 160, 227,  99, 146,
+     93, 181, 195, 175, 214, 105, 123, 142,
+      5,   1,   0,   0,  50,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    249,   0,   0,   0,   7,   0,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+    214, 231, 151, 231,  56, 111,  46, 131,
+     78,  71, 200, 119,  21, 194, 180, 201,
+    237,   0,   0,   0,  42,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    225,   0,   0,   0,   7,   0,   0,   0,
+      4,   0,   0,   0,   0,   0,   0,   0,
+     24,  58, 213,  67,  42, 183,  62, 206,
+    255, 190,  93, 229, 238,  75, 112, 148,
+    213,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    201,   0,   0,   0,   7,   0,   0,   0,
+      5,   0,   0,   0,   0,   0,   0,   0,
+    159, 204, 110, 218, 169, 177,  82, 163,
+    219, 213, 116,  86,  27, 175, 202, 134,
+    189,   0,   0,   0,  82,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    181,   0,   0,   0,   7,   0,   0,   0,
+      6,   0,   0,   0,   0,   0,   0,   0,
+    103, 126,  58, 227, 215, 186,  36, 255,
+     22, 199, 152,  43, 178, 255, 212, 138,
+    169,   0,   0,   0, 122,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    161,   0,   0,   0,   7,   0,   0,   0,
+      7,   0,   0,   0,   0,   0,   0,   0,
+     11, 111,  14,  62, 127, 221, 158, 135,
+    202, 134, 214, 251, 109,  26, 175, 152,
+    149,   0,   0,   0, 146,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    145,   0,   0,   0,   7,   0,   0,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+     45, 233, 149,  52,  53, 158, 225, 128,
+     60, 226,  78,  51,  53,  87,  35, 233,
+    133,   0,   0,   0,  82,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    125,   0,   0,   0,   7,   0,   0,   0,
+      9,   0,   0,   0,   0,   0,   0,   0,
+    162, 164, 186, 153,  85,  94,  47, 195,
+    234, 153, 155, 234, 247, 207, 135, 176,
+    113,   0,   0,   0, 138,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    109,   0,   0,   0,   7,   0,   0,   0,
+    112, 108,  97, 121,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+    112, 108,  97, 121,  70,  97, 115, 116,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+    112,  97, 117, 115, 101,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+    115, 116, 111, 112,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+     97, 100, 100,  70, 109, 117,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+    114, 101, 109, 111, 118, 101,  70, 109,
+    117,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+     97, 100, 100,  67, 104,  97, 110, 110,
+    101, 108,  76, 105, 110, 107,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+    114, 101, 109, 111, 118, 101,  67, 104,
+     97, 110, 110, 101, 108,  76, 105, 110,
+    107,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+    115, 101, 116,  86,  97, 108, 117, 101,
+    115,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+    114, 101, 103, 105, 115, 116, 101, 114,
+     70, 114, 111, 110, 116, 101, 110, 100,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+      0,   0,   0,   0,   1,   0,   1,   0, }
+};
+::capnp::word const* const bp_c189361aa8d3ec0a = b_c189361aa8d3ec0a.words;
+#if !CAPNP_LITE
+static const ::capnp::_::RawSchema* const d_c189361aa8d3ec0a[] = {
+  &s_80e19e353495e92d,
+  &s_832e6f38e797e7d6,
+  &s_86caaf1b5674d5db,
+  &s_879edd7f3e0e6f0b,
+  &s_8ad4ffb22b98c716,
+  &s_8e7b69d6afc3b55d,
+  &s_9263e3a03203043e,
+  &s_92d58775d6d1f6fe,
+  &s_935c832cec2e072f,
+  &s_94704beee55dbeff,
+  &s_98af1a6dfbd686ca,
+  &s_a352b1a9da6ecc9f,
+  &s_b087cff7ea9b99ea,
+  &s_c32f5e5599baa4a2,
+  &s_c9b4c21577c8474e,
+  &s_ce3eb72a43d53a18,
+  &s_dce78f15ea9b3d58,
+  &s_e9235735334ee23c,
+  &s_eb619952bc2b3805,
+  &s_ff24bad7e33a7e67,
+};
+static const uint16_t m_c189361aa8d3ec0a[] = {6, 4, 2, 0, 1, 9, 7, 5, 8, 3};
+const ::capnp::_::RawSchema s_c189361aa8d3ec0a = {
+  0xc189361aa8d3ec0a, b_c189361aa8d3ec0a.words, 131, d_c189361aa8d3ec0a, m_c189361aa8d3ec0a,
+  20, 10, nullptr, nullptr, nullptr, { &s_c189361aa8d3ec0a, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<116> b_ae08c157b2e82b54 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     84,  43, 232, 178,  87, 193,   8, 174,
+     30,   0,   0,   0,   1,   0,   3,   0,
+     10, 236, 211, 168,  26,  54, 137, 193,
+      2,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  82,   1,   0,   0,
+     41,   0,   0,   0,   7,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     37,   0,   0,   0,  87,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46,  67, 104,
+     97, 110, 110, 101, 108,  76, 105, 110,
+    107,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   1,   0,   1,   0,
+     24,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    153,   0,   0,   0, 154,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    156,   0,   0,   0,   3,   0,   1,   0,
+    168,   0,   0,   0,   2,   0,   1,   0,
+      1,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   1,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    165,   0,   0,   0, 146,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    168,   0,   0,   0,   3,   0,   1,   0,
+    180,   0,   0,   0,   2,   0,   1,   0,
+      2,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   2,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    177,   0,   0,   0, 122,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    176,   0,   0,   0,   3,   0,   1,   0,
+    188,   0,   0,   0,   2,   0,   1,   0,
+      3,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   1,   0,   3,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    185,   0,   0,   0, 114,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    184,   0,   0,   0,   3,   0,   1,   0,
+    196,   0,   0,   0,   2,   0,   1,   0,
+      4,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   1,   0,   4,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    193,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    188,   0,   0,   0,   3,   0,   1,   0,
+    200,   0,   0,   0,   2,   0,   1,   0,
+      5,   0,   0,   0,   2,   0,   0,   0,
+      0,   0,   1,   0,   5,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    197,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    192,   0,   0,   0,   3,   0,   1,   0,
+    204,   0,   0,   0,   2,   0,   1,   0,
+    109,  97, 115, 116, 101, 114,  73, 110,
+    115, 116,  97, 110,  99, 101,  78,  97,
+    109, 101,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    115, 108,  97, 118, 101,  73, 110, 115,
+    116,  97, 110,  99, 101,  78,  97, 109,
+    101,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    109,  97, 115, 116, 101, 114,  86,  97,
+    108, 117, 101,  82, 101, 102,   0,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    115, 108,  97, 118, 101,  86,  97, 108,
+    117, 101,  82, 101, 102,   0,   0,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    102,  97,  99, 116, 111, 114,   0,   0,
+     11,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     11,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    111, 102, 102, 115, 101, 116,   0,   0,
+     11,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     11,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_ae08c157b2e82b54 = b_ae08c157b2e82b54.words;
+#if !CAPNP_LITE
+static const uint16_t m_ae08c157b2e82b54[] = {4, 0, 2, 5, 1, 3};
+static const uint16_t i_ae08c157b2e82b54[] = {0, 1, 2, 3, 4, 5};
+const ::capnp::_::RawSchema s_ae08c157b2e82b54 = {
+  0xae08c157b2e82b54, b_ae08c157b2e82b54.words, 116, nullptr, m_ae08c157b2e82b54,
+  0, 6, i_ae08c157b2e82b54, nullptr, nullptr, { &s_ae08c157b2e82b54, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<18> b_eb619952bc2b3805 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+      5,  56,  43, 188,  82, 153,  97, 235,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  82,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 112, 108,
+     97, 121,  36,  80,  97, 114,  97, 109,
+    115,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_eb619952bc2b3805 = b_eb619952bc2b3805.words;
+#if !CAPNP_LITE
+const ::capnp::_::RawSchema s_eb619952bc2b3805 = {
+  0xeb619952bc2b3805, b_eb619952bc2b3805.words, 18, nullptr, nullptr,
+  0, 0, nullptr, nullptr, nullptr, { &s_eb619952bc2b3805, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<34> b_935c832cec2e072f = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     47,   7,  46, 236,  44, 131,  92, 147,
+     30,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  90,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 112, 108,
+     97, 121,  36,  82, 101, 115, 117, 108,
+    116, 115,   0,   0,   0,   0,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    114, 101, 115, 117, 108, 116,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_935c832cec2e072f = b_935c832cec2e072f.words;
+#if !CAPNP_LITE
+static const uint16_t m_935c832cec2e072f[] = {0};
+static const uint16_t i_935c832cec2e072f[] = {0};
+const ::capnp::_::RawSchema s_935c832cec2e072f = {
+  0x935c832cec2e072f, b_935c832cec2e072f.words, 34, nullptr, m_935c832cec2e072f,
+  0, 1, i_935c832cec2e072f, nullptr, nullptr, { &s_935c832cec2e072f, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<18> b_92d58775d6d1f6fe = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    254, 246, 209, 214, 117, 135, 213, 146,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 114,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 112, 108,
+     97, 121,  70,  97, 115, 116,  36,  80,
+     97, 114,  97, 109, 115,   0,   0,   0, }
+};
+::capnp::word const* const bp_92d58775d6d1f6fe = b_92d58775d6d1f6fe.words;
+#if !CAPNP_LITE
+const ::capnp::_::RawSchema s_92d58775d6d1f6fe = {
+  0x92d58775d6d1f6fe, b_92d58775d6d1f6fe.words, 18, nullptr, nullptr,
+  0, 0, nullptr, nullptr, nullptr, { &s_92d58775d6d1f6fe, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<34> b_dce78f15ea9b3d58 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     88,  61, 155, 234,  21, 143, 231, 220,
+     30,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 122,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 112, 108,
+     97, 121,  70,  97, 115, 116,  36,  82,
+    101, 115, 117, 108, 116, 115,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    114, 101, 115, 117, 108, 116,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_dce78f15ea9b3d58 = b_dce78f15ea9b3d58.words;
+#if !CAPNP_LITE
+static const uint16_t m_dce78f15ea9b3d58[] = {0};
+static const uint16_t i_dce78f15ea9b3d58[] = {0};
+const ::capnp::_::RawSchema s_dce78f15ea9b3d58 = {
+  0xdce78f15ea9b3d58, b_dce78f15ea9b3d58.words, 34, nullptr, m_dce78f15ea9b3d58,
+  0, 1, i_dce78f15ea9b3d58, nullptr, nullptr, { &s_dce78f15ea9b3d58, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<18> b_9263e3a03203043e = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     62,   4,   3,  50, 160, 227,  99, 146,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  90,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 112,  97,
+    117, 115, 101,  36,  80,  97, 114,  97,
+    109, 115,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_9263e3a03203043e = b_9263e3a03203043e.words;
+#if !CAPNP_LITE
+const ::capnp::_::RawSchema s_9263e3a03203043e = {
+  0x9263e3a03203043e, b_9263e3a03203043e.words, 18, nullptr, nullptr,
+  0, 0, nullptr, nullptr, nullptr, { &s_9263e3a03203043e, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<18> b_8e7b69d6afc3b55d = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     93, 181, 195, 175, 214, 105, 123, 142,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  98,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 112,  97,
+    117, 115, 101,  36,  82, 101, 115, 117,
+    108, 116, 115,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_8e7b69d6afc3b55d = b_8e7b69d6afc3b55d.words;
+#if !CAPNP_LITE
+const ::capnp::_::RawSchema s_8e7b69d6afc3b55d = {
+  0x8e7b69d6afc3b55d, b_8e7b69d6afc3b55d.words, 18, nullptr, nullptr,
+  0, 0, nullptr, nullptr, nullptr, { &s_8e7b69d6afc3b55d, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<18> b_832e6f38e797e7d6 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    214, 231, 151, 231,  56, 111,  46, 131,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  82,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 115, 116,
+    111, 112,  36,  80,  97, 114,  97, 109,
+    115,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_832e6f38e797e7d6 = b_832e6f38e797e7d6.words;
+#if !CAPNP_LITE
+const ::capnp::_::RawSchema s_832e6f38e797e7d6 = {
+  0x832e6f38e797e7d6, b_832e6f38e797e7d6.words, 18, nullptr, nullptr,
+  0, 0, nullptr, nullptr, nullptr, { &s_832e6f38e797e7d6, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<34> b_c9b4c21577c8474e = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     78,  71, 200, 119,  21, 194, 180, 201,
+     30,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  90,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 115, 116,
+    111, 112,  36,  82, 101, 115, 117, 108,
+    116, 115,   0,   0,   0,   0,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    114, 101, 115, 117, 108, 116,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_c9b4c21577c8474e = b_c9b4c21577c8474e.words;
+#if !CAPNP_LITE
+static const uint16_t m_c9b4c21577c8474e[] = {0};
+static const uint16_t i_c9b4c21577c8474e[] = {0};
+const ::capnp::_::RawSchema s_c9b4c21577c8474e = {
+  0xc9b4c21577c8474e, b_c9b4c21577c8474e.words, 34, nullptr, m_c9b4c21577c8474e,
+  0, 1, i_c9b4c21577c8474e, nullptr, nullptr, { &s_c9b4c21577c8474e, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<50> b_ce3eb72a43d53a18 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     24,  58, 213,  67,  42, 183,  62, 206,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      2,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  98,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0, 119,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46,  97, 100,
+    100,  70, 109, 117,  36,  80,  97, 114,
+     97, 109, 115,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     41,   0,   0,   0, 106,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     40,   0,   0,   0,   3,   0,   1,   0,
+     52,   0,   0,   0,   2,   0,   1,   0,
+      1,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   1,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     49,   0,   0,   0,  66,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     44,   0,   0,   0,   3,   0,   1,   0,
+     56,   0,   0,   0,   2,   0,   1,   0,
+    105, 110, 115, 116,  97, 110,  99, 101,
+     78,  97, 109, 101,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    102, 109, 117,  70, 105, 108, 101,   0,
+     13,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_ce3eb72a43d53a18 = b_ce3eb72a43d53a18.words;
+#if !CAPNP_LITE
+static const uint16_t m_ce3eb72a43d53a18[] = {1, 0};
+static const uint16_t i_ce3eb72a43d53a18[] = {0, 1};
+const ::capnp::_::RawSchema s_ce3eb72a43d53a18 = {
+  0xce3eb72a43d53a18, b_ce3eb72a43d53a18.words, 50, nullptr, m_ce3eb72a43d53a18,
+  0, 2, i_ce3eb72a43d53a18, nullptr, nullptr, { &s_ce3eb72a43d53a18, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<34> b_94704beee55dbeff = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    255, 190,  93, 229, 238,  75, 112, 148,
+     30,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 106,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46,  97, 100,
+    100,  70, 109, 117,  36,  82, 101, 115,
+    117, 108, 116, 115,   0,   0,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    114, 101, 115, 117, 108, 116,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_94704beee55dbeff = b_94704beee55dbeff.words;
+#if !CAPNP_LITE
+static const uint16_t m_94704beee55dbeff[] = {0};
+static const uint16_t i_94704beee55dbeff[] = {0};
+const ::capnp::_::RawSchema s_94704beee55dbeff = {
+  0x94704beee55dbeff, b_94704beee55dbeff.words, 34, nullptr, m_94704beee55dbeff,
+  0, 1, i_94704beee55dbeff, nullptr, nullptr, { &s_94704beee55dbeff, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<35> b_a352b1a9da6ecc9f = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    159, 204, 110, 218, 169, 177,  82, 163,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 122,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 114, 101,
+    109, 111, 118, 101,  70, 109, 117,  36,
+     80,  97, 114,  97, 109, 115,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0, 106,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   3,   0,   1,   0,
+     24,   0,   0,   0,   2,   0,   1,   0,
+    105, 110, 115, 116,  97, 110,  99, 101,
+     78,  97, 109, 101,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_a352b1a9da6ecc9f = b_a352b1a9da6ecc9f.words;
+#if !CAPNP_LITE
+static const uint16_t m_a352b1a9da6ecc9f[] = {0};
+static const uint16_t i_a352b1a9da6ecc9f[] = {0};
+const ::capnp::_::RawSchema s_a352b1a9da6ecc9f = {
+  0xa352b1a9da6ecc9f, b_a352b1a9da6ecc9f.words, 35, nullptr, m_a352b1a9da6ecc9f,
+  0, 1, i_a352b1a9da6ecc9f, nullptr, nullptr, { &s_a352b1a9da6ecc9f, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<34> b_86caaf1b5674d5db = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    219, 213, 116,  86,  27, 175, 202, 134,
+     30,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 130,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 114, 101,
+    109, 111, 118, 101,  70, 109, 117,  36,
+     82, 101, 115, 117, 108, 116, 115,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    114, 101, 115, 117, 108, 116,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_86caaf1b5674d5db = b_86caaf1b5674d5db.words;
+#if !CAPNP_LITE
+static const uint16_t m_86caaf1b5674d5db[] = {0};
+static const uint16_t i_86caaf1b5674d5db[] = {0};
+const ::capnp::_::RawSchema s_86caaf1b5674d5db = {
+  0x86caaf1b5674d5db, b_86caaf1b5674d5db.words, 34, nullptr, m_86caaf1b5674d5db,
+  0, 1, i_86caaf1b5674d5db, nullptr, nullptr, { &s_86caaf1b5674d5db, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<36> b_ff24bad7e33a7e67 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    103, 126,  58, 227, 215, 186,  36, 255,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 162,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     37,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46,  97, 100,
+    100,  67, 104,  97, 110, 110, 101, 108,
+     76, 105, 110, 107,  36,  80,  97, 114,
+     97, 109, 115,   0,   0,   0,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  98,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   3,   0,   1,   0,
+     24,   0,   0,   0,   2,   0,   1,   0,
+     99, 104,  97, 110, 110, 101, 108,  76,
+    105, 110, 107,   0,   0,   0,   0,   0,
+     16,   0,   0,   0,   0,   0,   0,   0,
+     84,  43, 232, 178,  87, 193,   8, 174,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     16,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_ff24bad7e33a7e67 = b_ff24bad7e33a7e67.words;
+#if !CAPNP_LITE
+static const ::capnp::_::RawSchema* const d_ff24bad7e33a7e67[] = {
+  &s_ae08c157b2e82b54,
+};
+static const uint16_t m_ff24bad7e33a7e67[] = {0};
+static const uint16_t i_ff24bad7e33a7e67[] = {0};
+const ::capnp::_::RawSchema s_ff24bad7e33a7e67 = {
+  0xff24bad7e33a7e67, b_ff24bad7e33a7e67.words, 36, d_ff24bad7e33a7e67, m_ff24bad7e33a7e67,
+  1, 1, i_ff24bad7e33a7e67, nullptr, nullptr, { &s_ff24bad7e33a7e67, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<35> b_8ad4ffb22b98c716 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     22, 199, 152,  43, 178, 255, 212, 138,
+     30,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 170,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     37,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46,  97, 100,
+    100,  67, 104,  97, 110, 110, 101, 108,
+     76, 105, 110, 107,  36,  82, 101, 115,
+    117, 108, 116, 115,   0,   0,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    114, 101, 115, 117, 108, 116,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_8ad4ffb22b98c716 = b_8ad4ffb22b98c716.words;
+#if !CAPNP_LITE
+static const uint16_t m_8ad4ffb22b98c716[] = {0};
+static const uint16_t i_8ad4ffb22b98c716[] = {0};
+const ::capnp::_::RawSchema s_8ad4ffb22b98c716 = {
+  0x8ad4ffb22b98c716, b_8ad4ffb22b98c716.words, 35, nullptr, m_8ad4ffb22b98c716,
+  0, 1, i_8ad4ffb22b98c716, nullptr, nullptr, { &s_8ad4ffb22b98c716, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<36> b_879edd7f3e0e6f0b = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     11, 111,  14,  62, 127, 221, 158, 135,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 186,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     37,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 114, 101,
+    109, 111, 118, 101,  67, 104,  97, 110,
+    110, 101, 108,  76, 105, 110, 107,  36,
+     80,  97, 114,  97, 109, 115,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  98,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   3,   0,   1,   0,
+     24,   0,   0,   0,   2,   0,   1,   0,
+     99, 104,  97, 110, 110, 101, 108,  76,
+    105, 110, 107,   0,   0,   0,   0,   0,
+     16,   0,   0,   0,   0,   0,   0,   0,
+     84,  43, 232, 178,  87, 193,   8, 174,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     16,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_879edd7f3e0e6f0b = b_879edd7f3e0e6f0b.words;
+#if !CAPNP_LITE
+static const ::capnp::_::RawSchema* const d_879edd7f3e0e6f0b[] = {
+  &s_ae08c157b2e82b54,
+};
+static const uint16_t m_879edd7f3e0e6f0b[] = {0};
+static const uint16_t i_879edd7f3e0e6f0b[] = {0};
+const ::capnp::_::RawSchema s_879edd7f3e0e6f0b = {
+  0x879edd7f3e0e6f0b, b_879edd7f3e0e6f0b.words, 36, d_879edd7f3e0e6f0b, m_879edd7f3e0e6f0b,
+  1, 1, i_879edd7f3e0e6f0b, nullptr, nullptr, { &s_879edd7f3e0e6f0b, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<35> b_98af1a6dfbd686ca = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    202, 134, 214, 251, 109,  26, 175, 152,
+     30,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 194,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     37,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 114, 101,
+    109, 111, 118, 101,  67, 104,  97, 110,
+    110, 101, 108,  76, 105, 110, 107,  36,
+     82, 101, 115, 117, 108, 116, 115,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    114, 101, 115, 117, 108, 116,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_98af1a6dfbd686ca = b_98af1a6dfbd686ca.words;
+#if !CAPNP_LITE
+static const uint16_t m_98af1a6dfbd686ca[] = {0};
+static const uint16_t i_98af1a6dfbd686ca[] = {0};
+const ::capnp::_::RawSchema s_98af1a6dfbd686ca = {
+  0x98af1a6dfbd686ca, b_98af1a6dfbd686ca.words, 35, nullptr, m_98af1a6dfbd686ca,
+  0, 1, i_98af1a6dfbd686ca, nullptr, nullptr, { &s_98af1a6dfbd686ca, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<34> b_80e19e353495e92d = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     45, 233, 149,  52,  53, 158, 225, 128,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 122,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 115, 101,
+    116,  86,  97, 108, 117, 101, 115,  36,
+     80,  97, 114,  97, 109, 115,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    118,  97, 108, 117, 101, 115,   0,   0,
+     16,   0,   0,   0,   0,   0,   0,   0,
+    165, 137, 134,  10, 148,   1,  49, 164,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     16,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_80e19e353495e92d = b_80e19e353495e92d.words;
+#if !CAPNP_LITE
+static const ::capnp::_::RawSchema* const d_80e19e353495e92d[] = {
+  &s_a43101940a8689a5,
+};
+static const uint16_t m_80e19e353495e92d[] = {0};
+static const uint16_t i_80e19e353495e92d[] = {0};
+const ::capnp::_::RawSchema s_80e19e353495e92d = {
+  0x80e19e353495e92d, b_80e19e353495e92d.words, 34, d_80e19e353495e92d, m_80e19e353495e92d,
+  1, 1, i_80e19e353495e92d, nullptr, nullptr, { &s_80e19e353495e92d, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<34> b_e9235735334ee23c = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     60, 226,  78,  51,  53,  87,  35, 233,
+     30,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 130,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 115, 101,
+    116,  86,  97, 108, 117, 101, 115,  36,
+     82, 101, 115, 117, 108, 116, 115,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      8,   0,   0,   0,   3,   0,   1,   0,
+     20,   0,   0,   0,   2,   0,   1,   0,
+    114, 101, 115, 117, 108, 116,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_e9235735334ee23c = b_e9235735334ee23c.words;
+#if !CAPNP_LITE
+static const uint16_t m_e9235735334ee23c[] = {0};
+static const uint16_t i_e9235735334ee23c[] = {0};
+const ::capnp::_::RawSchema s_e9235735334ee23c = {
+  0xe9235735334ee23c, b_e9235735334ee23c.words, 34, nullptr, m_e9235735334ee23c,
+  0, 1, i_e9235735334ee23c, nullptr, nullptr, { &s_e9235735334ee23c, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<36> b_c32f5e5599baa4a2 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    162, 164, 186, 153,  85,  94,  47, 195,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 178,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     37,   0,   0,   0,  63,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 114, 101,
+    103, 105, 115, 116, 101, 114,  70, 114,
+    111, 110, 116, 101, 110, 100,  36,  80,
+     97, 114,  97, 109, 115,   0,   0,   0,
+      4,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     13,   0,   0,   0,  74,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   3,   0,   1,   0,
+     24,   0,   0,   0,   2,   0,   1,   0,
+    102, 114, 111, 110, 116, 101, 110, 100,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     17,   0,   0,   0,   0,   0,   0,   0,
+    244, 122, 161, 110, 145,  80,  69, 204,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     17,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_c32f5e5599baa4a2 = b_c32f5e5599baa4a2.words;
+#if !CAPNP_LITE
+static const ::capnp::_::RawSchema* const d_c32f5e5599baa4a2[] = {
+  &s_cc4550916ea17af4,
+};
+static const uint16_t m_c32f5e5599baa4a2[] = {0};
+static const uint16_t i_c32f5e5599baa4a2[] = {0};
+const ::capnp::_::RawSchema s_c32f5e5599baa4a2 = {
+  0xc32f5e5599baa4a2, b_c32f5e5599baa4a2.words, 36, d_c32f5e5599baa4a2, m_c32f5e5599baa4a2,
+  1, 1, i_c32f5e5599baa4a2, nullptr, nullptr, { &s_c32f5e5599baa4a2, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<19> b_b087cff7ea9b99ea = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    234, 153, 155, 234, 247, 207, 135, 176,
+     30,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 186,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  66,  97,
+     99, 107, 101, 110, 100,  46, 114, 101,
+    103, 105, 115, 116, 101, 114,  70, 114,
+    111, 110, 116, 101, 110, 100,  36,  82,
+    101, 115, 117, 108, 116, 115,   0,   0, }
+};
+::capnp::word const* const bp_b087cff7ea9b99ea = b_b087cff7ea9b99ea.words;
+#if !CAPNP_LITE
+const ::capnp::_::RawSchema s_b087cff7ea9b99ea = {
+  0xb087cff7ea9b99ea, b_b087cff7ea9b99ea.words, 19, nullptr, nullptr,
+  0, 0, nullptr, nullptr, nullptr, { &s_b087cff7ea9b99ea, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<40> b_cc4550916ea17af4 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    244, 122, 161, 110, 145,  80,  69, 204,
+     16,   0,   0,   0,   3,   0,   0,   0,
+    165, 163,  90, 206, 176, 102,  17, 181,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 250,   0,   0,   0,
+     33,   0,   0,   0,   7,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     29,   0,   0,   0, 135,   0,   0,   0,
+    113,   0,   0,   0,   7,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  70, 114,
+    111, 110, 116, 101, 110, 100,   0,   0,
+      0,   0,   0,   0,   1,   0,   1,   0,
+      8,   0,   0,   0,   3,   0,   5,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     97, 131,  38, 152, 135,  44, 130, 137,
+    196,  70, 234, 233, 228, 203, 200, 222,
+     49,   0,   0,   0,  82,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     41,   0,   0,   0,   7,   0,   0,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+    131, 104, 219,  16,  14, 240,  39, 162,
+     92, 122, 223, 109,  28, 150, 140, 236,
+     29,   0,   0,   0,  34,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     17,   0,   0,   0,   7,   0,   0,   0,
+    110, 101, 119,  86,  97, 108, 117, 101,
+    115,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+    108, 111, 103,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   1,   0,
+      0,   0,   0,   0,   1,   0,   1,   0, }
+};
+::capnp::word const* const bp_cc4550916ea17af4 = b_cc4550916ea17af4.words;
+#if !CAPNP_LITE
+static const ::capnp::_::RawSchema* const d_cc4550916ea17af4[] = {
+  &s_89822c8798268361,
+  &s_a227f00e10db6883,
+  &s_dec8cbe4e9ea46c4,
+  &s_ec8c961c6ddf7a5c,
+};
+static const uint16_t m_cc4550916ea17af4[] = {1, 0};
+const ::capnp::_::RawSchema s_cc4550916ea17af4 = {
+  0xcc4550916ea17af4, b_cc4550916ea17af4.words, 40, d_cc4550916ea17af4, m_cc4550916ea17af4,
+  4, 2, nullptr, nullptr, nullptr, { &s_cc4550916ea17af4, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<50> b_89822c8798268361 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     97, 131,  38, 152, 135,  44, 130, 137,
+     31,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      1,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 130,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0, 119,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  70, 114,
+    111, 110, 116, 101, 110, 100,  46, 110,
+    101, 119,  86,  97, 108, 117, 101, 115,
+     36,  80,  97, 114,  97, 109, 115,   0,
+      8,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     41,   0,   0,   0,  82,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     40,   0,   0,   0,   3,   0,   1,   0,
+     52,   0,   0,   0,   2,   0,   1,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     49,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     44,   0,   0,   0,   3,   0,   1,   0,
+     56,   0,   0,   0,   2,   0,   1,   0,
+    116, 105, 109, 101, 115, 116,  97, 109,
+    112,   0,   0,   0,   0,   0,   0,   0,
+     11,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     11,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    118,  97, 108, 117, 101, 115,   0,   0,
+     16,   0,   0,   0,   0,   0,   0,   0,
+    165, 137, 134,  10, 148,   1,  49, 164,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     16,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_89822c8798268361 = b_89822c8798268361.words;
+#if !CAPNP_LITE
+static const ::capnp::_::RawSchema* const d_89822c8798268361[] = {
+  &s_a43101940a8689a5,
+};
+static const uint16_t m_89822c8798268361[] = {0, 1};
+static const uint16_t i_89822c8798268361[] = {0, 1};
+const ::capnp::_::RawSchema s_89822c8798268361 = {
+  0x89822c8798268361, b_89822c8798268361.words, 50, d_89822c8798268361, m_89822c8798268361,
+  1, 2, i_89822c8798268361, nullptr, nullptr, { &s_89822c8798268361, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<19> b_dec8cbe4e9ea46c4 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    196,  70, 234, 233, 228, 203, 200, 222,
+     31,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 138,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  70, 114,
+    111, 110, 116, 101, 110, 100,  46, 110,
+    101, 119,  86,  97, 108, 117, 101, 115,
+     36,  82, 101, 115, 117, 108, 116, 115,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_dec8cbe4e9ea46c4 = b_dec8cbe4e9ea46c4.words;
+#if !CAPNP_LITE
+const ::capnp::_::RawSchema s_dec8cbe4e9ea46c4 = {
+  0xdec8cbe4e9ea46c4, b_dec8cbe4e9ea46c4.words, 19, nullptr, nullptr,
+  0, 0, nullptr, nullptr, nullptr, { &s_dec8cbe4e9ea46c4, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<65> b_a227f00e10db6883 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    131, 104, 219,  16,  14, 240,  39, 162,
+     31,   0,   0,   0,   1,   0,   1,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      2,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  82,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     33,   0,   0,   0, 175,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  70, 114,
+    111, 110, 116, 101, 110, 100,  46, 108,
+    111, 103,  36,  80,  97, 114,  97, 109,
+    115,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     69,   0,   0,   0, 106,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     68,   0,   0,   0,   3,   0,   1,   0,
+     80,   0,   0,   0,   2,   0,   1,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77,   0,   0,   0,  58,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     72,   0,   0,   0,   3,   0,   1,   0,
+     84,   0,   0,   0,   2,   0,   1,   0,
+      2,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   1,   0,   2,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     81,   0,   0,   0,  66,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     76,   0,   0,   0,   3,   0,   1,   0,
+     88,   0,   0,   0,   2,   0,   1,   0,
+    105, 110, 115, 116,  97, 110,  99, 101,
+     78,  97, 109, 101,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    115, 116,  97, 116, 117, 115,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      3,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    109, 101, 115, 115,  97, 103, 101,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_a227f00e10db6883 = b_a227f00e10db6883.words;
+#if !CAPNP_LITE
+static const uint16_t m_a227f00e10db6883[] = {0, 2, 1};
+static const uint16_t i_a227f00e10db6883[] = {0, 1, 2};
+const ::capnp::_::RawSchema s_a227f00e10db6883 = {
+  0xa227f00e10db6883, b_a227f00e10db6883.words, 65, nullptr, m_a227f00e10db6883,
+  0, 3, i_a227f00e10db6883, nullptr, nullptr, { &s_a227f00e10db6883, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<18> b_ec8c961c6ddf7a5c = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+     92, 122, 223, 109,  28, 150, 140, 236,
+     31,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0,  90,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     77, 111, 100, 101, 108, 105,  70, 114,
+    111, 110, 116, 101, 110, 100,  46, 108,
+    111, 103,  36,  82, 101, 115, 117, 108,
+    116, 115,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_ec8c961c6ddf7a5c = b_ec8c961c6ddf7a5c.words;
+#if !CAPNP_LITE
+const ::capnp::_::RawSchema s_ec8c961c6ddf7a5c = {
+  0xec8c961c6ddf7a5c, b_ec8c961c6ddf7a5c.words, 18, nullptr, nullptr,
+  0, 0, nullptr, nullptr, nullptr, { &s_ec8c961c6ddf7a5c, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+static const ::capnp::_::AlignedData<194> b_a43101940a8689a5 = {
+  {   0,   0,   0,   0,   5,   0,   6,   0,
+    165, 137, 134,  10, 148,   1,  49, 164,
+     16,   0,   0,   0,   1,   0,   0,   0,
+    165, 163,  90, 206, 176, 102,  17, 181,
+      9,   0,   7,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     21,   0,   0,   0, 186,   0,   0,   0,
+     29,   0,   0,   0,   7,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     25,   0,   0,   0, 255,   1,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     77, 111, 100, 101, 108, 105,  82, 112,
+     99,  46,  99,  97, 112, 110, 112,  58,
+     86,  97, 108, 117, 101, 115,   0,   0,
+      0,   0,   0,   0,   1,   0,   1,   0,
+     36,   0,   0,   0,   3,   0,   4,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   1,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    237,   0,   0,   0, 106,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    236,   0,   0,   0,   3,   0,   1,   0,
+    248,   0,   0,   0,   2,   0,   1,   0,
+      1,   0,   0,   0,   1,   0,   0,   0,
+      0,   0,   1,   0,   1,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    245,   0,   0,   0, 138,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    248,   0,   0,   0,   3,   0,   1,   0,
+     20,   1,   0,   0,   2,   0,   1,   0,
+      2,   0,   0,   0,   2,   0,   0,   0,
+      0,   0,   1,   0,   2,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     17,   1,   0,   0, 114,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     16,   1,   0,   0,   3,   0,   1,   0,
+     44,   1,   0,   0,   2,   0,   1,   0,
+      3,   0,   0,   0,   3,   0,   0,   0,
+      0,   0,   1,   0,   3,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     41,   1,   0,   0, 114,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     40,   1,   0,   0,   3,   0,   1,   0,
+     68,   1,   0,   0,   2,   0,   1,   0,
+      4,   0,   0,   0,   4,   0,   0,   0,
+      0,   0,   1,   0,   4,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     65,   1,   0,   0,  90,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     64,   1,   0,   0,   3,   0,   1,   0,
+     92,   1,   0,   0,   2,   0,   1,   0,
+      5,   0,   0,   0,   5,   0,   0,   0,
+      0,   0,   1,   0,   5,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     89,   1,   0,   0, 114,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     88,   1,   0,   0,   3,   0,   1,   0,
+    116,   1,   0,   0,   2,   0,   1,   0,
+      6,   0,   0,   0,   6,   0,   0,   0,
+      0,   0,   1,   0,   6,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    113,   1,   0,   0,  90,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    112,   1,   0,   0,   3,   0,   1,   0,
+    140,   1,   0,   0,   2,   0,   1,   0,
+      7,   0,   0,   0,   7,   0,   0,   0,
+      0,   0,   1,   0,   7,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    137,   1,   0,   0, 130,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    136,   1,   0,   0,   3,   0,   1,   0,
+    164,   1,   0,   0,   2,   0,   1,   0,
+      8,   0,   0,   0,   8,   0,   0,   0,
+      0,   0,   1,   0,   8,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    161,   1,   0,   0, 106,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    160,   1,   0,   0,   3,   0,   1,   0,
+    188,   1,   0,   0,   2,   0,   1,   0,
+    105, 110, 115, 116,  97, 110,  99, 101,
+     78,  97, 109, 101,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    105, 110, 116, 101, 103, 101, 114,  86,
+     97, 108, 117, 101,  82, 101, 102, 115,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   3,   0,   1,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    105, 110, 116, 101, 103, 101, 114,  86,
+     97, 108, 117, 101, 115,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   3,   0,   1,   0,
+      4,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    114, 101,  97, 108,  86,  97, 108, 117,
+    101,  82, 101, 102, 115,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   3,   0,   1,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    114, 101,  97, 108,  86,  97, 108, 117,
+    101, 115,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   3,   0,   1,   0,
+     11,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     98, 111, 111, 108,  86,  97, 108, 117,
+    101,  82, 101, 102, 115,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   3,   0,   1,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     98, 111, 111, 108,  86,  97, 108, 117,
+    101, 115,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   3,   0,   1,   0,
+      1,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    115, 116, 114, 105, 110, 103,  86,  97,
+    108, 117, 101,  82, 101, 102, 115,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   3,   0,   1,   0,
+      8,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+    115, 116, 114, 105, 110, 103,  86,  97,
+    108, 117, 101, 115,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   3,   0,   1,   0,
+     12,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+     14,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0,
+      0,   0,   0,   0,   0,   0,   0,   0, }
+};
+::capnp::word const* const bp_a43101940a8689a5 = b_a43101940a8689a5.words;
+#if !CAPNP_LITE
+static const uint16_t m_a43101940a8689a5[] = {5, 6, 0, 1, 2, 3, 4, 7, 8};
+static const uint16_t i_a43101940a8689a5[] = {0, 1, 2, 3, 4, 5, 6, 7, 8};
+const ::capnp::_::RawSchema s_a43101940a8689a5 = {
+  0xa43101940a8689a5, b_a43101940a8689a5.words, 194, nullptr, m_a43101940a8689a5,
+  0, 9, i_a43101940a8689a5, nullptr, nullptr, { &s_a43101940a8689a5, nullptr, nullptr, 0, 0, nullptr }
+};
+#endif  // !CAPNP_LITE
+}  // namespace schemas
+}  // namespace capnp
+
+// =======================================================================================
+
+
+#if !CAPNP_LITE
+::capnp::Request< ::ModeliBackend::PlayParams,  ::ModeliBackend::PlayResults>
+ModeliBackend::Client::playRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::PlayParams,  ::ModeliBackend::PlayResults>(
+      0xc189361aa8d3ec0aull, 0, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::play(PlayContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "play",
+      0xc189361aa8d3ec0aull, 0);
+}
+::capnp::Request< ::ModeliBackend::PlayFastParams,  ::ModeliBackend::PlayFastResults>
+ModeliBackend::Client::playFastRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::PlayFastParams,  ::ModeliBackend::PlayFastResults>(
+      0xc189361aa8d3ec0aull, 1, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::playFast(PlayFastContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "playFast",
+      0xc189361aa8d3ec0aull, 1);
+}
+::capnp::Request< ::ModeliBackend::PauseParams,  ::ModeliBackend::PauseResults>
+ModeliBackend::Client::pauseRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::PauseParams,  ::ModeliBackend::PauseResults>(
+      0xc189361aa8d3ec0aull, 2, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::pause(PauseContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "pause",
+      0xc189361aa8d3ec0aull, 2);
+}
+::capnp::Request< ::ModeliBackend::StopParams,  ::ModeliBackend::StopResults>
+ModeliBackend::Client::stopRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::StopParams,  ::ModeliBackend::StopResults>(
+      0xc189361aa8d3ec0aull, 3, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::stop(StopContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "stop",
+      0xc189361aa8d3ec0aull, 3);
+}
+::capnp::Request< ::ModeliBackend::AddFmuParams,  ::ModeliBackend::AddFmuResults>
+ModeliBackend::Client::addFmuRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::AddFmuParams,  ::ModeliBackend::AddFmuResults>(
+      0xc189361aa8d3ec0aull, 4, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::addFmu(AddFmuContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "addFmu",
+      0xc189361aa8d3ec0aull, 4);
+}
+::capnp::Request< ::ModeliBackend::RemoveFmuParams,  ::ModeliBackend::RemoveFmuResults>
+ModeliBackend::Client::removeFmuRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::RemoveFmuParams,  ::ModeliBackend::RemoveFmuResults>(
+      0xc189361aa8d3ec0aull, 5, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::removeFmu(RemoveFmuContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "removeFmu",
+      0xc189361aa8d3ec0aull, 5);
+}
+::capnp::Request< ::ModeliBackend::AddChannelLinkParams,  ::ModeliBackend::AddChannelLinkResults>
+ModeliBackend::Client::addChannelLinkRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::AddChannelLinkParams,  ::ModeliBackend::AddChannelLinkResults>(
+      0xc189361aa8d3ec0aull, 6, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::addChannelLink(AddChannelLinkContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "addChannelLink",
+      0xc189361aa8d3ec0aull, 6);
+}
+::capnp::Request< ::ModeliBackend::RemoveChannelLinkParams,  ::ModeliBackend::RemoveChannelLinkResults>
+ModeliBackend::Client::removeChannelLinkRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::RemoveChannelLinkParams,  ::ModeliBackend::RemoveChannelLinkResults>(
+      0xc189361aa8d3ec0aull, 7, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::removeChannelLink(RemoveChannelLinkContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "removeChannelLink",
+      0xc189361aa8d3ec0aull, 7);
+}
+::capnp::Request< ::ModeliBackend::SetValuesParams,  ::ModeliBackend::SetValuesResults>
+ModeliBackend::Client::setValuesRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::SetValuesParams,  ::ModeliBackend::SetValuesResults>(
+      0xc189361aa8d3ec0aull, 8, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::setValues(SetValuesContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "setValues",
+      0xc189361aa8d3ec0aull, 8);
+}
+::capnp::Request< ::ModeliBackend::RegisterFrontendParams,  ::ModeliBackend::RegisterFrontendResults>
+ModeliBackend::Client::registerFrontendRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliBackend::RegisterFrontendParams,  ::ModeliBackend::RegisterFrontendResults>(
+      0xc189361aa8d3ec0aull, 9, sizeHint);
+}
+::kj::Promise<void> ModeliBackend::Server::registerFrontend(RegisterFrontendContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliBackend", "registerFrontend",
+      0xc189361aa8d3ec0aull, 9);
+}
+::kj::Promise<void> ModeliBackend::Server::dispatchCall(
+    uint64_t interfaceId, uint16_t methodId,
+    ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
+  switch (interfaceId) {
+    case 0xc189361aa8d3ec0aull:
+      return dispatchCallInternal(methodId, context);
+    default:
+      return internalUnimplemented("ModeliRpc.capnp:ModeliBackend", interfaceId);
+  }
+}
+::kj::Promise<void> ModeliBackend::Server::dispatchCallInternal(
+    uint16_t methodId,
+    ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
+  switch (methodId) {
+    case 0:
+      return play(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::PlayParams,  ::ModeliBackend::PlayResults>(context));
+    case 1:
+      return playFast(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::PlayFastParams,  ::ModeliBackend::PlayFastResults>(context));
+    case 2:
+      return pause(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::PauseParams,  ::ModeliBackend::PauseResults>(context));
+    case 3:
+      return stop(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::StopParams,  ::ModeliBackend::StopResults>(context));
+    case 4:
+      return addFmu(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::AddFmuParams,  ::ModeliBackend::AddFmuResults>(context));
+    case 5:
+      return removeFmu(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::RemoveFmuParams,  ::ModeliBackend::RemoveFmuResults>(context));
+    case 6:
+      return addChannelLink(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::AddChannelLinkParams,  ::ModeliBackend::AddChannelLinkResults>(context));
+    case 7:
+      return removeChannelLink(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::RemoveChannelLinkParams,  ::ModeliBackend::RemoveChannelLinkResults>(context));
+    case 8:
+      return setValues(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::SetValuesParams,  ::ModeliBackend::SetValuesResults>(context));
+    case 9:
+      return registerFrontend(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliBackend::RegisterFrontendParams,  ::ModeliBackend::RegisterFrontendResults>(context));
+    default:
+      (void)context;
+      return ::capnp::Capability::Server::internalUnimplemented(
+          "ModeliRpc.capnp:ModeliBackend",
+          0xc189361aa8d3ec0aull, methodId);
+  }
+}
+#endif  // !CAPNP_LITE
+
+// ModeliBackend
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::ChannelLink
+constexpr uint16_t ModeliBackend::ChannelLink::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::ChannelLink::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::ChannelLink::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::ChannelLink::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::PlayParams
+constexpr uint16_t ModeliBackend::PlayParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::PlayParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::PlayParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::PlayResults
+constexpr uint16_t ModeliBackend::PlayResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::PlayResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::PlayResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::PlayFastParams
+constexpr uint16_t ModeliBackend::PlayFastParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::PlayFastParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::PlayFastParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayFastParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::PlayFastResults
+constexpr uint16_t ModeliBackend::PlayFastResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::PlayFastResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::PlayFastResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::PlayFastResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::PauseParams
+constexpr uint16_t ModeliBackend::PauseParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::PauseParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::PauseParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::PauseParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::PauseResults
+constexpr uint16_t ModeliBackend::PauseResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::PauseResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::PauseResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::PauseResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::StopParams
+constexpr uint16_t ModeliBackend::StopParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::StopParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::StopParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::StopParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::StopResults
+constexpr uint16_t ModeliBackend::StopResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::StopResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::StopResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::StopResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::AddFmuParams
+constexpr uint16_t ModeliBackend::AddFmuParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::AddFmuParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::AddFmuParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::AddFmuParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::AddFmuResults
+constexpr uint16_t ModeliBackend::AddFmuResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::AddFmuResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::AddFmuResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::AddFmuResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::RemoveFmuParams
+constexpr uint16_t ModeliBackend::RemoveFmuParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::RemoveFmuParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::RemoveFmuParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveFmuParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::RemoveFmuResults
+constexpr uint16_t ModeliBackend::RemoveFmuResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::RemoveFmuResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::RemoveFmuResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveFmuResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::AddChannelLinkParams
+constexpr uint16_t ModeliBackend::AddChannelLinkParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::AddChannelLinkParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::AddChannelLinkParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::AddChannelLinkParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::AddChannelLinkResults
+constexpr uint16_t ModeliBackend::AddChannelLinkResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::AddChannelLinkResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::AddChannelLinkResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::AddChannelLinkResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::RemoveChannelLinkParams
+constexpr uint16_t ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveChannelLinkParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::RemoveChannelLinkResults
+constexpr uint16_t ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::RemoveChannelLinkResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::SetValuesParams
+constexpr uint16_t ModeliBackend::SetValuesParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::SetValuesParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::SetValuesParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::SetValuesParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::SetValuesResults
+constexpr uint16_t ModeliBackend::SetValuesResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::SetValuesResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::SetValuesResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::SetValuesResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::RegisterFrontendParams
+constexpr uint16_t ModeliBackend::RegisterFrontendParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::RegisterFrontendParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::RegisterFrontendParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::RegisterFrontendParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliBackend::RegisterFrontendResults
+constexpr uint16_t ModeliBackend::RegisterFrontendResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliBackend::RegisterFrontendResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliBackend::RegisterFrontendResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliBackend::RegisterFrontendResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+#if !CAPNP_LITE
+::capnp::Request< ::ModeliFrontend::NewValuesParams,  ::ModeliFrontend::NewValuesResults>
+ModeliFrontend::Client::newValuesRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliFrontend::NewValuesParams,  ::ModeliFrontend::NewValuesResults>(
+      0xcc4550916ea17af4ull, 0, sizeHint);
+}
+::kj::Promise<void> ModeliFrontend::Server::newValues(NewValuesContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliFrontend", "newValues",
+      0xcc4550916ea17af4ull, 0);
+}
+::capnp::Request< ::ModeliFrontend::LogParams,  ::ModeliFrontend::LogResults>
+ModeliFrontend::Client::logRequest(::kj::Maybe< ::capnp::MessageSize> sizeHint) {
+  return newCall< ::ModeliFrontend::LogParams,  ::ModeliFrontend::LogResults>(
+      0xcc4550916ea17af4ull, 1, sizeHint);
+}
+::kj::Promise<void> ModeliFrontend::Server::log(LogContext) {
+  return ::capnp::Capability::Server::internalUnimplemented(
+      "ModeliRpc.capnp:ModeliFrontend", "log",
+      0xcc4550916ea17af4ull, 1);
+}
+::kj::Promise<void> ModeliFrontend::Server::dispatchCall(
+    uint64_t interfaceId, uint16_t methodId,
+    ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
+  switch (interfaceId) {
+    case 0xcc4550916ea17af4ull:
+      return dispatchCallInternal(methodId, context);
+    default:
+      return internalUnimplemented("ModeliRpc.capnp:ModeliFrontend", interfaceId);
+  }
+}
+::kj::Promise<void> ModeliFrontend::Server::dispatchCallInternal(
+    uint16_t methodId,
+    ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context) {
+  switch (methodId) {
+    case 0:
+      return newValues(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliFrontend::NewValuesParams,  ::ModeliFrontend::NewValuesResults>(context));
+    case 1:
+      return log(::capnp::Capability::Server::internalGetTypedContext<
+           ::ModeliFrontend::LogParams,  ::ModeliFrontend::LogResults>(context));
+    default:
+      (void)context;
+      return ::capnp::Capability::Server::internalUnimplemented(
+          "ModeliRpc.capnp:ModeliFrontend",
+          0xcc4550916ea17af4ull, methodId);
+  }
+}
+#endif  // !CAPNP_LITE
+
+// ModeliFrontend
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliFrontend::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliFrontend::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliFrontend::NewValuesParams
+constexpr uint16_t ModeliFrontend::NewValuesParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliFrontend::NewValuesParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliFrontend::NewValuesParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliFrontend::NewValuesParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliFrontend::NewValuesResults
+constexpr uint16_t ModeliFrontend::NewValuesResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliFrontend::NewValuesResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliFrontend::NewValuesResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliFrontend::NewValuesResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliFrontend::LogParams
+constexpr uint16_t ModeliFrontend::LogParams::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliFrontend::LogParams::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliFrontend::LogParams::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliFrontend::LogParams::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// ModeliFrontend::LogResults
+constexpr uint16_t ModeliFrontend::LogResults::_capnpPrivate::dataWordSize;
+constexpr uint16_t ModeliFrontend::LogResults::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind ModeliFrontend::LogResults::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* ModeliFrontend::LogResults::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+// Values
+constexpr uint16_t Values::_capnpPrivate::dataWordSize;
+constexpr uint16_t Values::_capnpPrivate::pointerCount;
+#if !CAPNP_LITE
+constexpr ::capnp::Kind Values::_capnpPrivate::kind;
+constexpr ::capnp::_::RawSchema const* Values::_capnpPrivate::schema;
+#endif  // !CAPNP_LITE
+
+
+
diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h
new file mode 100644
index 0000000000000000000000000000000000000000..5342c7c135d8291f3eacc02e343db77e8c20ceb4
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/ModeliRpc.capnp.h
@@ -0,0 +1,3827 @@
+// Generated by Cap'n Proto compiler, DO NOT EDIT
+// source: ModeliRpc.capnp
+
+#ifndef CAPNP_INCLUDED_b51166b0ce5aa3a5_
+#define CAPNP_INCLUDED_b51166b0ce5aa3a5_
+
+#include <capnp/generated-header-support.h>
+#if !CAPNP_LITE
+#include <capnp/capability.h>
+#endif  // !CAPNP_LITE
+
+#if CAPNP_VERSION != 6001
+#error "Version mismatch between generated code and library headers.  You must use the same version of the Cap'n Proto compiler and library."
+#endif
+
+
+namespace capnp {
+namespace schemas {
+
+CAPNP_DECLARE_SCHEMA(c189361aa8d3ec0a);
+CAPNP_DECLARE_SCHEMA(ae08c157b2e82b54);
+CAPNP_DECLARE_SCHEMA(eb619952bc2b3805);
+CAPNP_DECLARE_SCHEMA(935c832cec2e072f);
+CAPNP_DECLARE_SCHEMA(92d58775d6d1f6fe);
+CAPNP_DECLARE_SCHEMA(dce78f15ea9b3d58);
+CAPNP_DECLARE_SCHEMA(9263e3a03203043e);
+CAPNP_DECLARE_SCHEMA(8e7b69d6afc3b55d);
+CAPNP_DECLARE_SCHEMA(832e6f38e797e7d6);
+CAPNP_DECLARE_SCHEMA(c9b4c21577c8474e);
+CAPNP_DECLARE_SCHEMA(ce3eb72a43d53a18);
+CAPNP_DECLARE_SCHEMA(94704beee55dbeff);
+CAPNP_DECLARE_SCHEMA(a352b1a9da6ecc9f);
+CAPNP_DECLARE_SCHEMA(86caaf1b5674d5db);
+CAPNP_DECLARE_SCHEMA(ff24bad7e33a7e67);
+CAPNP_DECLARE_SCHEMA(8ad4ffb22b98c716);
+CAPNP_DECLARE_SCHEMA(879edd7f3e0e6f0b);
+CAPNP_DECLARE_SCHEMA(98af1a6dfbd686ca);
+CAPNP_DECLARE_SCHEMA(80e19e353495e92d);
+CAPNP_DECLARE_SCHEMA(e9235735334ee23c);
+CAPNP_DECLARE_SCHEMA(c32f5e5599baa4a2);
+CAPNP_DECLARE_SCHEMA(b087cff7ea9b99ea);
+CAPNP_DECLARE_SCHEMA(cc4550916ea17af4);
+CAPNP_DECLARE_SCHEMA(89822c8798268361);
+CAPNP_DECLARE_SCHEMA(dec8cbe4e9ea46c4);
+CAPNP_DECLARE_SCHEMA(a227f00e10db6883);
+CAPNP_DECLARE_SCHEMA(ec8c961c6ddf7a5c);
+CAPNP_DECLARE_SCHEMA(a43101940a8689a5);
+
+}  // namespace schemas
+}  // namespace capnp
+
+
+struct ModeliBackend {
+  ModeliBackend() = delete;
+
+#if !CAPNP_LITE
+  class Client;
+  class Server;
+#endif  // !CAPNP_LITE
+
+  struct ChannelLink;
+  struct PlayParams;
+  struct PlayResults;
+  struct PlayFastParams;
+  struct PlayFastResults;
+  struct PauseParams;
+  struct PauseResults;
+  struct StopParams;
+  struct StopResults;
+  struct AddFmuParams;
+  struct AddFmuResults;
+  struct RemoveFmuParams;
+  struct RemoveFmuResults;
+  struct AddChannelLinkParams;
+  struct AddChannelLinkResults;
+  struct RemoveChannelLinkParams;
+  struct RemoveChannelLinkResults;
+  struct SetValuesParams;
+  struct SetValuesResults;
+  struct RegisterFrontendParams;
+  struct RegisterFrontendResults;
+
+  #if !CAPNP_LITE
+  struct _capnpPrivate {
+    CAPNP_DECLARE_INTERFACE_HEADER(c189361aa8d3ec0a)
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+  };
+  #endif  // !CAPNP_LITE
+};
+
+struct ModeliBackend::ChannelLink {
+  ChannelLink() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(ae08c157b2e82b54, 3, 2)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::PlayParams {
+  PlayParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(eb619952bc2b3805, 0, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::PlayResults {
+  PlayResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(935c832cec2e072f, 1, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::PlayFastParams {
+  PlayFastParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(92d58775d6d1f6fe, 0, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::PlayFastResults {
+  PlayFastResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(dce78f15ea9b3d58, 1, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::PauseParams {
+  PauseParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(9263e3a03203043e, 0, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::PauseResults {
+  PauseResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(8e7b69d6afc3b55d, 0, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::StopParams {
+  StopParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(832e6f38e797e7d6, 0, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::StopResults {
+  StopResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(c9b4c21577c8474e, 1, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::AddFmuParams {
+  AddFmuParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(ce3eb72a43d53a18, 0, 2)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::AddFmuResults {
+  AddFmuResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(94704beee55dbeff, 1, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::RemoveFmuParams {
+  RemoveFmuParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(a352b1a9da6ecc9f, 0, 1)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::RemoveFmuResults {
+  RemoveFmuResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(86caaf1b5674d5db, 1, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::AddChannelLinkParams {
+  AddChannelLinkParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(ff24bad7e33a7e67, 0, 1)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::AddChannelLinkResults {
+  AddChannelLinkResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(8ad4ffb22b98c716, 1, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::RemoveChannelLinkParams {
+  RemoveChannelLinkParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(879edd7f3e0e6f0b, 0, 1)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::RemoveChannelLinkResults {
+  RemoveChannelLinkResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(98af1a6dfbd686ca, 1, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::SetValuesParams {
+  SetValuesParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(80e19e353495e92d, 0, 1)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::SetValuesResults {
+  SetValuesResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(e9235735334ee23c, 1, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::RegisterFrontendParams {
+  RegisterFrontendParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(c32f5e5599baa4a2, 0, 1)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliBackend::RegisterFrontendResults {
+  RegisterFrontendResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(b087cff7ea9b99ea, 0, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliFrontend {
+  ModeliFrontend() = delete;
+
+#if !CAPNP_LITE
+  class Client;
+  class Server;
+#endif  // !CAPNP_LITE
+
+  struct NewValuesParams;
+  struct NewValuesResults;
+  struct LogParams;
+  struct LogResults;
+
+  #if !CAPNP_LITE
+  struct _capnpPrivate {
+    CAPNP_DECLARE_INTERFACE_HEADER(cc4550916ea17af4)
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+  };
+  #endif  // !CAPNP_LITE
+};
+
+struct ModeliFrontend::NewValuesParams {
+  NewValuesParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(89822c8798268361, 1, 1)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliFrontend::NewValuesResults {
+  NewValuesResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(dec8cbe4e9ea46c4, 0, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliFrontend::LogParams {
+  LogParams() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(a227f00e10db6883, 1, 2)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct ModeliFrontend::LogResults {
+  LogResults() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(ec8c961c6ddf7a5c, 0, 0)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+struct Values {
+  Values() = delete;
+
+  class Reader;
+  class Builder;
+  class Pipeline;
+
+  struct _capnpPrivate {
+    CAPNP_DECLARE_STRUCT_HEADER(a43101940a8689a5, 0, 9)
+    #if !CAPNP_LITE
+    static constexpr ::capnp::_::RawBrandedSchema const* brand() { return &schema->defaultBrand; }
+    #endif  // !CAPNP_LITE
+  };
+};
+
+// =======================================================================================
+
+#if !CAPNP_LITE
+class ModeliBackend::Client
+    : public virtual ::capnp::Capability::Client {
+public:
+  typedef ModeliBackend Calls;
+  typedef ModeliBackend Reads;
+
+  Client(decltype(nullptr));
+  explicit Client(::kj::Own< ::capnp::ClientHook>&& hook);
+  template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Server*>()>>
+  Client(::kj::Own<_t>&& server);
+  template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Client*>()>>
+  Client(::kj::Promise<_t>&& promise);
+  Client(::kj::Exception&& exception);
+  Client(Client&) = default;
+  Client(Client&&) = default;
+  Client& operator=(Client& other);
+  Client& operator=(Client&& other);
+
+  ::capnp::Request< ::ModeliBackend::PlayParams,  ::ModeliBackend::PlayResults> playRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::PlayFastParams,  ::ModeliBackend::PlayFastResults> playFastRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::PauseParams,  ::ModeliBackend::PauseResults> pauseRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::StopParams,  ::ModeliBackend::StopResults> stopRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::AddFmuParams,  ::ModeliBackend::AddFmuResults> addFmuRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::RemoveFmuParams,  ::ModeliBackend::RemoveFmuResults> removeFmuRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::AddChannelLinkParams,  ::ModeliBackend::AddChannelLinkResults> addChannelLinkRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::RemoveChannelLinkParams,  ::ModeliBackend::RemoveChannelLinkResults> removeChannelLinkRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::SetValuesParams,  ::ModeliBackend::SetValuesResults> setValuesRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliBackend::RegisterFrontendParams,  ::ModeliBackend::RegisterFrontendResults> registerFrontendRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+
+protected:
+  Client() = default;
+};
+
+class ModeliBackend::Server
+    : public virtual ::capnp::Capability::Server {
+public:
+  typedef ModeliBackend Serves;
+
+  ::kj::Promise<void> dispatchCall(uint64_t interfaceId, uint16_t methodId,
+      ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context)
+      override;
+
+protected:
+  typedef  ::ModeliBackend::PlayParams PlayParams;
+  typedef  ::ModeliBackend::PlayResults PlayResults;
+  typedef ::capnp::CallContext<PlayParams, PlayResults> PlayContext;
+  virtual ::kj::Promise<void> play(PlayContext context);
+  typedef  ::ModeliBackend::PlayFastParams PlayFastParams;
+  typedef  ::ModeliBackend::PlayFastResults PlayFastResults;
+  typedef ::capnp::CallContext<PlayFastParams, PlayFastResults> PlayFastContext;
+  virtual ::kj::Promise<void> playFast(PlayFastContext context);
+  typedef  ::ModeliBackend::PauseParams PauseParams;
+  typedef  ::ModeliBackend::PauseResults PauseResults;
+  typedef ::capnp::CallContext<PauseParams, PauseResults> PauseContext;
+  virtual ::kj::Promise<void> pause(PauseContext context);
+  typedef  ::ModeliBackend::StopParams StopParams;
+  typedef  ::ModeliBackend::StopResults StopResults;
+  typedef ::capnp::CallContext<StopParams, StopResults> StopContext;
+  virtual ::kj::Promise<void> stop(StopContext context);
+  typedef  ::ModeliBackend::AddFmuParams AddFmuParams;
+  typedef  ::ModeliBackend::AddFmuResults AddFmuResults;
+  typedef ::capnp::CallContext<AddFmuParams, AddFmuResults> AddFmuContext;
+  virtual ::kj::Promise<void> addFmu(AddFmuContext context);
+  typedef  ::ModeliBackend::RemoveFmuParams RemoveFmuParams;
+  typedef  ::ModeliBackend::RemoveFmuResults RemoveFmuResults;
+  typedef ::capnp::CallContext<RemoveFmuParams, RemoveFmuResults> RemoveFmuContext;
+  virtual ::kj::Promise<void> removeFmu(RemoveFmuContext context);
+  typedef  ::ModeliBackend::AddChannelLinkParams AddChannelLinkParams;
+  typedef  ::ModeliBackend::AddChannelLinkResults AddChannelLinkResults;
+  typedef ::capnp::CallContext<AddChannelLinkParams, AddChannelLinkResults> AddChannelLinkContext;
+  virtual ::kj::Promise<void> addChannelLink(AddChannelLinkContext context);
+  typedef  ::ModeliBackend::RemoveChannelLinkParams RemoveChannelLinkParams;
+  typedef  ::ModeliBackend::RemoveChannelLinkResults RemoveChannelLinkResults;
+  typedef ::capnp::CallContext<RemoveChannelLinkParams, RemoveChannelLinkResults> RemoveChannelLinkContext;
+  virtual ::kj::Promise<void> removeChannelLink(RemoveChannelLinkContext context);
+  typedef  ::ModeliBackend::SetValuesParams SetValuesParams;
+  typedef  ::ModeliBackend::SetValuesResults SetValuesResults;
+  typedef ::capnp::CallContext<SetValuesParams, SetValuesResults> SetValuesContext;
+  virtual ::kj::Promise<void> setValues(SetValuesContext context);
+  typedef  ::ModeliBackend::RegisterFrontendParams RegisterFrontendParams;
+  typedef  ::ModeliBackend::RegisterFrontendResults RegisterFrontendResults;
+  typedef ::capnp::CallContext<RegisterFrontendParams, RegisterFrontendResults> RegisterFrontendContext;
+  virtual ::kj::Promise<void> registerFrontend(RegisterFrontendContext context);
+
+  inline  ::ModeliBackend::Client thisCap() {
+    return ::capnp::Capability::Server::thisCap()
+        .template castAs< ::ModeliBackend>();
+  }
+
+  ::kj::Promise<void> dispatchCallInternal(uint16_t methodId,
+      ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context);
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::ChannelLink::Reader {
+public:
+  typedef ChannelLink Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasMasterInstanceName() const;
+  inline  ::capnp::Text::Reader getMasterInstanceName() const;
+
+  inline bool hasSlaveInstanceName() const;
+  inline  ::capnp::Text::Reader getSlaveInstanceName() const;
+
+  inline  ::uint32_t getMasterValueRef() const;
+
+  inline  ::uint32_t getSlaveValueRef() const;
+
+  inline double getFactor() const;
+
+  inline double getOffset() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::ChannelLink::Builder {
+public:
+  typedef ChannelLink Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasMasterInstanceName();
+  inline  ::capnp::Text::Builder getMasterInstanceName();
+  inline void setMasterInstanceName( ::capnp::Text::Reader value);
+  inline  ::capnp::Text::Builder initMasterInstanceName(unsigned int size);
+  inline void adoptMasterInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
+  inline ::capnp::Orphan< ::capnp::Text> disownMasterInstanceName();
+
+  inline bool hasSlaveInstanceName();
+  inline  ::capnp::Text::Builder getSlaveInstanceName();
+  inline void setSlaveInstanceName( ::capnp::Text::Reader value);
+  inline  ::capnp::Text::Builder initSlaveInstanceName(unsigned int size);
+  inline void adoptSlaveInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
+  inline ::capnp::Orphan< ::capnp::Text> disownSlaveInstanceName();
+
+  inline  ::uint32_t getMasterValueRef();
+  inline void setMasterValueRef( ::uint32_t value);
+
+  inline  ::uint32_t getSlaveValueRef();
+  inline void setSlaveValueRef( ::uint32_t value);
+
+  inline double getFactor();
+  inline void setFactor(double value);
+
+  inline double getOffset();
+  inline void setOffset(double value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::ChannelLink::Pipeline {
+public:
+  typedef ChannelLink Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::PlayParams::Reader {
+public:
+  typedef PlayParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::PlayParams::Builder {
+public:
+  typedef PlayParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::PlayParams::Pipeline {
+public:
+  typedef PlayParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::PlayResults::Reader {
+public:
+  typedef PlayResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline  ::int16_t getResult() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::PlayResults::Builder {
+public:
+  typedef PlayResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline  ::int16_t getResult();
+  inline void setResult( ::int16_t value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::PlayResults::Pipeline {
+public:
+  typedef PlayResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::PlayFastParams::Reader {
+public:
+  typedef PlayFastParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::PlayFastParams::Builder {
+public:
+  typedef PlayFastParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::PlayFastParams::Pipeline {
+public:
+  typedef PlayFastParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::PlayFastResults::Reader {
+public:
+  typedef PlayFastResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline  ::int16_t getResult() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::PlayFastResults::Builder {
+public:
+  typedef PlayFastResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline  ::int16_t getResult();
+  inline void setResult( ::int16_t value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::PlayFastResults::Pipeline {
+public:
+  typedef PlayFastResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::PauseParams::Reader {
+public:
+  typedef PauseParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::PauseParams::Builder {
+public:
+  typedef PauseParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::PauseParams::Pipeline {
+public:
+  typedef PauseParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::PauseResults::Reader {
+public:
+  typedef PauseResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::PauseResults::Builder {
+public:
+  typedef PauseResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::PauseResults::Pipeline {
+public:
+  typedef PauseResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::StopParams::Reader {
+public:
+  typedef StopParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::StopParams::Builder {
+public:
+  typedef StopParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::StopParams::Pipeline {
+public:
+  typedef StopParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::StopResults::Reader {
+public:
+  typedef StopResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline  ::int16_t getResult() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::StopResults::Builder {
+public:
+  typedef StopResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline  ::int16_t getResult();
+  inline void setResult( ::int16_t value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::StopResults::Pipeline {
+public:
+  typedef StopResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::AddFmuParams::Reader {
+public:
+  typedef AddFmuParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasInstanceName() const;
+  inline  ::capnp::Text::Reader getInstanceName() const;
+
+  inline bool hasFmuFile() const;
+  inline  ::capnp::Data::Reader getFmuFile() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::AddFmuParams::Builder {
+public:
+  typedef AddFmuParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasInstanceName();
+  inline  ::capnp::Text::Builder getInstanceName();
+  inline void setInstanceName( ::capnp::Text::Reader value);
+  inline  ::capnp::Text::Builder initInstanceName(unsigned int size);
+  inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
+  inline ::capnp::Orphan< ::capnp::Text> disownInstanceName();
+
+  inline bool hasFmuFile();
+  inline  ::capnp::Data::Builder getFmuFile();
+  inline void setFmuFile( ::capnp::Data::Reader value);
+  inline  ::capnp::Data::Builder initFmuFile(unsigned int size);
+  inline void adoptFmuFile(::capnp::Orphan< ::capnp::Data>&& value);
+  inline ::capnp::Orphan< ::capnp::Data> disownFmuFile();
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::AddFmuParams::Pipeline {
+public:
+  typedef AddFmuParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::AddFmuResults::Reader {
+public:
+  typedef AddFmuResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool getResult() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::AddFmuResults::Builder {
+public:
+  typedef AddFmuResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool getResult();
+  inline void setResult(bool value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::AddFmuResults::Pipeline {
+public:
+  typedef AddFmuResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::RemoveFmuParams::Reader {
+public:
+  typedef RemoveFmuParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasInstanceName() const;
+  inline  ::capnp::Text::Reader getInstanceName() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::RemoveFmuParams::Builder {
+public:
+  typedef RemoveFmuParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasInstanceName();
+  inline  ::capnp::Text::Builder getInstanceName();
+  inline void setInstanceName( ::capnp::Text::Reader value);
+  inline  ::capnp::Text::Builder initInstanceName(unsigned int size);
+  inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
+  inline ::capnp::Orphan< ::capnp::Text> disownInstanceName();
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::RemoveFmuParams::Pipeline {
+public:
+  typedef RemoveFmuParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::RemoveFmuResults::Reader {
+public:
+  typedef RemoveFmuResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool getResult() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::RemoveFmuResults::Builder {
+public:
+  typedef RemoveFmuResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool getResult();
+  inline void setResult(bool value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::RemoveFmuResults::Pipeline {
+public:
+  typedef RemoveFmuResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::AddChannelLinkParams::Reader {
+public:
+  typedef AddChannelLinkParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasChannelLink() const;
+  inline  ::ModeliBackend::ChannelLink::Reader getChannelLink() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::AddChannelLinkParams::Builder {
+public:
+  typedef AddChannelLinkParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasChannelLink();
+  inline  ::ModeliBackend::ChannelLink::Builder getChannelLink();
+  inline void setChannelLink( ::ModeliBackend::ChannelLink::Reader value);
+  inline  ::ModeliBackend::ChannelLink::Builder initChannelLink();
+  inline void adoptChannelLink(::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value);
+  inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> disownChannelLink();
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::AddChannelLinkParams::Pipeline {
+public:
+  typedef AddChannelLinkParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+  inline  ::ModeliBackend::ChannelLink::Pipeline getChannelLink();
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::AddChannelLinkResults::Reader {
+public:
+  typedef AddChannelLinkResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool getResult() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::AddChannelLinkResults::Builder {
+public:
+  typedef AddChannelLinkResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool getResult();
+  inline void setResult(bool value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::AddChannelLinkResults::Pipeline {
+public:
+  typedef AddChannelLinkResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::RemoveChannelLinkParams::Reader {
+public:
+  typedef RemoveChannelLinkParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasChannelLink() const;
+  inline  ::ModeliBackend::ChannelLink::Reader getChannelLink() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::RemoveChannelLinkParams::Builder {
+public:
+  typedef RemoveChannelLinkParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasChannelLink();
+  inline  ::ModeliBackend::ChannelLink::Builder getChannelLink();
+  inline void setChannelLink( ::ModeliBackend::ChannelLink::Reader value);
+  inline  ::ModeliBackend::ChannelLink::Builder initChannelLink();
+  inline void adoptChannelLink(::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value);
+  inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> disownChannelLink();
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::RemoveChannelLinkParams::Pipeline {
+public:
+  typedef RemoveChannelLinkParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+  inline  ::ModeliBackend::ChannelLink::Pipeline getChannelLink();
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::RemoveChannelLinkResults::Reader {
+public:
+  typedef RemoveChannelLinkResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool getResult() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::RemoveChannelLinkResults::Builder {
+public:
+  typedef RemoveChannelLinkResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool getResult();
+  inline void setResult(bool value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::RemoveChannelLinkResults::Pipeline {
+public:
+  typedef RemoveChannelLinkResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::SetValuesParams::Reader {
+public:
+  typedef SetValuesParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasValues() const;
+  inline  ::Values::Reader getValues() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::SetValuesParams::Builder {
+public:
+  typedef SetValuesParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasValues();
+  inline  ::Values::Builder getValues();
+  inline void setValues( ::Values::Reader value);
+  inline  ::Values::Builder initValues();
+  inline void adoptValues(::capnp::Orphan< ::Values>&& value);
+  inline ::capnp::Orphan< ::Values> disownValues();
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::SetValuesParams::Pipeline {
+public:
+  typedef SetValuesParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+  inline  ::Values::Pipeline getValues();
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::SetValuesResults::Reader {
+public:
+  typedef SetValuesResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline  ::int16_t getResult() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::SetValuesResults::Builder {
+public:
+  typedef SetValuesResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline  ::int16_t getResult();
+  inline void setResult( ::int16_t value);
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::SetValuesResults::Pipeline {
+public:
+  typedef SetValuesResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::RegisterFrontendParams::Reader {
+public:
+  typedef RegisterFrontendParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasFrontend() const;
+#if !CAPNP_LITE
+  inline  ::ModeliFrontend::Client getFrontend() const;
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::RegisterFrontendParams::Builder {
+public:
+  typedef RegisterFrontendParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasFrontend();
+#if !CAPNP_LITE
+  inline  ::ModeliFrontend::Client getFrontend();
+  inline void setFrontend( ::ModeliFrontend::Client&& value);
+  inline void setFrontend( ::ModeliFrontend::Client& value);
+  inline void adoptFrontend(::capnp::Orphan< ::ModeliFrontend>&& value);
+  inline ::capnp::Orphan< ::ModeliFrontend> disownFrontend();
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::RegisterFrontendParams::Pipeline {
+public:
+  typedef RegisterFrontendParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+  inline  ::ModeliFrontend::Client getFrontend();
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliBackend::RegisterFrontendResults::Reader {
+public:
+  typedef RegisterFrontendResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliBackend::RegisterFrontendResults::Builder {
+public:
+  typedef RegisterFrontendResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliBackend::RegisterFrontendResults::Pipeline {
+public:
+  typedef RegisterFrontendResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+#if !CAPNP_LITE
+class ModeliFrontend::Client
+    : public virtual ::capnp::Capability::Client {
+public:
+  typedef ModeliFrontend Calls;
+  typedef ModeliFrontend Reads;
+
+  Client(decltype(nullptr));
+  explicit Client(::kj::Own< ::capnp::ClientHook>&& hook);
+  template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Server*>()>>
+  Client(::kj::Own<_t>&& server);
+  template <typename _t, typename = ::kj::EnableIf< ::kj::canConvert<_t*, Client*>()>>
+  Client(::kj::Promise<_t>&& promise);
+  Client(::kj::Exception&& exception);
+  Client(Client&) = default;
+  Client(Client&&) = default;
+  Client& operator=(Client& other);
+  Client& operator=(Client&& other);
+
+  ::capnp::Request< ::ModeliFrontend::NewValuesParams,  ::ModeliFrontend::NewValuesResults> newValuesRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+  ::capnp::Request< ::ModeliFrontend::LogParams,  ::ModeliFrontend::LogResults> logRequest(
+      ::kj::Maybe< ::capnp::MessageSize> sizeHint = nullptr);
+
+protected:
+  Client() = default;
+};
+
+class ModeliFrontend::Server
+    : public virtual ::capnp::Capability::Server {
+public:
+  typedef ModeliFrontend Serves;
+
+  ::kj::Promise<void> dispatchCall(uint64_t interfaceId, uint16_t methodId,
+      ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context)
+      override;
+
+protected:
+  typedef  ::ModeliFrontend::NewValuesParams NewValuesParams;
+  typedef  ::ModeliFrontend::NewValuesResults NewValuesResults;
+  typedef ::capnp::CallContext<NewValuesParams, NewValuesResults> NewValuesContext;
+  virtual ::kj::Promise<void> newValues(NewValuesContext context);
+  typedef  ::ModeliFrontend::LogParams LogParams;
+  typedef  ::ModeliFrontend::LogResults LogResults;
+  typedef ::capnp::CallContext<LogParams, LogResults> LogContext;
+  virtual ::kj::Promise<void> log(LogContext context);
+
+  inline  ::ModeliFrontend::Client thisCap() {
+    return ::capnp::Capability::Server::thisCap()
+        .template castAs< ::ModeliFrontend>();
+  }
+
+  ::kj::Promise<void> dispatchCallInternal(uint16_t methodId,
+      ::capnp::CallContext< ::capnp::AnyPointer, ::capnp::AnyPointer> context);
+};
+#endif  // !CAPNP_LITE
+
+class ModeliFrontend::NewValuesParams::Reader {
+public:
+  typedef NewValuesParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline double getTimestamp() const;
+
+  inline bool hasValues() const;
+  inline  ::Values::Reader getValues() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliFrontend::NewValuesParams::Builder {
+public:
+  typedef NewValuesParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline double getTimestamp();
+  inline void setTimestamp(double value);
+
+  inline bool hasValues();
+  inline  ::Values::Builder getValues();
+  inline void setValues( ::Values::Reader value);
+  inline  ::Values::Builder initValues();
+  inline void adoptValues(::capnp::Orphan< ::Values>&& value);
+  inline ::capnp::Orphan< ::Values> disownValues();
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliFrontend::NewValuesParams::Pipeline {
+public:
+  typedef NewValuesParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+  inline  ::Values::Pipeline getValues();
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliFrontend::NewValuesResults::Reader {
+public:
+  typedef NewValuesResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliFrontend::NewValuesResults::Builder {
+public:
+  typedef NewValuesResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliFrontend::NewValuesResults::Pipeline {
+public:
+  typedef NewValuesResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliFrontend::LogParams::Reader {
+public:
+  typedef LogParams Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasInstanceName() const;
+  inline  ::capnp::Text::Reader getInstanceName() const;
+
+  inline  ::int16_t getStatus() const;
+
+  inline bool hasMessage() const;
+  inline  ::capnp::Text::Reader getMessage() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliFrontend::LogParams::Builder {
+public:
+  typedef LogParams Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasInstanceName();
+  inline  ::capnp::Text::Builder getInstanceName();
+  inline void setInstanceName( ::capnp::Text::Reader value);
+  inline  ::capnp::Text::Builder initInstanceName(unsigned int size);
+  inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
+  inline ::capnp::Orphan< ::capnp::Text> disownInstanceName();
+
+  inline  ::int16_t getStatus();
+  inline void setStatus( ::int16_t value);
+
+  inline bool hasMessage();
+  inline  ::capnp::Text::Builder getMessage();
+  inline void setMessage( ::capnp::Text::Reader value);
+  inline  ::capnp::Text::Builder initMessage(unsigned int size);
+  inline void adoptMessage(::capnp::Orphan< ::capnp::Text>&& value);
+  inline ::capnp::Orphan< ::capnp::Text> disownMessage();
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliFrontend::LogParams::Pipeline {
+public:
+  typedef LogParams Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class ModeliFrontend::LogResults::Reader {
+public:
+  typedef LogResults Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class ModeliFrontend::LogResults::Builder {
+public:
+  typedef LogResults Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class ModeliFrontend::LogResults::Pipeline {
+public:
+  typedef LogResults Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+class Values::Reader {
+public:
+  typedef Values Reads;
+
+  Reader() = default;
+  inline explicit Reader(::capnp::_::StructReader base): _reader(base) {}
+
+  inline ::capnp::MessageSize totalSize() const {
+    return _reader.totalSize().asPublic();
+  }
+
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const {
+    return ::capnp::_::structString(_reader, *_capnpPrivate::brand());
+  }
+#endif  // !CAPNP_LITE
+
+  inline bool hasInstanceName() const;
+  inline  ::capnp::Text::Reader getInstanceName() const;
+
+  inline bool hasIntegerValueRefs() const;
+  inline  ::capnp::List< ::uint32_t>::Reader getIntegerValueRefs() const;
+
+  inline bool hasIntegerValues() const;
+  inline  ::capnp::List< ::int32_t>::Reader getIntegerValues() const;
+
+  inline bool hasRealValueRefs() const;
+  inline  ::capnp::List< ::uint32_t>::Reader getRealValueRefs() const;
+
+  inline bool hasRealValues() const;
+  inline  ::capnp::List<double>::Reader getRealValues() const;
+
+  inline bool hasBoolValueRefs() const;
+  inline  ::capnp::List< ::uint32_t>::Reader getBoolValueRefs() const;
+
+  inline bool hasBoolValues() const;
+  inline  ::capnp::List<bool>::Reader getBoolValues() const;
+
+  inline bool hasStringValueRefs() const;
+  inline  ::capnp::List< ::uint32_t>::Reader getStringValueRefs() const;
+
+  inline bool hasStringValues() const;
+  inline  ::capnp::List< ::capnp::Text>::Reader getStringValues() const;
+
+private:
+  ::capnp::_::StructReader _reader;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::List;
+  friend class ::capnp::MessageBuilder;
+  friend class ::capnp::Orphanage;
+};
+
+class Values::Builder {
+public:
+  typedef Values Builds;
+
+  Builder() = delete;  // Deleted to discourage incorrect usage.
+                       // You can explicitly initialize to nullptr instead.
+  inline Builder(decltype(nullptr)) {}
+  inline explicit Builder(::capnp::_::StructBuilder base): _builder(base) {}
+  inline operator Reader() const { return Reader(_builder.asReader()); }
+  inline Reader asReader() const { return *this; }
+
+  inline ::capnp::MessageSize totalSize() const { return asReader().totalSize(); }
+#if !CAPNP_LITE
+  inline ::kj::StringTree toString() const { return asReader().toString(); }
+#endif  // !CAPNP_LITE
+
+  inline bool hasInstanceName();
+  inline  ::capnp::Text::Builder getInstanceName();
+  inline void setInstanceName( ::capnp::Text::Reader value);
+  inline  ::capnp::Text::Builder initInstanceName(unsigned int size);
+  inline void adoptInstanceName(::capnp::Orphan< ::capnp::Text>&& value);
+  inline ::capnp::Orphan< ::capnp::Text> disownInstanceName();
+
+  inline bool hasIntegerValueRefs();
+  inline  ::capnp::List< ::uint32_t>::Builder getIntegerValueRefs();
+  inline void setIntegerValueRefs( ::capnp::List< ::uint32_t>::Reader value);
+  inline void setIntegerValueRefs(::kj::ArrayPtr<const  ::uint32_t> value);
+  inline  ::capnp::List< ::uint32_t>::Builder initIntegerValueRefs(unsigned int size);
+  inline void adoptIntegerValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value);
+  inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownIntegerValueRefs();
+
+  inline bool hasIntegerValues();
+  inline  ::capnp::List< ::int32_t>::Builder getIntegerValues();
+  inline void setIntegerValues( ::capnp::List< ::int32_t>::Reader value);
+  inline void setIntegerValues(::kj::ArrayPtr<const  ::int32_t> value);
+  inline  ::capnp::List< ::int32_t>::Builder initIntegerValues(unsigned int size);
+  inline void adoptIntegerValues(::capnp::Orphan< ::capnp::List< ::int32_t>>&& value);
+  inline ::capnp::Orphan< ::capnp::List< ::int32_t>> disownIntegerValues();
+
+  inline bool hasRealValueRefs();
+  inline  ::capnp::List< ::uint32_t>::Builder getRealValueRefs();
+  inline void setRealValueRefs( ::capnp::List< ::uint32_t>::Reader value);
+  inline void setRealValueRefs(::kj::ArrayPtr<const  ::uint32_t> value);
+  inline  ::capnp::List< ::uint32_t>::Builder initRealValueRefs(unsigned int size);
+  inline void adoptRealValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value);
+  inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownRealValueRefs();
+
+  inline bool hasRealValues();
+  inline  ::capnp::List<double>::Builder getRealValues();
+  inline void setRealValues( ::capnp::List<double>::Reader value);
+  inline void setRealValues(::kj::ArrayPtr<const double> value);
+  inline  ::capnp::List<double>::Builder initRealValues(unsigned int size);
+  inline void adoptRealValues(::capnp::Orphan< ::capnp::List<double>>&& value);
+  inline ::capnp::Orphan< ::capnp::List<double>> disownRealValues();
+
+  inline bool hasBoolValueRefs();
+  inline  ::capnp::List< ::uint32_t>::Builder getBoolValueRefs();
+  inline void setBoolValueRefs( ::capnp::List< ::uint32_t>::Reader value);
+  inline void setBoolValueRefs(::kj::ArrayPtr<const  ::uint32_t> value);
+  inline  ::capnp::List< ::uint32_t>::Builder initBoolValueRefs(unsigned int size);
+  inline void adoptBoolValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value);
+  inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownBoolValueRefs();
+
+  inline bool hasBoolValues();
+  inline  ::capnp::List<bool>::Builder getBoolValues();
+  inline void setBoolValues( ::capnp::List<bool>::Reader value);
+  inline void setBoolValues(::kj::ArrayPtr<const bool> value);
+  inline  ::capnp::List<bool>::Builder initBoolValues(unsigned int size);
+  inline void adoptBoolValues(::capnp::Orphan< ::capnp::List<bool>>&& value);
+  inline ::capnp::Orphan< ::capnp::List<bool>> disownBoolValues();
+
+  inline bool hasStringValueRefs();
+  inline  ::capnp::List< ::uint32_t>::Builder getStringValueRefs();
+  inline void setStringValueRefs( ::capnp::List< ::uint32_t>::Reader value);
+  inline void setStringValueRefs(::kj::ArrayPtr<const  ::uint32_t> value);
+  inline  ::capnp::List< ::uint32_t>::Builder initStringValueRefs(unsigned int size);
+  inline void adoptStringValueRefs(::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value);
+  inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> disownStringValueRefs();
+
+  inline bool hasStringValues();
+  inline  ::capnp::List< ::capnp::Text>::Builder getStringValues();
+  inline void setStringValues( ::capnp::List< ::capnp::Text>::Reader value);
+  inline void setStringValues(::kj::ArrayPtr<const  ::capnp::Text::Reader> value);
+  inline  ::capnp::List< ::capnp::Text>::Builder initStringValues(unsigned int size);
+  inline void adoptStringValues(::capnp::Orphan< ::capnp::List< ::capnp::Text>>&& value);
+  inline ::capnp::Orphan< ::capnp::List< ::capnp::Text>> disownStringValues();
+
+private:
+  ::capnp::_::StructBuilder _builder;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+  friend class ::capnp::Orphanage;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::_::PointerHelpers;
+};
+
+#if !CAPNP_LITE
+class Values::Pipeline {
+public:
+  typedef Values Pipelines;
+
+  inline Pipeline(decltype(nullptr)): _typeless(nullptr) {}
+  inline explicit Pipeline(::capnp::AnyPointer::Pipeline&& typeless)
+      : _typeless(kj::mv(typeless)) {}
+
+private:
+  ::capnp::AnyPointer::Pipeline _typeless;
+  friend class ::capnp::PipelineHook;
+  template <typename, ::capnp::Kind>
+  friend struct ::capnp::ToDynamic_;
+};
+#endif  // !CAPNP_LITE
+
+// =======================================================================================
+
+#if !CAPNP_LITE
+inline ModeliBackend::Client::Client(decltype(nullptr))
+    : ::capnp::Capability::Client(nullptr) {}
+inline ModeliBackend::Client::Client(
+    ::kj::Own< ::capnp::ClientHook>&& hook)
+    : ::capnp::Capability::Client(::kj::mv(hook)) {}
+template <typename _t, typename>
+inline ModeliBackend::Client::Client(::kj::Own<_t>&& server)
+    : ::capnp::Capability::Client(::kj::mv(server)) {}
+template <typename _t, typename>
+inline ModeliBackend::Client::Client(::kj::Promise<_t>&& promise)
+    : ::capnp::Capability::Client(::kj::mv(promise)) {}
+inline ModeliBackend::Client::Client(::kj::Exception&& exception)
+    : ::capnp::Capability::Client(::kj::mv(exception)) {}
+inline  ::ModeliBackend::Client& ModeliBackend::Client::operator=(Client& other) {
+  ::capnp::Capability::Client::operator=(other);
+  return *this;
+}
+inline  ::ModeliBackend::Client& ModeliBackend::Client::operator=(Client&& other) {
+  ::capnp::Capability::Client::operator=(kj::mv(other));
+  return *this;
+}
+
+#endif  // !CAPNP_LITE
+inline bool ModeliBackend::ChannelLink::Reader::hasMasterInstanceName() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::ChannelLink::Builder::hasMasterInstanceName() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::Text::Reader ModeliBackend::ChannelLink::Reader::getMasterInstanceName() const {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::getMasterInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void ModeliBackend::ChannelLink::Builder::setMasterInstanceName( ::capnp::Text::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::initMasterInstanceName(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
+}
+inline void ModeliBackend::ChannelLink::Builder::adoptMasterInstanceName(
+    ::capnp::Orphan< ::capnp::Text>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::ChannelLink::Builder::disownMasterInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline bool ModeliBackend::ChannelLink::Reader::hasSlaveInstanceName() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::ChannelLink::Builder::hasSlaveInstanceName() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::Text::Reader ModeliBackend::ChannelLink::Reader::getSlaveInstanceName() const {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+inline  ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::getSlaveInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+inline void ModeliBackend::ChannelLink::Builder::setSlaveInstanceName( ::capnp::Text::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::Text::Builder ModeliBackend::ChannelLink::Builder::initSlaveInstanceName(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), size);
+}
+inline void ModeliBackend::ChannelLink::Builder::adoptSlaveInstanceName(
+    ::capnp::Orphan< ::capnp::Text>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::ChannelLink::Builder::disownSlaveInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+
+inline  ::uint32_t ModeliBackend::ChannelLink::Reader::getMasterValueRef() const {
+  return _reader.getDataField< ::uint32_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline  ::uint32_t ModeliBackend::ChannelLink::Builder::getMasterValueRef() {
+  return _builder.getDataField< ::uint32_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::ChannelLink::Builder::setMasterValueRef( ::uint32_t value) {
+  _builder.setDataField< ::uint32_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline  ::uint32_t ModeliBackend::ChannelLink::Reader::getSlaveValueRef() const {
+  return _reader.getDataField< ::uint32_t>(
+      ::capnp::bounded<1>() * ::capnp::ELEMENTS);
+}
+
+inline  ::uint32_t ModeliBackend::ChannelLink::Builder::getSlaveValueRef() {
+  return _builder.getDataField< ::uint32_t>(
+      ::capnp::bounded<1>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::ChannelLink::Builder::setSlaveValueRef( ::uint32_t value) {
+  _builder.setDataField< ::uint32_t>(
+      ::capnp::bounded<1>() * ::capnp::ELEMENTS, value);
+}
+
+inline double ModeliBackend::ChannelLink::Reader::getFactor() const {
+  return _reader.getDataField<double>(
+      ::capnp::bounded<1>() * ::capnp::ELEMENTS);
+}
+
+inline double ModeliBackend::ChannelLink::Builder::getFactor() {
+  return _builder.getDataField<double>(
+      ::capnp::bounded<1>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::ChannelLink::Builder::setFactor(double value) {
+  _builder.setDataField<double>(
+      ::capnp::bounded<1>() * ::capnp::ELEMENTS, value);
+}
+
+inline double ModeliBackend::ChannelLink::Reader::getOffset() const {
+  return _reader.getDataField<double>(
+      ::capnp::bounded<2>() * ::capnp::ELEMENTS);
+}
+
+inline double ModeliBackend::ChannelLink::Builder::getOffset() {
+  return _builder.getDataField<double>(
+      ::capnp::bounded<2>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::ChannelLink::Builder::setOffset(double value) {
+  _builder.setDataField<double>(
+      ::capnp::bounded<2>() * ::capnp::ELEMENTS, value);
+}
+
+inline  ::int16_t ModeliBackend::PlayResults::Reader::getResult() const {
+  return _reader.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline  ::int16_t ModeliBackend::PlayResults::Builder::getResult() {
+  return _builder.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::PlayResults::Builder::setResult( ::int16_t value) {
+  _builder.setDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline  ::int16_t ModeliBackend::PlayFastResults::Reader::getResult() const {
+  return _reader.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline  ::int16_t ModeliBackend::PlayFastResults::Builder::getResult() {
+  return _builder.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::PlayFastResults::Builder::setResult( ::int16_t value) {
+  _builder.setDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline  ::int16_t ModeliBackend::StopResults::Reader::getResult() const {
+  return _reader.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline  ::int16_t ModeliBackend::StopResults::Builder::getResult() {
+  return _builder.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::StopResults::Builder::setResult( ::int16_t value) {
+  _builder.setDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline bool ModeliBackend::AddFmuParams::Reader::hasInstanceName() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::AddFmuParams::Builder::hasInstanceName() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::Text::Reader ModeliBackend::AddFmuParams::Reader::getInstanceName() const {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::capnp::Text::Builder ModeliBackend::AddFmuParams::Builder::getInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void ModeliBackend::AddFmuParams::Builder::setInstanceName( ::capnp::Text::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::Text::Builder ModeliBackend::AddFmuParams::Builder::initInstanceName(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
+}
+inline void ModeliBackend::AddFmuParams::Builder::adoptInstanceName(
+    ::capnp::Orphan< ::capnp::Text>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::AddFmuParams::Builder::disownInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline bool ModeliBackend::AddFmuParams::Reader::hasFmuFile() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::AddFmuParams::Builder::hasFmuFile() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::Data::Reader ModeliBackend::AddFmuParams::Reader::getFmuFile() const {
+  return ::capnp::_::PointerHelpers< ::capnp::Data>::get(_reader.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+inline  ::capnp::Data::Builder ModeliBackend::AddFmuParams::Builder::getFmuFile() {
+  return ::capnp::_::PointerHelpers< ::capnp::Data>::get(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+inline void ModeliBackend::AddFmuParams::Builder::setFmuFile( ::capnp::Data::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::Data>::set(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::Data::Builder ModeliBackend::AddFmuParams::Builder::initFmuFile(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::Data>::init(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), size);
+}
+inline void ModeliBackend::AddFmuParams::Builder::adoptFmuFile(
+    ::capnp::Orphan< ::capnp::Data>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::Data>::adopt(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::Data> ModeliBackend::AddFmuParams::Builder::disownFmuFile() {
+  return ::capnp::_::PointerHelpers< ::capnp::Data>::disown(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+
+inline bool ModeliBackend::AddFmuResults::Reader::getResult() const {
+  return _reader.getDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline bool ModeliBackend::AddFmuResults::Builder::getResult() {
+  return _builder.getDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::AddFmuResults::Builder::setResult(bool value) {
+  _builder.setDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline bool ModeliBackend::RemoveFmuParams::Reader::hasInstanceName() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::RemoveFmuParams::Builder::hasInstanceName() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::Text::Reader ModeliBackend::RemoveFmuParams::Reader::getInstanceName() const {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::capnp::Text::Builder ModeliBackend::RemoveFmuParams::Builder::getInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void ModeliBackend::RemoveFmuParams::Builder::setInstanceName( ::capnp::Text::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::Text::Builder ModeliBackend::RemoveFmuParams::Builder::initInstanceName(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
+}
+inline void ModeliBackend::RemoveFmuParams::Builder::adoptInstanceName(
+    ::capnp::Orphan< ::capnp::Text>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::Text> ModeliBackend::RemoveFmuParams::Builder::disownInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline bool ModeliBackend::RemoveFmuResults::Reader::getResult() const {
+  return _reader.getDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline bool ModeliBackend::RemoveFmuResults::Builder::getResult() {
+  return _builder.getDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::RemoveFmuResults::Builder::setResult(bool value) {
+  _builder.setDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline bool ModeliBackend::AddChannelLinkParams::Reader::hasChannelLink() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::AddChannelLinkParams::Builder::hasChannelLink() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::ModeliBackend::ChannelLink::Reader ModeliBackend::AddChannelLinkParams::Reader::getChannelLink() const {
+  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::ModeliBackend::ChannelLink::Builder ModeliBackend::AddChannelLinkParams::Builder::getChannelLink() {
+  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+#if !CAPNP_LITE
+inline  ::ModeliBackend::ChannelLink::Pipeline ModeliBackend::AddChannelLinkParams::Pipeline::getChannelLink() {
+  return  ::ModeliBackend::ChannelLink::Pipeline(_typeless.getPointerField(0));
+}
+#endif  // !CAPNP_LITE
+inline void ModeliBackend::AddChannelLinkParams::Builder::setChannelLink( ::ModeliBackend::ChannelLink::Reader value) {
+  ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::ModeliBackend::ChannelLink::Builder ModeliBackend::AddChannelLinkParams::Builder::initChannelLink() {
+  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void ModeliBackend::AddChannelLinkParams::Builder::adoptChannelLink(
+    ::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value) {
+  ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> ModeliBackend::AddChannelLinkParams::Builder::disownChannelLink() {
+  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline bool ModeliBackend::AddChannelLinkResults::Reader::getResult() const {
+  return _reader.getDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline bool ModeliBackend::AddChannelLinkResults::Builder::getResult() {
+  return _builder.getDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::AddChannelLinkResults::Builder::setResult(bool value) {
+  _builder.setDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline bool ModeliBackend::RemoveChannelLinkParams::Reader::hasChannelLink() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::RemoveChannelLinkParams::Builder::hasChannelLink() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::ModeliBackend::ChannelLink::Reader ModeliBackend::RemoveChannelLinkParams::Reader::getChannelLink() const {
+  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::ModeliBackend::ChannelLink::Builder ModeliBackend::RemoveChannelLinkParams::Builder::getChannelLink() {
+  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+#if !CAPNP_LITE
+inline  ::ModeliBackend::ChannelLink::Pipeline ModeliBackend::RemoveChannelLinkParams::Pipeline::getChannelLink() {
+  return  ::ModeliBackend::ChannelLink::Pipeline(_typeless.getPointerField(0));
+}
+#endif  // !CAPNP_LITE
+inline void ModeliBackend::RemoveChannelLinkParams::Builder::setChannelLink( ::ModeliBackend::ChannelLink::Reader value) {
+  ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::ModeliBackend::ChannelLink::Builder ModeliBackend::RemoveChannelLinkParams::Builder::initChannelLink() {
+  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void ModeliBackend::RemoveChannelLinkParams::Builder::adoptChannelLink(
+    ::capnp::Orphan< ::ModeliBackend::ChannelLink>&& value) {
+  ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::ModeliBackend::ChannelLink> ModeliBackend::RemoveChannelLinkParams::Builder::disownChannelLink() {
+  return ::capnp::_::PointerHelpers< ::ModeliBackend::ChannelLink>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline bool ModeliBackend::RemoveChannelLinkResults::Reader::getResult() const {
+  return _reader.getDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline bool ModeliBackend::RemoveChannelLinkResults::Builder::getResult() {
+  return _builder.getDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::RemoveChannelLinkResults::Builder::setResult(bool value) {
+  _builder.setDataField<bool>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline bool ModeliBackend::SetValuesParams::Reader::hasValues() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::SetValuesParams::Builder::hasValues() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::Values::Reader ModeliBackend::SetValuesParams::Reader::getValues() const {
+  return ::capnp::_::PointerHelpers< ::Values>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::Values::Builder ModeliBackend::SetValuesParams::Builder::getValues() {
+  return ::capnp::_::PointerHelpers< ::Values>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+#if !CAPNP_LITE
+inline  ::Values::Pipeline ModeliBackend::SetValuesParams::Pipeline::getValues() {
+  return  ::Values::Pipeline(_typeless.getPointerField(0));
+}
+#endif  // !CAPNP_LITE
+inline void ModeliBackend::SetValuesParams::Builder::setValues( ::Values::Reader value) {
+  ::capnp::_::PointerHelpers< ::Values>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::Values::Builder ModeliBackend::SetValuesParams::Builder::initValues() {
+  return ::capnp::_::PointerHelpers< ::Values>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void ModeliBackend::SetValuesParams::Builder::adoptValues(
+    ::capnp::Orphan< ::Values>&& value) {
+  ::capnp::_::PointerHelpers< ::Values>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::Values> ModeliBackend::SetValuesParams::Builder::disownValues() {
+  return ::capnp::_::PointerHelpers< ::Values>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline  ::int16_t ModeliBackend::SetValuesResults::Reader::getResult() const {
+  return _reader.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline  ::int16_t ModeliBackend::SetValuesResults::Builder::getResult() {
+  return _builder.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliBackend::SetValuesResults::Builder::setResult( ::int16_t value) {
+  _builder.setDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline bool ModeliBackend::RegisterFrontendParams::Reader::hasFrontend() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliBackend::RegisterFrontendParams::Builder::hasFrontend() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+#if !CAPNP_LITE
+inline  ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Reader::getFrontend() const {
+  return ::capnp::_::PointerHelpers< ::ModeliFrontend>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Builder::getFrontend() {
+  return ::capnp::_::PointerHelpers< ::ModeliFrontend>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::ModeliFrontend::Client ModeliBackend::RegisterFrontendParams::Pipeline::getFrontend() {
+  return  ::ModeliFrontend::Client(_typeless.getPointerField(0).asCap());
+}
+inline void ModeliBackend::RegisterFrontendParams::Builder::setFrontend( ::ModeliFrontend::Client&& cap) {
+  ::capnp::_::PointerHelpers< ::ModeliFrontend>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(cap));
+}
+inline void ModeliBackend::RegisterFrontendParams::Builder::setFrontend( ::ModeliFrontend::Client& cap) {
+  ::capnp::_::PointerHelpers< ::ModeliFrontend>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), cap);
+}
+inline void ModeliBackend::RegisterFrontendParams::Builder::adoptFrontend(
+    ::capnp::Orphan< ::ModeliFrontend>&& value) {
+  ::capnp::_::PointerHelpers< ::ModeliFrontend>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::ModeliFrontend> ModeliBackend::RegisterFrontendParams::Builder::disownFrontend() {
+  return ::capnp::_::PointerHelpers< ::ModeliFrontend>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+#endif  // !CAPNP_LITE
+
+#if !CAPNP_LITE
+inline ModeliFrontend::Client::Client(decltype(nullptr))
+    : ::capnp::Capability::Client(nullptr) {}
+inline ModeliFrontend::Client::Client(
+    ::kj::Own< ::capnp::ClientHook>&& hook)
+    : ::capnp::Capability::Client(::kj::mv(hook)) {}
+template <typename _t, typename>
+inline ModeliFrontend::Client::Client(::kj::Own<_t>&& server)
+    : ::capnp::Capability::Client(::kj::mv(server)) {}
+template <typename _t, typename>
+inline ModeliFrontend::Client::Client(::kj::Promise<_t>&& promise)
+    : ::capnp::Capability::Client(::kj::mv(promise)) {}
+inline ModeliFrontend::Client::Client(::kj::Exception&& exception)
+    : ::capnp::Capability::Client(::kj::mv(exception)) {}
+inline  ::ModeliFrontend::Client& ModeliFrontend::Client::operator=(Client& other) {
+  ::capnp::Capability::Client::operator=(other);
+  return *this;
+}
+inline  ::ModeliFrontend::Client& ModeliFrontend::Client::operator=(Client&& other) {
+  ::capnp::Capability::Client::operator=(kj::mv(other));
+  return *this;
+}
+
+#endif  // !CAPNP_LITE
+inline double ModeliFrontend::NewValuesParams::Reader::getTimestamp() const {
+  return _reader.getDataField<double>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline double ModeliFrontend::NewValuesParams::Builder::getTimestamp() {
+  return _builder.getDataField<double>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliFrontend::NewValuesParams::Builder::setTimestamp(double value) {
+  _builder.setDataField<double>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline bool ModeliFrontend::NewValuesParams::Reader::hasValues() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliFrontend::NewValuesParams::Builder::hasValues() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::Values::Reader ModeliFrontend::NewValuesParams::Reader::getValues() const {
+  return ::capnp::_::PointerHelpers< ::Values>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::Values::Builder ModeliFrontend::NewValuesParams::Builder::getValues() {
+  return ::capnp::_::PointerHelpers< ::Values>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+#if !CAPNP_LITE
+inline  ::Values::Pipeline ModeliFrontend::NewValuesParams::Pipeline::getValues() {
+  return  ::Values::Pipeline(_typeless.getPointerField(0));
+}
+#endif  // !CAPNP_LITE
+inline void ModeliFrontend::NewValuesParams::Builder::setValues( ::Values::Reader value) {
+  ::capnp::_::PointerHelpers< ::Values>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::Values::Builder ModeliFrontend::NewValuesParams::Builder::initValues() {
+  return ::capnp::_::PointerHelpers< ::Values>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void ModeliFrontend::NewValuesParams::Builder::adoptValues(
+    ::capnp::Orphan< ::Values>&& value) {
+  ::capnp::_::PointerHelpers< ::Values>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::Values> ModeliFrontend::NewValuesParams::Builder::disownValues() {
+  return ::capnp::_::PointerHelpers< ::Values>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline bool ModeliFrontend::LogParams::Reader::hasInstanceName() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliFrontend::LogParams::Builder::hasInstanceName() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::Text::Reader ModeliFrontend::LogParams::Reader::getInstanceName() const {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::getInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void ModeliFrontend::LogParams::Builder::setInstanceName( ::capnp::Text::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::initInstanceName(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
+}
+inline void ModeliFrontend::LogParams::Builder::adoptInstanceName(
+    ::capnp::Orphan< ::capnp::Text>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::Text> ModeliFrontend::LogParams::Builder::disownInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline  ::int16_t ModeliFrontend::LogParams::Reader::getStatus() const {
+  return _reader.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+
+inline  ::int16_t ModeliFrontend::LogParams::Builder::getStatus() {
+  return _builder.getDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS);
+}
+inline void ModeliFrontend::LogParams::Builder::setStatus( ::int16_t value) {
+  _builder.setDataField< ::int16_t>(
+      ::capnp::bounded<0>() * ::capnp::ELEMENTS, value);
+}
+
+inline bool ModeliFrontend::LogParams::Reader::hasMessage() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
+}
+inline bool ModeliFrontend::LogParams::Builder::hasMessage() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::Text::Reader ModeliFrontend::LogParams::Reader::getMessage() const {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+inline  ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::getMessage() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+inline void ModeliFrontend::LogParams::Builder::setMessage( ::capnp::Text::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::Text::Builder ModeliFrontend::LogParams::Builder::initMessage(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), size);
+}
+inline void ModeliFrontend::LogParams::Builder::adoptMessage(
+    ::capnp::Orphan< ::capnp::Text>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::Text> ModeliFrontend::LogParams::Builder::disownMessage() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasInstanceName() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasInstanceName() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::Text::Reader Values::Reader::getInstanceName() const {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_reader.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline  ::capnp::Text::Builder Values::Builder::getInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::get(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setInstanceName( ::capnp::Text::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::set(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::Text::Builder Values::Builder::initInstanceName(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::init(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptInstanceName(
+    ::capnp::Orphan< ::capnp::Text>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::Text>::adopt(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::Text> Values::Builder::disownInstanceName() {
+  return ::capnp::_::PointerHelpers< ::capnp::Text>::disown(_builder.getPointerField(
+      ::capnp::bounded<0>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasIntegerValueRefs() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasIntegerValueRefs() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::List< ::uint32_t>::Reader Values::Reader::getIntegerValueRefs() const {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::getIntegerValueRefs() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setIntegerValueRefs( ::capnp::List< ::uint32_t>::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
+}
+inline void Values::Builder::setIntegerValueRefs(::kj::ArrayPtr<const  ::uint32_t> value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::initIntegerValueRefs(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptIntegerValueRefs(
+    ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownIntegerValueRefs() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField(
+      ::capnp::bounded<1>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasIntegerValues() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasIntegerValues() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::List< ::int32_t>::Reader Values::Reader::getIntegerValues() const {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::get(_reader.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS));
+}
+inline  ::capnp::List< ::int32_t>::Builder Values::Builder::getIntegerValues() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::get(_builder.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setIntegerValues( ::capnp::List< ::int32_t>::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS), value);
+}
+inline void Values::Builder::setIntegerValues(::kj::ArrayPtr<const  ::int32_t> value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::List< ::int32_t>::Builder Values::Builder::initIntegerValues(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::init(_builder.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptIntegerValues(
+    ::capnp::Orphan< ::capnp::List< ::int32_t>>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::adopt(_builder.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::List< ::int32_t>> Values::Builder::disownIntegerValues() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::int32_t>>::disown(_builder.getPointerField(
+      ::capnp::bounded<2>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasRealValueRefs() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasRealValueRefs() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::List< ::uint32_t>::Reader Values::Reader::getRealValueRefs() const {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS));
+}
+inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::getRealValueRefs() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setRealValueRefs( ::capnp::List< ::uint32_t>::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS), value);
+}
+inline void Values::Builder::setRealValueRefs(::kj::ArrayPtr<const  ::uint32_t> value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::initRealValueRefs(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptRealValueRefs(
+    ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownRealValueRefs() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField(
+      ::capnp::bounded<3>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasRealValues() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasRealValues() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::List<double>::Reader Values::Reader::getRealValues() const {
+  return ::capnp::_::PointerHelpers< ::capnp::List<double>>::get(_reader.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS));
+}
+inline  ::capnp::List<double>::Builder Values::Builder::getRealValues() {
+  return ::capnp::_::PointerHelpers< ::capnp::List<double>>::get(_builder.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setRealValues( ::capnp::List<double>::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::List<double>>::set(_builder.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS), value);
+}
+inline void Values::Builder::setRealValues(::kj::ArrayPtr<const double> value) {
+  ::capnp::_::PointerHelpers< ::capnp::List<double>>::set(_builder.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::List<double>::Builder Values::Builder::initRealValues(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::List<double>>::init(_builder.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptRealValues(
+    ::capnp::Orphan< ::capnp::List<double>>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::List<double>>::adopt(_builder.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::List<double>> Values::Builder::disownRealValues() {
+  return ::capnp::_::PointerHelpers< ::capnp::List<double>>::disown(_builder.getPointerField(
+      ::capnp::bounded<4>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasBoolValueRefs() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasBoolValueRefs() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::List< ::uint32_t>::Reader Values::Reader::getBoolValueRefs() const {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS));
+}
+inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::getBoolValueRefs() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setBoolValueRefs( ::capnp::List< ::uint32_t>::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS), value);
+}
+inline void Values::Builder::setBoolValueRefs(::kj::ArrayPtr<const  ::uint32_t> value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::initBoolValueRefs(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptBoolValueRefs(
+    ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownBoolValueRefs() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField(
+      ::capnp::bounded<5>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasBoolValues() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasBoolValues() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::List<bool>::Reader Values::Reader::getBoolValues() const {
+  return ::capnp::_::PointerHelpers< ::capnp::List<bool>>::get(_reader.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS));
+}
+inline  ::capnp::List<bool>::Builder Values::Builder::getBoolValues() {
+  return ::capnp::_::PointerHelpers< ::capnp::List<bool>>::get(_builder.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setBoolValues( ::capnp::List<bool>::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::List<bool>>::set(_builder.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS), value);
+}
+inline void Values::Builder::setBoolValues(::kj::ArrayPtr<const bool> value) {
+  ::capnp::_::PointerHelpers< ::capnp::List<bool>>::set(_builder.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::List<bool>::Builder Values::Builder::initBoolValues(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::List<bool>>::init(_builder.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptBoolValues(
+    ::capnp::Orphan< ::capnp::List<bool>>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::List<bool>>::adopt(_builder.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::List<bool>> Values::Builder::disownBoolValues() {
+  return ::capnp::_::PointerHelpers< ::capnp::List<bool>>::disown(_builder.getPointerField(
+      ::capnp::bounded<6>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasStringValueRefs() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasStringValueRefs() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::List< ::uint32_t>::Reader Values::Reader::getStringValueRefs() const {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_reader.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS));
+}
+inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::getStringValueRefs() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::get(_builder.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setStringValueRefs( ::capnp::List< ::uint32_t>::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS), value);
+}
+inline void Values::Builder::setStringValueRefs(::kj::ArrayPtr<const  ::uint32_t> value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::set(_builder.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::List< ::uint32_t>::Builder Values::Builder::initStringValueRefs(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::init(_builder.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptStringValueRefs(
+    ::capnp::Orphan< ::capnp::List< ::uint32_t>>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::adopt(_builder.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::List< ::uint32_t>> Values::Builder::disownStringValueRefs() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::uint32_t>>::disown(_builder.getPointerField(
+      ::capnp::bounded<7>() * ::capnp::POINTERS));
+}
+
+inline bool Values::Reader::hasStringValues() const {
+  return !_reader.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS).isNull();
+}
+inline bool Values::Builder::hasStringValues() {
+  return !_builder.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS).isNull();
+}
+inline  ::capnp::List< ::capnp::Text>::Reader Values::Reader::getStringValues() const {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::get(_reader.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS));
+}
+inline  ::capnp::List< ::capnp::Text>::Builder Values::Builder::getStringValues() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::get(_builder.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS));
+}
+inline void Values::Builder::setStringValues( ::capnp::List< ::capnp::Text>::Reader value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::set(_builder.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS), value);
+}
+inline void Values::Builder::setStringValues(::kj::ArrayPtr<const  ::capnp::Text::Reader> value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::set(_builder.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS), value);
+}
+inline  ::capnp::List< ::capnp::Text>::Builder Values::Builder::initStringValues(unsigned int size) {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::init(_builder.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS), size);
+}
+inline void Values::Builder::adoptStringValues(
+    ::capnp::Orphan< ::capnp::List< ::capnp::Text>>&& value) {
+  ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::adopt(_builder.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS), kj::mv(value));
+}
+inline ::capnp::Orphan< ::capnp::List< ::capnp::Text>> Values::Builder::disownStringValues() {
+  return ::capnp::_::PointerHelpers< ::capnp::List< ::capnp::Text>>::disown(_builder.getPointerField(
+      ::capnp::bounded<8>() * ::capnp::POINTERS));
+}
+
+
+#endif  // CAPNP_INCLUDED_b51166b0ce5aa3a5_
diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj
new file mode 100644
index 0000000000000000000000000000000000000000..39aa961b7f1c62300e6a5fdf110001a715c207af
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <VCProjectVersion>15.0</VCProjectVersion>
+    <ProjectGuid>{171ED599-C0C6-4342-8328-E7ABE7F7FEAA}</ProjectGuid>
+    <Keyword>Win32Proj</Keyword>
+    <RootNamespace>ModeliRpcNative</RootNamespace>
+    <WindowsTargetPlatformVersion>10.0.16299.0</WindowsTargetPlatformVersion>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>true</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <UseDebugLibraries>false</UseDebugLibraries>
+    <PlatformToolset>v141</PlatformToolset>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Label="Shared" />
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <Lib>
+      <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Lib>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>Disabled</Optimization>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <Lib>
+      <AdditionalLibraryDirectories>C:\capnproto\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Lib>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <Lib>
+      <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Lib>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <WarningLevel>Level3</WarningLevel>
+      <Optimization>MaxSpeed</Optimization>
+      <FunctionLevelLinking>true</FunctionLevelLinking>
+      <IntrinsicFunctions>true</IntrinsicFunctions>
+      <SDLCheck>true</SDLCheck>
+      <PreprocessorDefinitions>NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ConformanceMode>true</ConformanceMode>
+      <AdditionalIncludeDirectories>C:\capnproto\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <SubSystem>Windows</SubSystem>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <OptimizeReferences>true</OptimizeReferences>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>capnp.lib;capnp-rpc.lib;kj.lib;kj-async.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+    <Lib>
+      <AdditionalLibraryDirectories>C:\capnproto\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>capnp.lib;kj.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Lib>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClInclude Include="IRpcFrontend.h" />
+    <ClInclude Include="CapnConverter.h" />
+    <ClInclude Include="ModeliFrontendImpl.h" />
+    <ClInclude Include="ModeliRpc.capnp.h" />
+    <ClInclude Include="RpcFrontend.h" />
+    <ClInclude Include="stdafx.h" />
+    <ClInclude Include="targetver.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="CapnConverter.cpp" />
+    <ClCompile Include="ModeliFrontendImpl.cpp" />
+    <ClCompile Include="RpcFrontend.cpp" />
+    <ClCompile Include="stdafx.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="ModeliRpc.capnp.c++">
+      <FileType>Document</FileType>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
+    </ClCompile>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters
new file mode 100644
index 0000000000000000000000000000000000000000..88394638939e8a5834177effe5ec7f0a58c27102
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/ModeliRpcNative.vcxproj.filters
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+    </Filter>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+      <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+    </Filter>
+    <Filter Include="Resource Files">
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="stdafx.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="targetver.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ModeliFrontendImpl.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="CapnConverter.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="ModeliRpc.capnp.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="IRpcFrontend.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="RpcFrontend.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="stdafx.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="CapnConverter.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="ModeliFrontendImpl.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="ModeliRpc.capnp.c++">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="RpcFrontend.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+  </ItemGroup>
+</Project>
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp b/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..37397e6dddc790280fc2bcfe25545afec7c7dc72
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/RpcFrontend.cpp
@@ -0,0 +1,131 @@
+#include "stdafx.h"
+#include "RpcFrontend.h"
+#include "CapnConverter.h"
+#include "ModeliRpc.capnp.h"
+#include "ModeliFrontendImpl.h"
+#include "capnp/ez-rpc.h"
+
+RpcFrontend::RpcFrontend()
+{
+}
+
+RpcFrontend::~RpcFrontend()
+{
+}
+
+void RpcFrontend::destroy()
+{
+    delete(this);
+}
+
+void RpcFrontend::connect(std::string address, int port)
+{
+    _client = std::make_unique<capnp::EzRpcClient>(address, port);
+}
+
+void RpcFrontend::registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback)
+{
+    if (!_client)
+    {
+        return;
+    }
+    auto backend = _client->getMain<ModeliBackend>();
+    auto regRequest = backend.registerFrontendRequest();
+    regRequest.setFrontend(kj::heap<ModeliFrontendImpl>(newValuesCallback, logCallback));
+    regRequest.send().wait(_client->getWaitScope());
+
+}
+
+fmi2Status RpcFrontend::play()
+{
+    if (!_client)
+    {
+        return fmi2Error;
+    }
+    auto backend = _client->getMain<ModeliBackend>();
+    return static_cast<fmi2Status>(backend.playRequest().send().wait(_client->getWaitScope()).getResult());
+}
+
+void RpcFrontend::pause()
+{
+    if (!_client)
+    {
+        return;
+    }
+    auto backend = _client->getMain<ModeliBackend>();
+    backend.pauseRequest().send().wait(_client->getWaitScope());
+}
+
+fmi2Status RpcFrontend::stop()
+{
+    if (!_client)
+    {
+        return fmi2Error;
+    }
+    auto backend = _client->getMain<ModeliBackend>();
+    return static_cast<fmi2Status>(backend.stopRequest().send().wait(_client->getWaitScope()).getResult());
+}
+
+bool RpcFrontend::addFmu(std::string instanceName, std::vector<unsigned char> fmuFile)
+{
+    if (!_client)
+    {
+        return false;
+    }
+    auto backend = _client->getMain<ModeliBackend>();
+    auto addFmuReq = backend.addFmuRequest();
+    addFmuReq.setInstanceName(instanceName);
+    addFmuReq.setFmuFile(kj::arrayPtr(fmuFile.data(), fmuFile.size()));
+    return addFmuReq.send().wait(_client->getWaitScope()).getResult();
+}
+
+bool RpcFrontend::removeFmu(std::string instanceName)
+{
+    if (!_client)
+    {
+        return false;
+    }
+    auto backend = _client->getMain<ModeliBackend>();
+    auto removefmuReq = backend.removeFmuRequest();
+    removefmuReq.setInstanceName(instanceName);
+    return removefmuReq.send().wait(_client->getWaitScope()).getResult();
+}
+
+bool RpcFrontend::addChannelLink(ChannelLink channelLink)
+{
+    if (!_client)
+    {
+        return false;
+    }
+    // Send request
+    auto backend = _client->getMain<ModeliBackend>();
+    auto request = backend.addChannelLinkRequest();
+    request.setChannelLink(CapnConverter::convertChannelLink(channelLink));
+    return request.send().wait(_client->getWaitScope()).getResult();
+}
+
+bool RpcFrontend::removeChannelink(ChannelLink channelLink)
+{
+    if (!_client)
+    {
+        return false;
+    }
+    // Send request
+    auto backend = _client->getMain<ModeliBackend>();
+    auto request = backend.removeChannelLinkRequest();
+    request.setChannelLink(CapnConverter::convertChannelLink(channelLink));
+    return request.send().wait(_client->getWaitScope()).getResult();
+}
+
+fmi2Status RpcFrontend::setValues(ValuesStruct values)
+{
+    if (!_client)
+    {
+        return fmi2Error;
+    }
+    // Send request
+    auto backend = _client->getMain<ModeliBackend>();
+    auto request = backend.setValuesRequest();
+    request.setValues(CapnConverter::convertValues(values));
+    return static_cast<fmi2Status>(request.send().wait(_client->getWaitScope()).getResult());
+}
\ No newline at end of file
diff --git a/ModeliRpc/ModeliRpcNative/RpcFrontend.h b/ModeliRpc/ModeliRpcNative/RpcFrontend.h
new file mode 100644
index 0000000000000000000000000000000000000000..e44ecd16f64d081b09ef1a6ab3f725c7296aec92
--- /dev/null
+++ b/ModeliRpc/ModeliRpcNative/RpcFrontend.h
@@ -0,0 +1,38 @@
+#pragma once
+#include "IRpcFrontend.h"
+#include <memory>
+
+
+namespace capnp
+{
+    class EzRpcClient;
+}
+
+class RpcFrontend : public IRpcFrontend
+{
+public:
+    RpcFrontend();
+    ~RpcFrontend();
+private:
+    std::unique_ptr<capnp::EzRpcClient> _client;
+
+    // Inherited via IModeliFrontend
+    void destroy() override;
+    void connect(std::string address, int port) override;
+    void registerCallbacks(NewValuesCallback newValuesCallback, LogCallback logCallback) override;
+    fmi2Status play() override;
+    void pause() override;
+    fmi2Status stop() override;
+    bool addFmu(std::string instanceName, std::vector<unsigned char> fmuFile) override;
+    bool removeFmu(std::string instanceName) override;
+    bool addChannelLink(ChannelLink channelLink) override;
+    bool removeChannelink(ChannelLink channelLink) override;
+    fmi2Status setValues(ValuesStruct values) override;
+};
+
+/// Factory method that returns an implementation of IRpcFrontend.
+IRpcFrontend* createRpcFrontend()
+{
+    return new RpcFrontend();
+}
+
diff --git a/ModeliRpc/ModeliRpcNative/stdafx.cpp b/ModeliRpc/ModeliRpcNative/stdafx.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0276f103440753b20c16291ffbf967b3c08fa225
Binary files /dev/null and b/ModeliRpc/ModeliRpcNative/stdafx.cpp differ
diff --git a/ModeliRpc/ModeliRpcNative/stdafx.h b/ModeliRpc/ModeliRpcNative/stdafx.h
new file mode 100644
index 0000000000000000000000000000000000000000..397a1e5546242261ad688b4ccfa061124b11e936
Binary files /dev/null and b/ModeliRpc/ModeliRpcNative/stdafx.h differ
diff --git a/ModeliRpc/ModeliRpcNative/targetver.h b/ModeliRpc/ModeliRpcNative/targetver.h
new file mode 100644
index 0000000000000000000000000000000000000000..567cd346efccbe2d1f43a4056bdcb58a2b93e1a8
Binary files /dev/null and b/ModeliRpc/ModeliRpcNative/targetver.h differ