国产精品久久久久久久久久久久久久_国产肉体ⅹxxx137大胆_国产精品mv_国产日韩中文字幕_国产福利一区二区三区在线视频_中文字幕www_久草最新_日韩av第一页在线播放_青青草在线视频网站_少妇淫片aaaaa毛片叫床爽_成人精品在线视频_超碰97免费观看_毛片一级视频_他掀开裙子把舌头伸进去添视频_天堂一区二区三区在线_黑人日比视频_一区在线看_一区日本_亚洲中文字幕无码中文字_国产一级视频免费看

C#

c#+sql事務(wù)

.Net中的5種事務(wù)總結(jié).Net2010-01-2923:52:28閱讀164評論0字號:大中小訂閱在一個MIS系統(tǒng)中,沒有用事務(wù)那就絕對是有問題的,要么就只有一種情況:你的系統(tǒng)實在是太小了,業(yè)務(wù)業(yè)務(wù)邏輯有只要一步執(zhí)行就可以完成了。因此掌握事務(wù)處理的方法是很重要,進我的歸類在.net中大致有以下4種事務(wù)處理的方法。大家可以參考一下,根據(jù)實際選擇適當?shù)氖聞?wù)處理。1、SQL事務(wù)sql事務(wù)是使用SQLserver自身的事務(wù):在存儲過程中直接使用BeginTran

系統(tǒng) 2019-08-12 01:52:44 3269

C#

C#索引器

索引器概述索引器使得對象可按照與數(shù)組相似的方法進行索引。get訪問器返回值。set訪問器分配值。this關(guān)鍵字用于定義索引器。value關(guān)鍵字用于定義由set索引器分配的值。索引器不必根據(jù)整數(shù)值進行索引,由您決定如何定義特定的查找機制。索引器可被重載。索引器可以有多個形參,例如當訪問二維數(shù)組時。C#語言一個最令人感興趣的地方就是類的索引器(indexer)。簡單說來,所謂索引器就是一類特殊的屬性,通過它們你就可以像引用數(shù)組一樣引用自己的類。顯然,這一功能在

系統(tǒng) 2019-08-29 23:23:16 3264

C#

C# 使用攝像頭拍照 支持Win7 64位

原文:C#使用攝像頭拍照支持Win764位So,howdowecaptureanimagefromaWebCam?Onceyoudownloadthesourcecodethatisattachedtothearticleyoushouldhavethefollowingthreeprojects:Demo–simpleWindowsFormsprojectthatdemonstrateshowaWebCamisused.ItreferencesWebCa

系統(tǒng) 2019-08-12 01:33:20 3264

C#

用C#實現(xiàn)RSA加密的一個小例子

整個算法的流程是:接收方先同時生成公鑰和私鑰,再把公鑰傳遞給發(fā)送方,發(fā)送方收到公鑰后,用此公鑰將自己的明文加密,然后將加密后的密文傳遞給接收方,接收方用自己的私鑰解密得到明文.以下是演示這個過程的示例代碼:沒有永恒的事一切都在不斷重復我熱愛這個世界但絕不驕縱了它//待加密的明文stringoriginText="Hello";//公鑰stringpublicKey;System.Security.Cryptography.RSACryptoServiceP

系統(tǒng) 2019-08-29 23:10:00 3253

C#

C#客戶端綁定DataView和DataTable的幾個技巧

這幾個問題算不上高級技巧,但是的確還有很多人不知道,尤其是對DataView了解比較少,下面代碼演示了如何綁定數(shù)據(jù)到combobx和datagridview,另外還包括了如何在綁定時過濾重復,設(shè)置聯(lián)動,以及如何利用DataRelation求匯總表格。程序界面請讀者自己生成,一個form,兩個combobox,三個datagridview就可以了。參考界面如下程序代碼如下usingSystem;usingSystem.ComponentModel;using

系統(tǒng) 2019-08-29 23:52:50 3252

C#

