﻿Type=Class
Version=5.8
ModulesStructureVersion=1
B4A=true
@EndOfDesignText@

Sub Class_Globals
	Private RIGHT_LEFT_CHAR As Int= 0x0001
	Private RIGHT_NOLEFT_CHAR_ALEF As Int=0x0006
	Private RIGHT_NOLEFT_CHAR As Int=0x0004
	Private RIGHT_LEFT_CHAR_LAM As Int=0x0003
	Private TANWEEN As Int=0x000C
	Private TASHKEEL As Int=0x000A
	Private TATWEEL_CHAR As Int= 0x0008
	Private NORIGHT_NOLEFT_CHAR As Int= 0x0007
	Private NOTUSED_CHAR As Int= 0x000F
	Private NOTARABIC_CHAR As Int= 0x0000

	Private RIGHT_LEFT_CHAR_MASK As Int= 0x0880
	Private RIGHT_NOLEFT_CHAR_MASK As Int= 0x0800
	Private LEFT_CHAR_MASK As Int= 0x0080
	Private allchar(179,6) As Int  
	allchar(0,0) = 0x0621 :	allchar(0,1) = 0x0007 :	allchar(0,2) = 0xFE80 :	allchar(0,3) = 0xFE80 :	allchar(0,4) = 0xFE80 :	allchar(0,5) = 0xFE80
	allchar(1,0) = 0x0622 :	allchar(1,1) = 0x0806 : allchar(1,2) = 0xFE81 :	allchar(1,3) = 0xFE82 :	allchar(1,4) = 0xFEF5 : allchar(1,5) = 0xFEF6
	allchar(2,0) = 0x0623 :	allchar(2,1) = 0x0806 :	allchar(2,2) = 0xFE83 : allchar(2,3) = 0xFE84 :	allchar(2,4) = 0xFEF7 :	allchar(2,5) = 0xFEF8
	allchar(3,0) = 0x0624 :	allchar(3,1) = 0x0804 :	allchar(3,2) = 0xFE85 :	allchar(3,3) = 0xFE86 :	allchar(3,4) = 0xFE86 :	allchar(3,5) = 0xFE86
 	allchar(4,0) = 0x0625 :	allchar(4,1) = 0x0806 :	allchar(4,2) = 0xFE87 :	allchar(4,3) = 0xFE88 :	allchar(4,4) = 0xFEF9 :	allchar(4,5) = 0xFEFA
	allchar(5,0) = 0x0626 :	allchar(5,1) = 0x0881 :	allchar(5,2) = 0xFE89 :	allchar(5,3) = 0xFE8A :	allchar(5,4) = 0xFE8B :	allchar(5,5) = 0xFE8C
 	allchar(6,0) = 0x0627 :	allchar(6,1) = 0x0806 :	allchar(6,2) = 0xFE8D :	allchar(6,3) = 0xFE8E :	allchar(6,4) = 0xFEFB :	allchar(6,5) = 0xFEFC
 	allchar(7,0) = 0x0628 :	allchar(7,1) = 0x0881 :	allchar(7,2) = 0xFE8F :	allchar(7,3) = 0xFE90 :	allchar(7,4) = 0xFE91 :	allchar(7,5) = 0xFE92
 	allchar(8,0) = 0x0629 :	allchar(8,1) = 0x0804 :	allchar(8,2) = 0xFE93 :	allchar(8,3) = 0xFE94 :	allchar(8,4) = 0xFE94 :	allchar(8,5) = 0xFE94
 	allchar(9,0) = 0x062A :	allchar(9,1) = 0x0881 :	allchar(9,2) = 0xFE95 :	allchar(9,3) = 0xFE96 :	allchar(9,4) = 0xFE97 :	allchar(9,5) = 0xFE98
 	allchar(10,0) = 0x062B :	allchar(10,1) = 0x0881 :	allchar(10,2) = 0xFE99 :	allchar(10,3) = 0xFE9A :	allchar(10,4) = 0xFE9B :	allchar(10,5) = 0xFE9C
 	allchar(11,0) = 0x062C :	allchar(11,1) = 0x0881 :	allchar(11,2) = 0xFE9D :	allchar(11,3) = 0xFE9E :	allchar(11,4) = 0xFE9F :	allchar(11,5) = 0xFEA0
 	allchar(12,0) = 0x062D :	allchar(12,1) = 0x0881 :	allchar(12,2) = 0xFEA1 :	allchar(12,3) = 0xFEA2 :	allchar(12,4) = 0xFEA3 :	allchar(12,5) = 0xFEA4
 	allchar(13,0) = 0x062E :	allchar(13,1) = 0x0881 :	allchar(13,2) = 0xFEA5 :	allchar(13,3) = 0xFEA6 :	allchar(13,4) = 0xFEA7 :	allchar(13,5) = 0xFEA8
 	allchar(14,0) = 0x062F :	allchar(14,1) = 0x0804 :	allchar(14,2) = 0xFEA9 :	allchar(14,3) = 0xFEAA :	allchar(14,4) = 0xFEAA :	allchar(14,5) = 0xFEAA
 	allchar(15,0) = 0x0630 :	allchar(15,1) = 0x0804 :	allchar(15,2) = 0xFEAB :	allchar(15,3) = 0xFEAC :	allchar(15,4) = 0xFEAC :	allchar(15,5) = 0xFEAC
 	allchar(16,0) = 0x0631 :	allchar(16,1) = 0x0804 :	allchar(16,2) = 0xFEAD :	allchar(16,3) = 0xFEAE :	allchar(16,4) = 0xFEAE :	allchar(16,5) = 0xFEAE
 	allchar(17,0) = 0x0632 :	allchar(17,1) = 0x0804 :	allchar(17,2) = 0xFEAF :	allchar(17,3) = 0xFEB0 :	allchar(17,4) = 0xFEB0 :	allchar(17,5) = 0xFEB0
 	allchar(18,0) = 0x0633 :	allchar(18,1) = 0x0881 :	allchar(18,2) = 0xFEB1 :	allchar(18,3) = 0xFEB2 :	allchar(18,4) = 0xFEB3 :	allchar(18,5) = 0xFEB4
 	allchar(19,0) = 0x0634 :	allchar(19,1) = 0x0881 :	allchar(19,2) = 0xFEB5 :	allchar(19,3) = 0xFEB6 :	allchar(19,4) = 0xFEB7 :	allchar(19,5) = 0xFEB8
 	allchar(20,0) = 0x0635 :	allchar(20,1) = 0x0881 :	allchar(20,2) = 0xFEB9 :	allchar(20,3) = 0xFEBA :	allchar(20,4) = 0xFEBB :	allchar(20,5) = 0xFEBC
 	allchar(21,0) = 0x0636 :	allchar(21,1) = 0x0881 :	allchar(21,2) = 0xFEBD :	allchar(21,3) = 0xFEBE :	allchar(21,4) = 0xFEBF :	allchar(21,5) = 0xFEC0
 	allchar(22,0) = 0x0637 :	allchar(22,1) = 0x0881 :	allchar(22,2) = 0xFEC1 :	allchar(22,3) = 0xFEC2 :	allchar(22,4) = 0xFEC3 :	allchar(22,5) = 0xFEC4
 	allchar(23,0) = 0x0638 :	allchar(23,1) = 0x0881 :	allchar(23,2) = 0xFEC5 :	allchar(23,3) = 0xFEC6 :	allchar(23,4) = 0xFEC7 :	allchar(23,5) = 0xFEC8
 	allchar(24,0) = 0x0639 :	allchar(24,1) = 0x0881 :	allchar(24,2) = 0xFEC9 :	allchar(24,3) = 0xFECA :	allchar(24,4) = 0xFECB :	allchar(24,5) = 0xFECC
 	allchar(25,0) = 0x063A :	allchar(25,1) = 0x0881 :	allchar(25,2) = 0xFECD :	allchar(25,3) = 0xFECE :	allchar(25,4) = 0xFECF :	allchar(25,5) = 0xFED0
 	allchar(26,0) = 0x063B :	allchar(26,1) = 0x000F :	allchar(26,2) = 0x0 :	allchar(26,3) = 0x0 :	allchar(26,4) = 0x0 :	allchar(26,5) = 0x0
 	allchar(27,0) = 0x063C :	allchar(27,1) = 0x000F :	allchar(27,2) = 0x0 :	allchar(27,3) = 0x0 :	allchar(27,4) = 0x0 :	allchar(27,5) = 0x0
 	allchar(28,0) = 0x063D :	allchar(28,1) = 0x000F :	allchar(28,2) = 0x0 :	allchar(28,3) = 0x0 :	allchar(28,4) = 0x0 :	allchar(28,5) = 0x0
 	allchar(29,0) = 0x063E :	allchar(29,1) = 0x000F :	allchar(29,2) = 0x0 :	allchar(29,3) = 0x0 :	allchar(29,4) = 0x0 :	allchar(29,5) = 0x0
 	allchar(30,0) = 0x063F :	allchar(30,1) = 0x000F :	allchar(30,2) = 0x0 :	allchar(30,3) = 0x0 :	allchar(30,4) = 0x0 :	allchar(30,5) = 0x0
 	allchar(31,0) = 0x0640 :	allchar(31,1) = 0x0888 :	allchar(31,2) = 0x0640 :	allchar(31,3) = 0x0640 :	allchar(31,4) = 0x0640 :	allchar(31,5) = 0x0640
 	allchar(32,0) = 0x0641 :	allchar(32,1) = 0x0881 :	allchar(32,2) = 0xFED1 :	allchar(32,3) = 0xFED2 :	allchar(32,4) = 0xFED3 :	allchar(32,5) = 0xFED4
 	allchar(33,0) = 0x0642 :	allchar(33,1) = 0x0881 :	allchar(33,2) = 0xFED5 :	allchar(33,3) = 0xFED6 :	allchar(33,4) = 0xFED7 :	allchar(33,5) = 0xFED8
 	allchar(34,0) = 0x0643 :	allchar(34,1) = 0x0881 :	allchar(34,2) = 0xFED9 :	allchar(34,3) = 0xFEDA :	allchar(34,4) = 0xFEDB :	allchar(34,5) = 0xFEDC
 	allchar(35,0) = 0x0644 :	allchar(35,1) = 0x0883 :	allchar(35,2) = 0xFEDD :	allchar(35,3) = 0xFEDE :	allchar(35,4) = 0xFEDF :	allchar(35,5) = 0xFEE0
 	allchar(36,0) = 0x0645 :	allchar(36,1) = 0x0881 :	allchar(36,2) = 0xFEE1 :	allchar(36,3) = 0xFEE2 :	allchar(36,4) = 0xFEE3 :	allchar(36,5) = 0xFEE4
 	allchar(37,0) = 0x0646 :	allchar(37,1) = 0x0881 :	allchar(37,2) = 0xFEE5 :	allchar(37,3) = 0xFEE6 :	allchar(37,4) = 0xFEE7 :	allchar(37,5) = 0xFEE8
 	allchar(38,0) = 0x0647 :	allchar(38,1) = 0x0881 :	allchar(38,2) = 0xFEE9 :	allchar(38,3) = 0xFEEA :	allchar(38,4) = 0xFEEB :	allchar(38,5) = 0xFEEC
 	allchar(39,0) = 0x0648 :	allchar(39,1) = 0x0804 :	allchar(39,2) = 0xFEED :	allchar(39,3) = 0xFEEE :	allchar(39,4) = 0xFEEE :	allchar(39,5) = 0xFEEE
 	allchar(40,0) = 0x0649 :	allchar(40,1) = 0x0804 :	allchar(40,2) = 0xFEEF :	allchar(40,3) = 0xFEF0 :	allchar(40,4) = 0xFEF0 :	allchar(40,5) = 0xFEF0
 	allchar(41,0) = 0x064A :	allchar(41,1) = 0x0881 :	allchar(41,2) = 0xFEF1 :	allchar(41,3) = 0xFEF2 :	allchar(41,4) = 0xFEF3 :	allchar(41,5) = 0xFEF4
 	allchar(42,0) = 0x064B :	allchar(42,1) = 0x000C :	allchar(42,2) = 0x064B :	allchar(42,3) = 0xFE70 :	allchar(42,4) = 0xFE71 :	allchar(42,5) = 0xFE70
 	allchar(43,0) = 0x064C :	allchar(43,1) = 0x000C :	allchar(43,2) = 0x064C :	allchar(43,3) = 0xFE72 :	allchar(43,4) = 0xFE72 :	allchar(43,5) = 0xFE72
 	allchar(44,0) = 0x064D :	allchar(44,1) = 0x000C :	allchar(44,2) = 0x064D :	allchar(44,3) = 0xFE74 :	allchar(44,4) = 0xFE74 :	allchar(44,5) = 0xFE74
 	allchar(45,0) = 0x064E :	allchar(45,1) = 0x000A :	allchar(45,2) = 0x064E :	allchar(45,3) = 0xFE76 :	allchar(45,4) = 0xFE77 :	allchar(45,5) = 0xFE76
 	allchar(46,0) = 0x064F :	allchar(46,1) = 0x000A :	allchar(46,2) = 0x064F :	allchar(46,3) = 0xFE78 :	allchar(46,4) = 0xFE79 :	allchar(46,5) = 0xFE78
 	allchar(47,0) = 0x0650 :	allchar(47,1) = 0x000A :	allchar(47,2) = 0x0650 :	allchar(47,3) = 0xFE7A :	allchar(47,4) = 0xFE7B :	allchar(47,5) = 0xFE7A
 	allchar(48,0) = 0x0651 :	allchar(48,1) = 0x000A :	allchar(48,2) = 0x0651 :	allchar(48,3) = 0xFE7C :	allchar(48,4) = 0xFE7D :	allchar(48,5) = 0xFE7C
 	allchar(49,0) = 0x0652 :	allchar(49,1) = 0x000A :	allchar(49,2) = 0x0652 :	allchar(49,3) = 0xFE7E :	allchar(49,4) = 0xFE7F :	allchar(49,5) = 0xFE7E
 	allchar(50,0) = 0x0653 :	allchar(50,1) = 0x000F :	allchar(50,2) = 0x0 :	allchar(50,3) = 0x0 :	allchar(50,4) = 0x0 :	allchar(50,5) = 0x0
 	allchar(51,0) = 0x0654 :	allchar(51,1) = 0x000F :	allchar(51,2) = 0x0 :	allchar(51,3) = 0x0 :	allchar(51,4) = 0x0 :	allchar(51,5) = 0x0
	allchar(52,0) = 0x0655 :	allchar(52,1) = 0x000F :	allchar(52,2) = 0x0 :	allchar(52,3) = 0x0 :	allchar(52,4) = 0x0 :	allchar(52,5) = 0x0
 	allchar(53,0) = 0x0656 :	allchar(53,1) = 0x000F :	allchar(53,2) = 0x0 :	allchar(53,3) = 0x0 :	allchar(53,4) = 0x0 :	allchar(53,5) = 0x0
 	allchar(54,0) = 0x0657 :	allchar(54,1) = 0x000F :	allchar(54,2) = 0x0 :	allchar(54,3) = 0x0 :	allchar(54,4) = 0x0 :	allchar(54,5) = 0x0
 	allchar(55,0) = 0x0658 :	allchar(55,1) = 0x000F :	allchar(55,2) = 0x0 :	allchar(55,3) = 0x0 :	allchar(55,4) = 0x0 :	allchar(55,5) = 0x0
 	allchar(56,0) = 0x0659 :	allchar(56,1) = 0x000F :	allchar(56,2) = 0x0 :	allchar(56,3) = 0x0 :	allchar(56,4) = 0x0 :	allchar(56,5) = 0x0
 	allchar(57,0) = 0x065A :	allchar(57,1) = 0x000F :	allchar(57,2) = 0x0 :	allchar(57,3) = 0x0 :	allchar(57,4) = 0x0 :	allchar(57,5) = 0x0
 	allchar(58,0) = 0x065B :	allchar(58,1) = 0x000F :	allchar(58,2) = 0x0 :	allchar(58,3) = 0x0 :	allchar(58,4) = 0x0 :	allchar(58,5) = 0x0
 	allchar(59,0) = 0x065C :	allchar(59,1) = 0x000F :	allchar(59,2) = 0x0 :	allchar(59,3) = 0x0 :	allchar(59,4) = 0x0 :	allchar(59,5) = 0x0
 	allchar(60,0) = 0x065D :	allchar(60,1) = 0x000F :	allchar(60,2) = 0x0 :	allchar(60,3) = 0x0 :	allchar(60,4) = 0x0 :	allchar(60,5) = 0x0
 	allchar(61,0) = 0x065E :	allchar(61,1) = 0x000F :	allchar(61,2) = 0x0 :	allchar(61,3) = 0x0 :	allchar(61,4) = 0x0 :	allchar(61,5) = 0x0
 	allchar(62,0) = 0x065F :	allchar(62,1) = 0x000F :	allchar(62,2) = 0x0 :	allchar(62,3) = 0x0 :	allchar(62,4) = 0x0 :	allchar(62,5) = 0x0
 	allchar(63,0) = 0x0660 :	allchar(63,1) = 0x000B :	allchar(63,2) = 0x0660 :	allchar(63,3) = 0x0660 :	allchar(63,4) = 0x0660 :	allchar(63,5) = 0x0660
 	allchar(64,0) = 0x0661 :	allchar(64,1) = 0x000B :	allchar(64,2) = 0x0661 :	allchar(64,3) = 0x0661 :	allchar(64,4) = 0x0661 :	allchar(64,5) = 0x0661
 	allchar(65,0) = 0x0662 :	allchar(65,1) = 0x000B :	allchar(65,2) = 0x0662 :	allchar(65,3) = 0x0662 :	allchar(65,4) = 0x0662 :	allchar(65,5) = 0x0662
 	allchar(66,0) = 0x0663 :	allchar(66,1) = 0x000B :	allchar(66,2) = 0x0663 :	allchar(66,3) = 0x0663 :	allchar(66,4) = 0x0663 :	allchar(66,5) = 0x0663
 	allchar(67,0) = 0x0664 :	allchar(67,1) = 0x000B :	allchar(67,2) = 0x0665 :	allchar(67,3) = 0x0664 :	allchar(67,4) = 0x0664 :	allchar(67,5) = 0x0664
 	allchar(68,0) = 0x0665 :	allchar(68,1) = 0x000B :	allchar(68,2) = 0x0665 :	allchar(68,3) = 0x0665 :	allchar(68,4) = 0x0665 :	allchar(68,5) = 0x0665
 	allchar(69,0) = 0x0666 :	allchar(69,1) = 0x000B :	allchar(69,2) = 0x0666 :	allchar(69,3) = 0x0666 :	allchar(69,4) = 0x0666 :	allchar(69,5) = 0x0666
 	allchar(70,0) = 0x0667 :	allchar(70,1) = 0x000B :	allchar(70,2) = 0x0667 :	allchar(70,3) = 0x0667 :	allchar(70,4) = 0x0667 :	allchar(70,5) = 0x0667
 	allchar(71,0) = 0x0668 :	allchar(71,1) = 0x000B :	allchar(71,2) = 0x0668 :	allchar(71,3) = 0x0668 :	allchar(71,4) = 0x0668 :	allchar(71,5) = 0x0668
 	allchar(72,0) = 0x0669 :	allchar(72,1) = 0x000B :	allchar(72,2) = 0x0669 :	allchar(72,3) = 0x0669 :	allchar(72,4) = 0x0669 :	allchar(72,5) = 0x0669
 	allchar(73,0) = 0x066A :	allchar(73,1) = 0x000F :	allchar(73,2) = 0x0 :	allchar(73,3) = 0x0 :	allchar(73,4) = 0x0 :	allchar(73,5) = 0x0
 	allchar(74,0) = 0x066B :	allchar(74,1) = 0x000F :	allchar(74,2) = 0x0 :	allchar(74,3) = 0x0 :	allchar(74,4) = 0x0 :	allchar(74,5) = 0x0
 	allchar(75,0) = 0x066C :	allchar(75,1) = 0x000F :	allchar(75,2) = 0x0 :	allchar(75,3) = 0x0 :	allchar(75,4) = 0x0 :	allchar(75,5) = 0x0
 	allchar(76,0) = 0x066D :	allchar(76,1) = 0x000F :	allchar(76,2) = 0x0 :	allchar(76,3) = 0x0 :	allchar(76,4) = 0x0 :	allchar(76,5) = 0x0
 	allchar(77,0) = 0x066E :	allchar(77,1) = 0x000E :	allchar(77,2) = 0x065E :	allchar(77,3) = 0x065E :	allchar(77,4) = 0x065E :	allchar(77,5) = 0x065E
 	allchar(78,0) = 0x066F :	allchar(78,1) = 0x000E :	allchar(78,2) = 0x065F :	allchar(78,3) = 0x065F :	allchar(78,4) = 0x065F :	allchar(78,5) = 0x065F
 	allchar(79,0) = 0x0670 :	allchar(79,1) = 0x000F :	allchar(79,2) = 0x0 :	allchar(79,3) = 0x0 :	allchar(79,4) = 0x0 :	allchar(79,5) = 0x0
 	allchar(80,0) = 0x0671 :	allchar(80,1) = 0x0804 :	allchar(80,2) = 0xFB50 :	allchar(80,3) = 0xFB51 :	allchar(80,4) = 0xFB51 :	allchar(80,5) = 0xFB51
 	allchar(81,0) = 0x0672 :	allchar(81,1) = 0x000F :	allchar(81,2) = 0x0 :	allchar(81,3) = 0x0 :	allchar(81,4) = 0x0 :	allchar(81,5) = 0x0
 	allchar(82,0) = 0x0673 :	allchar(82,1) = 0x000F :	allchar(82,2) = 0x0 :	allchar(82,3) = 0x0 :	allchar(82,4) = 0x0 :	allchar(82,5) = 0x0
	allchar(83,0) = 0x0674 :	allchar(83,1) = 0x000F :	allchar(83,2) = 0x0 :	allchar(83,3) = 0x0 :	allchar(83,4) = 0x0 :	allchar(83,5) = 0x0
 	allchar(84,0) = 0x0675 :	allchar(84,1) = 0x000F :	allchar(84,2) = 0x0 :	allchar(84,3) = 0x0 :	allchar(84,4) = 0x0 :	allchar(84,5) = 0x0
 	allchar(85,0) = 0x0676 :	allchar(85,1) = 0x000F :	allchar(85,2) = 0x0 :	allchar(85,3) = 0x0 :	allchar(85,4) = 0x0 :	allchar(85,5) = 0x0
 	allchar(86,0) = 0x0677 :	allchar(86,1) = 0x000F :	allchar(86,2) = 0x0 :	allchar(86,3) = 0x0 :	allchar(86,4) = 0x0 :	allchar(86,5) = 0x0
 	allchar(87,0) = 0x0678 :	allchar(87,1) = 0x000F :	allchar(87,2) = 0x0 :	allchar(87,3) = 0x0 :	allchar(87,4) = 0x0 :	allchar(87,5) = 0x0
 	allchar(88,0) = 0x0679 :	allchar(88,1) = 0x0881 :	allchar(88,2) = 0xFB66 :	allchar(88,3) = 0xFB67 :	allchar(88,4) = 0xFB68 :	allchar(88,5) = 0xFB69
 	allchar(89,0) = 0x067A :	allchar(89,1) = 0x0881 :	allchar(89,2) = 0xFB5E :	allchar(89,3) = 0xFB5F :	allchar(89,4) = 0xFB60 :	allchar(89,5) = 0xFB61
 	allchar(90,0) = 0x067B :	allchar(90,1) = 0x0881 :	allchar(90,2) = 0xFB52 :	allchar(90,3) = 0xFB53 :	allchar(90,4) = 0xFB54 :	allchar(90,5) = 0xFB55
	allchar(91,0) = 0x067C :	allchar(91,1) = 0x000F :	allchar(91,2) = 0x0 :	allchar(91,3) = 0x0 :	allchar(91,4) = 0x0 :	allchar(91,5) = 0x0
 	allchar(92,0) = 0x067D :	allchar(92,1) = 0x000F :	allchar(92,2) = 0x0 :	allchar(92,3) = 0x0 :	allchar(92,4) = 0x0 :	allchar(92,5) = 0x0
 	allchar(93,0) = 0x067E :	allchar(93,1) = 0x0881 :	allchar(93,2) = 0xFB56 :	allchar(93,3) = 0xFB57 :	allchar(93,4) = 0xFB58 :	allchar(93,5) = 0xFB59
 	allchar(94,0) = 0x067F :	allchar(94,1) = 0x0881 :	allchar(94,2) = 0xFB62 :	allchar(94,3) = 0xFB63 :	allchar(94,4) = 0xFB64 :	allchar(94,5) = 0xFB65
	allchar(95,0) = 0x0680 :	allchar(95,1) = 0x0881 :	allchar(95,2) = 0xFB5A :	allchar(95,3) = 0xFB5B :	allchar(95,4) = 0xFB5C :	allchar(95,5) = 0xFB5D
 	allchar(96,0) = 0x0681 :	allchar(96,1) = 0x000F :	allchar(96,2) = 0x0 :	allchar(96,3) = 0x0 :	allchar(96,4) = 0x0 :	allchar(96,5) = 0x0
 	allchar(97,0) = 0x0682 :	allchar(97,1) = 0x000F :	allchar(97,2) = 0x0 :	allchar(97,3) = 0x0 :	allchar(97,4) = 0x0 :	allchar(97,5) = 0x0
 	allchar(98,0) = 0x0683 :	allchar(98,1) = 0x0881 :	allchar(98,2) = 0xFB76 :	allchar(98,3) = 0xFB77 :	allchar(98,4) = 0xFB78 :	allchar(98,5) = 0xFB79
	allchar(99,0) = 0x0684 :	allchar(99,1) = 0x0881 :	allchar(99,2) = 0xFB72 :	allchar(99,3) = 0xFB73 :	allchar(99,4) = 0xFB74 :	allchar(99,5) = 0xFB75
 	allchar(100,0) = 0x0685 :	allchar(100,1) = 0x000F :	allchar(100,2) = 0x0 :	allchar(100,3) = 0x0 :	allchar(100,4) = 0x0 :	allchar(100,5) = 0x0
 	allchar(101,0) = 0x0686 :	allchar(101,1) = 0x0881 :	allchar(101,2) = 0xFB7A :	allchar(101,3) = 0xFB7B :	allchar(101,4) = 0xFB7C :	allchar(101,5) = 0xFB7D
 	allchar(102,0) = 0x0687 :	allchar(102,1) = 0x0881 :	allchar(102,2) = 0xFB7E :	allchar(102,3) = 0xFB7F :	allchar(102,4) = 0xFB80 :	allchar(102,5) = 0xFB81
 	allchar(103,0) = 0x0688 :	allchar(103,1) = 0x0804 :	allchar(103,2) = 0xFB88 :	allchar(103,3) = 0xFB89 :	allchar(103,4) = 0xFB89 :	allchar(103,5) = 0xFB89
 	allchar(104,0) = 0x0689 :	allchar(104,1) = 0x000F :	allchar(104,2) = 0x0 :	allchar(104,3) = 0x0 :	allchar(104,4) = 0x0 :	allchar(104,5) = 0x0
 	allchar(105,0) = 0x068A :	allchar(105,1) = 0x000F :	allchar(105,2) = 0x0 :	allchar(105,3) = 0x0 :	allchar(105,4) = 0x0 :	allchar(105,5) = 0x0
 	allchar(106,0) = 0x068B :	allchar(106,1) = 0x000F :	allchar(106,2) = 0x0 :	allchar(106,3) = 0x0 :	allchar(106,4) = 0x0 :	allchar(106,5) = 0x0
 	allchar(107,0) = 0x068C :	allchar(107,1) = 0x0804 :	allchar(107,2) = 0xFB84 :	allchar(107,3) = 0xFB85 :	allchar(107,4) = 0xFB85 :	allchar(107,5) = 0xFB85
 	allchar(108,0) = 0x068D :	allchar(108,1) = 0x0804 :	allchar(108,2) = 0xFB82 :	allchar(108,3) = 0xFB83 :	allchar(108,4) = 0xFB83 :	allchar(108,5) = 0xFB83
 	allchar(109,0) = 0x068E :	allchar(109,1) = 0x0804 :	allchar(109,2) = 0xFB86 :	allchar(109,3) = 0xFB87 :	allchar(109,4) = 0xFB83 :	allchar(109,5) = 0xFB83
 	allchar(110,0) = 0x068F :	allchar(110,1) = 0x000F :	allchar(110,2) = 0x0 :	allchar(110,3) = 0x0 :	allchar(110,4) = 0x0 :	allchar(110,5) = 0x0
 	allchar(111,0) = 0x0690 :	allchar(111,1) = 0x000F :	allchar(111,2) = 0x0 :	allchar(111,3) = 0x0 :	allchar(111,4) = 0x0 :	allchar(111,5) = 0x0
 	allchar(112,0) = 0x0691 :	allchar(112,1) = 0x0804 :	allchar(112,2) = 0xFB8C :	allchar(112,3) = 0xFB8D :	allchar(112,4) = 0xFB8D :	allchar(112,5) = 0xFB8D
 	allchar(113,0) = 0x0692 :	allchar(113,1) = 0x000F :	allchar(113,2) = 0x0 :	allchar(113,3) = 0x0 :	allchar(113,4) = 0x0 :	allchar(113,5) = 0x0
 	allchar(114,0) = 0x0693 :	allchar(114,1) = 0x000F :	allchar(114,2) = 0x0 :	allchar(114,3) = 0x0 :	allchar(114,4) = 0x0 :	allchar(114,5) = 0x0
 	allchar(115,0) = 0x0694 :	allchar(115,1) = 0x000F :	allchar(115,2) = 0x0 :	allchar(115,3) = 0x0 :	allchar(115,4) = 0x0 :	allchar(115,5) = 0x0
 	allchar(116,0) = 0x0695 :	allchar(116,1) = 0x000F :	allchar(116,2) = 0x0 :	allchar(116,3) = 0x0 :	allchar(116,4) = 0x0 :	allchar(116,5) = 0x0
 	allchar(117,0) = 0x0696 :	allchar(117,1) = 0x000F :	allchar(117,2) = 0x0 :	allchar(117,3) = 0x0 :	allchar(117,4) = 0x0 :	allchar(117,5) = 0x0
 	allchar(118,0) = 0x0697 :	allchar(118,1) = 0x000F :	allchar(118,2) = 0x0 :	allchar(118,3) = 0x0 :	allchar(118,4) = 0x0 :	allchar(118,5) = 0x0
 	allchar(119,0) = 0x0698 :	allchar(119,1) = 0x0804 :	allchar(119,2) = 0xFB8A :	allchar(119,3) = 0xFB8B :	allchar(119,4) = 0xFB8B :	allchar(119,5) = 0xFB8B
 	allchar(120,0) = 0x0699 :	allchar(120,1) = 0x000F :	allchar(120,2) = 0x0 :	allchar(120,3) = 0x0 :	allchar(120,4) = 0x0 :	allchar(120,5) = 0x0
 	allchar(121,0) = 0x069A :	allchar(121,1) = 0x000F :	allchar(121,2) = 0x0 :	allchar(121,3) = 0x0 :	allchar(121,4) = 0x0 :	allchar(121,5) = 0x0
 	allchar(122,0) = 0x069B :	allchar(122,1) = 0x000F :	allchar(122,2) = 0x0 :	allchar(122,3) = 0x0 :	allchar(122,4) = 0x0 :	allchar(122,5) = 0x0
 	allchar(123,0) = 0x069C :	allchar(123,1) = 0x000F :	allchar(123,2) = 0x0 :	allchar(123,3) = 0x0 :	allchar(123,4) = 0x0 :	allchar(123,5) = 0x0
 	allchar(124,0) = 0x069D :	allchar(124,1) = 0x000F :	allchar(124,2) = 0x0 :	allchar(124,3) = 0x0 :	allchar(124,4) = 0x0 :	allchar(124,5) = 0x0
 	allchar(125,0) = 0x069E :	allchar(125,1) = 0x000F :	allchar(125,2) = 0x0 :	allchar(125,3) = 0x0 :	allchar(125,4) = 0x0 :	allchar(125,5) = 0x0
 	allchar(126,0) = 0x069F :	allchar(126,1) = 0x000F :	allchar(126,2) = 0x0 :	allchar(126,3) = 0x0 :	allchar(126,4) = 0x0 :	allchar(126,5) = 0x0
 	allchar(127,0) = 0x06A0 :	allchar(127,1) = 0x000F :	allchar(127,2) = 0x0 :	allchar(127,3) = 0x0 :	allchar(127,4) = 0x0 :	allchar(127,5) = 0x0
 	allchar(128,0) = 0x06A1 :	allchar(128,1) = 0x000F :	allchar(128,2) = 0x0 :	allchar(128,3) = 0x0 :	allchar(128,4) = 0x0 :	allchar(128,5) = 0x0
 	allchar(129,0) = 0x06A2 :	allchar(129,1) = 0x000F :	allchar(129,2) = 0x0 :	allchar(129,3) = 0x0 :	allchar(129,4) = 0x0 :	allchar(129,5) = 0x0
 	allchar(130,0) = 0x06A3 :	allchar(130,1) = 0x000F :	allchar(130,2) = 0x0 :	allchar(130,3) = 0x0 :	allchar(130,4) = 0x0 :	allchar(130,5) = 0x0
 	allchar(131,0) = 0x06A4 :	allchar(131,1) = 0x0881 :	allchar(131,2) = 0xFB6A :	allchar(131,3) = 0xFB6B :	allchar(131,4) = 0xFB6C :	allchar(131,5) = 0xFB6D
 	allchar(132,0) = 0x06A5 :	allchar(132,1) = 0x000F :	allchar(132,2) = 0x0 :	allchar(132,3) = 0x0 :	allchar(132,4) = 0x0 :	allchar(132,5) = 0x0
 	allchar(133,0) = 0x06A6 :	allchar(133,1) = 0x0881 :	allchar(133,2) = 0xFB6E :	allchar(133,3) = 0xFB6F :	allchar(133,4) = 0xFB70 :	allchar(133,5) = 0xFB71
 	allchar(134,0) = 0x06A7 :	allchar(134,1) = 0x000F :	allchar(134,2) = 0x0 :	allchar(134,3) = 0x0 :	allchar(134,4) = 0x0 :	allchar(134,5) = 0x0
 	allchar(135,0) = 0x06A8 :	allchar(135,1) = 0x000F :	allchar(135,2) = 0x0 :	allchar(135,3) = 0x0 :	allchar(135,4) = 0x0 :	allchar(135,5) = 0x0
 	allchar(136,0) = 0x06A9 :	allchar(136,1) = 0x0881 :	allchar(136,2) = 0xFB8E :	allchar(136,3) = 0xFB8F :	allchar(136,4) = 0xFB90 :	allchar(136,5) = 0xFB91
 	allchar(137,0) = 0x06AA :	allchar(137,1) = 0x000F :	allchar(137,2) = 0x0 :	allchar(137,3) = 0x0 :	allchar(137,4) = 0x0 :	allchar(137,5) = 0x0
 	allchar(138,0) = 0x06AB :	allchar(138,1) = 0x000F :	allchar(138,2) = 0x0 :	allchar(138,3) = 0x0 :	allchar(138,4) = 0x0 :	allchar(138,5) = 0x0
 	allchar(139,0) = 0x06AC :	allchar(139,1) = 0x000F :	allchar(139,2) = 0x0 :	allchar(139,3) = 0x0 :	allchar(139,4) = 0x0 :	allchar(139,5) = 0x0
 	allchar(140,0) = 0x06AD :	allchar(140,1) = 0x0881 :	allchar(140,2) = 0xFBD3 :	allchar(140,3) = 0xFBD4 :	allchar(140,4) = 0xFBD5 :	allchar(140,5) = 0xFBD6
 	allchar(141,0) = 0x06AE :	allchar(141,1) = 0x000F :	allchar(141,2) = 0x0 :	allchar(141,3) = 0x0 :	allchar(141,4) = 0x0 :	allchar(141,5) = 0x0
 	allchar(142,0) = 0x06AF :	allchar(142,1) = 0x0881 :	allchar(142,2) = 0xFB92 :	allchar(142,3) = 0xFB93 :	allchar(142,4) = 0xFB94 :	allchar(142,5) = 0xFB95
 	allchar(143,0) = 0x06B0 :	allchar(143,1) = 0x000F :	allchar(143,2) = 0x0 :	allchar(143,3) = 0x0 :	allchar(143,4) = 0x0 :	allchar(143,5) = 0x0
	allchar(144,0) = 0x06B1 :	allchar(144,1) = 0x0881 :	allchar(144,2) = 0xFB9A :	allchar(144,3) = 0xFB9B :	allchar(144,4) = 0xFB9C :	allchar(144,5) = 0xFB9D
 	allchar(145,0) = 0x06B2 :	allchar(145,1) = 0x000F :	allchar(145,2) = 0x0 :	allchar(145,3) = 0x0 :	allchar(145,4) = 0x0 :	allchar(145,5) = 0x0
 	allchar(146,0) = 0x06B3 :	allchar(146,1) = 0x0881 :	allchar(146,2) = 0xFB96 :	allchar(146,3) = 0xFB97 :	allchar(146,4) = 0xFB98 :	allchar(146,5) = 0xFB99
 	allchar(147,0) = 0x06B4 :	allchar(147,1) = 0x000F :	allchar(147,2) = 0x0 :	allchar(147,3) = 0x0 :	allchar(147,4) = 0x0 :	allchar(147,5) = 0x0
 	allchar(148,0) = 0x06B5 :	allchar(148,1) = 0x000F :	allchar(148,2) = 0x0 :	allchar(148,3) = 0x0 :	allchar(148,4) = 0x0 :	allchar(148,5) = 0x0
 	allchar(149,0) = 0x06B6 :	allchar(149,1) = 0x000F :	allchar(149,2) = 0x0 :	allchar(149,3) = 0x0 :	allchar(149,4) = 0x0 :	allchar(149,5) = 0x0
 	allchar(150,0) = 0x06B7 :	allchar(150,1) = 0x000F :	allchar(150,2) = 0x0 :	allchar(150,3) = 0x0 :	allchar(150,4) = 0x0 :	allchar(150,5) = 0x0
 	allchar(151,0) = 0x06B8 :	allchar(151,1) = 0x000F :	allchar(151,2) = 0x0 :	allchar(151,3) = 0x0 :	allchar(151,4) = 0x0 :	allchar(151,5) = 0x0
 	allchar(152,0) = 0x06B9 :	allchar(152,1) = 0x000F :	allchar(152,2) = 0x0 :	allchar(152,3) = 0x0 :	allchar(152,4) = 0x0 :	allchar(152,5) = 0x0
 	allchar(153,0) = 0x06BA :	allchar(153,1) = 0x0804 :	allchar(153,2) = 0xFB9E :	allchar(153,3) = 0xFB9F :	allchar(153,4) = 0xFB9F :	allchar(153,5) = 0xFB9F
 	allchar(154,0) = 0x06BB :	allchar(154,1) = 0x0881 :	allchar(154,2) = 0xFBA0 :	allchar(154,3) = 0xFBA1 :	allchar(154,4) = 0xFBA2 :	allchar(154,5) = 0xFBA3
 	allchar(155,0) = 0x06BC :	allchar(155,1) = 0x000F :	allchar(155,2) = 0x0 :	allchar(155,3) = 0x0 :	allchar(155,4) = 0x0 :	allchar(155,5) = 0x0
 	allchar(156,0) = 0x06BD :	allchar(156,1) = 0x000F :	allchar(156,2) = 0x0 :	allchar(156,3) = 0x0 :	allchar(156,4) = 0x0 :	allchar(156,5) = 0x0
 	allchar(157,0) = 0x06BE :	allchar(157,1) = 0x0881 :	allchar(157,2) = 0xFBAA :	allchar(157,3) = 0xFBAB :	allchar(157,4) = 0xFBAC :	allchar(157,5) = 0xFBAD
 	allchar(158,0) = 0x06BF :	allchar(158,1) = 0x000F :	allchar(158,2) = 0x0 :	allchar(158,3) = 0x0 :	allchar(158,4) = 0x0 :	allchar(158,5) = 0x0
 	allchar(159,0) = 0x06C0 :	allchar(159,1) = 0x0804 :	allchar(159,2) = 0xFBA4 :	allchar(159,3) = 0xFBA5 :	allchar(159,4) = 0xFBA5 :	allchar(159,5) = 0xFBA5
 	allchar(160,0) = 0x06C1 :	allchar(160,1) = 0x0881 :	allchar(160,2) = 0xFBA6 :	allchar(160,3) = 0xFBA7 :	allchar(160,4) = 0xFBA8 :	allchar(160,5) = 0xFBA9
 	allchar(161,0) = 0x06C2 :	allchar(161,1) = 0x000F :	allchar(161,2) = 0x0 :	allchar(161,3) = 0x0 :	allchar(161,4) = 0x0 :	allchar(161,5) = 0x0
 	allchar(162,0) = 0x06C3 :	allchar(162,1) = 0x000F :	allchar(162,2) = 0x0 :	allchar(162,3) = 0x0 :	allchar(162,4) = 0x0 :	allchar(162,5) = 0x0
 	allchar(163,0) = 0x06C4 :	allchar(163,1) = 0x000F :	allchar(163,2) = 0x0 :	allchar(163,3) = 0x0 :	allchar(163,4) = 0x0 :	allchar(163,5) = 0x0
 	allchar(164,0) = 0x06C5 :	allchar(164,1) = 0x0804 :	allchar(164,2) = 0xFBE0 :	allchar(164,3) = 0xFBE1 :	allchar(164,4) = 0xFBE1 :	allchar(164,5) = 0xFBE1
 	allchar(165,0) = 0x06C6 :	allchar(165,1) = 0x0804 :	allchar(165,2) = 0xFBD9 :	allchar(165,3) = 0xFBDA :	allchar(165,4) = 0xFBDA :	allchar(165,5) = 0xFBDA
 	allchar(166,0) = 0x06C7 :	allchar(166,1) = 0x0804 :	allchar(166,2) = 0xFBD7 :	allchar(166,3) = 0xFBD8 :	allchar(166,4) = 0xFBD8 :	allchar(166,5) = 0xFBD8
 	allchar(167,0) = 0x06C8 :	allchar(167,1) = 0x0804 :	allchar(167,2) = 0xFBDB :	allchar(167,3) = 0xFBDC :	allchar(167,4) = 0xFBDC :	allchar(167,5) = 0xFBDC
 	allchar(168,0) = 0x06C9 :	allchar(168,1) = 0x0804 :	allchar(168,2) = 0xFBE2 :	allchar(168,3) = 0xFBE3 :	allchar(168,4) = 0xFBE3 :	allchar(168,5) = 0xFBE3
 	allchar(169,0) = 0x06CA :	allchar(169,1) = 0x000F :	allchar(169,2) = 0x0 :	allchar(169,3) = 0x0 :	allchar(169,4) = 0x0 :	allchar(169,5) = 0x0
 	allchar(170,0) = 0x06CB :	allchar(170,1) = 0x0804 :	allchar(170,2) = 0xFBDE :	allchar(170,3) = 0xFBDF :	allchar(170,4) = 0xFBDF :	allchar(170,5) = 0xFBDF
 	allchar(171,0) = 0x06CC :	allchar(171,1) = 0x0881 :	allchar(171,2) = 0xFBFC :	allchar(171,3) = 0xFBFD :	allchar(171,4) = 0xFBFE :	allchar(171,5) = 0xFBFF
 	allchar(172,0) = 0x06CD :	allchar(172,1) = 0x000F :	allchar(172,2) = 0x0 :	allchar(172,3) = 0x0 :	allchar(172,4) = 0x0 :	allchar(172,5) = 0x0
 	allchar(173,0) = 0x06CE :	allchar(173,1) = 0x000F :	allchar(173,2) = 0x0 :	allchar(173,3) = 0x0 :	allchar(173,4) = 0x0 :	allchar(173,5) = 0x0
 	allchar(174,0) = 0x06CF :	allchar(174,1) = 0x000F :	allchar(174,2) = 0x0 :	allchar(174,3) = 0x0 :	allchar(174,4) = 0x0 :	allchar(174,5) = 0x0
 	allchar(175,0) = 0x06D0 :	allchar(175,1) = 0x0881 :	allchar(175,2) = 0xFBE4 :	allchar(175,3) = 0xFBE5 :	allchar(175,4) = 0xFBE6 :	allchar(175,5) = 0xFBE7
 	allchar(176,0) = 0x06D1 :	allchar(176,1) = 0x000F :	allchar(176,2) = 0x0 :	allchar(176,3) = 0x0 :	allchar(176,4) = 0x0 :	allchar(176,5) = 0x0
 	allchar(177,0) = 0x06D2 :	allchar(177,1) = 0x0804 :	allchar(177,2) = 0xFBAE :	allchar(177,3) = 0xFBAF :	allchar(177,4) = 0xFBAF :	allchar(177,5) = 0xFBAF
 	allchar(178,0) = 0x06D3 :	allchar(178,1) = 0x0804 :	allchar(178,2) = 0xFBB0 :	allchar(178,3) = 0xFBB1 :	allchar(178,4) = 0xFBB1 :	allchar(178,5) = 0xFBB1
End Sub

'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
	
End Sub

Public Sub reshape(Str As String) As String
		 Dim Temp As String=" " & Str & " "
		 Dim pre, at, post As Char
		 Dim reshapedString As StringBuilder
		 reshapedString.Initialize
		 Dim i As Int = 0
		 Dim len As Int=Str.Length

		 Dim post_post As Char
		 Dim pre_pre As Char=" "

		 Do While i<len
						pre=Temp.CharAt(i)
						at=Temp.CharAt(i+1)
						post=Temp.CharAt(i+2)
						Dim which_case As Int=getCase(at)
						Dim what_case_post As Int=getCase(post)
						Dim what_case_pre As Int=getCase(pre)
						Dim what_case_post_post As Int
						Dim what_case_pre_pre As Int
						'which_case=0x000F&
		'              Log.v("what case"," :" +which_case);
						Dim pre_step As Int=0
						If what_case_pre=TASHKEEL Then
								pre=pre_pre
								what_case_pre=getCase(pre)
						End If
						If (Bit.And(what_case_pre , LEFT_CHAR_MASK))=LEFT_CHAR_MASK Then
								pre_step=1
						End If
						 
						Select Case Bit.And(which_case , 0x000F) 

						Case NOTUSED_CHAR, NOTARABIC_CHAR

								reshapedString.Append(at)

								i = i+1
								Continue
						Case NORIGHT_NOLEFT_CHAR, TATWEEL_CHAR
								reshapedString.Append(getShape(at,0))

								i = i+1
								Continue
						Case RIGHT_LEFT_CHAR_LAM


								If Bit.And(what_case_post , 0x000F)=RIGHT_NOLEFT_CHAR_ALEF Then
										reshapedString.Append(getShape(post,pre_step+2))
										i=i+2

										Continue 
								Else If Bit.And(what_case_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
										reshapedString.Append(getShape(at,2+pre_step))
										i=i+1

										Continue 
								Else If what_case_post=TANWEEN Then
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue 


								Else If what_case_post=TASHKEEL Then
										post_post=Temp.CharAt(i+3)
										what_case_post_post=getCase(post_post)
										If Bit.And(what_case_post_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
												reshapedString.Append(getShape(at,2+pre_step))
												i=i+1

												Continue 

										Else
												reshapedString.Append(getShape(at,pre_step))
												i=i+1
												Continue 

										End If





								Else
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue 

								End If

						Case RIGHT_LEFT_CHAR
								If Bit.And(what_case_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
										reshapedString.Append(getShape(at,2+pre_step))
										i=i+1
										Continue 


								Else If what_case_post=TANWEEN Then
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue 


								Else If what_case_post=TASHKEEL Then
										post_post=Temp.CharAt(i+3)
										what_case_post_post=getCase(post_post)
										If Bit.And(what_case_post_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
												reshapedString.Append(getShape(at,2+pre_step))
												i=i+1
												Continue 

										Else
												reshapedString.Append(getShape(at,pre_step))
												i=i+1
												Continue 

										End If





								Else
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue 

								End If
						Case RIGHT_NOLEFT_CHAR_ALEF, RIGHT_NOLEFT_CHAR
								reshapedString.Append(getShape(at,pre_step))
								i=i+1
								Continue 
						Case TASHKEEL
								reshapedString.Append(getShape(at,0))
								i = i+1
								pre_pre=pre
								Continue 
						Case TANWEEN
								reshapedString.Append(getShape(at,0))
								i = i+1
								pre_pre=pre
								Continue 



						Case Else
								reshapedString.Append(getShape(at,0))
								i = i+1


						End Select



		 Loop

		 Return reshapedString.ToString()
	End Sub
	
	Public Sub reshape_reverse(Str As String) As String
		 Dim Temp As String=" " & Str & "   "
		 Dim pre, at, post As Char
		 Dim reshapedString As StringBuilder
		 reshapedString.Initialize
		 Dim i As Int=0
		 Dim len As Int=Str.Length

		 Dim post_post As Char
		 Dim pre_pre As Char=" "

		 Do While i<len
						pre=Temp.CharAt(i+2)
						at=Temp.CharAt(i+1)
						post=Temp.CharAt(i)


						Dim which_case As Int=getCase(at)
						Dim what_case_post As Int=getCase(post)
						Dim what_case_pre As Int=getCase(pre)
						Dim what_case_post_post As Int
						Dim what_case_pre_pre As Int
						'which_case=0x000F&
		'              Log.v("what case"," :" +which_case);
						Dim pre_step As Int=0
						If what_case_pre=TASHKEEL Then
								pre=Temp.CharAt(i+3)
								what_case_pre=getCase(pre)
						End If
						If Bit.And(what_case_pre , LEFT_CHAR_MASK)=LEFT_CHAR_MASK Then
								pre_step=1

						End If

		'              System.out.println("##letter "+ pre);
						Select Case Bit.And(which_case , 0x000F)

						Case NOTUSED_CHAR, NOTARABIC_CHAR

								reshapedString.Append(at)

								i = i+1
								Continue
						Case NORIGHT_NOLEFT_CHAR, TATWEEL_CHAR
								reshapedString.Append(getShape(at,0))

								i = i+1
								Continue
						Case RIGHT_NOLEFT_CHAR_ALEF

						'      System.out.println("--letter "+ pre);

								If Bit.And(what_case_pre , 0x000F)=RIGHT_LEFT_CHAR_LAM Then
										pre=Temp.CharAt(i+3)
								'      System.out.println("++letter "+ pre);
										what_case_pre=getCase(pre)
										pre_step=0
										If Bit.And(what_case_pre , LEFT_CHAR_MASK)=LEFT_CHAR_MASK Then
												pre_step=1

										End If
										reshapedString.Append(getShape(at,pre_step+2))
										i=i+2

										Continue 'else if ((what_case_post&RIGHT_NOLEFT_CHAR_MASK)==RIGHT_NOLEFT_CHAR_MASK){
'	                                    reshapedString.append(getShape(at,2+pre_step));
'	                                    i=i+1;
'	            
'	                                    continue;                                       
'	                                    
'	                                    
'	                            } else if (what_case_post==TANWEEN){
'	                                    reshapedString.append(getShape(at,pre_step));
'	                                    i=i+1;
'	                                    continue;
'	                                    
'	                                    
'	                            } else if (what_case_post==TASHKEEL){
'	                                    post_post=Temp.charAt(i+3);
'	                                    what_case_post_post=getCase(post_post);
'	                                    if ((what_case_post_post&RIGHT_NOLEFT_CHAR_MASK)==RIGHT_NOLEFT_CHAR_MASK){
'	                                            reshapedString.append(getShape(at,2+pre_step));
'	                                            i=i+1;
'	            
'	                                            continue;
'	                                            
'	                                    } else {
'	                                            reshapedString.append(getShape(at,pre_step));
'	                                            i=i+1;
'	                                            continue;
'	                                            
'	                                    }
'	                                            
'	                                    
'	                                    
'	                                    
'	                                    
'JAVA TO VB & C# CONVERTER NOTE: Beginning of line comments are not maintained by Java to VB & C# Converter
'ORIGINAL LINE: } */else  {
								Else
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue

								End If
						Case RIGHT_LEFT_CHAR_LAM, RIGHT_LEFT_CHAR
								If Bit.And(what_case_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
										reshapedString.Append(getShape(at,2+pre_step))
										i=i+1
										Continue


								Else If what_case_post=TANWEEN Then
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue


								Else If what_case_post=TASHKEEL Then
										post_post=Temp.CharAt(i+3)
										what_case_post_post=getCase(post_post)
										If Bit.And(what_case_post_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
												reshapedString.Append(getShape(at,2+pre_step))
												i=i+1
												Continue

										Else
												reshapedString.Append(getShape(at,pre_step))
												i=i+1
												Continue

										End If





								Else
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue

								End If

						Case RIGHT_NOLEFT_CHAR
								reshapedString.Append(getShape(at,pre_step))
								i=i+1
								Continue
						Case TASHKEEL
								reshapedString.Append(getShape(at,0))
								i = i+1
								pre_pre=pre
								Continue
						Case TANWEEN
								reshapedString.Append(getShape(at,0))
								i = i+1
								pre_pre=pre
								Continue



						Case Else
								reshapedString.Append(getShape(at,0))
								i = i+1


						End Select



		 Loop

		 Return reshapedString.ToString()
	End Sub
	
	Public Sub reshape_browser(Str As String) As String
		 Dim Temp As String=" " & Str & " "
		 Dim pre, at, post As Char
		 Dim reshapedString As StringBuilder
		 reshapedString.Initialize
		 Dim i As Int=0
		 Dim len As Int=Str.Length
		 Dim pre_can_connect As Boolean=False
		 Dim post_post As Char
		 Dim pre_pre As Char=" "

		 Do While i<len
						pre=Temp.CharAt(i)
						at=Temp.CharAt(i+1)
						post=Temp.CharAt(i+2)

						Dim which_case As Int=getCase(at)
						Dim what_case_post As Int=getCase(post)
						Dim what_case_pre As Int=getCase(pre)
						Dim what_case_post_post As Int
						Dim what_case_pre_pre As Int
						'which_case=0x000F&
				'      Log.v("what case"," :" +which_case);


						If at=Chr(0x060c) Then
								reshapedString.Append(",")
								i = i+1
								Continue
						End If
				'      if (at==)

						Dim pre_step As Int=0
						If what_case_pre=TASHKEEL Then
								pre=pre_pre
								what_case_pre=getCase(pre)
						End If
						If Bit.And(what_case_pre , LEFT_CHAR_MASK)=LEFT_CHAR_MASK Then
								pre_step=1
						End If
						Select Case Bit.And(which_case , 0x000F)
						Case NOTUSED_CHAR, NOTARABIC_CHAR
								reshapedString.Append(at)
								pre_can_connect=False
								i = i+1
								Continue
						Case NORIGHT_NOLEFT_CHAR
								reshapedString.Append(getShape(at,0))
								i = i+1
								Continue
						Case TATWEEL_CHAR
								reshapedString.Append(getShape(at,0))
								pre_can_connect=False
								i = i+1
								Continue
						Case RIGHT_LEFT_CHAR_LAM
								If Bit.And(what_case_post , 0x000F)=RIGHT_NOLEFT_CHAR_ALEF Then
										reshapedString.Append(getShape(post,pre_step+2))
										i=i+2
										pre_can_connect=False
										Continue
								Else If Bit.And(what_case_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
										reshapedString.Append(getShape(at,2+pre_step))
										i=i+1
										pre_can_connect=True
										Continue
								Else If what_case_post=TANWEEN Then
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue
								Else If what_case_post=TASHKEEL Then
										post_post=Temp.CharAt(i+2)
										what_case_post_post=getCase(post_post)
										If Bit.And(what_case_post_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
												reshapedString.Append(getShape(at,2+pre_step))
												i=i+1
												pre_can_connect=True
												Continue
										Else
												reshapedString.Append(getShape(at,pre_step))
												i=i+1
												Continue
										End If
								Else
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue
								End If
						Case RIGHT_LEFT_CHAR
								If Bit.And(what_case_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
										reshapedString.Append(getShape(at,2+pre_step))
										i=i+1
										Continue
								Else If what_case_post=TANWEEN Then
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue
								Else If what_case_post=TASHKEEL Then
										post_post=Temp.CharAt(i+3)
										what_case_post_post=getCase(post_post)
										If Bit.And(what_case_post_post , RIGHT_NOLEFT_CHAR_MASK)=RIGHT_NOLEFT_CHAR_MASK Then
												reshapedString.Append(getShape(at,2+pre_step))
												i=i+1
												pre_can_connect=True
												Continue

										Else
												reshapedString.Append(getShape(at,pre_step))
												i=i+1
												Continue
										End If
								Else
										reshapedString.Append(getShape(at,pre_step))
										i=i+1
										Continue
								End If
						Case RIGHT_NOLEFT_CHAR_ALEF, RIGHT_NOLEFT_CHAR
								reshapedString.Append(getShape(at,pre_step))
								i=i+1
								Continue
						Case TASHKEEL
								reshapedString.Append(getShape(at,0))
								i = i+1
								pre_pre=pre
								Continue
						Case TANWEEN
								reshapedString.Append(getShape(at,0))
								i = i+1
								pre_pre=pre
								Continue
						Case Else
								reshapedString.Append(getShape(at,0))
								i = i+1
						End Select
		 Loop
		 Return reshapedString.ToString()
	End Sub
	
	 Private Sub getCase(ch As Char) As Int
						If Asc(ch)<0x0621 Or Asc(ch)>0x06d2 Then
								Return 0
						Else
								Return allchar(Asc(ch)-0x0621,1)
						End If
	 End Sub
	 
	 Private Sub getShape(ch As Char, which_shape As Int) As Char
		 Return Chr(allchar(Asc(ch)-0x0621,2+which_shape))
	 End Sub