function Tabs(buttonsCon, panelsCon)
{
	this.buttonsCon = buttonsCon;
	this.panelsCon = panelsCon;

	this.tabs = {};
	this.selectedKey = "";

	// 创建 panel 0, 节目
	var key = "_0";
	var tabBtn = this.createTabButton("", key, "节目列表");

	this.buttonsCon.appendChild(tabBtn);
	this.tabs[key] = {"key": key, "id":0, "resDir":"", "type":0, "url":"" , "panel":$("channelWnd"), "button":tabBtn};
	this.selectedKey = key;
	tabBtn.put_selected(true);
}

Tabs.prototype.add = function(id, resDir, type, url, tooltip)
{
	if (id <= 0 || type <= 0 || type > 2 || this.existing(id))
	{
		return false;
	}
	if(resDir[resDir.length-1]!='\\')resDir+="\\";
	var key = "_" + id.toString();
	var tabBtn = this.createTabButton(resDir, key, tooltip);
	this.buttonsCon.appendChild(tabBtn);

	this.tabs[key] = {"key": key, "id":id, "resDir":resDir, "type":type, "url": url, "panel":null, "button":tabBtn};

	if (!window.loading)
	{
		this.layoutButtons();
	}

	return true;
}

Tabs.prototype.remove = function(id)
{
	
}

Tabs.prototype._findTab = function(id)
{
	for (var key in this.tabs)
	{
		if (this.tabs[key].id == id)
		{
			return this.tabs[key];
		}
	}
	return {"id":-1};
}

Tabs.prototype.showballoon = function(id, title, content ,icon, option, time)
{
	for (var key in this.tabs)
	{
		if (this.tabs[key].button && this.tabs[key].id==id)
		{
			this.tabs[key].button.showballoon(title,content,icon,option,time,this.buttonsCon.left,27 +  this.buttonsCon.top);
		}
	}
}
Tabs.prototype.onchangeskin = function ()
{
	for (var key in this.tabs)
	{
		if (this.tabs[key].button && this.tabs[key].id!=0)
		{
			this.tabs[key].button.onchangeskin();
		}
	}
}
Tabs.prototype.existing = function(id)
{
	for (var key in this.tabs)
	{
		if (this.tabs[key].id == id)
		{
			return true;
		}
	}
	return false;
}

Tabs.prototype.createTabButton = function(resDir, key, tooltip)
{
	var tabBtn = document.createElement("<subwindow passThrough=\"false\" backgroundImage=\"1.png\">");
	if (!tabBtn)
	{
		return null;
	}

	var ppFrame=Components.GetObject2("@pplive.com/PPLStat;1");
	if(ppFrame)
	{
		var id = key.substr(1);
		ppFrame.AddTab(tooltip, id);
	}

	tabBtn.tabRel = {"key": key, "resDir": resDir, "image":[resDir + "1.png", resDir + "2.png"]};
	tabBtn.onchangeskin = function ()
		{
			var skinMgr = Components.GetObject2("@pplive.com/skinmgr;1");
			if (skinMgr)
			{
				var skinid =  skinMgr.activeSkin.id;
				this.tabRel.image[0] = resDir + skinid + "\\1.png";
				this.tabRel.image[1] = resDir + skinid + "\\2.png";
				if (this.selected)
				{
					this.backgroundImage = this.tabRel.image[1];
				}
				else
				{
					this.backgroundImage = this.tabRel.image[0];
				}
			}
		}
	tabBtn.selected = false;
	tabBtn.visible = true;
	tabBtn.backgroundImage = resDir + "1.png";
	tabBtn.setAttribute("tooltip", tooltip);
	tabBtn.put_selected = function(selected)
		{
			if (this.selected == selected) { return ;}
			this.selected = selected;
			if (this.selected)
			{
				this.backgroundImage = this.tabRel.image[1];
			}
			else
			{
				this.backgroundImage = this.tabRel.image[0];
			}
		}
	tabBtn.onmouseover = function()
		{
			if (this.selected)
			{
				return;
			}
			this.backgroundImage = this.tabRel.image[1];
		};
	tabBtn.onmouseout = function()
		{
			if (this.selected)
			{
				return;
			}
			this.backgroundImage = this.tabRel.image[0];
		};
	tabBtn.onclick = function(){window.tabs.buttonClick(this, this.tabRel.key);};
	tabBtn.balloon = 0;
	tabBtn.showballoon = function(title,content,icon,option,time,x,y)
	{
		var uiMainWindow = Components.GetObject2("@pplive.com/ui/mainwindow;1");
		var BalloonTip = Components.GetObject2("BalloonTip");
		if(uiMainWindow && BalloonTip)
		{
			this.balloon = BalloonTip.ShowBalloonTipEx(title, content,x + this.left + this.width/2,y + this.top + this.height/2,icon,option,uiMainWindow.hwnd,"",time);
		}
	}
	tabBtn.laoutBalloon = function(x,y)
	{
		var BalloonTip = Components.GetObject2("BalloonTip");
		if(BalloonTip && this.balloon)
		{
			var ret;
			BalloonTip.BalloonControl(this.balloon,0x0501,x + this.left + this.width/2,y + this.top + this.height/2,ret);
		}
	}
	return tabBtn;
}