分享一個改進版的仿MSN/QQ彈出窗口(C#)

在這篇文章(http://blog.csdn.net/downmoon/archive/2007/06/13/1649923.aspx)中,邀月曾經(jīng)介紹過使用cookie使用登錄后像MSN,QQ那樣的彈出窗口,今天在項目中再次使用時,對原控件進行了封裝,提供了幾個屬性:1、PopShowCycle:彈出周期。默認為OnceByReCreateCookie。OnceByReCreateCookie,OnceByCreateCookie,只在第一次彈出并使用C

系統(tǒng) 2019-08-29 23:53:34 3247

C#

C# 制作Windows服務(wù)安裝包

C#制作Windows服務(wù)安裝包這兩天公司要用C#寫一個windows服務(wù),做成安裝安裝包。制作的過程中遇到了一些問題,寫完之后總結(jié)一下。如果以后在用到的話可以可以參考一下,而且由于原來沒有做過,不知道這樣做是對是不對,請各位看官如果發(fā)現(xiàn)有不當之處請指教。開始的時候我的開發(fā)工具VS2012,需要用InstallShield,沒鬧明白,時間緊迫沒有搞,改用vs2010。首先創(chuàng)建一個windows服務(wù):添加安裝程序:設(shè)置服務(wù)的屬性:這里面簡單設(shè)置一下服務(wù)的屬性

系統(tǒng) 2019-08-12 01:33:54 3245

C#

sql server高效分頁控件及c#調(diào)用實例

第一、首先在sqlserver中創(chuàng)建一個存儲過程USE[BZY]GO/******對象:StoredProcedure[dbo].[up_ProcCustomPage2005_New]腳本日期:12/24/201311:17:03******/SETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGO--=============================================--Author:

系統(tǒng) 2019-08-12 01:53:43 3241

C#

C#速成

原文出處:http://www.codeguru.com/cs_syntax/CSharp.html原作者:AishaIkram在一些術(shù)語上我盡量做到與MSDN的中文資料所述術(shù)語保持一致使用環(huán)境:.NET,C#,WinXP,Win2000緒論C#是這樣的一種語言,具有C++的特點,象Java一樣的編程風格,并且象Basic一樣的快速開發(fā)模型。如果你已經(jīng)知道了C++,本文會在不到一個小時的時間內(nèi)讓你迅速掌握C#的語法。熟悉Java的括會更好,因為Java的程

系統(tǒng) 2019-08-29 23:14:07 3233

C#

使用C#創(chuàng)建webservice及三種調(diào)用方式

使用C#創(chuàng)建webservice及三種調(diào)用方式GB2312http://csharp.xdowns.com/trackback.php?id=299&encode=gb2312UTF-8http://csharp.xdowns.com/trackback.php?id=299&encode=utf-8微軟.NET戰(zhàn)略的一個比較重要的部分就是webservice,利用webservice我們可以創(chuàng)建真正有效的分布式應(yīng)用程序。下面,我們對webservice做

系統(tǒng) 2019-08-29 23:49:48 3229

C#

C#鏈接常見數(shù)據(jù)庫的方法

1.C#連接連接Access程序代碼:-------------------------------------------------------------------------------usingSystem.Data;usingSystem.Data.OleDb;......stringstrConnection="Provider=Microsoft.Jet.OleDb.4.0;";strConnection+=@"DataSource=C:

系統(tǒng) 2019-08-12 01:52:35 3225

C#

C#3.0入門系列(十)-之Join操作

本節(jié)講join操作。我們知道,T-sql中,有三種最基本的join,innerjoin,leftjoin,和rightjoin。而dlinq并不支持rightjoin。道理很簡單,rightjoin以right表為基礎(chǔ),left表中沒有對應(yīng)記錄的,將以null值填充。而dlinq以left表做為主表創(chuàng)建對象。如果一個對象為null,你如何獲取它的其他的屬性呢?在C#3.0入門系列(四)-之Select操作一文中,我們提到了queryexpression首先

系統(tǒng) 2019-08-12 01:52:45 3200

C#

C# 冒泡排序法示例代碼(包含泛型方法)

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacebleb_sort...{classProgram...{publicclassSwapObj...{publicstaticvoidswap(refTa,refTb)...{Tc;c=a;a=b;b=c;}}staticvoidMain(string[]args)...{//冒泡排序:int[]num=newi

系統(tǒng) 2019-08-29 23:33:23 3184

C#

使用C#調(diào)用存儲過程,用函數(shù)合理組織代碼,使程

雖然調(diào)用存儲過程并不難實現(xiàn),但是在程序中合理的組織代碼,能使得程序結(jié)構(gòu)更加的明晰,也更加易于維護。下面的示例將存儲過程的調(diào)用分為三部分:1、為調(diào)用存儲過程準備各種數(shù)據(jù):數(shù)據(jù)庫連接字符串、存儲過程參數(shù)2、為執(zhí)行命令準備參數(shù),使用1中的各種數(shù)據(jù),建立與數(shù)據(jù)庫的連接,為存儲過程的調(diào)用準備好參變量和設(shè)置變量3、執(zhí)行存儲過程,如查詢操作或更新操作示例代碼如下:usingSystem;usingSystem.Collections.Generic;usingSyste

系統(tǒng) 2019-08-12 01:53:43 3178

C#

C#中的值類型與引用類型-譯自《Essential C# 4

一、值類型除去string外,所有的預定義基礎(chǔ)類型都是值類型。值類型直接包含值。換句話說,該變量指向內(nèi)存中存儲(變量)值的同一地址。正因為如此,當一個不同的變量被分配了相同的值,原始變量的值的內(nèi)存副本改變到新的變量的地址。一個相同值類型的第二個變量不能指向內(nèi)存中的第一個變量相同的地址。因此,改變了第一個變量的值不會影響到第二個值。如下圖:如上圖,number1指向包含值42的內(nèi)存中的特殊地址,將number1分配給number2后,這兩個變量都包含值42。

系統(tǒng) 2019-08-29 23:42:01 3169

主站蜘蛛池模板: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |