Disclosure of Invention
The invention provides a prepayment method and system, a terminal and a server, and aims to solve the technical problems of low flexibility and low reliability of the existing prepayment system.
The invention is realized in such a way that a prepayment method comprises the following steps:
A1. generating a password array according to the password seed and an iterative algorithm, and sending the last element of the password array as a check password to a terminal, wherein the number of the elements of the password array is a preset value;
B1. acquiring payment time, wherein the payment time is less than or equal to payment upper limit time;
C1. acquiring a verification password according to the payment time and the password array;
D1. and sending the verification password to the terminal so that the terminal sets the use permission of the prepaid product according to the verification password, and executing the step B1.
Another object of the present invention is to provide a prepaid method, including:
A2. receiving a verification password;
B2. receiving an authentication password;
C2. generating a password array to be verified according to the verification password and an iterative algorithm, wherein the number of elements of the password array to be verified is equal to the value of the payment upper limit time;
D2. matching the verification password with elements in the password array to be verified;
E2. when the verification password is matched with elements in the password array to be verified, the payment time is obtained, and the total payment time is obtained according to the payment time;
F2. judging whether the total payment time is greater than or equal to a preset total payment time or not;
g2-1, if yes, opening the permanent use authority of the prepaid product;
g2-2, if not, obtaining the remaining time according to the payment time, and updating the verification password into the verification password;
H2. starting timing to acquire timer time, and acquiring available time according to the remaining time and the timer time;
I2. judging whether the available time is greater than zero;
j2-1, if yes, opening the use right of the prepaid product, and executing step B2;
j2-2, if not, closing the use right of the prepaid product and executing the step B2.
Another object of the present invention is to provide a prepaid method, including:
A3. generating a password array according to the password seed and an iterative algorithm, and sending the last element of the password array as a verification password, wherein the number of the elements of the password array is a preset value;
B3. receiving the verification password;
C3. acquiring payment time, wherein the payment time is less than or equal to payment upper limit time;
D3. acquiring a verification password according to the payment time and the password array;
E3. sending the verification password;
F3. receiving the verification password;
G3. generating a password array to be verified according to the received verification password and the iterative algorithm, wherein the number of elements of the password array to be verified is equal to the value of the payment upper limit time;
H3. matching the verification password with elements in the password array to be verified;
I3. when the verification password is matched with elements in the password array to be verified, the payment time is obtained, and the total payment time is obtained according to the payment time;
J3. judging whether the total payment time is greater than or equal to a preset total payment time or not;
k3-1, if yes, opening the permanent use authority of the prepaid product;
k3-2, if not, obtaining the remaining time according to the payment time, and updating the verification password into the verification password;
l3, starting timing to acquire timer time, and acquiring available time according to the remaining time and the timer time;
m3, judging whether the available time is larger than zero;
n3-1, if yes, opening the use right of the prepaid product, and executing step C3;
n3-2, if not, closing the use right of the prepaid product and executing the step C3.
Another object of the present invention is to provide a server, comprising:
the password array generating module is used for generating a password array according to the password seeds and an iterative algorithm, and sending the last element of the password array to a terminal as a verification password, wherein the number of the elements of the password array is a preset value;
the payment time acquisition module is used for acquiring payment time, and the payment time is less than or equal to payment upper limit time;
the verification password acquisition module is used for acquiring a verification password according to the payment time and the password array;
and the verification password sending module is used for sending the verification password to the terminal so that the terminal can set the use permission of the prepaid product according to the verification password.
Another object of the present invention is to provide a terminal, comprising:
the verification password receiving module is used for receiving a verification password;
the verification module receiving module is used for receiving a verification password;
the password array to be verified generating module is used for generating a password array to be verified according to the verification password and the iterative algorithm, and the number of elements of the password array to be verified is equal to the value of the payment upper limit time;
the matching module is used for matching the verification password with elements in the password array to be verified;
the total payment time acquisition module is used for acquiring the payment time when the verification password is matched with the elements in the password array to be verified, and acquiring the total payment time according to the payment time;
the total payment time judging module is used for judging whether the total payment time is greater than or equal to the preset total payment time;
the permanent use permission opening module is used for opening the permanent use permission of the prepaid product if the total payment time is judged to be greater than or equal to the preset total payment time;
the residual time obtaining module is used for obtaining residual time according to the payment time and updating the verification password into the verification password if the total payment time is judged to be smaller than the preset total payment time;
the available time acquisition module is used for starting timing to acquire timer time and acquiring available time according to the remaining time and the timer time;
the available time judging module is used for judging whether the available time is greater than zero or not;
the permission opening module is used for opening the use permission of the prepaid product if the available time judging module judges that the available time is greater than zero;
and the permission closing module is used for closing the use permission of the prepaid product if the available time judging module judges that the available time is not greater than zero.
Another object of the present invention is to provide a prepaid system, wherein the system comprises the server and the terminal.
The technical scheme of the invention has the following beneficial effects:
it can be seen from the above invention that, since the verification password is received first; then receiving a service authentication password; generating a password array to be verified according to the verification password and an iterative algorithm, wherein the number of elements of the password array to be verified is equal to the value of the payment upper limit time; matching the verification password with elements in a password array to be verified; when the verification password is matched with the elements in the password array to be verified, acquiring payment time, and acquiring total payment time according to the payment time; judging whether the total payment time is greater than or equal to the preset total payment time, if so, opening the permanent use authority of the prepaid product, otherwise, acquiring the remaining time according to the payment time, updating the verification password into the verification password, starting timing to acquire the time of the timer, and acquiring the available time according to the remaining time and the time of the timer; judging whether the available time is greater than zero; if yes, opening the use authority of the prepaid product and executing the step of receiving the verification password; if not, closing the use authority of the prepaid product and executing the step of receiving the verification password; therefore, the use permission of the prepaid product can be flexibly set according to the single payment time, and the flexibility and the reliability of the prepaid system are improved.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, embodiments of the present invention will be described in detail with reference to the accompanying drawings.
The first embodiment is as follows:
fig. 1 shows an implementation flow of the prepaid method provided in this embodiment, and for convenience of description, only the parts related to this embodiment are shown, which are detailed as follows:
in step 101, a password array is generated according to the password seed and the iterative algorithm, and the last element of the password array is sent to the terminal as a check password, and the number of the elements of the password array is a preset value.
In a specific implementation, step 101 may specifically be: the step a1 of generating a password array according to the password seed and the iterative algorithm, and sending the last element of the password array as the verification password to the terminal specifically includes:
generating the 1 st element in the password array according to a hash algorithm and the password seeds, sequentially generating other elements of the password array in an iteration mode according to the hash algorithm, and sending the last element of the password array to a terminal as a check password.
In specific implementation, the 1 st element in the password array is generated according to an algorithm H [0] ═ OTP _ Hash (Seed), and other elements of the password array are sequentially generated by iteration according to an algorithm H [ N ] ═ OTP _ Hash (H [ N-1]), where H [0] is the 1 st element in the password array, H [ N ] is the N +1 th element in the password array, and Seed is a password Seed, and the last element of the password array is sent to the terminal as a check password. OTP _ Hash (), XOR _ Fold160/64(SHA _1 ()); wherein the function SHA _1() uses the international recognition Hash Security Algorithm SHA1, for message inputs less than 2^64 bits in length, SHA1 will generate a 160-bit message digest output. The function XOR _ Fold160/64() is an algorithm that doubles 160 bits of SHA _1() output in two to 64 bits, in order to shorten the length of the password, facilitating the actual operation of the client. The hash security algorithm SHA1 has the following two characteristics: the input (message) cannot be recovered from the output (message digest), i.e. has one-way irreversibility; two different messages (inputs) do not produce the same message digest (output). These two characteristics, by themselves, determine that the cryptographic array has a high degree of security. The password Seed is composed of a product type code number, a product serial number and a random character string which are completely in one-to-one correspondence with the prepaid product, so that the password Seed has unique correspondence and irreversibility with the prepaid product.
In specific implementation, sending the last element of the password array as the verification password to the terminal specifically comprises: and sending the last element of the password array as a check password to the terminal through the wireless network.
In step 102, a payment time is obtained, wherein the payment time is less than or equal to the payment upper limit time.
In specific implementation, step 102 further includes: and transmitting the upper limit payment time to the terminal.
In a specific implementation, the upper limit payment time is an upper limit value of a single payment time, and the single payment time is smaller than or equal to the upper limit payment time.
In step 103, a verification password is obtained based on the payment time and the password array.
When step 103 is executed for the first time, step 103 specifically includes:
and acquiring a difference value between the preset value and the payment time, and setting the verification password as an element with the difference value in the password array.
When step 103 is not executed for the first time, step 103 specifically includes:
and acquiring the difference value between the serial number of the element corresponding to the verification password in the password array and the payment time, and updating the verification password into the element with the serial number in the password array as the difference value.
In step 104, the authentication password is transmitted to the terminal so that the terminal sets the usage right of the prepaid product according to the authentication password, and step 102 is performed.
In a specific implementation, step 104 may specifically be: the authentication password is transmitted to the terminal through the wireless network so that the terminal sets the usage right of the prepaid product according to the authentication password, and step 102 is performed.
In the embodiment, a password array is generated according to a password seed and an iterative algorithm, and the last element of the password array is used as a check password and sent to a terminal, wherein the number of the elements of the password array is a preset value; then obtaining the payment time, wherein the payment time is less than or equal to the payment upper limit time; then obtaining a verification password according to the payment time and the password array; finally, the verification password is sent to the terminal so that the terminal can set the use permission of the prepaid product according to the verification password, and the steps of obtaining the payment time and obtaining the total payment time according to the payment time are executed; thus, the flexibility and reliability of the prepaid system is improved.
Example two:
fig. 2 shows an implementation flow of the prepaid method provided in this embodiment, and for convenience of description, only the parts related to this embodiment are shown, which are detailed as follows:
in step 201, a verification password is received.
In step 202, an authentication password is received.
In step 203, a password array to be verified is generated according to the verification password and the iterative algorithm, and the number of elements of the password array to be verified is equal to the value of the payment upper limit time.
In a specific implementation, step 203 further includes: a payment upper limit time is received.
In step 204, the verification password is matched with elements in the password array to be verified.
In step 205, when the verification password matches with an element in the password array to be verified, the payment time is obtained, and the total payment time is obtained according to the payment time.
In the specific implementation, the total payment time is the payment time corresponding to the installment of the installment, that is, the sum of the payment time corresponding to the installment of the current installment and the payment time corresponding to the installment of the previous installment.
In a specific implementation, step 205 specifically includes: when the verification password is matched with the password array to be verified, acquiring the serial number of the element matched with the verification password in the password array to be verified, setting the payment time as the serial number, and acquiring the total payment time according to the payment time
In specific implementation, when the verification password is not matched with any element in the password array to be verified, the verification password is judged to be illegal.
In step 206, it is determined whether the total payment time is greater than or equal to a preset total payment time.
In a specific implementation, the preset total payment time is the sum of payment time required for completing the installment payment of the prepaid product.
In step 207a, if yes, the permanent usage right of the prepaid product is opened.
In step 207b, if not, the remaining time is obtained according to the payment time, and the verification password is updated to the verification password.
In step 208, counting is started to obtain the timer time, and the available time is obtained according to the remaining time and the timer time.
In particular, step 208 may be implemented in two ways.
The first embodiment is as follows: starting timing to acquire timer time, and setting available time as a difference value of the remaining time and the timer time;
the second embodiment is as follows: starting timing to acquire timer time, and calculating available time according to the following formula:
wherein, TKAs available time, TSFor the remaining time, TjIs the timer time.
In step 209, it is determined whether the available time is greater than zero.
In step 2010a, if yes, the usage right of the prepaid product is opened, and step 202 is executed.
In step 2010b, if not, the usage right of the prepaid product is closed, and step 202 is executed.
The embodiment receives the check password firstly; then receiving a service authentication password; generating a password array to be verified according to the verification password and an iterative algorithm, wherein the number of elements of the password array to be verified is equal to the value of the payment upper limit time; matching the verification password with elements in a password array to be verified; when the verification password is matched with the elements in the password array to be verified, acquiring payment time, and acquiring total payment time according to the payment time; judging whether the total payment time is greater than or equal to the preset total payment time, if so, opening the permanent use authority of the prepaid product, otherwise, acquiring the remaining time according to the payment time, updating the verification password into the verification password, starting timing to acquire the time of the timer, and acquiring the available time according to the remaining time and the time of the timer; judging whether the available time is greater than zero; if yes, opening the use authority of the prepaid product and executing the step of receiving the verification password; if not, closing the use authority of the prepaid product and executing the step of receiving the verification password; therefore, the use permission of the prepaid product can be flexibly set according to the single payment time, and the flexibility and the reliability of the prepaid system are improved.
Example three:
fig. 3 shows an implementation flow of the prepaid method provided by this embodiment, and for convenience of description, only the parts related to this embodiment are shown, which are detailed as follows:
in step 301, a password array is generated according to the password seed and the iterative algorithm, and the last element of the password array is sent as a verification password, where the number of the elements of the password array is a preset value.
In a specific implementation, the step 301 of generating the password array according to the password seed and the iterative algorithm, and sending the last element of the password array as the verification password may specifically be: generating the 1 st element in the password array according to the hash algorithm and the password seed, sequentially iterating according to the hash algorithm to generate other elements of the password array, and sending the last element of the password array as a check password.
In step 302, a verification password is received.
In step 303, a payment time is obtained, wherein the payment time is less than or equal to the payment upper limit time.
In a specific implementation, step 303 further includes: the upper limit time for payment is transmitted.
In step 304, a verification password is obtained based on the payment time and the password array.
When step 304 is executed for the first time, step 304 specifically includes:
and acquiring a difference value between the preset value and the payment time, and setting the verification password as an element with the difference value in the password array.
When step 304 is not executed for the first time, step 304 specifically includes:
and acquiring the difference value between the serial number of the element corresponding to the verification password in the password array and the payment time, and updating the verification password into the element with the serial number in the password array as the difference value.
In step 305, an authentication password is sent.
In step 306, an authentication password is received.
In step 307, a password array to be checked is generated according to the received verification password and the iterative algorithm, and the number of elements of the password array to be checked is equal to the value of the payment upper limit time.
In specific implementation, step 307 further includes: a payment upper limit time is received.
In step 308, the verification password is matched with elements in the password array to be verified.
In step 309, when the verification password matches with an element in the password array to be verified, the payment time is obtained, and the total payment time is obtained according to the payment time.
In specific implementation, step 309 specifically includes: when the verification password is matched with the elements in the password array to be verified, acquiring the serial number of the elements matched with the verification password in the password array to be verified, setting the payment time as the serial number, and acquiring the total payment time according to the payment time.
In step 3010, it is determined whether the total payment time is greater than or equal to a preset total payment time.
In step 3011a, if yes, the permanent usage right of the prepaid product is opened.
In step 3011b, if not, the remaining time is obtained according to the payment time, and the verification password is updated to the verification password.
In a specific implementation, when step 3011b is executed for the first time, the obtaining of the remaining time according to the paid time in step 3011b specifically includes: setting the value of the remaining time as the value of the payment time; when step 3011b is not executed for the first time, the obtaining of the remaining time according to the paid time in step 3011b specifically includes: the remaining time is obtained based on the paid time and the available time.
In step 3012, timing is started to acquire the timer time, and the available time is acquired based on the remaining time and the timer time.
In a specific implementation, step 3012 can be implemented in two ways.
The first realization mode is as follows: starting timing to acquire timer time, and setting available time as a difference value of the remaining time and the timer time;
the second implementation manner is as follows: starting timing to acquire timer time, and calculating available time according to the following formula:
wherein, TKAs available time, TSFor the remaining time, TjIs the timer time.
In step 3013, it is determined whether the available time is greater than zero.
In step 3014a, if yes, the usage right of the prepaid product is opened, and step 303 is executed.
If not, in step 3014b, the usage rights for the prepaid product are closed, and step 303 is performed.
In the embodiment, a password array is generated according to a password seed and an iterative algorithm, and the last element of the password array is sent as a verification password, wherein the number of the elements of the password array is a preset value; receiving a verification password; then, acquiring payment time, wherein the payment time is less than or equal to the payment upper limit time, and acquiring and sending a verification password according to the payment time and the password array; receiving a verification password and generating a password array to be verified according to the received verification password and an iterative algorithm, wherein the number of elements of the password array to be verified is equal to the value of the payment upper limit time; matching the verification password with elements in a password array to be verified; when the verification password is matched with the elements in the password array to be verified, acquiring payment time, and acquiring total payment time according to the payment time; judging whether the total payment time is greater than or equal to the preset total payment time, if so, opening the permanent use authority of the prepaid product, otherwise, acquiring the remaining time according to the payment time, updating the verification password into the verification password, starting timing to acquire the time of the timer, and acquiring the available time according to the remaining time and the time of the timer; finally, judging whether the available time is greater than zero; if yes, opening the use permission of the prepaid product and executing the step of obtaining the payment time; if not, the use permission of the prepaid product is closed, and the step of obtaining the payment time is executed, so that the use permission of the prepaid product can be flexibly set according to the single payment time, and the flexibility and the reliability of the prepaid system are improved.
Example four:
corresponding to the prepaid method provided in the first embodiment, the present invention further provides a server 40, as shown in fig. 4, including a password array generating module 410, a payment time obtaining module 420, an authentication password obtaining module 430, and an authentication password sending module 440.
And a password array generating module 410, configured to generate a password array according to the password seed and the iterative algorithm, and send the last element of the password array to the terminal as a verification password, where the number of the elements of the password array is a preset value.
And a payment time obtaining module 420, configured to obtain a payment time, where the payment time is less than or equal to the payment upper limit time.
And an authentication password obtaining module 430, configured to obtain an authentication password according to the payment time and the password array.
And the verification password sending module 440 is configured to send the verification password to the terminal so that the terminal sets the usage right of the prepaid product according to the verification password.
In specific implementation, the process of generating the password array by the password array generating module 410 according to the password seed and the iterative algorithm, and sending the last element of the password array as the verification password to the terminal specifically includes:
generating the 1 st element in the password array according to the hash algorithm and the password seeds, sequentially iterating according to the hash algorithm to generate other elements of the password array, and sending the last element of the password array as a check password to the terminal.
When the verification password obtaining module is executed for the first time, the verification password obtaining module 430 obtains the verification password according to the payment time and the password array, specifically: .
And acquiring a difference value between the preset value and the payment time, and setting the verification password as an element with the difference value in the password array.
When the verification password obtaining module is not executed for the first time, the verification password obtaining module 430 obtains the verification password according to the payment time and the password array, specifically:
and acquiring the difference value between the serial number of the element corresponding to the verification password in the password array and the payment time, and updating the verification password into the element with the serial number in the password array as the difference value.
In the embodiment, a password array is generated according to a password seed and an iterative algorithm, and the last element of the password array is used as a check password and sent to a terminal, wherein the number of the elements of the password array is a preset value; then obtaining the payment time, wherein the payment time is less than or equal to the payment upper limit time; then obtaining a verification password according to the payment time and the password array; finally, the verification password is sent to the terminal so that the terminal can set the use permission of the prepaid product according to the verification password, and the steps of obtaining the payment time and obtaining the total payment time according to the payment time are executed; thus, the flexibility and reliability of the prepaid system is improved.
Example five:
corresponding to the prepaid method provided in the second embodiment, the present invention further provides a terminal 50, as shown in fig. 5, including a verification password receiving module 510, a verification module receiving module 520, a to-be-verified password array generating module 530, a matching module 540, a permanent right developing module 550, a remaining time obtaining module 560, an available time obtaining module 570, an available time judging module 580, a right opening module 590, and a right closing module 5100.
And a verification password receiving module 510, configured to receive a verification password.
The verification module receiving module 520 is configured to receive a verification password.
And a to-be-verified password array generating module 530, configured to generate a to-be-verified password array according to the verification password and the iterative algorithm, where the number of elements of the to-be-verified password array is equal to the value of the payment upper limit time.
And the matching module 540 is configured to match the verification password with elements in the password array to be verified.
And a total payment time obtaining module 550, configured to obtain the payment time when the verification password matches an element in the password array to be verified, and obtain the total payment time according to the payment time.
The total payment time determining module 560 is configured to determine whether the total payment time is greater than or equal to a preset total payment time.
The permanent usage permission opening module 570 is configured to open a permanent usage permission of the prepaid product if the total payment time is determined to be greater than or equal to the preset total payment time.
A remaining time obtaining module 580, configured to, if it is determined that the total payment time is less than a preset total payment time, obtain the remaining time according to the payment time, and update the verification password to the verification password.
The available time acquiring module 590 is configured to start timing to acquire the timer time, and acquire the available time according to the remaining time and the timer time.
The available time determining module 5100 is configured to determine whether the available time is greater than zero.
And an authority opening module 5110, configured to open the usage authority of the prepaid product if the available time judgment module judges that the available time is greater than zero.
And an authority closing module 5120, configured to close the usage authority of the prepaid product if the available time judgment module judges that the available time is not greater than zero.
In a specific implementation, the process of acquiring the total payment time according to the payment time by the total payment time acquisition module when the verification password is matched with an element in the password array to be verified specifically includes: when the verification password is matched with the elements in the password array to be verified, acquiring the serial number of the elements matched with the verification password in the password array to be verified, setting the payment time as the serial number, and acquiring the total payment time according to the payment time.
The available time acquiring module 770 starts timing to acquire the timer time, and the process of acquiring the available time according to the remaining time and the timer time specifically includes:
counting is started to acquire the timer time, and the available time is set as the difference between the remaining time and the timer time.
Or
Starting timing to acquire timer time, and calculating available time according to the following formula:
wherein, TKAs available time, TSFor the remaining time, TjIs the timer time.
In a specific implementation, when the remaining time obtaining module 580 is executed for the first time, the process of the remaining time obtaining module 580 obtaining the remaining time according to the paid time specifically includes: setting the value of the remaining time as the value of the payment time; when the remaining time obtaining module 580 is not executed for the first time, the process of the remaining time obtaining module 580 obtaining the remaining time according to the paid time specifically includes: and acquiring the remaining time according to the paid time and the available time.
The embodiment receives the check password firstly; then receiving a service authentication password; generating a password array to be verified according to the verification password and an iterative algorithm, wherein the number of elements of the password array to be verified is equal to the value of the payment upper limit time; matching the verification password with elements in a password array to be verified; when the verification password is matched with the elements in the password array to be verified, acquiring payment time, and acquiring total payment time according to the payment time; judging whether the total payment time is greater than or equal to the preset total payment time, if so, opening the permanent use authority of the prepaid product, otherwise, acquiring the remaining time according to the payment time, updating the verification password into the verification password, starting timing to acquire the time of the timer, and acquiring the available time according to the remaining time and the time of the timer; judging whether the available time is greater than zero; if yes, opening the use authority of the prepaid product and executing the step of receiving the verification password; if not, closing the use authority of the prepaid product and executing the step of receiving the verification password; therefore, the use permission of the prepaid product can be flexibly set according to the single payment time, and the flexibility and the reliability of the prepaid system are improved.
Example six:
in accordance with a third embodiment of the prepaid method, the present invention also provides a prepaid system 60, as shown in fig. 6, including the server (40) and the terminal (50).
In the embodiment, a password array is generated according to a password seed and an iterative algorithm, and the last element of the password array is sent as a verification password, wherein the number of the elements of the password array is a preset value; receiving a verification password; then, acquiring payment time, wherein the payment time is less than or equal to the payment upper limit time, and acquiring and sending a verification password according to the payment time and the password array; receiving a verification password and generating a password array to be verified according to the received verification password and an iterative algorithm, wherein the number of elements of the password array to be verified is equal to the value of the payment upper limit time; matching the verification password with elements in a password array to be verified; when the verification password is matched with the elements in the password array to be verified, acquiring payment time, and acquiring total payment time according to the payment time; judging whether the total payment time is greater than or equal to the preset total payment time, if so, opening the permanent use authority of the prepaid product, otherwise, acquiring the remaining time according to the payment time, updating the verification password into the verification password, starting timing to acquire the time of the timer, and acquiring the available time according to the remaining time and the time of the timer; finally, judging whether the available time is greater than zero; if yes, opening the use permission of the prepaid product and executing the step of obtaining the payment time; if not, the use permission of the prepaid product is closed, and the step of obtaining the payment time is executed, so that the use permission of the prepaid product can be flexibly set according to the single payment time, and the flexibility and the reliability of the prepaid system are improved.
The above-mentioned serial numbers of the embodiments of the present invention are merely for description and do not represent the merits of the embodiments.
It will be understood by those skilled in the art that all or part of the steps for implementing the above embodiments may be implemented by hardware, or may be implemented by a program instructing relevant hardware, where the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a magnetic disk or an optical disk, etc.
The above description is only for the purpose of illustrating the preferred embodiments of the present invention and is not to be construed as limiting the invention, and any modifications, equivalents, improvements and the like that fall within the spirit and principle of the present invention are intended to be included therein.