Отладка программного обеспечения Том 2 Том 1 Аппаратное оборудование Основное Zhang Yinkui Debun Debug Энциклопедия Энциклопедия для тестирования программного обеспечения для разработки программного обеспечения для разработки программного обеспечения для разработки программного обеспечения.

Цена: 1 796руб. (¥84.96)
Артикул: 614206907975
Вес товара: ~0.7 кг. Указан усредненный вес, который может отличаться от фактического. Не включен в цену, оплачивается при получении.
Описание товараPHA+PGltZyBjbGFzcz0iZGVzY19hbmNob3IiIGlkPSJkZXNjLW1vZHVsZS0xIiBzcmM9Imh0dHBzOi8vYXNzZXRzLmFsaWNkbi5jb20va2lzc3kvMS4wLjAvYnVpbGQvaW1nbGF6eWxvYWQvc3BhY2ViYWxsLmdpZiI+PGltZyBjbGFzcz0iZGVzY19hbmNob3IiIGlkPSJkZXNjLW1vZHVsZS0xIiBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvMTAzNzQ3NzQyMi9PMUNOMDFXZG1ldUsyNGhLQmx1dFJ6N18hITEwMzc0Nzc0MjIuanBnIj48cCBzdHlsZT0ibWFyZ2luOiAwO292ZXJmbG93OiBoaWRkZW47Ij48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pNC8xMDM3NDc3NDIyL08xQ04wMVdkbWV1SzI0aEtCbHV0Uno3XyEhMTAzNzQ3NzQyMi5qcGciPjwvcD48cCBzdHlsZT0ibWFyZ2luOiAwIDAgNS4wcHggMDtvdmVyZmxvdzogaGlkZGVuOyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvMTAzNzQ3NzQyMi9PMUNOMDFXZG1ldUsyNGhLQmx1dFJ6N18hITEwMzc0Nzc0MjIuanBnIj48L3A+PGJyPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7Zm9udC1zaXplOiAxNS4wcHg7Zm9udC13ZWlnaHQ6IGJvbGQ7aGVpZ2h0OiAzMC4wcHg7bGluZS1oZWlnaHQ6IDMwLjBweDsiPtCf0LDRgNCw0LzQtdGC0YDRiyDQv9GA0L7QtNGD0LrRgtCwPC9kaXY+PGJyPjxwPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2kyLzEwMzc0Nzc0MjIvTzFDTjAxMnl3U0M5MjRoS0JvZHNoWmpfISExMDM3NDc3NDIyLmpwZyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTIvMTAzNzQ3NzQyMi9PMUNOMDFyNEl1YnQyNGhLQm5kTnh5aV8hITEwMzc0Nzc0MjIuanBnIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pMi8xMDM3NDc3NDIyL08xQ04wMXU3T1RscjI0aEtCbnJiQjNEXyEhMTAzNzQ3NzQyMi5qcGciPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0LzEwMzc0Nzc0MjIvTzFDTjAxUk91c2tNMjRoS0JucmNGYWJfISExMDM3NDc3NDIyLmpwZyI+PGltZyBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTEvMTAzNzQ3NzQyMi9PMUNOMDFRVGxxZm0yNGhLQmxIdkZORV8hITEwMzc0Nzc0MjIuanBnIiBhbGlnbj0iYWJzbWlkZGxlIj48aW1nIHNyYz0iaHR0cHM6Ly9pbWcuYWxpY2RuLmNvbS9pbWdleHRyYS9pNC8xMDM3NDc3NDIyL08xQ04wMXp1cHliSTI0aEtCb2R0RXNoXyEhMTAzNzQ3NzQyMi5qcGciPjxpbWcgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0LzEwMzc0Nzc0MjIvTzFDTjAxSVRmd2djMjRoS0JsSHR1RmhfISExMDM3NDc3NDIyLmpwZyI+PC9wPjxwPiZhbXA7bmJzcDs8L3A+PGltZyBjbGFzcz0iZGVzY19hbmNob3IiIGlkPSJkZXNjLW1vZHVsZS0yIiBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvMTAzNzQ3NzQyMi9PMUNOMDFXZG1ldUsyNGhLQmx1dFJ6N18hITEwMzc0Nzc0MjIuanBnIj48YnI+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtmb250LXNpemU6IDE1LjBweDtmb250LXdlaWdodDogYm9sZDtoZWlnaHQ6IDMwLjBweDtsaW5lLWhlaWdodDogMzAuMHB4OyI+0JLQstC10LTQtdC90LjQtTwvZGl2Pjxicj7QrdGC0YMg0LrQvdC40LPRgyDQvNC+0LbQvdC+INC90LDQt9Cy0LDRgtGMINC+0YLQu9Cw0LTQutC+0Lkg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8mYW1wO0xkcXVvOyDQrdC90YbQuNC60LvQvtC/0LXQtNC40Y8mYW1wO3JkcXVvOy7QkNCy0YLQvtGAINC+0YLQu9Cw0LTQutC4INCy0L7QutGA0YPQsyDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjyZhbXA7TGRxdW87INGN0LrQvtC70L7Qs9C40Y8mYW1wO1JkcXVvOyDQvNC10YLQvtC00YsuKjEg0KLQvtC8INCyINC+0YHQvdC+0LLQvdC+0Lwg0YTQvtC60YPRgdC40YDRg9C10YLRgdGPINC90LAg0LDQv9C/0LDRgNCw0YLQvdC+0Lkg0YLQtdGF0L3QvtC70L7Qs9C40Lgu0JrQvdC40LPQsCDRgNCw0LfQtNC10LvQtdC90LAg0L3QsCA0INCz0LvQsNCy0YsuKiZhbXA7bGRxdW87INCy0LLQtdC00LXQvdC40LUmYW1wO1JkcXVvOyrQlNCy0LAmYW1wO0xEUVVPOyDQptCfINC4INC10LPQviDQvtGC0LvQsNC00LrQuCZhbXA7UmRxdW870KLRgNC10YLQuNC5JmFtcDtMZHF1bzsgR1BVINC4INC10LPQviDQvtGC0LvQsNC00LrQuCZhbXA7UmRxdW87ICjQs9C70LDQstCwIDgtMTQpLCDQsiDQs9GA0LDRhNC40YfQtdGB0LrQuNGFINC/0YDQvtGG0LXRgdGB0L7RgNCw0YUg0L/Rj9GC0Lgg0L7RgdC90L7QstC90YvRhSDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvQtdC5IE52aWRpYSwgQU1ELCBJbnRlbCwgQVJNINC4INCy0L7QvtCx0YDQsNC20LXQvdC40Y8u0KfQtdGC0LLQtdGA0YLRi9C5JmFtcDtsZHF1bzsg0LTQvtC70LMmYW1wO1JkcXVvO9Ci0LXRgdC90LDRjyDQutC+0LzQsdC40L3QsNGG0LjRjyDRgtC10L7RgNC40Lgg0Y3RgtC+0Lkg0LrQvdC40LPQuCDQvdC1INGC0L7Qu9GM0LrQviDQvtGF0LLQsNGC0YvQstCw0LXRgiDRgdC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40LUg0YLQtdGF0L3QuNGH0LXRgdC60LjQtSDQt9C90LDQvdC40Y8sINC90L4g0Lgg0L7QsdGB0YPQttC00LDQtdGCINCx0L7Qu9GM0YjQvtC1INC60L7Qu9C40YfQtdGB0YLQstC+INC/0YDQtdC00YHRgtCw0LLQuNGC0LXQu9C10Lkg0Lgg0YPQvdC40LLQtdGA0YHQsNC70YzQvdGL0YUg0YLQtdGF0L3QuNGH0LXRgdC60LjRhSDQtNC10YLQsNC70LXQuS7QrdGC0LAg0LrQvdC40LPQsCDQv9C+0LTRhdC+0LTQuNGCINC00LvRjyDQstGB0LXRhSDRh9C40YLQsNGC0LXQu9C10LksINC30LDQvdC40LzQsNGO0YnQuNGF0YHRjyDRgNCw0LfRgNCw0LHQvtGC0LrQvtC5INC/0YDQvtCz0YDQsNC80LzQvdC+0LPQviDQvtCx0LXRgdC/0LXRh9C10L3QuNGPLiDQn9GA0LXQv9C+0LTQsNCy0LDRgtC10LvQuCDQuCDRgdGC0YPQtNC10L3RgtGLINCyINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjRhSDRgdC/0LXRhtC40LDQu9C40YHRgtCw0YUg0LIg0LrQvtC70LvQtdC00LbQsNGFINC4INGD0L3QuNCy0LXRgNGB0LjRgtC10YLQsNGFINGD0YfQsNGC0YHRjyDQtNC70Y8g0YHQv9GA0LDQstC60LguPGltZyBjbGFzcz0iZGVzY19hbmNob3IiIGlkPSJkZXNjLW1vZHVsZS0zIiBzcmM9Imh0dHBzOi8vaW1nLmFsaWNkbi5jb20vaW1nZXh0cmEvaTQvMTAzNzQ3NzQyMi9PMUNOMDFXZG1ldUsyNGhLQmx1dFJ6N18hITEwMzc0Nzc0MjIuanBnIj48YnI+PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogI2VlZWVlZTtmb250LXNpemU6IDE1LjBweDtmb250LXdlaWdodDogYm9sZDtoZWlnaHQ6IDMwLjBweDtsaW5lLWhlaWdodDogMzAuMHB4OyI+0JrQsNGC0LDQu9C+0LM8L2Rpdj48YnI+0J/QtdGA0LLQsNGPINGB0YLQsNGC0YzRjyE8YnI+PGJyPtCT0LvQsNCy0LAgMSDQntGB0L3QvtCy0Ysg0L7RgtC70LDQtNC60Lgg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8gMzxicj4xLjEg0JLQstC10LTQtdC90LjQtSAzPGJyPjEuMS4xINCe0L/RgNC10LTQtdC70LXQvdC40LUgMzxicj4xLjEuMiDQntGB0L3QvtCy0L3QvtC5INC/0YDQvtGG0LXRgdGBIDU8YnI+MS4yINCe0YHQvdC+0LLQvdGL0LUg0YTRg9C90LrRhtC40LggNTxicj4xLjIuMSDQodC70L7QttC90L7RgdGC0YwgNjxicj4xLjIuMiDQotGA0YPQtNC90L4g0L7RhtC10L3QuNGC0Ywg0LLRgNC10LzRjyDQt9Cw0LLQtdGA0YjQtdC90LjRjyA3PGJyPjEuMi4zINCe0LHRiNC40YDQvdCw0Y8g0LrQvtGA0YDQtdC70Y/RhtC40Y8gNzxicj4xLjMg0JrRgNCw0YLQutCw0Y8g0LjRgdGC0L7RgNC40Y8gODxicj4xLjMuMSDQntC00L3QviDRiNCw0LMg0LLRi9C/0L7Qu9C90LXQvdC40LUgODxicj4xLjMuMiDQmNC90YHRgtGA0YPQutGG0LjRjyDRgtC+0YfQutC4INC+0YHRgtCw0L3QvtCy0LAgMTA8YnI+MS4zLjMg0KHRgdGL0LvQutCwINC90LAg0YTQuNC70LjQsNC7IDExPGJyPjEuNCDQmtCw0YLQtdCz0L7RgNC40Y8gMTI8YnI+MS40LjEg0JrQu9Cw0YHRgdC40YTQuNC60LDRhtC40Y8g0YHQuNGB0YLQtdC80L3QvtC5INGB0YDQtdC00Ysg0YbQtdC70LXQstC+0Lkg0L7RgtC70LDQtNC60LggMTI8YnI+MS40LjIg0JrQu9Cw0YHRgdC40YTQuNC60LDRhtC40Y8g0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGBINCy0YvQv9C+0LvQvdC10L3QuNC10Lwg0YbQtdC70LXQstC+0LPQviDQutC+0LTQsCAxMjxicj4xLjQuMyDQmtC70LDRgdGB0LjRhNC40LrQsNGG0LjRjyDQsiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Lgg0YEg0YDQtdC20LjQvNC+0Lwg0LLRi9C/0L7Qu9C90LXQvdC40Y8g0YbQtdC70LXQstC+0LPQviDQutC+0LTQsCAxMzxicj4xLjQuNCDQmtC70LDRgdGB0LjRhNC40LrQsNGG0LjRjyDQsiDRgdC+0L7RgtCy0LXRgtGB0YLQstC40Lgg0YHQviDRgdGC0LDQtNC40LXQuSDQv9GA0L7Qs9GA0LDQvNC80L3QvtCz0L4g0L7QsdC10YHQv9C10YfQtdC90LjRjyAxMzxicj4xLjQuNSDQmtC70LDRgdGB0LjRhNC40LrQsNGG0LjRjyDQvtGC0L3QvtGB0LjRgtC10LvRjNC90YvRhSDQv9C+0LvQvtC20LXQvdC40Lkg0YLQtdGB0YLQvtCy0L7Qs9C+INGD0YHRgtGA0L7QudGB0YLQstCwINC4INGG0LXQu9C4INC+0YLQu9Cw0LTQutC4IDE0PGJyPjEuNC42Ljxicj4xLjQuNyDQmtC70LDRgdGB0LjRhNC40LrQsNGG0LjRjyDQv9GD0YLQtdC8INC+0YLQu9Cw0LTQutC4INC40L3RgdGC0YDRg9C80LXQvdGC0LAgMTU8YnI+MS41INCe0LHQt9C+0YAg0YLQtdGF0L3QvtC70L7Qs9C40Lgg0L7RgtC70LDQtNC60LggMTU8YnI+MS41LjEg0KLQvtGH0LrQsCDQvtGB0YLQsNC90L7QstCwIDE1PGJyPjEuNS4yINCe0LTQvdC+0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0LUg0LLRi9C/0L7Qu9C90LXQvdC40LUgMTY8YnI+MS41LjMg0JjQvdGE0L7RgNC80LDRhtC40Y8g0L7QsSDQvtGC0LvQsNC00LrQtSDQstGL0LLQvtC00LAgMTc8YnI+MS41LjQg0JbRg9GA0L3QsNC7IDE3PGJyPjEuNS41INC+0YLRgdC70LXQttC40LLQsNC90LjQtSDQuNC90YbQuNC00LXQvdGC0L7QsiAxNzxicj4xLjUuNiDQpNCw0LnQuyDRgNC+0YLQvtGA0L3QvtCz0L4g0YXRgNCw0L3QtdC90LjRjyAxODxicj4xLjUuNy48YnI+MS41LjguPGJyPjEuNS45LiDQodC+0LHQu9GO0LTQsNC50YLQtSDQuCDQuNC30LzQtdC90Y/QudGC0LUg0LTQsNC90L3Ri9C1INC/0LDQvNGP0YLQuCAxOTxicj4xLjUuMTAg0J/RgNC+0YbQtdGB0YEg0YPQv9GA0LDQstC70LXQvdC40Y8g0Lgg0L/QvtGC0L7QutCwIDE5PGJyPjEuNiDQntGI0LjQsdC60LAg0Lgg0L7RgtGB0YPRgtGB0YLQstC40LUg6K+vIDE5PGJyPjEuNi4xINCS0L3Rg9GC0YDQtdC90L3Rj9GPINC/0YDQuNGH0LjQvdCwINC4INCy0L3QtdGI0L3QuNC5INCy0LjQtCAxOTxicj4xLjYuMiDQmtGC0L4g0L7RiNC40LHQutCwIDIwPGJyPjEuNi4zINCW0LjQt9C90LXQvdC90YvQuSDRhtC40LrQuyDQkdCw0LPQsCAyMTxicj4xLjYuNCDQn9GA0L7Qs9GA0LDQvNC80L3QsNGPINC+0YjQuNCx0LrQsC4g0JrRgNC40LLQsNGPINC/0LXRgNC10LzQtdGJ0LXQvdC40Y8gMjE8YnI+MS43INCS0LDQttC90L7RgdGC0YwgMjM8YnI+MS43LjEg0J7RgtC90L7RiNC10L3QuNGPINC80LXQttC00YMg0L7RgtC70LDQtNC60L7QuSDQuCDQutC+0LTQuNGA0L7QstCw0L3QuNC10LwgMjM8YnI+MS43LjIg0JLQt9Cw0LjQvNC+0YHQstGP0LfRjCDQvNC10LbQtNGDINC+0YLQu9Cw0LTQutC+0Lkg0Lgg0YLQtdGB0YLQvtC8IDI0PGJyPjEuNy4zINCh0LLRj9C30Ywg0LzQtdC20LTRgyDQvtGC0LvQsNC00LrQvtC5INC4INC+0LHRgNCw0YLQvdC+0Lkg0LjQvdC20LXQvdC10YDQuNC10LkgMjQ8YnI+MS43LjQg0JfQvdCw0YfQtdC90LjQtSDRgtC10YXQvdC+0LvQvtCz0LjQuCDQvtGC0LvQsNC00LrQuCDQvtCx0YPRh9C10L3QuNGPIDI1PGJyPjEuNy41INCi0LXRhdC90L7Qu9C+0LPQuNGPINC00LjRgdC60YPRgdGB0LjQuSDQtdGJ0LUg0L3QtSDQv9C+0LvRg9GH0LjQu9CwINCy0L3QuNC80LDQvdC40Y8g0LfQsNGB0LvRg9C20LjQstCw0LXRgiAyNTxicj4xLjgg0KDQtdC30Y7QvNC1INGN0YLQvtC5INCz0LvQsNCy0YsgMjY8YnI+0KHQv9GA0LDQstC+0YfQvdGL0LUg0LzQsNGC0LXRgNC40LDQu9GLIDI2PGJyPjxicj4q0JTQstCwINC/0YDQvtGG0LXRgdGB0L7RgNCwINC4INC10LUg0L7RgtC70LDQtNC60Lg8YnI+PGJyPtCT0LvQsNCy0LAgMiDQkdCw0LfQsCDQv9GA0L7RhtC10YHRgdC+0YDQsCAyOTxicj4yLjEg0J3QsNCx0L7RgCDQuNC90YHRgtGA0YPQutGG0LjQuSDQuCDQuNC90YHRgtGA0YPQutGG0LjQuSAyOTxicj4yLjEuMSDQntGB0L3QvtCy0L3Ri9C1INGE0YPQvdC60YbQuNC4IDMwPGJyPjIuMS4yINCc0LXRgtC+0LQg0YHQsNC50YLQsCAzMTxicj4yLjEuMyDQn9GA0L7RhtC10YHRgSDQstGL0L/QvtC70L3QtdC90LjRjyDQuNC90YHRgtGA0YPQutGG0LjQuSAzMjxicj4yLjIgSW50ZWwgQXJjaGl0ZWN0dXJlIFByb2Nlc3NvciAzMzxicj4yLjIuMSA4MDM4NiDQn9GA0L7RhtC10YHRgdC+0YAgMzQ8YnI+Mi4yLjIgODA0ODYg0J/RgNC+0YbQtdGB0YHQvtGAIDM0PGJyPjIuMi4zIFBlbnRpdW0gUHJvY2Vzc29yIDM1PGJyPjIuMi40IFA2INGB0LXRgNC40Lgg0L/RgNC+0YbQtdGB0YHQvtGAIDM2PGJyPjIuMi41IFBlbnRpdW0gNCDQn9GA0L7RhtC10YHRgdC+0YAgMzg8YnI+Mi4yLjYgQ29yZSAyINGB0LXRgNC40Lgg0L/RgNC+0YbQtdGB0YHQvtGAIDM4PGJyPjIuMi43IE5laGFsZW0gTWljcm8gLdCw0YDRhdC40YLQtdC60YLRg9GA0LAgMzk8YnI+Mi4yLjggTWljcm8gQXJjaGl0ZWN0dXJlIFNhbmR5IEJyaWRnZSAzOTxicj4yLjIuOSDQnNC40LrRgNC+IC3QsNGA0YXQuNGC0LXQutGC0YPRgNCwIEl2eSBCcmlkZ2UgNDA8YnI+Mi4yLjEwIEhhc3dlbGwgTWljcm8gLdCw0YDRhdC40YLQtdC60YLRg9GA0LAgNDA8YnI+Mi4yLjExIEJyb2Fkd2VsbCBNaWNybyAt0LDRgNGF0LjRgtC10LrRgtGD0YDQsCA0MTxicj4yLjIuMTIgU2t5bGFrZSBNaWNybyBBcmNoaXRlY3R1cmUgNDE8YnI+Mi4yLjEzINCc0LjQutGA0L4g0LDRgNGF0LjRgtC10LrRgtGD0YDQsCBLYWJ5IExha2UgNDE8YnI+Mi4zINCg0LXQttC40Lwg0YDQsNCx0L7RgtGLINC/0YDQvtGG0LXRgdGB0L7RgNCwIDQyPGJyPjIuNCDQoNC10LPQuNGB0YLRgNCw0YbQuNGPIDQ0PGJyPjIuNC4xIEdNINCg0LXQs9C40YHRgtGAINC00LDQvdC90YvRhSA0NDxicj4yLjQuMiDQoNC10LPQuNGB0YLRgCDQvNC10YLQutC4IDQ1PGJyPjIuNC4zINCg0LXQs9C40YHRgtGAIE1TUiA0Njxicj4yLjQuNCDQoNC10LPQuNGB0YLRgCDRg9C/0YDQsNCy0LvQtdC90LjRjyA0Njxicj4yLjQuNSDQlNGA0YPQs9C40LUg0YDQtdCz0LjRgdGC0YDRiyA0ODxicj4yLjQuNiA2NCAt0LHQuNGCINGA0LXQttC40LzQsCDRgNC10LbQuNC80LAgNDk8YnI+Mi41INCf0L7QvdGP0YLRjCDRgNC10LbQuNC8INC30LDRidC40YLRiyA1MDxicj4yLjUuMSDQnNC10YXQsNC90LjQt9C8INC30LDRidC40YLRiyDQvNC10LbQtNGDINC30LDQtNCw0YfQsNC80LggNTA8YnI+Mi41LjIg0JfQsNGJ0LjRgtCwINCyINC30LDQtNCw0YfQtSA1MTxicj4yLjUuMyDQo9GA0L7QstC10L3RjCDQv9GA0LjQstC40LvQtdCz0LjQuCA1Mjxicj4yLjUuNCDQmNC90YHRgtGA0YPQutGG0LjRjyDQv9C+INC/0YDQuNCy0LjQu9C10LPQuNC4IDUzPGJyPjIuNiDQnNC10YXQsNC90LjQt9C8INCw0LHQt9Cw0YbQsCA1NDxicj4yLjYuMSBEZXNjaGVycyA1NDxicj4yLjYuMiDQntC/0LjRgdCw0L3QuNC1INCi0LDQsdC70LjRhtCwIDU2PGJyPjIuNi4zINCS0YvQsdC10YDQuNGC0LUgWmkgWmkgNTY8YnI+Mi42LjQg0KDQtdCz0LjRgdGC0YAg0YDQsNC30LTQtdC70LAg0L3QsNCx0LvRjtC00LXQvdC40Y8gNTc8YnI+Mi43INCh0YLRgNCw0L3QuNGG0LAg0LzQtdGF0LDQvdC40LfQvCA1OTxicj4yLjcuMSAzMiAtYml0IENsYXNzaWMgUGFnaW5nIDYwPGJyPjIuNy4yIFBhZSBQYWdpbmcgNjY8YnI+Mi43LjMgSUEtMzJFIFBhZ2luZyA2ODxicj4yLjcuNCDQodGC0YDQsNC90LjRhtCwINCx0L7Qu9GM0YjQvtC5INC/0LDQvNGP0YLQuCA3MTxicj4yLjcuNSDQodC+0L7RgtCy0LXRgtGB0YLQstGD0Y7RidC40LUg0LrQvtC80LDQvdC00YsgV2luZGJnIDcyPGJyPjIuOCDQntCx0LfQvtGAINGB0LjRgdGC0LXQvNGLINCf0JogNzM8YnI+Mi45IEFybSBBcmNoaXRlY3R1cmUgQmFzZSA3NTxicj4yLjkuMSBNdWx0aSAtTWVhcnkgb2YgQXJtIDc1PGJyPjIuOS4yINCe0YHQvdC+0LLQvdCw0Y8g0LLQtdGA0YHQuNGPIDc2PGJyPjIuOS4zINCg0LXQttC40Lwg0YDQsNCx0L7RgtGLINC4INGB0YLQsNGC0YPRgSA3ODxicj4yLjkuNCAzMiAt0LHQuNGCIC3QsNGA0YXQuNGC0LXQutGC0YPRgNCwLiDQoNC10LPQuNGB0YLRgCA4MDxicj4yLjkuNSDQkNGB0YHQvtGG0LjQsNGG0LjQvtC90L3Ri9C5INC/0YDQvtGG0LXRgdGB0L7RgCA4Mjxicj4yLjkuNiDQo9C/0YDQsNCy0LvQtdC90LjQtSDQstC40YDRgtGD0LDQu9GM0L3QvtC5INC/0LDQvNGP0YLRjNGOIDgzPGJyPjIuOS43INCf0L7QtNC00LXRgNC20LrQsCDQv9GB0LXQstC00L4gLdGB0LXQutGG0LjQuCA4Nzxicj4yLjkuOCA2NCAt0LHQuNGCIC3QsNGA0YXQuNGC0LXQutGC0YPRgNCwIDg4PGJyPjIuMTAg0K3RgtCwINCz0LvQsNCy0LAgLSDRgNC10LfRjtC80LUgOTA8YnI+0KHQv9GA0LDQstC+0YfQvdGL0LUg0LzQsNGC0LXRgNC40LDQu9GLIDkwPGJyPtCT0LvQsNCy0LAgMyDQn9GA0LXRgNGL0LLQsNC90LjQtSDQuCDQvdC10L3QvtGA0LzQsNC70YzQvdC+0LUgOTE8YnI+My4xINCa0L7QvdGG0LXQv9GG0LjRjyDQuCDRgNCw0LfQvdC40YbQsCA5MTxicj4zLjEuMSDQv9GA0LXRgNGL0LLQsNC90LjQtSA5MTxicj4zLjEuMiBPRFggOTM8YnI+My4xLjMg0KHRgNCw0LLQvdC10L3QuNC1IDkzPGJyPjMuMiDQoNCw0LfQu9C40YfQvdCw0Y8g0LrQu9Cw0YHRgdC40YTQuNC60LDRhtC40Y8gOTM8YnI+My4yLjEg0JjRgdC60LvRjtGH0LXQvdC40LUg0LrQu9Cw0YHRgdCwINC+0YjQuNCx0L7QuiA5Mzxicj4zLjIuMiDQkNC90L7QvNCw0LvQuNC4INC70L7QstGD0YjQutC4IDk0PGJyPjMuMi4zINCh0YLQvtC/INC60LvQsNGB0YEg0LjRgdC60LvRjtGH0LXQvdC40LUgOTU8YnI+My4zINCQ0L3QsNC70LjQtyDQsNC90L7QvNCw0LvRjNC90L7Qs9C+INC/0YDQuNC80LXRgNCwIDk1PGJyPjMuMy4xINCh0L/QuNGB0L7QuiA5NTxicj4zLjMuMiDQmtC+0LQg0L7RiNC40LHQutC4IDk3PGJyPjMuMy4zINCf0YDQuNC80LXRgCA5Nzxicj4zLjQg0JDQvdGC0LggLdC/0YDQvtGG0LXRgdGBINC/0YDQtdGA0YvQstCw0L3QuNGPL9Cw0L3QvtC80LDQu9GM0L3QvtCz0L4gOTk8YnI+My41INC/0YDQtdGA0YvQstCw0L3QuNC1L9Cw0L3QvtC80LDQu9GM0L3QvtC1INC70LXRh9C10L3QuNC1IDEwMDxicj4zLjUuMSBSZWFsIE1vZGUgMTAwPGJyPjMuNS4yINCg0LXQttC40Lwg0LfQsNGJ0LjRgtGLIDEwMTxicj4zLjUuMyBJQS0zMkUg0KDQtdC20LjQvCAxMDk8YnI+My42INCQ0L3QvtC80LDQu9GM0L3Ri9C5INC80LXRhdCw0L3QuNC30Lwg0LIg0LDRgNGF0LjRgtC10LrRgtGD0YDQtSBBUk0gMTEwPGJyPjMuNyDQoNC10LfRjtC80LUg0Y3RgtC+0Lkg0LPQu9Cw0LLRiyAxMTI8YnI+0KHRgdGL0LvQutC4IDExMzxicj7Qk9C70LDQstCwIDQg0KLQvtGH0LrQsCDQvtGB0YLQsNC90L7QstCwINC4INC+0LTQvdC+INGI0LDQsyDQstGL0L/QvtC70L3QtdC90LjQtSAxMTQ8YnI+NC4xINCf0YDQvtCz0YDQsNC80LzQvdC+0LUg0L7QsdC10YHQv9C10YfQtdC90LjQtSDRgtC+0YfQutCwINC/0LXRgNC10YDRi9Cy0LAgMTE0PGJyPjQuMS4xIGludCAzIDExNDxicj40LjEuMiDQo9GB0YLQsNC90L7QstC40YLQtSDRgtC+0YfQutGDINC+0YHRgtCw0L3QvtCy0LAgMTE1INCyINC+0YLQu9Cw0LTRh9C40LrQtTxicj40LjEuMyBCcmVhayAtYm9yZSBIaXQgMTE2PGJyPjQuMS40INCy0L7RgdGB0YLQsNC90L7QstC40YLRjCDQuNGB0L/QvtC70L3QtdC90LjQtSAxMTg8YnI+NC4xLjUg0KHQv9C10YbQuNCw0LvRjNC90L7QtSDQvdCw0LfQvdCw0YfQtdC90LjQtSAxMTg8YnI+NC4xLjYgQVBJIEFQSSAxMTkuPGJyPjQuMS43INCh0L7QutGA0L7QstC40YnQsCDRgdC40YHRgtC10LzRiyDQvdCwIElOVCAzIDExOTxicj40LjEuOC4g0KHQvtCx0LvRjtC00LDQudGC0LUg0LjQvdGB0YLRgNGD0LrRhtC40LggSW50IDMsINC30LDQv9C40YHQsNC90L3Ri9C1INGC0LXRgdGC0L7QstGL0Lwg0YPRgdGC0YDQvtC50YHRgtCy0L7QvCAxMjE8YnI+NC4xLjkg0JjQvdC00YPQutGG0LjRjyDQuCDQvdCw0L/QvtC80LjQvdCw0L3QuNC1IDEyMjxicj40LjIg0JDQv9C/0LDRgNCw0YLQvdCw0Y8g0YLQvtGH0LrQsCDQv9C10YDQtdGA0YvQstCwIDEyMzxicj40LjIuMSDQntCx0LfQvtGAINGA0LXQs9C40YHRgtGA0LAg0L7RgtC70LDQtNC60LggMTIzPGJyPjQuMi4yINCg0LXQs9C40YHRgtGAINCw0LTRgNC10YHQsCDQvtGC0LvQsNC00LrQuCAxMjQ8YnI+NC4yLjMg0KDQtdCz0LjRgdGC0YAg0YPQv9GA0LDQstC70LXQvdC40Y8g0L7RgtC70LDQtNC60LggMTI0PGJyPjQuMi40IERpcmVjdGl2ZSBQcm9wZWN0b2ludCAxMjc8YnI+NC4yLjUg0JTQtdCx0LDQuyDQsNC90L7QvNCw0LvQuNGPIDEyNzxicj40LjIuNiDQoNC10LPQuNGB0YLRgCDRgdGC0LDRgtGD0YHQsCDQvtGC0LvQsNC00LrQuCAxMjg8YnI+NC4yLjcg0J/RgNC40LzQtdGAIDEyOTxicj40LjIuOCDQndCw0YHRgtGA0L7QudC60LAg0LzQtdGC0L7QtNCwINCw0L/Qv9Cw0YDQsNGC0L3QvtC5INGC0L7Rh9C60Lgg0L7RgdGC0LDQvdC+0LLQutC4IDEzMjxicj40LjIuOSDQmNC90LTRg9C60YbQuNGPIDEzNDxicj40LjMgVHJhcCBTbWFydCAxMzU8YnI+NC4zLjEg0J7QtNC40L3QvtGH0L3Ri9C5INC70L7Qs9C+0YLQuNC/INCy0YvQv9C+0LvQvdC10L3QuNGPIDEzNTxicj40LjMuMirQntC00L3QvtC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtC1INCy0YvQv9C+0LvQvdC10L3QuNC1INGP0LfRi9C60LAg0YPRgNC+0LLQvdGPIDEzNjxicj40LjMuMyDQu9C+0LPQvtGC0LjQvyDQu9C+0LPQvtGC0LjQv9CwINGB0YLQsNGC0YPRgdCwINC30LDQtNCw0YfQuCAxMzg8YnI+NC4zLjQg0JfQvdCw0LrQuCDQuNGB0L/QvtC70L3QtdC90LjRjyAxMzgg0LIg0YHQvtC+0YLQstC10YLRgdGC0LLQuNC4INGBINCy0LXRgtCy0YzRjiDRhNC40LvQuNCw0LvQsCAxMzg8YnI+NC40INCQ0L3QsNC70LjQtyDQvtGC0LvQsNC00YfQuNC60LAg0YDQtdCw0LvRjNC90L7Qs9C+INGA0LXQttC40LzQsC4gMTQwPGJyPjQuNC4xIERlYnVnLmV4ZSAxNDA8YnI+NC40LjIgODA4NiDQnNC+0L3QuNGC0L7RgCAxNDI8YnI+NC40LjMuINCg0LXQsNC70LjQt9Cw0YbQuNGPINC60LvRjtGH0LXQuSAxNDM8YnI+NC41IEFudHkgLVR1bmUg0J/RgNC40LzQtdGAIDE0NTxicj40LjYg0KLQvtGH0LrQsCDQv9C10YDQtdGA0YvQstCwINCw0YDRhdC40YLQtdC60YLRg9GA0YsgQVJNINC/0L7QtNC00LXRgNC20LjQstCw0LXRgiAxNDc8YnI+NC42LjEg0JjQvdGB0YLRgNGD0LrRhtC40Lgg0L/QviDRgtC+0YfQutC1INC/0LXRgNC10YDRi9Cy0LAgMTQ4PGJyPjQuNi4yINCg0JXQk9CY0KHQotCg0JDQptCY0K8g0J/QldCg0JXQmtCb0K7Qp9CV0J3QmNCvIDE0OTxicj40LjYuMyDQoNC10LPQuNGB0YLRgCDQvNC+0L3QuNGC0L7RgNC40L3Qs9CwIDE1Mzxicj40LjYuNCDQntCU0J3QntCT0J4g0KLQldCa0JvQmNCd0JMgMTU1PGJyPjQuNyDQoNC10LfRjtC80LUg0Y3RgtC+0Lkg0LPQu9Cw0LLRiyAxNTY8YnI+0KHQv9GA0LDQstC+0YfQvdGL0LUg0LzQsNGC0LXRgNC40LDQu9GLIDE1Nzxicj7Qk9C70LDQstCwIDUg0JfQsNC/0LjRgdGMINGE0LjQu9C40LDQu9CwINC4INC90LDQsdC70Y7QtNC10L3QuNC1INC30LAg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtGM0Y4gMTU4PGJyPjUuMSDQntCx0LfQvtGAINC90LDQsdC70Y7QtNC10L3QuNGPINC30LAg0YTQuNC70LjQsNC70L7QvCAxNTk8YnI+NS4yINCY0YHQv9C+0LvRjNC30YPQudGC0LUg0LfQsNC/0LjRgdGMINGE0LjQu9C40LDQu9CwINCg0LXQs9C40YHRgtGA0LAgMTU5PGJyPjUuMi4xIExCUiAxNjA8YnI+NS4yLjIg0YHRgtC10LogTEJSIDE2MTxicj41LjIuMyDQn9GA0LjQvNC10YAgMTYxPGJyPjUuMi40INCf0YDQuNC70L7QttC10L3QuNC1INCyINC+0L/QtdGA0LDRhtC40L7QvdC90L7QuSDRgdC40YHRgtC10LzQtSBXaW5kb3dzIDE2NTxicj41LjMg0LfQsNC/0LjRgdC10Lkg0LLQtdGC0LLQtdC5INC/0LDQvNGP0YLQuCAxNjY8YnI+NS4zLjEgRFMg0JfQvtC90LAgMTY2PGJyPjUuMy4yINCS0LrQu9GO0YfQuNGC0Ywg0LzQtdGF0LDQvdC40LfQvCBEUyAxNjg8YnI+NS4zLjMg0KDQtdCz0LjRgdGC0YAg0YPQv9GA0LDQstC70LXQvdC40Y8g0L7RgtC70LDQtNC60LggMTY4PGJyPjUuNCBEUyDQn9GA0LjQvNC10YA6IENQVXdoZXJlIDE2OTxicj41LjQuMSDQlNGA0LDQudCy0LXRgCAxNzA8YnI+NS40LjIg0JjQvdGC0LXRgNGE0LXQudGBINC/0YDQuNC70L7QttC10L3QuNGPIDE3Mzxicj41LjQuMyAyLjAg0JLQtdGA0YHQuNGPIDE3NTxicj41LjQuNCDQn9GA0LXQtNC70L7QttC10L3QuNGPINC+INC+0LPRgNCw0L3QuNGH0LXQvdC40Lgg0Lgg0YDQsNGB0YjQuNGA0LXQvdC40LggMTc4PGJyPjUuNC41INCU0YDQsNC50LLQtdGAIEJUUyDQsiDRj9C00YDQtSBMaW51eCAxNzk8YnI+NS41INCh0YLRgNC+0LXQvdC40LUg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtC4IDE4MDxicj41LjUuMSDQnNC10YXQsNC90LjQt9C8INC80L7QvdC40YLQvtGA0LjQvdCz0LAg0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtC4INC/0YDQvtGG0LXRgdGB0L7RgNCwIFBlbnRpdW0gMTgxPGJyPjUuNS4yINCc0LXRhdCw0L3QuNC30Lwg0LzQvtC90LjRgtC+0YDQuNC90LPQsCDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0Lgg0L/RgNC+0YbQtdGB0YHQvtGA0LAgUDYgMTgyPGJyPjUuNS4zIFA0LiDQodGC0YDQvtC10L3QuNC1INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLQuCDQv9GA0L7RhtC10YHRgdC+0YDQsCAxODM8YnI+NS41LjQg0JzQtdGF0LDQvdC40LfQvCDQvdCw0LHQu9GO0LTQtdC90LjRjyDQt9CwINC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLRjNGOIEZyYXN0cnVjdHVyZSAxODY8YnI+NS41LjUg0JzQtdGF0LDQvdC40LfQvCDQvNC+0L3QuNGC0L7RgNC40L3Qs9CwINC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLQuCDQvtGB0L3QvtCy0L3QvtCz0L4g0L/RgNC+0YbQtdGB0YHQvtGA0LAg0LzQuNC60YDQviAt0LDRgNGF0LjRgtC10LrRgtGD0YDRiyAxODc8YnI+NS41LjYg0KDQtdGB0YPRgNGB0YsgMTg4PGJyPjUuNiDQoNC10LDQu9GM0L3Ri9C1INC40L3RgdGC0YDRg9C60YbQuNC4INC/0L4g0L7RgtGB0LvQtdC20LjQstCw0L3QuNGOIDE4ODxicj41LjYuMSDQn9GA0LjQvdGG0LjQvyDRgNCw0LHQvtGC0YsgMTg5PGJyPjUuNi4yIFJ0aXQgUGFja2V0IDE5MDxicj41LjYuMyDQn9C+0LTQtNC10YDQttC60LAgTGludXggMTkxPGJyPjUuNyDQntCx0YrQtdC60YLRiyDQvdCw0LTQt9C+0YDQsCDQvdCw0LQg0LDRgNGF0LjRgtC10LrRgtGD0YDQvtC5IEFybSBBcmNoaXRlY3R1cmUgMTkyPGJyPjUuNy4xIFBNVVYxINC4IFBNVVYyIDE5Mjxicj41LjcuMiBQTVVWMyAxOTQ8YnI+NS43LjMg0J/RgNC40LzQtdGAIDE5NDxicj41LjcuNCBDb3Jlc2lnaHQgMTk1PGJyPjUuOCDQrdGC0LAg0LPQu9Cw0LLQsCAtINGA0LXQt9GO0LzQtSAxOTU8YnI+0KHQv9GA0LDQstC+0YfQvdGL0LUg0LzQsNGC0LXRgNC40LDQu9GLIDE5NTxicj7Qk9C70LDQstCwIDYg0JDRgNGF0LjRgtC10LrRgtGD0YDQsCDQuNC90YHQv9C10LrRhtC40Lgg0LzQsNGI0LjQvdGLIDE5Njxicj42LjEg0JzQtdGF0LDQvdC40LfQvCDQv9GA0L7QstC10YDQutC4INC80LDRiNC40L3RiyBQZW50aXVtINC/0YDQvtGG0LXRgdGB0L7RgNCwIDE5Njxicj42LDIgTUNBIDE5ODxicj42LjIuMSDQntCx0LfQvtGAIDE5ODxicj42LjIuMiDQk9C70L7QsdCw0LvRjNC90YvQuSDRgNC10LXRgdGC0YAgTUNBIDE5OTxicj42LjIuMyDQoNC10LPQuNGB0YLRgCDQvtGC0YfQtdGC0LAg0L7QsSDQvtGI0LjQsdC60LDRhSBNQ0EgMjAxPGJyPjYuMi40Ljxicj42LjIuNSDQmtC+0LTQuNGA0L7QstCw0L3QuNC1INC+0YjQuNCx0L7QuiBNQ0EgMjAzPGJyPjYuMyDQndCw0L/QuNGI0LjRgtC1IE1DQSBTb2Z0d2FyZSAyMDU8YnI+Ni4zLjEg0J7RgdC90L7QstC90L7QuSDQsNC70LPQvtGA0LjRgtC8IDIwNTxicj42LjMuMiDQn9GA0LjQvNC10YAgMjA3PGJyPjYuMy4zINCf0YDQuNC70L7QttC10L3QuNC1INCyINGB0LjRgdGC0LXQvNC1IFdpbmRvd3MgMjA4PGJyPjYuMy40INCf0YDQuNC80LXQvdC10L3QuNC1INCyINGB0LjRgdGC0LXQvNC1IExpbnV4IDIxMDxicj42LjQg0KHQstC+0LTQutCwINGN0YLQvtC5INCz0LvQsNCy0YsgMjEyPGJyPtCh0L/RgNCw0LLQvtGH0L3Ri9C1INC80LDRgtC10YDQuNCw0LvRiyAyMTI8YnI+0JPQu9Cw0LLQsCA3IEpUQUcgREVCVUcgMjEzPGJyPjcuMSDQktCy0LXQtNC10L3QuNC1IDIxMzxicj43LjEuMSBJQ0UgMjEzPGJyPjcuMS4yIEpUQUcgMjE0PGJyPjcuMiBKVEFHINCf0YDQuNC90YbQuNC/IDIxNTxicj43LjIuMSDQodC60LDQvdC40YDQvtCy0LDQvdC40LUg0LPRgNCw0L3QuNGGIDIxNTxicj43LjIuMi48YnI+Ny4yLjMgVGFwIFJlZ2lzdGVyIDIxNzxicj43LjIuNCBUYXAgQ29udHJvbGxlciAyMTc8YnI+Ny4yLjUuPGJyPjcuMyBKVEFHIEFwcGxpY2F0aW9uIDIxOTxicj43LjMuMSBKVEFHIERFQlVHIDIyMDxicj43LjMuMiDQn9C+0YDRgiDQvtGC0LvQsNC00LrQuCAyMjE8YnI+Ny40INCf0L7QtNC00LXRgNC20LrQsCBKVEFHIDIyMSDQv9GA0L7RhtC10YHRgdC+0YDQsCBJQTxicj43LjQuMSBQNiDRgNC10LDQu9C40LfQsNGG0LjRjyBKVEFHIFByb2Nlc3NvcidzIEpUQUcgMjIxPGJyPjcuNC4yINCg0LXQttC40Lwg0L7QsdC90LDRgNGD0LbQtdC90LjRjyAyMjM8YnI+Ny40LjMg0JjQotCfINC40L3RgtC10YDRhNC10LnRgSAyMjM8YnI+Ny40LjQgWERQIC3Qv9C+0YDRgiAyMjU8YnI+Ny40LjUg0L7RgtC70LDQtNGH0LjQuiBJVFAtWERQIDIyNjxicj43LjQuNi48YnI+Ny40Ljcg0KLQuNC/0LjRh9C90L7QtSDQv9GA0LjQu9C+0LbQtdC90LjQtSAyMjc8YnI+Ny41IEpUQUcgQXJtIFByb2Nlc3NvcmUg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGCIDIyNzxicj43LjUuMSDQmNC90YLQtdGA0YTQtdC50YEg0L7RgtC70LDQtNC60LggQVJNIDIyODxicj43LjUuMiDQntGC0LvQsNC00LrQsCDQv9C+0YDRgtCwIDIyODxicj43LjUuMyDQn9C+0YDRgiDQtNC+0YHRgtGD0L/QsCAyMjk8YnI+Ny41LjQg0KPRgdGC0YDQvtC50YHRgtCy0L4g0L7RgtC70LDQtNC60LggMjI5PGJyPjcuNS41INCf0YDQvtCy0LXRgNGM0YLQtSDRgdC+0LrQtdGCIDIyOTxicj43LjUuNiDQkNC/0L/QsNGA0LDRgtC90YvQuSDQvtGC0LvQsNC00YfQuNC6IDIzMTxicj43LjUuNyBEUy01IDIzMjxicj43LjYg0K3RgtCwINCz0LvQsNCy0LAgLSDRgdCw0LzQvNC40YIgMjMyPGJyPtCh0L/RgNCw0LLQvtGH0L3Ri9C1INC80LDRgtC10YDQuNCw0LvRiyAyMzM8YnI+PGJyPtCT0LvQsNCy0LAgSUlJIEdQVSDQuCDQtdC1INC+0YLQu9Cw0LTQutC4PGJyPjxicj7Qk9C70LDQstCwIDgg0JHQsNC30LAg0LPRgNCw0YTQuNC60LAgMjM3PGJyPjguMSDQmtGA0LDRgtC60LDRjyDQuNGB0YLQvtGA0LjRjyDQk9Cf0KMgMjM3PGJyPjguMS4xINCT0L7QstC+0YDRjyDRgSDQstC40LTQtdC+0LrQsNGA0YLRiyAyMzc8YnI+OC4xLjIg0JDQv9C/0LDRgNCw0YLQvdC+0LUg0YPRgdC60L7RgNC10L3QuNC1IDIzOTxicj44LjEuMyDQn9GA0L7Qs9GA0LDQvNC80LjRgNGD0LXQvNC+0LUg0Lgg0L7QsdC+0LHRidC10L3QuNC1IDI0MDxicj44LjEuNCDQotGA0LggLdC60L7Qu9C10YHQvdCw0Y8g0Y3QstC+0LvRjtGG0LjRjyAyNDI8YnI+OC4yINCY0LTQtdC90YLQuNGE0LjQutCw0YbQuNGPINGD0YHRgtGA0L7QudGB0YLQstCwIDI0Mzxicj44LjIuMSZhbXA7bGRxdW87INGA0LXQttC40Lwg0LrQvtGA0LzQu9C10L3QuNGPJmFtcDtyZHF1bzsgMjQzPGJyPjguMi4yINCa0L7Qv9C40Y8g0L/QsNC80Y/RgtC4IDI0Mzxicj44LjIuMyDQotC10YHRgtC40YDQvtCy0LDQvdC40LUg0Lgg0YHQsdGA0L7RgSAyNDM8YnI+OC4yLjQg0J/QvtC70L7QttC40YLQtdC70YzQvdC+INGBINC/0YDQvtGG0LXRgdGB0L7RgNC+0LwgMjQzPGJyPjguMyDQn9GA0L7Qs9GA0LDQvNC80L3Ri9C5INC40L3RgtC10YDRhNC10LnRgSAyNDQ8YnI+OC4zLjEg0KDQtdCz0LjRgdGC0YAg0YPRgdGC0YDQvtC50YHRgtCyIDI0NDxicj44LjMuMiDQv9Cw0LrQtdGC0L3Ri9C5INC60L7QvNCw0L3QtNC90YvQuSDQsdGD0YTQtdGAIDI0NTxicj44LjMuMyDQnNC+0LTQtdC70Ywg0YHQvtGB0YLQvtGP0L3QuNGPIDI0NTxicj44LjQg0JzQvtC00LXQu9GMINC00YDQsNC50LLQtdGA0LAgR1BVIDI0Nzxicj44LjQuMSBXRERNIDI0Nzxicj44LjQuMiBEUkkg0LggRFJNIDI0OTxicj44LjUg0KLQtdGF0L3QvtC70L7Qs9C40Y8g0L/RgNC+0LPRgNCw0LzQvNC40YDQvtCy0LDQvdC40Y8gMjUwPGJyPjguNS4xINCm0LLQtdGCIDI1MDxicj44LjUuMiBCcm9vayDQuCBDdWRhIDI1MTxicj44LjUuMyBPcGVuQ2wgMjUyPGJyPjguNiDQntGC0LvQsNC00YfQuNC60LggMjUyPGJyPjguNi4xINCY0L3RhNC+0YDQvNCw0YbQuNGPINC+0LEg0L7RgtC70LDQtNC60LUg0LLRi9Cy0L7QtNCwIDI1Mzxicj44LjYuMiDQktGL0L/Rg9GB0Log0YLQvtGH0LrQuCDQvtGB0YLQsNC90L7QstCwIDI1Mzxicj44LjYuMyDQlNGA0YPQs9Cw0Y8g0YLQvtGH0LrQsCDQvtGB0YLQsNC90L7QstCwIDI1NDxicj44LjYuNCDQvtC00L3QvtGN0YLQsNC/0L3QvtC1INCy0YvQv9C+0LvQvdC10L3QuNC1IDI1NDxicj44LjYuNSDQodGC0LDRgtGD0YEg0L/RgNC+0LPRgNCw0LzQvNGLINC90LDQsdC70Y7QtNC10L3QuNGPIDI1NDxicj44Ljcg0K3RgtCwINCz0LvQsNCy0LAgLSDRgdCw0LzQvNC40YIgMjU0PGJyPtCh0L/RgNCw0LLQvtGH0L3Ri9C1INC80LDRgtC10YDQuNCw0LvRiyAyNTU8YnI+0JPQu9Cw0LLQsCA5IE5WSURJQSBHUFUg0Lgg0LXQs9C+INC+0YLQu9Cw0LTQutC4IDI1Njxicj45LjEg0KDQtdC30Y7QvNC1IDI1Njxicj45LjEuMSDQndCw0LHQvtGAINC80LjQutGA0L7RhdC40YLQtdC60YLRg9GA0YsgMjU2PGJyPjkuMS4yINCi0YDQuCDQu9C40L3QtdC50LrQuCDQv9GA0L7QtNGD0LrRgtC+0LIgMjU2PGJyPjkuMS4zINCX0LDQutGA0YvRgtC40LUgMjU3PGJyPjkuMiDQnNC40LrRgNC+INCw0YDRhdC40YLQtdC60YLRg9GA0LAgMjU3PGJyPjkuMi4xIEc4MCAoVGVzbGEgMS4wIE1pY3JvIEFyY2hpdGVjdHVyZSkgMjU3PGJyPjkuMi4yIEdUMjAwIChNaWNybyBBcmNoaXRlY3R1cmUgVGVzbGEgMi4wKSAyNTk8YnI+OS4yLjMgR0YxMDAgKNCc0LjQutGA0L4g0LDRgNGF0LjRgtC10LrRgtGD0YDQsCDQpNC10YDQvNC4KSAyNjA8YnI+OS4yLjQgR0sxMTAgKENhaXJwbGUgTWljcm8gQXJjaGl0ZWN0dXJlKSAyNjE8YnI+OS4yLjUgR00xMDcgKNCc0LjQutGA0L7QuNC60YLQvtGA0LjRjyDQnNC+0YHRgdCy0LXQu9C70LApIDI2Mzxicj45LjIuNiBncDEwNCAo0LzQuNC60YDQvtCw0YDQs9C40YLQtdC60YLQvtGA0LAg0J/QsNGB0LrQsNGA0LApIDI2Mzxicj45LjIuNyBHVjEwMCAoVm9sdCBNaWNybyAt0LDRgNGF0LjRgtC10LrRgtGD0YDQsCkgMjY1PGJyPjkuMi44INCf0YDQvtC00L7Qu9C20LjRgtGMINGD0LvRg9GH0YjQtdC90LjQtSAyNjc8YnI+OS4zINCd0LDQsdC+0YAg0L7QsdC+0YDRg9C00L7QstCw0L3QuNGPINC00LvRjyDQvtCx0L7RgNGD0LTQvtCy0LDQvdC40Y8gMjY4PGJyPjkuMy4xIFNBU1MgMjY5PGJyPjkuMy4yINCk0L7RgNC80LDRgiDQuNC90YHRgtGA0YPQutGG0LjQuCAyNzA8YnI+OS4zLjMg0JLRi9C/0L7Qu9C90LXQvdC40LUg0L/RgNC10LTQuNC60LDRgtC90YvRhSDRgdC70L7QsiAyNzA8YnI+OS4zLjQg0JLRi9GH0LjRgdC70LjRgtC10LvRjNC90LDRjyDQvNC+0YnQvdC+0YHRgtGMIDI3MTxicj45LjMuNSDQndCw0LHQvtGAINC40L3RgdGC0YDRg9C60YbQuNC5IEdUMjAwIDI3MTxicj45LjMuNiDQndCw0LHQvtGAINC40L3RgdGC0YDRg9C60YbQuNC5IEdWMTAwIDI3NDxicj45LjQg0J3QsNCx0L7RgCDQuNC90YHRgtGA0YPQutGG0LjQuSBQVFggMjc5PGJyPjkuNC4xINCh0LHQvtGA0LrQsCDQuCDRgdGC0L7Qu9C+0LLQsNGPINGB0LHQvtGA0LrQsCAyODA8YnI+OS40LjIg0KHRgtCw0YLRg9GB0L3QvtC1INC/0YDQvtGB0YLRgNCw0L3RgdGC0LLQviAyODI8YnI+OS40LjMg0JLQuNGA0YLRg9Cw0LvRjNC90YvQuSDRgNC10LPQuNGB0YLRgCAyODM8YnI+OS40LjQg0KLQuNC/INC00LDQvdC90YvRhSAyODQ8YnI+OS40LjUg0KTQvtGA0LzQsNGCINC40L3RgdGC0YDRg9C60YbQuNC4IDI4NDxicj45LjQuNiDQktGB0YLRgNC+0LXQvdC90LDRjyDRgdCx0L7RgNC60LAgMjg1PGJyPjksNSBDVURBIDI4Njxicj45LjUuMSDQv9GA0L7QuNC30L7RiNC10Lsg0LjQtyDRgNGD0YfRjNGPIDI4Njxicj45LjUuMiDQoNCw0YHRh9C10YIg0Y/QtNC10YDQvdC+0LPQviAyODY8YnI+OS41LjMg0JrQvtC90YTQuNCz0YPRgNCw0YbQuNGPINCy0YvQv9C+0LvQvdC10L3QuNGPIDI4ODxicj45LjUuNC48YnI+OS41LjUgV2FycCAyOTE8YnI+OS41LjYg0JLRi9GA0LDQttCw0Y8g0L/QsNGA0LDQu9C70LXQu9GMIDI5Mjxicj45LjYg0JDQvdC+0LzQsNC70YzQvdCw0Y8g0Lgg0LvQvtCy0YPRiNC60LAgMjkzPGJyPjkuNi4xINCY0L3RgdGC0YDRg9C60YbQuNGPINC70L7QstGD0YjQutC4IDI5Mzxicj45LjYuMiDQodGD0YTRhNC40LrRgSDQu9C+0LLRg9GI0LrQuCAyOTM8YnI+OS42LjMg0JvQtdGH0LXQvdC40LUg0LvQvtCy0YPRiNC60LggMjkzPGJyPjkuNyDQodC40YHRgtC10LzQvdGL0Lkg0LfQstC+0L3QvtC6IDI5Njxicj45LjcuMSBWcHJpbnRmIDI5Njxicj45LjcuMiBNYWxsb2Mg0LggRnJlZSAyOTc8YnI+OS43LjMgX19hc3NlcnRmYWlsIDI5ODxicj45Ljgg0KHQu9C+0LzQsNC90L3QsNGPINC00LjRgNC10LrRgtC40LLQsCAyOTk8YnI+OS44LjEg0KHQu9C+0LzQsNC90L3Ri9C1INC40L3RgdGC0YDRg9C60YbQuNC4IFBUWCAyOTk8YnI+OS44LjIg0KHQu9C+0LzQsNC90L3Ri9C1INC40L3RgdGC0YDRg9C60YbQuNC4INC00LvRjyDQvtCx0L7RgNGD0LTQvtCy0LDQvdC40Y8gMzAwPGJyPjkuOSDQpNGD0L3QutGG0LjRjyBOU0lHSDxicj45LjkuMS4g0KLQvtGH0LrQsCDQvtGB0YLQsNC90L7QstC60Lgg0LjRgdGF0L7QtNC90L7Qs9C+INC60L7QtNCwIDMwMTxicj45LjkuMiDQpNGD0L3QutGG0LjRjyDRgtC+0YfQutCwINC+0YHRgtCw0L3QvtCy0LAgMzAxPGJyPjkuOS4zINCSINC30LDQstC40YHQuNC80L7RgdGC0Lgg0L7RgiDQs9GA0YPQv9C/0Ysg0LvQuNC90LjQuCDQuCDQv9C+0YLQvtC60L7Qsiwg0YfRgtC+0LHRiyDRg9GB0YLQsNC90L7QstC40YLRjCDRg9GB0LvQvtCy0LjQtSDQtNC70Y8g0YLQvtGH0LrQuCDQvtGB0YLQsNC90L7QstCwIDMwMjxicj45LjEwINCi0L7Rh9C60LAg0L7RgdGC0LDQvdC+0LLQsCDQtNCw0L3QvdGL0YUgMzA0PGJyPjkuMTAuMSDQnNC10YLQvtC0INC90LDRgdGC0YDQvtC50LrQuCAzMDQ8YnI+OS4xMC4yINCl0LjRgiAzMDQ8YnI+OS4xMC4zINCf0YDQtdC00LXQuyDQutC+0LvQuNGH0LXRgdGC0LLQsCAzMDY8YnI+OS4xMC40INCj0YHRgtCw0L3QvtCy0LjRgtC1INCy0YDQtdC80Y8gMzA2PGJyPjkuMTEg0KHQuNC80LLQvtC7INC+0YLQu9Cw0LTQutC4IDMwNjxicj45LjExLjEg0J7Qv9GG0LjRjyDQutC+0LzQv9C40LvRj9GG0LjQuCAzMDY8YnI+OS4xMS4yIEVMRiBDYXJyaWVyIDMwNjxicj45LjExLjMg0LrQsNGA0LvQuNC60LggMzA3PGJyPjkuMTIgQ1VEQSBHREIgMzA3PGJyPjkuMTIuMSDQntCx0YnQsNGPINC60L7QvNCw0L3QtNCwIDMwNzxicj45LjEyLjIg0KDQsNGB0YjQuNGA0LXQvdC40LUgMzA4PGJyPjkuMTIuMyBMaW1pdGVkIDMwODxicj45LjEzIEN1ZGEgRGVidWdnZXIgQVBJIDMwODxicj45LjEzLjEgVG9wIEZpbGUgMzA5PGJyPjkuMTMuMiDQnNC10YDQvtC/0YDQuNGP0YLQuNC1INC+0YLQu9Cw0LTQutC4IDMwOTxicj45LjEzLjMg0J/RgNC40L3RhtC40L8g0YDQsNCx0L7RgtGLIDMxMDxicj45LjE0INCg0LXQt9GO0LzQtSDRjdGC0L7QuSDQs9C70LDQstGLIDMxMjxicj7QodC/0YDQsNCy0L7Rh9C90YvQtSDQvNCw0YLQtdGA0LjQsNC70YsgMzEyPGJyPtCT0LvQsNCy0LAgMTAgQU1EIEdQVSDQuCDQtdCz0L4g0L7RgtC70LDQtNC60LggMzE0PGJyPjEwLjEg0KDQkNCX0KDQldCW0J3QkNCvINCa0KDQkNCi0JrQkNCvINCY0KHQotCe0KDQmNCvIDMxNDxicj4xMC4xLjEg0KLRgNC4INGN0YLQsNC/0LAg0YDQsNC30YDQsNCx0L7RgtC60LggMzE0PGJyPjEwLjEuMiDQlNCy0LUg0YTQvtGA0LzRiyDQv9GA0L7QtNGD0LrRgtCwIDMxNTxicj4xMC4yIFRlcmFzY2FsZSBNaWNybyBBcmNoaXRlY3R1cmUgMzE1PGJyPjEwLjIuMSDQntCx0YnQsNGPINGB0YLRgNGD0LrRgtGD0YDQsCAzMTU8YnI+MTAuMi4yIFNJTUQgQ29yZSAzMTc8YnI+MTAuMi4zIFZsaXcgMzE3PGJyPjEwLjIuNCDQp9C10YLRi9GA0LUg0YLQuNC/0LAg0LjQvdGB0YLRgNGD0LrRhtC40LkgMzE4PGJyPjEwLjMgR0NOIE1pY3JvIEFyY2hpdGVjdHVyZSAzMTg8YnI+MTAuMy4xINCb0L7Qs9C40YfQtdGB0LrQsNGPINGB0YLRgNGD0LrRgtGD0YDQsCAzMTk8YnI+MTAuMy4yIEN1INC4INCy0L7Qu9C90L7QstC+0Lkg0LzQsNGB0YHQuNCyIDMxOTxicj4xMC4zLjMg0KHRgtGA0YPQutGC0YPRgNCwINGD0YDQvtCy0L3RjyDQv9Cw0LzRj9GC0LggMzIxPGJyPjEwLjMuNCDQoNCw0LHQvtGH0LDRjyDQs9GA0YPQv9C/0LAgMzIxPGJyPjEwLjMuNSDQnNC90L7Qs9C+0LrRgNCw0YLQvdGL0Lkg0LTQstC40LPQsNGC0LXQu9GMINCy0YvQv9C+0LvQvdC10L3QuNGPIDMyMzxicj4xMC40INCd0LDQsdC+0YAg0LjQvdGB0YLRgNGD0LrRhtC40LkgR0NOIDMyMzxicj4xMC40LjEgNyDRgtC40L/QvtCyINC40L3RgdGC0YDRg9C60YbQuNC5IDMyMzxicj4xMC40LjIg0KTQvtGA0LzQsNGCINC40L3RgdGC0YDRg9C60YbQuNC4IDMyNDxicj4xMC40LjMg0LHQvtC70YzRiNC1INC90LUgdmxpdyDQmNC90YHRgtGA0YPQutGG0LjRjyAzMjQ8YnI+MTAuNC40INCg0YPQutC+0LLQvtC00YHRgtCy0L4g0L/QviDRgNGD0LrQvtCy0L7QtNGB0YLQstGDIDMyNDxicj4xMC41INC80L7QtNC10LvRjCDQv9GA0L7Qs9GA0LDQvNC80LjRgNC+0LLQsNC90LjRjyAzMjU8YnI+MTAuNS4xINCc0LDQvdGC0LjRjyAzMjU8YnI+MTAuNS4yIEhTQSAzMjY8YnI+MTAuNS4zIFJPQ00gMzI2PGJyPjEwLjUuNCBTdHJlYW0gU0RLINC4INC/0YDQuNC70L7QttC10L3QuNC1IFNESyAzMjc8YnI+MTAuNS41INCU0YDQsNC50LLQtdGAINGB0LjRgdGC0LXQvNGLIExpbnV4IDMyNzxicj4xMC42INCQ0L3QvtC80LDQu9GM0L3QsNGPINC4INC70L7QstGD0YjQutCwIDMyNzxicj4xMC42LjEgOSDQkNC90L7QvNCw0LvRjNC90YvQuSAzMjg8YnI+MTAuNi4yINCS0LrQu9GO0YfQuNGC0YwgMzI4PGJyPjEwLjYuMyDQoNC10LPQuNGB0YLRgCDRgdGC0LDRgtGD0LzQsCDQu9C+0LLRg9GI0LrQuCAzMjg8YnI+MTAuNi40INCR0LDQt9C+0LLRi9C5INCw0LTRgNC10YEg0L/RgNC+0YbQtdGB0YHQvtGA0LAg0LvQvtCy0YPRiNC60LggMzI5PGJyPjEwLjYuNSDQn9GA0L7RhtC10YHRgSDQu9C10YfQtdC90LjRjyAzMjk8YnI+MTAuNyDQmNC90YLQtdGA0YTQtdC50YEg0L7RgtC70LDQtNC60Lgg0LTQu9GPINGD0L/RgNCw0LLQu9C10L3QuNGPINC80LDRgdGB0LjQstCw0LzQuCDQstC+0LvQvSAzMzA8YnI+MTAuNy4xIDUg0J7Qv9C10YDQsNGG0LjQuCAzMzA8YnI+MTAuNy4yINCj0LrQsNC20LjRgtC1INGG0LXQu9GMIDMzMDxicj4xMC43LjMg0J7RgtC/0YDQsNCy0LjRgtGMINC40L3RgtC10YDRhNC10LnRgSAzMzE8YnI+MTAuNy40INCf0YDQtdC00LXQuyAzMzI8YnI+MTAuOCDQnNC+0L3QuNGC0L7RgNC40L3QsyDQsNC00YDQtdGB0LAgMzMyPGJyPjEwLjguMSA0INCg0LXQttC40Lwg0LzQvtC90LjRgtC+0YDQuNC90LPQsCAzMzI8YnI+MTAuOC4yINCf0YDQtdC00LXQuyDQutC+0LvQuNGH0LXRgdGC0LLQsCAzMzM8YnI+MTAuOC4zINCe0YLRh9C10YLQvdC+0YHRgtGMLCDRh9GC0L7QsdGLINC/0L7RgNCw0LfQuNGC0YwgMzMzPGJyPjEwLjguNCDQmNC90YLQtdGA0YTQtdC50YEg0YDQtdCz0LjRgdGC0YDQsCAzMzM8YnI+MTAuOC41INCY0L3RgtC10YDRhNC10LnRgSDQv9GA0L7RgdGC0YDQsNC90YHRgtCy0LAg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPIDMzMzxicj4xMC45IFNpbmdsZSAtU3RlcCBEZWJ1ZyBTdXBwb3J0IDMzMzxicj4xMC45LjEg0J7QtNC90L7Qv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90YvQuSDRgNC10LbQuNC8INC+0YLQu9Cw0LTQutC4IDMzNDxicj4xMC45LjIg0JzQtdGC0L7QtCDRg9C/0YDQsNCy0LvQtdC90LjRjyAzMzQ8YnI+MTAuMTA8YnI+MTAuMTAuMSDQtNCy0LAg0LfQvdCw0LrQsCDRgdC+0YHRgtC+0Y/QvdC40Y8gMzM1PGJyPjEwLjEwLjIgNCDQmNC90YHRgtGA0YPQutGG0LjQuCAzMzU8YnI+MTAuMTEg0JrQvtC0INGC0L7Rh9C60LAg0L7RgdGC0LDQvdC+0LLQsCAzMzU8YnI+MTAuMTEuMSDQmNC90YHRgtGA0YPQutGG0LjRjyDQv9C+INC70L7QstGD0YjQutC1IDMzNjxicj4xMC4xMS4yINCY0YHQv9C+0LvRjNC30L7QstCw0L3QuNC1INCyIEdQVSBEZWJ1ZyBTREsgMzM2PGJyPjEwLjEyINCc0L7QtNC10LvRjCDQvtGC0LvQsNC00LrQuCBHUFUg0Lgg0LrQvtC80L/Qu9C10LrRgiDRgNCw0LfRgNCw0LHQvtGC0LrQuCAzMzc8YnI+MTAuMTIuMSDQmtC+0LzQv9C+0LfQuNGG0LjRjyAzMzc8YnI+MTAuMTIuMiDQnNC+0LTQtdC70Ywg0L7RgtC70LDQtNC60Lgg0LIg0L/RgNC+0YbQtdGB0YHQtSAzMzc8YnI+MTAuMTIuMyDQmNC90YLQtdGA0YTQtdC50YEg0L7RgtC70LDQtNC60Lgg0LTQu9GPINGB0L7QsdGL0YLQuNGPIDMzOTxicj4xMC4xMyBST0NNLUdEQiAzNDA8YnI+MTAuMTMuMSDQuNGB0YXQvtC00L3Ri9C5INC60L7QtCAzNDA8YnI+MTAuMTMuMiDQo9GB0YLQsNC90L7QstC60LAg0Lgg0LrQvtC80L/QuNC70Y/RhtC40Y8gMzQwPGJyPjEwLjEzLjMg0J7QsdGJ0LjQtSDQutC+0LzQsNC90LTRiyAzNDA8YnI+MTAuMTQg0KDQtdC30Y7QvNC1INGN0YLQvtC5INCz0LvQsNCy0YsgMzQxPGJyPtCh0L/RgNCw0LLQvtGH0L3Ri9C1INC80LDRgtC10YDQuNCw0LvRiyAzNDI8YnI+0JPQu9Cw0LLQsCAxMSBJbnRlbCBHUFUg0Lgg0LXQs9C+INC+0YLQu9Cw0LTQutC4IDM0Mzxicj4xMS4xINCa0YDQsNGC0LrQsNGPINC40YHRgtC+0YDQuNGPIDM0Mzxicj4xMS4xLjEgSTc0MCAzNDM8YnI+MTEuMS4yINCY0L3RgtC10LPRgNC40YDQvtCy0LDQvdC90LDRjyDQstC40LTQtdC+0LrQsNGA0YLQsCAzNDQ8YnI+MTEuMS4zIEc5NjUgMzQ1PGJyPjExLjEuNCDQm9Cw0YDQsNCx0LggMzQ1PGJyPjExLjEuNSDQs9GA0LDRhNC40YfQtdGB0LrQuNC5INC/0YDQvtGG0LXRgdGB0L7RgCAzNDY8YnI+MTEuMS42INCi0YDQtdGC0LjQuSDRgNCw0YPQvdC0INGC0Y/QttC10LvQvtC5INGA0LDQsdC+0YLRiyAzNDc8YnI+MTEuMS43INCf0YPQsdC70LjRh9C90YvQuSDQtNC+0LrRg9C80LXQvdGCIDM0Nzxicj4xMS4yIEdlbiBNaWNybyBBcmNoaXRlY3R1cmUgMzQ4PGJyPjExLjIuMSDQntCx0YnQsNGPINCw0YDRhdC40YLQtdC60YLRg9GA0LAgMzQ5PGJyPjExLjIuMiDQv9C70LDQvdC40YDQvtCy0LrQsCDQvtCx0LvQsNGB0YLQuCAzNTA8YnI+MTEuMi4zIFN1YiAtRmlsbSBNYXlvdXQgMzUxPGJyPjExLjIuNCDQldChIDM1Mjxicj4xMS4yLjUg0JrQu9Cw0YHRgdC40YfQtdGB0LrQsNGPINCw0YDRhdC40YLQtdC60YLRg9GA0LAg0KDQuNGB0YPQvdC+0LogMzUzPGJyPjExLjMg0JjQvdGC0LXRgNGE0LXQudGBINGA0LXQs9C40YHRgtGA0LAgMzU0PGJyPjExLjMuMSDQlNCy0LAg0LrQsNGC0LXQs9C+0YDQuNGPINGA0LXQs9C40YHRgtGAIDM1NDxicj4xMS4zLjIg0KDQtdCz0LjRgdGC0YAg0YTRg9C90LrRhtC40Lgg0L7RgtC+0LHRgNCw0LbQtdC90LjRjyAzNTU8YnI+MTEuNCDQmtC+0LzQsNC90LTQvdGL0Lkg0L/QvtGC0L7QuiDQuCDQsdGD0YTQtdGAINC60L7Qu9GM0YbQsCAzNTc8YnI+MTEuNC4xINCa0L7QvNCw0L3QtNCwIDM1Nzxicj4xMS40LjIg0JrQvtC70YzRhtC10LLQvtC5INCx0YPRhNC10YAgMzU4PGJyPjExLjQuMy48YnI+MTEuNSDQodC/0LjRgdC+0Log0LrQvtC90YLQtdC60YHRgtCwINC4INCy0YvQv9C+0LvQvdC10L3QuNGPINC70L7Qs9C40YfQtdGB0LrQvtCz0L4g0LrQvtC70YzRhtCwIDM2MDxicj4xMS41LjEgTFJDIDM2MDxicj4xMS41LjIg0KHRgdGL0LvQutC4INC90LAg0LLRi9C/0L7Qu9C90LXQvdC40LUg0L7RgtC/0YDQsNCy0YzRgtC1INC/0L7RgNGCIDM2Mjxicj4xMS41LjMuINCf0L7QvdGP0YLRjCDQv9GA0L7RhtC10YHRgSDQv9C+0LTQsNGH0Lgg0Lgg0LLRi9C/0L7Qu9C90LXQvdC40Y8gTFJDIDM2Mjxicj4xMS42IEdVQyDQuCDQvtGC0L/RgNCw0LLRjNGC0LUg0LfQsNC00LDQvdC40LUgMzY1INGH0LXRgNC10LcgR1VDPGJyPjExLjYuMSDQl9Cw0LPRgNGD0LfQuNGC0LUg0L/RgNC+0YjQuNCy0LrRgyDQuCDQt9Cw0L/Rg9GB0YLQuNGC0LUgR1VDIDM2NTxicj4xMS42LjIg0KHQstGP0LfRjCDRgSBNTUlPIDM2Njxicj4xMS42LjMg0JzQtdGF0LDQvdC40LfQvCDQv9C10YDQtdC00LDRh9C4INC60L7QvNCw0L3QtCDQvdCwINC+0YHQvdC+0LLQtSDQvtCx0YnQtdC5INC/0LDQvNGP0YLQuCAzNjc8YnI+MTEuNi40INCe0YLQv9GA0LDQstC40YLRjCDRgNCw0LHQvtGH0YPRjiDQt9Cw0LTQsNGH0YMgMzY3PGJyPjExLjcgTWVkaWEgRmlsbSAzNjg8YnI+MTEuNy4xIEc5NjUg0KHQnNCYINCh0JHQntCg0JrQkCAzNjg8YnI+MTEuNy4yIE1GWCBFbmdpbmUgMzcwPGJyPjExLjcuMyDQnNC+0LTQtdC70Ywg0YHQvtGB0YLQvtGP0L3QuNGPIDM3MDxicj4xMS43LjQg0JzQvdC+0LPQvtGH0LjRgdC70LXQvdC90YvQtSDQvNC10YLQvtC00Ysg0YDQsNGB0YfQtdGC0LAgMzcxPGJyPjExLjgg0J3QsNCx0L7RgCDQuNC90YHRgtGA0YPQutGG0LjQuSDQldChIDM3Mjxicj4xMS44LjEg0KDQtdCz0LjRgdGC0YAgMzcyPGJyPjExLjguMiDQoNC10LPQuNGB0YLRgCDQkdC70L7QuiAzNzM8YnI+MTEuOC4zINCT0YDQsNC80LzQsNGC0LjQutCwINC40L3RgdGC0YDRg9C60YbQuNC4IDM3NTxicj4xMS44LjQgVmxpdyDQuCDRg9GA0L7QstC10L3RjCDQvtCx0YPRh9C10L3QuNGPINCf0LDRgNCw0LvQu9C10LvRjCAzNzU8YnI+MTEuOSDQo9C/0YDQsNCy0LvQtdC90LjQtSDQv9Cw0LzRj9GC0YzRjiAzNzc8YnI+MTEuOS4xIEdHVFQgMzc3PGJyPjExLjkuMiBQUEdUVCAzNzg8YnI+MTEuOS4zIEk5MTUg0LggR01NTElCIDM3OTxicj4xMS4xMCDQvdC10L3QvtGA0LzQsNC70YzQvdCw0Y8gMzc5PGJyPjExLjEwLjEg0JDQvdC+0LzQsNC70YzQvdGL0Lkg0YLQuNC/IDM3OTxicj4xMS4xMC4yINCh0LjRgdGC0LXQvNC90YvQuSDQv9GA0L7RhtC10YHRgSAzODA8YnI+MTEuMTEg0J/QvtC00LTQtdGA0LbQutCwINGC0L7Rh9C60Lgg0L7RgdGC0LDQvdC+0LLQsCAzODE8YnI+MTEuMTEuMSDQkdC40YIg0LrQvtC90YLRgNC+0LvRjyDQvtGC0LvQsNC00LrQuCAzODE8YnI+MTEuMTEuMiDQotC+0YfQutCwINGB0L7Qv9C+0YHRgtCw0LLQu9C10L3QuNGPINC60L7QtNCwINC+0L/QtdGA0LDRhtC40LggMzgxPGJyPjExLjExLjMgSVAgLdGB0L7Qv9C+0YHRgtCw0LLQu9C10L3QuNC1IEJyZWFrcG9pbnQgMzgxPGJyPjExLjExLjQg0J3QsNGH0LDQu9GM0L3QsNGPINGC0L7Rh9C60LAg0L7RgdGC0LDQvdC+0LLQsCAzODI8YnI+MTEuMTIg0JXQtNC40L3RgdGC0LLQtdC90L3QvtC1INGI0LDQsyDQstGL0L/QvtC70L3QtdC90LjQtSAzODI8YnI+MTEuMTMgR1QgRGVidWdnZXIgMzgyPGJyPjExLjEzLjEg0JDRgNGF0LjRgtC10LrRgtGD0YDQsCAzODI8YnI+MTEuMTMuMiDQnNC10YDQvtC/0YDQuNGP0YLQuNC1INC+0YLQu9Cw0LTQutC4IDM4NDxicj4xMS4xMy4zINCj0L/RgNCw0LLQu9C10L3QuNC1INGB0LjQvNCy0L7Qu9C+0LwgMzg1PGJyPjExLjEzLjQg0J7RgdC90L7QstC90LDRjyDRhNGD0L3QutGG0LjRjyAzODU8YnI+MTEuMTMuNSDQnNC10L3QtdC1IDM4NTxicj4xMS4xNCDQoNC10LfRjtC80LUg0Y3RgtC+0Lkg0LPQu9Cw0LLRiyAzODY8YnI+0KHQv9GA0LDQstC+0YfQvdGL0LUg0LzQsNGC0LXRgNC40LDQu9GLIDM4Njxicj7Qk9C70LDQstCwIDEyIE1hbGkgR1BVINC4INC10LPQviDQvtGC0LvQsNC00LrQuCAzODc8YnI+MTIuMSDQntCx0LfQvtGAIDM4Nzxicj4xMi4xLjEg0L/RgNC+0LjRgdGF0L7QtNC40LvQviDQuNC3INCd0L7RgNCy0LXQs9C40LggMzg3PGJyPjEyLjEuMiDQstC60LvRjtGH0LjRgtGMIEFSTSAzODc8YnI+MTIuMS4zINCi0YDQuCAt0LPQtdC90LXRgNCw0YbQuNC+0L3QvdCw0Y8g0LzQuNC60YDQviDQsNGA0YXQuNGC0LXQutGC0YPRgNCwIDM4ODxicj4xMi4xLjQg0JTQvtGB0YLQsNCy0LrQsCrQndC10YHQutC+0LvRjNC60L4g0LPRgNCw0YTQuNGH0LXRgdC60LjRhSDQv9GA0L7RhtC10YHRgdC+0YDQvtCyIDM4ODxicj4xMi4xLjUgUG9seSBUZWFtIDM4OTxicj4xMi4xLjYg0JfQsNC60YDRi9GC0YvQuSDRgtC10YXQvdC40YfQtdGB0LrQuNC5INC00L7QutGD0LzQtdC90YIgMzg5PGJyPjEyLjEuNyDQlNC40LfQsNC50L0g0LHQu9C+0LrQsCAzODk8YnI+MTIuMiBNaWRnYXJkIE1pY3JvIEFyY2hpdGVjdHVyZSAzODk8YnI+MTIuMi4xINCb0L7Qs9C40YfQtdGB0LrQsNGPINGB0YLRgNGD0LrRgtGD0YDQsCAzOTA8YnI+MTIuMi4yINCv0LTRgNC+IDM5MCDQstC+0LTQvdGL0YUg0LvQuNC90LjQuSDQodCw0L3Rh9Cw0Lk8YnI+MTIuMi4zINCd0LDQsdC+0YAg0LjQvdGB0YLRgNGD0LrRhtC40LkgVmxpdyAzOTI8YnI+MTIuMyBCaWZyb3N0IE1pY3JvIEFyY2hpdGVjdHVyZSAzOTM8YnI+MTIuMy4xINCb0L7Qs9C40YfQtdGB0LrQsNGPINGB0YLRgNGD0LrRgtGD0YDQsCAzOTM8YnI+MTIuMy4yINCv0LTRgNC+INC40YHQv9C+0LvQvdC10L3QuNGPIDM5NDxicj4xMi4zLjMg0KHQutCw0LvRj9GA0L3Ri9C1INC40L3RgdGC0YDRg9C60YbQuNC4INC4IFdhcnAgMzk1PGJyPjEyLjQgTWFsaSBHcmFwaGljcyBEZWJ1Z2dlciAzOTU8YnI+MTIuNC4xINCU0LLQvtC50L3QvtC5INGA0LXQttC40LwgMzk1PGJyPjEyLjQuMiDQlNC10YbQtdC90YLRgNCw0LvQuNC30LDRhtC40Y8g0LrQsNC00YDQsCAt0L7RgNC40LXQvdGC0LjRgNC+0LLQsNC90L3QvtC5IDM5Njxicj4xMi41IEdhdG9yIDM5Njxicj4xMi41LjEg0JzQvtC00YPQu9GMINGP0LTRgNCwIEdhdG9yIChHYXRvci5LbykgMzk3PGJyPjEyLjUuMiDRhNCw0LnQu9C+0LLQsNGPINGB0LjRgdGC0LXQvNCwIEdhdG9yIChHYXRvckZTKSAzOTc8YnI+MTIuNS4zLiDQodC70YPQttCx0LAg0YTQvtC90L7QstC+0Lkg0YHQu9GD0LbQsdGLIEdhdG9yIChHYXRvcmQpIDM5ODxicj4xMi41LjQg0J/QvtC00LTQtdGA0LbQutCwIEdhdG9yIDM5OSDQsiBLQkFTRSBEcml2ZSAzOTk8YnI+MTIuNS41INCX0L3QsNGH0LXQvdC40LUgMzk5PGJyPjEyLDYg0JrQsdCw0LfQsCAt0YPQv9GA0LDQstC70Y/RjtGJ0LjQtSDRgdGA0LXQtNGB0YLQstCwINC+0YLQu9Cw0LTQutC4IDM5OTxicj4xMi42LjEg0J7RgtGH0LXRgiDQstC10YDRgdC40LggR1BVIDM5OTxicj4xMi42LjIg0JLQsNGA0LjQsNC90YIg0LrQvtC80L/QuNC70Y/RhtC40LggNDAwPGJyPjEyLjYuMyDQktC40YDRgtGD0LDQu9GM0L3Ri9C1INGE0LDQudC70Ysg0LIg0YDQsNC80LrQsNGFINC+0YLQu9Cw0LTQutC4IDQwMTxicj4xMi42LjQg0JLQuNGA0YLRg9Cw0LvRjNC90YvQtSDRhNCw0LnQu9GLINC/0L7QtCBTWVNGUyA0MDE8YnI+MTIuNi41INCe0JHQodCb0KPQltCY0JLQkNCd0JjQryDQntCR0KHQm9Cj0JbQmNCS0JDQndCY0K8g0J7RgdC90L7QstCw0L0g0L3QsCBGVFJBQ0UgNDAxPGJyPjEyLjYuNiDQo9GB0YLQsNC90L7QstC60Lgg0L7RgtGB0LvQtdC20LjQstCw0L3QuNGPINC60LHQsNC30YsgNDAyPGJyPjEyLjcg0JTRgNGD0LPQuNC1INGB0YDQtdC00YHRgtCy0LAg0L7RgtC70LDQtNC60LggNDAzPGJyPjEyLjcuMSBDYWltYW4gNDAzPGJyPjEyLjcuMiBEZXZsaWIgNDA0PGJyPjEyLjcuMyBNYWxpIE9mZmxpbmUgQ29tcGlsZXIgNDA0PGJyPjEyLjgg0J7RgtGB0YPRgtGB0YLQstC40LUg0L7RgtC70LDQtNC60LggNDA1PGJyPjEyLjguMSBHUEdQVSDQvtGC0LvQsNC00YfQuNC6IDQwNTxicj4xMi44LjIg0J7RgtC70LDQtNC60LAg0LPRgNCw0YTQuNGH0LXRgdC60L7Qs9C+INC/0YDQvtGG0LXRgdGB0L7RgNCwIFNESyA0MDY8YnI+MTIuOC4zIEFudGkgLUZvcmVpZ24gRXhjaGFuZ2UgRWRpdG9yIDQwNjxicj4xMi44LjQg0JTQvtC60YPQvNC10L3RgiBJU0EgNDA2PGJyPjEyLjkg0K3RgtCwINCz0LvQsNCy0LAgLSDRgdCw0LzQvNC40YIgNDA2PGJyPtCh0L/RgNCw0LLQvtGH0L3Ri9C1INC80LDRgtC10YDQuNCw0LvRiyA0MDY8YnI+0JPQu9Cw0LLQsCAxMyBQb3dlclZSIEdQVSDQuCDQtdCz0L4g0L7RgtC70LDQtNC60LggNDA3PGJyPjEzLjEg0KDQtdC30Y7QvNC1IDQwNzxicj4xMy4xLjEg0KDQsNC30YDQsNCx0L7RgtCw0YLRjCDQutGA0LDRgtC60YPRjiDQuNGB0YLQvtGA0LjRjiA0MDc8YnI+MTMuMS4yINCU0LLQtSDQu9C40L3QtdC50LrQuCDQv9GA0L7QtNGD0LrRgtC+0LIgNDA5PGJyPjEzLjEuMyDQl9Cw0LTQtdGA0LbQsNC90L3Ri9C5INGA0LXQvdC00LXRgNC40L3QsyDQvdCwINC+0YHQvdC+0LLQtSDQsdC70L7QutCwIDQwOTxicj4xMy4xLjQgSW50ZWwgR01BIDQwOTxicj4xMy4xLjUg0L7RgtC60YDRi9GC0L7RgdGC0YwgNDEwPGJyPjEzLjIgUm9ndWUgTWljcm8gQXJjaGl0ZWN0dXJlIDQxMDxicj4xMy4yLjEg0J7QsdGJ0LDRjyDRgdGC0YDRg9C60YLRg9GA0LAgNDEwPGJyPjEzLjIuMiBVU0MgNDExPGJyPjEzLjIuMyBBbHUgRmlsaWFsIFdpciA0MTI8YnI+MTMuMyDQodCx0L7RgCDRgdC/0YDQsNCy0L7Rh9C90L7QuSDQuNC90YHRgtGA0YPQutGG0LjQuCA0MTM8YnI+MTMuMy4xINCg0LXQs9C40YHRgtGAIDQxNDxicj4xMy4zLjIg0JPRgNGD0L/Qv9CwINC40L3RgdGC0YDRg9C60YbQuNC5IDQxNDxicj4xMy4zLjMg0JzQvtC00LjRhNC40LrQsNGC0L7RgCDQlNC40YDQtdC60YLQuNCy0YsgNDE1PGJyPjEzLjMuNCDQotC40L8g0LjQvdGB0YLRgNGD0LrRhtC40LggNDE1PGJyPjEzLjMuNSDQodC60LDQu9GP0YDQvdCw0Y8g0LjQvdGB0YLRgNGD0LrRhtC40Y8gNDE2PGJyPjEzLjMuNiDQn9Cw0YDQsNC70LvQtdC70YzQvdGL0Lkg0YDQtdC20LjQvCA0MTY8YnI+MTMuNCDQn9GA0L7Qs9GA0LDQvNC80L3QsNGPINC80L7QtNC10LvRjCDQuCBNaWNybyBDb3JlIDQxNzxicj4xMy40LjEg0J/RgNC+0LPRgNCw0LzQvNC90LDRjyDQvNC+0LTQtdC70YwgNDE3PGJyPjEzLjQuMiDQntGB0L3QvtCy0L3QsNGPINGE0YPQvdC60YbQuNGPIE1pY3JvIC1Db3JlIDQxNzxicj4xMy40LjMg0J/RgNC10LjQvNGD0YnQtdGB0YLQstC+IDQxODxicj4xMy40LjQg0KHRg9GJ0LXRgdGC0LLRg9GO0YIgNDE4PGJyPjEzLjUg0J/QvtC00LTQtdGA0LbQutCwINGC0L7Rh9C60Lgg0L7RgdGC0LDQvdC+0LLQsCA0MTg8YnI+MTMuNS4xINCY0L3RgdGC0YDRg9C60YbQuNC4IEJQVEUgNDE5PGJyPjEzLjUuMi4g0KLQvtGH0LrQsCDQvtGB0YLQsNC90L7QstC60Lgg0LTQsNC90L3Ri9GFIDQxOTxicj4xMy41LjMgSVNQIC3RgtC+0YfQutCwINC+0YHRgtCw0L3QvtCy0LAgNDIwPGJyPjEzLjYg0J7RhNGE0LvQsNC50L0g0LrQvtC80L/QuNC70Y/RhtC40Y8g0Lgg0LrQvtC90YLRgNC60LvQuNCz0LDRhtC40Y8gNDIwPGJyPjEzLjYuMSDQntGE0YTQu9Cw0LnQvSDQutC+0LzQv9C40LvRj9GG0LjRjyA0MjA8YnI+MTMuNi4yINCe0LHRgNCw0YLQvdCw0Y8g0YHQsdC+0YDQutCwIDQyMTxicj4xMyw3IFBWUi1HREIgNDIxPGJyPjEzLjcuMSDQntGC0LvQsNC00LrQsCDRgtGA0LXQutCwIDQyMTxicj4xMy43LjIg0JfQsNGA0LXQs9C40YHRgtGA0LDRgtC+0YAg0LTQvtGB0YLRg9C/0LAgNDIyPGJyPjEzLjcuMyDQlNGA0YPQs9C40LUg0YTRg9C90LrRhtC40LggNDIyPGJyPjEzLjcuNCDQk9C70L7QsdCw0LvRjNC90LDRjyDRgtC+0YfQutCwINC+0YHRgtCw0L3QvtCy0LAg0Lgg0L7Qs9GA0LDQvdC40YfQtdC90LjRjyA0MjI8YnI+MTMuOCDQoNC10LfRjtC80LUg0Y3RgtC+0Lkg0LPQu9Cw0LLRiyA0MjM8YnI+0KHQv9GA0LDQstC+0YfQvdGL0LUg0LzQsNGC0LXRgNC40LDQu9GLIDQyMzxicj7Qk9C70LDQstCwIDE0INCg0LXQt9GO0LzQtSBHUFUgNDI0PGJyPjE0LjEg0KHRgNCw0LLQvdC10L3QuNC1IDQyNDxicj4xNC4xLjEg0L7RgtC60YDRi9GC0L7RgdGC0YwgNDI0PGJyPjE0LjEuMiDQptC10L/QvtGH0LrQsCDQuNC90YHRgtGA0YPQvNC10L3RgtC+0LIgNDI1PGJyPjE0LjEuMyrQntGC0L/RgNCw0LLQuNGC0Ywg0LTQvtC60YPQvNC10L3RgiA0MjU8YnI+MTQuMiDQntGB0L3QvtCy0L3Ri9C1INC/0YDQvtGC0LjQstC+0YDQtdGH0LjRjyA0MjU8YnI+MTQuMi4xIERFRElDSUFUWSDQuCBVbml2ZXJzYWwgNDI2PGJyPjE0LjIuMiDQkNC/0L/QsNGA0LDRgtC90L7QtSDQuCDRgdC70LDQsdC+0LUg0L/RgNC+0LPRgNCw0LzQvNC90L7QtSDQvtCx0LXRgdC/0LXRh9C10L3QuNC1IDQyNjxicj4xNC4zINCi0LXQvdC00LXQvdGG0LjQuCDRgNCw0LfRgNCw0LHQvtGC0LrQuCA0MjY8YnI+MTQuMy4xINCe0YIg0LHQu9C+0LrQsCDRhNC40LrRgdC40YDQvtCy0LDQvdC90L7QuSDRhNGD0L3QutGG0LjQuCDQtNC+INC+0LHRidC10LPQviDQtNCy0LjQs9Cw0YLQtdC70Y8g0LLRi9C/0L7Qu9C90LXQvdC40Y8gNDI2PGJyPjE0LjMuMiDQntGCINCy0LXQutGC0L7RgNC90YvRhSDQuNC90YHRgtGA0YPQutGG0LjQuSDQtNC+INGB0LrQsNC70Y/RgNC90L7QuSDQuNC90YHRgtGA0YPQutGG0LjQuCA0Mjc8YnI+MTQuMy4zINC+0YIg0LjQvdGB0YLRgNGD0LrRhtC40Lkg0L/QsNGA0LDQu9C70LXQu9GM0L3QviDRgSDQvdC40YLRjNGOINC/0LDRgNCw0LvQu9C10LvRjCA0Mjc8YnI+MTQuNCDQlNGA0YPQs9C+0LkgR1BVIDQyNzxicj4xNC40LjEg0JDQtNGA0LXQvdC+IDQyODxicj4xNC40LjIgVmlkZW9Db3JlIDQyODxicj4xNC40LjMg0KDQuNGB0YPQvdC+0LogQ29yZSBHUFUgNDI5PGJyPjE0LjQuNCBUSSBUTVMzNDAxMCA0Mjk8YnI+MTQuNSDQo9GH0LXQsdC90YvQtSDQvNCw0YLQtdGA0LjQsNC70Ysg0Lgg0LjQvdGB0YLRgNGD0LzQtdC90YLRiyA0MzA8YnI+MTQuNS4xINCU0L7QutGD0LzQtdC90YIgNDMwPGJyPjE0LjUuMiDQuNGB0YXQvtC00L3Ri9C5INC60L7QtCA0MzA8YnI+MTQuNS4zINCY0L3RgdGC0YDRg9C80LXQvdGC0YsgNDMxPGJyPjE0LjYg0KDQtdC30Y7QvNC1INGN0YLQvtC5INCz0LvQsNCy0YsgNDMyPGJyPtCh0L/RgNCw0LLQvtGH0L3Ri9C1INC80LDRgtC10YDQuNCw0LvRiyA0MzI8YnI+PGJyPtCn0LXRgtCy0LXRgNGC0LDRjyDRh9Cw0YHRgtGMINC+0YLQu9Cw0LTQutC4PGJyPjxicj7Qk9C70LDQstCwIDE1INCe0LHQt9C+0YAg0L/QtdGA0LXQv9C40YHQutC4IDQzNTxicj4xNS4xINCS0LLQtdC00LXQvdC40LUgNDM1PGJyPjE1LjIgT2lnaHQg0LggQm9vYnVraSA0MzY8YnI+MTUuMi4xINCY0YHRgtC+0YDQuNGPIE5UIDMuMSA0MzY8YnI+MTUuMi4yINCh0L7RhdGA0LDQvdC10L3QuNC1IDQzODxicj4xNS4zINCe0YHQvdC+0LLQvdGL0LUg0L/RgNC40L3RhtC40L/RiyA0Mzk8YnI+MTUuMy4xKtCf0YDQuNC90YbQuNC/INC60L7RgNC+0YLQutC+0LPQviDRgNCw0YHRgdGC0L7Rj9C90LjRjyA0Mzk8YnI+MTUuMy4yKtCf0YDQuNC90YbQuNC/INC90LXQsdC+0LvRjNGI0L7Qs9C+INC00LjQsNC/0LDQt9C+0L3QsCA0Mzk8YnI+MTUuMy4zINCh0YDQsNC30YMg0LbQtSDQv9GA0LXQutGA0LDRgtC40YLRjCDQv9GA0LjQvdGG0LjQv9GLIDQ0MDxicj4xNS4zLjQg0J/RgNC40L3RhtC40L8g0L7RgtGB0LvQtdC20LjQstCw0L3QuNGPIDQ0MTxicj4xNS4zLjUg0JrQvtC90YLRgNC+0LvQuNGA0YPQtdC80YvQtSDQv9GA0LjQvdGG0LjQv9GLIDQ0Mjxicj4xNS4zLjYg0J/QvtCy0YLQvtGA0Y/QtdC80YvQuSDQv9GA0LjQvdGG0LjQvyA0NDI8YnI+MTUuMy43INCf0YDQuNC90YbQuNC/0Ysg0L3QsNCx0LvRjtC00LXQvdC40Y8gNDQyPGJyPjE1LjMuOCDQn9GA0LjQvdGG0LjQv9GLINC70LXQs9C60L7Qs9C+INGA0LDRgdC/0L7Qt9C90LDQstCw0L3QuNGPIDQ0Mzxicj4xNS4zLjkg0J/RgNC40L3RhtC40L/RiyDRjdGE0YTQtdC60YLQsCDQvdC40LfQutC+0LPQviDQpdCw0LnQt9C10L3QsdC10YDQs9CwIDQ0Mzxicj4xNS40INCR0LXRgdC60L7QvNC/0YDQvtC80LjRgdGB0L3Ri9C5INC60L7QtCA0NDQ8YnI+MTUuNC4xINCk0YPQvdC60YbQuNGPINCw0L3QvtC80LDQu9GM0L3QvtCz0L4g0YDQsNGB0L/RgNC10LTQtdC70LXQvdC40Y8g0YHQuNGB0YLQtdC80YsgNDQ0PGJyPjE1LjQuMiDQodC40YHRgtC10LzQvdCw0Y8g0YTRg9C90LrRhtC40Y8g0YEg0YTRg9C90LrRhtC40Y/QvNC4INC+0YLQu9Cw0LTQutC4IDQ0NDxicj4xNS40LjMg0KTRg9C90LrRhtC40Y8g0YfRg9Cy0YHRgtCy0LjRgtC10LvRjNC90L7QuSDQuiDQvtGC0LvQsNC00YfQuNC60YMgNDQ1PGJyPjE1LjQuNCDQn9GA0L7RhtC10LTRg9GA0Ysg0LDQvdGC0LggLdC/0LXRgNC10LrQu9GO0YfQtdC90LjRjyDQuCDQvtGC0LvQsNC00LrQuCA0NDU8YnI+MTUuNC41INCn0YPQstGB0YLQstC40YLQtdC70YzQvdGL0Lkg0LrQvtC0IDQ0Njxicj4xNS40LjYg0JjQt9C80LXRgNC10L3QuNGPINC+0YLQstC10YLQsCA0NDY8YnI+MTUuNSDQntCx0L3QsNGA0YPQttC10L3QvdGL0Lkg0L/RgNC40LzQtdGAINCw0L3QsNC70LjQt9CwIDQ0Njxicj4xNS41LjEg0JfQtNC+0YDQvtCy0YvQuSDQvtGB0LzQvtGC0YAg0LggQlNPRCA0NDc8YnI+MTUuNS4yIENvbnRyb2x0IDQ0Nzxicj4xNS41LjMg0KTQsNC50Lsg0L7QsdGJ0LXRgdGC0LLQtdC90L3QvtCz0L4g0YHQuNC80LLQvtC70LAgNDQ4PGJyPjE1LjUuNCBXRVIgNDQ4PGJyPjE1LjUuNSBFVFcg0LggbG9nIDQ0ODxicj4xNS41LjYg0KHRh9C10YLRh9C40Log0L/RgNC+0LjQt9Cy0L7QtNC40YLQtdC70YzQvdC+0YHRgtC4IDQ0OTxicj4xNS41LjcuPGJyPjE1LjUuOC48YnI+MTUuNiDQodCy0Y/Qt9GMINC80LXQttC00YMg0LHQtdC30L7Qv9Cw0YHQvdC+0YHRgtGM0Y4sINCx0LjQt9C90LXRgSAt0YHQtdC60YDQtdGC0LDQvNC4INC4INC/0YDQvtC40LfQstC+0LTQuNGC0LXQu9GM0L3QvtGB0YLRjNGOIDQ0OTxicj4xNS42LjEg0KDQtdCz0YPQu9C40YDRg9C10LzQsNGPINGC0LXRgdGC0LjRgNGD0LXQvNC+0YHRgtGMINC4INCx0LXQt9C+0L/QsNGB0L3QvtGB0YLRjCA0NTA8YnI+MTUuNi4yINCg0LXQs9GD0LvQuNGA0YPQtdC80LDRjyDRgtC10YHRgtC40YDRg9C10LzQvtGB0YLRjCDQuCDQsdC40LfQvdC10YEgLdGB0LXQutGA0LXRgiA0NTA8YnI+MTUuNi4zINCf0YDQuNC70LjRh9C90LDRjyDQuCDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0YwgNDUwPGJyPjE1Ljcg0KDQtdC30Y7QvNC1INGN0YLQvtC5INCz0LvQsNCy0YsgNDUwPGJyPtCh0L/RgNCw0LLQvtGH0L3Ri9C1INC80LDRgtC10YDQuNCw0LvRiyA0NTE8YnI+0JPQu9Cw0LLQsCAxNiDQoNC10LDQu9C40LfQsNGG0LjRjyDQuNGB0L/Ri9GC0LDRgtC10LvRjNC90L7QuSDQv9GA0L7QstC10YDQutC4IDQ1Mjxicj4xNi4xINCg0L7Qu9GMINC4INC+0LHRj9C30LDQvdC90L7RgdGC0LggNDUyPGJyPjE2LjEuMSDQkNGA0YXQuNGC0LXQutGC0L7RgCA0NTI8YnI+MTYuMS4yINCf0YDQvtCz0YDQsNC80LzQuNGB0YIgNDUzPGJyPjE2LjEuMyDQotC10YHRgtC10YAgNDUzPGJyPjE2LjEuNCDQmNC90LbQtdC90LXRgCDQv9C+INGC0LXRhdC90LjRh9C10YHQutC+0Lkg0L/QvtC00LTQtdGA0LbQutC1INC4INGC0LXRhdC90LjRh9C10YHQutC+0Lkg0L/QvtC00LTQtdGA0LbQutC1INC/0YDQvtC00YPQutGC0LAgNDU0PGJyPjE2LjEuNSDQnNC10L3QtdC00LbQtdGAIDQ1NDxicj4xNi4yINCg0LDQt9GA0YPQsdCw0LXQvNCw0Y8g0LDRgNGF0LjRgtC10LrRgtGD0YDQsCA0NTU8YnI+MTYuMi4xIGxvZyA0NTU8YnI+MTYuMi4yINCY0L3RhNC+0YDQvNCw0YbQuNGPINC+0LEg0L7RgtC70LDQtNC60LUg0LLRi9Cy0L7QtNCwIDQ1Njxicj4xNi4yLjMg0KDQldCX0KPQnNCV0J3QoiA0NTc8YnI+MTYuMi40INCR0LDQt9C+0LLRi9C5INC60LvQsNGB0YEgNDU4PGJyPjE2LjIuNSDQnNC+0LTQtdC70Ywg0L7RgtC70LDQtNC60LggNDU4PGJyPjE2LjMg0KDQtdCw0LvQuNC30LDRhtC40Y8g0L7RgtGB0LvQtdC20LjQstCw0L3QuNGPINGH0LXRgNC10Lcg0YDQtdGC0YDQvtGB0L/QtdC60YLQuNCy0YMg0YHRgtC10LrQsCA0NTk8YnI+MTYuMy4xINCe0YHQvdC+0LLQvdGL0LUg0L/RgNC40L3RhtC40L/RiyDQv9C10L3RgdC40L7QvdC10YDQsCA0NTk8YnI+MTYuMy4yINCY0YHQv9C+0LvRjNC30YPQudGC0LUg0LHQuNCx0LvQuNC+0YLQtdC60YMg0YTRg9C90LrRhtC40LkgREJHSEVMUCDQvtCx0YDQsNGC0L3QviDQsiDRgNC10YLRgNC+0YHQv9C10LrRgtC40LLQvdGL0Lkg0YHRgtC10LogNDYxPGJyPjE2LjMuMyDQmNGB0L/QvtC70YzQt9GD0LnRgtC1INGE0YPQvdC60YbQuNGOIFJUTCwg0YfRgtC+0LHRiyDQv9C+0LvRg9GH0LjRgtGMINGB0YLQtdC6IDQ2NTxicj4xNi40INCh0LvRg9GI0LDQtdC80L7RgdGC0Ywg0LTQsNC90L3Ri9GFIDQ2Njxicj4xNi40LjEg0JzQtdGC0L7QtCDQvdCwINC+0YHQvdC+0LLQtSDRgtC+0YfQutC4INC+0YHRgtCw0L3QvtCy0LAg0LTQsNC90L3Ri9GFIDQ2Njxicj4xNi40LjIg0JjRgdC/0L7Qu9GM0LfRg9C50YLQtSDRgtC10YXQvdC+0LvQvtCz0LjRjiDRg9C/0LDQutC+0LLQutC4INC+0LHRitC10LrRgtC+0LIg0LTQu9GPINC+0YLRgdC70LXQttC40LLQsNC90LjRjyDQuNC30LzQtdC90LXQvdC40Lkg0LTQsNC90L3Ri9GFIDQ3MTxicj4xNi41INCg0LXQsNC70LjQt9Cw0YbQuNGPIDQ3Mjxicj4xNi41LjEg0KHRgtCw0YLRg9GB0L3QvtC1INC30LDQv9GA0L7RgSA0NzI8YnI+MTYuNS4yIFdNSSA0NzM8YnI+MTYuNS4zLiDQn9C+0LTRgdGH0LXRgiDQv9GA0L7QuNC30LLQvtC00LjRgtC10LvRjNC90L7RgdGC0LggNDc1PGJyPjE2LjUuNCDQodGC0LXRgNC20L3QuCA0Nzg8YnI+MTYuNS41Ljxicj4xNi41LjYgTG9nIDQ4MDxicj4xNi42IFNlbGYgLUNoZWNrINC4IEF1dG9tYXRpYyBSZXBvcnQgNDgwPGJyPjE2LjYuMSBCSVNUIDQ4MDxicj4xNi42LjIg0L/RgNC+0LPRgNCw0LzQvNC90L7QtSDQvtCx0LXRgdC/0LXRh9C10L3QuNC1IFNlbGYgLUluc3BlY3Rpb24gNDgxPGJyPjE2LjYuMyDQkNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuNC5INC+0YLRh9C10YIgNDgyPGJyPjE2Ljcg0KDQtdC30Y7QvNC1INGN0YLQvtC5INCz0LvQsNCy0YsgNDgyPGJyPtCh0YHRi9C70LrQsCA0ODM8YnI+PGJyPjxpbWcgY2xhc3M9ImRlc2NfYW5jaG9yIiBpZD0iZGVzYy1tb2R1bGUtNCIgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0LzEwMzc0Nzc0MjIvTzFDTjAxV2RtZXVLMjRoS0JsdXRSejdfISExMDM3NDc3NDIyLmpwZyI+PGJyPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7Zm9udC1zaXplOiAxNS4wcHg7Zm9udC13ZWlnaHQ6IGJvbGQ7aGVpZ2h0OiAzMC4wcHg7bGluZS1oZWlnaHQ6IDMwLjBweDsiPtC+0LEg0LDQstGC0L7RgNC1PC9kaXY+PGJyPtCn0LbQsNC9INCZ0LjQvdC60YPQuCwg0LjQt9Cy0LXRgdGC0L3Ri9C5INGC0LXRhdC90LjRh9C10YHQutC40Lkg0Y3QutGB0L/QtdGA0YIg0L/QviDQtNC+0LzRgy7QntC9INC+0LrQvtC90YfQuNC7INGE0LDQutGD0LvRjNGC0LXRgiDQuNC90YTQvtGA0LzQsNGG0LjQuCDQviDQuNC90YTQvtGA0LzQsNGG0LjQvtC90L3QvtC5INC4INC60L7QvdGC0YDQvtC70YzQvdC+0Lkg0LjQvdC20LXQvdC10YDQuNC4INCj0L3QuNCy0LXRgNGB0LjRgtC10YLQsCDQqNCw0L3RhdCw0Y8g0JTQttC40LDRgtC+0L3QsyDQuCDQsiDRgtC10YfQtdC90LjQtSAxMyDQu9C10YIg0LfQsNC90LjQvNCw0LvRgdGPINGA0LDQt9GA0LDQsdC+0YLQutC+0Lkg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8uINCe0L/QtdGA0LDRhtC40L7QvdC90LDRjyDRgdC40YHRgtC10LzQsCBDb3JlINC4IERyaXZlciwg0L7RgdC+0LHQtdC90L3QviDQtNC70Y8g0L7RgtC70LDQtNC60Lgg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y8u0J7QvSDRj9Cy0LvRj9C10YLRgdGPINC+0YHQvdC+0LLQsNGC0LXQu9C10LwgwqtEZWJ1Z8K7INC4IMKrRWRnZSBDb21waWxhdGlvbsK7LCDRgtCw0LrQuNGFINC60LDQuiDQvtGB0L3QvtCy0LDRgtC10LvQuCBYZWRnZS5haSwg0Lgg0L7RgdC90L7QstCw0YLQtdC70Ywg0LLQtdCxIC3RgdCw0LnRgtC+0LIg0L7RgtC70LDQtNC60LggSGlnaCAtRW5kIChhZHZkYmcub3JnKS7QoNCw0LHQvtGC0Ysg0L/QtdGA0LXQstC+0LTQsCAo0L7QsdGJ0LjRgtC10LvRjNC90YvQuSkg0LLQutC70Y7Rh9Cw0Y7RgiDCq9Cg0L7QsdC+0YIgMjEgLdCz0L4g0LLQtdC60LDCuywgwqtPdXRsb29rwrssIMKr0JLRi9C00LDRjtGJ0LjQudGB0Y8mYW1wO21kYXNoOyZhbXA7TURBU0g7INGB0L7Qt9C00LDQvdC40LUgTWljcm9zb2Z0IE5UINC4INCx0YPQtNGD0YnQuNGFINGB0LzQtdGA0YLQtdC5IMK7LMKrINCf0YDQuNC90YbQuNC/INCw0L3QsNC70LjQt9CwINC00LDQvdC90YvRhSDCuyzCqyDQnNCw0YjQuNC90L3QvtC1INC+0LHRg9GH0LXQvdC40LUgwrsswqsg0JjRgdC60YPRgdGB0YLQstC10L3QvdGL0Lkg0LjQvdGC0LXQu9C70LXQutGCOiDRgdGC0YDRg9C60YLRg9GA0LAg0Lgg0YHRgtGA0LDRgtC10LPQuNGPINGB0LvQvtC20L3Ri9GFINC/0YDQvtCx0LvQtdC8IMK70Lgg0YIuINCULjxpbWcgY2xhc3M9ImRlc2NfYW5jaG9yIiBpZD0iZGVzYy1tb2R1bGUtNSIgc3JjPSJodHRwczovL2ltZy5hbGljZG4uY29tL2ltZ2V4dHJhL2k0LzEwMzc0Nzc0MjIvTzFDTjAxV2RtZXVLMjRoS0JsdXRSejdfISExMDM3NDc3NDIyLmpwZyI+PGJyPjxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWVlZWU7Zm9udC1zaXplOiAxNS4wcHg7Zm9udC13ZWlnaHQ6IGJvbGQ7aGVpZ2h0OiAzMC4wcHg7bGluZS1oZWlnaHQ6IDMwLjBweDsiPtCg0LXQutC+0LzQtdC90LTRg9C10LzQsNGPINGA0LXQutC+0LzQtdC90LTQsNGG0LjRjzwvZGl2Pjxicj7QrdC90YbQuNC60LvQvtC/0LXQtNC40Y8g0LIg0L7QsdC70LDRgdGC0Lgg0L7RgtC70LDQtNC60Lgg0L/RgNC+0LPRgNCw0LzQvNC90L7Qs9C+INC+0LHQtdGB0L/QtdGH0LXQvdC40Y88L3A+
Продавец:世纪慧泉图书音像专营店
Адрес:Провинция Фуцзянь
Рейтинг:

