เชฒเซเชเชจเซ เชธเชพเชฎเชเซเชฐเซ เชฎเชพเชฐเชพ เชชเชฐเชฅเซ เชฒเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ
เชเซเชจ เชเชจเชฐเซเชเชฐ เชฌเชจเชพเชตเชตเซเช
เช
เชเชพเชเชจเชพ เชฎเชพเช
เชเชเซ เชเชชเชฃเซ เชเชตเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฌเชจเชพเชตเซเชถเซเช เชเซ เชธเชพเชเชจเซเชก เชเชพเชฐเซเชก เชชเชฐ เชเซเชจ เชธเชฟเชเซเชจเชฒ เชเชจเชฐเซเช เชเชฐเซ เชถเชเซ. เช เชธเชฎเชธเซเชฏเชพเชจเซ เชเชเซเชฒเชตเชพ เชฎเชพเชเซ เช เชฎเชพเชฐเซ เชจเซเชเซ เชฆเชฐเซเชถเชพเชตเซเชฒ เชธเชพเชเชจเซเชก เชเชจเชฐเซเชเชฐ เชธเชฐเซเชเชฟเชเชฎเชพเช เชซเชฟเชฒเซเชเชฐเซเชธเชจเซ เชเซเชกเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ:
เชเชชเชฃเซ เชกเชพเชฏเชพเชเซเชฐเชพเชฎเชจเซ เชกเชพเชฌเซเชฅเซ เชเชฎเชฃเซ เชตเชพเชเชเซเช เชเซเช, เช เชคเซ เชฆเชฟเชถเชพเชฎเชพเช เชเซ เชเซเชฎเชพเช เชเชชเชฃเซ เชกเซเชเชพ เชชเซเชฐเชตเชพเชน เชเชเชณ เชตเชงเซ เชเซ. เชคเซเชฐ เชชเชฃ เช เชคเชฐเชซ เชเชถเชพเชฐเซ เชเชฐเซ เชเซ. เชฒเชเชฌเชเซเชฐเชธ เชซเชฟเชฒเซเชเชฐเซเชธ เชธเซเชเชตเซ เชเซ เชเซ เชกเซเชเชพเชจเชพ เชฌเซเชฒเซเชเซเชธเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎ เชเชเชเชชเซเช เชเชฐเซ เชเซ. เชฒเชเชฌเชเซเชฐเชธเชจเซ เช เชเชฆเชฐ, เชคเซเชจเซ เชญเซเชฎเชฟเชเชพ เชธเซเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ เช เชจเซ เชซเชฟเชฒเซเชเชฐเชจเซ เชชเซเชฐเชเชพเชฐ เชซเชเซเชค เชจเซเชเซ เชฎเซเชเชพ เช เชเซเชทเชฐเซเชฎเชพเช เชธเซเชเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชฒเชเชฌเชเซเชฐเชธเชจเซ เชเซเชกเชคเชพ เชคเซเชฐเซ เช เชกเซเชเชพ เชเชคเชพเชฐ เชเซ เชเซเชจเชพ เชฆเซเชตเชพเชฐเชพ เชกเซเชเชพเชจเชพ เชฌเซเชฒเซเชเซเชธเชจเซ เชซเชฟเชฒเซเชเชฐเชฅเซ เชซเชฟเชฒเซเชเชฐ เชธเซเชงเซ เชชเชนเซเชเชเชพเชกเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชซเชฟเชฒเซเชเชฐเชฎเชพเช เชเชฃเชพ เชเชจเชชเซเช เช เชจเซ เชเชเชเชชเซเช เชนเซเช เชถเชเซ เชเซ.
เชคเซ เชฌเชงเซเช เชเชกเชฟเชฏเชพเชณเชจเชพ เชธเซเชคเซเชฐเซเชคเชฅเซ เชถเชฐเซ เชฅเชพเชฏ เชเซ, เชเซ เชเซเชฎเซเชชเซ เชธเซเช เชเชฐเซ เชเซ เชเซ เชเซเชจเชพ เชชเชฐ เชซเชฟเชฒเซเชเชฐเชฎเชพเช เชกเซเชเชพเชจเซ เชเชฃเชคเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชคเซเชจเชพ เชเชกเชฟเชฏเชพเชณ เชเชเซเชฐ เชฎเซเชเชฌ, เชฆเชฐเซเช เชซเชฟเชฒเซเชเชฐ เชคเซเชจเชพ เชเชจเชชเซเช เชชเชฐ เชนเซเชฏ เชคเซเชตเชพ เชคเชฎเชพเชฎ เชกเซเชเชพ เชฌเซเชฒเซเชเซเชธเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ. เช เชจเซ เชชเชฐเชฟเชฃเชพเชฎ เชธเชพเชฅเซเชจเชพ เชฌเซเชฒเซเชเซเชธเชจเซ เชเชคเชพเชฐเชฎเชพเช เชฎเซเชเซ เชเซ. เชชเซเชฐเชฅเชฎ, เชเชกเชฟเชฏเชพเชณเชจเชพ เชธเซเชคเซเชฐเซเชคเชจเซ เชธเซเชฅเซ เชจเชเซเชเชจเซเช เชซเชฟเชฒเซเชเชฐ เชเชฃเชคเชฐเซเช เชเชฐเซ เชเซ, เชชเชเซ เชคเซเชจเชพ เชเชเชเชชเซเช เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒเชพ เชซเชฟเชฒเซเชเชฐเซเชธ (เชคเซเชฏเชพเช เชเชฃเชพ เชเชเชเชชเซเช เชนเซเช เชถเชเซ เชเซ), เชตเชเซเชฐเซ. เชธเชพเชเชเชณเชฎเชพเช เชเซเชฒเซเชฒเซเช เชซเชฟเชฒเซเชเชฐ เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชชเซเชฐเซเชฃ เชเชฐเซ เชชเชเซ, เชจเชตเซ เชเชกเชฟเชฏเชพเชณ เชเชตเซ เชคเซเชฏเชพเช เชธเซเชงเซ เช เชฎเชฒ เช เชเชเซ เชเซ. เชฌเซเชเซเชธ, เชฎเซเชณเชญเซเชค เชฐเซเชคเซ, 10 เชฎเชฟเชฒเซเชธเซเชเชจเซเชกเชจเชพ เช เชเชคเชฐเชพเชฒเชจเซ เช เชจเซเชธเชฐเซ.
เชเชพเชฒเซ เชเชชเชฃเชพ เชกเชพเชฏเชพเชเซเชฐเชพเชฎ เชชเชฐ เชชเชพเชเชพ เชซเชฐเซเช. เชเชกเชฟเชฏเชพเชณ เชเชเซเชฐ เชฎเซเชจ เชธเซเชคเซเชฐเซเชคเชจเชพ เชเชจเชชเซเช เชชเชฐ เชเชตเซ เชเซ; เช เชเช เชซเชฟเชฒเซเชเชฐ เชเซ, เชเซ เชฆเชฐเซเช เชเชกเชฟเชฏเชพเชณ เชเชเซเชฐ เชฎเชพเชเซ เชคเซเชจเชพ เชเชเชเชชเซเช เชชเชฐ เชถเซเชจเซเชฏ เชงเชฐเชพเชตเชคเชพ เชกเซเชเชพเชจเชพ เชฌเซเชฒเซเชเชจเซ เชเชจเชฐเซเช เชเชฐเชตเชพเชฎเชพเช เชตเซเชฏเชธเซเชค เชเซ. เชเซ เชเชชเชฃเซ เช เชฌเซเชฒเซเชเชจเซ เชงเซเชตเชจเชฟ เชจเชฎเซเชจเชพเชเชจเชพ เชฌเซเชฒเซเช เชคเชฐเซเชเซ เชฎเชพเชจเซเช, เชคเซ เช เชฎเซเชจ เชธเชฟเชตเชพเชฏ เชฌเซเชเซเช เชเชเช เชจเชฅเซ. เชชเซเชฐเชฅเชฎ เชจเชเชฐเชฎเชพเช, เชฎเซเชจ เชธเชพเชฅเซ เชกเซเชเชพ เชฌเซเชฒเซเชเซเชธ เชเชจเชฐเซเช เชเชฐเชตเชพเชจเซเช เชตเชฟเชเชฟเชคเซเชฐ เชฒเชพเชเซ เชเซ - เชเซเชตเชเซ, เชคเซ เชธเชพเชเชญเชณเซ เชถเชเชพเชคเซเช เชจเชฅเซ, เชชเชฐเชเชคเซ เช เชฌเซเชฒเซเชเซเชธ เชธเชพเชเชจเซเชก เชธเชฟเชเซเชจเชฒ เชเชจเชฐเซเชเชฐเชจเชพ เชธเชเชเชพเชฒเชจ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชเซ. เชเชจเชฐเซเชเชฐ เช เชฌเซเชฒเซเชเชจเซ เชเชชเชฏเซเช เชเชพเชเชณเชจเซ เชเซเชฐเซ เชถเซเชเชจเซ เชเซเชฎ เชเชฐเซ เชเซ, เชคเซเชฎเชพเช เช เชตเชพเชเชจเชพ เชจเชฎเซเชจเชพเช เชฐเซเชเซเชฐเซเชก เชเชฐเซ เชเซ. เชคเซเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชธเซเชฅเชฟเชคเชฟเชฎเชพเช, เชเชจเชฐเซเชเชฐ เชฌเชเชง เชเซ เช เชจเซ เชซเชเซเชค เชเชจเชชเซเช เชฌเซเชฒเซเชเซเชธเชจเซ เชเชเชเชชเซเชเชฎเชพเช เชซเซเชฐเชตเชฐเซเชก เชเชฐเซ เชเซ. เชเชฎ, เชฎเซเชจเชจเชพ เชฌเซเชฒเซเชเซเชธ เชธเชฎเชเซเชฐ เชธเชฐเซเชเชฟเชเชฎเชพเชเชฅเซ เชกเชพเชฌเซเชฅเซ เชเชฎเชฃเซ เช เชชเชฐเชฟเชตเชฐเซเชคเชฟเชค เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ, เชเซ เชธเชพเชเชจเซเชก เชเชพเชฐเซเชกเชฎเชพเช เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ. เชเซ เชเซเชชเชเชพเชช เชคเซเชจเชพ เชเชจเชชเซเช เชธเชพเชฅเซ เชเซเชกเชพเชฏเซเชฒ เชเชคเชพเชฐเชฎเชพเชเชฅเซ เชฌเซเชฒเซเชเซเชธ เชฒเซ เชเซ.
เชชเชฐเชเชคเซ เชเซ เชเชจเชฐเซเชเชฐเชจเซ เชงเซเชตเชจเชฟ เชตเชเชพเชกเชตเชพเชจเซ เชเชฆเซเชถ เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชคเซ เชฌเชงเซเช เช เชฌเชฆเชฒเชพเช เชเชพเชฏ เชเซ, เชคเซ เชงเซเชตเชจเชฟเชจเชพ เชจเชฎเซเชจเชพเช เชฌเชจเชพเชตเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ เช เชจเซ เชคเซเชจเซ เชเชจเชชเซเช เชฌเซเชฒเซเชเซเชธเชฎเชพเช เชจเชฎเซเชจเชพเช เชธเชพเชฅเซ เชฌเชฆเชฒเซ เชฆเซ เชเซ เช เชจเซ เชฌเชฆเชฒเชพเชฏเซเชฒเชพ เชฌเซเชฒเซเชเซเชธเชจเซ เชเชเชเชชเซเช เชชเชฐ เชฎเซเชเซ เชเซ. เชธเชพเชเชจเซเชก เชเชพเชฐเซเชก เช เชตเชพเช เชตเชเชพเชกเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ. เชจเซเชเซ เชเช เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเซ เชเซ เชเชชเชฐ เชตเชฐเซเชฃเชตเซเชฒ เชเชพเชฐเซเชฏ เชฏเซเชเชจเชพเชจเซ เช เชฎเชฒ เชเชฐเซ เชเซ:
/* ะคะฐะนะป mstest2.c */
#include <mediastreamer2/msfilter.h>
#include <mediastreamer2/msticker.h>
#include <mediastreamer2/dtmfgen.h>
#include <mediastreamer2/mssndcard.h>
int main()
{
ms_init();
/* ะกะพะทะดะฐะตะผ ัะบะทะตะผะฟะปััั ัะธะปัััะพะฒ. */
MSFilter *voidsource = ms_filter_new(MS_VOID_SOURCE_ID);
MSFilter *dtmfgen = ms_filter_new(MS_DTMF_GEN_ID);
MSSndCard *card_playback = ms_snd_card_manager_get_default_card(ms_snd_card_manager_get());
MSFilter *snd_card_write = ms_snd_card_create_writer(card_playback);
/* ะกะพะทะดะฐะตะผ ัะธะบะตั. */
MSTicker *ticker = ms_ticker_new();
/* ะกะพะตะดะธะฝัะตะผ ัะธะปัััั ะฒ ัะตะฟะพัะบั. */
ms_filter_link(voidsource, 0, dtmfgen, 0);
ms_filter_link(dtmfgen, 0, snd_card_write, 0);
/* ะะพะดะบะปััะฐะตะผ ะธััะพัะฝะธะบ ัะฐะบัะพะฒ. */
ms_ticker_attach(ticker, voidsource);
/* ะะบะปััะฐะตะผ ะทะฒัะบะพะฒะพะน ะณะตะฝะตัะฐัะพั. */
char key='1';
ms_filter_call_method(dtmfgen, MS_DTMF_GEN_PLAY, (void*)&key);
/* ะะฐะตะผ, ะฒัะตะผั, ััะพะฑั ะฒัะต ะฑะปะพะบะธ ะดะฐะฝะฝัั
ะฑัะปะธ ะฟะพะปััะตะฝั ะทะฒัะบะพะฒะพะน ะบะฐััะพะน.*/
ms_sleep(2);
}
เชฎเซเชกเชฟเชฏเชพ เชธเซเชเซเชฐเซเชฎเชฐ เชถเชฐเซ เชเชฐเซเชฏเชพ เชชเชเซ, เชคเซเชฐเชฃ เชซเชฟเชฒเซเชเชฐเซเชธ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ: voidsource, dtmfgen, snd_card_write. เชเชกเชฟเชฏเชพเชณเชจเซ เชธเซเชคเซเชฐเซเชค เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชชเชเซ เชคเชฎเชพเชฐเซ เช เชฎเชพเชฐเชพ เชธเชฐเซเชเชฟเช เช เชจเซเชธเชพเชฐ เชซเชฟเชฒเซเชเชฐเซเชธเชจเซ เชเชจเซเชเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เช เชจเซ เชเชกเชฟเชฏเชพเชณเชจเซ เชธเซเชฐเซเชค เชเซเชฒเซเชฒเซ เชเซเชกเชพเชฏเซเชฒ เชนเซเชตเซ เชเซเชเช, เชเชพเชฐเชฃ เชเซ เช เชชเชเซ เชธเชฐเซเชเชฟเช เชคเชฐเชค เช เชเชพเชฐเซเชฏ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเชถเซ. เชเซ เชคเชฎเซ เชเชกเชฟเชฏเชพเชณเชจเชพ เชธเซเชคเซเชฐเซเชคเชจเซ เช เชชเซเชฐเซเชฃ เชธเชฐเซเชเชฟเช เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเซ เชเซ, เชคเซ เชเชตเซเช เชฌเชจเซ เชถเชเซ เชเซ เชเซ เชฎเซเชกเชฟเชฏเชพ เชธเซเชเซเชฐเซเชฎเชฐ เชเซเชฐเซเชถ เชฅเช เชถเชเซ เชเซ เชเซ เชคเซ เชฌเชงเชพ เชเชจเชชเซเชเซเชธ เช เชฅเชตเชพ เชฌเชงเชพ เชเชเชเชชเซเช "เชนเชตเชพเชฎเชพเช เช เชเชเซ" (เชเซเชกเชพเชฏเซเชฒ เชจเชฅเซ) เชธเชพเชฅเซ เชธเชพเชเชเชณเชฎเชพเช เชเชเชพเชฎเชพเช เชเชเซเช เชเช เชซเชฟเชฒเซเชเชฐ เชถเซเชงเซ เชเซ.
เชเชจเซเชเซเชเชฟเชเช เชซเชฟเชฒเซเชเชฐเซเชธ เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ
ms_filter_link(src, src_out, dst, dst_in)
เชเซเชฏเชพเช เชชเซเชฐเชฅเชฎ เชฆเชฒเซเชฒ เชธเซเชคเซเชฐเซเชค เชซเชฟเชฒเซเชเชฐ เชฎเชพเชเซ เชจเชฟเชฐเซเชฆเซเชถเช เชเซ, เชฌเซเชเซ เชฆเชฒเซเชฒ เชธเซเชคเซเชฐเซเชค เชเชเชเชชเซเช เชจเชเชฌเชฐ เชเซ (เชจเซเชเชง เชเชฐเซ เชเซ เชเชจเชชเซเชเซเชธ เช เชจเซ เชเชเชเชชเซเช เชถเซเชจเซเชฏเชฅเซ เชถเชฐเซ เชเชฐเซเชจเซ เชจเชเชฌเชฐ เชเชชเชตเชพเชฎเชพเช เชเชตเซ เชเซ). เชคเซเชฐเซเชเซ เชฆเชฒเซเชฒ เชฐเซเชธเซเชตเชฐ เชซเชฟเชฒเซเชเชฐ เชฎเชพเชเซ เชเช เชจเชฟเชฐเซเชฆเซเชถเช เชเซ, เชเซเชฅเซ เชฐเซเชธเซเชตเชฐ เชเชจเชชเซเช เชจเชเชฌเชฐ เชเซ.
เชฌเชงเชพ เชซเชฟเชฒเซเชเชฐเซเชธ เชเซเชกเชพเชฏเซเชฒเชพ เชเซ เช เชจเซ เชเชกเชฟเชฏเชพเชณเชจเซ เชธเซเชคเซเชฐเซเชค เชเซเชฒเซเชฒเซ เชเซเชกเชพเชฏเซเชฒ เชเซ (เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชเชชเชฃเซ เชคเซเชจเซ เชซเชเซเชค เชเซเชเชฐ เชเชนเซเชถเซเช). เชเซ เชชเชเซ เช เชฎเชพเชฐเซเช เชธเชพเชเชจเซเชก เชธเชฐเซเชเชฟเช เชเชพเชฎ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชเซ, เชชเชฐเชเชคเซ เชเชฎเซเชชเซเชฏเซเชเชฐ เชธเซเชชเซเชเชฐเชฎเชพเช เชนเชเซ เชธเซเชงเซ เชเชเช เชธเชพเชเชญเชณเซ เชถเชเชพเชคเซเช เชจเชฅเซ - เชงเซเชตเชจเชฟ เชเชจเชฐเซเชเชฐ เชฌเชเชง เชเซ เช เชจเซ เชฎเซเชจ เชธเชพเชฅเซ เชเชจเชชเซเช เชกเซเชเชพ เชฌเซเชฒเซเชเซเชธเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชฅเชพเชฏ เชเซ. เชเซเชจ เชเชจเชฐเซเช เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเชจเชฐเซเชเชฐ เชซเชฟเชฒเซเชเชฐ เชชเชฆเซเชงเชคเชฟ เชเชฒเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชฎเซ เชซเซเชจ เชชเชฐ "1" เชฌเชเชจ เชฆเชฌเชพเชตเชตเชพเชจเซ เช เชจเซเชฐเซเชช เชเซ-เชเซเชจ (DTMF) เชธเชฟเชเซเชจเชฒ เชเชจเชฐเซเช เชเชฐเซเชถเซเช. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช ms_filter_call_method() เช เชฎเซ MS_DTMF_GEN_PLAY เชชเชฆเซเชงเชคเชฟเชจเซ เชเซเชฒ เชเชฐเซเช เชเซเช, เชคเซเชจเซ เชเช เชฆเชฒเซเชฒ เชคเชฐเซเชเซ เชชเชพเชธ เชเชฐเซเชจเซ เชเซเชกเชจเชพ เชจเชฟเชฐเซเชฆเซเชถเช เชคเชฐเซเชเซ เชเซ เชชเซเชฒเซเชฌเซเช เชธเชฟเชเซเชจเชฒเชจเซ เช เชจเซเชฐเซเชช เชนเซเชตเชพ เชเซเชเช.
เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เชเชฎเซเชชเชพเชเชฒ เชเชฐเชตเชพเชจเซเช เชเซ:
$ gcc mstest2.c -o mstest2 `pkg-config mediastreamer --libs --cflags`
เช เชจเซ เชเชฒเชพเชตเซ:
$ ./mstest2
เชชเซเชฐเซเชเซเชฐเชพเชฎ เชถเชฐเซ เชเชฐเซเชฏเชพ เชชเชเซ, เชคเชฎเซ เชเชฎเซเชชเซเชฏเซเชเชฐ เชธเซเชชเซเชเชฐเชฎเชพเช เชฌเซ เชเซเชจ เชงเชฐเชพเชตเชคเชพ เชเซเชเชเชพ เชงเซเชตเชจเชฟ เชธเชเชเซเชค เชธเชพเชเชญเชณเชถเซ.
เช
เชฎเซ เช
เชฎเชพเชฐเซ เชชเซเชฐเชฅเชฎ เชธเชพเชเชจเซเชก เชธเชฐเซเชเชฟเช เชฌเชจเชพเชตเซ เช
เชจเซ เชฒเซเชจเซเช เชเชฐเซ. เช
เชฎเซ เชเซเชฏเซเช เชเซ เชซเชฟเชฒเซเชเชฐ เชเชจเซเชธเซเชเชจเซเชธ เชเซเชตเซ เชฐเซเชคเซ เชฌเชจเชพเชตเชตเซเช, เชคเซเชฎเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชเชจเซเชเซเช เชเชฐเชตเซเช เช
เชจเซ เชคเซเชฎเชจเซ เชชเชฆเซเชงเชคเชฟเช เชเซเชตเซ เชฐเซเชคเซ เชเซเชฒ เชเชฐเชตเซ. เชเซเชฏเชพเชฐเซ เช
เชฎเซ เช
เชฎเชพเชฐเซ เชชเซเชฐเชพเชฐเชเชญเชฟเช เชธเชซเชณเชคเชพเชฅเซ เชเซเชถ เชเซเช, เชคเซเชฏเชพเชฐเซ เชชเชฃ เช
เชฎเชพเชฐเซ เช เชนเชเซเชเชค เชชเชฐ เชงเซเชฏเชพเชจ เชเชชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เช
เชฎเชพเชฐเซ เชชเซเชฐเซเชเซเชฐเชพเชฎ เชฌเชนเชพเชฐ เชจเซเชเชณเชคเชพ เชชเชนเซเชฒเชพ เชซเชพเชณเชตเซเชฒ เชฎเซเชฎเชฐเซเชจเซ เชฎเซเชเซเชค เชเชฐเชคเซเช เชจเชฅเซ. เชเชเชพเชฎเซ เชฎเชพเช
เชธเซเชฐเซเชธ: www.habr.com