参考文档:
- https://www.icode9.com/content-1-778766.html
 - https://www.cnblogs.com/miskis/p/9816135.html
 - https://www.zhihu.com/question/278838022/answer/1709832515
 - https://blog.csdn.net/zzh_encoding/article/details/114895789
 - https://www.cnblogs.com/bpf-1024/p/13375253.html
 - https://zhuanlan.zhihu.com/p/54351985
 - https://blog.csdn.net/weixin_43529904/article/details/88371185
 
