/* -----------------------------------------------------------------------------
    NITTiket
    Copyright (c) 2026 NIT Software Solutions. Sva prava zadrzana.

    Ovaj izvorni kod je vlasnistvo NIT Software Solutions i predstavlja poslovnu
    tajnu. Umnozavanje, distribucija ili koriscenje bilo kog dela bez pisane
    saglasnosti vlasnika nisu dozvoljeni.
   ----------------------------------------------------------------------------- */

/*
    EKRAN EVIDENCIJA ROKOVA
    -----------------------
    Nastavak nittiket.css i tiketi.css, ne zamena. Radna povrsina, panel filtera,
    preklop, panel svojstava i celije mreze dolaze iz tiketi.css - ovaj ekran je
    rodjeni brat liste tiketa i deli sa njom svaki obrazac koji im je zajednicki.
    Ovde stoji samo ono cega kod tiketa nema: semafor, traka stanja i grupe.

    NIJEDNE HEKS VREDNOSTI - vazi isto pravilo kao u sekciji 1 osnovnog fajla:
    boja postoji samo kao token, a komponenta je uzima kroz var(--...). Cim se
    ovde pojavi upisana vrednost crvene, isteklo ostaje crveno i kad korisnik
    izabere drugu temu, i niko ne zna zasto.

    Sama provera pre commit-a je grep: van sekcije 1 u nittiket.css ne sme da
    postoji znak "#" ispred sest heks cifara. Zato ga nema ni u ovom komentaru -
    provera koja se pali na sopstveno objasnjenje prestane da se cita.

    Ucitava se POSLE tiketi.css (vidi App.razor). Redosled je bitan samo za
    pravila koja premoscavaju gustinu redova mreze (sekcija 4).

    Redosled sekcija:
      1. traka stanja   2. semafor   3. prekidac grupisanja
      4. mreza obaveza  5. grupe     6. istorija zapisa
*/

/* ============================================================================
   1. TRAKA STANJA
   Cetiri kartice, jednake sirine, na koje se klikce. Ovo je prva stvar koju
   oko uhvati na ekranu i mora da odgovori na pitanje "sta gori danas".

   BROJAC KOJI JE NULA NE SME DA IZGLEDA KAO ALARM. Prazna kartica gubi boju i
   postaje tiha: crvena nula na vrhu ekrana svaki dan uci coveka da crvenu na
   ovom ekranu ignorise, a onda prava nula-nije-nula prodje neprimeceno.
   ============================================================================ */

.traka-stanja {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .6rem;
}

.traka-stanja .kartica {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .1rem;
    padding: .6rem .8rem;
    background: var(--surf);
    border: 1px solid var(--line2);
    /* Leva ivica je deblja i nosi boju zone - drugi znak pored pozadine, koji
       prezivljava i crno-belu stampu izvestaja. */
    border-left-width: 4px;
    border-radius: var(--r2);
    color: var(--t1);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.traka-stanja .kartica:hover { border-color: var(--line3); }

.kartica-broj {
    font-size: 1.7rem;
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: -.02em;
}

.kartica-natpis {
    font-size: .76rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--t2);
}

.kartica-dopuna {
    font-size: .72rem;
    color: var(--t3);
}

/* Boje zona. Isteklo i "istice u 7 dana" nose i pozadinu, ne samo ivicu:
   ta dva broja su jedini razlog zbog kog covek ujutru otvara ovaj ekran. */
.traka-stanja .kartica.isteklo {
    border-left-color: var(--dg);
    background: var(--dg-bg);
}

.traka-stanja .kartica.isteklo .kartica-broj { color: var(--dg-tx); }

.traka-stanja .kartica.kriticno {
    border-left-color: var(--wn);
    background: var(--wn-bg);
}

.traka-stanja .kartica.kriticno .kartica-broj { color: var(--wn-tx); }

.traka-stanja .kartica.uskoro { border-left-color: var(--ac); }
.traka-stanja .kartica.uskoro .kartica-broj { color: var(--ac-tx); }