Tabs.prototype.createTabPanel = function(type, url)
{
	if (type == 1) // webbrowser
	{
		return document.createElement("<widget contractId=\"@pplive.com/WebBrowser;1\" visible=\"false\">");
	}
	else if (type == 2) // contractId
	{
		return document.createElement("<widget contractId=\"" + url + "\" visible=\"false\">");
	}
	return null;
}

Tabs.prototype.layoutButtons = function()
{
	var width = this.buttonsCon.width;
	var height = this.buttonsCon.height;

	var offset = 6;
	for (var key in this.tabs)
	{
		if (this.tabs[key].button)
		{
			this.tabs[key].button.moveSizeTo(2, offset, 35, 35);
			offset += 41; // 35 + 6(间距);

			this.tabs[key].button.laoutBalloon(this.buttonsCon.left,27 + this.buttonsCon.top);
		}
	}
}

Tabs.prototype.movePanel = function(left, top, width, height)
{
	var panel = null;
	if (this.selectedKey != "")
	{
		panel = this.tabs[this.selectedKey].panel; 
	}

	if (!panel)
	{
		return;
	}

	panel.moveSizeTo(left, top, width, height);
}

Tabs.prototype.showPanel = function(show)
{
	var panel = null;
	if (this.selectedKey != "")
	{
		panel = this.tabs[this.selectedKey].panel; 
	}

	if (!panel)
	{
		return;
	}

	panel.visible = show;
}

Tabs.prototype.panelVisible = function()
{
	var panel = null;
	if (this.selectedKey != "")
	{
		panel = this.tabs[this.selectedKey].panel; 
	}

	if (!panel)
	{
		return false;
	}

	return panel.visible;
}

Tabs.prototype.buttonClick = function(object, key)
{
/*
	if (!(key in this.tabs))
	{
		return;
	}
*/
	if (!window.channelIsVisible())
	{
		window.showChannel(true);
	}
	
	this._put_selectedId(key);

	var ppFrame=Components.GetObject2("@pplive.com/PPLStat;1");
	if(ppFrame)
	{
		var id = key.substr(1);
		ppFrame.AddTabClickCount(id);
	}
}

Tabs.prototype.put_selectedId = function(id)
{
	var key = "_" + id.toString();
	this._put_selectedId(key);
}

Tabs.prototype._put_selectedId = function(key)
{
/*
	if (!(key in this.tabs))
	{
		return;
	}
*/
	if (this.selectedKey == key)
	{
		return;
	}

	var oldPanel = null;
	var oldButton = null;
	if (this.selectedKey != "")
	{
		oldPanel = this.tabs[this.selectedKey].panel; 
		oldButton = this.tabs[this.selectedKey].button; 
	}
	var tab = this.tabs[key];
	// 首先创建 panel
	if (tab.panel == null)
	{
		var panel = this.createTabPanel(tab.type, tab.url);
		if (!panel)
		{
			return;
		}
		this.panelsCon.appendChild(panel);
		tab.panel = panel;
		if (tab.type == 1)
		{
//			tab.panel.BackupURL = "data\\local\\page2.html";
//			tab.panel.url = tab.url;
			tab.panel.SetUrl(tab.url, "data\\local\\page2.html");
			panel.Set("tab", tab);
		}
	}

	// 选中的 panel 移到正确的位置
	if (oldPanel != null)
	{
		tab.panel.moveSizeTo(oldPanel.left, oldPanel.top, oldPanel.width, oldPanel.height);
	}
	else
	{
	//	this.layoutPanels();
	}

	// 显示现在的，隐藏以前的
	tab.panel.visible = true;
	if (oldPanel)
	{
		oldPanel.visible = false;
	}

	if (oldButton)
	{
		oldButton.put_selected(false);
	}
	tab.button.put_selected(true);
	this.selectedKey = key;
}
// SIG // Begin signature block
// SIG // MIIVVgYJKoZIhvcNAQcCoIIVRzCCFUMCAQExCzAJBgUr
// SIG // DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
// SIG // gjcCAR4wJAIBAQQQEODJBs441BGiowAQS9NQkAIBAAIB
// SIG // AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFH8GXz4EkbIb
// SIG // /YXnSIEVAxolK9OXoIIRWzCCA3owggJioAMCAQICEDgl
// SIG // 1/r4Ya+e9JDnJrXWWtUwDQYJKoZIhvcNAQEFBQAwUzEL
// SIG // MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJ
// SIG // bmMuMSswKQYDVQQDEyJWZXJpU2lnbiBUaW1lIFN0YW1w
// SIG // aW5nIFNlcnZpY2VzIENBMB4XDTA3MDYxNTAwMDAwMFoX
// SIG // DTEyMDYxNDIzNTk1OVowXDELMAkGA1UEBhMCVVMxFzAV
// SIG // BgNVBAoTDlZlcmlTaWduLCBJbmMuMTQwMgYDVQQDEytW
// SIG // ZXJpU2lnbiBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIFNp
// SIG // Z25lciAtIEcyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
// SIG // iQKBgQDEtfJSFbyIhmApFkpbL0uRa4eR8zVUWDXq0TZe
// SIG // Yk1SUTRxwntmHYnI3SrEagr2N9mYdJH2kq6wtXaW8alK
// SIG // Y0VHLmsLkk5LK4zuWEqL1AfkGiz4gqpY2c1C8y3Add6N
// SIG // q8eOHZpsTAiVHt7b72fhcsJJwp5gPOHivhajY3hpFHut
// SIG // LQIDAQABo4HEMIHBMDQGCCsGAQUFBwEBBCgwJjAkBggr
// SIG // BgEFBQcwAYYYaHR0cDovL29jc3AudmVyaXNpZ24uY29t
// SIG // MAwGA1UdEwEB/wQCMAAwMwYDVR0fBCwwKjAooCagJIYi
// SIG // aHR0cDovL2NybC52ZXJpc2lnbi5jb20vdHNzLWNhLmNy
// SIG // bDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8B
// SIG // Af8EBAMCBsAwHgYDVR0RBBcwFaQTMBExDzANBgNVBAMT
// SIG // BlRTQTEtMjANBgkqhkiG9w0BAQUFAAOCAQEAUMVLyCSA
// SIG // 3+QNJMLeGrGhAqGmgi0MgxWBNwqCDiywWhdhtdgF/ojb
// SIG // 8ZGRs1YaQKbrkr44ObB1NnQ6mE/kN7qZicqVQh2wuceg
// SIG // jVfg+tVkBEI1TgHRM6IXyE2qJ8fy4YZMAjhNg3jG/FPg
// SIG // 6+AGh92klp5eDJjipb6/goXDYOHfrSjYx6VLZNrHG1u9
// SIG // rDkI1TgioTOLL4qa67wHIT9EQQkHtWUcJLxI00SA66HP
// SIG // yQK0FM9UxxajgFz5eT5dcn2IF54sQ6LKU859PfYqOrhP
// SIG // lAClbQqDXfleU/QYs1cPcMP79a2VoA4X3sQWgGDJDytu
// SIG // hgTx6/R4J9EFxe40W165STLyMzCCA8QwggMtoAMCAQIC
// SIG // EEe/GZXfjVJGQ/fbbUgNMaQwDQYJKoZIhvcNAQEFBQAw
// SIG // gYsxCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJu
// SIG // IENhcGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMQ8wDQYD
// SIG // VQQKEwZUaGF3dGUxHTAbBgNVBAsTFFRoYXd0ZSBDZXJ0
// SIG // aWZpY2F0aW9uMR8wHQYDVQQDExZUaGF3dGUgVGltZXN0
// SIG // YW1waW5nIENBMB4XDTAzMTIwNDAwMDAwMFoXDTEzMTIw
// SIG // MzIzNTk1OVowUzELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
// SIG // DlZlcmlTaWduLCBJbmMuMSswKQYDVQQDEyJWZXJpU2ln
// SIG // biBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIENBMIIBIjAN
// SIG // BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqcqypMzN
// SIG // IK8KfYmsh3XwtE7x38EPv2dhvaNkHNq7+cozq4QwiVh+
// SIG // jNtr3TaeD7/R7Hjyd6Z+bzy/k68Numj0bJTKvVItq0g9
// SIG // 9bbVXV8bAp/6L2sepPejmqYayALhf0xS4w5g7EAcfrkN
// SIG // 3j/HtN+HvV96ajEuA5mBE6hHIM4xcw1XLc14NDOVEpkS
// SIG // ud5oL6rm48KKjCrDiyGHZr2DWFdvdb88qiaHXcoQFTyf
// SIG // hOpUwQpuxP7FSt25BxGXInzbPifRHnjsnzHJ8eYiGdvE
// SIG // s0dDmhpfoB6Q5F717nzxfatiAY/1TQve0CJWqJXNroh2
// SIG // ru66DfPkTdmg+2igrhQ7s4fBuwIDAQABo4HbMIHYMDQG
// SIG // CCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDov
// SIG // L29jc3AudmVyaXNpZ24uY29tMBIGA1UdEwEB/wQIMAYB
// SIG // Af8CAQAwQQYDVR0fBDowODA2oDSgMoYwaHR0cDovL2Ny
// SIG // bC52ZXJpc2lnbi5jb20vVGhhd3RlVGltZXN0YW1waW5n
// SIG // Q0EuY3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMIMA4GA1Ud
// SIG // DwEB/wQEAwIBBjAkBgNVHREEHTAbpBkwFzEVMBMGA1UE
// SIG // AxMMVFNBMjA0OC0xLTUzMA0GCSqGSIb3DQEBBQUAA4GB
// SIG // AEpr+epYwkQcMYl5mSuWv4KsAdYcTM2wilhu3wgpo17I
// SIG // ypMT5wRSDe9HJy8AOLDkyZNOmtQiYhX3PzchT3AxgPGL
// SIG // OIez6OiXAP7PVZZOJNKpJ056rrdhQfMqzufJ2V7duyuF
// SIG // PrWdtdnhV/++tMV+9c8MnvCX/ivTO1IbGzgn9z9KMIIE
// SIG // /DCCBGWgAwIBAgIQZVIm4bIuGOFZDymFrCLnXDANBgkq
// SIG // hkiG9w0BAQUFADBfMQswCQYDVQQGEwJVUzEXMBUGA1UE
// SIG // ChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNz
// SIG // IDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBB
// SIG // dXRob3JpdHkwHhcNMDkwNTIxMDAwMDAwWhcNMTkwNTIw
// SIG // MjM1OTU5WjCBtjELMAkGA1UEBhMCVVMxFzAVBgNVBAoT
// SIG // DlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln
// SIG // biBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBv
// SIG // ZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29t
// SIG // L3JwYSAoYykwOTEwMC4GA1UEAxMnVmVyaVNpZ24gQ2xh
// SIG // c3MgMyBDb2RlIFNpZ25pbmcgMjAwOS0yIENBMIIBIjAN
// SIG // BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvmcdtGCq
// SIG // EElvVhd8Zslehg3V8ayncYOOi4n4iASJFQa6LYQhleTR
// SIG // nFBM+9IivdrysjU7Ho/DCfv8Ey5av4l8PTslHvbzWHuc
// SIG // 9AG1xgq4gM6+J3RhZydNauXsgWFYeaPgFxASFSew4U00
// SIG // fytHIES53mYkZorNT7ofxTjIVJDhcvYZZnVquUlozzh5
// SIG // DaowqNssYEie16oUAamD1ziRMDkTlgM6fEBUtq3gLxuD
// SIG // 3KgRUj4Cs9cr/SG2p1yjDwupphBQDjQuTafOyV4l1Iy8
// SIG // 8258KbwBXfwxh1rVjIVnWIgZoL818OoroyHnkPaD5ajt
// SIG // YHhee2CD/VcLXUENY1Rg1kMh7wIDAQABo4IB2zCCAdcw
// SIG // EgYDVR0TAQH/BAgwBgEB/wIBADBwBgNVHSAEaTBnMGUG
// SIG // C2CGSAGG+EUBBxcDMFYwKAYIKwYBBQUHAgEWHGh0dHBz
// SIG // Oi8vd3d3LnZlcmlzaWduLmNvbS9jcHMwKgYIKwYBBQUH
// SIG // AgIwHhocaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3Jw
// SIG // YTAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBf
// SIG // oV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAHBgUrDgMC
// SIG // GgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDov
// SIG // L2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYD
// SIG // VR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMDMDQGCCsG
// SIG // AQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0cDovL29j
// SIG // c3AudmVyaXNpZ24uY29tMDEGA1UdHwQqMCgwJqAkoCKG
// SIG // IGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3Js
// SIG // MCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFDbGFzczND
// SIG // QTIwNDgtMS01NTAdBgNVHQ4EFgQUl9BrqCZwyKE/lB8I
// SIG // LcQ1m6ShHvIwDQYJKoZIhvcNAQEFBQADgYEAiwPA3ZTY
// SIG // QaJhabAVqHjHMMaQPH5C9yS25INzFwR/BBCcoeL6gS/r
// SIG // wMpE53LgULZVECCDbpaS5JpRarQ3MdylLeuMAMcdT+dN
// SIG // MrqF+E6++mdVZfBqvnrKZDgaEBB4RXYx84Z6Aw9gwrNd
// SIG // nfaLZnaCG1nhg+W9SaU4VuXeQXcOWA8wggURMIID+aAD
// SIG // AgECAhBtUn9NfWwaK6fvgdUMiddlMA0GCSqGSIb3DQEB
// SIG // BQUAMIG2MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVy
// SIG // aVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy
// SIG // dXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVz
// SIG // ZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBh
// SIG // IChjKTA5MTAwLgYDVQQDEydWZXJpU2lnbiBDbGFzcyAz
// SIG // IENvZGUgU2lnbmluZyAyMDA5LTIgQ0EwHhcNMDkxMTE5
// SIG // MDAwMDAwWhcNMTIxMTE4MjM1OTU5WjCBzjELMAkGA1UE
// SIG // BhMCQ04xETAPBgNVBAgTCFNoYW5naGFpMREwDwYDVQQH
// SIG // EwhTaGFuZ2hhaTEbMBkGA1UEChQSUFBMaXZlIENvcnBv
// SIG // cmF0aW9uMT4wPAYDVQQLEzVEaWdpdGFsIElEIENsYXNz
// SIG // IDMgLSBNaWNyb3NvZnQgU29mdHdhcmUgVmFsaWRhdGlv
// SIG // biB2MjEfMB0GA1UECxQWUHJvZHVjdCBQbGFubmluZyBE
// SIG // ZXB0LjEbMBkGA1UEAxQSUFBMaXZlIENvcnBvcmF0aW9u
// SIG // MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDY7Kff
// SIG // TNpvjGy6zGck0u1/S+B50zuxRF0HrIlPfcpSGmsQyfzm
// SIG // b2eigTz0KuN+palZSdpx0amg9gD+ANFSNo9uqfk1PLeP
// SIG // V7187RIh4taAGUnYROqkPr9kVAsU/SepgjYLVAU46+Bu
// SIG // FtDmCaenpb6rqE+0Y6AV50Rc3iBA0rHvawIDAQABo4IB
// SIG // gzCCAX8wCQYDVR0TBAIwADAOBgNVHQ8BAf8EBAMCB4Aw
// SIG // RAYDVR0fBD0wOzA5oDegNYYzaHR0cDovL2NzYzMtMjAw
// SIG // OS0yLWNybC52ZXJpc2lnbi5jb20vQ1NDMy0yMDA5LTIu
// SIG // Y3JsMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHFwMwKjAo
// SIG // BggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24u
// SIG // Y29tL3JwYTATBgNVHSUEDDAKBggrBgEFBQcDAzB1Bggr
// SIG // BgEFBQcBAQRpMGcwJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
// SIG // Y3NwLnZlcmlzaWduLmNvbTA/BggrBgEFBQcwAoYzaHR0
// SIG // cDovL2NzYzMtMjAwOS0yLWFpYS52ZXJpc2lnbi5jb20v
// SIG // Q1NDMy0yMDA5LTIuY2VyMB8GA1UdIwQYMBaAFJfQa6gm
// SIG // cMihP5QfCC3ENZukoR7yMBEGCWCGSAGG+EIBAQQEAwIE
// SIG // EDAWBgorBgEEAYI3AgEbBAgwBgEBAAEB/zANBgkqhkiG
// SIG // 9w0BAQUFAAOCAQEAEHyS6zHfeAr7VXV0+4exGGIaodyt
// SIG // snOwewImElZdtDXV0P9r4B6gp1Ej1ZT8Ddco099Xc7NE
// SIG // e7gyfzCQh27Uq6DSVQP0P9zBI2VgwWaOLweplMHFqKrD
// SIG // q0DXzRAsXiYCu15ugktqWBRVhsOCrNFPcYAiEHhMeRJY
// SIG // 1p5pA+TyXSs2X5AyL1zfpaqrDfJKmhspWabkMbjyLWG9
// SIG // jkQv7K4rviPg//9QfzZoYG3cJBMDqLC3KsSFXs6GNzXo
// SIG // 7EDYhzgJFjpalJUV0n7TL+aPFgRY6/lG3UYPZtsRtGBI
// SIG // W2frpPZy0ww0vcTMzXYL+2TGyka40qCWF3XUw14+znhe
// SIG // yMNA5TGCA2cwggNjAgEBMIHLMIG2MQswCQYDVQQGEwJV
// SIG // UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNV
// SIG // BAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNV
// SIG // BAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52
// SIG // ZXJpc2lnbi5jb20vcnBhIChjKTA5MTAwLgYDVQQDEydW
// SIG // ZXJpU2lnbiBDbGFzcyAzIENvZGUgU2lnbmluZyAyMDA5
// SIG // LTIgQ0ECEG1Sf019bBorp++B1QyJ12UwCQYFKw4DAhoF
// SIG // AKBwMBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJ
// SIG // AzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAM
// SIG // BgorBgEEAYI3AgEVMCMGCSqGSIb3DQEJBDEWBBSGK+iH
// SIG // VYxvsaAVYNoQv1ikAP3q7jANBgkqhkiG9w0BAQEFAASB
// SIG // gHC04iHc6c2A9yLVE+99tBKR8lSyiBxc4cuuGghHKW8b
// SIG // 01XHnGm+zxExxZK7u07CvYQ4e/rqzsdillqwTsR5xu5t
// SIG // odpruae//5pePkck6HSXyIjDKmbplbo0dPXCsDP4/aJM
// SIG // sH6Kl2aOVh6MBCzc7aQYJViumT2SMjPLiLd+VpP1oYIB
// SIG // fzCCAXsGCSqGSIb3DQEJBjGCAWwwggFoAgEBMGcwUzEL
// SIG // MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJ
// SIG // bmMuMSswKQYDVQQDEyJWZXJpU2lnbiBUaW1lIFN0YW1w
// SIG // aW5nIFNlcnZpY2VzIENBAhA4Jdf6+GGvnvSQ5ya11lrV
// SIG // MAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI
// SIG // hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMTAxMTMxNjQz
// SIG // MDJaMCMGCSqGSIb3DQEJBDEWBBR3BLrffQ5PwX3hGNwS
// SIG // tAl/f1y3lTANBgkqhkiG9w0BAQEFAASBgK9mq+vRH19S
// SIG // qto+zxUcWdDmShO06+k++ayKxGn8QNrrQUjznzJ1IByj
// SIG // F44J/QdhR23VGoBVcE8ePYw+hddAU7mvHPfns1meTGiT
// SIG // AKKqny+i7qaA3B2qDv7v7cvYMuMkklpO0vRJJmwxBm1m
// SIG // BNugHEHG3qjhQRfoabbeFkNIb9c8
// SIG // End signature block
