哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀! 哎呀!gui忽略源数据集_地理数据库_文件_1,地理数据库_文件_何处的地理数据库_文件_1,地理数据库_文件_翻译空间数据_仅地理数据库_文件_1,地理数据库_文件_解析域中的地理数据库_文件_1,地理数据库_文件_解析_子类型_名称_地理数据库_文件_1,地理数据库_忽略_网络u信息_地理数据库_文件_1,地理数据库_文件_1,地理数据库_文件_1,地理数据库_文件_翻译空间数据_仅_地理数据库地理数据库文件n_忽略_忽略关系_信息_地理数据库_文件_1,地理数据库_文件_分割_复杂边缘_地理数据库_文件_1,地理数据库_文件_分割_多个部分_annos _地理数据库_文件_1,地理数据库_文件_搜索_搜索_信封_minx _地理数据库_文件_1,地理数据库_文件_搜索_搜索_信封_miny u地理数据库_文件_1,地理数据库_文件_搜索_搜索_搜索_搜索u搜索_搜索_envelope_maxx_geodatabase_file_1,通用电气公司在“搜索”U信封中的文件_搜索_信封_maxy_地理数据库_文件_1,地理数据库_文件_在“剪辑”U信封_地理数据库_文件_1,_地理数据库_在“搜索”U信封_坐标_系统_地理数据库_文件_1,_地理数据库InSearc特征_地理数据库_文件_1,_地理数据库InSearc顺序_地理数据库_文件_1,_地理数据库InSearc方法_地理数据库_文件_1,_地理数据库_文件_1,_地理数据库进料自述模式自述文件_地理数据库FeFeedFeedFeedFe地理数据库文件1heckSimpleGeom_GEODATABASE_FILE_1,_GEODBMergeFeatLinkedAnnos_GEODATABASE_FILE_1,_GEODBInBeginSql_GEODATABASE_FILE_1,_GEODBInEndSql_GEODATABASE_FILE_1,DestDataset_DGNV8_1,_SEED_DGNV8_1,_OUT_UNITS_DGNV8_1,_COMPUTE_SEED_DGNV8_1,_TYPE3_DGNV8_1,_ALLOW_FILL_DGNV8_1,_WRITE_TAGS_DGNV8_1,_CELLLIB_DGNV8_1,_MANGLE_DBCS_TEXT_DGNV8_1,_UOR_GLOBAL_ORIGIN_X_DGNV8_ 1、\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\文件gui源代码\u地理数据库源数据集\u地理数据库\u文件源ESRI地理数据库(基于文件)文件:默认值\u宏目标数据集_ dgnv8 gui文件名desttataset_dgnv8 design_files(*.dgn)*.dgn all_files(*.*)*.*destination Bentley MicroStation设计文件:包括[if$(sourcedataset_geodatabase_file)=puts_real参数'sourcedataset_geodatabase_file'必须给定值。退出1;};]include[if$(destDataset _dgnv8)=puts real参数'destDataset _dgnv8'必须给定值。退出1;};“啊!启动头报文!启动wb_headerreader_type geodatabase_filereader_keyword geodatabase_file_1reader_gen_指令使用_search_envelope,no,仅翻译_space_data_,no,_merge_schemas,yes,resolve_subtype_name,yes,search_envelope_maxy,0,search_envelope_maxx,0,split_complex_edges,no,ignore_relationship_info,yes,split_multi_part_annos,no,ignore_network_info,no,where,search_envelope_minx,0,geodatabase_file_expose_format_attrs,,tablelist,,clip_to_envelope,no,search_envelope_miny,0,resolve_domains,nowriter_type dgnv8writer_keyword dgnv8_1_!Enth-WbHead头!启动“geodatabase”文件“1”!Enth-WbHead头!启动_source_header geodatabase_file geodatabase_file_1 geodatabase file geodatabase然后用于定义要读取的数据集。生成此映射文件的数据集是:!结束_source_header!启动$(sourcedataset)!=“”\放置默认宏源数据集_地理数据库_文件_1$(源数据集)\]!Enth-WbHead头!启动_source_header geodatabase_file geodatabase_file_1default_macro sourcedataset_geodatabase_file_1$(sourcedataset_geodatabase_file)gui source_geodatabase sourcedataset_geodatabase_file_1 source esri geodatabase(基于文件)文件:翻译标志。ES从geodatabase中检索功能时要使用的全局where子句。默认情况下,_macro geodatabase_file_where_geodatabase_file_1 geodatabase_file_1_where“$(geodatabase_file_in_where_geodatabase_file_1)”gui可选文本geodatabase_file_in_where_geodatabase_file_1 where子句:=======================================================================确定是否为非空间数据,比如桌子,亚型,域、和关系类,GET translateddefault_macro geodatabase_file_translated_spatial_data_only_geodatabase_file_1 no geodatabase_file_1_translate_spatial_data_only”$(geodatabase_file_in_translate_spatial_data_only_geodatabase_file_1)”gui复选框geodatabase_file_in_translate_spatial_data_only_geodatabase_1 yes%no spatial data only=======================================================确定是否解析域默认的“解析域中的宏地理数据库”文件“-U解析域中的宏地理数据库”$(解析域中的地理数据库文件“-U解析域中的地理数据库”文件“-U解析域中的图形用户界面”复选框“解析域中的地理数据库”文件“-U解析域中的宏地理数据库”文件“-U是%否解析域”================================================================确定是否将与功能关联的子类型解析为链接到子类型值的\文本描述。文本描述将作为功能的属性添加。默认的“宏地理数据库”文件在“解析”子类型中是“解析”子类型中不是“解析”子类型中是“解析”子类型#==============================================================确定是否忽略与来自网络功能类的功能相关联的网络信息。当设置为“是”时,接头将被视为点特征,边缘将被视为折线特征,将geodb_类型设置为geodb_点和geodb_折线,分别。将此关键字的值更改为与创建映射文件/工作区时指定的值不同的值时,应小心。默认值为“忽略网络”中的“宏地理数据库”文件“_忽略网络”中的“地理数据库”文件“_1 nogeodatabase”文件“_忽略网络“_信息”$(地理数据库“文件”中的“忽略网络”文件“_忽略网络“_信息”中的“地理数据库”文件“gui检查bOx geodatabase_file_in_ignore_network_info_geodatabase_file_1 yes%no ignore network info 当设置为“是”时,简单关系不会被读取,属性化关系将作为表读取。在将此关键字的值更改为与创建映射文件/工作区时指定的值不同的值时,应小心。默认情况下,“忽略关系”中的“宏地理数据库”文件“忽略关系”中的“宏地理数据库”文件“忽略关系”中的“地理数据库”文件“1是”数据库“文件”中的“忽略关系”图形用户界面检查方框geodatabase_file_ignore_relationship_info_geodatabase_file_1 yes%no ignore relationship info譁譁譁譁譁中的geodatabase_file_确定是否应拆分复杂边缘功能,并将每个边缘譁元素读取为单独的功能。默认行为是将整个边缘*特征*视为一个FME特征,而不是边缘*元素*作为FME特征。返回边缘元素可确保读取复杂边缘上的所有网络连接信息。默认情况下,“拆分复杂边缘”中的“宏地理数据库”文件“-u拆分复杂边缘”中的“宏地理数据库”文件“-u地质数据库”文件“-u 1拆分复杂边缘”$(拆分复杂边缘中的“地理数据库”文件“-u拆分复杂边缘”中的“地理数据库”复选框“地理数据库”文件“-u拆分复杂边缘”中的“地理数据库”文件“-u文件”是%n否拆分复杂边=============================================确定是否应拆分批注功能,并将每个部分元素作为单独的功能读取。默认行为是将整个注释*功能*视为一个FME功能,而不是注释*元素*作为一个FME特征。返回边缘元素可确保保留每个元素的所有旋转和位置信息。默认情况下,“拆分”中的“宏地理数据库文件”位于“拆分”中的“宏地理数据库文件”位于“拆分”中的“多个部分”中的“地理数据库文件”位于“拆分”中的“多个部分”中的“$(地理数据库文件”位于“拆分”中的“多个部分”中的“地理数据库文件”位于“拆分”中的“地理数据库文件”复选框位于“拆分”中的“地理数据库文件”s诳geodatabase_file_1 yes%no split multi-part annotations诳include this file in source setting section to add native search envelope processing诳zero a s a default means we don't do any search--This make workbench happier诳诳诳==============================_minx_geodatabase_file_1 0geodatabase_file_1_search_envelope“$(geodatabase_file_in_search_envelope_minx_geodatabase_file_1)”图形用户界面可选浮动geodatabase_file_in_search_envelope_minx_geodatabase_file_1 minimum x:=======================默认_macro geodatabase_file_in_search_envelope_miny_geod数据库_file_1 0geodatabase_file_1_search_envelope“$(geodatabase_file_in_search_envelope_miny_geodatabase_file_1)”gui可选浮动geodatabase_file_in_search_envelope_miny_geodatabase_file_1 minimum y:================================默认_macro geodatabase_file_in_search_envelope_maxx_geodatabase_fIle_1 0geodatabase_file_1_search_envelope“$(geodatabase_file_in_search_envelope_maxx_geodatabase_file_1)”GUI可选浮动geodatabase_file_in_search_envelope_maxx_geodatabase_file_1 maximum x:===============================================默认_macro geodatabase_file_in_search_envelope_maxy_geodatabase_file_1 0geOdatabase_file_1_search_envelope“$(geodatabase_file_in_search_envelope_maxy_geodatabase_file_1)”GUI可选浮动geodatabase_file_in_search_envelope_maxy_geodatabase_file_1 maximum y:================================默认_macro geodatabase_file_in_clip_to_envelope_geodatabase_file_1 nogeodatabase_fiLe_1_clip_to_envelope“$(geodatabase_file_in_clip_to_envelope_geodatabase_file_1)”图形用户界面可选复选框geodatabase_file_in_clip_to_envelope_geodatabase_file_1 yes%no clip to search envelope譁nate_system_geodatabase_file_1 gui可选坐标系_search_envelope_coordinate_geodatabase_file_1 search envelope coordinate system:geodatabase_file_search_envelope_coordinate_system$(_search_envelope_coordinate_system_geodatabase_file_1)”中的geodb_下面确定是否向量化圆弧。如果split_at_arcs设置为yes,然后圆弧不会被矢量化,包含圆弧的直线/多边形会被分割成直线段和圆弧段。35;更新:使用丰富的几何图形时,此关键字不适用。自所有新的映射文件/工作区均已将“使用”几何设置为“是”,然后我们不需要公开此关键字。35;默认_宏_geodbinsplit状态arcs否默认_宏_geodbinsplit状态arcs否 GUI可选选择_geodbinsplit状态arcs是%弧处不分割\35;地理数据库_文件_分割_弧处分割u弧处分割”$(_geodbinsplit状态ars _geodbinsplit状态arcs _地理数据库_地理数据库_地理数据库_文件_1)“==========================================下面定义了查询的搜索功能。它将任意复杂的搜索特性定义为空间约束。它的形式是 _搜索功能[ ]+.default_macro geodinsearchfeature_geodatabase_file_1 gui可选文本_geodinsearchfeature_geodatabase_file_1搜索功能:geodatabase_file_1_search_feature$(_geodinsearchfeature_geodatabase_file_1)确定是空间组件还是属性组件首先执行查询的ENT。这仅适用于同时执行空间和非空间搜索的情况。默认的“宏”geodbinsearchorder“地理数据库”file“1空间”firstgui可选选择“地理数据库”geodbinsearchorder“U地理数据库”file“1空间”first%属性“U第一搜索顺序:地理数据库”file“U 1搜索”order$(“地理数据库”geodbinsearchorder“U地理数据库”file“U 1”)(====)=================================================确定要使用的搜索方法类型。仅当指定了关键字搜索信封或关键字搜索功能时,此关键字才适用。默认的“宏”geodbinsearchmethod“地理数据库文件”geodb“相交”gui可选选项“geodbinsearchmethod”geodatabase“文件”geodb“相交”geodb“相交”geodb“相交”geodb“相交”geodb“接触”geodb“重叠”geodb“相交”geodb“相交”geodb“相交”geodb“接触”geodb“重叠”geodb“相交”geodb“在%geod内”b_包含搜索方法geodatabase_file_1_search_method$(_geodbinesearchmethod_geodatabase_file_1)譁譁譁譁aturereadmode_geodatabase_file_1 featuresgui choice _geodinfeaturereadmode_geodatabase_file_1 features%元数据功能读取模式:geodatabase_file_1_feature_read_模式“$(_geodinfeaturereadmode_geodatabase_file_1)”===============================================以下指定简单几何图形应为Che当读取features.default_macro_geodbenchecksimplegeom_geodatabase_file_1 nogui choice_geodbenchecksimplegeom_geodatabase_file_1 yes%no检查简单几何:geodatabase_file_1_check_simple_geom$(_geodbenchecksimplegeom_geodatabase_file_1)35;======================指定在读取时,是否应将功能链接的批注作为文本列表属性合并到主功能中。默认值\u macro \u geodmergefeaturelinkedanos \u geodatabase \u file \u 1 nogui choice \u geodmergefeaturelinkedanos \u geodatabase \u file \u yes%no合并功能链接的批注:geodatabase \u file \u merge \u feature \u linked \u annos$(\u geodergeffeaturelinkedannos_geodatabase_file_1)=========================================================以下指定在打开第一个地理数据库表之前要执行的SQL命令。默认的_macro geodbinbeginsql_geodatabase_file_1 gui可选文本_edit_sql _geodbinbeginsql_geodatabase_file_1要在TRA之前执行的SQL语句nslation:geodatabase_file_1_begin_sql_0“$(_geodbinbeginsql_geodatabase_file_1)”==================================================================================以下指定在关闭所有地理数据库表后执行的SQL命令。默认值_macro_geodbinedsql_geodatabase_file_1 gui可选文本_edit_sql_geodbinedsql_geod数据库_file_1转换后要执行的SQL语句:geodatabase_file_1_end_sql 0“$(_geodbinedsql_geodatabase_file_1)”geodatabase_file_1_dataset“$(sourcedataset_geodatabase_file_1)”!结束_source_header!启动“wb_headermacro wb_”关键字“dgnv8_1”!Enth-WbHead头!start_dest_header dgnv8 dgnv8_1譁譁譁譁譁譁譁譁譁譁譁譁譁譁以及一个种子文件,作为创建的设计文件的基础。还提供注释提示,以定义单元库文件。如果要在创建的数据集中放置任何单元格,则可能需要。在这种情况下,它们应该是未注释的。!结束“目标”标题!启动“wb_headerdefault”宏destdatasetinclude[如果“$(destdataset)”!=“”\输入默认宏目标数据集_dgnv8 _1$(目标数据集)\]!Enth-WbHead头!开始_dest_header dgn v8 dgn v8_1d默认_宏dest数据集_dgn v8_1$(dest数据集_dgn v8)gui文件名dest数据集_dgn v8_1设计_文件(*.dgn);*.dgn;所有\;*.*目的地本特利微站设计文件:默认_宏_种子_dgn v8 _1$(fm_home)设计\ sed3d _m _v8.dgngnggui文件名_mumumumumumumumumumumumumumumumumumumu存在u种子_dgnv(*.dgn)*.dgn所有_文件(*.*)*。*V8种子文件:dgnv8_1_seed_file“$(_seed_dgnv8_1)”被视为子单位igds_ors——fme坐标被视为uorsDefault譁u macro譁u out_units_dgnv8_1 igds_master_unitsgui choice_out_units_dgnv8_1 igds_master_units%igds_sub_units%igds_uors输出单位:dgnv8_1_units$(_out_dgnv8_1)譁譁譁譁然后将分析输入数据,并计算输出设计文件的最佳种子文件设置默认_宏_计算_种子_dgnv8 _1 nogui选择_计算_种子_dgnv8 _1是%no计算最佳种子文件参数:dgnv8 _1 _计算_种子_文件_parms$(_计算_种子_dgnv8 _1)=======并设置是否允许为2点线创建类型3元素。默认宏类型3 DGNv8 1是类型3元素:DGNv8 1创建类型3 DGNv8 1否并设置是否允许区域填充lines.default_macro _允许填写dgnv8_1 yesgui选项_允许填写dgnv8_1 yes%no允许区域颜色填充:dgnv8_1_允许填写$(_允许填写dgnv8_1)==================================================================================================================================允许写入标记默认_mac _写入标记_dgnv8_1 nogui选项_写入标记_dgnv8 _1 yes%u 1 yes%no写入标记:dgnv8_1_1_写入_写入_写入_写入_写入\U标记$(_写入_tags_dgnv8_1)譁譁譁譁譁=============================================这些设置覆盖种子文件中包含的全局偏移量和单位信息譁。默认情况下,它们被设置为空白,这意味着将使用种子文件设置。gui可选的float_or_global_origin_x uor x global origin:默认_macro_or_global_origin_x_dgnv8_1 dgnv8_1_uor_global_origin_x$(_uor_global_origin_x_dgnv8_1)gui可选浮动_uor_global_origin_y uor y global origin:默认的_macro_o_global_origin_y_dgnv8_1 全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球一个dgnv8 uuuuuuuuu全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球原点:全球U主单元名称主单元名称:默认宏单元名称 dgnv8_1_master_unity_name$(_master_unity_name_dgnv8_1)gui可选文本_sub_unity_name子单元名称:默认的_macro_sub_unity_name_dgnv8_1 dgnv8_1_sub_unity_name$(_sub_unity_name_dgnv8_1)gui可选整数_subs_per_master subs per master:默认的_macro_subs_per_master_dgnv8_1 dgnv8_1_subs_per_master$(_subs_per_master_dgnv8_1)gui可选整数_uors_per_sub uors per sub:default_macro_uors_per_sub_dgnv8_1 DGNV8_1_UORS_PER_SUB $(_UORS_PER_SUB_DGNV8_1)DEFAULT_MACRO _CELLLIB_DGNV8_1 GUI OPTIONAL MULTIFILE _CELLLIB_DGNV8_1 Cell_Library_Files(*.cel)|*.cel|All_files(*.*)|*.* Cell Library File:DGNV8_1_CELL_LIBRARY "$(_CELLLIB_DGNV8_1)"DEFAULT_MACRO _MANGLE_DBCS_TEXT_DGNV8_1 NOGUI OPTIONAL CHOICE _MANGLE_DBCS_TEXT_DGNV8_1 YES%NO Mangle DBCS Text:DGNV8_1_MAngle-dbcs_-text$(_-mangle_-dbcs_-text_-dgnv8_1)譁譁譁譁这些设置覆盖种子文件中包含的全局偏移量和单位信息。默认情况下,它们设置为空白,这意味着将使用种子文件设置。gui可选的float or_o全局u dgnv8_1 uor x全局原点:gui可选的float or_全局u dgnv8_1 uor y全局原点:gui可选的float o全局u dgnv8_1 uor z全局原点:gui可选的文本o主单元_dgnv8_1主单元名称:gui可选文本子单元名称子单元名称:GUI可选整数子单元主单元子单元每个主单元1个子单元:GUI可选整数子单元子单元每个子单元1个计量单位:允许用户在单元库中没有单元时指定要使用的默认单元。默认宏默认单元名称图形用户界面可选文本默认单元名称默认单元名称默认单元名称:dgnv8_1_default_cell_name$(_default_cell_name_dgnv8_1)dgnv8_1_dataset“$(destdataset_dgnv8_1)”!结束“目标”标题!end_headerlog_filename“$(fme_mf_dir)geodatabaseannotodgnmultitext.log”log_append nolog_max_features 200log_max_recorded_features 200fm_reprojection_engine fmefm_geometry_handing enhancedfme_stroke_max_deviation 0log_filter_mask-1默认_macro dataset_keyword_geodatabase_file_1默认_macro dataset_keyword_dgnv8_1 dgnv8_1#-————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————abseannotodgnmultitextmacro fm_-viewer_-app fmedatainspector----------------------------------------------------------------geodatabase_-file_-def idrografiialineare_a166 geodb_-type geodb_-annotation geodb_-oid integer geodb_-subtype_-name char(254)objectid integerfeatureid integer zorder integer annotationClassid integer表示整数状态smallint textstring char(255)fontname char(255)fontsize double bold smaLint斜体小下划线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖线小竖双字符宽度双字符间距双翻转角度双覆盖整数形状\长双形状\面积双诳诳诳诳afialineare_a166 yes“”nofactory_def*teefactory factory_name“geodatabase_file_1 merge”输入功能_type*输出功能_type“idrografiialineare_a166”------------------------------------------------------factory_def*test factory factory_name“unexpected input remover”输入功能_type*test@lookup(__knownFeatureTypes_uuuuuuuu,@featureType())=是输出传递的功能Type*35;------------------------------------------------------工厂Def*teefactory工厂Name“源”--一般”输入功能Type*输出功能Type*@transform(geodatabase _file,fme _generic,preserve _geometry)默认Macro wb _current Context---------------------------------------------------------------------include[设置注释--确定定义@count域的块:-来自属性的全局计数域使用@count(fme_attribute_name,…)-使用编码文本值的计数域使用@count(fme_encoded,…)-其他计数域使用未编码的HICH使用标准@count(…)来提高效率。};设置域指令设置域前缀设置域[FME解码文本文本];如果{域名!=文本)&&([字符串范围$DOMAIN 0 0]!=“&”)设置域指令“fme_encoded,”;设置域文本};设置usetclcommand 0;如果全局=本地设置域前缀计数器如果[字符串范围$DOMAIN 0 0]=“&”--设置注释--以获得正确的编码,在处理基于属性值的本地计数器时,必须使用@tcl。};设置attrname[字符串范围$DOMAIN 1 END];设置tempattrname uu counter_u domain_uuuu_放入“tcl2 proc counter fme setattribute$tempattrname \”$domainprefix \[fme$attrname]\”;设置结果\[FME_execute count fme_attribute_name$tempattrname_0];fme_unsetattributes$tempattrname_返回\$result“;设置usetclcommand 1;}}elseif[字符串范围$domain 0 0]=“&”set domaindirective“fme_attribute_name,”;设置域[字符串范围$DOMAIN 1 END];if$usetclcommand puts“macro counter_increment_function@tcl2(counter_increment counter)”;}else设置域块$domaindirective$domainprefix$domain;放入“macro counter_increment_function@count($domainpieces,0)”;};]工厂_def*teefactory工厂_name counter input feature _type idrografialineare _a166 output feature _type counter _output”_text _id“$(counter _increment u函数)-------------------------------------------------tcl2 proc stringlengthcalculator _calc fme _setattribute [FME getattribute geodb_text_string]factory_def*teefactory factory _name stringthecalculator input feature _type counter _output feature _type stringthecalculator _output@tcl2(stringthecalculator _calc _len)35;-----------------------------------------------------------factory _def*工厂名称克隆输入特征_type stringthlengthcalculator _output number_of_copies@value(_length)copy _number_attribute _copynum output feature _type cloner _copy factory _def*teefactory工厂名称“克隆复制拆分器”输入特征_type cloner _copy output feature _type cloner _copy _0 output feature _type cloner _copy _1 output特性_-type cloner_-copy_2诜诜诜诜我们定义-1是最后一个字符,我们对dotcl2 proc substringextractor_fixlastindex lastvalue if$lastvalue<-1 incr lastvalue进行了一点小改动;返回“end$lastvalue”;}elseif$lastvalue==-1返回“结束”;}else返回$lastvalue;}}tcl2 proc substringxtractor_extract startidx endidx fme setattribute u substring[字符串范围[fme getattribute geodb u text][substringxtractor_fixlastindex$startidx][substringxtractor_fixlastindex$endidx]]工厂定义*teefactory工厂名称substringxtractoR输入特征型克隆器型复制2输出特征型子串接器型输出@Tcl2(“子串接器型提取@值(CopyNum)-1”)--------------------------------------------------------------------------工厂Def*textstrokerFactory工厂Name textstroker 2输入特征型子串接器_输出文本String_attr“_substring”text_font“@value(font name)”text_font_width_乘数“1.0”text_padding“0”text_rotation“0”build_polygons“no”output stroked feature_type textstroker_2_stroked-----------------------------------------------------------------工厂定义*teefactory工厂名称边界提取器_3输入feature_-type textstroker_2_stroked output feature_-type boundsExtractor_3_output@bounds(_xmin,_xmax2,_ymin,_ymax,_zmin,_zmax,geometric)35;-------------------------------------------------factory_def*textstroker factory factory_name textstroker input feature_-type cloner_copy_1 text_string_attr“geodb_text_-string“text_-font”@value(font name)“text_-font_-width_-乘数”1.0“text_-padding”0“text_-rotation”0“build_-polygons”no“输出stroked feature”_-type textstroker_-strokedextstroker_stroked output feature_type boundsExtractor_output@bounds(_xmin,_xmax1,_ymin,_ymax,_zmin,_zmax,geometric)-----------------------------------------------------------------tcl2 set stringconcatenator_vallist[拆分&_text_id,uu,&_copynum,];我们在这里使用tcl而不是@concatenate,因为tcl更灵活。tcl2proc字符串连接符全局字符串连接符值列表设置Val{};foreach valenc[set stringconcatenator]append val[fme _decodetextoratr$valenc];};fme_setattribute__link$val;}工厂定义*teefactory工厂名称stringconcatenator输入功能\u类型边界提取程序\u输出输入功能\u类型边界提取程序\u输出输出功能\u类型stringconcatenator \u output@tcl2(stringconcatenator \u concatter)----------------------------------------------------------------工厂定义*teefactory工厂名称textlocation提取器输入功能_type cloner_copy_0输出功能_type textlocation提取器_output@geometry(remove_text)-----------------------------------------------------------工厂定义*除穗器工厂名称除穗器输入功能_type textlocation提取器_output Spike_angle 10 output unchanged feature_type spideremover_unchanged output changed feature_type spideremover_changed-----------------------------tcl2 set stringconcatenator_2_vallist[split&_text_id,u,&_copynum,];我们在这里使用tcl而不是@concatenate,因为tcl更灵活。tcl2 proc字符串连接符全局字符串连接符值列表设置Val{};foreach valenc[设置stringconcatenator_2_vallist]append val[fme _decodetextoratr$valenc];};fme_setattribute__link$val;}工厂定义*teefactory工厂名称stringconcatenator_2输入特征_类型除穗器_更改输入特征_类型除穗器_更改输出特征_类型stringconcatenator_2_output@tcl2目录工厂名称功能合并输入引用功能\u类型字符串连接器\u 2 \u输出输入引用功能\u类型字符串连接器\u输出引用\u信息属性引用\u字段“\u链接”引用\u字段“\u链接”合并\u属性是管理\u fme类型是模式完成过程\u重复\u引用是build_incomplete_referencers yes output complete feature_type feature mergement_complete诜诜诜(@value(_xmax1)-@value(_xmax2))/(@value(_xmax1)-@value(_xmin))*100.0”)35;-----------------------------------------------------------工厂定义*teefactory工厂名称expressionevaluator_2输入功能_类型expressionevaluator_输出功能_类型expressionevaluator_2_输出_标签_end@evaluate(“@value(_ label诳start)+.2”)诳诳诳诳ance and percentage.tcl2 proc snipper_fixindex numindex if$numindex<0 return“end”;}else返回$numIndex;}}包括[如果(百分比=距离百分比=百分比放置宏截图截图截图截图截图截图截图截图固定索引值(标签结束)百分比,2d)}elseif(percentage=measure percentage=measure real values)puts macro snipper u snipfunc@snip(@value(label start),@值(_label_end), ,百分率);}Elseif(Percentage=Vertex)Puts Macro Snipper _snipfunc@snipfunc( (顶点)};}]工厂定义*teefactory工厂名称狙击手输入功能_类型表达式评估器_2 _输出功能_类型狙击手输出$(狙击手狙击手输出功能输出功能u类型狙击手输出$(狙击手我们定义-1是最后一个字符,我们对dotcl2 proc substringextractor_2_fixlastindex lastvalue if$lastvalue<-1 incr lastvalue做了一点小改动;返回“end$lastvalue”;}elseif$lastvalue==-1返回“结束”;}else返回$lastvalue;} }Tcl2 proc SubstringExtractor_2_extract {startIdx endIdx} { FME_SetAttribute {igds_text_string} [string range [FME_GetAttribute {geodb_text_string}] [SubstringExtractor_2_fixLastIndex $startIdx] [SubstringExtractor_2_fixLastIndex $endIdx]] }FACTORY_DEF * TeeFactory FACTORY_NAME SubstringExtractor_2 INPUT FEATURE_TYPE Snipper_OUTPUT OUTPUT FEATURE_TYPE SubstringExtractor_2_OUTPUT @Tcl2("SubstringExtractor_2_extract @Value(_copynum) @Value(_copynum)")# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME ExpressionEvaluator_3 INPUT FEATURE_TYPE SubstringExtractor_2_OUTPUT OUTPUT FEATURE_TYPE ExpressionEvaluator_3_OUTPUT igds_text_size @Evaluate("@Value(geodb_text_size)*0.75")# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME ExpressionEvaluator_4 INPUT FEATURE_TYPE ExpressionEvaluator_3_OUTPUT OUTPUT FEATURE_TYPE ExpressionEvaluator_4_OUTPUT igds_text_width_multiplier @Evaluate("@Value(geodb_text_character_width)*0.75")# -------------------------------------------------------------------------DEFAULT_MACRO Labeller_OVERLAP_LINESINCLUDE [if {"No" == "Yes"} {puts {MACRO Labeller_OVERLAP_LINES LABEL_FIELD "igds_text_string" LABEL_HEIGHT "@Value(igds_text_size)" AVERAGE_CHAR_WIDTH "@Value(igds_text_width_multiplier)"} }]FACTORY_DEF * LabelFactory FACTORY_NAME Labeller INPUT FEATURE_TYPE ExpressionEvaluator_4_OUTPUT PLACEMENT LEFT LABEL_ENDS no PLACEMENT_DISTANCE 0 PLACEMENT_SPACING 1000 MINIMUM_LENGTH 0 $(Labeller_OVERLAP_LINES) OUTPUT POINT FEATURE_TYPE Labeller_LABEL @GeometryType(fme_text,@Value(igds_text_string),@Value(igds_text_size),@Value(LabelRotation)) @RenameAttributes(_label_rotation,LabelRotation) @RenameAttributes(igds_rotation,ParallelRotation)# -------------------------------------------------------------------------FACTORY_DEF * TestFactory FACTORY_NAME CoordinateExtractor INPUT FEATURE_TYPE Labeller_LABEL TEST @Dimension() == 2 OUTPUT PASSED FEATURE_TYPE CoordinateExtractor_OUTPUT x @Coordinate(x,0,FLATTEN_AGGREGATE) y @Coordinate(y,0,FLATTEN_AGGREGATE) @SupplyAttributes(z,0) OUTPUT FAILED FEATURE_TYPE CoordinateExtractor_OUTPUT x @Coordinate(x,0,FLATTEN_AGGREGATE) y @Coordinate(y,0,FLATTEN_AGGREGATE) z @Coordinate(z,0,FLATTEN_AGGREGATE)# -------------------------------------------------------------------------Lookup AttributeValueMapper_LOOKUP_TABLE top 0 center 1 bottom 2 baseline 2 "" "" ENCODEDFACTORY_DEF * TeeFactory FACTORY_NAME AttributeValueMapper INPUT FEATURE_TYPE CoordinateExtractor_OUTPUT OUTPUT FEATURE_TYPE AttributeValueMapper_OUTPUT "_vert_just" @Lookup(AttributeValueMapper_LOOKUP_TABLE,"geodb_v_align",FORWARD|ENCODED_ATTR)# -------------------------------------------------------------------------Lookup AttributeValueMapper_2_LOOKUP_TABLE top 0 center 6 bottom 12 baseline 12 "" "" ENCODEDFACTORY_DEF * TeeFactory FACTORY_NAME AttributeValueMapper_2 INPUT FEATURE_TYPE AttributeValueMapper_OUTPUT OUTPUT FEATURE_TYPE AttributeValueMapper_2_OUTPUT "_hor_just" @Lookup(AttributeValueMapper_2_LOOKUP_TABLE,"geodb_h_align",FORWARD|ENCODED_ATTR)# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME ExpressionEvaluator_5 INPUT FEATURE_TYPE AttributeValueMapper_2_OUTPUT OUTPUT FEATURE_TYPE ExpressionEvaluator_5_OUTPUT igds_justification @Evaluate("(@Value(_hor_just)+@Value(_vert_just))")# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME AttributeKeeper INPUT FEATURE_TYPE ExpressionEvaluator_5_OUTPUT OUTPUT FEATURE_TYPE AttributeKeeper_OUTPUT @KeepAttributes(_text_id,geodb_subtype_name,igds_rotation,igds_text_size,igds_text_string,igds_text_width_multiplier,x,y,z,fme_regexp_match,^fme_)# -------------------------------------------------------------------------DEFAULT_MACRO Aggregator_BREAK_ATTRINCLUDE [if {"No" == "Yes"} {puts "MACRO Aggregator_BREAK_ATTR BREAK_BEFORE_FIELD_CHANGE _text_id" }]FACTORY_DEF * AggregateFactory FACTORY_NAME Aggregator INPUT FEATURE_TYPE AttributeKeeper_OUTPUT GROUP_BY _text_id $(Aggregator_BREAK_ATTR) LIST_NAME igds_text_elements{} ACCUMULATE_ATTRIBUTES Yes OUTPUT AGGREGATE FEATURE_TYPE Aggregator_AGGREGATE# -------------------------------------------------------------------------FACTORY_DEF * TestFactory FACTORY_NAME 3DPointReplacer INPUT FEATURE_TYPE Aggregator_AGGREGATE TEST &fme_type = fme_text OUTPUT PASSED FEATURE_TYPE 3DPointReplacer_POINT @XValue("@Value(x)",RESET) @YValue("@Value(y)") @ZValue("@Value(z)") OUTPUT FAILED FEATURE_TYPE 3DPointReplacer_POINT @XValue("@Value(x)",RESET) @YValue("@Value(y)") @ZValue("@Value(z)") @GeometryType(fme_point)# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME AttributeCreator INPUT FEATURE_TYPE 3DPointReplacer_POINT OUTPUT FEATURE_TYPE AttributeCreator_OUTPUT @SupplyAttributes(ENCODED,igds_type,igds_multi_text)# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "AttributeCreator_OUTPUT -> Text Correlator" INPUT FEATURE_TYPE AttributeCreator_OUTPUT OUTPUT FEATURE_TYPE __GO_TO_FINAL_OUTPUT_ROUTER__ @Transform(FME_GENERIC,DGNV8) @SupplyAttributes(fme_template_feature_type,Text) @CopyAttributes(__wb_out_feat_type__,geodb_subtype_name)# -------------------------------------------------------------------------FACTORY_DEF * TestFactory FACTORY_NAME "Final Output Feature Type Router" INPUT FEATURE_TYPE * TEST @Value(__wb_out_feat_type__) != "" OUTPUT PASSED FEATURE_TYPE * @FeatureType(@Value(__wb_out_feat_type__)) OUTPUT FAILED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 {@Value(fme_template_feature_type)} 818060 818061 fme_warn")# -------------------------------------------------------------------------FACTORY_DEF * TeeFactory FACTORY_NAME "Final Output Nuker" INPUT FEATURE_TYPE __nuke_me__# -------------------------------------------------------------------------DGNV8_1_DEF Text igds_level "" igds_level_comment "" igds_level_color "" igds_level_style "" igds_level_weight ""