Всего отзывов:0
Положительных:0
Добавить в корзину
- Информация о товаре
- Фотографии




Параметры продукта








Введение
Эту книгу можно назвать отладкой программного обеспечения&Ldquo; Энциклопедия”.Автор отладки вокруг программного обеспечения&Ldquo; экология&Rdquo; методы.*1 Том в основном фокусируется на аппаратной технологии.Книга разделена на 4 главы.*“ введение&Rdquo;*Два“ ЦП и его отладки&Rdquo;Третий&Ldquo; GPU и его отладки&Rdquo; (глава 8-14), в графических процессорах пяти основных производителей Nvidia, AMD, Intel, ARM и воображения.Четвертый“ долг&Rdquo;Тесная комбинация теории этой книги не только охватывает соответствующие технические знания, но и обсуждает большое количество представителей и универсальных технических деталей.Эта книга подходит для всех читателей, занимающихся разработкой программного обеспечения. Преподаватели и студенты в соответствующих специалистах в колледжах и университетах учатся для справки.

Каталог
Первая статья!
Глава 1 Основы отладки программного обеспечения 3
1.1 Введение 3
1.1.1 Определение 3
1.1.2 Основной процесс 5
1.2 Основные функции 5
1.2.1 Сложность 6
1.2.2 Трудно оценить время завершения 7
1.2.3 Обширная корреляция 7
1.3 Краткая история 8
1.3.1 Одно шаг выполнение 8
1.3.2 Инструкция точки останова 10
1.3.3 Ссылка на филиал 11
1.4 Категория 12
1.4.1 Классификация системной среды целевой отладки 12
1.4.2 Классификация в соответствии с выполнением целевого кода 12
1.4.3 Классификация в соответствии с режимом выполнения целевого кода 13
1.4.4 Классификация в соответствии со стадией программного обеспечения 13
1.4.5 Классификация относительных положений тестового устройства и цели отладки 14
1.4.6.
1.4.7 Классификация путем отладки инструмента 15
1.5 Обзор технологии отладки 15
1.5.1 Точка останова 15
1.5.2 Однопроизводительное выполнение 16
1.5.3 Информация об отладке вывода 17
1.5.4 Журнал 17
1.5.5 отслеживание инцидентов 17
1.5.6 Файл роторного хранения 18
1.5.7.
1.5.8.
1.5.9. Соблюдайте и изменяйте данные памяти 19
1.5.10 Процесс управления и потока 19
1.6 Ошибка и отсутствие 误 19
1.6.1 Внутренняя причина и внешний вид 19
1.6.2 Кто ошибка 20
1.6.3 Жизненный цикл Бага 21
1.6.4 Программная ошибка. Кривая перемещения 21
1.7 Важность 23
1.7.1 Отношения между отладкой и кодированием 23
1.7.2 Взаимосвязь между отладкой и тестом 24
1.7.3 Связь между отладкой и обратной инженерией 24
1.7.4 Значение технологии отладки обучения 25
1.7.5 Технология дискуссий еще не получила внимания заслуживает 25
1.8 Резюме этой главы 26
Справочные материалы 26
*Два процессора и ее отладки
Глава 2 База процессора 29
2.1 Набор инструкций и инструкций 29
2.1.1 Основные функции 30
2.1.2 Метод сайта 31
2.1.3 Процесс выполнения инструкций 32
2.2 Intel Architecture Processor 33
2.2.1 80386 Процессор 34
2.2.2 80486 Процессор 34
2.2.3 Pentium Processor 35
2.2.4 P6 серии процессор 36
2.2.5 Pentium 4 Процессор 38
2.2.6 Core 2 серии процессор 38
2.2.7 Nehalem Micro -архитектура 39
2.2.8 Micro Architecture Sandy Bridge 39
2.2.9 Микро -архитектура Ivy Bridge 40
2.2.10 Haswell Micro -архитектура 40
2.2.11 Broadwell Micro -архитектура 41
2.2.12 Skylake Micro Architecture 41
2.2.13 Микро архитектура Kaby Lake 41
2.3 Режим работы процессора 42
2.4 Регистрация 44
2.4.1 GM Регистр данных 44
2.4.2 Регистр метки 45
2.4.3 Регистр MSR 46
2.4.4 Регистр управления 46
2.4.5 Другие регистры 48
2.4.6 64 -бит режима режима 49
2.5 Понять режим защиты 50
2.5.1 Механизм защиты между задачами 50
2.5.2 Защита в задаче 51
2.5.3 Уровень привилегии 52
2.5.4 Инструкция по привилегии 53
2.6 Механизм абзаца 54
2.6.1 Deschers 54
2.6.2 Описание Таблица 56
2.6.3 Выберите Zi Zi 56
2.6.4 Регистр раздела наблюдения 57
2.7 Страница механизм 59
2.7.1 32 -bit Classic Paging 60
2.7.2 Pae Paging 66
2.7.3 IA-32E Paging 68
2.7.4 Страница большой памяти 71
2.7.5 Соответствующие команды Windbg 72
2.8 Обзор системы ПК 73
2.9 Arm Architecture Base 75
2.9.1 Multi -Meary of Arm 75
2.9.2 Основная версия 76
2.9.3 Режим работы и статус 78
2.9.4 32 -бит -архитектура. Регистр 80
2.9.5 Ассоциационный процессор 82
2.9.6 Управление виртуальной памятью 83
2.9.7 Поддержка псевдо -секции 87
2.9.8 64 -бит -архитектура 88
2.10 Эта глава - резюме 90
Справочные материалы 90
Глава 3 Прерывание и ненормальное 91
3.1 Концепция и разница 91
3.1.1 прерывание 91
3.1.2 ODX 93
3.1.3 Сравнение 93
3.2 Различная классификация 93
3.2.1 Исключение класса ошибок 93
3.2.2 Аномалии ловушки 94
3.2.3 Стоп класс исключение 95
3.3 Анализ аномального примера 95
3.3.1 Список 95
3.3.2 Код ошибки 97
3.3.3 Пример 97
3.4 Анти -процесс прерывания/аномального 99
3.5 прерывание/аномальное лечение 100
3.5.1 Real Mode 100
3.5.2 Режим защиты 101
3.5.3 IA-32E Режим 109
3.6 Аномальный механизм в архитектуре ARM 110
3.7 Резюме этой главы 112
Ссылки 113
Глава 4 Точка останова и одно шаг выполнение 114
4.1 Программное обеспечение точка перерыва 114
4.1.1 int 3 114
4.1.2 Установите точку останова 115 в отладчике
4.1.3 Break -bore Hit 116
4.1.4 восстановить исполнение 118
4.1.5 Специальное назначение 118
4.1.6 API API 119.
4.1.7 Сокровища системы на INT 3 119
4.1.8. Соблюдайте инструкции Int 3, записанные тестовым устройством 121
4.1.9 Индукция и напоминание 122
4.2 Аппаратная точка перерыва 123
4.2.1 Обзор регистра отладки 123
4.2.2 Регистр адреса отладки 124
4.2.3 Регистр управления отладки 124
4.2.4 Directive Propectoint 127
4.2.5 Дебал аномалия 127
4.2.6 Регистр статуса отладки 128
4.2.7 Пример 129
4.2.8 Настройка метода аппаратной точки остановки 132
4.2.9 Индукция 134
4.3 Trap Smart 135
4.3.1 Одиночный логотип выполнения 135
4.3.2*Однопроизводительное выполнение языка уровня 136
4.3.3 логотип логотипа статуса задачи 138
4.3.4 Знаки исполнения 138 в соответствии с ветвью филиала 138
4.4 Анализ отладчика реального режима. 140
4.4.1 Debug.exe 140
4.4.2 8086 Монитор 142
4.4.3. Реализация ключей 143
4.5 Anty -Tune Пример 145
4.6 Точка перерыва архитектуры ARM поддерживает 147
4.6.1 Инструкции по точке перерыва 148
4.6.2 РЕГИСТРАЦИЯ ПЕРЕКЛЮЧЕНИЯ 149
4.6.3 Регистр мониторинга 153
4.6.4 ОДНОГО ТЕКЛИНГ 155
4.7 Резюме этой главы 156
Справочные материалы 157
Глава 5 Запись филиала и наблюдение за производительностью 158
5.1 Обзор наблюдения за филиалом 159
5.2 Используйте запись филиала Регистра 159
5.2.1 LBR 160
5.2.2 стек LBR 161
5.2.3 Пример 161
5.2.4 Приложение в операционной системе Windows 165
5.3 записей ветвей памяти 166
5.3.1 DS Зона 166
5.3.2 Включить механизм DS 168
5.3.3 Регистр управления отладки 168
5.4 DS Пример: CPUwhere 169
5.4.1 Драйвер 170
5.4.2 Интерфейс приложения 173
5.4.3 2.0 Версия 175
5.4.4 Предложения о ограничении и расширении 178
5.4.5 Драйвер BTS в ядре Linux 179
5.5 Строение производительности 180
5.5.1 Механизм мониторинга производительности процессора Pentium 181
5.5.2 Механизм мониторинга производительности процессора P6 182
5.5.3 P4. Строение производительности процессора 183
5.5.4 Механизм наблюдения за производительностью Frastructure 186
5.5.5 Механизм мониторинга производительности основного процессора микро -архитектуры 187
5.5.6 Ресурсы 188
5.6 Реальные инструкции по отслеживанию 188
5.6.1 Принцип работы 189
5.6.2 Rtit Packet 190
5.6.3 Поддержка Linux 191
5.7 Объекты надзора над архитектурой Arm Architecture 192
5.7.1 PMUV1 и PMUV2 192
5.7.2 PMUV3 194
5.7.3 Пример 194
5.7.4 Coresight 195
5.8 Эта глава - резюме 195
Справочные материалы 195
Глава 6 Архитектура инспекции машины 196
6.1 Механизм проверки машины Pentium процессора 196
6,2 MCA 198
6.2.1 Обзор 198
6.2.2 Глобальный реестр MCA 199
6.2.3 Регистр отчета об ошибках MCA 201
6.2.4.
6.2.5 Кодирование ошибок MCA 203
6.3 Напишите MCA Software 205
6.3.1 Основной алгоритм 205
6.3.2 Пример 207
6.3.3 Приложение в системе Windows 208
6.3.4 Применение в системе Linux 210
6.4 Сводка этой главы 212
Справочные материалы 212
Глава 7 JTAG DEBUG 213
7.1 Введение 213
7.1.1 ICE 213
7.1.2 JTAG 214
7.2 JTAG Принцип 215
7.2.1 Сканирование границ 215
7.2.2.
7.2.3 Tap Register 217
7.2.4 Tap Controller 217
7.2.5.
7.3 JTAG Application 219
7.3.1 JTAG DEBUG 220
7.3.2 Порт отладки 221
7.4 Поддержка JTAG 221 процессора IA
7.4.1 P6 реализация JTAG Processor's JTAG 221
7.4.2 Режим обнаружения 223
7.4.3 ИТП интерфейс 223
7.4.4 XDP -порт 225
7.4.5 отладчик ITP-XDP 226
7.4.6.
7.4.7 Типичное приложение 227
7.5 JTAG Arm Processore поддерживает 227
7.5.1 Интерфейс отладки ARM 228
7.5.2 Отладка порта 228
7.5.3 Порт доступа 229
7.5.4 Устройство отладки 229
7.5.5 Проверьте сокет 229
7.5.6 Аппаратный отладчик 231
7.5.7 DS-5 232
7.6 Эта глава - саммит 232
Справочные материалы 233
Глава III GPU и ее отладки
Глава 8 База графика 237
8.1 Краткая история ГПУ 237
8.1.1 Говоря с видеокарты 237
8.1.2 Аппаратное ускорение 239
8.1.3 Программируемое и обобщение 240
8.1.4 Три -колесная эволюция 242
8.2 Идентификация устройства 243
8.2.1“ режим кормления” 243
8.2.2 Копия памяти 243
8.2.3 Тестирование и сброс 243
8.2.4 Положительно с процессором 243
8.3 Программный интерфейс 244
8.3.1 Регистр устройств 244
8.3.2 пакетный командный буфер 245
8.3.3 Модель состояния 245
8.4 Модель драйвера GPU 247
8.4.1 WDDM 247
8.4.2 DRI и DRM 249
8.5 Технология программирования 250
8.5.1 Цвет 250
8.5.2 Brook и Cuda 251
8.5.3 OpenCl 252
8.6 Отладчики 252
8.6.1 Информация об отладке вывода 253
8.6.2 Выпуск точки останова 253
8.6.3 Другая точка останова 254
8.6.4 одноэтапное выполнение 254
8.6.5 Статус программы наблюдения 254
8.7 Эта глава - саммит 254
Справочные материалы 255
Глава 9 NVIDIA GPU и его отладки 256
9.1 Резюме 256
9.1.1 Набор микрохитектуры 256
9.1.2 Три линейки продуктов 256
9.1.3 Закрытие 257
9.2 Микро архитектура 257
9.2.1 G80 (Tesla 1.0 Micro Architecture) 257
9.2.2 GT200 (Micro Architecture Tesla 2.0) 259
9.2.3 GF100 (Микро архитектура Ферми) 260
9.2.4 GK110 (Cairple Micro Architecture) 261
9.2.5 GM107 (Микроиктория Моссвелла) 263
9.2.6 gp104 (микроаргитектора Паскара) 263
9.2.7 GV100 (Volt Micro -архитектура) 265
9.2.8 Продолжить улучшение 267
9.3 Набор оборудования для оборудования 268
9.3.1 SASS 269
9.3.2 Формат инструкции 270
9.3.3 Выполнение предикатных слов 270
9.3.4 Вычислительная мощность 271
9.3.5 Набор инструкций GT200 271
9.3.6 Набор инструкций GV100 274
9.4 Набор инструкций PTX 279
9.4.1 Сборка и столовая сборка 280
9.4.2 Статусное пространство 282
9.4.3 Виртуальный регистр 283
9.4.4 Тип данных 284
9.4.5 Формат инструкции 284
9.4.6 Встроенная сборка 285
9,5 CUDA 286
9.5.1 произошел из ручья 286
9.5.2 Расчет ядерного 286
9.5.3 Конфигурация выполнения 288
9.5.4.
9.5.5 Warp 291
9.5.6 Выражая параллель 292
9.6 Аномальная и ловушка 293
9.6.1 Инструкция ловушки 293
9.6.2 Суффикс ловушки 293
9.6.3 Лечение ловушки 293
9.7 Системный звонок 296
9.7.1 Vprintf 296
9.7.2 Malloc и Free 297
9.7.3 __assertfail 298
9.8 Сломанная директива 299
9.8.1 Сломанные инструкции PTX 299
9.8.2 Сломанные инструкции для оборудования 300
9.9 Функция NSIGH
9.9.1. Точка остановки исходного кода 301
9.9.2 Функция точка останова 301
9.9.3 В зависимости от группы линии и потоков, чтобы установить условие для точки останова 302
9.10 Точка останова данных 304
9.10.1 Метод настройки 304
9.10.2 Хит 304
9.10.3 Предел количества 306
9.10.4 Установите время 306
9.11 Символ отладки 306
9.11.1 Опция компиляции 306
9.11.2 ELF Carrier 306
9.11.3 карлики 307
9.12 CUDA GDB 307
9.12.1 Общая команда 307
9.12.2 Расширение 308
9.12.3 Limited 308
9.13 Cuda Debugger API 308
9.13.1 Top File 309
9.13.2 Мероприятие отладки 309
9.13.3 Принцип работы 310
9.14 Резюме этой главы 312
Справочные материалы 312
Глава 10 AMD GPU и его отладки 314
10.1 РАЗРЕЖНАЯ КРАТКАЯ ИСТОРИЯ 314
10.1.1 Три этапа разработки 314
10.1.2 Две формы продукта 315
10.2 Terascale Micro Architecture 315
10.2.1 Общая структура 315
10.2.2 SIMD Core 317
10.2.3 Vliw 317
10.2.4 Четыре типа инструкций 318
10.3 GCN Micro Architecture 318
10.3.1 Логическая структура 319
10.3.2 Cu и волновой массив 319
10.3.3 Структура уровня памяти 321
10.3.4 Рабочая группа 321
10.3.5 Многократный двигатель выполнения 323
10.4 Набор инструкций GCN 323
10.4.1 7 типов инструкций 323
10.4.2 Формат инструкции 324
10.4.3 больше не vliw Инструкция 324
10.4.4 Руководство по руководству 324
10.5 модель программирования 325
10.5.1 Мантия 325
10.5.2 HSA 326
10.5.3 ROCM 326
10.5.4 Stream SDK и приложение SDK 327
10.5.5 Драйвер системы Linux 327
10.6 Аномальная и ловушка 327
10.6.1 9 Аномальный 328
10.6.2 Включить 328
10.6.3 Регистр статума ловушки 328
10.6.4 Базовый адрес процессора ловушки 329
10.6.5 Процесс лечения 329
10.7 Интерфейс отладки для управления массивами волн 330
10.7.1 5 Операции 330
10.7.2 Укажите цель 330
10.7.3 Отправить интерфейс 331
10.7.4 Предел 332
10.8 Мониторинг адреса 332
10.8.1 4 Режим мониторинга 332
10.8.2 Предел количества 333
10.8.3 Отчетность, чтобы поразить 333
10.8.4 Интерфейс регистра 333
10.8.5 Интерфейс пространства пользователя 333
10.9 Single -Step Debug Support 333
10.9.1 Однопроизводительный режим отладки 334
10.9.2 Метод управления 334
10.10
10.10.1 два знака состояния 335
10.10.2 4 Инструкции 335
10.11 Код точка останова 335
10.11.1 Инструкция по ловушке 336
10.11.2 Использование в GPU Debug SDK 336
10.12 Модель отладки GPU и комплект разработки 337
10.12.1 Композиция 337
10.12.2 Модель отладки в процессе 337
10.12.3 Интерфейс отладки для события 339
10.13 ROCM-GDB 340
10.13.1 исходный код 340
10.13.2 Установка и компиляция 340
10.13.3 Общие команды 340
10.14 Резюме этой главы 341
Справочные материалы 342
Глава 11 Intel GPU и его отладки 343
11.1 Краткая история 343
11.1.1 I740 343
11.1.2 Интегрированная видеокарта 344
11.1.3 G965 345
11.1.4 Лараби 345
11.1.5 графический процессор 346
11.1.6 Третий раунд тяжелой работы 347
11.1.7 Публичный документ 347
11.2 Gen Micro Architecture 348
11.2.1 Общая архитектура 349
11.2.2 планировка области 350
11.2.3 Sub -Film Mayout 351
11.2.4 ЕС 352
11.2.5 Классическая архитектура Рисунок 353
11.3 Интерфейс регистра 354
11.3.1 Два категория регистр 354
11.3.2 Регистр функции отображения 355
11.4 Командный поток и буфер кольца 357
11.4.1 Команда 357
11.4.2 Кольцевой буфер 358
11.4.3.
11.5 Список контекста и выполнения логического кольца 360
11.5.1 LRC 360
11.5.2 Ссылки на выполнение отправьте порт 362
11.5.3. Понять процесс подачи и выполнения LRC 362
11.6 GUC и отправьте задание 365 через GUC
11.6.1 Загрузите прошивку и запустите GUC 365
11.6.2 Связь с MMIO 366
11.6.3 Механизм передачи команд на основе общей памяти 367
11.6.4 Отправить рабочую задачу 367
11.7 Media Film 368
11.7.1 G965 СМИ СБОРКА 368
11.7.2 MFX Engine 370
11.7.3 Модель состояния 370
11.7.4 Многочисленные методы расчета 371
11.8 Набор инструкций ЕС 372
11.8.1 Регистр 372
11.8.2 Регистр Блок 373
11.8.3 Грамматика инструкции 375
11.8.4 Vliw и уровень обучения Параллель 375
11.9 Управление памятью 377
11.9.1 GGTT 377
11.9.2 PPGTT 378
11.9.3 I915 и GMMLIB 379
11.10 ненормальная 379
11.10.1 Аномальный тип 379
11.10.2 Системный процесс 380
11.11 Поддержка точки останова 381
11.11.1 Бит контроля отладки 381
11.11.2 Точка сопоставления кода операции 381
11.11.3 IP -сопоставление Breakpoint 381
11.11.4 Начальная точка останова 382
11.12 Единственное шаг выполнение 382
11.13 GT Debugger 382
11.13.1 Архитектура 382
11.13.2 Мероприятие отладки 384
11.13.3 Управление символом 385
11.13.4 Основная функция 385
11.13.5 Менее 385
11.14 Резюме этой главы 386
Справочные материалы 386
Глава 12 Mali GPU и его отладки 387
12.1 Обзор 387
12.1.1 происходило из Норвегии 387
12.1.2 включить ARM 387
12.1.3 Три -генерационная микро архитектура 388
12.1.4 Доставка*Несколько графических процессоров 388
12.1.5 Poly Team 389
12.1.6 Закрытый технический документ 389
12.1.7 Дизайн блока 389
12.2 Midgard Micro Architecture 389
12.2.1 Логическая структура 390
12.2.2 Ядро 390 водных линий Санчай
12.2.3 Набор инструкций Vliw 392
12.3 Bifrost Micro Architecture 393
12.3.1 Логическая структура 393
12.3.2 Ядро исполнения 394
12.3.3 Скалярные инструкции и Warp 395
12.4 Mali Graphics Debugger 395
12.4.1 Двойной режим 395
12.4.2 Децентрализация кадра -ориентированной 396
12.5 Gator 396
12.5.1 Модуль ядра Gator (Gator.Ko) 397
12.5.2 файловая система Gator (GatorFS) 397
12.5.3. Служба фоновой службы Gator (Gatord) 398
12.5.4 Поддержка Gator 399 в KBASE Drive 399
12.5.5 Значение 399
12,6 Кбаза -управляющие средства отладки 399
12.6.1 Отчет версии GPU 399
12.6.2 Вариант компиляции 400
12.6.3 Виртуальные файлы в рамках отладки 401
12.6.4 Виртуальные файлы под SYSFS 401
12.6.5 ОБСЛУЖИВАНИЯ ОБСЛУЖИВАНИЯ Основан на FTRACE 401
12.6.6 Установки отслеживания кбазы 402
12.7 Другие средства отладки 403
12.7.1 Caiman 403
12.7.2 Devlib 404
12.7.3 Mali Offline Compiler 404
12.8 Отсутствие отладки 405
12.8.1 GPGPU отладчик 405
12.8.2 Отладка графического процессора SDK 406
12.8.3 Anti -Foreign Exchange Editor 406
12.8.4 Документ ISA 406
12.9 Эта глава - саммит 406
Справочные материалы 406
Глава 13 PowerVR GPU и его отладки 407
13.1 Резюме 407
13.1.1 Разработать краткую историю 407
13.1.2 Две линейки продуктов 409
13.1.3 Задержанный рендеринг на основе блока 409
13.1.4 Intel GMA 409
13.1.5 открытость 410
13.2 Rogue Micro Architecture 410
13.2.1 Общая структура 410
13.2.2 USC 411
13.2.3 Alu Filial Wir 412
13.3 Сбор справочной инструкции 413
13.3.1 Регистр 414
13.3.2 Группа инструкций 414
13.3.3 Модификатор Директивы 415
13.3.4 Тип инструкции 415
13.3.5 Скалярная инструкция 416
13.3.6 Параллельный режим 416
13.4 Программная модель и Micro Core 417
13.4.1 Программная модель 417
13.4.2 Основная функция Micro -Core 417
13.4.3 Преимущество 418
13.4.4 Существуют 418
13.5 Поддержка точки останова 418
13.5.1 Инструкции BPTE 419
13.5.2. Точка остановки данных 419
13.5.3 ISP -точка останова 420
13.6 Оффлайн компиляция и контрклигация 420
13.6.1 Оффлайн компиляция 420
13.6.2 Обратная сборка 421
13,7 PVR-GDB 421
13.7.1 Отладка трека 421
13.7.2 Зарегистратор доступа 422
13.7.3 Другие функции 422
13.7.4 Глобальная точка останова и ограничения 422
13.8 Резюме этой главы 423
Справочные материалы 423
Глава 14 Резюме GPU 424
14.1 Сравнение 424
14.1.1 открытость 424
14.1.2 Цепочка инструментов 425
14.1.3*Отправить документ 425
14.2 Основные противоречия 425
14.2.1 DEDICIATY и Universal 426
14.2.2 Аппаратное и слабое программное обеспечение 426
14.3 Тенденции разработки 426
14.3.1 От блока фиксированной функции до общего двигателя выполнения 426
14.3.2 От векторных инструкций до скалярной инструкции 427
14.3.3 от инструкций параллельно с нитью параллель 427
14.4 Другой GPU 427
14.4.1 Адрено 428
14.4.2 VideoCore 428
14.4.3 Рисунок Core GPU 429
14.4.4 TI TMS34010 429
14.5 Учебные материалы и инструменты 430
14.5.1 Документ 430
14.5.2 исходный код 430
14.5.3 Инструменты 431
14.6 Резюме этой главы 432
Справочные материалы 432
Четвертая часть отладки
Глава 15 Обзор переписки 435
15.1 Введение 435
15.2 Oight и Boobuki 436
15.2.1 История NT 3.1 436
15.2.2 Сохранение 438
15.3 Основные принципы 439
15.3.1*Принцип короткого расстояния 439
15.3.2*Принцип небольшого диапазона 439
15.3.3 Сразу же прекратить принципы 440
15.3.4 Принцип отслеживания 441
15.3.5 Контролируемые принципы 442
15.3.6 Повторяемый принцип 442
15.3.7 Принципы наблюдения 442
15.3.8 Принципы легкого распознавания 443
15.3.9 Принципы эффекта низкого Хайзенберга 443
15.4 Бескомпромиссный код 444
15.4.1 Функция аномального распределения системы 444
15.4.2 Системная функция с функциями отладки 444
15.4.3 Функция чувствительной к отладчику 445
15.4.4 Процедуры анти -переключения и отладки 445
15.4.5 Чувствительный код 446
15.4.6 Измерения ответа 446
15.5 Обнаруженный пример анализа 446
15.5.1 Здоровый осмотр и BSOD 447
15.5.2 Controlt 447
15.5.3 Файл общественного символа 448
15.5.4 WER 448
15.5.5 ETW и log 448
15.5.6 Счетчик производительности 449
15.5.7.
15.5.8.
15.6 Связь между безопасностью, бизнес -секретами и производительностью 449
15.6.1 Регулируемая тестируемость и безопасность 450
15.6.2 Регулируемая тестируемость и бизнес -секрет 450
15.6.3 Приличная и производительность 450
15.7 Резюме этой главы 450
Справочные материалы 451
Глава 16 Реализация испытательной проверки 452
16.1 Роль и обязанности 452
16.1.1 Архитектор 452
16.1.2 Программист 453
16.1.3 Тестер 453
16.1.4 Инженер по технической поддержке и технической поддержке продукта 454
16.1.5 Менеджер 454
16.2 Разрубаемая архитектура 455
16.2.1 log 455
16.2.2 Информация об отладке вывода 456
16.2.3 РЕЗУМЕНТ 457
16.2.4 Базовый класс 458
16.2.5 Модель отладки 458
16.3 Реализация отслеживания через ретроспективу стека 459
16.3.1 Основные принципы пенсионера 459
16.3.2 Используйте библиотеку функций DBGHELP обратно в ретроспективный стек 461
16.3.3 Используйте функцию RTL, чтобы получить стек 465
16.4 Слушаемость данных 466
16.4.1 Метод на основе точки останова данных 466
16.4.2 Используйте технологию упаковки объектов для отслеживания изменений данных 471
16.5 Реализация 472
16.5.1 Статусное запрос 472
16.5.2 WMI 473
16.5.3. Подсчет производительности 475
16.5.4 Стержни 478
16.5.5.
16.5.6 Log 480
16.6 Self -Check и Automatic Report 480
16.6.1 BIST 480
16.6.2 программное обеспечение Self -Inspection 481
16.6.3 Автоматический отчет 482
16.7 Резюме этой главы 482
Ссылка 483

об авторе
Чжан Йинкуи, известный технический эксперт по дому.Он окончил факультет информации о информационной и контрольной инженерии Университета Шанхая Джиатонг и в течение 13 лет занимался разработкой программного обеспечения. Операционная система Core и Driver, особенно для отладки программного обеспечения.Он является основателем «Debug» и «Edge Compilation», таких как основатели Xedge.ai, и основатель веб -сайтов отладки High -End (advdbg.org).Работы перевода (общительный) включают «Робот 21 -го века», «Outlook», «Выдающийся—— создание Microsoft NT и будущих смертей »,« Принцип анализа данных »,« Машинное обучение »,« Искусственный интеллект: структура и стратегия сложных проблем »и т. Д.

Рекомендуемая рекомендация
Энциклопедия в области отладки программного обеспечения
