Пример #1
0
        public Schalter(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
            : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
        {
            string[] glAnschl = elem[2].Split(' ');
            Gleis    gl       = Parent.GleisElemente.Element(Convert.ToInt32(glAnschl[0]));

            if (elem.Length > 4)
            {
                KoppelungsString = elem[4];
            }
            if (gl != null)
            {
                PositionRaster = gl.GetRasterPosition(this, Convert.ToInt32(glAnschl[1]));
                Position       = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);

                if (gl.GleisElementAnschluss(this))
                {
                    AnschlussGleis = gl;
                    Ausgang        = AnschlussGleis.Ausgang;

                    Parent.SchalterElemente.Hinzufügen(this);
                    _graphicsPath = new GraphicsPath();

                    this.Berechnung();
                }
            }
        }
Пример #2
0
 /// <summary>
 /// Wird ausgelösst, wenn der Anzeigetyp geändert wurde.
 /// </summary>
 /// <param name="e"></param>
 protected virtual void OnViewTypeChanged(AnzeigeTyp e)
 {
     if (this.ViewTypChanged != null)
     {
         this.ViewTypChanged(e);
     }
 }
Пример #3
0
        /// <summary>
        /// Konstruktor zum laden aus der .anl-Datei
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="zoom"></param>
        /// <param name="anzeigeTyp"></param>
        /// <param name="elem"></param>
        public InfoFenster(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
            : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
        {
            string[] glAnschl = elem[2].Split(' ');
            Gleis    gl       = Parent.GleisElemente.Element(Convert.ToInt32(glAnschl[0]));

            Gleisposition = Convert.ToInt32(glAnschl[1]);
            if (elem[3] == "0")
            {
                _lage = false;
            }
            else
            {
                _lage = Convert.ToBoolean(elem[3]);
            }
            if (gl != null)
            {
                PositionRaster = gl.GetRasterPosition(this, Convert.ToInt32(glAnschl[1]));
                Position       = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
                AnschlussGleis = gl;

                Parent.InfoElemente.Hinzufügen(this);
                this.Text = "";                //InfoString;
                this.Berechnung();
            }
        }
Пример #4
0
        public FahrstrasseK(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem, string fsListe, string befehle)
            : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
        {
            _fahrStrassen = new List <FahrstrasseN>();
            if (!EinlesenFahrstrassenListe(_fahrStrassen, fsListe))
            {
                return;
            }

            this._startSignal = _fahrStrassen.First().StartSignal;
            this._endSignal   = _fahrStrassen.Last().EndSignal;

            string[] spString;
            spString = befehle.Trim().Split('\t');
            if (spString[0] == "Befehle")
            {
                _befehle = new List <Befehl>();
                if (!this.EinlesenBefehlsliste(_befehle, spString))
                {
                    return;
                }
            }
            else
            {
                return;
            }

            Parent.FahrstrassenKElemente.Hinzufügen(this);
            Berechnung();
        }
Пример #5
0
        /// <summary>
        /// zum Laden aus der Text-Datei
        /// </summary>
        /// <param name="parent">AnlagenElemente</param>
        /// <param name="zoom"></param>
        /// <param name="anzeigeTyp"></param>
        /// <param name="elem">Zeile aus der Text-Datei</param>
        public EingangsSchalter(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
            : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
        {
            KurzBezeichnung = "Eing";
            string[] glAnschl = elem[2].Split(' ');

            Ausgang.SpeicherString = elem[3];
            Bezeichnung            = elem[4];
            Stecker = elem[5];

            Gleis gl = Parent.GleisElemente.Element(Convert.ToInt32(glAnschl[0]));

            Gleisposition = Convert.ToInt32(glAnschl[1]);
            if (gl != null)
            {
                PositionRaster = gl.GetRasterPosition(this, Convert.ToInt32(glAnschl[1]));
                Position       = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
                {
                    AnschlussGleis = gl;
                    Parent.EingSchalterElemente.Hinzufügen(this);
                    _graphicsPath      = new GraphicsPath();
                    _graphicsPathKreis = new GraphicsPath();
                    this.Berechnung();
                }
            }
        }
Пример #6
0
 public Zug(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
     : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
 {
     //infoFenster = null; //parent.InfoElemente.Element(Convert.ToInt32(elem[2]));
     //signalNr = Convert.ToInt32( elem[2] );
     Parent.ZugElemente.Hinzufügen(this);
     _signalNr = Convert.ToInt32(elem[2]);
     _lok      = elem[3];
     _typ      = elem[4];
     if (elem[5] != "")
     {
         _geschwindigkeit = Convert.ToInt16(elem[5]);
     }
     Bezeichnung = elem[6];
     if (elem.Length > 7)
     {
         _laenge = Convert.ToInt32(elem[7]);
     }
     if (elem.Length > 8)
     {
         _digitalAdresse = Convert.ToInt16(elem[8]);
     }
     if (elem.Length > 9)
     {
         _ankunftZeit = Convert.ToDateTime(elem[9]);
     }
 }
Пример #7
0
        public Signal(AnlagenElemente parent, Int32 iD, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition, bool inZeichenRichtung)
            : base(parent, iD, zoom, anzeigeTyp)
        {
            KurzBezeichnung         = "Sn";
            PositionRaster          = rasterPosition;
            Position                = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
            Ausgang                 = new Adresse(parent);
            this._inZeichenRichtung = inZeichenRichtung;

            foreach (Gleis gl in Parent.GleisElemente.Elemente)
            {
                if (gl.GleisElementAnschluss(this))
                {
                    AnschlussGleis = gl;
                    Parent.SignalElemente.Hinzufügen(this);

                    this._stringFormat               = new StringFormat();
                    this._stringFormat.Alignment     = StringAlignment.Center;
                    this._stringFormat.LineAlignment = StringAlignment.Center;

                    this._graphicsPathHintergrund = new GraphicsPath();
                    this._graphicsPathKreis       = new GraphicsPath();
                    this._graphicsPathLinien      = new GraphicsPath();
                    this._graphicsPathText        = new GraphicsPath();

                    this._farbe = Color.Red;

                    this.Berechnung();

                    break;
                }
            }
        }
Пример #8
0
 /// <summary>
 /// Konstruktor für Element Vorschau beim neuzeichnen
 /// </summary>
 /// <param name="parent"></param>
 /// <param name="zoom"></param>
 /// <param name="anzeigeTyp"></param>
 /// <param name="rasterPosition"></param>
 public InfoFenster(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition)
     : base(parent, 0, zoom, anzeigeTyp)
 {
     PositionRaster = rasterPosition;
     Position       = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
     _txt           = "Infofeld";
     this.Berechnung();
 }
Пример #9
0
 public Entkuppler(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition)
     : base(parent, 0, zoom, anzeigeTyp)
 {
     PositionRaster  = rasterPosition;
     Position        = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
     KurzBezeichnung = "Ek";
     this.Berechnung();
 }
Пример #10
0
 public Haltestelle(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
     : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
 {
     infoFenster      = parent.InfoElemente.Element(Convert.ToInt32(elem[2]));
     text             = "HS " + ID;
     infoFenster.Text = text;
     Parent.HaltestellenElemente.Hinzufügen(this);
 }
Пример #11
0
 public Anschluss(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
     : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
 {
     KurzBezeichnung  = "Anschl";
     this.Bezeichnung = elem[2];
     this.Stecker     = elem[3];
     Parent.AnschlussElemente.Hinzufügen(this);
 }
Пример #12
0
 public Schalter(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition)
     : base(parent, 0, zoom, anzeigeTyp)
 {
     _graphicsPath  = new GraphicsPath();
     PositionRaster = rasterPosition;
     Position       = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
     this.Berechnung();
 }
Пример #13
0
        public Gleis(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, Knoten startKnoten, Knoten endKnoten)
            : base(parent, 0, zoom, anzeigeTyp)
        {
            _graphicsPath   = new GraphicsPath();
            KurzBezeichnung = "Gl";
            StartKn         = startKnoten;
            EndKn           = endKnoten;

            this.Berechnung();
        }
Пример #14
0
 public FSS(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition)
     : base(parent, 0, zoom, anzeigeTyp)
 {
     KurzBezeichnung         = "Fss";
     this._graphicsPath      = new GraphicsPath();
     this._graphicsPathKreis = new GraphicsPath();
     PositionRaster          = rasterPosition;
     Position = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
     this.Berechnung();
 }
Пример #15
0
        public Knoten(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, Point positionRaster)
            : base(parent, 0, zoom, anzeigeTyp)
        {
            PositionRaster     = positionRaster;
            Position           = new Point(positionRaster.X * zoom, positionRaster.Y * zoom);
            this._graphicsPath = new GraphicsPath();

            this._füllFarbe = Color.White;
            this.Berechnung();
        }
Пример #16
0
 public StartSignalGruppe(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
     : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
 {
     Parent.SsgElemente.Hinzufügen(this);
     this._stringFormat = new StringFormat();
     PositionRaster     = new Point(Convert.ToInt32(elem[2]), Convert.ToInt32(elem[3]));
     TypeListenString   = elem[4];
     Bezeichnung        = elem[5];
     SignalString       = elem[6];
 }
Пример #17
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="parent"></param>
 /// <param name="iD"></param>
 /// <param name="zoom"></param>
 /// <param name="anzeigeTyp"></param>
 public AnlagenElement(AnlagenElemente parent, Int32 iD, Int32 zoom, AnzeigeTyp anzeigeTyp)
 {
     this._parent                = parent;
     this._iD                    = iD;
     this._zoom                  = zoom;
     this._anzeigenTyp           = anzeigeTyp;
     this._passiv                = false;
     this._bezeichnung           = "";
     this._kopplungsBefehlsListe = null;
 }
Пример #18
0
        ///// <summary>
        /////
        ///// </summary>
        ///// <param name="elementListe"></param>
        //public FahrstrasseK(AnlagenElement[] elementListe)
        //: base(elementListe[0].Parent, elementListe[0].Parent.FahrstrassenElemente.SucheFreieNummer(), elementListe[0].Zoom, elementListe[0].AnzeigenTyp) {
        //	Berechnung();
        //}

        public FahrstrasseK(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, List <FahrstrasseN> fsListe, string befehlsString)
            : base(parent, parent.FahrstrassenKElemente.SucheFreieNummer(), zoom, anzeigeTyp)
        {
            _fahrStrassen      = fsListe;
            this.BefehleString = befehlsString;
            this._startSignal  = _fahrStrassen.First().StartSignal;
            this._endSignal    = _fahrStrassen.Last().EndSignal;

            Parent.FahrstrassenKElemente.Hinzufügen(this);
            Berechnung();
        }
Пример #19
0
        public Knoten(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
            : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
        {
            PositionRaster = new Point(Convert.ToInt32(elem[2]), Convert.ToInt32(elem[3]));
            Parent.KnotenElemente.Hinzufügen(this);

            Position           = new Point(PositionRaster.X * zoom, PositionRaster.Y * zoom);
            this._graphicsPath = new GraphicsPath();
            this._füllFarbe    = Color.White;
            this.Berechnung();
        }
Пример #20
0
        /// <summary>
        /// zum Laden aus der Text-Datei
        /// </summary>
        /// <param name="parent">AnlagenElemente</param>
        /// <param name="zoom"></param>
        /// <param name="anzeigeTyp"></param>
        /// <param name="elem">Zeile aus der Text-Datei</param>
        public FSS(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
            : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
        {
            KurzBezeichnung = "Fss";
            string[] glAnschl = elem[2].Split(' ');
            _reglerNrQuelle[0] = Convert.ToInt32(elem[3]);
            _reglerNrQuelle[1] = Convert.ToInt32(elem[4]);
            _reglerNr[0]       = Convert.ToInt32(elem[3]);
            _reglerNr[1]       = Convert.ToInt32(elem[4]);
            _fss[0]            = null;
            _regler[0]         = null;
            if (_reglerNr[0] > 0)
            {
                _regler[0] = Parent.ReglerElemente.Element(_reglerNr[0]);
            }
            _fss[1]    = null;
            _regler[1] = null;
            if (_reglerNr[1] > 0)
            {
                _regler[1] = Parent.ReglerElemente.Element(_reglerNr[1]);
            }
            Ausgang.SpeicherString = elem[5];
            if (elem.Length > 7)
            {
                Bezeichnung = elem[6];
                Stecker     = elem[7];
            }
            if (elem.Length > 8)
            {
                KoppelungsString = elem[8];
            }
            if (elem.Length > 9)
            {
                sichtbarkeit = Convert.ToBoolean(elem[9]);
            }

            Gleis gl = Parent.GleisElemente.Element(Convert.ToInt32(glAnschl[0]));

            Gleisposition = Convert.ToInt32(glAnschl[1]);
            if (gl != null)
            {
                PositionRaster = gl.GetRasterPosition(this, Convert.ToInt32(glAnschl[1]));
                Position       = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
                {
                    AnschlussGleis = gl;
                    Parent.FssElemente.Hinzufügen(this);
                    _graphicsPath      = new GraphicsPath();
                    _graphicsPathKreis = new GraphicsPath();
                    this.Berechnung();
                }
            }
        }
Пример #21
0
        public Signal(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition, bool inZeichenRichtung)
            : base(parent, 0, zoom, anzeigeTyp)
        {
            KurzBezeichnung         = "Sn";
            PositionRaster          = rasterPosition;
            Position                = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
            this._inZeichenRichtung = inZeichenRichtung;

            this._graphicsPathHintergrund = new GraphicsPath();
            this._graphicsPathKreis       = new GraphicsPath();
            this._graphicsPathLinien      = new GraphicsPath();

            this._farbe = Color.Red;

            this.Berechnung();
        }
Пример #22
0
        /// <summary>
        /// Konstruktor für neuzeichnen abschließen und in Liste eintragen
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="iD"></param>
        /// <param name="zoom"></param>
        /// <param name="anzeigeTyp"></param>
        /// <param name="rasterPosition"></param>
        public InfoFenster(AnlagenElemente parent, Int32 iD, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition)
            : base(parent, iD, zoom, anzeigeTyp)
        {
            PositionRaster = rasterPosition;
            Position       = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
            foreach (Gleis gl in Parent.GleisElemente.Elemente)
            {
                if (gl.GleisElementAnschluss(this))
                {
                    AnschlussGleis = gl;
                    Parent.InfoElemente.Hinzufügen(this);

                    this.Berechnung();
                    break;
                }
            }
        }
Пример #23
0
        public Weiche(AnlagenElemente parent, Int32 iD, Int32 zoom, AnzeigeTyp anzeigeTyp, Knoten node, Gleis gleis1, Gleis gleis2)
            : base(parent, iD, zoom, anzeigeTyp)
        {
            Ausgang         = new Adresse(parent);
            KurzBezeichnung = "We";
            _gleise[0]      = gleis1;
            _gleise[1]      = gleis2;
            _knoten         = node;
            Parent.WeicheElemente.Hinzufügen(this);
            this.stringFormat               = new StringFormat();
            this.stringFormat.Alignment     = StringAlignment.Far;
            this.stringFormat.LineAlignment = StringAlignment.Far;

            this.farbeFillEllipse = Color.Red;
            this.farbeLinien      = Color.Black;
            this.Berechnung();
        }
Пример #24
0
 public Schalter(AnlagenElemente parent, Int32 iD, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition)
     : base(parent, iD, zoom, anzeigeTyp)
 {
     _graphicsPath  = new GraphicsPath();
     PositionRaster = rasterPosition;
     Position       = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
     foreach (Gleis gl in Parent.GleisElemente.Elemente)
     {
         if (gl.GleisElementAnschluss(this))
         {
             AnschlussGleis = gl;
             Ausgang        = AnschlussGleis.Ausgang;
             Parent.SchalterElemente.Hinzufügen(this);
             this.Berechnung();
             break;
         }
     }
 }
Пример #25
0
 public Entkuppler(AnlagenElemente parent, Int32 iD, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition)
     : base(parent, iD, zoom, anzeigeTyp)
 {
     Ausgang         = new Adresse(parent);
     PositionRaster  = rasterPosition;
     Position        = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
     KurzBezeichnung = "Ek";
     foreach (Gleis gl in Parent.GleisElemente.Elemente)
     {
         if (gl.GleisElementAnschluss(this))
         {
             AnschlussGleis = gl;
             Parent.EntkupplerElemente.Hinzufügen(this);
             this.Berechnung();
             break;
         }
     }
 }
Пример #26
0
 public Servo(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
     : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
 {
     PositionRaster = new Point(Convert.ToInt32(elem[2]), Convert.ToInt32(elem[3]));
     if (PositionRaster.X < 0 || PositionRaster.Y < 0)
     {
         _sichtbar = false;
     }
     _winkelEin             = Convert.ToInt16(elem[4]);
     _winkelAus             = Convert.ToInt16(elem[5]);
     _speed                 = Convert.ToInt16(elem[6]);
     _winkelRegelung        = Convert.ToBoolean(elem[7]);
     Ausgang.SpeicherString = elem[8];
     _beschriftung          = elem[9];
     Bezeichnung            = elem[10];
     Stecker                = elem[11];
     this.Parent.ServoElemente.Hinzufügen(this);
     this.Berechnung();
 }
Пример #27
0
 public EingangsSchalter(AnlagenElemente parent, Int32 iD, Int32 zoom, AnzeigeTyp anzeigeTyp, Point rasterPosition)
     : base(parent, iD, zoom, anzeigeTyp)
 {
     KurzBezeichnung         = "EingSchalter";
     _graphicsPath           = new GraphicsPath();
     this._graphicsPathKreis = new GraphicsPath();
     PositionRaster          = rasterPosition;
     Ausgang  = new Adresse(parent);
     Position = new Point(PositionRaster.X * Zoom, PositionRaster.Y * Zoom);
     foreach (Gleis gl in Parent.GleisElemente.Elemente)
     {
         if (gl.GleisElementAnschluss(this))
         {
             AnschlussGleis = gl;
             Parent.EingSchalterElemente.Hinzufügen(this);
             this.Berechnung();
         }
     }
 }
Пример #28
0
 public Regler(AnlagenElemente parent, Int32 zoom, AnzeigeTyp anzeigeTyp, string[] elem)
     : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
 {
     this._stringFormat = new StringFormat();
     PositionRaster     = new Point(Convert.ToInt32(elem[2]), Convert.ToInt32(elem[3]));
     Parent.ReglerElemente.Hinzufügen(this);
     Position               = new Point(PositionRaster.X * zoom, PositionRaster.Y * zoom);
     this._graphicsPath     = new GraphicsPath();
     this._graphicsPathText = new GraphicsPath();
     this.fuellFarbe        = Color.FromName(elem[4]);
     if (elem.Length > 6)
     {
         this.Bezeichnung = elem[6];
     }
     if (elem.Length > 7)
     {
         this.Stecker = elem[7];
     }
     KurzBezeichnung = "Reg";
     this.Berechnung();
 }
Пример #29
0
        public MCSpeicher(AnlagenElemente parent, int zoom, AnzeigeTyp anzeigeTyp, string[] elem)
            : base(parent, Convert.ToInt32(elem[1]), zoom, anzeigeTyp)
        {
            //rmBitArray.Length = rmB * rmL;
            //rmByte = new Byte[rmL * 2];

            PositionRaster      = new Point(Convert.ToInt32(elem[2]), Convert.ToInt32(elem[3]));
            _outBitArray.Length = poB * poL;
            ausgabeAktuell      = new bool[poL];
            ausgangsByte        = new byte[poL * 2];
            Parent.ListeMCSpeicher.Hinzufügen(this);
            Arduino ard = new Arduino();

            ard.Nr = this.ID;
            if (elem.Length > 4)
            {
                this.Bezeichnung = elem[4];
            }
            parent.AnlagenZustand.ArduinoListe.Add(ard);
            Berechnung();
        }
Пример #30
0
        public Gleis(AnlagenElemente parent, Int32 iD, Int32 zoom, AnzeigeTyp anzeigeTyp, Knoten startKnoten, Knoten endKnoten)
            : base(parent, iD, zoom, anzeigeTyp)
        {
            _graphicsPath                   = new GraphicsPath();
            KurzBezeichnung                 = "Gl";
            this.stringFormat               = new StringFormat();
            this.stringFormat.Alignment     = StringAlignment.Far;
            this.stringFormat.LineAlignment = StringAlignment.Far;

            StartKn = startKnoten;
            EndKn   = endKnoten;

            //this.farbeFillEllipse = Color.Red;
            this.farbeLinien = Color.Gray;
            this.Berechnung();


            StartKn.AttachTrack(this);
            EndKn.AttachTrack(this);
            Parent.GleisElemente.Hinzufügen(this);
        }