{
  "key": "police",
  "slug": "poliisivoimailu",
  "name": "VOIMA Poliisivoimailu",
  "version": "1.0.2",
  "sections": [
    {
      "id": "pika",
      "title": "Pika-aloitus poliisivoimailuun",
      "where": "Poliisivoimailun etusivu → valmistelu → nostot → tulokset",
      "intro": "VOIMA Poliisivoimailu 1.0.2 käyttää yhtä henkilöä ja yhteisiä fyysisiä suorituksia. Rinnakkaiset tulososallistumiset eivät luo uusia nostovuoroja.",
      "steps": [
        "Asenna erillinen Poliisivoimailu-tuote. Kirjaudu ylläpitäjänä ja luo kilpailu poliisiprofiililla. Tarkista nimi, päivä ja LIVE-valinta; harjoituksessa LIVE on pois.",
        "Valitse päivän ohjelma: Penkkipunnerrus ja maastanosto, Penkkipunnerrus tai Voimanosto ja rinnakkainen penkkikilpailu. Tallenna kilpailutapa ennen nostoja.",
        "Lisää henkilöt kerran ilmoittautumisiin. Punnitse, tallenna avauspainot, LOT ja telineet. Tarkista henkilön poliisiyksikkö ja tulososallistumiset.",
        "Muodosta jokaiselle lajille omat nostoryhmät. Tarkista esikatselu ja tallenna ryhmät. Varmista valmius, avaa sihteeri ja oikea laji sekä aloita nostot.",
        "Kirjaa yksi fyysinen suoritus vain kerran. Tarkista tulos kaikista siihen kuuluvista lajeista, vie CSV ja tulosteet sekä ota varmuuskopio."
      ],
      "effect": "Kilpailutavan, punnituksen, osallistumisten, ryhmien ja tuomioiden tallennus muuttavat kilpailua. Tulosnäyttö on katselua.",
      "result": "Päivän lajit käyttävät samaa henkilörekisteriä ja oikeita yhteisiä suorituksia.",
      "next": "Tarkista erityisesti rinnakkaisen penkkituloksen ja poliisiyksikköpisteiden rajaukset.",
      "image": "police-program",
      "note": "Järjestäjä vahvistaa käytettävät kilpailusäännöt. Ohje kuvaa ohjelman toimintaa; ohjelma ei hyväksy kilpailua viralliseksi.",
      "covers": [
        "Pikapolku",
        "Yhden henkilön malli",
        "Kolme päivän ohjelmaa"
      ],
      "verification": "Kaikki kolme ohjelmavaihtoehtoa ja niiden esimerkkitulokset tarkistettu",
      "caption": "Poliisivoimailu: kuusi henkilöä, 12 tulososallistumista ja lajikohtaiset ryhmät.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "asennus",
      "title": "Asenna ja kirjaudu",
      "where": "Windows • ensikäynnistys",
      "intro": "Käyttö on maksutonta. Ohjelmistolisenssin aktivointia, käyttöaikarajaa tai laiterajaa ei ole. Kirjautuminen suojaa kilpailun muokkausta; kilpailijan mahdollinen kilpailulisenssi on eri asia.",
      "steps": [
        "Lataa oikean tuotteen Setup tai portable-ZIP powerliftingstream.fi-sivustolta. Tarkista versionumero ja sivun SHA-256. Setup asentaa ohjelman; portable-paketti puretaan kokonaan omaan kansioon.",
        "Käynnistä VOIMA-Poliisivoimailu.exe. Pythonia tai Node.js:ää ei asenneta erikseen. Säilytä ohjelman mukana tuleva _internal-kansio. Älä sekoita kolmen tuotteen asennuskansioita.",
        "Ensikäynnistyksessä valitse Kopioi salasana ja Jatka kirjautumiseen. Käytä ikkunan omaa ylläpitotunnusta, liitä salasana ja vaihda se ohjelman pyytämässä vaiheessa. Säilytä uudet tunnukset järjestäjän hallinnassa.",
        "Luo tarvitut toimitsijatunnukset käyttöönoton ohjeella. Kirjaudu omaan tehtävään sopivalla tunnuksella. Tarkista palvelinyhteys ja ohjelman versio ennen harjoituskilpailua."
      ],
      "effect": "Asennus luo tuotteen oman tietokansion, paikallisen HTTPS-varmenteen ja ylläpitotunnuksen. Kirjautuminen ei luo kilpailua.",
      "result": "Tietokansio on %LOCALAPPDATA%\\VOIMA\\Poliisivoimailu. Tavalliset portit: HTTPS 5060, Companion relay 8847.",
      "next": "Tee harjoituskilpailu ennen oikean tapahtuman perustamista.",
      "image": "police-login",
      "note": "Koe ajettiin 1.0.2-julkaisun muuttamattomasta lähteestä eristetyssä tietokansiossa porteilla 5560 ja 8947. Julkaistu käynnistin käyttää portteja 5060 ja 8847, jotka olivat koneella varattuja. Erillissivun vanha alateksti näyttää 1.0.0; se ei ole luotettava paketin version tarkistus. Tarkista ladatun paketin versio ja tiiviste.",
      "covers": [
        "Setup / portable",
        "Ensikäynnistys",
        "Kirjautuminen ja salasanan vaihto",
        "Toimitsijatunnusten käyttöönotto"
      ],
      "verification": "Julkaisupaketin tiiviste tarkistettu; eristetty käyttökoe saman julkaisun lähteestä",
      "caption": "Poliisivoimailun kirjautuminen. Vanha alateksti 1.0.0 poikkeaa tarkistetusta 1.0.2-julkaisulähteestä.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "kilpailu",
      "title": "Kilpailutiedosto ja päivän ohjelma",
      "where": "Kilpailutiedosto • Kilpailutapa",
      "intro": "Poliisivoimailun etusivu näyttää valitun kilpailun nimen, päivän, nostajien määrän, tulososallistumiset ja lajikohtaiset ryhmät.",
      "steps": [
        "Avaa Kilpailutiedosto ja luo uusi kilpailu. Valitse poliisivoimailun profiili. Tarkista myös laji ja varustemuoto. Uusi kilpailu tallentuu omaksi tiedostokseen.",
        "Palaa Poliisivoimailuun. Valitse Päivän ohjelma ja Tallenna kilpailutapa. Tarkista otsikon alla näkyvä ohjelma sekä sallitut lajit.",
        "Päivän ohjelmaa ei vaihdeta kesken jo ratkaistujen nostojen. Toisenlaisen tapahtuman harjoitteluun luodaan uusi kilpailutiedosto. Vanha tiedosto säilyy valittavana.",
        "Tarkista LIVE-valinta erikseen. LIVE-julkaisuyhteys ja kilpailun perustiedot avaa asetukset, mutta paikallinen admin ei automaattisesti saa sivuston ylläpitäjän oikeuksia."
      ],
      "effect": "Päivän ohjelman tallennus muuttaa lajivalintoja ja tuloslaskennan rakennetta. Tiedoston vaihto vaihtaa aktiivisen kilpailun.",
      "result": "Valittu ohjelma vastaa tapahtuman oikeita suorituksia ja tuloslajeja.",
      "next": "Lisää ja punnitse henkilöt kerran, sitten määritä heidän tulososallistumisensa.",
      "image": "police-program",
      "note": "Voimanosto ja rinnakkainen penkkikilpailu ei tarkoita kahta erillistä penkkisarjaa. Penkki ja maastanosto eivät muodosta ohjelmassa uutta yhteistuloslajia.",
      "covers": [
        "Kilpailutiedoston luonti",
        "Ohjelmavalinta",
        "Ohjelman vaihtorajoitus",
        "Aktiivinen tiedosto"
      ],
      "verification": "Lähde ja luvun kuvattu näkymä tarkistettu; kaikkia toimintohaaroja ei ajettu",
      "caption": "Poliisivoimailu: kuusi henkilöä, 12 tulososallistumista ja lajikohtaiset ryhmät.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "roolit",
      "title": "Tehtävät ja navigointi",
      "where": "Avaa navigaatio • Hallinta",
      "intro": "Valikko ryhmittelee työn kilpailuun, valmisteluun, näyttöihin, hallintaan ja ohjeisiin. Lisätoiminnot ja erillisnäkymät avaa kunkin ryhmän muut työkalut. Rooli rajaa käyttäjän toimintoja.",
      "steps": [
        "Ylläpitäjä valmistelee tunnukset ja pääsyn. Sihteeri ohjaa kilpailua, kuuluttaja kuuluttaa ja sovitusti käyttää kelloa, jury käsittelee päätökset ja streamaaja videon.",
        "Avaa näkymä valikon linkistä. Linkin vieressä olevat painikkeet avaavat uuden välilehden tai oman ikkunan. Tarkista aina kilpailun nimi ja aktiivinen ryhmä ennen muuttavaa toimintoa.",
        "Käyttäjähallinnassa luo käyttäjälle vain tarvittu tehtävä. Käytä henkilökohtaisia tuomaritunnuksia ja määritä heidän paikkansa; tunnuksen olemassaolo ei yksin määrää kilpailun tuomaritehtävää.",
        "Toimitsijat ja kulkutunnisteet kokoaa henkilöt ja tehtävät. Tarkista oikea henkilö ennen laiteparitusta. Vapaasti kirjoitettu nimi ei saa myöntää kehittäjäoikeutta."
      ],
      "effect": "Valikon ja välilehden valinta on katselua. Käyttäjä-, tehtävä- ja laitevaltuutusten tallennus muuttaa oikeuksia.",
      "result": "Kukin toimitsija käyttää omaa työpistettään ja sopivaa näkymää.",
      "next": "Perusta kilpailu ja sen osallistujat. Säilytä ylläpitäjän tunnukset erillään yleisönäytöistä.",
      "image": "police-program",
      "note": "Palvelimella hyväksytty pysyvä developer-lisärooli säilyy muiden tehtävien rinnalla. Sitä ei päätellä näyttönimestä. Ohjekuvissa ei esitetä oikeita käyttäjäluetteloita tai salasanoja. Poliisivoimailussa käytetään päivän ohjelman avauspainoja; rinnakkaistulos ei vaadi toista ilmoittautumista.",
      "covers": [
        "Navigaatio",
        "Käyttäjähallinta",
        "Toimitsijat ja kulkutunnisteet",
        "Lisäroolit"
      ],
      "verification": "Lähde ja luvun kuvattu näkymä tarkistettu; kaikkia toimintohaaroja ei ajettu",
      "caption": "Poliisivoimailu: kuusi henkilöä, 12 tulososallistumista ja lajikohtaiset ryhmät.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "ilmoittautuminen",
      "title": "Ilmoittautumiset ja tiedostotuonti",
      "where": "Kilpailun valmistelu → Ilmoittautumiset",
      "intro": "Ilmoittautuminen säilyttää henkilön perustiedot ennen punnitusta. Viitehaku on apu henkilön tunnistamiseen, ei vahvistus nykyisestä kehonpainosta tai lisenssistä.",
      "steps": [
        "Valitse Uusi tai oikea henkilö listalta. Syötä etu- ja sukunimi, sukupuoli, syntymävuosi, seura ja kilpailumuoto. Tarkista sarja sekä virallinen/epävirallinen osallistuminen.",
        "Anna LOT tai käytä sovittua lotitusta. Ryhmävihje auttaa tuonnin ryhmittelyssä, mutta tarkista lopulliset ryhmät erikseen. Tallenna ilmoittautuminen.",
        "CSV-, Excel- tai JSON-tuonnissa valitse näkymän tukema muoto. Tarkista esikatselun henkilöt, sarjat, LOT, ryhmät ja puuttuvat tiedot ennen vahvistusta. Säilytä alkuperäinen tuontitiedosto.",
        "OpenIPF- ja Voimanostajat.fi-hakuja käyttäessä varmista henkilö ja syntymävuosi. Älä arvaa tarkkaa vuotta pelkän ikäluokan perusteella. Haku ei korvaa punnitusta."
      ],
      "effect": "Haku ja esikatselu ovat katselua. Ilmoittautumisen tallennus, vahvistettu tuonti ja lotitus muuttavat tietoja.",
      "result": "Urheilija löytyy punnituksen henkilövalinnasta ilman uudelleen luotua kaksoiskappaletta.",
      "next": "Vahvista henkilö ja kirjaa todellinen punnitus.",
      "image": "police-registration",
      "note": "Suomisportin lisenssi- ja antidopingtarkistus tarvitsee järjestäjän erilliset API-oikeudet. Puuttuva yhteys tai haku ei todista lisenssin puuttumista. Ulkoista hakua ja kaikkia tuontipohjia ei testattu tässä ohjekokeessa. Poliisivoimailussa käytetään päivän ohjelman avauspainoja; rinnakkaistulos ei vaadi toista ilmoittautumista.",
      "covers": [
        "Ilmoittautumiset",
        "CSV / Excel / JSON",
        "LOT",
        "OpenIPF",
        "Voimanostajat.fi",
        "Suomisport"
      ],
      "verification": "Lähde ja luvun kuvattu näkymä tarkistettu; kaikkia toimintohaaroja ei ajettu",
      "caption": "Poliisivoimailun ilmoittautumisten valmistelu.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "punnitus",
      "title": "Punnitse oikea henkilö",
      "where": "Kilpailun valmistelu → Punnitus",
      "intro": "Valitse henkilö ennen painojen syöttämistä. Punnitsemattomat, Kaikki ja Valmiit ovat listan rajauksia; niiden käyttö ei muuta punnitustietoa.",
      "steps": [
        "Hae nimi, seura, sarja tai LOT. Valitse urheilija listasta tai Valittu urheilija -valikosta. Varmista henkilöllisyys ja tarkista, ettei saman henkilön toinen tietue ole valittuna.",
        "Syötä mitattu kehonpaino ja kyseisen kilpailun avauspainot. Tarkista sarja, LOT ja varustemuoto. Pelkässä penkkikilpailussa tarvitaan penkin avaaja.",
        "Prosenttiehdotus käyttää tallennettuja ennätystietoja ja pyöristää 2,5 kg:n portaaseen alaspäin. Se on ehdotus; varmista urheilijan ilmoitus ennen tallennusta.",
        "Tallenna punnitus. Tarkista kuittaus, Punnittu-tila ja tallentuneet arvot. Punnitusajan ja tietojen näkyvyyden on vastattava kilpailun aikataulua."
      ],
      "effect": "Suodatus ja henkilön valinta ovat katselua. Tallenna punnitus kirjoittaa kehonpainon, avauspainot ja tekniset tiedot kilpailijalle.",
      "result": "Harjoituskuvan Aino Esimerkin kehonpaino on 62,4 kg. Tiedot liittyvät samaan ilmoittautumiseen ja henkilöön.",
      "next": "Tarkista telineet ja lisää urheilija oikeaan ryhmään.",
      "image": "police-weighin",
      "note": "Nollaa punnitus vaatii vahvistuksen. Se poistaa punnituskohtaisia tietoja ja ryhmäkytkentöjä, mutta säilyttää ilmoittautumisen ja LOT:n. Jo nostaneen tai aktiivisen henkilön nollausta rajataan. Kokeessa avattiin vahvistus ja peruttiin nollaus. Poliisivoimailussa käytetään päivän ohjelman avauspainoja; rinnakkaistulos ei vaadi toista ilmoittautumista.",
      "covers": [
        "Punnitus",
        "Punnituksen rajaukset",
        "Avauspainoehdotus",
        "Punnituksen nollaus"
      ],
      "verification": "Punnitus tallennettu testissä; nollauksen vahvistus tarkistettu ja peruttu",
      "caption": "Poliisivoimailun punnitus yhteiseen henkilöön.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "telineet",
      "title": "Telineet ja lastauksen tiedot",
      "where": "Punnitus • Lavan näyttö • Kilpailun ohjaus",
      "intro": "Telinekorkeudet ovat laitekohtaisia. Aiemmin muistettu arvo on lähtökohta, jonka oikeellisuus tarkistetaan kilpailupaikan telineillä.",
      "steps": [
        "Kirjaa kyykkytelineen korkeus ja asento: normaali, molemmat sisään tai yksittäinen puoli sisään. Kirjaa penkkiteline, turvaraudat ja käsilleanto.",
        "Valitse tarvittaessa jalkakorokkeet. Näkymän hyväksymät korokearvot ovat 0, 5, 10, 15 tai 20 cm. Tallenna punnitus tai käytä sihteerin Tallenna telineet -toimintoa myöhemmässä korjauksessa.",
        "Lavan näyttö näyttää aktiivisen nostajan kuorman, yhden päädyn lastauksen ja tekniikkatiedot. Tarkista tanko, lukot ja levyvalikoima myös fyysisesti.",
        "Lastausapuun syötetty Override-paino on näkymän kokeilu. Varsinainen noston paino kirjataan oikean henkilön ja yrityksen kuormakenttään ja tallennetaan."
      ],
      "effect": "Telineiden tallentaminen muuttaa kilpailijan teknisiä tietoja. Lastausavun paikallinen painokokeilu ei ole painoilmoitus.",
      "result": "Lastaajilla on nostajan tarkistetut teline- ja kuormatiedot.",
      "next": "Varmista lastaus ennen Tanko valmis -komentoa.",
      "image": "police-weighin",
      "note": "±500 g:n hienosäätö kuuluu vain sääntöjen sallimaan poikkeukseen, kuten hyväksyttyyn ennätysyritykseen. Käyttöliittymän painike ei itsessään anna oikeutta poikkeukseen. Poliisivoimailussa käytetään päivän ohjelman avauspainoja; rinnakkaistulos ei vaadi toista ilmoittautumista.",
      "covers": [
        "Telinekorkeudet",
        "Käsilleanto",
        "Jalkakorokkeet",
        "Lastausapu",
        "Hienosäätö"
      ],
      "verification": "Lähde ja luvun kuvattu näkymä tarkistettu; kaikkia toimintohaaroja ei ajettu",
      "caption": "Poliisivoimailun punnitus yhteiseen henkilöön.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "osallistumiset",
      "title": "Rinnakkaisosallistumiset ja poliisiyksikkö",
      "where": "Rinnakkaisosallistumiset ja poliisiyksiköt",
      "intro": "Nostajia-luku laskee fyysiset henkilöt. Tulososallistumisia-luku voi olla suurempi, koska sama suoritus voidaan sijoittaa useampaan tuloslaskentaan.",
      "steps": [
        "Tunnista henkilö LOT-numerosta, nimestä, syntymävuodesta ja sarjasta. Tarkista, ettei ilmoittautumisessa ole samasta ihmisestä kahta henkilöä.",
        "Kirjoita poliisiyksikkö henkilön omalle riville. Käytä kaikilla saman yksikön henkilöillä samaa kirjoitusasua.",
        "Valitse vain tapahtumaan kuuluvat tulososallistumiset: esimerkiksi Voimanosto ja Penkki. Tallenna kyseinen rivi ja tarkista palvelimen kuittaus.",
        "Kun lisäät henkilön uuteen lajiin, muodosta ja tarkista sen lajin ryhmät uudelleen. Tarkista myöhemmin, että penkin yhteinen tulos näkyy molemmissa valituissa tuloslajeissa."
      ],
      "effect": "Rivin Tallenna muuttaa henkilön yksikköä ja tulososallistumisia. Rasti tai tekstimuutos ennen tallennusta ei ole vahvistettu muutos.",
      "result": "Harjoituksen kuudesta nostajasta syntyy 12 tulososallistumista, mutta jokaisella on vain yksi fyysinen penkkisarja.",
      "next": "Jaa jokaisen lajin osallistujat omiin nostoryhmiinsä.",
      "image": "police-sorsa-approval",
      "note": "Haamu tarkoittaa tässä rinnakkaista tulosta. Älä lisää uutta henkilöä tai ylimääräistä nostovuoroa sen toteuttamiseksi. SVNL-vientiin-sarake on erillinen vahvistus; katso Sorsa-viennin luku. Se ei tee lisenssitarkistusta automaattisesti.",
      "covers": [
        "Poliisiyksikkö",
        "Rinnakkaisosallistuminen",
        "Haamutulos",
        "Rivikohtainen tallennus"
      ],
      "verification": "Kuuden henkilön 12 osallistumista ja yhteiset tulokset varmennettu",
      "caption": "Tulososallistumiset ja SVNL-vientiin tehtävät erilliset vahvistukset. Kuvan valinnat ovat synteettistä harjoittelua.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "ryhmat",
      "title": "Lajikohtainen ryhmäjako",
      "where": "Nopea ryhmäjako",
      "intro": "Kyykky, penkki ja maastanosto ryhmitellään erikseen. Sama henkilö voi nostaa eri lajeissa eri ryhmänumerolla.",
      "steps": [
        "Valitse Laji ja Nostoryhmiä. Muodosta ehdotus LOT-järjestyksessä tekee esikatselun. Kilpailun tallennettu ryhmäjako ei vielä muutu.",
        "Tarkista esikatselussa jokainen nostaja ja ehdotettu ryhmä. Muuta henkilön ryhmä tarvittaessa. Jokaisen kyseisen lajin osallistujan tulee olla mukana täsmälleen kerran.",
        "Tallenna ryhmäjako vasta tarkastuksen jälkeen. Varmista lajikohtaisesta yhteenvedosta ryhmien nimet ja nostajamäärät. Toista sama seuraavalle lajille.",
        "Tulosta ryhmät ja tarkista nostojärjestys sihteerin näkymässä. Ryhmiä ei vaihdeta aktiivisen nostokutsun tai kellon aikana. Tee korjaus sovitulla tauolla."
      ],
      "effect": "Ehdotuksen muodostus ja tulostus ovat katselua. Tallenna ryhmäjako kirjoittaa lajin ryhmät kilpailuun.",
      "result": "Jokaisella päivän lajilla on tarkistettu ryhmäjako. Harjoituksessa tehtiin kaksi kolmen nostajan ryhmää kuhunkin lajiin.",
      "next": "Varmista valmius ja avaa sihteerin oikea laji sekä ensimmäinen ryhmä.",
      "image": "police-groups-preview",
      "note": "Ohjelma rajoittaa ryhmäkoon tavallisesti 14 nostajaan; pelkässä penkkiohjelmassa raja on 20. Tarkista ohjelman ilmoittama rajoitus ja kilpailun säännöt.",
      "covers": [
        "Lajikohtaiset ryhmät",
        "LOT-esikatselu",
        "Ryhmän käsinkorjaus",
        "Ryhmien tallennus",
        "Ryhmätuloste"
      ],
      "verification": "Esikatselun muuttamattomuus ja kaikkien kolmen lajin tallennus varmennettu",
      "caption": "LOT-järjestyksen ryhmäehdotus ennen sen tallentamista.",
      "phase": "Ennen kilpailua"
    },
    {
      "id": "aloitus",
      "title": "Valmiustarkistus ja kilpailun käynnistys",
      "where": "Kilpailun ohjaus → Avaa ohjaus",
      "intro": "Ylärivi kertoo kilpailun vaiheen, ryhmän, lajin ja kierroksen. Valmiustarkistus kokoaa puutteet ennen käynnistystä tai siirtymää.",
      "steps": [
        "Avaa ohjaus ja Näytä valmiustarkistus. Korjaa puuttuvat punnitukset, avaajat, LOT-ristiriidat, ryhmät ja muut estävät puutteet niiden omissa näkymissä.",
        "Tarkista Kilpailun lajien ja ryhmien kulku sekä ensimmäisen noston tiedot. Valitse oikea ryhmä ja osalaji. Älä käytä vaiheenvaihtoa vain päästäksesi lukituksen ohi.",
        "Tarkista erikseen Automaattiset tauot, Automaattiset kierrokset ja Automaattiset ryhmänvaihdot. Niillä on eri tehtävät; yhden valinta ei tarkoita kaikkien olevan päällä.",
        "Aloita kilpailu sovitun aikataulun mukaan. Tarkista ensimmäinen aktiivinen nostaja. Nostokello alkaa vasta Tanko valmis -toiminnosta."
      ],
      "effect": "Käynnistys, automatiikan valinnat ja vahvistettu vaiheenvaihto muuttavat yhteistä kilpailutilaa. Valmiustarkistuksen avaaminen on katselua.",
      "result": "Päivän ensimmäinen lajikohtainen ryhmä on käynnissä ja aktiivisen nostajan tiedot vastaavat tarkistettua nostojärjestystä.",
      "next": "Varmista lastaus ja seuraa yhden noston työjärjestystä.",
      "image": "police-secretary",
      "note": "Poikkeusperuste on kilpailun johtajan vahvistamalle poikkeukselle. Keskeneräisen kierroksen ilmoitus tarkoittaa, että ratkaisemattomat nostot on ensin selvitettävä. Poliisivoimailun yhteisessä kilpailunohjauksessa tarkista lisäksi päivän ohjelma ja lajin oma ryhmä.",
      "covers": [
        "Valmiustarkistus",
        "Aloita kilpailu",
        "Automaattiset kierrokset",
        "Automaattiset ryhmänvaihdot",
        "Lajien kulku"
      ],
      "verification": "Yhteinen näkymä tarkistettu; poliisin suoritusten lähde ja esimerkkitulokset varmennettu",
      "caption": "Poliisivoimailun valmisteluvaihe ennen ensimmäisen nostoryhmän käynnistämistä.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "nosto",
      "title": "Yhden noston työjärjestys",
      "where": "Kilpailun ohjaus • Nyt lavalla",
      "intro": "Sihteerin kolme lohkoa ovat Lavalta palaava, Nyt lavalla ja Seuraavana. Ne voivat näyttää eri henkilöt ja eri tehtävät samanaikaisesti.",
      "steps": [
        "Tarkista Nyt lavalla -henkilö, LOT, laji, yritys ja kilogrammat. Vertaa lavan kuormaan ja telineisiin. Seuraavana-lohkon kuormakenttä ei kuulu aktiiviselle nostajalle.",
        "Tallenna tarvittaessa kuorma tai telineet omalla painikkeellaan. Varmista lastaajien ilmoitus. Sovittu toimitsija painaa Tanko valmis vain kerran.",
        "Odota tuomareiden ratkaisu. Tarkista valot ja tulostaulu. Hyväksy, Hylkää ja Ei nosta ovat sihteerin muuttavia pikapäätöksiä, eivät harjoituspainikkeita oikeassa kilpailussa.",
        "Vastaanota palaavan nostajan korotus ja tarkista oikea laji sekä seuraava yritys. Tallenna ilmoitus sallitussa ikkunassa. Varmista seuraava kutsu ja kuorma ennen uutta kelloa."
      ],
      "effect": "Tallenna kuorma, telineet, tuomarivalot ja pikapäätökset tallentavat kilpailutietoa. Pikapäätös asettaa kaikki kolme valoa; yksittäisen tuomarin painike muuttaa yhtä tuomiota.",
      "result": "Hyväksytty yritys näkyy tulostaulussa ja seuraava yritys muodostuu kilpailun sääntöjen mukaan.",
      "next": "Tarkista avoimet korotusikkunat ja seuraava nostovuoro.",
      "image": "main-secretary-attempt",
      "note": "Kapea selainikkuna voi sijoittaa ohjauksen useaan vieritettävään osaan. Vieritä oikean henkilön koko kortti näkyviin. Tarkista nimi uudelleen, jos näkymä päivittyy kesken kirjauksen. Poliisivoimailun yhteisessä kilpailunohjauksessa tarkista lisäksi päivän ohjelma ja lajin oma ryhmä. Kuva yhteisestä näkymästä on Tulospalvelu 1.0.29:stä, ellei kuvateksti sano muuta.",
      "covers": [
        "Nyt lavalla",
        "Lavalta palaava",
        "Seuraavana",
        "Kuorman tallennus",
        "Manuaalinen tuomio"
      ],
      "verification": "Yhteinen näkymä tarkistettu; poliisin suoritusten lähde ja esimerkkitulokset varmennettu",
      "caption": "Tulospalvelun yhteinen sihteerinäkymä aktiivisen noston aikana. Poliisivoimailussa valitaan lisäksi lajin oma ryhmä.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "kellot",
      "title": "Nostokello, tauot ja kierroksen vaihto",
      "where": "Kilpailun ohjaus • Kuuluttaja • ajastimet",
      "intro": "Nostokello, korotusikkuna ja kilpailutauko ovat erillisiä ajastimia. Kellon päättyminen ei itsessään ratkaise noston tuomiota.",
      "steps": [
        "Tanko valmis käynnistää aktiivisen noston kellon. Tarkista vaikutus sekä sihteerin että lavan näytöstä. Pysäytä tai keskeytä kello vain sovitun toimitsijan päätöksellä.",
        "Kierroksen lopussa tarkista ratkaisemattomat yritykset ja avoimet korotusikkunat. Automatiikka odottaa tarvittavia ehtoja ennen seuraavaa kierrosta.",
        "Tasausaika ja lajinvaihtotauko perustuvat ryhmiin ja kilpailun tilanteeseen. Harjoituksen kolmen nostajan ryhmälle syntyi kolmen minuutin tasausaika ennen kierrosta kaksi.",
        "Teknisessä häiriössä käytä kilpailun johtajan kanssa sovittua teknistä taukoa. Kirjaa viimeinen tallentunut tilanne. Tauko 10 min, Tauko 20 min ja tekninen tauko eivät ole kilpailun lopetus.",
        "Jatkettaessa tarkista ryhmä, laji, kierros, nostaja ja kellon tila. Automaattinen kierros ei automaattisesti anna Tanko valmis -komentoa."
      ],
      "effect": "Kellokomennot ja kilpailuvaiheen vaihto vaikuttavat kaikkiin työpisteisiin. Äänimuistutuksen kuittaus ei pysäytä nostokelloa.",
      "result": "Nostojärjestyksen näytön Alustava/Lopullinen-tila ja ajastimet vastaavat kilpailun vaihetta.",
      "next": "Anna uusi nostokutsu vasta oikealle nostajalle ja tarkistetulle kuormalle.",
      "image": "main-next",
      "note": "Kaikkia poikkeusaikoja, fyysisiä tuomarinappeja ja koko pitkän kilpailun kierrosketjua ei ajettu tässä ohjekokeessa. Poliisivoimailun yhteisessä kilpailunohjauksessa tarkista lisäksi päivän ohjelma ja lajin oma ryhmä. Kuva yhteisestä näkymästä on Tulospalvelu 1.0.29:stä, ellei kuvateksti sano muuta.",
      "covers": [
        "Nostokello",
        "Tasausaika",
        "Lajinvaihtotauko",
        "Tekninen tauko",
        "Äänien kuittaus"
      ],
      "verification": "Yhteinen näkymä tarkistettu; poliisin suoritusten lähde ja esimerkkitulokset varmennettu",
      "caption": "Nostokello, tauot ja kierroksen vaihto – todellinen harjoitusnäkymä.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "korotukset",
      "title": "Korotuslaput ja avauspainon korjaus",
      "where": "Korotuslaput • sihteerin ohjaus",
      "intro": "Korotus kuuluu tietylle henkilölle, lajille ja yritykselle. Avoin ikkuna ja palvelimen hyväksyntä ratkaisevat tallentuuko ilmoitus.",
      "steps": [
        "Valitse oikea kilpailija, laji ja yritys. Tarkista viimeisin tuomio sekä seuraavan kuorman sallittu vähimmäisarvo. Kirjaa ilmoitettu paino tulostaulun tai sihteerin kuormakenttään.",
        "Korotuslaput-näkymä näyttää aktiivisen ikkunan ja aiemmat ikkunat. Manuaalinen Käynnistä 60 s tai valittu kesto avaa ajastimen valitulle kohteelle; se ei yksin kirjaa kilogrammoja.",
        "Tarkista palvelimen kuittaus ja uusi paino. Hyväksytty korotus sulkee kyseisen nostajan korotusajastimen. Älä sekoita ikkunan Pysäytä-painiketta nostokellon pysäytykseen.",
        "Avauspainon sallitut muutokset riippuvat aikataulusta, lajista ja käytetyistä muutoskerroista. Jos ennakkokuulutus jäi todella antamatta, käytä sihteerin erillistä korjausta, kirjaa syy ja sovi kuulutus. Älä palauta kilpailun vaihetta taaksepäin lukituksen kiertämiseksi."
      ],
      "effect": "Ajastimen käynnistys ja kuorman tallennus muuttavat kilpailua. Historian näyttäminen ja kohteen valinta ovat katselua.",
      "result": "Oikealla seuraavalla yrityksellä on palvelimen hyväksymä kuorma ja ilmoituksen tila.",
      "next": "Varmista nostojärjestys ja kerro tarvittava muutos lastaajille.",
      "image": "main-declarations",
      "note": "Kolmannen yrityksen muutoksia, ennätyspainoja ja aikarajan poikkeuksia ei pidä päätellä pelkästä muokattavasta kentästä. Noudata kilpailun voimassa olevia sääntöjä ja juryn päätöstä. Poliisivoimailun yhteisessä kilpailunohjauksessa tarkista lisäksi päivän ohjelma ja lajin oma ryhmä. Kuva yhteisestä näkymästä on Tulospalvelu 1.0.29:stä, ellei kuvateksti sano muuta.",
      "covers": [
        "Korotusikkuna",
        "Painoilmoitus",
        "Avauspainon ennakkokuulutus",
        "Kolmas yritys"
      ],
      "verification": "Yhteinen näkymä tarkistettu; poliisin suoritusten lähde ja esimerkkitulokset varmennettu",
      "caption": "Korotuslappujen ja avauspainon hallinta.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "korjaukset",
      "title": "Korjaa tieto tai tuomio",
      "where": "Virhetilanteet • Poikkeustilanteet ja kilpailutyökalut",
      "intro": "Historiallinen korjaus kohdistuu vanhaan yritykseen. Se ei saa siirtää nykyistä nostovuoroa vanhalle nostajalle.",
      "steps": [
        "Ota tarvittaessa palautuspiste. Avaa Virhetilanteet, poista Seuraa aktiivista nostajaa ja valitse oikea henkilö, laji ja yritys.",
        "Vertaa alkuperäiseen kirjaukseen tai juryn päätökseen. Korjaa paino tai tarpeellinen yksittäinen valo. HYVÄKSY ja HYLKÄÄ asettavat kaikki kolme valoa, EI TULE NOSTAMAAN merkitsee poisjäännin.",
        "Tallenna kerran. Tarkista korjattu tulos ja nykyinen lavalla oleva nostaja. Ilmoita korjauksesta kuuluttajalle erikseen; vanhaa tuomiota ei käsitellä uutena suorana lähetyksenä.",
        "Henkilö-, seura-, ryhmä- ja poisjääntikorjauksiin avaa sihteerin työkalut → Korjaa / poisjäänti tai Massamuutos. Kirjoita syy, tarkista vanha/uusi arvo esikatselusta ja vahvista vain valitut henkilöt."
      ],
      "effect": "Korjausten vahvistus muuttaa kilpailua. Esikatselu ja sijoituslaskurin kokeilu eivät kirjoita tulosta.",
      "result": "Tieto korjaantuu, muutos voidaan jäljittää ja aktiivinen kilpailu jatkuu oikeasta kohdasta.",
      "next": "Jos kyseessä on juryn myöntämä uusinta, käytä erillistä uusintanostoa.",
      "image": "main-manual",
      "note": "Älä vaihda kilpailijan tietuetta toiseksi ihmiseksi. Massamuutosta ja vanhan tilan palautusta ei suoritettu ohjekokeessa; niiden lomakkeet ja lähdekäsittely tarkistettiin. Poliisivoimailun yhteisessä kilpailunohjauksessa tarkista lisäksi päivän ohjelma ja lajin oma ryhmä. Kuva yhteisestä näkymästä on Tulospalvelu 1.0.29:stä, ellei kuvateksti sano muuta.",
      "covers": [
        "Virhetilanteet",
        "Historiallinen korjaus",
        "Korjaa / poisjäänti",
        "Massamuutos",
        "Sijoituslaskuri"
      ],
      "verification": "Yhteinen näkymä tarkistettu; poliisin suoritusten lähde ja esimerkkitulokset varmennettu",
      "caption": "Suorituksen käsinkorjaus oikeaan henkilöön, lajiin ja yritykseen.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "jury",
      "title": "Jury ja uusintanosto",
      "where": "Jury • Virhetilanne / uusintanosto",
      "intro": "Juryn päätöspaneeli kokoaa lavan tilanteen, kamerakulmat ja aiemmat ratkaisut. Kameraa ei ole pakko käyttää paikalliseen tuloskirjaukseen.",
      "steps": [
        "Tarkista käsiteltävä henkilö, laji ja yritys. Katso kolmea viimeisintä ratkaisua ja tarvittaessa käytössä olevia kameroita. Yhteyden tai videolähteen puuttuminen merkitään näkyviin.",
        "Tee juryn päätös kilpailun menettelyn mukaan ja varmista, että sihteeri kirjaa sen oikeaan yritykseen. Tavallinen tuomarin tunnus ja jurytehtävä ovat eri valtuuksia.",
        "Myönnetty uusinta kirjataan sihteerin Virhetilanne / uusintanosto -lomakkeella. Valitse henkilö, laji, yritys, paino, ajankohta ja lepoaika sekä päätöksen peruste.",
        "Tarkista avoimien uusintanostojen lista ja sijoittuminen nostojärjestykseen ennen jatkoa. Älä korvaa uusintaa tavallisella ylimääräisellä yrityksellä."
      ],
      "effect": "Paneelin katselu ei muuta tulosta. Päätöksen vahvistus, sihteerin tuomiokorjaus ja uusinnan kirjaaminen muuttavat kilpailua.",
      "result": "Juryn ratkaisu ja mahdollinen uusinta kohdistuvat oikeaan nostoon.",
      "next": "Varmista sihteerin, kuuluttajan ja lavan yhteinen tilanne.",
      "image": "main-jury",
      "note": "Kokeessa ei ollut fyysisiä kameroita tai erillisiä jury- ja tuomarilaitteita. Juryn usean käyttäjän päätösprosessia ja uusinnan koko nostoketjua ei hyväksyntätestattu. Poliisivoimailun yhteisessä kilpailunohjauksessa tarkista lisäksi päivän ohjelma ja lajin oma ryhmä. Kuva yhteisestä näkymästä on Tulospalvelu 1.0.29:stä, ellei kuvateksti sano muuta.",
      "covers": [
        "Jury",
        "Tuomion käsittely",
        "Uusintanosto",
        "Jurykamera"
      ],
      "verification": "Yhteinen näkymä tarkistettu; poliisin suoritusten lähde ja esimerkkitulokset varmennettu",
      "caption": "Juryn näkymä ilman yhdistettyjä fyysisiä kameroita.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "selainvarat",
      "title": "Tuomarointi selaimella ja varalinkki",
      "where": "/fallback/ • /fallback/judge.html • /fallback/athlete.html",
      "intro": "Kevyt varanäkymä toimii ilman Companion-sovellusta ja relaytä. Kilpailupalvelimen ja lähiverkon täytyy silti toimia.",
      "steps": [
        "Avaa palvelinkoneen oma HTTPS-osoite ja /fallback/. Tuomari avaa Tuomari-linkin ja kirjautuu omalla tunnuksellaan, jolla on määrätty tuomaripaikka.",
        "Tarkista aktiivinen kilpailu, henkilö, laji ja yritys. Anna vain oma ratkaisu. Varmista palvelimen kuittaus ja oman tuomion tila ennen seuraavaa nostoa.",
        "Kilpailijan varalinkkiä varten toimitsija kirjautuu varasivun etusivulla, valitsee oikean nostajan ja muodostaa kertakäyttölinkin. Anna se vain kyseiselle henkilölle.",
        "Kilpailija avaa linkin samassa selaimen välilehdessä ja ilmoittaa seuraavan painon avoimen korotusikkunan aikana. Epäselvää tai vanhentunutta lähetystä ei jonoteta automaattisesti myöhemmäksi."
      ],
      "effect": "Tuomion lähetys ja hyväksytty korotuslappu tallentavat tietoa. Sivu tai henkilökohtainen linkki ei anna yleisiä hallintaoikeuksia.",
      "result": "Tuomari tai nostaja saa kevyen vaihtoehtoisen työpisteen; vain palvelimen kuittaama tieto on tallennettu.",
      "next": "Yhteyskatkossa siirry sovittuun varakirjaukseen ja tarkista tila sihteeriltä.",
      "image": "main-fallback",
      "note": "Kertakäyttölinkki on voimassa 15 minuuttia. Valtuutus säilyy välilehden istuntomuistissa; sulkemisen jälkeen voi tarvita uuden linkin. Oikeuden voi perua Companion-hallinnasta. Fyysistä puhelinta ei testattu. Poliisivoimailun yhteisessä kilpailunohjauksessa tarkista lisäksi päivän ohjelma ja lajin oma ryhmä. Kuva yhteisestä näkymästä on Tulospalvelu 1.0.29:stä, ellei kuvateksti sano muuta.",
      "covers": [
        "Selainvaranäkymä",
        "Selaintuomari",
        "Kilpailijan varalinkki",
        "Tuomion kuittaus"
      ],
      "verification": "Yhteinen näkymä tarkistettu; poliisin suoritusten lähde ja esimerkkitulokset varmennettu",
      "caption": "Kevyen varanäkymän sisäänkäynnit tuomarille ja nostajalle.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "kuuluttaja",
      "title": "Kuuluttajan työpiste",
      "where": "Kilpailu → Kuuluttaja",
      "intro": "Kuuluttaja näkee nykyisen nostajan, seuraavat viisi, sarjatilanteen, päivän aikataulun ja siirtymävihjeet.",
      "steps": [
        "Tarkista kilpailu ja aktiivinen nostaja. Käytä nostajakorttia henkilötietojen ja kuulutuksen tarkistamiseen. Pikakatselun tulokset, ikäluokkapisteet, ennätykset ja palkinnot ovat katselua.",
        "Sovi sihteerin kanssa, kumpi käyttää Tanko valmis -painiketta. Jos kuuluttaja käynnistää kellon, varmista lavan valmius ennen painallusta.",
        "Seuraa seuraavien nostajien jonoa ja cue-tekstiä. Varmista osalaji- ja ryhmävaihdot sihteeriltä. Äänimuistutuksen kuittaus hiljentää muistutuksen, ei nostokelloa.",
        "Musiikkitoiveet-näkymä kokoaa toiveita. Toive tai tiedostolinkki ei tarkoita, että äänentoisto on käynnistynyt. Testaa sovittu ääniratkaisu etukäteen."
      ],
      "effect": "Pikakatselu ja henkilövalinta ovat katselua. Kellon käyttö vaikuttaa koko kilpailuun. Musiikin hallinta vaikuttaa käytössä olevaan erilliseen toistoon.",
      "result": "Kuulutus vastaa palvelimen oikeaa nostovuoroa ja sovittua työjakoa.",
      "next": "Pidä sihteeri ajan tasalla poikkeuksista ja varmista seuraava kuorma ennen kuulutusta.",
      "image": "main-speaker",
      "note": "Puuttuva ennätys-, historia- tai aikataulutieto jätetään puuttuvaksi. Sitä ei päätellä kuvan esimerkkitiedoista. Poliisivoimailun yhteisessä kilpailunohjauksessa tarkista lisäksi päivän ohjelma ja lajin oma ryhmä. Kuva yhteisestä näkymästä on Tulospalvelu 1.0.29:stä, ellei kuvateksti sano muuta.",
      "covers": [
        "Kuuluttaja",
        "Pikakatselu",
        "Aikataulu ja cue",
        "Musiikkitoiveet",
        "Sijoitusskenaario"
      ],
      "verification": "Yhteinen näkymä tarkistettu; poliisin suoritusten lähde ja esimerkkitulokset varmennettu",
      "caption": "Kuuluttajan kilpailutilanne ja seuraavat nostajat.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "voimanosto",
      "title": "Voimanosto ja rinnakkainen penkkitulos",
      "where": "Päivän ohjelma → Voimanosto ja rinnakkainen penkkikilpailu",
      "intro": "Voimanostotulos käyttää parhaita hyväksyttyjä kyykky-, penkki- ja maastanostosuorituksia. Rinnakkainen penkkikilpailu käyttää saman henkilön samoja penkkisuorituksia.",
      "steps": [
        "Valitse ohjelma ennen nostoja. Merkitse henkilölle Voimanosto ja Penkki silloin, kun hän osallistuu kumpaankin.",
        "Punnitse henkilö kerran ja tallenna kaikki tarvittavat avauspainot. Jaa kyykyn, penkin ja maastanoston ryhmät erikseen.",
        "Kirjaa penkin jokainen fyysinen yritys vain kerran yhteisessä sihteerinäkymässä. Älä luo rinnakkaistulosta varten toista nostajaa.",
        "Tarkista tulossivulla sekä voimanoston yhteistulos että penkin oma tulos. Aino Esimerkin harjoituksen 50 kg penkki sisältyy sekä 245 kg voimanostotulokseen että penkin 50 kg tulokseen."
      ],
      "effect": "Yksi tallennettu penkkituomio vaikuttaa kaikkiin henkilölle valittuihin penkkisuoritusta käyttäviin tuloslajeihin.",
      "result": "Rinnakkaiset tulokset vastaavat täsmälleen samaa fyysistä suoritusketjua.",
      "next": "Tarkista sijoitukset, pisteet ja poliisiyksikköraportti ennen vientiä.",
      "image": "police-results",
      "note": "Tässä ohjelmassa yksikköpisteet muodostuvat tulososallistumisista. Varmista tapahtuman pistemenettely järjestäjältä.",
      "covers": [
        "Voimanoston yhteistulos",
        "Rinnakkainen penkkitulos",
        "Yhteisen tuomion vaikutus"
      ],
      "verification": "Yhteiset penkkisuoritukset ja tulokset varmennettu",
      "caption": "Voimanoston ja rinnakkaisen penkin tulokset samoista suorituksista.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "penkki-maasto",
      "title": "Penkkipunnerrus ja maastanosto",
      "where": "Päivän ohjelma → Penkkipunnerrus ja maastanosto",
      "intro": "Tämä ohjelma tuottaa kaksi erillistä tuloslajia. Ohjelma ei laske penkin ja maastanoston summalle tai pelkälle maastanostolle IPF GL -pisteitä.",
      "steps": [
        "Luo erillinen kilpailutiedosto ja valitse Penkkipunnerrus ja maastanosto ennen ratkaistuja nostoja.",
        "Tarkista henkilöiden Penkki- ja Maastanosto-osallistumiset. Tallenna avauspainot ja kummankin lajin ryhmäjako.",
        "Ohjaa penkki ja maastanosto niiden omissa ryhmissä. Tarkista henkilö, laji ja yritys ennen jokaista kuormaa ja tuomiota.",
        "Tarkista tuloksista erilliset lajitaulukot. Maastanoston tyhjä GL-sarake on tämän ohjelman tarkoitettu toiminta. Älä lisää omaa summapisteytystä virallisena ohjelman tuloksena."
      ],
      "effect": "Lajin tuomio tallentuu kyseiseen suoritukseen. Tulossivu ja CSV ovat katselua sekä tiedostokopioita.",
      "result": "Kahdesta esimerkkinostajasta muodostuu neljä tulososallistumista. Poliisiyksikköpisteiden laskenta ei ole tässä ohjelmassa käytössä.",
      "next": "Vie molempien lajien tulokset ja tarkista vastaanottajan tarvitsema muoto.",
      "image": "police-bench-deadlift",
      "note": "Yksikkönimi voidaan edelleen näyttää henkilön yhteydessä, vaikka yksikköpisteitä ei lasketa.",
      "covers": [
        "Penkki ja maastanosto",
        "Erilliset lajitulokset",
        "Ei GL-pisteitä maastanostolle",
        "Ei summapisteitä",
        "Yksikköpisteiden rajaus"
      ],
      "verification": "Kaksi henkilöä, molemmat lajitulokset ja pisteiden puuttuminen varmennettu",
      "caption": "Penkki–maastanosto-ohjelma: kaksi henkilöä, neljä tulososallistumista ja kaksi lajia.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "penkki",
      "title": "Pelkkä penkkipunnerrus",
      "where": "Päivän ohjelma → Penkkipunnerrus",
      "intro": "Pelkkä penkkiohjelma käyttää vain penkin osallistumisia, nostoryhmiä ja tuloksia. Se on tavallinen penkkipunnerrus, ei toistovoimapunnerrus.",
      "steps": [
        "Valitse ohjelma ennen nostoja. Lisää henkilöt ja punnitukset kerran. Tallenna penkin avauspainot sekä telineet.",
        "Muodosta penkin ryhmät, tarkista enintään 20 henkilön ryhmäraja ja tallenna. Varmista tuomarit ja ensimmäinen nostovuoro.",
        "Kirjaa penkin yritykset kiloina. Ohjelmassa ei kirjata toistomääriä tai voimapunnerruksen ylätaukokelloa.",
        "Tarkista penkin sarjat ja tulosnäyttö. Lataa CSV ja tulosta tulokset. Varmista mahdollinen yksikköraportti tapahtuman menettelyn mukaan."
      ],
      "effect": "Punnitus, ryhmäjako ja tuomiot tallentavat kilpailun. Julkisen tulosnäytön avaaminen on katselua.",
      "result": "Harjoituksen kaksi henkilöä näkyvät kahtena tulososallistumisena yhdessä penkkiryhmässä.",
      "next": "Viimeistele tulokset ja varmuuskopio.",
      "image": "police-bench-only-results",
      "note": "Toistovoimapunnerrus järjestetään erillisellä VOIMA Voimapunnerrus -tuotteella.",
      "covers": [
        "Pelkkä penkki",
        "Penkin ryhmäraja",
        "Penkin tulokset"
      ],
      "verification": "Penkkiohjelman kaksi esimerkkitulosta ja ryhmäjako varmennettu",
      "caption": "Pelkkää penkkipunnerrusta käyttävän harjoituksen tulokset.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "tulokset",
      "title": "Tulokset, yksikköpisteet ja CSV",
      "where": "Poliisivoimailu → Tulokset",
      "intro": "Poliisivoimailun oma tulossivu näyttää päivän ohjelman lajitulokset. Käytä sitä poliisivoimailun ensisijaisena tulosraporttina.",
      "steps": [
        "Tarkista sarjat, sukupuoli, varustemuoto, LOT, syntymävuosi, kehonpaino, parhaat hyväksytyt suoritukset, sijoitus ja pisteet.",
        "Voimanosto–penkki-ohjelmassa tarkista saman penkkituloksen esiintyminen molemmissa tuloslajeissa. Penkki–maastanosto-ohjelmassa tarkista erilliset lajit ja tyhjä maastanoston GL.",
        "Kun yksikköpisteet ovat käytössä, tarkista nimet ja sijoituksiin perustuva kertymä. Ohjelman pistejako sijoille on 12, 9, 8, 7, 6, 5, 4, 3, 2 ja 1. Penkki–maastanosto-ohjelmassa yksikköpisteet eivät ole käytössä.",
        "Lataa CSV ja avaa tiedosto. Tarkista ääkköset ja sarakkeet. Tulosta tulokset avaa selaimen tulostuksen; varmista esikatselu ja sivukoko. Avaa tulosnäyttö on vain katseluun tarkoitettu osoite.",
        "Tallenna mahdollinen julkaisutila ja tarkista erillinen LIVE-lähetys ennen julkisen osoitteen jakamista. Paikallinen tulostaulu ei yksin todista verkkolähetyksen onnistumista."
      ],
      "effect": "CSV-lataus, tulostus ja tulosnäyttö eivät muuta suorituksia. Kilpailun tai julkaisun asetusten tallennus muuttaa vastaavaa tilaa.",
      "result": "Tarkistetut lajitulokset ja sallitut yksikköpisteet voidaan arkistoida.",
      "next": "Tee tarvittaessa Sorsa-vienti. Päätä paikallinen kilpailu hallitusti ja varmista koko tietokansio.",
      "image": "police-public-results",
      "note": "Sorsa-vienti on erillinen, virallisiin SVNL-osallistumisiin rajattu Excel-vienti. Sen hyväksynnät ja käyttö on kuvattu luvussa Sorsan Exceli ja SVNL-vahvistus. CSV ja poliisin tulosnäyttö kattavat päivän poliisivoimailun tuloslajit.",
      "covers": [
        "Poliisin tulokset",
        "CSV",
        "Tulostus",
        "Julkinen tulosnäyttö",
        "Poliisiyksikköpisteet",
        "Sorsa-vientiin siirtyminen"
      ],
      "verification": "Kolmen ohjelman esimerkkitulokset ja pisteiden rajaukset tarkistettu",
      "caption": "Poliisivoimailun erillinen julkinen tulosnäyttö.",
      "phase": "Kilpailun jälkeen"
    },
    {
      "id": "naytot",
      "title": "Valitse oikea kilpailunäyttö",
      "where": "Avaa kilpailunäytöt • Näytöt ja stream",
      "intro": "Julkinen ruutu ja muokkaava toimitsijanäkymä voivat näyttää samoja lukuja. Valitse yleisölle katseluun tarkoitettu näyttö.",
      "steps": [
        "Nostajanäyttö / Kilpailijataulu näyttää aktiivisen nostajan, kuorman ja kellon. Lavalle menijät näyttää jonon. Lavan näyttö palvelee lastausta. Live-tulokset esittää kilpailun tulostilanteen.",
        "Tulostaulu ja painoilmoitukset on toimitsijan työpiste: painon tai pikavalikon muokkaus voi tallentaa tietoja. Sorsan Exceli -selainnäkymä on katselua, ei Microsoft Excel eikä makro-ohjaus.",
        "Yksi yleisönäyttö yhdistää aktiivisen nostajan, jonon ja taulukon. WARM-UP kokoaa lämmittelyalueen tiedot. SPEAKER ja JURY ovat vastaavien toimitsijoiden työpisteitä.",
        "Avaa tarvittu näkymä omaan ikkunaan. Tarkista fyysiseltä näytöltä luettavuus, oikea ryhmä, kellot ja yhteys. Älä näytä käyttäjähallintaa, yksityisiä QR-kutsuja tai julkaisuavaimia yleisölle."
      ],
      "effect": "Katselun, ryhmärajauksen tai ikkunan avaus ei muuta tulosta. Toimitsijan muokkauspainikkeet ja näyttöjen etäohjaus ovat muuttavia toimintoja.",
      "result": "Jokaisella kohderuudulla on sen tarkoitukseen sopiva kilpailukuva.",
      "next": "Tarkista näyttövalvonnasta sekä yhteys että vastaanotetun tiedon versio.",
      "image": "main-display",
      "note": "Yhteyden katkettua vanhaa korostettua riviä tai kellolukemaa ei pidä tulkita voimassa olevaksi nostokutsuksi. Tässä kokeessa kuvat otettiin selaimessa; fyysisten ruutujen sijoittelua ei testattu. Yhteisen näkymän kuva on Tulospalvelu 1.0.29:stä. Poliisivoimailun lajitulokset tarkistetaan lisäksi sen omalta tulossivulta.",
      "covers": [
        "Kilpailijataulu",
        "Lavan näyttö",
        "Lavalle menijät",
        "Scoreboard",
        "Sorsan Exceli",
        "WARM-UP",
        "Yksi yleisönäyttö",
        "Live-tulokset"
      ],
      "verification": "Yhteinen toiminto tarkistettu lähteestä; laite- ja poikkeushaarat testaamatta",
      "caption": "Yleisölle tarkoitettu aktiivisen nostajan näyttö.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "nayttovalvonta",
      "title": "Näyttöryppäät ja näyttövalvonta",
      "where": "Sihteerin työkalut → Näyttövalvonta",
      "intro": "Näyttövalvonta erottaa pelkän yhteyden siitä, onko ruutu vastaanottanut nykyisen kilpailutilan.",
      "steps": [
        "Avaa tarvittavat ruudut näyttöjen avausalueesta tai näyttöryppäästä. Selaimen ponnahdusikkunalupa voi olla tarpeen vain tälle luotetulle palvelimelle.",
        "Avaa Näyttövalvonta. Tarkista näytön nimi, käyttötarkoitus ja yhteys. Hyväksy uusi näyttö ennen etäohjausta vasta tunnistettuasi oikean ruudun.",
        "Vertaa kilpailutiedon versiota ja ruudun kuittausta. Pelkkä online-merkintä ei osoita sisällön olevan ajantasainen.",
        "Häiriössä päivitä tai ohjaa vain ongelmallista näyttöä. Tarkista lopputulos fyysiseltä ruudulta. Älä käynnistä koko kilpailupalvelinta uudelleen yhden ikkunan ongelman vuoksi."
      ],
      "effect": "Valvonnan avaaminen on katselua. Näytön hyväksyntä ja etäkomento muuttavat kyseisen ruudun hallintatilaa.",
      "result": "Näyttöjen yhteys ja ajantasaisuus ovat erikseen tunnistettavissa.",
      "next": "Pidä valvonta saatavilla kilpailun aikana ja tarkista poikkeava ruutu heti.",
      "image": "main-display-monitor",
      "note": "Harjoituskuvassa aiemmin avattuja, sittemmin suljettuja näyttöjä näkyy ilman yhteyttä. Tämä on todellinen yhteysilmoitus, ei todiste käynnissä olevasta ulkoisesta näyttölaitteesta. Yhteisen näkymän kuva on Tulospalvelu 1.0.29:stä. Poliisivoimailun lajitulokset tarkistetaan lisäksi sen omalta tulossivulta.",
      "covers": [
        "Näyttöryppäät",
        "Näyttövalvonta",
        "Näytön hyväksyntä",
        "Etäpäivitys"
      ],
      "verification": "Yhteinen toiminto tarkistettu lähteestä; laite- ja poikkeushaarat testaamatta",
      "caption": "Näyttövalvonta: aiemmin suljettuja ikkunoita näkyy ilman yhteyttä.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "companion",
      "title": "Valinnainen Competition Companion",
      "where": "Companion-laitteet",
      "intro": "Companion täydentää selaimella toimivaa kilpailua. Julkinen tapahtuma-QR auttaa liittymään; se ei yksin anna oikeutta muuttaa kilpailua.",
      "steps": [
        "Valitse oikea kilpailu Companion-hallinnassa. Näytä julkinen liittymissivu tai käytä tarvittavan tehtävän kertakäyttöistä paritusta. Puhelin käyttää oman palvelimen ja relayn osoitteita.",
        "1D-liittämisessä lue puhelimen 16-numeroinen Code 128 -koodi oikeaan kenttään. Enter tai Hae luettu koodi hakee pyynnön; se ei vielä hyväksy henkilöä.",
        "Tunnista henkilö ja laite, valitse sallittu urheilija tai toimitsijatehtävä ja seuraa palvelimen hyväksyntävaiheita. Tarkista yhteenveto. Myös puhelimen käyttäjä vahvistaa liittymisen.",
        "Varmista valmis liitos puhelimesta ja laitevaltuuksista. Jonosta poistuminen voi tarkoittaa myös perumista tai vanhenemista. Uusi rinnakkainen liitos ei automaattisesti poista vanhaa.",
        "Peru väärän laitteen oikeus hallinnassa. Tuomarin viestit välitetään rajatuille toimitsijoille; keskeneräisiä yksityisiä tuomioita ei pidä julkaista yleisölle."
      ],
      "effect": "QR:n katselu ja koodin haku eivät myönnä oikeutta. Hyväksyntä ja puhelimen vahvistus muodostavat valtuutuksen; peruminen poistaa sen.",
      "result": "Laite toimii vain hyväksytyssä kilpailussa ja sille sallituissa tehtävissä.",
      "next": "Testaa oikea tehtävä harjoituksessa. Sovi selaimen varanäkymä ja paperikirjaus varalle.",
      "image": "main-companions",
      "note": "Tavallinen urheilijaliitos ei myönnä tuomari-, sihteeri- tai developer-oikeuksia. Pysyvä lisärooli tulee palvelimella hyväksytystä henkilösidoksesta. Fyysistä Android-, QR- tai Zebex-laitetta ei testattu. Yhteisen näkymän kuva on Tulospalvelu 1.0.29:stä. Poliisivoimailun lajitulokset tarkistetaan lisäksi sen omalta tulossivulta.",
      "covers": [
        "Companion-paritus",
        "1D-liittäminen",
        "Julkinen QR",
        "Rinnakkaiset laitteet",
        "Valtuutuksen peruminen",
        "Toimitsijaviestit"
      ],
      "verification": "Yhteinen toiminto tarkistettu lähteestä; laite- ja poikkeushaarat testaamatta",
      "caption": "Companion-hallinnan liittymisalue. Yksityisiä laitevaltuuksia ei näytetä.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "stream",
      "title": "Kamera ja videolähetys",
      "where": "Näytöt ja stream → Streamaajan hallinta",
      "intro": "Tulosten verkkojulkaisu ja videolähetys ovat erillisiä. VOIMA voi toimia ilman kumpaakaan. Streamin ohjattu käyttöönotto erottaa OBS-kameran ja VOIMAn puhelinkamerat.",
      "steps": [
        "Valitse YouTube tai Twitch ja kameran liitäntätapa. USB/USB-C- tai Ethernet-kameraa OBS:n kautta käytettäessä kamera lisätään OBS:ään videolähteeksi.",
        "Lisää OBS:n Selain/Browser-lähteeksi näkymän antama läpinäkyvien kilpailutietojen URL kameran yläpuolelle. Ohjattu arvo on 1920 × 1080 ja 30 fps. OBS:n kamera, ääni ja uusinnat ohjataan OBS:ssä.",
        "VOIMAn kameroita käytettäessä lisää hyväksytty kameralaite ja sido se oikeaan kuvakulmaan. Tarkista esikatselu, lähde ja yhteys ennen Liveen-painiketta.",
        "Ohjelmakuvan Live, Uusinta, PIP ja Overlay-valinnat ohjaavat lähetyskuvaa. Kameralaitteen kuva ja Kamerakulmat ovat erillisnäkymiä saman tehtävän tarkastamiseen.",
        "Kamera-automaation reittikartassa lisää tapahtuma, ehdot ja kohteet. Tarkista kuivaharjoittelu ennen automaation käyttöä. Manuaalinen ohitus ja varareitti on sovittava lähetyksen ohjaajan kanssa."
      ],
      "effect": "Ohjeen vaihevalinta ei käynnistä kameraa. Lähteen tallennus, ohjelmakuvan vaihto ja automaatio muuttavat videon ohjausta, eivät kilpailun tuloksia.",
      "result": "Videon lähde, kilpailutietojen overlay ja ääni ovat erikseen tarkistettuja.",
      "next": "Tarkista valmis kuva varsinaisesta lähetyspalvelusta ennen julkista lähetystä.",
      "image": "main-stream",
      "note": "USB-C ei takaa videotukea. Sama kamera ei välttämättä avaudu yhtä aikaa selaimessa ja OBS:ssä. Fyysistä kameraa, OBS:ää, ääntä, uusintatallennusta tai YouTube/Twitch-lähetystä ei testattu tässä ohjekokeessa. Yhteisen näkymän kuva on Tulospalvelu 1.0.29:stä. Poliisivoimailun lajitulokset tarkistetaan lisäksi sen omalta tulossivulta.",
      "covers": [
        "Streamaajan hallinta",
        "OBS",
        "Kameralaitteen kuva",
        "Kamerakulmat",
        "Ohjelmakuva",
        "PIP",
        "Uusinta",
        "Overlay",
        "Kamera-automaatio"
      ],
      "verification": "Yhteinen toiminto tarkistettu lähteestä; laite- ja poikkeushaarat testaamatta",
      "caption": "Videon ohjattu käyttöönotto. Kuvassa ei ole käynnissä olevaa videolähetystä.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "tyotilat",
      "title": "Valmistele toinen kilpailu ja säilytä palautusvara",
      "where": "Tulevat kilpailut • Palautuspisteet",
      "intro": "Taustatyötila mahdollistaa seuraavan kilpailun valmistelun aktiivisen kilpailun rinnalla. Tarkista aina, muokkaatko taustatyötilaa vai lavalla käytettävää tilaa.",
      "steps": [
        "Avaa Tulevat kilpailut, luo työtila tai valitse tallennettu kilpailu. Täytä perustiedot, aikataulu, ryhmät ja henkilöt. Työtilan Excel-tuonti kohdistuu valittuun työtilaan.",
        "Tarkista aktiiviseksi merkityn kilpailun nimi erikseen. Ota työtila aktiiviseksi vaihtaa palvelimen kilpailun; pelkkä työtilan valinta ei tee tätä.",
        "Ennen poikkeusmuutosta avaa sihteerin työkalut → Palautuspisteet. Tee palautuspiste nyt ja Lataa kopio säilyttävät tarkistettavan lähtötilan.",
        "Palautuksessa valitse piste ja Vertaa nykyiseen. Lue erot. Palautuskopio säilyttää nykyisen kilpailun; varsinaisessa palautuksessa tarvitaan PALAUTA-vahvistus. Palautettu kilpailu tarkistetaan tauolla ennen jatkamista."
      ],
      "effect": "Taustatyötilan tallennus muuttaa sitä työtilaa. Aktivointi ja varsinainen palautus vaihtavat aktiivista kilpailutilaa; vertailu on katselua.",
      "result": "Tuleva kilpailu on valmisteltu erillään ja nykyisestä on erillinen palautusvara.",
      "next": "Varmista tiedostot ja aktiivinen kilpailu ennen jokaista käynnistystä.",
      "image": "main-workspaces",
      "note": "Ohjekokeessa ei vaihdettu aktiivista käynnissä olevaa kilpailua taustatyötilaan eikä palautettu vanhaa pistettä sen päälle. Nopea tallennustila voi ohittaa automaattisen historiapeilauksen; lataa oma kopio. Yhteisen näkymän kuva on Tulospalvelu 1.0.29:stä. Poliisivoimailun lajitulokset tarkistetaan lisäksi sen omalta tulossivulta.",
      "covers": [
        "Tulevat kilpailut",
        "Taustatyötila",
        "Työtilan aktivointi",
        "Palautuspisteet",
        "Vertaa nykyiseen",
        "Palautuskopio"
      ],
      "verification": "Yhteinen toiminto tarkistettu lähteestä; laite- ja poikkeushaarat testaamatta",
      "caption": "Tulevan kilpailun työtilan valinta ja valmistelu.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "arkistot",
      "title": "Arkistot ja tulosteet",
      "where": "Sihteerin työkalut → Kilpailuarkistot / SVNL-verkkotuonti / Tulostepaketit",
      "intro": "Arkisto säilyttää aiemman kilpailun lähdetiedot luettavana. Sitä ei käsitellä käynnissä olevan kilpailun korvaavana tuontina.",
      "steps": [
        "PowerLIVE XML tuodaan Kilpailuarkistot-välilehdellä erilliseen arkistoon. Tarkista varustemuoto ja lähdetiedosto. Vanhoja pisteitä ei lasketa nykyisellä kaavalla uudelleen.",
        "SVNL-verkkotuonnissa hae vuosi tai anna tulossivun osoite. Tarkista esikatselun taulukot ja lähde ennen tallennusta. Kuva, PDF tai Excel-liite ei automaattisesti muutu verkkotaulukon tuonniksi.",
        "Tulostepaketeissa valitse kaikki työlistat, sihteerin tarkistuslista, kuuluttajakortit tai lavamiehistön teline- ja avauspainot. Rajaa ryhmät; tyhjä ryhmävalinta tarkoittaa kaikkia.",
        "Korotuslaput sekä Ryhmät, sarjat ja aikataulu avautuvat omille tulostesivuilleen. Uudelleentulostuksessa rajaa nostaja ja tarvittava laji. Tarkista tulostimen esikatselu ja sivukoko."
      ],
      "effect": "Esikatselu ja tulosteen avaus ovat katselua. Vahvistettu arkistotuonti tallentaa arkiston. Tulostaminen ei ratkaise nostoa.",
      "result": "Järjestäjällä on luettava historia sekä kilpailun mukaiset työlistat.",
      "next": "Tarkista kilpailun lopuksi erikseen virallisiin tuloksiin käytettävät viennit.",
      "image": "main-print",
      "note": "Ulkoisten arkistojen tuontia ja fyysistä tulostinta ei testattu. PowerLIVE XML -näkymän kokoraja on 8 Mt; erillisen liittoviennin arkistoesikatselussa raja on 2 MiB. Yhteisen näkymän kuva on Tulospalvelu 1.0.29:stä. Poliisivoimailun lajitulokset tarkistetaan lisäksi sen omalta tulossivulta.",
      "covers": [
        "Kilpailuarkistot",
        "PowerLIVE XML",
        "SVNL-verkkotuonti",
        "Tulostepaketit",
        "Korotuslappujen tulostus"
      ],
      "verification": "Yhteinen toiminto tarkistettu lähteestä; laite- ja poikkeushaarat testaamatta",
      "caption": "Arkistot ja tulosteet – todellinen harjoitusnäkymä.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "palkinnot",
      "title": "Palkintojenjako ja kilpailun päättäminen",
      "where": "Palkintojenjako • Tulokset",
      "intro": "Palkinto-ohjelma on jäädytetty otos valittujen ryhmien tuloksista. Se voi toimia samalla, kun muu kilpailu jatkuu.",
      "steps": [
        "Valitse Palkintojenjaossa ryhmät ja niiden järjestys. Anna otsikko, alaotsikko ja lisätieto. Muodosta palkinto-ohjelma ja tarkista esikatselu.",
        "Aktivoi palkintoruutu sovittuna hetkenä. Etene ohjauspainikkeilla ja tarkista sarja. Jälkikorjaus ei automaattisesti päivitä jäädytettyä ohjelmaa; muodosta se tarvittaessa uudelleen.",
        "Kilpailun lopun näytöt -valinnoilla voidaan näyttää valmis yhteenveto nostaja-, yleisö- ja lämmittelynäytöllä. Valinta ei muuta streamia eikä korvaa keskeneräistä kilpailua.",
        "Tarkista kaikki suoritukset ja avoimet uusinnat, tee lopulliset viennit ja varmista arkistointi. Tulosten Merkitse kilpailu päättyneeksi / Päätä kisa hallitusti -toiminto on erillinen päätös: lue sen vahvistus ennen käyttöä."
      ],
      "effect": "Palkinto-ohjelman muodostus tallentaa otoksen; palkintoruudun ohjaus muuttaa esitystä. Kilpailun lopetus arkistoi jälkikatselun ja voi avata uuden tyhjän kilpailutilan.",
      "result": "Palkinnot esitetään tarkistetusta ohjelmasta ja kilpailun tiedostot säilyvät arkistossa.",
      "next": "Tee tietokansion varmuuskopio ja sulje palvelin hallitusti.",
      "image": "main-awards",
      "note": "Palkintoruudun sulkeminen, verkkotulosten lopullisuus ja paikallisen kilpailun päättäminen ovat kolme eri asiaa. Kilpailua ei päätetty tämän ohjekokeen kuvauksen aikana. Yhteisen näkymän kuva on Tulospalvelu 1.0.29:stä. Poliisivoimailun lajitulokset tarkistetaan lisäksi sen omalta tulossivulta.",
      "covers": [
        "Palkintojenjako",
        "Palkintoruutu",
        "Kilpailun lopun näytöt",
        "Meet summary",
        "Kilpailun päättäminen"
      ],
      "verification": "Yhteinen toiminto tarkistettu lähteestä; laite- ja poikkeushaarat testaamatta",
      "caption": "Palkinto-ohjelman valmistelu ennen ohjelman muodostamista.",
      "phase": "Kilpailun jälkeen"
    },
    {
      "id": "lahiverkko",
      "title": "Yksi kone ja lisälaitteet",
      "where": "Palvelin • selain • lähiverkko",
      "intro": "Yhdellä tietokoneella voidaan valmistella ja kirjata kilpailu ilman Companionia tai videolähetystä. Lisänäytöt ja puhelimet käyttävät samaa kilpailupalvelinta.",
      "steps": [
        "Avaa käynnistimen ilmoittama HTTPS-osoite. Toisella koneella osoite on esimerkiksi https://KISAKONE:5060/. KISAKONE korvataan oman palvelimen oikealla nimellä; käytä tarvittaessa varmenteeseen kuuluvaa LAN-IP-osoitetta.",
        "Liitä laitteet luotettuun samaan lähiverkkoon. Tarkista, että nimi löytyy ja varmenne vastaa osoitetta. Selvitä varmennevirhe järjestäjän kanssa; älä poista HTTPS-tarkistusta käytöstä.",
        "Palvelimet kuuntelevat 0.0.0.0-osoitteessa. Selain ei yhdistä siihen. HTTPS ja relay (8847) ovat eri palveluja: Companionin relay-osoitteeksi kopioidaan parituksen ilmoittama osoite.",
        "Avaa toinen näyttö selaimen omaksi ikkunaksi, siirrä se oikealle fyysiselle ruudulle ja tarkista nimi, kuorma, kello ja yhteys. Testaa ääni käyttäjän painalluksella ja sovi kuittaaja.",
        "Jos yhteys katkeaa, tarkista ensin palvelin, WLAN, osoite ja yksi häiriintynyt selain. Pidä paperinen varakirjaus. Palvelimen pysähtymistä ei korjata vaihtamalla näyttönäkymää."
      ],
      "effect": "Näytön avaaminen ja ikkunan siirto ovat katselua. Sallitut kellon, kuorman tai tuomion painikkeet muuttavat yhteistä kilpailutilaa.",
      "result": "Kaikki työpisteet näkevät saman kilpailun. Tavallinen localhost osoittaa kunkin laitteen itseensä.",
      "next": "Sovi työjako: yksi nimetty käyttäjä käynnistää nostokellon ja sihteeri varmistaa kirjaukset.",
      "image": "police-program",
      "note": "Kokeessa kuunteluosoitteet ja TLS-yhteys saman tietokoneen LAN-liitännän kautta tarkistettiin. Erillistä fyysistä puhelinta, lisänäyttöä, WLAN-tukiasemaa tai äänilaitetta ei hyväksyntätestattu.",
      "covers": [
        "Yhden tietokoneen käyttö",
        "Lisänäytöt",
        "HTTPS ja LAN",
        "Relay",
        "Äänet ja yhteyskatko"
      ],
      "verification": "Lähde ja luvun kuvattu näkymä tarkistettu; kaikkia toimintohaaroja ei ajettu",
      "caption": "Poliisivoimailu: kuusi henkilöä, 12 tulososallistumista ja lajikohtaiset ryhmät.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "live",
      "title": "Julkaise tulokset internetiin",
      "where": "Julkaise tulokset internetiin • LIVE-julkaisuyhteys",
      "intro": "Uuden kilpailun Käytä LIVE-tulospalvelua -valinta on näissä versioissa oletuksena päällä. Varsinainen lähettäminen tarvitsee järjestäjän julkaisuyhteyden. Harjoituskilpailussa poista LIVE-valinta jo luotaessa.",
      "steps": [
        "Sivuston valtuutettu järjestelmäylläpitäjä muodostaa järjestäjän asennukselle yhteyden sivulla powerliftingstream.fi/admin/live.php toiminnolla Yhdistä järjestäjän VOIMA-asennus. Sivuston oikeus on erillinen paikallisesta admin-tunnuksesta.",
        "Avaa paikallisen ohjelman Julkaise tulokset internetiin ja LIVE-julkaisuyhteys. Käytä Yhdistä LIVE-tulospalveluun -toimintoa saamallasi yhteydellä. Älä näytä yhdistämistunnuksia yleisölle.",
        "Tarkista kilpailun nimi, päivä, julkaisulupa ja julkiseen aineistoon tulevat henkilöt. Esikatsele lähetettävät tiedot ennen julkaisua. Videon HTTPS-linkki on vapaaehtoinen eikä käynnistä videolähetystä.",
        "Varmista viimeinen onnistunut lähetys ja avaa ohjelman palauttama julkinen osoite. Osoite muodostuu vuodesta, kuukaudesta, päivästä ja kilpailun nimestä. Samannimisen tapahtuman varattu osoite voi saada lisätunnuksen.",
        "Julkaisun keskeytys: poista kilpailun LIVE-valinta ja varmista tallennus. Jo alkanut lähetys voi valmistua. Aiemmin julkaistut tulokset jäävät verkkoon; niiden poistosta huolehtii sivuston ylläpitäjä."
      ],
      "effect": "Esikatselu on katselua. Yhteyden tallennus ja LIVE-valinta muuttavat julkaisua. Nimi ja päivä voivat muodostaa uuden julkaisukohteen.",
      "result": "Muuttunut aineisto lähetetään enintään kerran 10 sekunnissa; yleisön verkkosivu tarkistaa päivityksiä aikaisintaan 30 sekunnin välein. Verkkokatko ei pysäytä paikallista kirjaamista.",
      "next": "Tarkista lopulliset tulokset sekä paikallisesti että julkiselta sivulta ja jaa vain todellinen tulososoite.",
      "image": "main-live",
      "note": "Vanhaa kilpailua ilman LIVE-valintaa ei julkaista automaattisesti. Ohjekuvien harjoituksia ei yhdistetty julkaisupalveluun.",
      "covers": [
        "LIVE-oletus",
        "Asennuksen julkaisuyhteys",
        "Esikatselu",
        "Verkkokatko ja uudelleenyritys",
        "Julkaisun keskeyttäminen",
        "Vanhojen kilpailujen toiminta"
      ],
      "verification": "Käyttöliittymä ja julkaisulähde tarkistettu; harjoitustietoja ei lähetetty verkkoon",
      "caption": "Tulospalvelu 1.0.29:n yhteinen LIVE-lomake. Avainkentät ovat tyhjiä eikä harjoitusta julkaista.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "live-avain",
      "title": "Vanha kilpailuavain ja julkaisun lopullisuus",
      "where": "Julkaise tulokset internetiin • Kilpailukohtainen julkaisuavain",
      "intro": "Aiemmin muodostettu kilpailukohtainen julkaisuavain on edelleen vaihtoehto asennuksen julkaisuyhteydelle. Paikallisen kilpailun päättyminen, paikallinen julkaisutila ja verkkosivun päivitysten päättäminen ovat erillisiä toimintoja.",
      "steps": [
        "Valitse Julkaistava kilpailu. Tarkista, että vanhan avaimen kilpailun nimi ja päivä vastaavat valittua kilpailua. Syötä avain vain järjestäjän yksityisessä näkymässä.",
        "Esikatsele lähetettävät tiedot. Tarkista julkaistavat nimet, sarjat ja tulokset sekä mahdollinen videon HTTPS-linkki. Kuittaa julkaisulupa ja valitse Automaattinen verkkojulkaisu tarkoituksen mukaan.",
        "Tallenna verkkojulkaisu ja tarkista viimeinen onnistunut lähetys sekä todellinen julkinen sivu. Älä tallenna julkaisuavainta julkiseen ohjeeseen, kuvaan tai tulostiedostoon.",
        "Kun tulokset on tarkistettu, Merkitse verkkotulokset lopullisiksi lopettaa katsojan automaattipäivityksen. Myöhempi korjaus voidaan katsoa sivun Päivitä-painikkeella. Tämä valinta ei itsessään päätä paikallista kilpailua.",
        "Poista paikallinen julkaisuavain poistaa paikallisen yhteystiedon. Se ei tarkoita jo julkaistun verkkosivun poistamista. Tallenna ja varmista haluttu lähetystila erikseen."
      ],
      "effect": "Esikatselu on katselua. Tallennus muuttaa lähetysasetuksia, ja lopullisuusvalinta muuttaa yleisösivun päivityskäytäntöä.",
      "result": "Vanha avain toimii vain sille tarkoitetussa kilpailussa ja julkaisu on tarkistettu oikealta sivulta.",
      "next": "Varmista lopputulokset, arkistoi tiedostot ja sulje paikallinen palvelin erikseen.",
      "image": "main-live",
      "note": "Kuvan avainkentät ovat tyhjiä. Julkiseen palveluun lähettämistä ei tehty synteettisellä aineistolla.",
      "covers": [
        "Kilpailukohtainen julkaisuavain",
        "Videolinkki",
        "Julkaisulupa",
        "Verkkotulosten lopullisuus",
        "Paikallisen avaimen poisto"
      ],
      "verification": "Lomake ja lähde tarkistettu; ulkoista julkaisua ei tehty",
      "caption": "Tulospalvelu 1.0.29:n yhteinen LIVE-lomake. Avainkentät ovat tyhjiä eikä harjoitusta julkaista.",
      "phase": "Kilpailun aikana ja viiteohje"
    },
    {
      "id": "varmistus",
      "title": "Varmuuskopio ja hallittu lopetus",
      "where": "Asetukset • tiedostot • häiriötilanne",
      "intro": "Tallennus on palvelimella. Selainikkunan sulkeminen ei sammuta palvelinta eikä korvaa kilpailutietojen varmuuskopiota.",
      "steps": [
        "Tarkista viimeinen hyväksytty nosto, keskeneräiset ilmoitukset ja lopputulokset. Lataa tarvittavat tulostiedostot ja avaa ne ennen kilpailupaikalta poistumista.",
        "Jos käytössä on Palautuspisteet-työkalu, tee oma piste ja lataa kopio. Automaattiset pisteet tai SQLite-merkintä eivät takaa jokaisen noston erillistä historiakopiota; nopea kilpailutallennus kirjoittaa ensisijaisesti kilpailu-JSONin.",
        "Asetusten Sammuta palvelin... tallentaa tilan ja sulkee VOIMA-palvelut hallitusti. Lue vahvistus, täytä pyydetty teksti ja vahvista vasta sovittuna ajankohtana. Yhteyden päättyminen on tämän jälkeen odotettua.",
        "Kun palvelimet ovat suljettuina, kopioi koko tuotteen tietokansio järjestäjän varmistuspaikkaan. Polku on %LOCALAPPDATA%\\VOIMA\\Poliisivoimailu. Säilytä myös ohjelmaversio. Tietokansiossa on yksityisiä tunnuksia: se ei kuulu julkiseen tulospakettiin.",
        "Seuraavassa käynnistyksessä tarkista oikea kilpailutiedosto ja viimeinen tallentunut tilanne. Häiriöstä palautuessa vertaa paperikirjaukseen ennen jatkamista. Epäselvän tallennusvastauksen jälkeen lue tila ennen uutta yritystä."
      ],
      "effect": "Vienti tekee erillisen tiedoston. Palvelimen sammutus päättää yhteydet. Palautus voi korvata aktiivisen tilan, joten vertaile ensin ja säilytä nykyinen kopio.",
      "result": "Kilpailu on arkistoitu ja sitä voidaan jatkaa tai tarkastaa oikealla ohjelmaversiolla. Sovelluksen poistaminen ei itsessään poista tietokansiota.",
      "next": "Kirjaa käytetty versio ja varmuuskopion sijainti järjestäjän tapahtumamuistioon.",
      "image": "police-program",
      "note": "Palvelimen hallittua sammutusta, sähkökatkoa, tulostinta ja koko tietokansion palautusta toiselle koneelle ei tehty tässä ohjekokeessa.",
      "covers": [
        "Varmuuskopio",
        "Nopea tallennus / SQLite",
        "Sammuta palvelin",
        "Jatkaminen ja palautus",
        "Tiedostojen säilyminen"
      ],
      "verification": "Lähde ja luvun kuvattu näkymä tarkistettu; kaikkia toimintohaaroja ei ajettu",
      "caption": "Poliisivoimailu: kuusi henkilöä, 12 tulososallistumista ja lajikohtaiset ryhmät.",
      "phase": "Kilpailun jälkeen"
    },
    {
      "id": "sorsa",
      "title": "Sorsan Exceli ja SVNL-vahvistus",
      "where": "Poliisivoimailu → Rinnakkaisosallistumiset → Tulokset",
      "intro": "Korjatun 1.0.2-paketin Sorsa-vienti tuottaa alkuperäiseen työkirjaan perustuvan .xls-tiedoston. Virallinen voimanosto ja penkkipunnerrus vahvistetaan erikseen.",
      "steps": [
        "Tarkista nostajan voimassa oleva SVNL-lisenssi ja oikeus osallistua kyseiseen viralliseen voimanosto- tai penkkikilpailuun. Merkitse nostaja viralliseksi ilmoittautumisissa tai punnituksessa ja tarkista varustemuoto sekä kilpailutapa. Ohjelma ei hae lisenssin voimassaoloa verkosta.",
        "Valitse Rinnakkaisosallistumiset ja poliisiyksiköt -taulukon SVNL-vientiin-sarakkeesta hyväksytty Voimanosto ja/tai Penkki. Tallenna jokainen rivi erikseen. Pelkkä tulososallistumisen valinta ei riitä vientiin.",
        "Varmista punnitus ja tulokset. Avaa Tulokset ja valitse Lataa Sorsan Exceli (.xls). Palvelinkoneessa pitää olla asennettu ja aktivoitu Microsoft Excel. Jos vienti ilmoittaa, ettei vietäviä SVNL-tuloksia ole, tarkista hyväksynnät, virallisuus, kilpailutapa ja punnitus.",
        "Avaa ladattu .xls ja vertaa nimiä, lajitunnuksia, painoja sekä tuloksia. Molempiin lajeihin vahvistettu nostaja näkyy omilla PL- ja penkkiriveillään; sama penkkisuoritus käytetään molemmissa. Pelkkää maastanostoa ja poliisiyksikköpisteitä ei viedä.",
        "Toimita tarkistettu tiedosto järjestäjän sopiman käytännön mukaisesti. Lataus ei lähetä työkirjaa automaattisesti liittoon. Säilytä myös poliisivoimailun oma CSV ja koko kilpailun varmuuskopio."
      ],
      "effect": "Rivin Tallenna säilyttää tämän kilpailun lajikohtaisen vientivahvistuksen muuttamatta kirjattuja nostoja. XLS-vienti luo erillisen tiedoston.",
      "result": "Harjoituksen viennissä Aino näkyy PL-tuloksella 245 kg ja penkkituloksella 50 kg, Eero vain penkkituloksella 100 kg: yhteensä kolme riviä.",
      "next": "Vertaa työkirjaa lopullisiin tuloksiin ja arkistoi kilpailu.",
      "image": "police-sorsa-export",
      "note": "Vahvistus koskee tätä kilpailua ja tarkistettuja henkilön sekä sarjan tietoja. Muuttuneiden tietojen jälkeen tarkista hyväksyntä uudelleen. Alkuperäiset makrot säilyvät tiedostossa; vienti ei suorita niitä. Kuvien lisenssivalinnat ovat vain erillisen harjoituskilpailun testitietoja.",
      "covers": [
        "Lajikohtainen SVNL-vahvistus",
        "Virallisuus ja lisenssin käsintarkistus",
        "Microsoft Excel -vaatimus",
        "Sorsa XLS -lataus",
        "Rinnakkaiset PL- ja penkkirivit",
        "Maastanoston ja yksikköpisteiden rajaus",
        "Alkuperäisten makrojen säilyminen"
      ],
      "verification": "Käyttöliittymän vahvistus ja oikea XLS-lataus testattu: kolme odotettua riviä, muut henkilöt rajattu pois, alkuperäisten 15 VBA-moduulin lähdekoodit säilyivät samoina",
      "caption": "Korjatun 1.0.2-version Sorsa-vientipainike ja vientiin liittyvä rajaus.",
      "phase": "Kilpailun jälkeen ja viiteohje"
    }
  ],
  "accent": "#36557C",
  "cover": "police-public-results",
  "training": [
    "pika",
    "asennus",
    "kilpailu",
    "punnitus",
    "osallistumiset",
    "ryhmat",
    "aloitus",
    "nosto",
    "voimanosto",
    "penkki-maasto",
    "penkki",
    "tulokset",
    "sorsa",
    "naytot",
    "live",
    "varmistus"
  ],
  "date": "13.9.2026",
  "edition": "1",
  "disclaimer": "VOIMA on riippumaton ohjelmistokokonaisuus, ei IPF:n, SVNL:n tai SVRY:n virallinen ohjelmisto. Viittaukset eri järjestöihin eivät tarkoita sovittua yhteistyötä.",
  "limits": [
    "Kuvat ovat aitoja selainkuvia synteettisistä harjoituskilpailuista. Nimet, päivät ja yksiköt ovat esimerkkejä.",
    "Tulospalvelu ja Voimapunnerrus käynnistettiin julkaistuista Windows-paketeista erilliseen tietokansioon. Poliisivoimailun käyttökoe tehtiin saman julkaisun lähteestä erillisillä porteilla, koska tavalliset portit olivat koneella käytössä.",
    "Kuunteluosoite 0.0.0.0 ja TLS-yhteys palvelinkoneen LAN-liitännän kautta varmennettiin. Tämä ei ole erillisten fyysisten laitteiden tai koko tapahtuman hyväksyntätesti.",
    "Companion-puhelin, QR/viivakoodinlukija, erilliset tuomari- ja näyttölaitteet, kamerat, OBS, ääni ja tulostin jäivät käytännön testin ulkopuolelle.",
    "Harjoituksia ei julkaistu LIVE-palveluun. Ulkoisia lisenssi-, ennätys-, video- ja arkistopalveluita, sähkökatkoa tai koko tietokansion palautusta toiselle koneelle ei hyväksyntätestattu.",
    "Voimapunnerruksen molemmat osajärjestykset suoritettiin loppuun. Tulospalvelussa ja poliisivoimailussa tarkistettiin esimerkkisuoritukset ja tulokset; kaikkien kilpailukierrosten ja poikkeustilanteiden loppuketjua ei ajettu.",
    "Sorsa-vienti koskee 13.9.2026 korjattua 1.0.2-pakettia (revision 20260913-sorsa1). Vanhasta 1.0.2-paketista puuttui Excel-pohja. Tarkista lataussivun revision ja päivitä vanha paketti. Viennin käyttö vaatii Windows-palvelinkoneeseen asennetun ja aktivoidun Microsoft Excelin."
  ],
  "source_provenance": "Julkaisu 13.9.2026, Poliisivoimailu 1.0.2 revision 20260913-sorsa1. Sorsa-viennin kuvat ja lataus tarkistettu korjatun julkaisun lähteestä erillisessä harjoituspalvelussa. Muut kuvat saman version dokumentointikokeesta.",
  "url": "https://powerliftingstream.fi/ohjeet/poliisivoimailu/1.0.2/",
  "release_revision": "20260913-sorsa1"
}