.traka-stanja .kartica.uredu { border-left-color: var(--ok); }
.traka-stanja .kartica.uredu .kartica-broj { color: var(--ok-tx); }

/*
    Prazna kartica. Gubi i pozadinu i boju broja - ostaje siva ivica i tiha
    cifra. Nula nije alarm.
*/
.traka-stanja .kartica.prazna {
    background: var(--surf);
    border-left-color: var(--line2);
    cursor: default;
}

.traka-stanja .kartica.prazna .kartica-broj { color: var(--t3); }
.traka-stanja .kartica.prazna .kartica-natpis { color: var(--t3); }

/* Izabrana kartica je i filter. Prsten, ne samo tamnija pozadina: izbor mora
   da se vidi i na kartici koja je vec obojena svojom zonom. */
.traka-stanja .kartica.izabrana {
    box-shadow: 0 0 0 2px var(--ac);
    border-color: transparent;
}

/* ============================================================================
   2. SEMAFOR
   GLAVNI VIZUELNI ELEMENT LISTE.

   Tri znaka odjednom, i svaki radi sam za sebe:
     1. BOJA kroz semanticke tokene (--dg / --wn / --ac / --ok),
     2. OBLIK - isteklo je puna tacka sa prstenom, u redu je prazan krug; to se
        vidi periferno i prezivljava daltonizam i crno-belu stampu,
     3. TEKST sa brojem dana i predznakom u znacenju.
   Jedan znak se previdi; tri se ne previde.
   ============================================================================ */

.semafor {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    min-width: 0;
    white-space: nowrap;
}

.semafor-znak {
    flex: 0 0 auto;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    /* Podrazumevano je prazan krug - obod bez ispune. Ispunu dodaju zone koje
       traze paznju, pa "u redu" i vizuelno ostaje najtise stanje. */
    background: transparent;
    box-shadow: inset 0 0 0 2px var(--t3);
}

.semafor-tekst {
    font-size: .76rem;
    font-weight: 500;
    color: var(--t2);
    overflow: hidden;
    text-overflow: ellipsis;
}

.semafor.uredu .semafor-znak { box-shadow: inset 0 0 0 2px var(--ok); }
.semafor.uredu .semafor-tekst { color: var(--t2); }

.semafor.uskoro .semafor-znak {
    background: var(--ac);
    box-shadow: none;
}

.semafor.uskoro .semafor-tekst { color: var(--ac-tx); }

.semafor.kriticno .semafor-znak {
    background: var(--wn);
    box-shadow: none;
}

.semafor.kriticno .semafor-tekst {
    color: var(--wn-tx);
    font-weight: 600;
}

/*
    ISTEKLO. Puna tacka SA PRSTENOM oko sebe - jedini oblik u celoj listi koji
    ima dva prstena, pa se vidi periferno, dok oko klizi niz kolonu. Boja sama
    ne prolazi kod osmine muskaraca i nestaje u crno-beloj stampi; oblik prolazi
    svuda.
*/
.semafor.isteklo .semafor-znak {
    width: 12px;
    height: 12px;
    background: var(--dg);
    box-shadow: 0 0 0 3px var(--dg-bg), 0 0 0 4px var(--dg-ln);
}

.semafor.isteklo .semafor-tekst {
    color: var(--dg-tx);
    font-weight: 600;
}

/* ============================================================================
   3. PREKIDAC GRUPISANJA
   Tri stanja, uz traku stanja. Koristi .prekidac-opcija iz tiketi.css - isti
   prekidac koji nosi izbor javno/interno u preklopu tiketa, jer je to isti
   pojam: nekoliko iskljucivih opcija, uvek vidljivih.
   ============================================================================ */

.grupisanje {
    display: inline-flex;
    align-self: flex-start;
    padding: 2px;
    background: var(--surf3);
    border: 1px solid var(--line2);
    border-radius: var(--r2);
}

.grupisanje .prekidac-opcija { height: 26px; font-size: .78rem; }

/* ============================================================================
   4. MREZA OBAVEZA
   Redovi su visi nego kod tiketa (40px umesto 34px) - subjekat nosi i naziv i
   vrstu ispod njega, a semafor trazi da tekst stane bez preloma. Skracen
   semafor prestaje da bude semafor.
   ============================================================================ */

/* Omotac, ne CssClass - razlog je objasnjen uz .tiketi-mreza u tiketi.css. */
.obaveze-mreza { display: contents; }

.obaveze-mreza .e-grid .e-rowcell { height: 40px; }

/* Celija koja otvara preklop. Dugme, ne veza: ovo je i tacka na koju se fokus
   vraca pri zatvaranju, pa mora da bude dohvatljiva tastaturom i da ne menja
   adresu sama od sebe. */
.celija-veza {
    display: block;
    width: 100%;
    padding: 0;
    background: none;
    border: 0;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    min-width: 0;
}

/* ============================================================================
   5. GRUPE
   Grupisan pregled zamenjuje mrezu, ne stoji uz nju. Zaglavlje grupe nosi
   NAJGORI ROK cele grupe, izracunat na serveru nad celim skupom - bez toga bi
   korisnik morao da otvori svaku grupu da bi saznao da li nesto gori, a to je
   tacno ono zbog cega ovaj ekran postoji.
   ============================================================================ */

.grupe {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    overflow-y: auto;
    max-height: calc(100vh - 330px);
}

.grupa {
    background: var(--surf);
    border: 1px solid var(--line2);
    /* Leva ivica nosi zonu cele grupe - isti znak kao na kartici u traci
       stanja, pa se dva mesta citaju istom navikom. */
    border-left-width: 4px;
    border-left-color: var(--line2);
    border-radius: var(--r2);
    overflow: hidden;
}

.grupa.isteklo { border-left-color: var(--dg); }
.grupa.kriticno { border-left-color: var(--wn); }
.grupa.uskoro { border-left-color: var(--ac); }
.grupa.uredu { border-left-color: var(--ok); }

/* Zaglavlje je OKVIR, a prekidac dugme u njemu (S2, 31.08.2026.).
   Do tada je ceo red bio jedno dugme, ali uz njega je stala i veza "Uredi
   subjekta" - a dugme u dugmetu nije ispravan HTML i pretrazivaci se oko
   ugnjezdenog klika ponasaju razlicito. Povrsina na koju se klikce nije
   smanjena: prekidac uzima ceo preostali prostor reda. */
.grupa-zaglavlje {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: 0 .7rem 0 0;
}

.grupa-prekidac {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex: 1 1 auto;
    min-width: 0;
    padding: .5rem .7rem;
    background: transparent;
    border: 0;
    color: var(--t1);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

/* Podloga se boji na prelaz preko PREKIDACA, ne preko celog zaglavlja: kad se
   mis nadje nad "Uredi subjekta", red ne sme da izgleda kao da ce se otvoriti. */
.grupa-prekidac:hover { background: var(--surf3); }

.grupa-prekidac .razmak { flex: 1 1 auto; }

/* Odgovorni u zaglavlju grupe se skracuje pre naziva subjekta: ime coveka je
   dopuna, a naziv je ono po cemu se grupa uopste prepoznaje. */
.grupa-odgovorni {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 180px;
    overflow: hidden;
}

/* Veza ka subjektu stoji do desne ivice i ne uvlaci se u prekidac - inace bi
   klik pored nje otvarao grupu, a to je tacno ono sto covek nije hteo. */
.grupa-uredi {
    flex: 0 0 auto;
    white-space: nowrap;
}

.grupa-strelica {
    flex: 0 0 auto;
    width: 14px;
    color: var(--t3);
    font-size: .8rem;
}

.grupa-naziv {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.grupa-podnaziv {
    font-family: var(--pismo-kod);
    font-size: .74rem;
    color: var(--t3);
}

.grupa-broj {
    padding: .05rem .4rem;
    background: var(--surf3);
    border-radius: 9px;
    color: var(--t2);
    font-size: .72rem;
    font-weight: 600;
}

.grupa-telo {
    border-top: 1px solid var(--line);
}

.grupa-red {
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 100%;
    padding: .35rem .7rem .35rem 1.6rem;
    background: transparent;
    border: 0;
    color: var(--t1);
    font: inherit;
    font-size: .84rem;
    text-align: left;
    cursor: pointer;
}

.grupa-red + .grupa-red { border-top: 1px solid var(--line); }

.grupa-red:hover { background: var(--surf3); }

.grupa-red .razmak { flex: 1 1 auto; }

.grupa-red-naslov {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ============================================================================
   6. ISTORIJA ZAPISA
   Revizorski trag, ne tabela. Tabela poziva na sortiranje po koloni i na
   poredjenje redova; ovde se cita jedno jedino pitanje - sta je vazilo kada.
   Zato je vremenska osa (klase .osa* iz tiketi.css), a razlika je samo u tome
   sto VAZECI zapis mora da se izdvoji.
   ============================================================================ */

/* Zapis koji trenutno vazi. Mirna zelena pozadina - jedini zapis u tragu koji
   se cita kao "ovo je stanje danas", ostali kao "ovo je bilo". */
.osa-stavka.zapis.vazeci .osa-telo {
    background: var(--ok-bg);
    border-color: var(--ok-ln);
}

.osa-stavka.zapis.vazeci .osa-znak {
    background: var(--ok-bg);
    color: var(--ok-tx);
}

/* Stariji zapisi su tisi - trag, ne razgovor. Citaju se odozgo nadole i samo
   kad neko trazi sta je vazilo pre dve godine. */
.osa-stavka.zapis:not(.vazeci) .osa-telo {
    background: var(--surf2);
}

.osa-stavka.zapis:not(.vazeci) .osa-zaglavlje .autor { color: var(--t2); }

/* Parovi natpis/vrednost unutar zapisa idu u dve kolone: broj dokumenta i
   datum izdavanja se citaju zajedno, a jedan ispod drugog bi zapis razvukli na
   pola ekrana. */
.osa-stavka.zapis .osa-sadrzaj {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .3rem .8rem;
}

.osa-stavka.zapis .osa-sadrzaj .par + .par { margin-top: 0; }

/* Obrazac ispravke. Uvucen i uokviren zato sto je radnja NAD zapisom, ne jos
   jedno polje u njemu - bez okvira se ne vidi gde zapis prestaje a izmena
   pocinje, pa covek koji ispravlja stari zapis pomisli da menja tekuci. */
.osa-ispravka {
    margin-top: .6rem;
    padding: .6rem;
    border: 1px solid var(--line2);
    border-radius: 6px;
    background: var(--surf);
}

.osa-ispravka > .par-natpis {
    display: block;
    margin-bottom: .4rem;
}

/* Obrazac ispravke u panelu svojstava. Izgleda kao .osa-ispravka, ali NE deli
   klasu sa njom, i to nije prepisivanje bez potrebe: panel je sirok 246px, pa
   ovde nema mesta ni za jedan red od dva polja - sva polja idu jedno ispod
   drugog i moraju da zauzmu punu sirinu. Zajednicka klasa bi znacila da prvo
   podesavanje sirine na osi razbije panel, ili obrnuto, a to bi se primetilo tek
   na uskom ekranu. */
.svojstva-ispravka {
    margin-top: .6rem;
    padding: .6rem;
    border: 1px solid var(--line2);
    border-radius: 6px;
    background: var(--surf);
}

.svojstva-ispravka > .par-natpis {
    display: block;
    margin-bottom: .4rem;
}

.svojstva-ispravka .filter-grupa + .filter-grupa { margin-top: .5rem; }

.svojstva-ispravka input,
.svojstva-ispravka select,
.svojstva-ispravka textarea {
    width: 100%;
    box-sizing: border-box;
}

/* ============================================================================
   7. REGISTAR SUBJEKATA (S1) I ZBIRNO STANJE
   Strana /subjekti i sve sto se sa nje pozajmljuje na /evidencije. Stoji u OVOM
   fajlu, a ne u svom: subjekat je deo modula evidencija i deli sa njim i semafor
   i zaglavlje grupe, pa bi zaseban fajl znacio jos jedan red u App.razor cija
   pozicija u nizu mora da se pogodi - a prvo premestanje bi to i pokvarilo.

   ZASTO OVDE NEMA SYNCFUSION MREZE. Spisak subjekata je kratak i bez sortiranja
   po koloni, pa su redovi obicna dugmad u CSS mrezi. Posledica za stil: sirine
   kolona su na JEDNOM mestu (grid-template-columns), a zaglavlje i redovi ih
   dele - dva puta upisane sirine su dva mesta koja se prvom izmenom razidju.
   ============================================================================ */

.subjekti {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.subjekti-traka {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.subjekti-traka h1 { margin: 0; }

/* Filteri u redu, ne u bocnom panelu: tri padajuca spiska ne opravdavaju panel
   koji se sklapa. Prelamaju se kad ne stanu - na uskom ekranu je red filtera
   koji izlazi izvan ekrana gori od dva reda. */
.subjekti-filteri {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: .6rem;
}

/* Razmak nosi sam red filtera, pa ga polja ne nose duplo. */
.subjekti-filteri .filter-grupa {
    margin-bottom: 0;
    min-width: 160px;
}

/* SIRINE KOLONA STOJE SAMO OVDE. Naziv uzima ostatak, ostalo je fiksno - zbir
   staje u radnu sirinu bez klizaca, a stanje na kraju ne sme da se skracuje jer
   je ono odgovor na pitanje zbog kog se spisak i otvara. */
.subjekti-mreza {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr) 110px minmax(0, 180px) minmax(0, 150px) 70px minmax(0, 190px);
}

.subjekti-zaglavlje,
.subjekat-red {
    display: grid;
    grid-column: 1 / -1;
    grid-template-columns: subgrid;
    align-items: center;
    gap: .5rem;
}

.subjekti-zaglavlje {
    padding: .3rem .6rem;
    border-bottom: 1px solid var(--line2);
    color: var(--t3);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
}

.subjekat-red {
    padding: .4rem .6rem;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--line);
    color: var(--t1);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.subjekat-red:hover { background: var(--surf3); }

.subjekat-red:last-child { border-bottom: 0; }

/* Naziv i oznaka u dva reda, kao u koloni „Subjekat" na listi obaveza - isti
   obrazac na dva ekrana je jedna navika, ne dve. */
.subjekat-ime {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* Brojevi desno poravnati: kolona brojeva poravnata levo se ne moze uporediti
   pogledom, a to je jedini razlog zbog kog broj rokova uopste stoji u koloni. */
.subjekti-mreza .broj {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* ----------------------------------------------------------------------------
   Zbirno stanje. Ista komponenta stoji u tri konteksta (red spiska, zaglavlje
   grupe, zaglavlje preklopa), pa nosi samo razmak - velicinu i boju daju
   .oznaka i njeni modifikatori iz nittiket.css.
   ---------------------------------------------------------------------------- */
.stanje-subjekta {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    min-width: 0;
}

/* Subjekat bez ijednog roka. Tisi od svake oznake - to nije alarm nego
   odsustvo predmeta, a tiha siva boja to kaze bez ijedne reci vise. */
.stanje-subjekta.prazno-stanje { font-size: .78rem; }

/* ----------------------------------------------------------------------------
   Vidljivost subjekta u obrascu - jedinica i tim. Uokvireni zato sto se traze
   DRUGOM dozvolom (compliance.subject.scope): dva polja utopljena medju ostala
   izgledala bi slucajno ugasena, a covek bez tog prava mora da vidi i gde
   subjekat stoji i zasto to ne moze da promeni.
   ---------------------------------------------------------------------------- */
.opseg-subjekta {
    margin-top: .6rem;
    padding: .6rem;
    border: 1px solid var(--line2);
    border-radius: var(--r2);
    background: var(--surf2);
}

.opseg-subjekta > .par-natpis {
    display: block;
    margin-bottom: .4rem;
}

/* Zakljucan okvir dobija isprekidanu ivicu - drugi znak pored ugasenih polja,
   koji prezivljava i crno-belu stampu i slabije razlikovanje boja. */
.opseg-subjekta.zakljucan {
    border-style: dashed;
    background: transparent;
}

/* Polja koja se ne smeju menjati NE SKRIVAJU se, samo se gase: gde subjekat
   stoji je podatak, a ne dugme. */
.opseg-subjekta select:disabled {
    opacity: .75;
    cursor: not-allowed;
}

/* ----------------------------------------------------------------------------
   Zaduzenje subjekta. Ista kutija kao opseg subjekta, i to namerno: oba su
   odeljak koji ne pripada glavnom obrascu nego stoji uz njega, pa ista ivica
   znaci istu vrstu sadrzaja.
   ---------------------------------------------------------------------------- */
.zaduzenje-panel {
    margin-top: .6rem;
    padding: .6rem;
    border: 1px solid var(--line2);
    border-radius: var(--r2);
    background: var(--surf2);
}

.zaduzenje-panel > .par-natpis {
    display: block;
    margin-bottom: .4rem;
}

/* Ko drzi opremu danas - jedini red koji se gleda cesto, pa stoji u koloni i
   bez sitnog teksta oko sebe. */
.zaduzenje-tekuce {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    margin-bottom: .5rem;
}

/* Zatvoreni periodi. Odvojeni linijom, jer istorija se cita kad nesto vec nije
   u redu - ne sme da se pomesa sa tekucim stanjem. */
.zaduzenje-istorija {
    margin-top: .6rem;
    padding-top: .5rem;
    border-top: 1px dashed var(--line2);
}

/* Ono sto ispravka ne menja - vrsta, stanje, broj rokova, revizija. Odvojeno
   linijom da se ne procita kao jos jedan deo obrasca. */
.nepromenljivo {
    margin-top: .8rem;
    padding-top: .6rem;
    border-top: 1px solid var(--line);
}

/* ----------------------------------------------------------------------------
   Uzak ekran. Cetiri kartice ispod 900px ne mogu da stanu u red - prelaze u
   dve kolone, a ne u cetiri reda: cetiri reda bi pojela ceo prvi ekran i lista
   bi nestala ispod pregiba.
   ---------------------------------------------------------------------------- */
@media (max-width: 900px) {
    .traka-stanja { grid-template-columns: repeat(2, minmax(0, 1fr)); }

    .osa-stavka.zapis .osa-sadrzaj { grid-template-columns: minmax(0, 1fr); }

    /* Registar gubi jedinicu i odgovornog pre svega ostalog: naziv, stanje i
       broj rokova su ono zbog cega se spisak otvara, a jedinica se ionako cita u
       preklopu. Kolona se GASI, ne skracuje - skracena kolona od dvadeset
       piksela je stubac tri tacke koji nista ne kaze, a zauzima mesto. */
    .subjekti-mreza {
        grid-template-columns: minmax(0, 1fr) 100px 60px minmax(0, 160px);
    }

    .subjekti-zaglavlje > :nth-child(3),
    .subjekti-zaglavlje > :nth-child(4),
    .subjekat-red > :nth-child(3),
    .subjekat-red > :nth-child(4) {
        display: none;
    }

    /* Odgovorni u zaglavlju grupe ide istim putem i iz istog razloga. */
    .grupa-odgovorni { display: none; }
}
