mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-11-04 01:00:23 +00:00 
			
		
		
		
	Début utilisation bdd pour les monstres + optim / correction
This commit is contained in:
		
							parent
							
								
									2a151915e3
								
							
						
					
					
						commit
						184994c0d8
					
				
					 3 changed files with 118 additions and 53 deletions
				
			
		| 
						 | 
					@ -52,13 +52,18 @@ namespace AideDeJeu.Services
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public async Task<IEnumerable<Monster>> GetMonstersAsync()
 | 
					        public async Task<IEnumerable<Monster>> GetMonstersAsync(string category, string type, string minPower, string maxPower, string size, string legendary, string source)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            using (var context = CreateContext())
 | 
					            using (var context = CreateContext())
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                //We use OrderByDescending because Posts are generally displayed from most recent to oldest
 | 
					                //We use OrderByDescending because Posts are generally displayed from most recent to oldest
 | 
				
			||||||
                return await context.Monsters
 | 
					                return await context.Monsters
 | 
				
			||||||
                                    .AsNoTracking()
 | 
					                                    .AsNoTracking()
 | 
				
			||||||
 | 
					                                    .Where(monster =>
 | 
				
			||||||
 | 
					                                        monster.Type.Contains(type) &&
 | 
				
			||||||
 | 
					                                        //("[" + monster.Size.Trim().ToUpper() + "]").Contains("[" + size.ToUpper() + "]") &&
 | 
				
			||||||
 | 
					                                        monster.Source.Contains(source)
 | 
				
			||||||
 | 
					                                        )
 | 
				
			||||||
                                    .OrderByDescending(monster => monster.Id)
 | 
					                                    .OrderByDescending(monster => monster.Id)
 | 
				
			||||||
                                    .ToListAsync();
 | 
					                                    .ToListAsync();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,4 +1,5 @@
 | 
				
			||||||
using AideDeJeu.Tools;
 | 
					using AideDeJeu.Services;
 | 
				
			||||||
 | 
					using AideDeJeu.Tools;
 | 
				
			||||||
using AideDeJeuLib;
 | 
					using AideDeJeuLib;
 | 
				
			||||||
using AideDeJeuLib.Monsters;
 | 
					using AideDeJeuLib.Monsters;
 | 
				
			||||||
using System;
 | 
					using System;
 | 
				
			||||||
| 
						 | 
					@ -41,19 +42,35 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public List<KeyValuePair<string, string>> Powers { get; set; } = new List<KeyValuePair<string, string>>()
 | 
					        public List<KeyValuePair<string, string>> Powers { get; set; } = new List<KeyValuePair<string, string>>()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            new KeyValuePair<string, string>("Z", "0" ),
 | 
					            new KeyValuePair<string, string>(" 0 (0 PX)", "0" ),
 | 
				
			||||||
            new KeyValuePair<string, string>(".12", "1/8" ),
 | 
					            new KeyValuePair<string, string>(" 1/8 (25 PX)", "1/8" ),
 | 
				
			||||||
            new KeyValuePair<string, string>(".25", "1/4" ),
 | 
					            new KeyValuePair<string, string>(" 1/4 (50 PX)", "1/4" ),
 | 
				
			||||||
            new KeyValuePair<string, string>(".5", "1/2" ),
 | 
					            new KeyValuePair<string, string>(" 1/2 (100 PX)", "1/2" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("1", "1" ),
 | 
					            new KeyValuePair<string, string>(" 1 (200 PX)", "1" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("2", "2" ),
 | 
					            new KeyValuePair<string, string>(" 2 (450 PX)", "2" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("4", "4" ),
 | 
					            new KeyValuePair<string, string>(" 3 (700 PX)", "3" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("6", "6" ),
 | 
					            new KeyValuePair<string, string>(" 4 (1100 PX)", "4" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("8", "8" ),
 | 
					            new KeyValuePair<string, string>(" 5 (1800 PX)", "5" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("10", "10" ),
 | 
					            new KeyValuePair<string, string>(" 6 (2300 PX)", "6" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("15", "15" ),
 | 
					            new KeyValuePair<string, string>(" 7 (2900 PX)", "7" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("20", "20" ),
 | 
					            new KeyValuePair<string, string>(" 8 (3900 PX)", "8" ),
 | 
				
			||||||
            new KeyValuePair<string, string>("30", "30" ),
 | 
					            new KeyValuePair<string, string>(" 9 (5000 PX)", "9" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 10 (5900 PX)", "10" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 11 (7200 PX)", "11" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 12 (8400 PX)", "12" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 13 (10000 PX)", "13" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 14 (11500 PX)", "14" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 15 (13000 PX)", "15" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 16 (15000 PX)", "16" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 17 (18000 PX)", "17" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 18 (20000 PX)", "18" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 19 (22000 PX)", "19" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 20 (25000 PX)", "20" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 21 (33000 PX)", "21" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 22 (41000 PX)", "22" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 23 (50000 PX)", "23" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 24 (62000 PX)", "24" ),
 | 
				
			||||||
 | 
					            new KeyValuePair<string, string>(" 30 (155000 PX)", "30" ),
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        public List<KeyValuePair<string, string>> Sizes { get; set; } = new List<KeyValuePair<string, string>>()
 | 
					        public List<KeyValuePair<string, string>> Sizes { get; set; } = new List<KeyValuePair<string, string>>()
 | 
				
			||||||
| 
						 | 
					@ -77,8 +94,8 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
        public List<KeyValuePair<string, string>> Sources { get; set; } = new List<KeyValuePair<string, string>>()
 | 
					        public List<KeyValuePair<string, string>> Sources { get; set; } = new List<KeyValuePair<string, string>>()
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            new KeyValuePair<string, string>("", "Toutes"),
 | 
					            new KeyValuePair<string, string>("", "Toutes"),
 | 
				
			||||||
            new KeyValuePair<string, string>("srd", "SRD"),
 | 
					            new KeyValuePair<string, string>("(SRD)", "SRD"),
 | 
				
			||||||
            new KeyValuePair<string, string>("mm", "MM"),
 | 
					            new KeyValuePair<string, string>("Monster Manual", "MM"),
 | 
				
			||||||
            new KeyValuePair<string, string>("sup", "VGtM, MToF"),
 | 
					            new KeyValuePair<string, string>("sup", "VGtM, MToF"),
 | 
				
			||||||
            new KeyValuePair<string, string>("supno", "AL, AideDD"),
 | 
					            new KeyValuePair<string, string>("supno", "AL, AideDD"),
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
| 
						 | 
					@ -92,8 +109,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Category, value);
 | 
					                if (_Category != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Category, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _Type = 0;
 | 
					        private int _Type = 0;
 | 
				
			||||||
| 
						 | 
					@ -105,8 +125,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Type, value);
 | 
					                if (_Type != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Type, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _MinPower = 0;
 | 
					        private int _MinPower = 0;
 | 
				
			||||||
| 
						 | 
					@ -118,15 +141,18 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _MinPower, value);
 | 
					                if (_MinPower != value)
 | 
				
			||||||
                if (_MaxPower < _MinPower)
 | 
					 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    SetProperty(ref _MaxPower, value, nameof(MaxPower));
 | 
					                    SetProperty(ref _MinPower, value);
 | 
				
			||||||
 | 
					                    if (_MaxPower < _MinPower)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        SetProperty(ref _MaxPower, value, nameof(MaxPower));
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _MaxPower = 11;
 | 
					        private int _MaxPower = 18;
 | 
				
			||||||
        public int MaxPower
 | 
					        public int MaxPower
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            get
 | 
					            get
 | 
				
			||||||
| 
						 | 
					@ -135,12 +161,15 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _MaxPower, value);
 | 
					                if (_MaxPower != value)
 | 
				
			||||||
                if (_MaxPower < _MinPower)
 | 
					 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    SetProperty(ref _MinPower, value, nameof(MinPower));
 | 
					                    SetProperty(ref _MaxPower, value);
 | 
				
			||||||
 | 
					                    if (_MaxPower < _MinPower)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        SetProperty(ref _MinPower, value, nameof(MinPower));
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _Size = 0;
 | 
					        private int _Size = 0;
 | 
				
			||||||
| 
						 | 
					@ -152,8 +181,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Size, value);
 | 
					                if (_Size != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Size, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _Legendary = 0;
 | 
					        private int _Legendary = 0;
 | 
				
			||||||
| 
						 | 
					@ -165,8 +197,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Legendary, value);
 | 
					                if (_Legendary != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Legendary, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _Source = 1;
 | 
					        private int _Source = 1;
 | 
				
			||||||
| 
						 | 
					@ -178,8 +213,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Source, value);
 | 
					                if (_Source != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Source, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -199,7 +237,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            try
 | 
					            try
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                AllItems.Clear();
 | 
					                AllItems.Clear();
 | 
				
			||||||
                var items = await new MonstersScrappers().GetMonsters(category: Categories[Category].Key, type: Types[Type].Key, minPower: Powers[MinPower].Key, maxPower: Powers[MaxPower].Key, size: Sizes[Size].Key, legendary:Legendaries[Legendary].Key, source: Sources[Source].Key);
 | 
					                //var items = await new MonstersScrappers().GetMonsters(category: Categories[Category].Key, type: Types[Type].Key, minPower: Powers[MinPower].Key, maxPower: Powers[MaxPower].Key, size: Sizes[Size].Key, legendary:Legendaries[Legendary].Key, source: Sources[Source].Key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                ItemDatabaseHelper<ItemDatabaseContext> helper = new ItemDatabaseHelper<ItemDatabaseContext>();
 | 
				
			||||||
 | 
					                var items = await helper.GetMonstersAsync(category: Categories[Category].Key, type: Types[Type].Key, minPower: Powers[MinPower].Key, maxPower: Powers[MaxPower].Key, size: Sizes[Size].Key, legendary: Legendaries[Legendary].Key, source: Sources[Source].Key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                var aitems = items.ToArray();
 | 
					                var aitems = items.ToArray();
 | 
				
			||||||
                Array.Sort(aitems, new ItemComparer());
 | 
					                Array.Sort(aitems, new ItemComparer());
 | 
				
			||||||
                foreach (var item in aitems)
 | 
					                foreach (var item in aitems)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -76,8 +76,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Classe, value);
 | 
					                if (_Classe != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Classe, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _NiveauMin = 0;
 | 
					        private int _NiveauMin = 0;
 | 
				
			||||||
| 
						 | 
					@ -89,12 +92,15 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _NiveauMin, value);
 | 
					                if (_NiveauMin != value)
 | 
				
			||||||
                if (_NiveauMax < _NiveauMin)
 | 
					 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    SetProperty(ref _NiveauMax, value, nameof(NiveauMax));
 | 
					                    SetProperty(ref _NiveauMin, value);
 | 
				
			||||||
 | 
					                    if (_NiveauMax < _NiveauMin)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        SetProperty(ref _NiveauMax, value, nameof(NiveauMax));
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _NiveauMax = 9;
 | 
					        private int _NiveauMax = 9;
 | 
				
			||||||
| 
						 | 
					@ -106,12 +112,15 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _NiveauMax, value);
 | 
					                if (_NiveauMax != value)
 | 
				
			||||||
                if (_NiveauMax < _NiveauMin)
 | 
					 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
                    SetProperty(ref _NiveauMin, value, nameof(NiveauMin));
 | 
					                    SetProperty(ref _NiveauMax, value);
 | 
				
			||||||
 | 
					                    if (_NiveauMax < _NiveauMin)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        SetProperty(ref _NiveauMin, value, nameof(NiveauMin));
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _Ecole = 0;
 | 
					        private int _Ecole = 0;
 | 
				
			||||||
| 
						 | 
					@ -123,8 +132,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Ecole, value);
 | 
					                if (_Ecole != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Ecole, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _Rituel = 0;
 | 
					        private int _Rituel = 0;
 | 
				
			||||||
| 
						 | 
					@ -136,8 +148,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Rituel, value);
 | 
					                if (_Rituel != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Rituel, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        private int _Source = 1;
 | 
					        private int _Source = 1;
 | 
				
			||||||
| 
						 | 
					@ -149,8 +164,11 @@ namespace AideDeJeu.ViewModels
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            set
 | 
					            set
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                SetProperty(ref _Source, value);
 | 
					                if (_Source != value)
 | 
				
			||||||
                LoadItemsCommand.Execute(null);
 | 
					                {
 | 
				
			||||||
 | 
					                    SetProperty(ref _Source, value);
 | 
				
			||||||
 | 
					                    LoadItemsCommand.Execute(null);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue