PageSourceSearch

https://www.lf-lang.org/assets/js/9b65b129.8c823d74.js

js lf-lang.org collected 2026-10-03 22:45:51 UTC 20,635 bytes, 1 lines download raw bytes

1(globalThis.webpackChunkdocusaurus_classic_typescript=globalThis.webpackChunkdocusaurus_classic_typescript||[]).push([[15333],{1403(e,r,c){var s={"./c/src/Alignment.lf":[6502,[6502]],"./c/src/Asynchronous.lf":[62569,[62569]],"./c/src/BankIndex.lf":[75213,[75213]],"./c/src/CheckDeadline.lf":[69883,[69883]],"./c/src/ChildBank.lf":[96471,[96471]],"./c/src/ChildParentBank.lf":[54167,[54167]],"./c/src/ChildParentBank2.lf":[14823,[14823]],"./c/src/Contained.lf":[78882,[78882]],"./c/src/Count.lf":[16860,[16860]],"./c/src/Cycle.lf":[80937,[80937]],"./c/src/CycleReordered.lf":[20309,[20309]],"./c/src/CycleWithDelay.lf":[86136,[86136]],"./c/src/Deadline.lf":[80397,[80397]],"./c/src/DeadlineTest.lf":[95205,[95205]],"./c/src/Decentralized.lf":[68229,[68229]],"./c/src/DecentralizedFeeback.lf":[98244,[98244]],"./c/src/DecentralizedFeebackSTA.lf":[5646,[5646]],"./c/src/DecentralizedFeebackSplit.lf":[16228,[16228]],"./c/src/DecentralizedFeebackWithAfter.lf":[37726,[37726]],"./c/src/DecentralizedTimer.lf":[87178,[87178]],"./c/src/DecentralizedTimerAfter.lf":[26040,[26040]],"./c/src/DecentralizedTimerHandler.lf":[31546,[31546]],"./c/src/DecentralizedTimerSTA.lf":[39220,[39220]],"./c/src/DecentralizedTimerSTPDeadline.lf":[78507,[78507]],"./c/src/DecentralizedTimerSTPHandler.lf":[34585,[34585]],"./c/src/DecentralizedZeroDelayLoop.lf":[89240,[89240]],"./c/src/DecentralizedZeroDelayLoopWithChecker.lf":[14391,[14391]],"./c/src/Destination.lf":[60167,[60167]],"./c/src/Double.lf":[96280,[96280]],"./c/src/Extends.lf":[60678,[60678]],"./c/src/Federated.lf":[17395,[17395]],"./c/src/FederatedFeeback.lf":[14438,[14438]],"./c/src/GenericDelay.lf":[59981,[59981]],"./c/src/GenericString.lf":[11187,[11187]],"./c/src/HelloWorld.lf":[48353,[48353]],"./c/src/Hierarchy.lf":[58720,[58720]],"./c/src/Interleaved.lf":[48888,[48888]],"./c/src/MainReactor.lf":[97654,[97654]],"./c/src/Methods.lf":[40969,[40969]],"./c/src/Microsteps.lf":[19542,[19542]],"./c/src/Multiport.lf":[62189,[62189]],"./c/src/MultiportSource.lf":[62888,[62888]],"./c/src/MultiportToBank.lf":[84914,[84914]],"./c/src/Overwriting.lf":[14589,[14589]],"./c/src/Physical.lf":[86448,[86448]],"./c/src/RegressionTest.lf":[42180,[42180]],"./c/src/Scale.lf":[521,[521]],"./c/src/Schedule.lf":[48628,[48628]],"./c/src/Simultaneous.lf":[77124,[77124]],"./c/src/SlowingClock.lf":[8198,[8198]],"./c/src/Sparse.lf":[22981,[22981]],"./c/src/TestCount.lf":[30884,[30884]],"./c/src/TimeElapsed.lf":[41572,[41572]],"./c/src/TimeLag.lf":[22276,[22276]],"./c/src/Timer.lf":[81682,[81682]],"./c/src/TransientFederates.lf":[52754,[52754]],"./c/src/Triggering.lf":[99661,[99661]],"./c/src/lib/Cos.lf":[8760,[8760]],"./c/src/test/AlignmentTest.lf":[83023,[83023]],"./c/src/test/ContainedOverwriting.lf":[49339,[49339]],"./c/src/test/CountDoubleDestination.lf":[75120,[75120]],"./c/src/test/CountScale.lf":[68977,[68977]],"./c/src/test/ExtendsTest.lf":[67519,[67519]],"./c/src/test/HierarchyTest.lf":[61849,[61849]],"./c/src/test/MultiportSourceTest.lf":[34141,[34141]],"./c/src/test/PhysicalTest.lf":[15783,[15783]],"./c/src/test/PreambleTest1.lf":[61102,[38721]],"./c/src/test/PreambleTest2.lf":[1872,[1872]],"./c/src/test/PreambleTest3.lf":[96971,[96971]],"./c/src/test/PreambleTest4.lf":[56898,[56898]],"./c/src/test/PreambleTest5.lf":[98077,[98077]],"./c/src/test/PreambleTest6.lf":[75820,[75820]],"./c/src/test/PreambleTest7.lf":[89063,[89063]],"./c/src/test/ScheduleTest.lf":[17183,[17183]],"./c/src/test/SlowingClockTest.lf":[31761,[31761]],"./c/src/test/SparseTest.lf":[28210,[28210]],"./c/src/test/StructParameter.lf":[34394,[34394]],"./cpp/src/Alignment.lf":[98302,[98302]],"./cpp/src/Asynchronous.lf":[59969,[59969]],"./cpp/src/ChildBank.lf":[21967,[21967]],"./cpp/src/ChildParentBank.lf":[70143,[70143]],"./cpp/src/ChildParentBank2.lf":[1439,[1439]],"./cpp/src/Contained.lf":[458,[458]],"./cpp/src/Count.lf":[45060,[45060]],"./cpp/src/Cycle.lf":[11569,[11569]],"./cpp/src/CycleReordered.lf":[30173,[30173]],"./cpp/src/CycleWithDelay.lf":[39184,[39184]],"./cpp/src/Deadline.lf":[82901,[82901]],"./cpp/src/DeadlineTest.lf":[75149,[75149]],"./cpp/src/Destination.lf":[60799,[60799]],"./cpp/src/Double.lf":[21936,[21936]],"./cpp/src/GenericDelay.lf":[72421,[72421]],"./cpp/src/GenericString.lf":[95163,[95163]],"./cpp/src/HelloWorld.lf":[24889,[24889]],"./cpp/src/Hierarchy.lf":[50088,[50088]],"./cpp/src/Interleaved.lf":[2224,[2224]],"./cpp/src/Methods.lf":[15041,[15041]],"./cpp/src/Microsteps.lf":[22718,[22718]],"./cpp/src/Multiport.lf":[16917,[16917]],"./cpp/src/MultiportSource.lf":[14112,[14112]],"./cpp/src/MultiportToBank.lf":[22602,[22602]],"./cpp/src/Overwriting.lf":[47333,[47333]],"./cpp/src/Physical.lf":[84200,[84200]],"./cpp/src/RegressionTest.lf":[73964,[73964]],"./cpp/src/Scale.lf":[12257,[12257]],"./cpp/src/Schedule.lf":[33900,[33900]],"./cpp/src/Simultaneous.lf":[53132,[53132]],"./cpp/src/SlowingClock.lf":[22510,[22510]],"./cpp/src/TestCount.lf":[59583,[81964]],"./cpp/src/TimeElapsed.lf":[91612,[91612]],"./cpp/src/TimeLag.lf":[74844,[74844]],"./cpp/src/Timer.lf":[69242,[69242]],"./cpp/src/Triggering.lf":[69077,[69077]],"./cpp/src/test/AlignmentTest.lf":[20167,[20167]],"./cpp/src/test/ContainedOverwriting.lf":[27251,[27251]],"./cpp/src/test/CountDoubleDestination.lf":[35704,[35704]],"./cpp/src/test/CountScale.lf":[51353,[51353]],"./cpp/src/test/HierarchyTest.lf":[2273,[2273]],"./cpp/src/test/MultiportSourceTest.lf":[49909,[49909]],"./cpp/src/test/PhysicalTest.lf":[51071,[51071]],"./cpp/src/test/ScheduleTest.lf":[67543,[67543]],"./cpp/src/test/SlowingClockTest.lf":[99481,[99481]],"./cpp/src/test/StructParameter.lf":[4786,[4786]],"./language_independent/Multicast.lf":[47310,[47310]],"./language_independent/PhysicalConnection.lf":[3649,[3
1649]],"./py/src/Alignment.lf":[97712,[97712]],"./py/src/Asynchronous.lf":[44291,[44291]],"./py/src/BankIndex.lf":[54091,[54091]],"./py/src/ChildBank.lf":[79237,[79237]],"./py/src/ChildParentBank.lf":[76653,[76653]],"./py/src/ChildParentBank2.lf":[82229,[82229]],"./py/src/Contained.lf":[27144,[27144]],"./py/src/Count.lf":[96326,[96326]],"./py/src/Cycle.lf":[84671,[84671]],"./py/src/CycleReordered.lf":[31479,[31479]],"./py/src/CycleWithDelay.lf":[53526,[53526]],"./py/src/Deadline.lf":[2211,[2211]],"./py/src/DeadlineTest.lf":[94615,[94615]],"./py/src/Decentralized.lf":[54635,[54635]],"./py/src/DecentralizedTimerAfter.lf":[76346,[76346]],"./py/src/DecentralizedTimerHandler.lf":[3540,[3540]],"./py/src/DecentralizedTimerSTA.lf":[81314,[81314]],"./py/src/DecentralizedZeroDelayLoop.lf":[25678,[25678]],"./py/src/DecentralizedZeroDelayLoopWithChecker.lf":[16309,[16309]],"./py/src/Destination.lf":[36813,[36813]],"./py/src/Double.lf":[98074,[98074]],"./py/src/Extends.lf":[13188,[13188]],"./py/src/Federated.lf":[14961,[14961]],"./py/src/HelloWorld.lf":[84339,[84339]],"./py/src/Hierarchy.lf":[98994,[98994]],"./py/src/Interleaved.lf":[25914,[25914]],"./py/src/Methods.lf":[87063,[87063]],"./py/src/Microsteps.lf":[87124,[87124]],"./py/src/Multiport.lf":[77691,[77691]],"./py/src/MultiportSource.lf":[22910,[22910]],"./py/src/MultiportToBank.lf":[83840,[83840]],"./py/src/Overwriting.lf":[66487,[66487]],"./py/src/Physical.lf":[72338,[72338]],"./py/src/Preamble.lf":[16931,[16931]],"./py/src/RegressionTest.lf":[71782,[71782]],"./py/src/Scale.lf":[52767,[52767]],"./py/src/Schedule.lf":[38590,[38590]],"./py/src/Simultaneous.lf":[85390,[85390]],"./py/src/SlowingClock.lf":[20092,[20092]],"./py/src/TestCount.lf":[17322,[17322]],"./py/src/TimeElapsed.lf":[6790,[6790]],"./py/src/TimeLag.lf":[59694,[59694]],"./py/src/Timer.lf":[48228,[48228]],"./py/src/TransientFederates.lf":[92456,[92456]],"./py/src/Triggering.lf":[42695,[42695]],"./py/src/test/AlignmentTest.lf":[49289,[49289]],"./py/src/test/ContainedOverwriting.lf":[47981,[47981]],"./py/src/test/CountDoubleDestination.lf":[96090,[96090]],"./py/src/test/CountScale.lf":[68051,[68051]],"./py/src/test/ExtendsTest.lf":[17133,[17133]],"./py/src/test/HierarchyTest.lf":[24923,[24923]],"./py/src/test/MultiportSourceTest.lf":[27763,[27763]],"./py/src/test/PhysicalTest.lf":[48057,[48057]],"./py/src/test/ScheduleTest.lf":[8513,[8513]],"./py/src/test/SlowingClockTest.lf":[68247,[68247]],"./py/src/test/StructParameter.lf":[52344,[52344]],"./rs/src/Alignment.lf":[99444,[99444]],"./rs/src/Asynchronous.lf":[34239,[34239]],"./rs/src/ChildBank.lf":[76633,[76633]],"./rs/src/ChildParentBank.lf":[19705,[19705]],"./rs/src/Contained.lf":[37972,[37972]],"./rs/src/Count.lf":[58354,[58354]],"./rs/src/Cycle.lf":[13803,[13803]],"./rs/src/CycleReordered.lf":[17595,[17595]],"./rs/src/CycleWithDelay.lf":[1762,[1762]],"./rs/src/Destination.lf":[3345,[3345]],"./rs/src/Double.lf":[32470,[32470]],"./rs/src/Extends.lf":[41576,[41576]],"./rs/src/HelloWorld.lf":[8295,[8295]],"./rs/src/Hierarchy.lf":[24742,[24742]],"./rs/src/Microsteps.lf":[79944,[79944]],"./rs/src/Multiport.lf":[65927,[65927]],"./rs/src/MultiportSource.lf":[75346,[75346]],"./rs/src/MultiportToBank.lf":[28964,[28964]],"./rs/src/Overwriting.lf":[45003,[45003]],"./rs/src/Physical.lf":[48958,[48958]],"./rs/src/RegressionTest.lf":[23354,[23354]],"./rs/src/Scale.lf":[63723,[63723]],"./rs/src/Schedule.lf":[1018,[1018]],"./rs/src/Simultaneous.lf":[3330,[3330]],"./rs/src/SlowingClock.lf":[27608,[27608]],"./rs/src/TestCount.lf":[30990,[30990]],"./rs/src/TimeElapsed.lf":[16874,[16874]],"./rs/src/TimeLag.lf":[77794,[77794]],"./rs/src/Timer.lf":[57928,[57928]],"./rs/src/Triggering.lf":[99291,[99291]],"./ts/src/Alignment.lf":[23146,[23146]],"./ts/src/Asynchronous.lf":[92197,[92197]],"./ts/src/ChildBank.lf":[95979,[95979]],"./ts/src/ChildParentBank.lf":[83011,[83011]],"./ts/src/ChildParentBank2.lf":[45947,[45947]],"./ts/src/Contained.lf":[75966,[75966]],"./ts/src/Count.lf":[45272,[45272]],"./ts/src/Cycle.lf":[4245,[4245]],"./ts/src/CycleReordered.lf":[28697,[28697]],"./ts/src/CycleWithDelay.lf":[88212,[88212]],"./ts/src/Deadline.lf":[26993,[26993]],"./ts/src/DeadlineTest.lf":[34257,[34257]],"./ts/src/Destination.lf":[69403,[69403]],"./ts/src/Double.lf":[95396,[95396]],"./ts/src/Extends.lf":[23402,[23402]],"./ts/src/Federated.lf":[62903,[62903]],"./ts/src/HelloWorld.lf":[40853,[40853]],"./ts/src/Hierarchy.lf":[11412,[11412]],"./ts/src/Microsteps.lf":[35802,[35802]],"./ts/src/Multiport.lf":[78329,[78329]],"./ts/src/MultiportSource.lf":[7324,[7324]],"./ts/src/MultiportToBank.lf":[36998,[36998]],"./ts/src/Overwriting.lf":[83441,[83441]],"./ts/src/Physical.lf":[63068,[63068]],"./ts/src/RegressionTest.lf":[64056,[64056]],"./ts/src/Scale.lf":[54725,[54725]],"./ts/src/Schedule.lf":[6144,[6144]],"./ts/src/Simultaneous.lf":[28104,[28104]],"./ts/src/SlowingClock.lf":[27413,[49794]],"./ts/src/TestCount.lf":[64344,[64344]],"./ts/src/TimeElapsed.lf":[10904,[10904]],"./ts/src/TimeLag.lf":[59464,[59464]],"./ts/src/Timer.lf":[22310,[22310]],"./ts/src/Triggering.lf":[32721,[32721]],"./uc/src/Alignment.lf":[64819,[64819]],"./uc/src/Asynchronous.lf":[66478,[66478]],"./uc/src/BankIndex.lf":[52668,[52668]],"./uc/src/CheckDeadline.lf":[49158,[49158]],"./uc/src/ChildBank.lf":[51778,[51778]],"./uc/src/ChildParentBank.lf":[93794,[93794]],"./uc/src/ChildParentBank2.lf":[65968,[65968]],"./uc/src/Contained.lf":[32643,[32643]],"./uc/src/Count.lf":[68845,[68845]],"./uc/src/Cycle.lf":[45152,[45152]],"./uc/src/CycleReordered.lf":[73674,[73674]],"./uc/src/CycleWithDelay.lf":[55687,[55687]],"./uc/src/Deadline.lf":[23894,[23894]],"./uc/src/DeadlineTest.lf":[78486,[78486]],"./uc/src/Decentralized.lf":[72060,[72060]],"./uc/src/DecentralizedFeeback.lf":[44764,[22383]],"./uc/src/DecentralizedFeebackSTA.lf":[84283,[84283]],"./uc/src/DecentralizedFeebackSplit.lf":[42005,[42005]],"./uc/src/DecentralizedFeebackWithAfter.lf":[2735,[2735]],"./uc/src/DecentralizedTimer.lf":[80213,[80213]],"./uc/src/DecentralizedTimerAfter.lf":[37121,[37121]],"./uc/src/DecentralizedTimerHandler.lf":[86211,[86211]],"./uc/src/DecentralizedTimerSTA.lf":[50849,[50849]],"./uc/src/DecentralizedTimerSTPDeadline.lf":[41030,[41030]],"./uc/src/DecentralizedTimerSTPHandler.lf":[86510,[86510]],"./uc/src/DecentralizedZeroDelayLoop.lf":[49823,[49823]],"./uc/src/DecentralizedZeroDelayLoopWithChecker.lf":[32690,[32690]],"./uc/src/Destination.lf":[16082,[16082]],"./uc/src/Double.lf":[67051,[67051]],"./uc/src/Extends.lf":[15411,[15411]],"./uc/src/Federated.lf":[2638,[2638]],"./uc/src/FederatedFeeback.lf":[16741,[16741]],"./uc/src/GenericDelay.lf":[68750,[68750]],"./uc/src/GenericString.lf":[31034,[31034]],"./uc/src/HelloWorld.lf":[36610,[36610]],"./uc/src/Hierarchy.lf":[37249,[37249]],"./uc/src/Interleaved.lf":[11933,[11933]],"./uc/src/MainReactor.lf":[86015,[86015]],"./uc/src/Methods.lf":[61496,[61496]],"./uc/src/Microsteps.lf":[75873,[75873]],"./uc/src/Multiport.lf":[76512,[76512]],"./uc/src/MultiportSource.lf":[84285,[84285]],"./uc/src/MultiportToBank.lf":[81667,[81667]],"./uc/src/Overwriting.lf":[91956,[91956]],"./uc/src/Physical.lf":[26987,[26987]],"./uc/src/RegressionTest.lf":[59643,[59643]],"./uc/src/Scale.lf":[66900,[66900]],"./uc/src/Schedule.lf":[14819,[14819]],"./uc/src/Simultaneous.lf":[1627,[1627]],"./uc/src/SlowingClock.lf":[61817,[61817]],"./uc/src/Sparse.lf":[26914,[26914]],"./uc/src/TestCount.lf":[34381,[34381]],"./uc/src/TimeElapsed.lf":[50149,[50149]],"./uc/src/TimeLag.lf":[53629,[53629]],"./uc/src/Timer.lf":[18423,[18423]],"./uc/src/Triggering.lf":[79482,[79482]],"./uc/src/lib/Cos.lf":[77097,[77097]],"./uc/src/test/AlignmentTest.lf":[12344,[12344]],"./uc/src/test/ContainedOverwriting.lf":[15354,[15354]],"./uc/src/test/CountDoubleDestination.lf":[46349,[46349]],"./uc/src/test/CountScale.lf":[35536,[35536]],"./uc/src/test/DestinationTest.lf":[99321,[99321]],"./uc/src/test/DoubleTest.lf":[67678,[67678]],"./uc/src/test/ExtendsTest.lf":[78628,[78628]],"./uc/src/test/HierarchyTest.lf":[13054,[13054]],"./uc/src/test/MultiportSourceTest.lf":[30562,[30562]],"./uc/src/test/PhysicalTest.lf":[92518,[92518]],"./uc/src/test/PreambleTest1.lf":[67582,[67582]],"./uc/src/test/PreambleTest2.lf":[12403,[12403]],"./uc/src/test/PreambleTest3.lf":[68760,[68760]],"./uc/src/test/PreambleTest4.lf":[16933,[16933]],"./uc/src/test/PreambleTest5.lf":[19370,[19370]],"./uc/src/test/PreambleTest6.lf":[65871,[88252]],"./uc/src/test/PreambleTest7.lf":[2996,[2996]],"./uc/src/test/ScheduleTest.lf":[48106,[48106]],"./uc/src/test/SlowingClockTest.lf":[10228,[10228]],"./uc/src/test/SparseTest.lf":[16683,[16683]],"./uc/src/test/StructParameter.lf":[8101,[8101]]};function t(e){try{if(!c.o(s,e))return Promise.resolve().then(()=>{var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r})}catch(l){return Promise.reject(l)}var r=s[e],t=r[0];return c.e(r[1][0]).then(()=>c.t(t,17))}t.keys=()=>Object.keys(s),t.id=1403,e.exports=t},34525(e,r,c){"use strict";c.r(r),c.d(r,{assets:()=>f,contentTitle:()=>a,default:()=>d,frontMatter:()=>i,metadata:()=>s,toc:()=>o});const s=JSON.parse('{"id":"reference/security","title":"Security","de
1scription":"Secure Federated Execution","source":"@site/versioned_docs/version-0.10.0/reference/security.mdx","sourceDirName":"reference","slug":"/reference/security","permalink":"/docs/0.10.0/reference/security","draft":false,"unlisted":false,"editUrl":"https://github.com/lf-lang/lf-lang.github.io/tree/master/versioned_docs/version-0.10.0/reference/security.mdx","tags":[],"version":"0.10.0","frontMatter":{"title":"Security","description":"Secure Federated Execution"},"sidebar":"handbookSidebar","previous":{"title":"Tracing","permalink":"/docs/0.10.0/reference/tracing"},"next":{"title":"Arduino","permalink":"/docs/0.10.0/embedded/arduino"}}');var t=c(74848),l=c(28453),n=c(76009);const i={title:"Security",description:"Secure Federated Execution"},a=void 0,f={},o=[{value:"Authentication",id:"authentication",level:2}];function u(e){const r={admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,l.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.Gv,{c:!0}),"\n",(0,t.jsx)(r.admonition,{type:"warning",children:(0,t.jsxs)(r.p,{children:["The experimental security features described on this page are under development and not production ready. Users should not expect their federations will be secure if the ",(0,t.jsx)(r.code,{children:"auth"})," target property is enabled."]})}),"\n",(0,t.jsxs)(r.p,{children:["By default, there is no secure authentication happening when a federate joins a federation, and data exchanged by federates is not encrypted. For targets that support it, the ",(0,t.jsx)(r.code,{children:"auth"})," target property can be used to enable authentication between federates. Messages exchanged between federates after authentication are ",(0,t.jsx)(r.strong,{children:"not encrypted"}),", but this capability is planned for the future."]}),"\n",(0,t.jsxs)(n.Ae,{c:!0,children:[(0,t.jsx)(r.h2,{id:"authentication",children:"Authentication"}),(0,t.jsxs)(r.p,{children:["For the ",(0,t.jsx)(r.code,{children:"C"})," target, federated execution is able to apply security with authentication by using HMAC authentication between RTI and federates. To enable this, include the ",(0,t.jsx)(r.code,{children:"auth"})," property in your target specification, as follows:"]}),(0,t.jsx)(r.pre,{children:(0,t.jsx)(r.code,{className:"language-lf-c",children:"target C {\n    auth: true\n};\n"})}),(0,t.jsxs)(r.p,{children:["If you would like to go back to non-AUTH mode, you would have to remove all contents of the ",(0,t.jsx)(r.code,{children:"build"})," folder."]})]})]})}function d(e={}){const{wrapper:r}={...(0,l.R)(),...e.components};return r?(0,t.jsx)(r,{...e,children:(0,t.jsx)(u,{...e})}):u(e)}},53285(e,r,c){"use strict";c.d(r,{C:()=>n});var s=c(8626),t=c(76009),l=c(74848);const n=()=>{const e={values:[...t.ED].map(([e,r])=>({value:e,label:r})),children:[],groupId:"target-languages"},{selectedValue:r}=(0,s.u)(e),c=t.ED.get(r)??r;return(0,l.jsx)(l.Fragment,{children:c})}},76009(e,r,c){"use strict";c.d(r,{Gv:()=>f,UJ:()=>h,lr:()=>y,Sk:()=>g,Ae:()=>S,ED:()=>m,wu:()=>D,zV:()=>T});var s=c(96540),t=c(8626);const l="hidden_PYVj";var n=c(74848),i=c(45645),a=c(23230);const f=e=>{if(Object.values(e).every(e=>0==e))throw new class extends Error{constructor(){super("LanguageSelector is used, but no language is supplied."),this.name="IllegalArgumentError"}};const r=Object.entries(e).filter(([e,r])=>!0===r).sort(([e],[r])=>D(e,r));return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("p",{children:(0,n.jsx)(a.A,{children:"This article has examples in the following target languages:"})}),(0,n.jsx)(i.A,{groupId:"target-languages",queryString:!0,values:r.map(([e])=>({value:e,label:m.get(e)})),children:[]})]})};var o=c(7227),u=c(71021),d=c(91539);const p=e=>{const r=Object.entries(e).sort(([e],[r])=>D(e,r));return 0!==r.length&&(0,n.jsx)(i.A,{groupId:"target-languages",queryString:!0,children:r.map(([e,r])=>(0,n.jsx)(o.A,{value:e,label:m.get(e),attributes:{className:l},children:r??""},e))})},h=e=>{const r=e.lf?d.s:u.A,{lf:c,...s}=e,t={};return Object.entries(s).forEach(([e,c])=>{t[e]=(0,n.jsx)(r,{language:e,children:c})}),(0,n.jsx)(p,{...t})};const y=({children:e,...r})=>(0,n.jsx)(n.Fragment,{}),g=({children:e})=>{const r={};
1return s.Children.forEach(e,e=>{T.forEach(c=>{if(e.props[c]){if(null!=r[c])throw Error(`Target language ${c} included more than once`);r[c]=e.props.children}})}),(0,n.jsx)(p,{...r})};c(53285);const T=["c","uc","cpp","py","rs","ts"],m=new Map([["c","C"],["uc","micro-LF"],["cpp","C++"],["py","Python"],["rs","Rust"],["ts","TypeScript"]]),C=new Map([["c",0],["uc",50],["cpp",100],["py",200],["rs",300],["ts",400]]),D=(e,r)=>(C.get(e)??0)-(C.get(r)??0),S=({children:e,inline:r,...c})=>{const s={values:[...m].map(([e,r])=>({value:e,label:r})),children:[],groupId:"target-languages"},{selectedValue:i,selectValue:a,tabValues:f}=(0,t.u)(s),o=!0===r?"span":"div";return(0,n.jsx)(o,{className:!0===c[i]?void 0:l,children:e})}},91539(e,r,c){"use strict";c.d(r,{s:()=>a});var s=c(96540),t=c(91324),l=c(7710),n=c(31712),i=c(74848);const a=({children:e,...r})=>{const c=n.A.canUseDOM,{colorMode:a,setColorMode:f}=(0,l.G)(),[o,u]=(0,s.useState)(`<div>${e}</div>`);return(0,s.useEffect)(()=>{(async()=>{if(!c)return;const r=await(0,t.loadShiki)();u(r.codeToHtml(e,{lang:"Lingua Franca",theme:"light"===a?"material-theme-lighter":"material-theme-darker"}))})()},[a]),c?(0,i.jsx)("div",{dangerouslySetInnerHTML:{__html:o}}):(0,i.jsx)("pre",{className:"shiki",children:(0,i.jsx)("code",{children:e})})}},71021(e,r,c){"use strict";c.d(r,{A:()=>n});c(96540);var s=c(71393),t=c(91539),l=c(74848);function n(e){return(0,l.jsx)(l.Fragment,{children:e.language?.startsWith("lf")||e.className?.startsWith("language-lf")?(0,l.jsx)(t.s,{...e}):(0,l.jsx)(s.A,{...e})})}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.