namespace  { using System; using System.Collections; internal sealed class  { private  ; private  ; private Ÿ  = new Ÿ(); private Ÿ  = new Ÿ(); private ArrayList  = new ArrayList(); private ArrayList  = new ArrayList(); private void ‰(object ANodeList) { Console.WriteLine("Node list:"); foreach (  in ANodeList as IEnumerable) { .‡(); } Console.WriteLine("====="); } public void Š( AStartNode,  AGoalNode) { this. = AStartNode; this. = AGoalNode; this..Add(this.); while (this..Count > 0) {   = () this..‰(); if (.†()) { while ( != null) { this..Insert(0, );  = .(); } break; } .(this.); foreach ( 2 in this.) {  3 = null; if (this..Contains(2)) { 3 = () this.[this..IndexOf(2)]; } if ((3 == null) || (2.() <= 3.())) {  4 = null; if (this..Contains(2)) { 4 = () this.[this..IndexOf(2)]; } if ((4 == null) || (2.() <= 4.())) { this..Remove(3); this..Remove(4); this..Š(2); } } } this..Add(); } } public ArrayList Solution { get { return this.; } } } }